diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2021-08-29 06:19:44 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2021-08-29 06:19:44 +0000 |
commit | 0de5be92a3a0fe27e8521fc4de67e19b1057842e (patch) | |
tree | e93a390fe965486cca19498840cb8d7904252fec /Build/source/libs/freetype2/freetype-src/docs/oldlogs | |
parent | 27ce96eea3f1190bd744448cfa149e8d767af95a (diff) |
revert freetype to 2.10.4
git-svn-id: svn://tug.org/texlive/trunk@60360 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/docs/oldlogs')
10 files changed, 0 insertions, 47662 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.20 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.20 deleted file mode 100644 index 15ae8fe9763..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.20 +++ /dev/null @@ -1,2613 +0,0 @@ -2002-02-09 Werner Lemberg <wl@gnu.org> - - * README: Fix typo. - * docs/CHANGES: Minor fixes. - - - * Version 2.0.8 released. - ========================= - - -2002-02-08 David Turner <david@freetype.org> - - * docs/CHANGES: Updating for 2.0.8. - - * include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and - removing `FT_Get_Next_Char' from the API (temporarily). - - * include/freetype/freetype.h: Adding comments to FT_Get_Next_Char; - note that this function might temporarily be removed for the 2.0.8 - release. - -2002-02-07 David Turner <david@freetype.org> - - * src/pcf/pcfread.c (pcf_load_font): Removed immature support of - the AVERAGE_WIDTH property. - -2002-02-06 David Turner <david@freetype.org> - - * src/sfnt/sfobjs.c (SFNT_Load_Face): Since many fonts embedded in - PDF documents do not include 'cmap', 'post' and 'name' tables, the - SFNT face loader has been changed to not immediately report an - error if these are not present. - - Note that the specification _requires_ these tables, but Adobe - seems to ignore it completely. - - * src/sfnt/ttcmap.c: Removing compiler warnings. - - * src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt. - (pcf_parse_metric, pcf_parse_compressed_metric): Removed. Code - is now in ... - (pcf_get_metric): Here. - (pcfSeekToType): Renamed to ... - (pcf_seek_to_table_type): This. - Use FT_Int. - (pcfHasType): Renamed to ... - (pcf_has_table_type): This. - Use FT_Int. - (find_property): Renamed to ... - (pcf_find_property): This. - Use FT_Int. - (pcf_get_bitmaps, pcf_get_encodings): Handle invalid PCF fonts - better (delaying format checks out of FT_Access_Frame .. - FT_Forget_Frame blocks to avoid leaving the stream in an incorrect - state when encountering an invalid PCF font). - - * src/pcf/pcfdriver.c (PCF_Done_Face): Renamed to ... - (PCF_Face_Done): This. - (PCF_Init_Face): Renamed to ... - (PCF_Face_Init): This. - (PCF_Get_Char_Index): Renamed to ... - (PCF_Char_Get_Index): This. - (PCF_Get_Next_Char): Renamed to ... - (PCF_Char_Get_Next): This. - (pcf_driver_class): Updated. - - * src/pcf/pcf.h (PCF_Done_Face): Removed. - -2002-02-06 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak. - - * src/pcf/pcfread.c (pcf_load_font): Now handles the `AVERAGE_WIDTH' - property to return correct character pixel (width/height) pairs for - embedded bitmaps. - -2002-02-04 Keith Packard <keithp@keithp.com> - - Adding the function `FT_Get_Next_Char', doing the obvious thing - w.r.t. the selected charmap. - - * include/freetype/freetype.h: Add prototype. - * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar' - typedef. - (FT_Driver_Class): Use it. - * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func' - typedef. - (PSNames_Interface): Use it. - * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func' - typedef. - (TT_CMapTable): Use it. - - * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing - high-level API. - * src/cff/cffdrivr.c (cff_get_next_char): New function. - (cff_driver_class): Add it. - * src/cid/cidriver.c (Cid_Get_Next_Char): New function. - (t1cid_driver_class): Add it. - * src/pcf/pcfdriver.c (PCF_Get_Next_Char): New function. - (pcf_driver_class): Add it. - * src/psnames/psmodule.c (PS_Next_Unicode): New function. - (psnames_interface): Add it. - * src/sfnt/ttcmap.c (code_to_next0, code_to_next2, code_to_next4, - code_to_next6, code_to_next_8_12, code_to_next_10): New auxiliary - functions. - (TT_CharMap_Load): Use them. - * src/truetype/ttdriver.c (Get_Next_Char): New function. - (tt_driver_class): Add it. - * src/type1/t1driver.c (Get_Next_Char): New function. - (t1_driver_class): Add it. - * src/winfonts/winfnt.c (FNT_Get_Next_Char): New function. - (winfnt_driver_class): Add it. - - * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for - Unicode and Latin 1 encodings. - -2002-02-02 Keith Packard <keithp@keithp.com> - - * builds/unix/freetype-config.in: Add missing `fi'. - - - * Version 2.0.7 released. - ========================= - - -2002-02-01 David Turner <david@freetype.org> - - * include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7 - for the new release. - -2002-01-31 David Turner <david@freetype.org> - - * README, README.UNX, docs/CHANGES: Updating documentation for the - 2.0.7 release. - -2002-01-30 David Turner <david@freetype.org> - - * INSTALL: Moved to ... - * docs/INSTALL: Here to avoid conflicts with the `install' script on - Windows, where the filesystem doesn't preserve case. - -2002-01-29 David Turner <david@freetype.org> - - * configure: Fixed the script. It previously didn't accept more - than one argument correctly. For example, when typing: - - ./configure --disable-shared --disable-nls - - the `--disable-nls' was incorrectly sent to the `make' program. - -2002-01-29 Werner Lemberg <wl@gnu.org> - - * README.UNX: Fix typo. - * builds/unix/install.mk (uninstall): Fix library name for libtool. - -2002-01-28 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr> - - * src/pcf/pcfdriver.c (PCF_Done_Face): Fix incorrect destruction of - the face object (face->toc.tables, face->root.family_name, - face->root.available_size, face->charset_encoding, - face->charset_registry are now freed). Thanks to Niels Moseley. - -2002-01-28 Roberto Alameda <ojancano@geekmail.de> - - * src/type1/t1load.c (parse_encoding): Set `loader->num_chars'. - -2002-01-28 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy - of `base' string for decrypting to not modify the original data. - Based on a patch by Jakub Bogusz <qboosh@pld.org.pl>. - -2002-01-27 Giuliano Pochini <pochini@shiny.it> - - * src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused - bad rendering of thin lines (less than one pixel thick). - -2002-01-25 Werner Lemberg <wl@gnu.org> - - * src/cff/cffdrivr.c (cff_get_name_index): Make last patch work - actually. - -2002-01-25 Martin Zinser <zinser@decus.de> - - * src/cache/ftccache.c (ftc_node_done, ftc_node_destroy): Fix - compilation warnings. - * src/base/descrip.mms (OBJS): Add `ftmm.obj'. - * src/cache/descrip.mms (ftcache.obj): Dependencies added. - -2002-01-25 WANG Yi <wangyi@founder.com.cn> - - * src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug. - -2002-01-21 Antoine Leca <Antoine-Freetype@Leca-Marti.org> - - * docs/PATENTS: Typo fixed (thanks to Detlef `Hawkeye' Würkner) in - the URL for the online resource. - -2002-01-18 Ian Brown <ian.brown@printsoft.de> - - * builds/win32/ftdebug.c: New file. - * builds/win32/visualc/freetype.dsp: Updated. - -2002-01-18 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9. - * builds/amiga/README: Updated. - -2002-01-18 Ian Brown <ian.brown@printsoft.de> - - * builds/win32/visualc/freetype.dsp: Updated. - -2002-01-13 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype2.a4: The script was still buggy. - * builds/unix/freetype-config.in: Make it really work for any install - prefix. - -2002-01-10 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype2.a4: Fix some serious bugs. - -2002-01-09 David Turner <david@freetype.org> - - * builds/unix/configure.ac: Build top-level Jamfile. - -2002-01-09 Maxim Shemanarev <mcseemagg@yahoo.com> - - * src/smooth/ftgrays.c (gray_render_line): Small optimization to - the smooth anti-aliased renderer that deals with vertical segments. - This results in a 5-7% speedup in rendering speed. - -2002-01-08 David Turner <david@freetype.org> - - Added some wrapper scripts to make the installation more - Unix-friendly. - - * configure, install: New files. - - * INSTALL, README.UNX: Updated installation documentation to use the - new 'configure' and 'install' scripts. - -2002-01-07 David Turner <david@freetype.org> - - - * Version 2.0.6 released. - ========================= - - - * docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release. - - * src/tools/docmaker.py: Fixed HTML quoting in sources. - (html_format): Replaced with ... - (html_quote): New function. - (html_quote0): New function. - (DocCode::dump_html): Small improvement. - (DocParagraph::dump, DocBlock::html): Use html_quote0 and html_quote. - - * include/freetype/config/ftoption.h: Setting default options for - a release build (debugging off, bytecode interpreter off). - - * src/base/ftobjs.c, src/base/ftoutln.c, src/cache/ftccmap.c, - src/cff/cffload.c, src/cff/cffobjs.c, src/pshinter/pshalgo2.c, - src/sfnt/ttload.c, src/sfnt/ttsbit.c: Removing small compiler - warnings (in pedantic compilation modes). - -2002-01-05 David Turner <david@freetype.org> - - * src/autohint/ahhint.c (ah_align_linked_edge): Modified computation - of auto-hinted stem widths; this avoids color fringes in - `ClearType-like' rendering. - - * src/truetype/ttgload.c (TT_Load_Glyph_Header, - TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph): - Modified the TrueType loader to make it more paranoid; this avoids - nasty buffer overflows in the case of invalid glyph data (as - encountered in the output of some buggy font converters). - -2002-01-04 David Turner <david@freetype.org> - - * README.UNX: Added special README file for Unix users. - - * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo. - - * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid - of compiler warnings. - - * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning. - -2002-01-03 Werner Lemberg <wl@gnu.org> - - * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler - warning. - -2002-01-03 Keith Packard <keithp@keithp.com> - - * builds/unix/ftsystem.c (FT_New_Stream): Added a fix to ensure that - all FreeType input streams are closed in child processes of a `fork' - on Unix systems. This is important to avoid (potential) access - control issues. - -2002-01-03 David Turner <david@freetype.org> - - * src/type1/t1objs.c (T1_Face_Init): Fixed a bug that crashed the - library when dealing with certain weird fonts like `Stalingrad', in - `sadn.pfb' (this font has no full font name entry). - - * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check): - New function to check the consistency of outline data. - - * src/base/ftobjs.c (FT_Load_Glyph): Use `FT_Outline_Check' to - ensure that loaded glyphs are valid. This allows certain fonts like - `tt1095m_.ttf' to be loaded even though it appears they contain - really funky glyphs. - - There still is a bug there, though. - - * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition. - -2001-12-30 David Turner <david@freetype.org> - - * src/autohint/ahhint.c (ah_hinter_load): Fix advance width - computation of auto-hinted glyphs. This noticeably improves the - spacing of letters in KDE and Gnome. - -2001-12-25 Antoine Leca <Antoine-Freetype@Leca-Marti.org> - - * builds/dos/detect.mk: Correcting the order for Borland compilers: - 16-bit bcc was never selected, always overridden by 32-bit bcc32. - -2001-12-22 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr> - - * src/pcf/pcfread.c (pcf_load_font): Handle property `POINT_SIZE' - and fix incorrect computation of `available_sizes'. - -2001-12-22 David Turner <david@freetype.org> - - * src/autohint/ahhint.c (ah_hinter_load): Auto-hinted glyphs had an - incorrect glyph advance in the case of mono-width fonts (like - Courier, Andale Mono, and others). - -2001-12-22 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/*: Adaptations to latest changes. - Support added for MorphOS. - -2001-12-22 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshrec.c (FT_COMPONENT): Redefine to `trace_pshrec'. - (ps_mask_table_merge, ps_hints_open, ps_hints_stem, - ps_hints_t1stem3, ps_hints_t2mask, ps_hints_t2counter): Fix - FT_ERROR messages. - * src/pshinter/pshalgo1.c (FT_COMPONENT): Define as - `trace_pshalgo1'. - * src/pshinter/pshalgo2.c (FT_COMPONENT): Define as - `trace_pshalgo2'. - * include/freetype/internal/ftdebug.h (FT_Trace): Updated. - - * docs/modules.txt: New file. - -2001-12-21 David Turner <david@freetype.org> - - * src/pshinter/pshrec.c (ps_hints_t2mask, ps_hints_t2counter): - Ignore invalid `hintmask' and `cntrmask' operators (instead of - returning an error). Glyph 2028 of the CFF font `MSung-Light-Acro' - couldn't be rendered otherwise (it seems its charstring is buggy, - though this requires more analysis). - (FT_COMPONENT): Define. - - * src/cff/cffgload.c (CFF_Parse_CharStrings), src/psaux/t1decode.c - (T1_Decoder_Parse_Charstrings), src/pshinter/pshalgo2.c (*), Fixed a - bug where the X and Y axis where inverted in the postscript hinter. - This caused problem when displaying on non-square surfaces. - - * src/pshinter/pshalgo2.c: s/vertical/dimension/. - - * src/pshinter/pshglob.c (psh_globals_new): Replaced a floating - point constant with a fixed-float equivalent. For some reasons not - all compilers are capable of directly computing a floating pointer - constant casted to FT_Fixed, and will link a math library instead. - -2001-12-20 Werner Lemberg <wl@gnu.org> - - * src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix - tracing strings. - * src/cache/ftccmap.c (ftc_cmap_family_init): Ditto. - * src/cache/ftcmanag.c (ftc_family_table_alloc, - ftc_family_table_free, FTC_Manager_Check): Ditto. - * src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto. - - * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning. - -2001-12-20 David Turner <david@freetype.org> - - Added PostScript hinter support to the CFF and CID drivers. - - * include/freetype/internal/cfftypes.h (CFF_Font): New member - `pshinter'. - * src/cff/cffload.c (CFF_Get_Standard_Encoding): New function. - * src/cff/cffload.h: Updated. - * src/cff/cffgload.c (CFF_Init_Builder): Renamed to ... - (CFF_Builder_Init): This. - Added new argument `hinting'. - (CFF_Done_Builder): Renamed to ... - (CFF_Builder_Done): This. - (CFF_Init_Decoder): Added new argument `hinting'. - (CFF_Parse_CharStrings): Implement vstem support. - (CFF_Load_Glyph): Updated. - Add hinting support. - (cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding(). - (cff_argument_counts): Updated. - * src/cff/cffgload.h: Updated. - * src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. - (CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init, - CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GlyphSlot_Init): New - functions. - (CFF_Init_Face): Renamed to ... - (CFF_Face_Init): This. - Add hinter support. - (CFF_Done_Face): Renamed to ... - (CFF_Face_Done): This. - (CFF_Init_Driver): Renamed to ... - (CFF_Driver_Init): This. - (CFF_Done_Driver): Renamed to ... - (CFF_Driver_Done): This. - * src/cff/cffobjs.h: Updated. - * src/cff/cffdrivr.c (cff_driver_class): Updated. - - * include/freetype/internal/t1types.h (CID_FaceRec): New member - `pshinter'. - * src/cid/cidgload.c (CID_Load_Glyph): Add hinter support. - * src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. - (CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs, - CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions. - (CID_Done_Face): Renamed to ... - (CID_Face_Done): This. - (CID_Init_Face): Renamed to ... - (CID_Face_Init): This. - Add hinting support. - (CID_Init_Driver): Renamed to ... - (CID_Driver_Init): This. - (CID_Done_Driver): Renamed to ... - (CID_Driver_Done): This. - * src/cid/cidobjs.h: Updated. - * src/cidriver.c: Updated. - - * src/pshinter/pshrec.c (t2_hint_stems): Fixed. - - * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that - crashed the library on exit. - - * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix - transformation of hinted glyphs. - - * src/cid/cidload.c (cid_read_subrs): Fix error condition. - - * src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs - routines were never released when CID faces were destroyed. - - * src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated - to move the definition of encoding tables back within `cffload.c' - instead of making them part of a shared header (causing problems in - `multi' builds). This reverts change 2001-08-08. - - * docs/CHANGES: Updated for 2.0.6 release. - * docs/TODO: Added `stem3 and counter hints support' to the TODO - list for the Postscript hinter. - * docs/BUGS: Closed the AUTOHINT-NO-SBITS bug. - -2001-12-19 David Turner <david@freetype.org> - - * include/freetype/cache/ftcache.h: Added comments to indicate that - some of the exported functions should only be used by applications - that need to implement custom cache types. - - * src/truetype/ttgload.c (cur_to_org, org_to_cur): Fixed a nasty bug - that prevented composites from loading correctly, due to missing - parentheses around macro parameters. - - * src/sfnt/sfobjs.c (SFNT_Load_Face): Make the `post' and `name' - tables optional to load PCL fonts properly. - - * src/truetype/ttgload.c (TT_Load_Glyph), src/base/ftobjs.c - (FT_Load_Glyph), include/freetype/freetype.h (FT_LOAD_SBITS_ONLY): - `Fixed' the bug that prevented embedded bitmaps to be loaded when - the auto-hinter is used. This actually is a hack but will be enough - until the internal re-design scheduled for FreeType 2.1. - - * src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline - shifting bug in the monochrome renderer. - - * README: Updated version numbers to 2.0.6. - -2001-12-17 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid - glyph header. - -2001-12-15 Werner Lemberg <wl@gnu.org> - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove compiler warning. - * include/freetype/ftcache.h (FTC_Node_Unref): Removed. It is - already in ftcmanag.h. - * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused variable - `gfam'. - * src/cache/ftcmanag.c (ftc_family_table_alloc, - * ftc_family_table_free): Use FT_EXPORT_DEF. - * include/freetype/cache/ftcmanag.h: Updated. - * src/cache/ftccache.c (ftc_node_destroy): Use FT_EXPORT_DEF. - * src/cache/ftccmap.c (ftc_cmap_node_init): Remove unused variable - `cfam'. - Remove compiler warning. - (FTC_CMapCache_Lookup): Remove compiler warnings. - (ftc_cmap_family_init): Ditto. - (FTC_CMapCache_Lookup): Ditto. - - * builds/unix/configure.ac: Increase `version_info' to 8:0:2. - * builds/unix/configure: Regenerated. - -2001-12-14 Werner Lemberg <wl@gnu.org> - - * builds/mac/README: Updated. - -2001-12-14 Scott Long <scott@swiftview.com> - - * src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when - dealing with invalid fonts (i.e. glyph size < 10 bytes). - -2001-12-14 Sam Latinga <slouken@devolution.com> - - * builds/mac/freetype.make: A new Makefile to build with MPW on - MacOS classic. - -2001-12-14 David Turner <david@freetype.org> - - * src/truetype/ttgload.c (TT_Load_Glyph), src/type1/t1gload.c - (T1_Load_Glyph), src/cid/cidgload.c (CID_Load_Glyph), - src/cff/cffgload.c (CFF_Load_Glyph): Fixed a serious bug common to - all font drivers (the advance width was never hinted when it - should). - - * include/freetype/freetype.h (FREETYPE_PATCH): New macro. - * src/base/ftdbgmem.c (debug_mem_dummy) [!FT_DEBUG_MEMORY]: Don't - use `extern' keyword. - -2001-12-12 David Turner <david@freetype.org> - - * src/pshinter/pshglob.c (psh_blues_scale_zones, psh_blues_snap_stem - psh_globals_new): Adding correct BlueScale/BlueShift support, plus - family blues processing. - * src/pshinter/pshglob.h (PSH_BluesRec): Updated. - - Started adding support for the Postscript hinter in the CFF module. - - * src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. - (CFF_Parse_CharStrings): Implement it. - * src/cff/cffgload.h: Updated. - -2001-12-12 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype2.m4: Some portability fixes. - -2001-12-11 Jouk Jansen <joukj@hrem.stm.tudelft.nl> - - * src/base/descrip.mms (OBJS): Add ftdebug.obj. - -2001-12-11 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (TT_Load_Generic_Header): Typos. - -2001-12-11 David Turner <david@freetype.org> - - * builds/unix/freetype-config.in: Modified the script to prevent - passing `-L/usr/lib' to gcc. - - * docs/FTL.TXT: Simple fix (change `LICENSE.TXT' to `FTL.TXT'). - - * builds/unix/freetype2.m4: New file for checking configure paths. - We need to install it in $(prefix)/share/aclocal/freetype2.m4 but I - didn't modify builds/unix/install.mk yet. - - * INSTALL: Updated the instructions to build shared libraries with - Jam. They were simply wrong. - - * src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused - slightly improper results for `FT_Cos' and `FT_Sin' (example: - FT_Sin(0) == -1!). - -2001-12-11 Detlef Würkner <TetiSoft@apg.lahn.de> - - * include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE): - Fixed incorrect argument types. - -2001-12-10 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr> - - * src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts - by setting the `face->metrics.max_advance' correctly. - -2001-12-07 David Turner <david@freetype.org> - - * include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new - charmap cache. - * src/cache/ftcache.c: Updated. - - * src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/. - -2001-12-06 Leonard Rosenthol <leonardr@lazerware.com> - - Added support for reading .dfont files on Mac OS X. Also added a - new routine which looks up a given font by name in the Mac OS and - returns the disk file where it resides. - - * src/base/ftmac.c: Include <Files.h> and <TextUtils.h>. - (is_dfont): New auxiliary function. - (FT_New_Face_From_dfont): New function. - (FT_GetFile_From_Mac_Name): New exported function. - (FT_New_Face): Updated. - * include/freetype/ftmac.h: Updated. - -2001-12-06 David Turner <david@freetype.org> - - * src/cache/Jamfile, src/cache/rules.mk: Updated. - -2001-12-06 Werner Lemberg <wl@gnu.org> - - * INSTALL: Small update. - -2001-12-05 David Turner <david@freetype.org> - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for - debugging purposes. - Comment out use of `origin'. - - * src/smooth/ftsmooth.c (ft_smooth_render): Fixed a nasty hidden bug - where outline shifting wasn't correctly undone after bitmap - rasterization. This created problems with certain glyphs (like '"' - of certain fonts) and the cache system. - - * src/pshinter/pshalgo1.c (psh1_hint_table_init): Fix typo. - * src/pshinter/pshalgo2.c (psh2_hint_table_init): Fix typo. - (ps2_hints_apply): Small fix. - -2001-12-05 David Turner <david@freetype.org> - - * src/pshinter/pshalgo2.c (psh2_hint_table_init), - src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler - warnings. - - * include/freetype/ftcache.h, include/freetype/cache/*, src/cache/*: - Yet another massive rewrite of the caching sub-system in order to - both increase performance and allow simpler cache sub-classing. As - an example, the code for the image and sbit caches is now much - simpler. - - I still need to update the documentation in - www/freetype2/docs/cache.html to reflect the new design though. - - * include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New - macro. - (FT_CACHE_INTERNAL_CACHE_H): Updated. - -2001-12-05 David Krause <freetype@davidkrause.com> - - * docs/license.txt: s/X Windows/X Window System/. - -2001-12-04 Werner Lemberg <wl@gnu.org> - - * src/raster/ftraster.c: Fix definition condition of MEM_Set(). - * src/smooth/ftgrays.c (M_Y): Change value to 192. - * src/base/ftdbgmem.c (ft_mem_table_destroy): Fix printf() parameter. - Remove unused variable. - * src/cache/ftcimage.c (ftc_image_node_init, - ftc_image_node_compare): Remove unused variables. - * src/cache/ftcsbits.c (ftc_sbit_node_weight): Remove unused - variable. - * src/raster/ftraster.c (MEM_Set): Move definition down to avoid - compiler warning. - * src/autohint/ahhint.c (ah_hinter_hint_edges): Use UNUSED() to - avoid compiler warnings. - * src/pcf/pcfread.c (tableNames): Use `const'. - (pcf_read_TOC): Change counter name to avoid compiler warning. - Use `const'. - * src/pshinter/pshrec.c (ps_hints_close): Remove redundant - declaration. - * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables - to avoid shadowing. - * src/pshinter/pshalgo2.c (psh2_hint_table_activate_mask): Ditto. - * src/type1/t1objs.h: Remove double declarations of `T1_Size_Init()' - and `T1_Size_Done()'. - -2001-11-20 Antoine Leca <antoineleca@multimania.com> - - * include/freetype/ttnameid.h: Added some new Microsoft language - codes and LCIDs as found in MSDN (Passport SDK). Also added - comments about the meaning of bit 57 of the `OS/2' table - (TT_UCR_SURROGATES) which (with OpenType v.1.3) now means `there is - a character beyond 0xFFFF in this font'. Thanks to Detlef Würkner - <TetiSoft@apg.lahn.de> for noticing this. - -2001-11-20 David Turner <david@freetype.org> - - * src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting - routine that created nasty alignment artefacts. - - * src/pshinter/pshrec.c, tests/gview.c: Debugging updates. - - * src/smooth/ftgrays.c: De-activated experimental gamma support. - Apparently, `optimal' gamma tables depend on the monitor type, - resolution and general karma, so it's better to compute them outside - of the rasterizer itself. - (gray_convert_glyph): Use `volatile' keyword. - -2001-10-29 David Turner <david@freetype.org> - - Adding experimental `gamma' support. This produces smoother glyphs - at small sizes for very little cost. - - * src/smooth/ftgrays.c (grays_init_gamma): New function. - (gray_raster_new): Use it. - - Various fixes to the auto-hinter. They merely improve the output of - sans-serif fonts. Note that there are still problems with serifed - fonts and composites (accented characters). - - * src/autohint/ahglyph.c (ah_outline_load, - ah_outline_link_segments): Implement it. - Fix typos. - (ah_outline_save, ah_outline_compute_segments): Fix typos. - * src/autohint/ahhint.c (ah_align_serif_edge): New argument - `vertical'. Implement improvement. - (ah_hint_edges_3, ah_hinter_hint_edges): Implement it. - Fix typos. - (ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix - typos. - (ah_hinter_load): Set `ah_debug_hinter' if DEBUG_HINTER is defined. - * src/autohint/ahmodule.c: Implement support for DEBUG_HINTER macro. - * src/autohint/ahtypes.h: Ditto. - (AH_Hinter): Remove `disable_horz_edges' and `disable_vert_edges' - (making them global as `ah_debug_disable_horz' and - `ah_debug_disable_vert'). - Fix typos. - - * tests/gview.c: Updated the debugging glyph viewer to show the - hints generated by the `autohint' module. - -2001-10-27 David Turner <david@freetype.org> - - * src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that - considerably lowered the performance of the abstract chunk cache. - -2001-10-26 David Turner <david@freetype.org> - - * include/freetype/ftcache.h, include/freetype/cache/*.h, - src/cache/*.c: Major re-design of the cache sub-system to provide - better performance as well as an `Acquire'/`Release' API. Seems to - work well here, but probably needs a bit more testing. - -2001-10-26 Leonard Rosenthol <leonardr@lazerware.com> - - * builds/mac/README: Updated to reflect my taking over the project - and that is now being actively maintained. - - * src/base/ftmac.c (parse_fond): Applied patches from Paul Miller - <paulm@profoundeffects.com> to support loading a face other than the - first from a FOND resource. - (FT_New_Face_From_FOND): Updated. - -2001-10-25 Leonard Rosenthol <leonardr@lazerware.com> - - * builds/mac/ftlib.prj: Update of CodeWarrior project file for Mac - OS for latest version (7) of CWPro and for recent changes to the FT - source tree. - -2001-10-25 David Turner <david@freetype.org> - - * include/freetype/config/ftoption.h: Updated comments to explain - precisely how to use project-specific macro definitions without - modifying this file manually. - - (FT_CONFIG_FORCE_INT64): Define. - - (FT_DEBUG_MEMORY): New macro. - -2001-10-24 Tom Kacvinsky <tkacvins@freetype.org> - - * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'. - -2001-10-23 David Turner <david@freetype.org> - - * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c: - Improvements to the memory debugger to report more information in - case of errors. Also, some allocations that occurred through REALLOC - couldn't be previously caught correctly. - - * src/autohint/ahglyph.c (ah_outline_compute_segments, - ah_outline_compute_edges), src/raster/ftraster.c (ft_black_new), - src/smooth/ftgrays.c (gray_render_span, gray_raster_new): Replaced - liberal uses of memset() by the MEM_Set() macro. - -2001-10-23 David Turner <david@freetype.org> - - * src/raster/ftraster.c (Update): Removed to be inlined in ... - (Sort): Updated. - -2001-10-22 David Turner <david@freetype.org> - - * builds/unix/ftsystem.c (FT_New_Memory, FT_Done_Memory), - builds/vms/ftsystem.c (FT_New_Memory, FT_Done_Memory), - builds/amiga/ftsystem.c (FT_New_Memory, FT_Done_Memory), - src/base/ftdbgmem.c: Updated the memory debugger and - platform-specific implementations of `ftsystem' in order to be able - to debug memory allocations on Unix, VMS and Amiga too! - - * src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed - some bogus warnings. - - * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c: - Modified the debugging memory manager to report the location (source - file name + line number) where leaked memory blocks are allocated in - the source file. - - * src/base/ftdbgmem.c: New debugging memory manager. You must - define the FT_DEBUG_MEMORY macro in `ftoption.h' to enable it. It - will record every memory block allocated and report simple errors - like memory leaks and double deletes. - - * src/base/Jamfile: Include ftdbgmem. - * src/base/rules.mk: Ditto. - * src/base/ftbase.c: Include ftdbgmem.c. - - * include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY - macro definition. - - * src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory): Modified the - base component to use the debugging memory manager when the macro - FT_DEBUG_MEMORY is defined. - -2001-10-21 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/cffload.c (CFF_Done_Font): Free subfonts array only if - we are working with a CID keyed CFF font. Otherwise, a variable - that was never allocated memory might freed. This is a correction - to the previous patch for freeing subfonts. - -2001-10-21 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to - avoid a memory leak. - -2001-10-21 David Turner <david@freetype.org> - - * src/pshinter/pshalgo2.c, src/pshinter/pshalgo1.c, - src/pshinter/pshglob.c: Removing compiler warnings in pedantic modes - (in multi-object compilation mode, mainly). - -2001-10-20 Tom Kacvinsky <tkacvins@freetype.org> - - * src/type1/t1load.c (parse_encoding): Add a test to make sure - that custom encodings (i.e., neither StandardEncoding nor - ExpertEncoding) are not loaded twice when the Type 1 font is - synthetic. - - * src/type1/t1load.c (parse_font_name, parse_subrs): Added a test - for when loading synthetic fonts to make sure that the font name - and subroutines are not loaded twice. This is to remove a memory - leak that occurred because the original memory blocks for these - objects were not deallocated when the objects were parsed the - second time. - -2001-10-19 David Turner <david@freetype.org> - - * src/smooth/ftgrays.c, src/pshinter/pshglob.h, - src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of - compiler warnings. - - * src/pshinter/module.mk, src/pshinter/rules.mk: Adding control - files to build the PostScript hinter with the `old' build system. - -2001-10-19 Jacob Jansen <joukj@hrem.stm.tudelft.nl> - - * descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build - files. - -2001-10-18 David Turner <david@freetype.org> - - * src/psnames/pstables.h, src/tools/glnames.py: Rewrote the - `glnames.py' script used to generate the `pstables.h' header file. - The old one contained a serious bug that made FreeType return - incorrect glyph names for certain glyphs. - - * src/truetype/ttdriver.c (Set_Char_Sizes): Changing computation of - pixel size from character size to use rounding. This is an - experiment to see whether this gives values similar to Windows for - scaled ascent/descent/etc. - - * src/base/ftcalc.c (FT_Div64by32): Changed the implementation - slightly since the original code was mis-compiled on Mac machines - using the MPW C compiler. - - * src/base/ftobjs.c (FT_Realloc): When a memory block was grown - through FT_Realloc(), the new bytes were not set to 0, which created - some strange bugs in the PostScript hinter. - (destroy_face): Don't deallocate unconditionally. - - * src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph): - Adding support to new PostScript hinter. - - * include/freetype/internal/psglobal.h, - include/freetype/internal/pshints.h, - include/freetype/config/ftmodule.h, src/pshinter/Jamfile, - src/pshinter/pshalgo.h, src/pshinter/pshalgo1.h, - src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.h, - src/pshinter/pshalgo2.c, src/pshinter/pshglob.h, - src/pshinter/pshglob.c, src/pshinter/pshinter.c, - src/pshinter/pshmod.c, src/pshinter/pshmod.h, src/pshinter/pshrec.c, - src/pshinter/pshrec.h: Adding new PostScript hinter module. - - * include/freetype/internal/ftobjs.h, - include/freetype/internal/internal.h, - include/freetype/internal/psaux.h, - include/freetype/internal/t1types.h, src/psaux/psobjs.c, - src/psaux/psobjs.h, src/psaux/t1decode.h, src/psaux/t1decode.c, - src/type1/t1driver.c, src/type1/t1gload.c, src/type1/t1objs.c, - src/type1/t1objs.h: Updates to use the new PostScript hinter. - - * tests/Jamfile, tests/gview.c: Adding a new glyph hinting - viewer/debugger to the source tree. Note that you will _not_ be - able to compile it since it depends on an unavailable graphics - library named `Nirvana' to render vector images. - -2001-10-17 David Turner <david@freetype.org> - - - * Version 2.0.5 released. - ========================= - - - * include/freetype/freetype.h, include/internal/ftobjs.h, - src/base/ftobjs.c, src/type1/t1driver.c: Adding a new function named - 'FT_Get_Postscript_Name' to retrieve the PostScript name of a given - font. Should work with all formats except pure CFF/CEF fonts (this - will be added soon). - - * src/cid/cidriver (cid_get_postscript_name): New function. - (CID_Get_Interface): Handle `postscript_name' interface. - - * src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function. - (SFNT_Get_Interface): Handle `postscript_name' interface. - - * src/type1/t1driver.c (t1_get_ps_name): New function. - (Get_Interface): Handle `postscript_name' interface. - - * README, docs/CHANGES: Updated for 2.0.5 release. - -2001-10-08 David Turner <david@freetype.org> - - Fixed a bug in `glnames.py' that prevented it from generating - correct glyph names tables. This resulted in the unavailability of - certain glyphs like `Cacute', `cacute' and `lslash' in Unicode - charmaps, even if these were present in the font (causing problems - for Polish users). - - * src/tools/glnames.py (mac_standard_names): Fixed. - (t1_standard_strings): Some fixes and renamed to ... - (sid_standard_names): This. - (t1_expert_encoding): Fixed. - (the_adobe_glyph_list): Renamed to ... - (adobe_glyph_names): This. - (the_adobe_glyphs): Renamed to ... - (adobe_glyph_values): This. - (dump_mac_indices, dump_glyph_list, dump_unicode_values, main): - Updated. - * src/psnames/pstables.h: Regenerated. - * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset. - Fix return value. - Use `sid_standard_table' and `ps_names_to_unicode' instead of - `t1_standard_glyphs' and `names_to_unicode'. - (PS_Macintosh_Name): Use `ps_glyph_names' instead of - `standard_glyph_names'. - (PS_Standard_Strings): Use `sid_standard_names' instead of - `t1_standard_glyphs'. - - * doc/BUGS, doc/TODO: New documents. - -2001-10-07 Richard Barber <rich@solutionuk.com> - - * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented - correct LRU behaviour. - -2001-10-07 David Turner <david@freetype.org> - - setjmp() and longjmp() are now used for rollback (i.e. when memory - pool overflow occurs). - - Function names are now all uniformly prefixed with `gray_'. - - * src/smooth/ftgrays.c: Include <setjmp.h>. - (ErrRaster_MemoryOverflow): New macro. - (TArea): New type to store area values in each cell (using `int' was - too small on 16-bit systems). <limits.h> is included to properly - get the needed data type. - (TCell, TRaster): Use it. - (TRaster): New element `jump_buffer'. - (gray_compute_cbox): Use `RAS_ARG' as the only parameter and get - `outline' from it. - (gray_record_cell): Use longjmp(). - (gray_set_cell): Use gray_record_cell() for error handling. - (gray_render_line, gray_render_conic, gray_render_cubic): Simplify. - (gray_convert_glyph_inner): New function, using setjmp(). - (gray_convert_glyph): Use it. - -2001-10-07 David Turner <david@freetype.org> - - Provide a public API to manage multiple size objects for a given - FT_Face in the new header file `ftsizes.h'. - - * include/freetype/ftsizes.h: New header file, - * include/freetype/internal/ftobjs.h: Use it. - Remove declarations of FT_New_Size and FT_Done_Size (moved to - ftsizes.h). - * include/freetype/config/ftheader.h (FT_SIZES_H): New macro. - * src/base/ftobjs.c (FT_Activate_Size): New function. - * src/cache/ftcmanag.c: Include ftsizes.h. - (ftc_manager_init_size, ftc_manager_flush_size): Use - FT_Activate_Size. - -2001-09-20 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/*: Added port to Amiga with the SAS/C compiler. - -2001-09-15 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/type1/t1afm.c (T1_Done_AFM): Free `afm'. - -2001-09-10 Yao Zhang <yzhang@sharemedia.com> - - * src/sfnt/ttcmap.c (code_to_index2): Handle code values with - hi-byte == 0 correctly. - -2001-09-10 Werner Lemberg <wl@gnu.org> - - * builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo. - -2001-08-30 Martin Muskens <mmuskens@aurelon.com> - - * src/type1/t1load.c (parse_font_matrix): A new way to compute the - units per EM with greater accuracy (important for embedded T1 fonts - in PDF documents that were automatically generated from TrueType - ones). - - * src/type1/t1load.c (is_alpha): Now supports `+' in font names; - this is used in embedded fonts. - - * src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that - generated a dangling pointer reference. - -2001-08-30 Anthony Feik <afeick@hotmail.com> - - * src/type1/t1afm.c (T1_Read_AFM): Now correctly sets the flag - FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files. - -2001-08-25 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of - `cmap_rec_fields'. - - * include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]: - Undefine FT_ERR_BASE before defining again. - -2001-08-22 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.h: Fix prototype of TT_Move_Func. - -2001-08-21 Werner Lemberg <wl@gnu.org> - - * builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'. - -2001-08-21 David Turner <david@freetype.org> - - * include/freetype/config/ftoption.h: Changed the default setting - for FT_CONFIG_OPTION_USE_MODULE_ERRORS to undefined, since it breaks - source compatibility in a few cases. Updated the comment to explain - that too. - -2001-08-17 Martin Muskens <mmuskens@aurelon.com> - - * src/base/ftcalc.c (FT_MulDiv): Fixed serious typo. - -2001-08-12 Werner Lemberg <wl@gnu.org> - - Updating to OpenType 1.3. - - * include/freetype/internal/tttypes.h (TT_CMap0, TT_CMap2, TT_CMap4, - TT_CMap6): Adding field `language'. - (TT_CMapTable): Removing field `language'. - Type of `length' field changed to FT_ULong. - Adding fields for cmaps format 8, 10, and 12. - (TT_CMapGroup): New auxiliary structure. - (TT_CMap8_12, TT_CMap10): New structures. - * include/freetype/tttables.h (TT_HoriHeader, TT_VertHeader): - Removed last element of `Reserved' array. - * include/freetype/ttnameid.h (TT_PLATFORM_CUSTOM, TT_MS_ID_UCS_4, - TT_NAME_ID_CID_FINDFONT_NAME): New macros. - - * src/sfnt/ttcmap.c (TT_CharMap_Load): Updated loading of `language' - field to the new structures. - Fixed freeing of arrays in case of unsuccessful loads. - Added support for loading format 8, 10, and 12 cmaps. - (TT_CharMap_Free): Added support for freeing format 8, 10, and 12 - cmaps. - (code_to_index4): Small improvement. - (code_to_index6): Ditto. - (code_to_index8_12, code_to_index10): New functions. - * src/sfnt/ttload.c (TT_Load_Metrics_Header): Updated to new - structure. - (TT_Load_CMap): Ditto. - - * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS - Unicode). - -2001-08-11 Werner Lemberg <wl@gnu.org> - - * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning. - -2001-08-09 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to - cff_get_glyph_name for consistency. - - (cff_get_glyph_index): Minor documentation change. - - * src/type1/t1driver.c (t1_get_name_index): New function used in - Get_Interface as the function returned when the `name_index' - function is requested. - - (get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency. - -2001-08-08 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/cffload.c: Removed definitions of cff_isoadobe_charset, - cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding, - and cff_expert_encoding arrays to cffload.h. - - * src/cff/cffload.h: Added definitions of cff_isoadobe_charset, - cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding, - and cff_expert_encoding arrays. - - * src/cff/cffdrivr.c (cff_get_name_index): New function, returned - when `cff_get_interface' is called with a request for the - `name_index' function. - - (cff_get_interface): Modified so that it returns the function - `cff_get_name_index' when the `name_index' function is requested. - - * src/base/ftobjs.c (FT_Get_Name_Index): New function, used to - return a glyph index for a given glyph name only if the driver - supports glyph names. - - * include/freetype/internal/ftobjs.h (FT_Name_Index_Requester): - New function pointer type definition used in the function - FT_Get_Name_Index. - - * include/freetype/freetype.h (FT_Get_Name_Index): Added - documentation and prototype. - -2001-07-26 Werner Lemberg <wl@gnu.org> - - * builds/cygwin/*: Removed. Use the unix stuff instead. - -2001-07-26 Jouk Jansen <joukj@hrem.stm.tudelft.nl> - - * builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated - 2001-06-27. - -2001-07-17 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/psaux.h (PS_Table): Use FT_Offset for - `cursor' and `capacity'. - * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for second - parameter. - (PS_Table_Add): Use FT_Offset for `new_size'. - - Add support for version 0.5 maxp tables. - - * src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it. - (TT_Load_OS2): Initialize some values. - -2001-07-13 Werner Lemberg <wl@gnu.org> - - * src/base/ftsynth.c: Include ftcalc.h unconditionally. - -2001-07-07 David Turner <david@freetype.org> - - * src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread: - Removed pedantic compiler warnings when the bytecode interpreter is - compiled in. - -2001-07-03 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahhint.c (ah_hinter_align_weak_points): Remove - unused variable `edges'. - (ah_hinter_load): Remove unused variables `old_width' and - `new_width'. - * src/cid/cidload.c (cid_decrypt): Use `U' for constant (again). - * src/psaux/psobjs.c (T1_Decrypt): Ditto. - * src/type1/t1parse.c (T1_Get_Private_Dict): Ditto. - -2001-06-28 David Turner <david@freetype.org> - - * include/internal/ftstream.h: Modified the definitions - of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness. - -2001-06-26 Werner Lemberg <wl@gnu.org> - - * src/cid/cidload.c, src/cid/cidload.h (cid_decrypt): Use FT_Offset - instead of FT_Int as type for `length' parameter. - * include/freetype/internal/psaux.h (PSAux_Interface): Updated. - -2001-06-27 Wolfgang Domröse <porthos.domroese@harz.de> - - * src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset - instead of FT_Int as type for `length' parameter. - - - * Version 2.0.4 released. - ========================= - - -2001-06-27 David Turner <david@freetype.org> - - * builds/unix/ftconfig.in: Changed the definition of the - FT_CALLBACK_DEF macro. - - * include/freetype/ftconfig.h, src/*/*.c: Changed the definition and - use of the FT_CALLBACK_DEF macro in order to support 16-bit - compilers. - - * builds/unix/ftconfig.in: Changed the definition of the - FT_CALLBACK_DEF macro. - - * src/sfnt/ttload.c (TT_Load_Kern): The kern table loader now ensures - that the kerning table is correctly sorted (some problem fonts don't - have a correct kern table). - -2001-06-26 Wolfgang Domröse <porthos.domroese@harz.de> - - * include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo. - -2001-06-24 David Turner <david@freetype.org> - - * src/base/ftcalc.c (ft_div64by32): Fixed the source to work - correctly on 16-bit systems. - -2001-06-23 Anthony Fok <fok@debian.org> - - * debian/*: Added Debian package build directory for 2.0.4. - -2001-06-22 David Turner <david@freetype.org> - - * docs/PATENTS: Added patents disclaimer. This one was missing! - - * docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release. - -2001-06-20 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftconfig.h: Add two more `L's to - constants. - Add missing semicolons. - - * builds/toplevel.mk: Do similar change as for - builds/unix/detect.mk. - - * include/freetype/freetype.h (FT_ENC_TAG): New version to make it - easier to redefine. - * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto. - - * src/pcf/pcfread.c (pcf_get_encodings): Add cast. - -2001-06-19 David Turner <david@freetype.org> - - * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html: - Updated the Visual C++ project (for the 2.0.4 release). - - * builds/unix/detect.mk: Added rule for AIX detection (which uses - /usr/sbin/init instead of /sbin/init). - - * include/freetype/fterrors.h, src/*/*err*.h: Updated some of the - error macros to simplify handling of new error scheme. - -2001-06-19 Werner Lemberg <wl@gnu.org> - - * include/freetype/fttypes.h (FT_ERROR_MODULE): New macro. - -2001-06-19 David Turner <david@freetype.org> - - Removing _lots_ of compiler warnings when the most pedantic warning - levels of Visual C++ and Borland C++ are used. Too many files to be - listed here, but FT2 now compiles without warnings with VC++ and the - `/W4' warning level (lint-style). - - * include/freetype/freetype.h (FT_New_Memory_Face): Updated - documentation. - * include/freetype/fttypes.h (FT_BOOL): New macro. - * include/freetype/internal/ftdebug.h: Add #pragma for Visual C++ - to suppress warning. - * include/freetype/internal/ftstream.h (FT_GET_SHORT_{BE,LE}, - FT_GET_OFF3_{BE,LE}, FT_GET_LONG_{BE,LE}): New macros. - (NEXT_*): Use them. - * src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H. - (FT_New_Memory_Face): Add `const' to function declaration. - -2001-06-18 Werner Lemberg <wl@gnu.org> - - Minor cleanups to remove compiler warnings. - - * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use - `L' for constant. - * include/freetype/config/ftoption.h (FT_RENDER_POOL_SIZE): Ditto. - * src/base/ftcalc.c (FT_MulDiv): Use `L' for constant. - * src/base/ftglyph.c (FT_Glyph_Get_CBox): Remove `error' variable. - * src/base/fttrigon.c (ft_trig_arctan_table): Use `L' for constants. - * src/base/ftobjs.c (FT_Done_Size): Fix return value. - (FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Get_Kerning): Remove - unused `memory' variable. - * src/autohint/ahglyph.c (ah_get_orientation): Use `L' for constant. - * src/autohint/ahhint.c (ah_hint_edges_3, - ah_hinter_align_edge_points): Remove unused `before' and `after' - variables. - (ah_hinter_align_weak_points): Remove unused `edge_limit' variable. - (ah_hinter_load): Remove unused `new_advance', `start_contour', - and `metrics' variables. - * src/cff/cffload.c (CFF_Load_Encoding): Remove dead code to avoid - compiler warning. - * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset' - variable. - * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused - `outline' variable. - (cff_compute_bias): Use `U' for constant. - * src/cid/cidload.c (cid_decrypt): Ditto. - * src/psaux/psobjs.c (T1_Decrypt): Ditto. - * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto. - * src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version' - variable. - * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top' - variable. - * src/truetype/ttgload.c (load_truetype_glyph): Remove unused - `num_contours' and `ins_offset' variables. - (compute_glyph_metrics): Remove unused `Top' and `x_scale' - variables. - (TT_Load_Glyph): Remove unused `memory' variable. - * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants. - -2001-06-18 Werner Lemberg <wl@gnu.org> - - Make the new error scheme source compatible with older FT versions - by introducing another layer. - - * include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New - macros. - (FT_NOERRORDEF): Removed. - * include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_. - -2001-06-16 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FT_ENC_TAG): New macro. - (FT_Encoding_): Use it. - * include/freetype/ftimage.h (FT_IMAGE_TAG): Define it - conditionally. - -2001-06-14 David Turner <david@freetype.org> - - Modified the TrueType interpreter to let it use the new - trigonometric functions provided in `fttrigon.h'. This gets rid of - some old 64-bit computation routines, as well as many warnings when - compiling the library with the `long long' 64-bit integer type. - - * include/freetype/config/ftoption.h: Undefine - FT_CONFIG_OPTION_OLD_CALCS. - * include/freetype/internal/ftcalc.h: Rearrange use of - FT_CONFIG_OPTION_OLD_CALCS. - * src/base/ftcalc.c: Add declaration of FT_Int64 if - FT_CONFIG_OPTION_OLD_CALCS isn't defined. - * src/truetype/ttinterp.c: Use FT_TRIGONOMETRY_H. - (Norm): Add a special version if FT_CONFIG_OPTION_OLD_CALCS isn't - defined. - (Current_Ratio, Normalize): Simplify code. - -2001-06-11 Mike Owens <MOwens@amtdatasouth.com> - - * src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove - compiler warnings. - -2001-06-08 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.in: Renamed to ... - * builds/unix/configure.ac: This to make sure that autoconf 2.50 is - needed. - Run `autoupdate' on it. - Increase `version_info' to 7:0:1. - * builds/unix/configure: Regenerated. - -2001-06-08 David Turner <david@freetype.org> - - * src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that - corrupted transformed glyphs that were auto-hinted (the transform - was applied twice). - - Fixed a bug that returned an invalid linear width for composite - TrueType glyphs. - - * include/internal/tttypes.h (TT_Loader_): Two new elements `linear' - and `linear_def'. - * src/truetype/ttgload.c (load_truetype_glyph, - compute_glyph_metrics): Use it. - - * include/fttypes.h (FT_ERROR_BASE): New macro. - * src/base/ftobjs.c (FT_Open_Face, FT_Render_Glyph_Internal): Use it - to make source code work with the new error scheme implemented by - Werner. - * src/base/ftoutln.c (FT_Outline_Render): Ditto. - -2001-06-07 Werner Lemberg <wl@gnu.org> - - Updating to libtool 1.4.0 and autoconf 2.50. - - * builds/unix/ltconfig: Removed. - * builds/unix/ltmain.sh, builds/unix/configure.in, - builds/unix/aclocal.m4: Updated. - * builds/unix/configure: Regenerated. - -2001-06-06 Werner Lemberg <wl@gnu.org> - - Complete redesign of error codes. Please check ftmoderr.h for more - details. - - * include/freetype/internal/cfferrs.h, - include/freetype/internal/tterrors.h, - include/freetype/internal/t1errors.h: Removed. Replaced with files - local to the module. All extra error codes have been moved to - `fterrors.h'. - - * src/sfnt/ttpost.h: Move error codes to `fterrors.h'. - - * src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h, - src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h, - src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h, - src/smooth/ftsmerrs.h, src/truetype/tterrors.h, - src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the - error names for the module it belongs to. - - * include/freetype/ftmoderr.h: New file, defining the module error - offsets. Its structure is similar to `fterrors.h'. - - * include/freetype/fterrors.h (FT_NOERRORDEF): New macro. - (FT_ERRORDEF): Redefined to use module error offsets. - All internal error codes are now public; unused error codes have - been removed, some are new. - - * include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New - macro. - * include/freetype/config/ftoption.h - (FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro. - - All other source files have been updated to use the new error codes; - some already existing (internal) error codes local to a module have - been renamed to give them the same name as in the base module. - - All make files have been updated to include the local error files. - -2001-06-06 Werner Lemberg <wl@gnu.org> - - * src/cid/cidtokens.h: Replaced with... - * src/cid/cidtoken.h: This file for 8+3 consistency. - - * src/raster/ftraster.c: Use macros for header file names. - - * src/include/freetype/tttables.h (TT_HoriHeader_, TT_VertHeader_): - Fix length of `Reserved' array. Note that this isn't the real fix - since recent OpenType specs have introduced a `CaretOffset' field - instead of the first reserved byte. - -2001-05-29 Werner Lemberg <wl@gnu.org> - - * INSTALL: Minor fixes. - - - * Version 2.0.3 released. - ========================= - - -2001-05-29 David Turner <david@freetype.org> - - * INSTALL, docs/CHANGES: Updated. - -2001-05-25 David Turner <david@freetype.org> - - Moved several documents from the top-level to the `docs' directory. - - * src/base/ftcalc.c (FT_DivFix): Small fix to return value. - -2001-05-16 David Turner <david@freetype.org> - - * src/truetype/ttgload.c (load_truetype_glyph): Fixed a bug in the - composite loader. Spotted by Keith Packard. - * src/base/ftobjs.c (FT_GlyphLoader_Check_Points, - FT_GlyphLoader_Check_Subglyphs): Ditto. - -2001-05-14 David Turner <david@freetype.org> - - Fixed the incorrect blue zone computations, and improved the - composite support. Note that these changes result in improved - rendering, while sometimes introducing their own artefacts. This is - probably the last big change to the autohinter before the - introduction of a complete replacement. - - * src/autohint/ahglobal.c (sort_values): Fix loop. - * src/autohint/ahglyph.c: Removed some obsolete code. - (ah_outline_compute_edges): Modify code to set the ah_edge_round - flag. - (ah_outline_compute_blue_edges): Add code to compute active blue - zones. - * src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags - value. - - * src/base/ftcalc.c (FT_DivFix): Fixed a bug in the 64-bit code that - created incorrect scale factors! - (FT_RoundFix, FT_CeilFix, FT_FloorFix): Minor improvements. - -2001-05-12 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__. - * include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ -> - __FTTRIGON_H__. - Include FT_FREETYPE_H. - Beautified; added copyright. - * src/base/fttrigon.c: Beautified; added copyright. - -2001-05-11 David Turner <david@freetype.org> - - * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c - (parse_font_matrix), src/type1/t1load.c (parse_font_matrix): Fixed - the incorrect EM size computation. - - * include/freetype/fttrigon.h, src/base/fttrigon.c: New files, - adding trigonometric functions to the core API (using Cordic - algorithms). - * src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them. - - * builds/newline: New file. - * builds/top_level.mk, builds/detect.mk: Use it. This fixes - problems with Make on Windows 2000, as well as problems when `make - distclean' is invoked on a non-Unix platform when there is no - `config.mk' in the current directory. - - * builds/freetype.mk: Fixed a problem with object deletions under - Dos/Windows/OS/2 systems. - - Added new directory to hold tools and test programs. - - * docs/docmaker.py, docs/glnames.py: Moved to... - * src/tools/docmaker.py, src/tools/glnames.py: This place. - * src/tools/cordic.py: New file used to compute arctangent table - needed by fttrigon.c. - * src/tools/test_bbox.c, src/tools/test_trig.c: New test files. - - * src/tools/docmaker.py: Improved the script to add the current date - at the footer of each web page (useful to distinguish between - versions). - - * Jamfile: Fixed incorrect HDRMACRO argument. - - * TODO: Removed the cubic arc bbox computation note, since it has been - fixed recently. - * src/base/ftbbox.c (test_cubic_zero): Renamed to... - (test_cubic_extrema): This function. Use `UL' for unsigned long - constants. - - * include/freetype/t1tables.h, include/freetype/config/ftoption.h: - Formatting. - -2001-05-10 David Turner <david@freetype.org> - - * src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak - which happened when trying to open 0-size font files! - -2001-05-09 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftcalc.h: Move declaration of - FT_SqrtFixed() out of `#ifdef FT_LONG64'. - -2001-05-08 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr> - - * src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width - computation. - -2001-05-08 David Turner <david@freetype.org> - - * docs/docmaker.py: Updated the DocMaker script in order to add - command line options (--output,--prefix,--title), fix the erroneous - line numbers reported during errors and warnings, and other - formatting issues. - - * src/base/ftcalc.c (FT_MulDiv, FT_MulFix, FT_DivFix): Various tiny - fixes related to rounding in 64-bits routines and - pseudo-`optimizations'. - -2001-04-27 David Turner <david@freetype.org> - - * src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient - normalization algorithm (invalid final bit position, and invalid - shift computation). - -2001-04-26 Werner Lemberg <wl@gnu.org> - - * builds/unix/config.guess, builds/unix/config.sub: Updated to - latest versions from gnu.org. - - * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag. - - * include/freetype/internal/ftcalc.h: Define FT_SqrtFixed() - unconditionally. - * src/base/ftbbox.c: Include FT_INTERNAL_CALC_H. - Fix compiler warnings. - * src/base/ftcalc.c: Fix (potential) compiler warnings. - -2001-04-26 David Turner <david@freetype.org> - - * src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit - fixed-point square root computation. It is now used even with - 64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-) - - * src/base/ftbbox.c: Removed invalid `#include FT_BEZIER_H' line. - -2001-04-25 David Turner <david@freetype.org> - - * src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use - direct computations with 16.16 values instead of sub-divisions. It - is now slower, but proves a point :-) - - * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c: - Fixed the Bézier stack depths. - - * src/base/ftcalc.c (FT_MulFix): Minor rounding fix. - - * builds/beos: Added BeOS-specific files to the old build system - (no changes were necessary to support BeOS in the Jamfile though). - -2001-04-20 David Turner <david@freetype.org> - - * ftconfig.h, ftoption.h: Updated `ftconfig.h' to detect 64-bit int - types on platforms where Autoconf is not available). Also removed - FTCALC_USE_LONG_LONG and replaced it with - FT_CONFIG_OPTION_FORCE_INT64. - - * builds/win32/freetype.dsp: Updated the Visual C++ project file. - Doesn't create a DLL yet. - - * cffgload.c: Removed a compilation warning. - -2001-04-10 Tom Kacvinsky <tkacvins@freetype.org> - - * t1load.c (parse_charstrings): Changed code for placing .notdef - glyph into slot 0 so that we no longer have a memory access - violation. - - * t1load.h: In structure T1_Loader, added swap_table (of type - PS_Table) to facilitate placing the .notdef glyph into slot 0. - -2001-04-10 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr> - - * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value. - -2001-04-09 Laurence Withers <lwithers@lwithers.demon.co.uk> - - * builds/dos/detect.mk: Add support for bash. - -2001-04-05 Werner Lemberg <wl@gnu.org> - - * builds/os2/*.mk: These files have been forgotten to update to - the structure of similar makefiles. - * builds/dos/*.mk: Ditto. - * builds/ansi/*.mk: Ditto. - - * builds/win32/win32-def.mk (BUILD): Fix typo. - - * builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT. - This is already used in the link_*.mk files. - -2001-04-03 Werner Lemberg <wl@gnu.org> - - * src/*/Jamfile: Slight changes to make files more cryptic. - -2001-04-03 Werner Lemberg <wl@gnu.org> - - * Jamfile, src/Jamfile, src/*/Jamfile: Formatted. Slight changes - to give files identical structure. - -2001-04-02 Werner Lemberg <wl@gnu.org> - - * CHANGES: Reformatted, minor fixes. - * TODO: Updated. - * README: Formatting. - * include/freetype/freetype.h: Formatting. - - * Jamfile: Fix typo. - - * src/cff/cffparse.c: Move error code #defines to... - * include/freetype/internal/cfferrs.h: This file. - * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced - `FT_Err_*' with `CFF_Err_*'. - * src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'. - * src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto. - * src/sfnt/sfobjs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with - `TT_Err_*'. - * src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto. - * src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c, - src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'. - - * include/freetype/internal/cfferrs.h: Add - `CFF_Err_Unknown_File_Format'. - * include/freetype/internal/t1errors.h: Add - `T1_Err_Unknown_File_Format'. - * include/freetype/internal/tterrors.h: Add - `TT_Err_Unknown_File_Format'. - - * src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset' - references. - * src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'. - - * src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use - FT_LOCAL_DEF. - * src/cid/cidobjs.c (CID_Done_Driver): Ditto. - * src/truetype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size): - Ditto. - * src/type1/t1objs.c (T1_Done_Driver): Ditto. - * src/pcf/pcfdriver.c (PCF_Done_Face): Ditto. - * src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'. - -2001-04-02 Tom Kacvinsky <tkacvins@freetype.org> - - * src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer - dereference. Submitted by Herbert Duerr <duerr@sun.com>. - -2001-03-26 Tom Kacvinsky <tkacvins@freetype.org> - - * include/freetype/config/ftconfig.h: Changed hexadecimal - constants to use suffix U to avoid problems with HP-UX's c89 - compiler. Submitted by G.W. Lucas <glucas@sonalysts.com>. - -2001-03-24 David Turner <david.turner@freetype.org> - - * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to - the source tree. See www.freetype.org/jam/index.html for details. - - - * Version 2.0.2 released. - ========================= - - -2001-03-20 Werner Lemberg <wl@gnu.org> - - * builds/win32/detect.mk: Fix .PHONY target for Intel compiler. - -2001-03-20 David Turner <david.turner@freetype.org> - - * include/freetype/config/ftheader.h, include/freetype/ftsnames.h: - Renamed `ftnames.h' to `ftsnames.h', and FT_NAMES_H to - FT_SFNT_NAMES_H. - - * docs/docmaker.py: Added generation of INDEX link in table of - contents. - - * INSTALL, docs/BUILD: Updated documentation to indicate that the - compilation process has changed slightly (no more `src' required in - the include path). - - * builds/*/*-def.mk: Changed the objects directory from `obj' to - `objs'. - - * include/freetype/config/ftheader.h: Removed obsolete macros like - FT_SOURCE_FILE, etc. and added cache-specific macro definitions that - were previously defined in <freetype/ftcache.h>. Added comments to - be included in a new API Reference section. - - * src/*/*: Removed the use of FT_SOURCE_FILE, etc. Now, each - component needs to add its own directory to the include path at - compile time. Modified all `rules.mk' and `descrip.mms' - accordingly. - -2001-03-20 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.in: Add $ft_version. - * builds/unix/freetype-config.in: Use it. - * builds/unix/configure: Updated. - -2001-03-19 Tom Kacvinsky <tkacvins@freetype.org> - - * src/type1/t1load.c (parse_font_matrix): Assign the units per em - value an unsigned short value, first by shifting right 16 bits, - then by casting the results to FT_UShort. - - * src/cff/cffparse.c (cff_parse_font_bbox): Assign the units per em - value an unsigned short value, first by shifting right 16 bits, - then by casting the results to FT_UShort. - -2001-03-17 David Turner <david.turner@freetype.org> - - * src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c, - src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove - compiler warnings in pedantic modes. - - * include/config/ft2build.h, include/config/ftheader.h: The file - `ft2build.h' was renamed to `ftheader.h' to avoid conflicts with the - top-level <ft2build.h>. - - * include/config/ftheader.h: Added new section describing the #include - macros. - -2001-03-17 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed - values for the bounding box numbers. - - * src/cff/cffobjs.c (CFF_Init_Face): When processing a CFF/CEF font, - set `root->ascender' (`root->descender') to the integer part of - `root->bbox.yMax' (`root->bbox.yMin', respectively). - -2001-03-16 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/cffdrivr.c (get_cff_glyph_name): New function. Used in - cff_get_interface to facilitate getting a glyph name for glyph index - via FT_Get_Glyph_Name(). - - (cff_get_interface): Added support for getting a glyph name via the - `glyph_name' module interface. Uses the new function - get_cff_glyph_name(). - Submitted by Sander van der Wal <svdwal@xs4all.nl>. - - * src/cff/cffobjs.c (CFF_Init_Face): Logical or the face flags with - FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is - not defined. This is to add support for getting a glyph name from a - glyph index via FT_Get_Glyph_Name(). - Submitted by Sander van der Wal <svdwal@xs4all.nl>. - - * src/cff/cffgload.c (CFF_Parse_CharStrings): Added support for - deprecated operator `dotsection'. - Submitted by Sander van der Wal <svdwal@xs4all.nl>. - -2001-03-12 Werner Lemberg <wl@gnu.org> - - * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error - messages. - - * INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer. - -2001-03-12 Tom Kacvinsky <tkacvins@freetype.org> - - * include/freetype/internal/psaux.h: Changed the lenIV member of - the T1_Decoder_ struct to be an FT_Int instead of an FT_UInt. - - * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Adjust - for lenIV seed bytes at the start of a decrypted subroutine. - - * src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only - if lenIV >= 0. - - * src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only - if lenIV >= 0. - -2001-03-11 Werner Lemberg <wl@gnu.org> - - * TODO: Updated. - - * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to - avoid compiler warnings. - -2001-03-10 Tom Kacvinsky <tkacvins@freetype.org> - - * TODO: New file. - - * include/freetype/freetype.h: Added prototypes and notes for - three new functions: FT_RoundFix, FT_CeilFix, and FT_FloorFix. - * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_FloorFix): Added - implementation code. - - * src/cid/cidobjs.c (CID_Init_Face): Use calculated units_per_EM, - and if that is not available, default to 1000 units per EM. Changed - assignment code for ascender and descender values. - * src/cid/cidload.c (parse_font_matrix): Added units_per_EM - processing. - (parse_font_bbox): Changed to use FT_Fixed number handling. - - * src/type1/t1objs.c (T1_Init_Face): Changed the assignment code - for ascender, descender, and max_advance_width. - * src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed - number handling. - -2001-03-10 Henrik Grubbström <grubba@roxen.com> - - * src/*/*.c: Added many casts to make code more 64bit-safe. - -2001-03-07 Werner Lemberg <wl@gnu.org> - - * INSTALL, docs/BUILD: We need GNU make 3.78 or newer. - -2001-03-07 Tom Kacvinsky <tkacvins@freetype.org> - - * src/type1/t1objs.c (T1_Init_Face): Minor correction: We must wait - until parse_font_bbox is changed before we use logical shift rights - in the assignments of `root->ascender', `root->descender', and - `root->max_advance_width'. - - (T1_Done_Face): Free `char_name' table to avoid a memory leak. - Submitted by Sander van der Wal <svdwal@xs4all.nl>. - -2001-03-05 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/cffgload.c (CFF_Load_Glyph): Set glyph control data to the - the Type 2 glyph charstring (used by conversion programs). - Submitted by Ha Shao <hashao@chinese.com>. - -2001-03-04 Antoine Leca <Antoine.Leca@renault.fr> - - * include/freetype/ttnameid.h: Correct a stupid typo which prevented - correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice). - -2001-03-04 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahtypes.h (AH_Hinter): Add elements - `disable_horz_edges', `disable_vert_edges'. - * src/autohint/ahhint.c (ah_hint_edges_3, ah_hinter_hint_edges): Use - them (and remove static variables with the same names). - * src/pcf/pcfutil.c (BitOrderInvert): Add `const'. - * docs/glnames.py: Updated to latest pstables.h changes. - - * builds/unix/detect.mk: Add test for Hurd. - * builds/hurd/detect.mk: Removed. - -2001-03-04 Sander van der Wal <svdwal@xs4all.nl> - - * src/psnames/pstables.h: Add more `const'. - * src/pcf/pcfutil.c: Ditto. - -2001-03-04 Werner Lemberg <wl@gnu.org> - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo - (FT_Glyph_Done -> FT_Done_Glyph). - -2001-03-01 Antoine Leca <Antoine.Leca@renault.fr> - - * include/freetype/ttnameid.h: Added some new Microsoft language - codes and LCIDs as found in Office Xp. - -2001-02-28 David Turner <david.turner@freetype.org> - - * builds/hurd/detect.mk: New file. Added support to detect the GNU - Hurd operating system as Unix-like. Fix submitted by Anthony Fok - <foka@debian.org>. - - * src/type1/t1gload.c (T1_Load_Glyph): Set glyph control data to the - the Type 1 glyph charstring (used by conversion programs). - Submitted by Ha Shao <hashao@chinese.com>. - -2001-02-22 David Turner <david.turner@freetype.org> - - * src/base/ftgrays.c (grays_sweep): The function didn't exit - immediately if `num_cells' was 0 as it should. Thanks to Boris for - finding this out. - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when - bitmap rendering fails (thanks to Graham Asher). - -2001-02-13 Werner Lemberg <wl@gnu.org> - - * docs/docmaker.py (DocSection::add_element): Use - `self.print_error()'. - - * builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org). - -2001-02-13 David Turner <david.turner@freetype.org> - - * docs/docmaker.py, include/freetype/*.h: Updated the DocMaker - script to support chapters and section block ordering. Updated the - public header files accordingly. - - * src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format - were not correctly copied. - -2001-02-08 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/cffparse.c (cff_parse_font_matrix): Removed an - unnecessary fprintf( stderr, ... ). - -2001-02-07 Tom Kacvinsky <tkacvins@freetype.org> - - * src/type1/t1objs.c (T1_Init_Face): Added code to get the - units_per_EM from the value assigned in parse_font_matrix, if - available. Default to 1000 if not available. - - * src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get - the units_per_EM from the FontMatrix. - - (cff_parse_fixed_thousand): New function. Gets a real number from - the CFF font, but multiplies by 1000 (this is to avoid rounding - errors when placing this real number into a 16.16 fixed number). - - (cff_parse_real): Added code so that the integer part is moved - into the high sixteen bits of the 16.16 fixed number. - - * src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units - per EM from the CFF dictionary, if available. - - * include/freetype/internal/cfftypes.h: In struct CFF_Font_Dict_, - added a units_per_em member to facilitate passing of units_per_em - from function cff_parse_font_matrix. - - * src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric - character. This is so that font names with `-' are fully parsed, - etc... - -2001-02-02 Werner Lemberg <wl@gnu.org> - - * src/psaux/psobjs.c (shift_elements): Remove if clause (which is - obsolete now). - - (reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC() - + MEM_Copy() to avoid a memory bug. - -2001-02-01 David Turner <david.turner@freetype.org> - - * docs/docmaker.py: Improved the index sorting routine to place - capital letters before small ones. Added the `<order>' marker to - section blocks in order to give the order of blocks. - -2001-01-30 Antoine Leca <Antoine.Leca@renault.fr> - - * include/freetype/ttnameid.h: Latest updates to Microsoft language - ID codes. - -2001-01-24 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/t1load.c (parse_font_matrix): Added heuristic to get - units_per_EM from the font matrix. - - (parse_dict): Deleted test to see whether the FontInfo keyword has - been seen. Deletion of this test allows fonts without FontInfo - dictionaries to be parsed by the Type 1 driver. - - (T1_Open_Face): Deleted empty subroutines array test to make sure - fonts with no subroutines still are parsed. - -2001-01-17 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr> - - * src/pcfread.c (pcf_get_properties, pcf_get_metrics, - pcf_get_bitmaps): Fix compiler errors. - -2001-01-11 David Turner <david.turner@freetype.org> - - * src/pcf/pcfread.c: Removed some compilation warnings related - to comparison of signed vs. unsigned integers. - - * include/freetype/internal/ftdebug.h: Changed the debug trace - constants from trace_t2xxxx to trace_cffxxxx to be able to compile - the CFF driver in debug mode. - -2001-01-11 Matthew Crosby <mcrosby@marthon.org> - - * builds/unix/freetype-config.in: Fix problems with separate - --prefix and --exec-prefix. - -2001-01-11 David Turner <david.turner@freetype.org> - - * docs/docmaker.py: Added cross-references generation as well as - more robust handling of pathname wildcard matching. - -2001-01-10 Werner Lemberg <wl@gnu.org> - - * docs/docmaker.py: Minor improvements to reduce unwanted spaces - and empty lines in output. - -2001-01-09 David Turner <david.turner@freetype.org> - - * docs/docmaker.py: Improved script to generate table of contents - and index pages. It also supports wildcards on non Unix systems. - - * include/freetype/*.h, include/freetype/cache/*.h: Updated comments - to include section definitions/delimitations for the API Reference - generator. - - * include/freetype/freetype.h: Moved declaration of - `FT_Generic_Finalizer' and the `FT_Generic' structure to... - * include/freetype/fttypes.h: here. - -2001-01-04 Werner Lemberg <wl@gnu.org> - - * include/freetype/ttnameid.h: Updated Unicode code range comments. - -2001-01-03 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}. - - * include/freetype/internal/internal.h: Changed to use cfftypes.h - (cfferrs.h) instead of t2types.h (t2errors.h, respectively). - - * include/freetype/internal/cfftypes.h: Merged in changes from - t2types.h and made this the canonical `types' header for the CFF - driver. - - * include/freetype/internal/t2types.h: This file was merged with - cfftypes.h and is no longer necessary. - - * include/freetype/internal/t2errors.h: Renamed to cfferrs.h. - - * src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c, - src/cff/cffdrivr.c, src/cff/cff.c, src/cff/cffload.c, - src/cff/cffgload.c, src/cff/cffgload.h: Changed to use - cffgload.{c,h} instead of t2gload.{c,h}. All occurrences of t2_ - (T2_) were replaced with cff_ (CFF_, respectively). - - * src/cff/t2gload.h: Renamed cffgload.h. - - * src/cff/t2gload.c: Renamed cffgload.c - -2000-01-02 Jouk Jansen <joukj@hrem.stm.tudelft.nl> - - * builds/vms: Support files for VMS architecture added. - * descrip.mms, src/*/descrip.mms: VMS makefiles added. - * README.VMS: New file. - -2000-01-01 Werner Lemberg <wl@gnu.org> - - * LICENSE.TXT: Added info about PCF driver license. - -2001-01-01 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr> - - * src/pcf/*: New driver module for PCF font format (used in - X Window System). - * include/freetype/internal/ftdebug.h (FT_Trace): Added values for - PCF driver. - * include/freetype/internal/pcftypes.h: New file. - * include/freetype/config/ftmodule.h: Added PCF driver module. - -2001-01-01 Werner Lemberg <wl@gnu.org> - - * src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type. - -2000-12-31 Werner Lemberg <wl@gnu.org> - - * builds/modules.mk (clean_module_list): Fixed deletion of module - file in case `make make_module_list' is called before `make setup'. - -2000-12-30 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (CFF_Load_Charset): Improved error messages. - (CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable - definition. - -2000-12-30 Tom Kacvinsky <tkacvins@freetype.org> - - * include/freetype/internal/t2types.h, - include/freetype/internal/cfftypes.h: Changed the structures for - CFF_Charset and CFF_Encoding for the new implementations of the - charset and encoding parsers in the CFF driver. - - * src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode, - t2_operator_seac): Added these functions for use in implementing the - seac emulation provided by the Type 2 endchar operator. - (T2_Parse_CharStrings): Added seac emulation for the endchar - operator. - - * src/cff/cffload.c (CFF_Load_Encoding, CFF_Load_Charset, - CFF_Done_Encoding, CFF_Done_Charset): Extended to load and parse the - charset/encoding tables, and free the memory used by them when the - CFF driver is finished with them. Added tables - - cff_isoadobe_charset - cff_expert_charset - cff_expertsubset_charset - cff_standard_encoding - cff_expert_encoding - - so that the encoding/charset parser can handle predefined encodings and - charsets. - -2000-12-24 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/t2gload.c (T2_Load_Glyph): Added code so that the font - transform is applied. - - * src/cff/cffparse.c (cff_parse_font_matrix): Added code so that - the font matrix numbers are scaled by 1/(matrix->yy). Also, the - offset vector now contains integer values instead of 16.16 fixed - numbers. - -2000-12-22 Tom Kacvinsky <tkacvins@freetype.org> - - * src/autohint/ahhint.c (ah_hinter_load_glyph): - Removed unnecessary comments and commented-out code. - -2000-12-21 David Turner <david.turner@freetype.org> - - * src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files, - we'll work on supporting CID AFM files later I guess :-) - -2000-12-21 Tom Kacvinsky <tkacvins@freetype.org> - - * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph): - Changed so that fonts with a non-standard FontMatrix render - correctly. Previously, the first glyph rendered from such a - font did not have the transformation matrix applied. - -2000-12-17 Werner Lemberg <wl@gnu.org> - - * *.mk: Added lots of `.PHONY' targets. - -2000-12-17 Karsten Fleischer <kfleisc1@ford.com> - - * *.mk: Implemented `platform' target to disable auto-detection. - -2000-12-14 Werner Lemberg <wl@gnu.org> - - * docs/design/modules.html: Removed. Covered by design-*.html. - - * INSTALL: Added info about makepp. - -2000-12-14 David Turner <david.turner@freetype.org> - - Added support for clipped direct rendering in the smooth renderer. - This should not break binary compatibility of existing applications. - - * include/freetype/fttypes.h, include/freetype/ftimage.h: Move - definition of the FT_BBox structure from the former to the latter. - * include/freetype/ftimage.h: Add `ft_raster_flag_clip' value to - FT_Raster_Flag enumeration. - Add `clip_box' element to FT_Raster_Params structure. - * src/smooth/ftgrays.c (grays_convert_glyph): Implement it. - - * INSTALL: Updated installation instructions on Win32, listing the - new `make setup list' target used to list supported - compilers/targets. - - * src/raster/ftraster.c (ft_black_render): Test for unsupported - direct rendering before testing arguments. - -2000-12-13 David Turner <david.turner@freetype.org> - - * include/freetype/config/ft2build.h, - include/freetype/internal/internal.h: Fixed header inclusion macros - to use direct definitions. This is the only way to do these things - in a portable way :-( The rest of the code should follow shortly - though everything compiles now. - - * builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files. - - * builds/win32/detect.mk: Added support for the Intel C/C++ - compiler, as well as _preliminary_ (read: doesn't work!) support for - Watcom. Also added a new setup target. Type `make setup list' for - a list of supported command-line compilers on Win32. - - * src/base/ftdebug.c: Added dummy symbol to avoid empty file if - conditionals are off. - -2000-12-13 Werner Lemberg <wl@gnu.org> - - * builds/unix/ftsystem.c: Fixed typos. Fixed inclusion of wrong - ftconfig.h file. - -2000-12-12 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ft2build.h (FT2_ROOT, FT2_CONFIG_ROOT): - Removed. ANSI C doesn't (explicitly) allow macro expansion in - arguments using `##'. - (FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory - names directly. Make them configurable. Use `##' to strip leading - and trailing spaces from arguments. - - * builds/unix/ft2unix.h: Adapted. - - * src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream, - ft_close_stream): Use FT_CALLBACK_DEF. - - * builds/unix/ftsystem.c: Use new header scheme. - (FT_Done_Memory): Use free() from FT_Memory structure. - - * src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes. - -2000-12-11 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ft2build.h (FT2_CONFIG_ROOT, - FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE, - FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant. - -2000-12-09 Werner Lemberg <wl@gnu.org> - - * builds/unix/detect.mk: Remove unused USE_CFLAGS variable. - -2000-12-08 Werner Lemberg <wl@gnu.org> - - * */*.h: Changed body inclusion macro names to start and end with - `__' (those which haven't converted yet). Fixed minor conversion - issues. - - * src/winfonts/winfnt.c: Updated to new header inclusion scheme. - - * src/truetype/ttinterp.c: Remove unused CALC_Length() macro. - -2000-12-07 David Turner <david.turner@freetype.org> - - * */*.[ch]: Changed source files to adhere to the new - header inclusion scheme. Not completely tested but works for now - here. - - * src/cff/t2driver.c: Renamed and updated to... - * src/cff/cffdrivr.c: New file. - * src/cff/t2driver.h: Renamed and updated to... - * src/cff/cffdrivr.h: New file. - * src/cff/t2load.c: Renamed and updated to... - * src/cff/cffload.c: New file. - * src/cff/t2load.h: Renamed and updated to... - * src/cff/cffload.h: New file. - * src/cff/t2objs.c: Renamed and updated to... - * src/cff/cffobjs.c: New file. - * src/cff/t2objs.h: Renamed and updated to... - * src/cff/cffobjs.h: New file. - * src/cff/t2parse.c: Renamed and updated to... - * src/cff/cffparse.c: New file. - * src/cff/t2parse.h: Renamed and updated to... - * src/cff/cffparse.h: New file. - * src/cff/t2tokens.h: Renamed and updated to... - * src/cff/cfftoken.h: New file. - - * src/cff/cff.c, src/cff/rules.mk: Updated. - -2000-12-06 David Turner <david.turner@freetype.org> - - * src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak. - -2000-12-06 Werner Lemberg <wl@gnu.org> - - * builds/module.mk: Replaced `xxx #' with `xxx$(space). - * builds/os2/detect.mk, builds/win32/detect.mk: Moved comment to - avoid trailing spaces in variable. - * builds/freetype.mk: Use $(D) instead of $D to make statement more - readable. - - * docs/docmaker.py: Formatting. - -2000-12-05 David Turner <david.turner@freetype.org> - - * src/psaux/psauxmod.c: Fixed a broken inclusion of component - header files (an FT_FLAT_COMPILE test was missing). - - * src/cache/ftcmanag.c (FTC_Manager_Done): Fixed a bug that caused - an occasional crash when the function was called (due to a dangling - pointer). - - * src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug: - The ANSI `free()' function was called instead of `memory->free()'. - - * docs/docmaker.py: Added section filtering, multi-page generation - (index page generation is still missing though). - -2000-12-04 David Turner <david.turner@freetype.org> - - * builds/unix/install.mk, builds/unix/ft2unix.h: The file `ft2unix.h' - is now installed as <ft2build.h> for Unix systems. Note that we - still use the `freetype2/freetype' installation path for now. - - * */*.[ch]: Now using <ft2build.h> as the default build and setup - configuration file in all public headers. Internal source files - still need some changes though. - - * builds/devel/ft2build.h, builds/devel/ftoption.h: Created a new - directory to hold all development options for both the Unix and - Win32 developer builds. - - * builds/win32/detect.mk, builds/win32/w32-bccd.mk, - builds/win32/w32-dev.mk: Changed the developer build targets to - `devel-gcc' and `devel-bcc' in order to be able to develop with the - Borland C++ compiler. - -2000-12-01 David Turner <david.turner@freetype.org> - - - * Version 2.0.1 released. - ========================= - - - * builds/unix/configure.in, builds/unix/configure, - builds/cygwin/configure.in, builds/cygwin/configure: Setting - `version_info' to 6:1:0 for the 2.0.1 release. - - * CHANGES: Added a summary of changes between 2.0.1 and 2.0. - - * builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes - to allow compilation under Unix with the Unix-specific config - files. - -2000-12-01 Werner Lemberg <wl@gnu.org> - - * INSTALL: Revised. - * builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk, - builds/compiler/bcc.mk, builds/win32/w32-bcc.mk, - builds/win32/w32-bccd.mk: Revised. - * include/freetype/config/ftbuild.h, - include/freetype/internal/internal.h: Revised. - * include/freetype/ftimage.h: Updated to new header inclusion scheme. - -2000-11-30 Werner Lemberg <wl@gnu.org> - - * builds/toplevel.mk (.PHONY): Adding `distclean'. - * builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc', - `setup'. - -2000-11-30 David Turner <david.turner@freetype.org> - - * INSTALL: Slightly updated the quick starter documentation to - include IDE compilation, prevent against BSD Make, and specify `make - setup' instead of a single `make' for build configuration. - - * include/config/ftbuild.h, include/internal/internal.h: Added new - configuration files used to determine the location of all public, - configuration, and internal header files for FreeType 2. Modified - all headers under `include/freetype' to reflect this change. Note - that we still need to change the library source files themselves - though. - - * builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk, - builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk, - builds/win32/detect.mk: Added new files to support compilation with - the free Borland C++ command-line compiler. Modified the detection - rules to recognize the new `bcc32' target in `make setup bcc32'. - - * src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c, - src/truetype/ttobjs.c, src/truetype/ttgload.c, - src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++ - didn't really like. Basically, this compiler complains when FT_UInt - is compared to FT_UShort (apparently, it promotes `UShort' to `Int' - in these cases). - -2000-11-30 Tom Kacvinsky <tkacvins@freetype.org> - - * t2objs.c (T2_Init_Face): Added calculation of `face->height' for - pure CFF fonts. - - * t1objs.c (T1_Init_Face): Fixed computation of `face->height'. - -2000-11-29 David Turner <david.turner@freetype.org> - - * src/base/ftbbox.c (BBox_Conic_Check): Fixed a really stupid - bug in the formula used to compute the conic Bézier extrema - of non-monotonous arcs. - -2000-11-29 Werner Lemberg <wl@gnu.org> - - * src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c - (FT_Set_Renderer): Use FT_EXPORT_DEF. - * src/cache/ftcimage.c (FTC_Image_Cache_Lookup), - src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset, - FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size, - FTC_Manager_Register_Cache), src/cache/ftcsbits.c - (FTC_SBit_Cache_Lookup): Ditto. - - * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init), - src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT. - -2000-11-29 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only - conditionally. - - * src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set - `size->strike_index' only conditionally. - - * src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only - conditionally. - - * src/winfonts/winfnt.h: Move all type definitions to... - * src/include/freetype/internal/fnttypes.h: New file. - * src/winfonts/winfnt.c: Use it. - -2000-11-29 ??? ??? <darin@eazel.com> - - * include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT - with a direct solution (which also satisfies picky compilers). - -2000-11-28 YAMANO-UCHI Hidetoshi <mer@din.or.jp> - - * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with - disabled interpreter also. - - * src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect - parentheses. - -2000-11-26 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/t2gload.c (T2_Parse_CharStrings): Added logic to glyph - width setting code to take into account even/odd argument counts - and glyph width operand before endchar/hmoveto/vmoveto. - -2000-11-26 Werner Lemberg <wl@gnu.org> - - * builds/ansi/ansi.mk: Fix inclusion order of files. - -2000-11-26 Keith Packard <keithp@keithp.com> - - * src/type1/t1objs.c (T1_Init_Face): Compute style flags. - -2000-11-26 Werner Lemberg <wl@gnu.org> - - * builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and - conditional. - -2000-11-23 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt - function from PSAux module. - - * src/type1/t1parse.c (T1_Done_Parse): Renamed to... - (T1_Finalize_Parser): New function (to avoid name clash with a - function in the PSAux module). - (T1_Decrypt): Removed since it is duplicated in the PSAux module. - (T1_Get_Private_Dict): Added `psaux' as new parameter; use decrypt - function from PSAux module. - - * src/type1/t1parse.h: Adapted. - -2000-11-22 Tom Kacvinsky <tkacvins@freetype.org> - - * src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set - `root->num_faces' to `cff->num_faces' and set `units_per_EM' - to 1000. - - * src/cff/t2parse.c (parse_t2_real): Fixed real number parsing - loop. - - * src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a - sid that was off by one. - -2000-11-16 David Turner <david@freetype.org> - - * src/autohint/ahtypes.h (AH_Hinter): Added new fields to control - auto-hinting of synthetic Type 1 fonts. - - * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph): - Added auto-hinting support of synthetic Type 1 fonts. - -2000-11-12 Tom Kacvinsky <tkacvins@freetype.org> - - * src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change - tracing output. - - * src/sfnt/sfobjs.c (SFNT_Load_Face): Set boolean variable - `has-outline' to true only if the font has a `glyf' or `CFF ' table. - -2000-11-11 Werner Lemberg <wl@gnu.org> - - * builds/win32/visualc/freetype.dsp: Fix raster1->raster and - type1z->type1. - -2000-11-11 Tom Kacvinsky <tkacvins@freetype.org> - - * builds/unix/freetype-config.in, builds/cygwin/freetype-config.in: - Added a --libtool option. When freetype-config --libtool is - invoked, the absolute path to the libtool convenience library - is returned. - -2000-11-11 Werner Lemberg <wl@gnu.org> - - * builds/cygwin/cygwin-def.in: Same fix as previous. - -2000-11-10 Tom Kacvinsky <tkacvins@freetype.org> - - * builds/unix/unix-def.in: Add - - INSTALL_PROGRAM := @INSTALL_PROGRAM@ - INSTALL_SCRIPT := @INSTALL_SCRIPT@ - - so that installation of freetype-config does not fail. - -2000-11-10 Werner Lemberg <wl@gnu.org> - - * builds/cygwin/freetype-config.in, builds/unix/freetype-config.in: - Move test down for empty --exec-prefix. - Fix --version. - - * builds/cygwin/install.mk, builds/unix/install.mk: Use - $(INSTALL_SCRIPT) for installation of freetype-config. - - * builds/cygwin/install.mk: Fix clean target names. - -2000-11-09 David Turner <david@freetype.org> - - - * Version 2.0 released. - ======================= - ----------------------------------------------------------------------------- - -Copyright (C) 2000-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.21 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.21 deleted file mode 100644 index 71f9f00db31..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.21 +++ /dev/null @@ -1,9438 +0,0 @@ -2005-06-08 Werner Lemberg <wl@gnu.org> - - - * Version 2.1.10 released. - ========================== - - - * src/pcf/readme: Renamed to... - * src/pcf/README: This. - -2005-06-07 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/*: Added copyright notes, reworked some comments. - -2005-06-05 Werner Lemberg <wl@gnu.org> - - * Add copyright notices to all files which don't have one. - - * docs/license.txt: Renamed to... - * docs/LICENSE.TXT: This. - * docs/FTL.txt: Renamed to... - * docs/FTL.TXT: This. - * docs/GPL.txt: Renamed to... - * docs/GPL.TXT: This. - - * docs/PATENTS: Slightly reworded. Suggested by Sylvain Beucler - <beuc@gnu.org>. - -2005-06-04 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftimage.h (FT_Outline_MoveToFunc, - FT_Outline_LineToFunc, FT_Outline_ConicToFunc, - FT_Outline_CubicToFunc, FT_Raster_RenderFunc), - include/freetype/ftrender.h (FT_Glyph_TransformFunc, - FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Don't use - `const' to stay compatible with FreeType 2.1.9. - -2005-06-01 Adam D. Moss <adam@gimp.org> - - * src/base/ftstroke.c (ft_stroker_inside): Revert `sigma' patch from - 2004-07-11; this gives much better results under normal - circumstances. - -2005-05-30 Chia I Wu <b90201047@ntu.edu.tw> - - * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Minor - documentation improvements. - - * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix typos. - - * src/base/ftbitmap.c (FT_Bitmap_Embolden): Add support for bitmap - of pixel_mode FT_PIXEL_MODE_GRAY2 or FT_PIXEL_MODE_GRAY4. - If xstr is larger than 8 and bitmap is of pixel_mode - FT_PIXEL_MODE_MONO, set xstr to 8 instead of returning error. - -2005-05-29 Chia I Wu <b90201047@ntu.edu.tw> - - * src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening bitmap - of mode FT_PIXEL_MODE_GRAY. Also add support for mode - FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V. - (ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V - should have ppb (pixel per byte) 1. - Zero the padding when there's no need to allocate memory. - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle slot->advance - too. - More suited emboldening strength. - -2005-05-28 Chia I Wu <b90201047@ntu.edu.tw> - - * src/base/ftbitmap.c (FT_Bitmap_Embolden): Handle negative pitch. - Handle FT_PIXEL_MODE_GRAY with num_gray != 256. - Improve speed for FT_PIXEL_MODE_GRAY. - (ft_bitmap_assure_buffer): Accept FT_PIXEL_MODE_LCD and - FT_PIXEL_MODE_LCD_V. - -2005-05-27 Chia I Wu <b90201047@ntu.edu.tw> - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Initialize `error'. - - * src/base/ftobjs.c (ft_cmap_done_internal): New function. - (FT_CMap_Done): Remove cmap from cmap list. - (destroy_charmaps, FT_CMap_New): Don't call FT_CMap_Done but - ft_cmap_done_internal. - -2005-05-26 Werner Lemberg <wl@gnu.org> - - * docs/GPL.txt: Update postal address of FSF. - -2005-05-26 Chia I Wu <b90201047@ntu.edu.tw> - - * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Improve - documentation. - - * src/base/ftsynth.c (FT_BOLD_THRESHOLD): Removed. - (FT_GlyphSlot_Embolden): Check whether slot is bitmap owner. - Always modify the metrics. - -2005-05-24 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2005-05-24 Chia I Wu <b90201047@ntu.edu.tw> - - * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): New declaration. - - * include/freetype/ftoutln.h (FT_Outline_Embolden): New declaration. - - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): New auxiliary - function. - (FT_Bitmap_Embolden): New function. - - * src/base/ftoutln.c (FT_Outline_Embolden): New function. - - * src/base/ftsynth.c: Don't include FT_INTERNAL_CALC_H and - FT_TRIGONOMETRY_H but FT_BITMAP_H. - (FT_GlyphSlot_Embolden): Use FT_Outline_Embolden or - FT_Bitmap_Embolden. - -2005-05-24 Werner Lemberg <wl@gnu.org> - - * configure: Always remove config.mk, builds/unix/unix-def.mk, and - builds/unix/unix-cc.mk. This fixes repeated calls of the script. - Reported by Nelson Beebe and Behdad Esfahbod. - - * README.CVS: Mention file permissions. - -2005-05-23 Werner Lemberg <wl@gnu.org> - - * builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk - (CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove - -fno-strict-aliasing. - - * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c -- - it is currently loaded from ttsbit.c. - -2005-05-23 Behdad Esfahbod <behdad@cs.toronto.edu> - - Say you have `(Foo*)x' and want to assign, pass, or return it as - `(Bar*)'. If you simply say `x' or `(Bar*)x', then the C compiler - would warn you that type casting incompatible pointer types breaks - strict-aliasing. The solution is to cast to `(void*)' instead which - is the generic pointer type, so the compiler knows that it should - make no strict-aliasing assumption on `x'. But the problem with - `(void*)x' is that seems like in C++, unlike C, `void*' is not a - generic pointer type and assigning `void*' to `Bar*' without a cast - causes an error. The solution is to cast to `Bar*' too, with - `(Bar*)(void*)x' as the result -- this is what the patch does. - - * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), - include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove - cast on lvalue, use a temporary pointer instead. - Cast temporarily to (void*) to not break strict aliasing. - - * include/freetype/internal/ftmemory.h (FT_MEM_ALLOC, - FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE), - src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*) - to not break strict aliasing. - - * src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information. - - * builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing. - -2005-05-23 David Turner <dturner@freetype.org> - - Fix Savannah bug #12213 (incorrect behaviour of the cache sub-system - in low-memory conditions). - - * include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP, - FTC_CACHE_TRYLOOP_END): New macros. - - * src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c - (ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACHE_TRYLOOP_END. - -2005-05-23 Werner Lemberg <wl@gnu.org> - - * src/base/rules.mk (BASE_SRC): Don't add ftsynth.c here but... - (BASE_EXT_SRC): Here. - -2005-05-22 Werner Lemberg <wl@gnu.org> - - * src/base/ftrfork.c (raccess_guess_apple_generic): Mark - `version_number' and `entry_length' as unused. - (raccess_guess_linux_double_from_file_name): Remove `memory'. - (raccess_make_file_name): Mark `error' as unused. - - * src/bdf/bdflib.c (_bdf_parse_properties): Remove `memory'. - - * src/cid/cidobjs.c (cid_face_init): Remove `psnames'. - - * src/sfnt/sfobjs.c (sfnt_load_face): Remove `memory'. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints, - ft_var_readpackeddeltas, ft_var_load_avar): Mark `error' as unused. - - * src/base/rules.mk (BASE_SRC): Add ftsynth.c. - -2005-05-21 David Turner <david@freetype.org> - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix a bug that - produced unpleasant artefacts when trying to embolden very sharp - corners. - -2005-05-20 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2005-05-20 Chia I Wu <b90201047@ntu.edu.tw> - - * src/base/ftbitmap.c: Don't include FT_FREETYPE_H and FT_IMAGE_H - but FT_BITMAP_H. - (FT_Bitmap_Copy): New function (from ftglyph.c). - - * include/freetype/ftbitmap.h (FT_Bitmap_Copy): New public - definition. - - * src/base/ftglyph.c: Include FT_BITMAP_H. - (ft_bitmap_copy): Move to ftbitmap.c. - (ft_bitmap_glyph_init): Remove `memory' variable. - Create new bitmap object if FT_GLYPH_OWN_BITMAP isn't set. - (ft_bitmap_glyph_copy): Use FT_Bitmap_Copy. - (ft_bitmap_glyph_done): Use FT_Bitmap_Done. - (ft_outline_glyph_init): Use FT_Outline_Copy. - - * src/base/ftoutln.c (FT_Outline_Copy): Handle source == target. - (FT_Outline_Done_Internal): Check for valid `memory' pointer. - (FT_Outline_Translate, FT_Outline_Reverse, FT_Outline_Render, - FT_Outline_Transform): Check for valid `outline' pointer. - - * src/base/ftobjs.c (FT_New_GlyphSlot): Prepend glyph slot to - face->glyph, otherwise a new second glyph slot cannot be created. - (FT_Done_GlyphSlot): Fix memory leak. - (FT_Open_Face): Updated -- face->glyph is already managed by - FT_New_GlyphSlot. - - * src/type42/t42objs.c (T42_GlyphSlot_Done): Updated. - -2005-05-20 Kirill Smelkov <kirr@mns.spb.ru> - - * include/freetype/ftimage.h (FT_Raster_Params), - include/freetype/ftoutln.h (FT_Outline_Translate, - FT_Outline_Transform), src/base/ftoutln.c (FT_Outline_Translate, - FT_Outline_Transform): Decorate parameters with `const' where - appropriate. - Update all callers. - - * src/raster/ftraster.c (ft_black_reset), src/smooth/ftgrays.c - (gray_raster_reset): Remove `const' from `pool_base' argument. - -2005-05-18 Kirill Smelkov <kirr@mns.spb.ru> - - * src/raster/ftmisc.h: New file. Only needed if ftraster.c is - compiled as stand-alone. - - * src/raster/ftraster.c: Add comment how to compile as stand-alone. - s/FT_CONFIG_OPTION_STATIC_RASTER/FT_STATIC_RASTER/. - s/TT_STATIC_RASTER/FT_STATIC_RASTER/. - [_STANDALONE_]: Include ftimage.h and ftmisc.h. - (FT_TRACE1, FT_TRACE6, ft_memset, FT_MEM_ZERO): Define - conditionally. - (Render_Glyph, Render_Gray_Glyph): Return Raster_Err_None (or - Raster_Err_Unsupported). - (ft_black_new) [_STANDALONE_]: Fix type of `the_raster'. - (ft_black_init, ft_black_reset, ft_black_set_mode, ft_black_render): - Use `ras', not `raster'. - (ft_black_done): Use FT_UNUSED_RASTER. - (Horizontal_Sweep_Init, Horizontal_Sweep_Step, - Horizontal_Gray_Sweep_Span): Use FT_UNUSED_RASTER. - -2005-05-18 Werner Lemberg <wl@gnu.org> - - * docs/announce: Start updating. - - * docs/CHANGES: Updated. - -2005-05-16 Vitaliy Pasternak <v_a_pasternak@mail.ru> - - * builds/win32/visualc/freetype.vcproj: Updated. - Exclude debug info for `Release' versions to reduce library size. - -2005-05-16 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Open_Face): Make it work as documented, this - is, ignore `aface' completely if face_index < 0. Reported by David - Osborn <spam@habitualhiatus.com>. - -2005-05-16 Kirill Smelkov <kirr@mns.spb.ru> - - * include/freetype/ftimage.h (FT_Outline_MoveToFunc, - FT_Outline_LineTo_Func, FT_Outline_ConicToFunc, - FT_Outline_CubicToFunc), src/smooth/ftgrays.c (gray_render_conic, - gray_render_cubic, gray_move_to, gray_line_to, gray_conic_to, - gray_cubic_to, gray_render_span, gray_sweep): Decorate parameters - with `const' where appropriate. - -2005-05-11 Kirill Smelkov <kirr@mns.spb.ru> - - * include/freetype/ftimage.h (FT_Raster_RenderFunc), - include/freetype/ftrender.h (FT_Glyph_TransformFunc, - FT_Renderer_Render_Func, FT_Renderer_TransformFunc), - src/base/ftglyph.c (ft_outline_glyph_transform), - src/raster/ftrend1.c (ft_raster1_transform, ft_raster1_render), - src/smooth/ftgrays.c (FT_Outline_Decompose, gray_raster_render), - src/smooth/ftsmooth.c (ft_smooth_transform, - ft_smooth_render_generic, ft_smooth_render, ft_smooth_render_lcd, - ft_smooth_render_lcd_v): Decorate parameters with `const' where - appropriate. - - * src/raster/ftraster.c (RASTER_RENDER_POOL): Removed. Obsolete. - (ft_black_render): Decorate parameters with `const' where - appropriate. - -2005-05-11 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttcmap.c (tt_cmap4_set_range): Fix typo (FT_PEEK_SHORT -> - FT_PEEK_USHORT) which caused crashes. Reported by Ismail Donmez - <ismail@kde.org.tr>. - -2005-05-08 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE) - [__cplusplus]: Fix typo. - -2005-05-07 Werner Lemberg <wl@gnu.org> - - Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck - Blaskey <listtarget@danbala.com>). - - * src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'. - * src/sfnt/ttcmap.c: Use SFNT_Err_Ok where appropriate. - - (tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate, - tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use - `FT_Error' as return type. - (tt_cmap4_validate): Use `FT_Error' as return type. - Return error code for unsorted cmap. - (tt_cmap4_char_index, tt_cmap4_char_next): Use old code for unsorted - cmaps. - (tt_face_build_cmaps): Set `unsorted' variable in cmap. - -2005-05-07 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttpload.c (tt_face_get_location): Fix typo. - -2005-05-06 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): Set ppem value in top - dictionary for SFNT-based CFF. - -2005-05-05 Werner Lemberg <wl@gnu.org> - - Handle malformed `loca' table entries. - - * docs/TODO: Add some bugs which should be fixed. - - * include/freetype/internal/tttypes.h (TT_FaceRec): Add `glyf_len' - element. - - * src/truetype/ttpload.c (tt_face_load_loca): Get length of `glyf' - table. - (tt_face_get_location): Fix computation of `asize' for malformed - `loca' entries. - -2005-05-01 David Turner <david@freetype.org> - - * Jamfile: Remove `otvalid' from the list of compiled modules. - - * include/freetype/internal/ftserv.h: Add compiler pragmas to get - rid of annoying warnings with Visual C++ compiler in maximum warning - mode. - - * src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftstroke.c, - src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c, - src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c, - src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c, - src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: Remove compiler warnings. - -2005-04-28 Werner Lemberg <wl@gnu.org> - - * docs/TODO: Updated. - -2005-04-24 Werner Lemberg <wl@gnu.org> - - * src/otvalid/otvcommn.c - (otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0. - -2005-04-16 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): Set default upem value in top - font dict also. - Handle font matrix settings in subfonts. - - * src/cff/cffgload.c (cff_slot_load): Use the correct font matrix - for CID-keyed fonts with subfonts. - - * docs/formats.txt: Updated. - -2005-04-14 Kirill Smelkov <kirr@mns.spb.ru> - - * include/freetype/freetype.h (FT_Vector_Transform), - include/freetype/ftimage.h (FT_Raster_Params), - include/freetype/ftoutln.h, src/base/ftoutln.c (FT_Outline_Get_CBox, - FT_Outline_Copy, FT_Outline_Transform, FT_Vector_Transform, - FT_Outline_Get_Bitmap), src/raster/ftraster.c (ft_black_render), - src/smooth/ftgrays.c (gray_raster_render): Decorate parameters with - `const' where appropriate. - -2005-04-14 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_charstrings): Catch this non-standard - beginning of the /CharStrings dictionary: - - /CharStrings 118 dict def - Private begin - CharStrings begin - - * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix arguments - to call of tt_sbit_decoder_load_bitmap. - -2005-04-13 Werner Lemberg <wl@gnu.org> - - * docs/TODO: Updated. - - * autogen.sh: Use `--force' for all commands. - -2005-04-09 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshalgo.c (ps_hints_apply): Change scaling values - only if `fitted' is not zero. - -2005-04-06 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (tt_face_get_metrics) [FT_OPTIMIZE_MEMORY]: - Fix typo which sometimes causes wrong metrics for the last glyph. - -2005-04-04 David Turner <david@freetype.org> - - * devel/ftoption.h, include/freetype/config/ftoption.h - (FT_OPTIMIZE_MEMORY): Comment out this macro for the upcoming 2.1.10 - release. - (*_CHESTER_*): Removed. No longer used. - - * src/autofit/afhints.c (af_axis_hints_new_segment, - af_axis_hints_new_edge): Small tweak to use less heap memory. - -2005-04-03 Werner Lemberg <wl@gnu.org> - - * src/type1/t1parse.c (T1_New_Parser): Relax the check for a valid - first line in the font. - -2005-04-03 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES, include/freetype/freetype.h: Improve documentation - of FT_Set_Pixel_Sizes and FT_Set_Char_Size. - -2005-03-26 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/src/base/ftsystem.c (ft_amiga_stream_io): Fix buffer - offsets after a large read. - -2005-03-26 Werner Lemberg <wl@gnu.org> - - * src/autofit/afglobal.c (af_face_globals_get_metrics): - s/index/gidx/. - - * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix compiler - warnings. - - * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c. - - * src/sfnt/ttsbit0.h: Dummy file for build with `make'. - -2005-03-26 Detlef Würkner <TetiSoft@apg.lahn.de> - - Update of the Amiga port. - - * builds/amiga/makefile, builds/amiga/makefile.os4, - builds/amiga/smakefile: Included the base extension files - (ftbitmap.c, ftotval.c, ftpfr.c, ftstroke.c, ftxf86.c). - -2005-03-25 Detlef Würkner <TetiSoft@apg.lahn.de> - - Update of the Amiga port. - - * builds/amiga/makefile, builds/amiga/smakefile: Handle new modules. - - * builds/amiga/makefile.os4: Makefile for AmigaOS4 SDK. - - * builds/amiga/README: Updated. - - * builds/amiga/include/freetype/config/ftconfig.h: Handle gcc for - AmigaOS4. - - * builds/amiga/include/freetype/config/ftmodule.h: Handle new - modules. - - * builds/amiga/src/base/ftdebug.c: Updated to current version of - default ftdebug.c. - Add various include files and macros to have proper support for - both AmigaOS4 and older AmigaOS versions. - Don't declare KVPrintF explicitly. - Replace getenv with GetVar. - Actually enable debugging code. - - * builds/amiga/src/base/ftsystem.c: Major rewrite. - -2005-03-23 Werner Lemberg <wl@gnu.org> - - * tests/*: Removed. - -2005-03-23 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES, docs/INSTALL.ANY: Updated. - - * include/freetype/ftmoderr.h: Replace `Autohint' with `Autofit'. - Add `OTvalid'. - - * src/autofit/aferrors.h: New file. - - * src/autofit/afglobal.c, src/autofit/afhints.c, - src/autofit/aflatin.c, src/autofit/afloader.c: s/FT_Err_/AF_Err_/. - Include aferrors.h. - - * src/autofit/rules.mk (AUTOF_DRV_H): Include aferrors.h. - - * src/otvalid/otverror.h: s/FT_Mod_Err_OTV/FT_Mod_Err_OTvalid/. - -2005-03-22 David Turner <david@freetype.org> - - * src/autohint/*: Removed. - * Jamfile: Updated. - -2005-03-15 David Turner <david@freetype.org> - - * src/bdf/bdflib.c: Remove compiler warnings. - (hash_rehash, hash_init): Don't call FT_MEM_ZERO. - (_bdf_list_t): Add `memory' field. - (_bdf_list_init, _bdf_list_done, _bdf_list_ensure): New functions. - (_bdf_shift, _bdf_join): Rename to... - (_bdf_list_shift, _bdf_list_join): This. - (_bdf_split): Renamed to... - (_bdf_list_split): This. Use new functions. - (bdf_internal_readstream): Removed. - (NO_SKIP): New macro. - (_bdf_readstream): Rewritten. - (bdf_create_property, _bdf_add_comment): Improve allocation. - (_bdf_set_default_spacing, _bdf_parse_glyphs): Updated. Improve - allocation. - (_bdf_parse_properties, _bdf_parse_start): Updated. - (bdf_load_font): Updated to use new functions. - - * src/type1/t1parse.c (check_type1_format): New function. - (T1_New_Parser): Use it to check font header before allocating - anything on the heap. - - * src/type42/t42parse.c (t42_parser_init): Modify functions to check - the font header before allocating anything on the heap. - - * include/freetype/internal/ftmemory.h (FT_ARRAY_MAX, - FT_ARRAY_CHECK): New macros. - - * src/base/ftstream.c (FT_Stream_TryRead): New function. - * include/freetype/internal/ftstream.h: Updated. - - * src/pcf/pcfread.c (pcf_read_TOC), src/pcf/pcfutil.c - (BitOrderInvert, TwoByteSwap, FourByteSwap): Minor fixes and - simplifications. Try to protect the PCF driver from doing stupid - things with broken fonts. - - * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Check the LZW header before - doing anything else. This avoids unnecessary heap allocations - (400KByte of heap memory for the LZW decoder). - - * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Ditto for the gzip - decoder, although the code savings are smaller. - - * docs/CHANGES: Updated. - -2005-03-10 David Turner <david@freetype.org> - - * src/tools/glnames.py: Add comment to explain the compression - being used for the Adobe Glyph List. - -2005-03-10 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttpload.c (tt_face_load_cvt, tt_face_load_fpgm): - Fix serious typo which prevented correct TT rendering. - - * include/freetype/internal/ftmemory.h: Undo change from 2005-03-03. - To suppress warnings it is sufficient to use `-fno-strict-aliasing'. - -2005-03-10 Werner Lemberg <wl@gnu.org> - - * src/tools/glnames.py: Formatted. - Format output to be in sync with other FreeType code. - Import `re' and `os.path'. - (StringTable) <__init__>: Add parameter to initialize master table - name. - (StringTable) <dump>: Don't pass master table name. - (StringTable) <dump_sublist>: Emit explanatory comment. - Simplify and make output more human readable. - (t1_bias, glyph_list, adobe_glyph_names): Removed. Unused. - (main): Use `basename' for file name in header. - - * src/psnames/pstables.h: Regenerated. - -2005-03-09 David Turner <david@freetype.org> - - * src/tools/glnames.py: Rewrite the generator for the `pstables.h' - header file which contains various constant tables related to glyph - names. It now uses a different, more compact storage scheme that - saves about 20KB. This also closes Savannah bug #12262. - - * src/psnames/pstables.h: Regenerated. - - * src/psnames/psmodule.c (ps_unicode_value): Use - `ft_get_adobe_glyph_index', a new function defined in `pstables.h'. - (ps_get_macintosh_name, ps_get_standard_strings): Updated. - - * src/base/ftobjs.c (FT_Set_Char_Size): Handle fractional sizes - more carefully. This fixes Savannah bug #12263. - -2005-03-06 David Turner <david@freetype.org> - - * src/otvalid/otvgsub.c, src/otvalid/otvgpos.c: Make static tables - constant. - - * src/autofit/aflatin.c (af_latin_metrics_init): Fix Savannah bug - #12212 (auto-hinter refuses to work if no Unicode charmap in font). - -2005-03-05 Werner Lemberg <wl@gnu.org> - - * autogen.sh: New script for bootstrapping. - - * README.CVS: New file which documents bootstrapping. - - * builds/unix/aclocal.m4, builds/unix/config.guess, - builds/unix/config.sub, builds/unix/configure, - builds/unix/ltmain.sh: Removed. - -2005-03-04 Werner Lemberg <wl@gnu.org> - - * src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H. - -2005-03-03 Werner Lemberg <wl@gnu.org> - - Various fixes for C and C++ compiling. - - * src/autofit/*: Add copyright messages. - - * src/autofit/afhints.c (af_glyph_hints_done): Don't use - `AF_Dimension' but `int' for loop counter. - - * src/autofit/aflatin.c (af_latin_metrics_init_widths): Don't use - `AF_Dimension' but `int' for loop counter. - Use proper enumeration value for `render_mode'. - (af_latin_metrics_scale_dim): Don't shadow variables. - (af_latin_hints_compute_segments): Use proper cast for `major_dir' - and `segment_dir'. - (af_latin_align_linked_edge, af_latin_hint_edges): Fix arguments of call to - `af_latin_compute_stem_width'. - (af_latin_hints_apply): Don't use `AF_Dimension' but `int' for loop - counter. - - * src/base/ftdbgmem.c (ft_mem_table_get_source, FT_DumpMemory): Use - proper cast for memory allocation. - - * src/cff/cffdrivr.c (cff_get_kerning): Use proper cast for - initialization of `sfnt'. - - * src/sfnt/sfdriver.c: Include `ttkern.h'. - - * src/sfnt/ttkern.c (tt_face_get_kerning): Don't shadow variables. - - * src/truetype/ttgload.c: Include `ttpload.h'. - -2005-03-03 David Turner <david@freetype.org> - - * include/freetype/internal/ftmemory.h (FT_ALLOC, FT_REALLOC, - FT_QALLOC, FT_QREALLOC) [gcc >= 3.3]: Provide macro versions which - avoid compiler warnings. - (FT_NEW, FT_NEW_ARRAY, FT_RENEW_ARRAY, FT_QNEW, FT_QNEW_ARRAY, - FT_QRENEW_ARRAY, FT_ALLOC_ARRAY, FT_REALLOC_ARRAY): Updated. - - * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, - FT_FACE_FIND_GLOBAL_SERVICE, FT_FACE_LOOKUP_SERVICE) [__cplusplus]: - Provide macro versions which avoid compiler warnings. - - * src/base/ftutil.c (ft_highpow2): New utility function. - - * include/freetype/internal/ftobjs.h: Updated. - - * src/pfr/pfrload.c (pfr_get_gindex, pfr_compare_kern_pairs, - pfr_sort_kerning_pairs): Don't define if FT_OPTIMIZE_MEMORY is set. - (pfr_phy_font_done): Don't handle `kern_pairs' if FT_OPTIMIZE_MEMORY - is set. - (pfr_phy_font_load): Don't call `pfr_sort_kerning_pairs' if - FT_OPTIMIZE_MEMORY is set. - - * src/pfr/pfrobjs.c (pfr_slot_load): Comment out some code which - doesn't work with broken fonts. - (pfr_face_get_kerning) [FT_OPTIMIZE_MEMORY]: Implement. - - * src/pfr/pfrtypes.h (PFR_KernItemRec): Optimize member types. - (PFR_NEXT_KPAIR): New macro. - (PFR_PhyFontRec): Don't define `kern_pairs' if FT_OPTIMIZE_MEMORY is - set. - - * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Introduce - temporary variable to avoid gcc warning. - (tt_face_load_sbit_image): Mark unused variables with FT_UNUSED. - - * src/truetype/ttpload.c (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: - Remove redundant variable. - - * include/freetype/config/ftmodule.h: Moving the order of drivers to - speed up font loading. The PCF and BDF loaders are still slow and - consume far too much memory. - -2005-03-03 Werner Lemberg <wl@gnu.org> - - * devel/ftoption.h: Updated to recent changes. - -2005-03-02 Werner Lemberg <wl@gnu.org> - - * src/autofit/afdummy.c, src/autofit/afdummy.h - (af_dummy_script_class): Fix type. - - * src/autofit/aflatin.c, src/autofit/aflatin.h - (af_latin_script_class): Fix type. - - * src/autofit/rules.mk (AUTOF_DRV_SRC): Fix typo. - -2005-03-01 David Turner <david@freetype.org> - - * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning), - src/sfnt/ttsbit0.c (tt_face_load_sbit_strikes, - tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_compound, - tt_sbit_decoder_load_image), src/sfnt/ttload.c - (tt_face_load_metrics): Remove compiler warnings - -- redundant variables, missing initializations, etc. - - * src/sfnt/ttsbit.h: Handle FT_OPTIMIZE_MEMORY. - - * src/autofit/rules.mk, src/autofit/module.mk, - src/autofit/afangles.h: New files. - - * src/autofit/afhints.c (af_axis_hints_new_segment, - af_axis_hints_new_edge): New functions. - (af_glyph_hints_done): Do proper deallocation. - (af_glyph_hints_reload): Only reallocate points array. This - drastically reduces heap usage. - - * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec): Optimize - member types and positions. - (AF_AxisHintsRec): Add `max_segments' and `max_edges'. - (af_axis_hints_new_segment, af_axis_hints_new_edge): New prototypes. - - * src/autofit/aflatin.c (af_latin_metrics_scale): Don't call - AF_SCALER_EQUAL_SCALES. - (af_latin_hints_compute_segments): Change return type to FT_Error. - Update all callers. - Improve segment allocation. - (af_latin_hints_compute_edges): Change return type to FT_Error. - Update all callers. - Improve edge allocation and link handling. - (af_latin_hints_detect_features): Change return type to FT_Error. - Update all callers. - - * src/autofit/aflatin.h: Updated. - - * src/autofit/afloader.c (af_loader_load_g) - <FT_GLYPH_FORMAT_OUTLINE>: Assure axis->num_edges > 1. This fixes - a bug with certain fonts. - - * include/freetype/config/ftmodule.h: The auto-fitter is now the - only supported auto-hinting module. - - * include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro. - -2005-02-28 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttpload.c (tt_face_load_loca): Fix typo. - - * src/sfnt/ttkern.c: Include `ttkern.h'. - (FT_COMPONENT): Updated. - - * include/freetype/internal/fttrace.h: Add entry for `ttkern'. - - * src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/. - Decorate constants with `U' and `L' where necessary. - - * src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable. - -2005-02-28 David Turner <david@freetype.org> - - * src/base/ftdbgmem.c (FT_DumpMemory): Added sorting of memory - sources according to decreasing maximum cumulative allocations. - (ft_mem_source_compare): New auxiliary function. - - * src/sfnt/ttsbit0.c: New file, implementing a heap-optimized - embedded bitmap loader. - - * src/sfnt/ttsbit.c: Include `ft2build.h', FT_INTERNAL_DEBUG_H, - FT_INTERNAL_STREAM_H, FT_TRUETYPE_TAGS_H. - Load `ttsbit0.c' if FT_OPTIMIZE_MEMORY is set, otherwise use - file contents. - (tt_face_load_sbit_strikes): Set up root fields to indicate the - strikes. This fixes Savannah bug #12107. - Use `static' keyword for `sbit_line_metrics_field', - `strike_start_fields', `strike_end_fields'. - - * include/freetype/internal/tttypes.h (TT_FaceRec): Define - `sbit_table', `sbit_table_size', `sbit_num_strikes' if - FT_OPTIMIZE_MEMORY is set. - Don't define `num_sbit_strikes' and `sbit_strikes' if - FT_OPTIMIZE_MEMORY is set. - - * src/cff/cffobjs.c (sbit_size_reset): Handle FT_OPTIMIZE_MEMORY. - - * src/sfnt/sfobjs.c (sfnt_load_face): Fixed bug that prevented - loading SFNT fonts without a `kern' table. - Properly pass root->face_flags. - Remove code for TT_CONFIG_OPTION_EMBEDDED_BITMAPS. - - * src/sfnt/sfdriver.c (sfnt_interface) - [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Don't use `tt_find_sbit_image' - and `tt_load_sbit_metrics'. - - * src/sfnt/ttcmap.c: Optimize linear charmap scanning for Format 4. - (OPT_CMAP4): New macro. - (TT_CMap4Rec) [OPT_CMAP4]: New structure. - (tt_cmap4_init, tt_cmap4_set_range, tt_cmap4_next, tt_cmap4_reset) - [OPT_CMAP4]: New functions. - (tt_cmap4_char_next) [OPT_CMAP4]: Use `tt_cmap4_next' and - `tt_cmap4_reset'. - (tt_cmap4_class_rec) [OPT_CMAP4]: Use `TT_CMap4Rec' and - `tt_cmap4_init'. - - * src/truetype/ttobjs.c (Reset_SBit_Size): Handle - FT_OPTIMIZE_MEMORY. - - * src/autofit/afhints.h (AF_PointRec, AF_SegmentRec, AF_EdgeRec): - Optimize member types. - - * src/autofit/afloader.c (af_loader_done): Call - `af_glyph_hints_done'. - -2005-02-27 David Turner <david@freetype.org> - - * src/sfnt/ttkern.c (tt_face_load_kern): Fix a small bug which - caused invalid (random) return values for the horizontal kerning. - -2005-02-25 David Turner <david@freetype.org> - - Implement several memory optimizations to drastically reduce the - heap usage of FreeType, especially in the case of memory-mapped - files. The idea is to avoid loading and decoding tables in the - heap, and instead access the raw data whenever possible (i.e., when - it doesn't compromise performance). - - This has several benefits: For example, opening vera.ttf now uses - just a small amount of memory (even when the FT_Library footprint is - accounted for), until you start loading glyphs. Even then, you save - at least 20KB compared to the non-optimized case. Performance of - various operations, including open and close, has also been - dramatically improved. - - More optimizations to come, especially for the auto-hinter. - - * include/freetype/internal/sfnt.h (TT_Face_GetKerningFunc): New - function type. - (SFNT_Interface): Add it. - - * include/freetype/internal/tttypes.h (TT_HdmxEntryRec, TT_HdmxRec, - TT_Kern0_PairRec): Don't define if FT_OPTIMIZE_MEMORY is set. - (TT_FaceRec): Define `horz_metrics', `horz_metrics_size', - `vert_metrics', `vert_metrics_size', `hdmx_table', - `hdmx_table_size', `hdmx_record_count', `hdmx_record_size', - `hdmx_record_sizes', `kern_table', `kern_table_size, - `num_kern_tables', `kern_avail_bits', `kern_order_bits' if - FT_OPTIMIZE_MEMORY is set. - Don't define `hdmx', `num_kern_pairs', `kern_table_index', - `kern_pairs' if FT_OPTIMIZE_MEMORY is set. - - * src/base/ftdbgmem.c (ft_mem_table_set): Don't shadow variable. - Fix compiler warning. - - * src/cff/cffdrivr.c (Get_Kerning): Renamed to... - (cff_get_kerning): This. Simplify. - (cff_driver_class): Updated. - - * src/sfnt/Jamfile (_sources): Add `ttkern'. - * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttkern.c'. - - * src/sfnt/sfdriver.c (sfnt_interface): Add `tt_face_get_kerning'. - - * src/sfnt/sfnt.c: Include `ttkern.c'. - - * src/sfnt/sfobjs.c: Include `ttkern.h'. - (sfnt_load_face): Consider the `kern' and `gasp' table as optional. - (sfnt_done_face): Call `tt_face_done_kern'. - Handle horizontal metrics for FT_OPTIMIZE_MEMORY. - - * src/sfnt/ttkern.c, src/sfnt/ttkern.h: New files. Code has been - taken from `ttload.c' and `ttload.h'. - Provide special versions of `tt_face_load_kern', - `tt_face_get_kerning', and `tt_face_done_kern' for - FT_OPTIMIZE_MEMORY. - - * src/sfnt/ttload.c (tt_face_load_metrics, tt_face_load_hdmx, - tt_face_free_hdmx): Provide version for FT_OPTIMIZE_MEMORY. - (tt_face_load_kern, tt_kern_pair_compare, TT_KERN_INDEX): Moved to - `ttkern.c'. - - * src/sfnt/ttload.h: Updated. - - * src/sfnt/ttsbit.c (sbit_metrics_field): Add `static' keyword. - - * src/truetype/ttdriver.c (Get_Kerning): Renamed to... - (tt_get_kerning): This. Simplify. - (tt_driver_class): Updated. - - * src/truetype/ttgload.c (TT_Get_Metrics): Renamed to... - (tt_face_get_metrics): This. Provide version for FT_OPTIMIZE_MEMORY. - Update all callers. - (Get_Advance_Widths): Replaced with... - (Get_Advance_WidthPtr): This. Provide version for - FT_OPTIMIZE_MEMORY. - Update all callers. - - * src/truetype/ttgload.h: Updated. - -2005-02-22 David Turner <david@freetype.org> - - * src/base/ftdbgmem.c: Partly rewritten. Added the ability to list - all allocation sites in the memory debugger. Also a new function - FT_DumpMemory() was added. It is only available in builds with - FT_DEBUG_MEMORY defined, and you must declare it in your own code to - use it, i.e., with something like: - - extern void FT_DumpMemory( FT_Memory ); - - ... - - FT_DumpMemory( memory ); - - * include/freetype/config/ftoption.h - (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Comment out definition -- - again. - (FT_OPTIMIZE_MEMORY): New configuration macro to control various - optimizations for reducing the heap footprint of memory-mapped - TrueType files. - - * include/freetype/internal/ftmemory.h (FT_ARRAY_ZERO): New - convenience macro. - - * include/freetype/internal/tttypes.h (TT_FaceRec) - [FT_OPTIMIZE_MEMORY]: Use optimized types for `num_locations' and - `glyph_locations'. - - * src/truetype/ttgload.c (load_truetype_glyph): Call - `tt_face_get_location'. - - * src/truetype/ttobjs.c (tt_face_init) - [FT_CONFIG_OPTION_INCREMENTAL]: Improve error handling. - (tt_face_done): Call `tt_face_done_loca'. - - * src/truetype/ttpload.c (tt_face_get_location, tt_face_done_loca): - New functions. If FT_OPTIMIZE_MEMORY is set, the locations table is - read directly from memory-mapped streams, instead of being decoded - into the heap. - (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: New implementation. - (tt_face_load_cvt, tt_face_load_fpgm): Only load table if the - bytecode interpreter is compiled in. - - * src/truetype/ttpload.h: Updated. - - * src/autohint/ahglyph.c (ah_outline_load): Improve allocation - logic. - -2005-02-20 Werner Lemberg <wl@gnu.org> - - * builds/unix/ltmain.sh: Regenerated with `libtoolize --force - --copy' from libtool 1.5.14. - * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from - automake 1.9.4. - - * builds/unix/config.guess, builds/unix/config.sub: Updated from - `config' CVS module at subversions.gnu.org. - - * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from - `texinfo' CVS module at subversions.gnu.org. - -2005-02-14 Werner Lemberg <wl@gnu.org> - - * src/cff/cffcmap.c (cff_cmap_unicode_init): Don't try to build - a cmap for a CID-keyed font which doesn't have SIDs. - -2005-02-13 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (read_binary_data): Return more meaningful - value. - (parse_encoding, parse_subrs, parse_charstrings, parse_dict): Check - parser error value after call to T1_Skip_PS_Token (where necessary). - - * src/type1/t1parse.c (T1_Get_Private_Dict): Check parser error - value after call to T1_Skip_PS_Token. - - * src/cid/cidparse.c (cid_parser_new): Check parser error value - after call to cid_parser_skip_PS_token. - - * src/type42/t42parse.c (t42_parse_encoding, t42_parse_sfnts, - t42_parse_charstrings, t42_parse_dict): Check parser error value - after call to T1_Skip_PS_Token (where necessary). - - * src/psaux/psobjs.c (skip_string, ps_parser_skip_PS_token, - ps_tobytes): Add error messages. - -2005-02-12 Werner Lemberg <wl@gnu.org> - - * configure: Output more variables to the created Makefile so that - it can be used for ft2demos also (if the FT2DEMOS variable is - defined). - -2005-02-10 David Turner <david@freetype.org> - - * src/pfr/pfrgload.c (pfr_glyph_load): Fix an unbounded growing - dynamic array when loading a glyph from a PFR font (Savannah bug - #11921). - - * src/base/ftbitmap.c (FT_Bitmap_Convert): Small improvements to the - conversion function (mainly stupid optimization). - - * src/base/Jamfile: Adding ftbitmap.c to the list of compiled files. - -2005-02-10 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype-config.in: Add new flag `--ftversion' to - return the FreeType version. Suggested by George Williams - <gww@silcom.com>. - - * docs/CHANGES: Updated. - -2005-02-09 Werner Lemberg <wl@gnu.org> - - * src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case - of error. Reported by YAMANO-UCHI Hidetoshi <mer@din.or.jp>. - -2005-02-08 Werner Lemberg <wl@gnu.org> - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - <op_closepath>: Accept `T1_Parse_Have_Moveto' state also which can - happen in empty glyphs. Reported by Ian Brown - <ian.brown@printsoft.de> (Savannah bug #11856). - -2005-02-04 Werner Lemberg <wl@gnu.org> - - * src/otlayout/*: Removed. Obsolete. - -2004-12-28 Werner Lemberg <wl@gnu.org> - - * builds/unix/ltmain.sh: Regenerated with `libtoolize --force - --copy' from libtool 1.5.10. - * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from - automake 1.9.4. - * builds/unix/configure: Regenerated with autoconf 2.59b. - - * builds/unix/config.guess, builds/unix/config.sub: Updated from - `config' CVS module at subversions.gnu.org. - - * builds/unix/install-sh: Updated from - `texinfo' CVS module at subversions.gnu.org. - - * builds/unix/ftsystem.c (FT_Stream_Open): Add proper cast for - ft_alloc. - Fix compiler warning. - -2004-12-27 Dirck Blaskey <listtarget@danbala.com> - - * src/cff/cffobjs.c (cff_face_init): Improve computation of - FT_STYLE_BOLD_FLAG. - -2004-12-27 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): A CFF within an SFNT can have - only a single font. This is undocumented but has been verified on - the opentype list. - -2004-12-26 Werner Lemberg <wl@gnu.org> - - * Jamfile (FT2_COMPONENTS): Add `otvalid'. - -2004-12-25 Werner Lemberg <wl@gnu.org> - - * src/base/ftbitmap.c (FT_Bitmap_Convert): Fix compiler warning. - -2004-12-15 Werner Lemberg <wl@gnu.org> - - * vms_make.com: Add ftbitmap.obj. - -2004-12-14 Werner Lemberg <wl@gnu.org> - - * src/base/ftbitmap.c, include/freetype/ftbitmap.h: New files for - handling various bitmap formats. - - * include/freetype/config/ftheader.h (FT_BITMAP_H): New macro. - - * src/base/rules.mk (BASE_EXT_SRC): Add ftbitmap.c. - - * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Don't convert bitmaps to 8bpp - but return them as-is. - - * docs/CHANGES: Mention new bitmap API. - * include/freetype/ftchapters.h: Updated. - -2004-12-11 Robert Clark <freetype@ratty.org.uk> - - * src/base/ftobjs.c (FT_Get_Kerning): Make kerning amount - dependent on ppem by scaling down for ppem < 25, then do normal - rounding. This gives slightly better results than rounding towards - zero. - -2004-12-09 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Get_Kerning): Always round towards zero - for FT_KERNING_DEFAULT. This greatly enhances the kerning for - small ppem values. - -2004-12-08 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (ft_glyphslot_clear): Reset `lsb_delta' and - `rsb_delta'. - -2004-12-05 Werner Lemberg <wl@gnu.org> - - * builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h. - -2004-12-03 Antoine Leca <Antoine-Freetype@Leca-Marti.org> - - * include/freetype/ttnameid.h: Updated to latest - specifications from Microsoft. - -2004-11-26 Jouk Jansen <joukj@hrem.stm.tudelft.nl> - - * vms_make.com: Include ftbbox.c. - Fix `ccopt'. - Handle `otvalid' module. - Update `vmslib.dat' default values. - Fixes to `libs.opt'. - -2004-11-23 Anders Kaseorg <anders@kaseorg.com> - - * src/base/ftoutln.c (FT_OrientationExtremumRec, - ft_orientation_extremum_compute): Removed. - (FT_Outline_Get_Orientation): Rewritten, simplified. - - * src/autohint/ahglyph.c: Include FT_OUTLINE_H. - (ah_test_extremum, ah_get_orientation): Removed. - (ah_outline_load): Use FT_Outline_Get_Orientation. - - * src/base/ftsynth.c (ft_test_extrema, ft_get_orientation): Removed. - (FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation. - -2004-11-23 Fernando Papa <fpapa@netgate.com.uy> - - * src/truetype/ttinterp.h: Fix typo. - -2004-11-22 Antoine Leca <Antoine-Freetype@Leca-Marti.org> - - * builds/win32/detect.mk: Corrected logic that detects Windows NT to - use the previous change even if win32 is forced. Corrected - detection of win32 on Win9X. - - * builds/dos/detect.mk: Added same correction as for win32 about - COPY on Windows NT. Detection of plain DOS 7.x. - -2004-11-22 Werner Lemberg <wl@gnu.org> - - * builds/detect.mk: Undo change from 2004-11-20. - * builds/win32/detect.mk: If the `OS' environment variable contains - `Windows_NT', use `cmd.exe /c copy' for copying files. - -2004-11-20 Werner Lemberg <wl@gnu.org> - - * builds/detect.mk (dos_setup): Use `cmd.exe' for copying - $(CONFIG_MK) to force lowercase file name under Windows. - -2004-11-19 Werner Lemberg <wl@gnu.org> - - Fix a serious bug in the TT hinter. - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift - points vertically before hinting. - - * docs/CHANGES: Updated. - - * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, - FTC_GCache_Lookup): A new try to fix comparison with zero. - -2004-11-16 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.ac: Add `-fno-strict-aliasing' if gcc is - used. - * builds/unix/configure: Regenerated. - * builds/unix/config.guess, builds/unix/config.sub: Updated from - `config' CVS module at subversions.gnu.org. - -2004-11-16 Dr. Martin P.J. Zinser <zinser@decus.de> - - * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, - FTC_GCache_Lookup): Fix comparison with zero. - - * docs/INSTALL.VMS: Updated. - - * vms_make.com: Updated. All `descrip.mms' files are now created - automatically. - - * src/*/descrip.mms: Removed. - -2004-11-16 Owen Taylor <otaylor@redhat.com> - - * builds/unix/freetype-config.in: Suppress -L$libdir for - /usr/lib64 as well as /usr/lib. (Reported by Dan Winship - - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139199) - -2004-11-11 Werner Lemberg <wl@gnu.org> - - * src/cff/cffdrivr.c (cff_service_ps_info): Updated. - * src/cid/cidriver.c (cid_service_ps_info): Updated. - * src/type42/t42drivr.c (t42_ps_get_font_private): New function. - (t42_service_ps_info): Updated. - - * src/type42/t42parse.c (t42_parse_dict): Remove compiler warning. - -2004-11-11 David Bevan <dbevan@emtex.com> - - Add new function FT_Get_PS_Font_Private(). - - * include/freetype/internal/services/svpsinfo.h - (PS_GetFontPrivateFunc): New service function. - - * include/freetype/t1tables.h, src/base/fttype1.c - (FT_Get_PS_Font_Private): New function. - - * src/type1/t1driver.c (t1_ps_get_font_private): New function. - (t1_service_ps_info): Updated. - -2004-10-13 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftstdlib.h: Include `stddef.h'. - (ft_ptrdiff_t): Define. - - * include/freetype/fttypes.h (FT_PtrDist): Use `ft_ptrdiff_t'. - - * src/cid/cidload.c (cid_parse_dict), src/type1/t1load.c - (parse_dict): Fix compiler warning. - -2004-10-11 Joshua Neal <jneal@csdaily.com> - - * src/sfnt/ttcmap.c (tt_face_build_cmaps): Check for pointer - overflow. - - * src/sfnt/ttload.c (tt_face_load_hdmx): Protect against bad input. - Don't use FT_QNEW_ARRAY but FT_NEW_ARRAY to make deallocation work - in case of failure. - - * src/sfnt/ttsbit.c (Load_SBit_Range): Check range intervals. - (tt_face_load_sbit_strikes): Allocate `strike_sbit_ranges' after - frame test. - - * src/truetype/ttgload.c (TTLoad_Simple_Glyph): Add assertion for - `flag'. - -2004-10-09 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2004-10-09 Boris Letocha <b.letocha@cz.gmc.net> - - Fix handling of NPUSHW if skipped in data stream. - - * src/truetype/ttinterp.c (opcode_length): Set value for NPUSHW - to -2. - (SkipCode, TT_RunIns): Use opcode_length value for computation of - bytes to be skipped. - -2004-09-10 Jouk Jansen <joukj@hrem.stm.tudelft.nl> - - * vms_make.com: Updated. - -2004-09-09 Werner Lemberg <wl@gnu.org> - - Adding OpenType validation module. The code is based on the - (unfinished) `otlayout' module but has been heavily modified to make - it much more compact. - - * src/otvalid/*: New module. - - * include/freetype/ftotval.h, src/base/ftotval.c, - include/freetype/internal/services/svotval.h: New files. - - * include/freetype/config/ftmodule.h: Add otv_module_class. - * include/freetype/config/ftheader.h (FT_OPENTYPE_VALIDATE_H): New - macro. - * include/freetype/internal/ftserv.h - (FT_SERVICE_OPENTYPE_VALIDATE_H): New macro. - * include/freetype/internal/fttrace.h (otvmodule, otvcommon, - otvbase, otvgdef, otvgpos, otvgsub, otvjstf): New trace components. - - * include/freetype/ftchapters.h: Updated. - - * src/base/Jamfile (Library), src/base/descrip.mms (OBJS), - src/base/rules.mk (BASE_EXT_SRC): Updated. - - * docs/CHANGES: Updated. - -2004-09-08 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/sources.py (re_source_block_format2) <column>: - Use lookahead assertion to not match `*/'. This removes spurious - insertions of `/' in the HTML output. - -2004-09-07 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Fix call to - FT_NEW_ARRAY. - -2004-09-04 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftobjs.h: Don't include - FT_CONFIG_STANDARD_LIBRARY_H. - (FT_Validator, FT_ValidationLevel, FT_ValidatorRec, FT_VALIDATOR, - ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID, - FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT, - FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to... - - * include/freetype/internal/ftvalid.h: New file. - Make FT_INVALID return module-specific error codes. - - * include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New - macro. - - * include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if - FT_KEEP_ERR_PREFIX isn't defined. - - * src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H. - - * src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but - FT_INTERNAL_VALIDATE_H. - - * src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but - FT_INTERNAL_VALIDATE_H. - Include sferrors.h before FT_INTERNAL_VALIDATE_H. - s/FT_Err_Ok/SFNT_Err_Ok/. - - * src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX. - - * src/type1/t1afm.c: Include t1errors.h. - -2004-09-03 Werner Lemberg <wl@gnu.org> - - * src/base/ftdebug.c (ft_debug_init): Highest debug level is 7, - not 6. - * docs/DEBUG: Updated. - -2004-08-30 Werner Lemberg <wl@gnu.org> - - * include/freetype/tttags.h (TTAG_BASE, TTAG_GDEF, TTAG_GPOS, - TTAG_JSTF): New tags. - - * include/freetype/fttypes.h (FT_Bytes, FT_Tag): New typedefs. - (FT_Int): Add `signed'. - -2004-08-29 Werner Lemberg <wl@gnu.org> - - * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): Add argument - to pass number of lookups. - Update all callers. - Don't call otl_lookup_list_validate but otl_lookup_validate. - (otl_gpos_validate): Call otl_lookup_list_validate instead of - otl_gpos_subtable_validate. - - * src/otlayout/otlgpos.h: Updated. - - * src/otlayout/otljstf.c (otl_jstf_max_validate): Add argument to - pass number of lookups. - Update all callers. - - - * src/cff/cffparse.c (cff_parse_real): s/exp/exponent/ to avoid - compiler warning. - - - * src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Renamed to... - * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: This. - * src/sfnt/Jamfile, src/sfnt/rules.mk, src/sfnt/sfdriver.c, - src/sfnt/sfnt.c, src/sfnt/sfobjs.c: Updated. - - - * builds/compiler/gcc-dev.mk (CFLAGS): Don't add `-Wnested-externs' - if compiler is g++ (v3.3.3 emits a warning otherwise). - -2004-08-28 Werner Lemberg <wl@gnu.org> - - * src/otlayout/otlgpos.c (otl_value_length): Return number of bytes, - not number of 16bit entities. - (otl_gpos_lookup2_validate): Check class definition tables for - format 2. - Fix loop for format 2. - (otl_liga_mark2_validate): Fix offset for otl_anchor_validate. - -2004-08-27 Werner Lemberg <wl@gnu.org> - - * src/base/ftmac.c: Don't include truetype/ttobjs.h. - Don't include type1/t1objs.h. - (FT_New_Face_From_FSSpec) [!__MWERKS__]: Remove compiler warnings. - -2004-08-27 Mathieu Malaterre <mathieu@malaterre.com> - - * src/base/ftmac.c: Handle OS_INLINE for xlc compiler also. - -2004-08-27 Werner Lemberg <wl@gnu.org> - - * src/otlayout/otlayout.h: Add copyright. - (OTL_INVALID_OFFSET): Removed. - - * src/otlayout/otlgdef.h: Include otlayout.h. - Comment out inclusion of otltable.h. - - * src/otlayout/otlgpos.c (otl_gpos_lookup4_validate): Fix call - to otl_base_array_validate. - (otl_liga_mark2_validate): Fix `for' loop. - - * src/otlayout/otlgsub.c (otl_ligature_validate): Check `glyph_id', - not components array. - - * src/otlcommn.c (otl_lookup_get_count, otl_feature_get_count): - Comment out. - (otl_lookup_list_get_count, otl_feature_list_get_count): Activate. - (otl_feature_list_validate, otl_gsubgpos_get_lookup_count): - s/otl_lookup_get_count/otl_lookup_list_get_count/. - (otl_script_list_validate): - s/otl_feature_get_count/otl_feature_list_get_count/. - (otl_script_validate): Call otl_lang_validate for default language. - - * src/otlayout/otlcommn.h: Updated. - -2004-08-16 Werner Lemberg <wl@gnu.org> - - * src/otlayout/otlgpos.c (otl_gpos_lookup1_validate, - otl_gpos_lookup2_validate, otl_gpos_lookup3_validate, - otl_gpos_lookup4_validate, otl_gpos_lookup5_validate, - otl_gpos_lookup6_validate, otl_gpos_lookup9_validate, - otl_gpos_validate): Update - function arguments. - (otl_gpos_lookup7_validate, otl_gpos_lookup8_validate): Update - function arguments. - Handle NULL offsets correctly. - Check sequence and lookup indices for format 3. - (otl_pos_rule_validate, otl_chain_pos_rule_validate): Add argument - to pass lookup count. - Check sequence and glyph indices. - (otl_gpos_subtable_validate): Update function arguments. - Update callers. - - * src/otlayout/otlgpos.h: Updated. - - * src/otlayout/otlgsub.c (otl_gsub_lookup1_validate, - otl_gsub_lookup3_validate, otl_gsub_lookup8_validate): Update - function arguments. - Add glyph index checks. - (otl_sequence_validate, otl_alternate_set_validate, - otl_ligature_validate): Add argument to pass glyph count. - Update callers. - Add glyph index check. - (otl_gsub_lookup2_validate, otl_gsub_lookup4_validate): Update - function arguments. - (otl_ligature_set_validate): Add argument to pass glyph count. - Update caller. - (otl_sub_class_rule_validate, - otl_sub_class_rule_set_validate): Removed. - (otl_sub_rule_validate, otl_chain_sub_rule_validate): Add argument - to pass lookup count. - Update callers. - Add lookup index check. - (otl_sub_rule_set_validate, otl_chain_sub_rule_set_validate): Add - argument to pass lookup count. - Update callers. - (otl_gsub_lookup5_validate): Update function arguments. - Handle NULL offsets correctly. - Don't call otl_sub_class_rule_set_validate but - otl_sub_rule_set_validate. - Check sequence and lookup indices for format 3. - (otl_gsub_lookup6_validate): Update function arguments. - Handle NULL offsets correctly. - Check sequence and lookup indices for format 3. - (otl_gsub_lookup7_validate, otl_gsub_validate): Update function - arguments. - - * src/otlayout/otlgsub.h: Updated. - - * src/otlayout/otlbase.c (otl_base_validate): Handle NULL offsets - correctly. - - * src/otlayout/otlcommn.c (otl_class_definition_validate): Fix - compiler warning. - (otl_coverage_get_first, otl_coverage_get_last): New functions. - (otl_lookup_validate): Add arguments to pass lookup and glyph - counts. - Update callers. - (otl_lookup_list_validate): Add argument to pass glyph count. - Update callers. - - * src/otlayout/otlcommn.h: Updated. - - * src/otlayout/otljstf.c (otl_jstf_extender_validate, - otl_jstf_max_validate, otl_jstf_script_validate, - otl_jstf_priority_validate, otl_jstf_lang_validate): Add parameter - to validate glyph indices. - Update callers. - (otl_jstf_validate): Add parameter which specifies number of glyphs - in font. - - * src/otlayout/otljstf.h: Updated. - -2004-08-15 Werner Lemberg <wl@gnu.org> - - * src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter - to handle possible NULL values properly. - Update all callers. - -2004-08-15 Werner Lemberg <wl@gnu.org> - - * src/otlayout/gpos.c: Rename counting variables to be more - meaningful. - Add copyright. - (otl_liga_attach_validate): Renamed to... - (otl_liga_mark2_validate): This. - Update all callers. - (otl_mark2_array_validate): Removed. - (otl_gpos_lookup6_validate): Call otl_liga_mark2_validate, not - otl_mark2_array_validate. - (otl_pos_class_set_validate, otl_pos_class_rule_validate): Removed. - (otl_gpos_lookup7_validate): Complete code for format 2. - (otl_chain_pos_class_rule_validate, - otl_chain_pos_class_set_validate): Removed. - (otl_gpos_lookup8_validate): Don't call - otl_chain_pos_class_set_validate but - otl_chain_pos_rule_set_validate. - Simplify some code. - - * src/otlayout/otlgpos.h: Add copyright. - -2004-08-14 Werner Lemberg <wl@gnu.org> - - * src/otlayout/otljstf.c (otl_jstf_gsub_mods_validate): Removed. - (otl_jstf_gpos_mods_validate): Renamed to... - (otl_jstf_gsubgpos_mods_validate): This. - Test whether lookup_count is zero. - (otl_jstf_priority_validate): Use otl_jstf_gsubgpos_mods_validate. - (otl_jstf_validate): Initialize gsub_lookup_count and - gpos_lookup_count if gsub or gpos is zero. - - * src/otlayout/otlgsub.c: Rename counting variables to be more - meaningful. - Add copyright. - (otl_gsub_lookup1_validate): Simplify code. - (otl_gsub_lookup2_validate, otl_gsub_lookup3_validate, - otl_gsub_lookup4_validate, otl_gsub_lookup7_validate): Remove unused - variables. - (otl_gsub_lookup5_validate): Remove unused variable. - Fix call to otl_sub_rule_set_validate and - otl_sub_class_rule_set_validate. - (otl_chain_sub_class_rule_validate, - otl_chain_sub_class_set_validate): Removed. - (otl_gsub_lookup6_validate): Remove unused variable. - Fix call to otl_chain_sub_rule_set_validate. - (otl_gsub_lookup7_validate): Handle lookup type 8 also. - (otl_gsub_lookup8_validate: New function. - (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, - otl_gsub_lookup3_apply): Commented out. - (otl_gsub_validate_funcs): Add otl_gsub_lookup7_validate and - otl_gsub_lookup8_validate. - (otl_gsub_validate): Updated. - - * src/otlayout/otlgsub.h: Add copyright. - - * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h - (otl_coverage_get_index): Comment out. - -2004-08-13 Werner Lemberg <wl@gnu.org> - - * src/otlayout/otlcommn.c (otl_gsubgpos_get_lookup_count): New - function. - * src/otlayout/otlcommn.h: Updated. - - * src/otlayout/otlbase.c: Rename counting variables to be more - meaningful. - Add copyright message. - * src/otlayout/otlbase.h: Add copyright message. - - * src/otlayout/otlgdef.c: Rename counting variables to be more - meaningful. - Add copyright message. - Use OTL_CHECK everywhere. - (otl_caret_value_validate): Remove unused variable. - (otl_gdef_validate): All tables are optional. - * src/otlayout/otlgdef.h: Add copyright message. - - * src/otlayout/otljstf.c: Rename counting variables to be more - meaningful. - Add copyright message. - (otl_jstf_gsub_mods_validate, otl_jstf_gpos_mods_validate): Add - parameter to pass lookup count. - Update all callers. - Check lookup array. - (otl_jstf_max_validate): - s/otl_gpos_subtable_check/otl_gpos_subtable_validate/. - (otl_jstf_priority_validate, otl_jstf_lang_validate, - otl_jstf_script_validate): Add two parameters to pass lookup counts. - Update all callers. - (otl_jstf_validate): Add two parameters to pass GPOS and GSUB - table offsets; use otl_gsubgpos_get_lookup_count to convert extract - lookup counts. - Fix typo. - * src/otlayout/otljstf.h: Updated. - Add copyright message. - - * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): New function. - (otl_gpos_validate): Use it. - * src/otlayout/otlgpos.h: Updated. - -2004-08-13 Werner Lemberg <wl@gnu.org> - - * src/otlayout/otcommn.c: Use OTL_CHECK everywhere. - (otl_coverage_validate): Initialize `p', - s/count/num_glyphs/. - s/start_cover/start_coverage/. - (otl_coverage_get_index): Return OTL_Long, not OTL_Int. - Remove unused variables. - (otl_class_definition_validate): s/count/num_glyphs/. - Remove unused variables. - (otl_class_definition_get_value, otl_device_table_get_start, - otl_device_table_get_end, otl_device_table_get_delta, - otl_lookup_get_table, otl_lookup_list_get_count, - otl_lookup_list_get_lookup, otl_lookup_list_get_table, - otl_feature_get_lookups, otl_feature_list_get_count, - otl_feature_list_get_feature, otl_lang_get_count, - otl_lang_get_req_feature, otl_lang_get_features): Commented out - temporarily until we really need it. - (otl_lookup_validate): Removed. - (otl_lookup_table_validate): Renamed to ... - (otl_lookup_validate): This. Update callers. - (otl_lookup_list_validate): Remove already commented out definition - and move the other definition up. - (otl_feature_validate): Add parameter to pass number of lookups. - Update callers. - Check lookup indices. - (otl_feature_list_validate): Add parameter to pass lookup table. - Update callers. - (otl_lang_validate): Add parameter to pass number of features. - Update callers. - Handle req_feature and check feature indices. - (otl_script_validate): Add parameter to pass number of features. - Update callers. - (otl_script_list_validate): Add parameter to pass feature table. - Update callers. - - * src/otlayout/otcommn.h: s/LOCALDEF/LOCAL/. - Comment out the same functions as in otcommn.c. - (otl_script_list_get_script): Removed. - - * src/otlayout/otlgsub.c (otl_gsub_lookup1_apply): Change `index' to - type OTL_Long. - (otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Change `index' to - type OTL_Long. - Fix test. - (otl_gsub_validate): Fix order of validation. - - * src/otlayout/otlgpos.c (otl_gpos_validate): Fix order of - validation. - -2004-08-12 Werner Lemberg <wl@gnu.org> - - Make otlayout module compile (without actually working). - - * src/otlayout/*: s/OTL_Valid/OTL_Validator/. - s/NULL/0/. - - * src/otlayout/otlayout.h: Fix various typos. - (OTL_Bool): New typedef. - (OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword. - (OTL_Err_InvalidArgument): Removed. - (OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values. - (OTL_MAKE_TAG): Add missing parenthesis. - (OTL_INVALID_DATA): Use OTL_Err_InvalidData. - (OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize. - (OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros. - - * src/otlayout/otlgpos.c: s/FT_/OTL_/. - s/OTL_Short/OTL_Int16/. - (otl_gpos_pairset_validate): Add return type. - (otl_base_array_validate): Fix call to otl_anchor_validate. - (otl_liga_array_validate): Fix call to otl_liga_attach_validate. - (otl_gpos_lookup5_validate): Fix typos. - (otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate. - (otl_gpos_lookup7_validate): Comment out unfinished code. - Fix typos. - - * src/otlayout/otlgsub.c: Add forward declaration for - otl_gsub_validate_funcs. - (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, - otl_gsub_lookup3_apply): Fix call to otl_parser_check_property. - s/otl_coverage_lookup/otl_coverage_get_index/. - (otl_ligature_validate): Add missing variable declaration. - (otl_sub_rule_validate): Fix typo. - (otl_sub_class_rule_validate): Add missing variable declaration. - Fix typo. - (otl_gsub_lookup5_validate): Fix typo. - (otl_gsub_lookup6_validate): Fix call to - otl_chain_sub_class_set_validate. - (otl_gsub_validate_funcs): Don't use `const'. - - * src/otlayout/otlcommn.c (otl_class_definition_get_value, - otl_device_table_validate, otl_device_table_get_delta, - otl_lookup_validate, otl_script_validate): Add missing - variable declarations. - (otl_lookup_list_validate): Comment out first definition. - (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. - (otl_feature_list_validate): - s/otl_feature_table_validate/otl_feature_validate/. - (otl_script_list_validate): - s/otl_script_table_validate/otl_script_validate/. - - * src/otlayout/otlcommn.h: Comment out first declaration. - (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. - - * src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to - otl_device_table_validate. - (otl_base_script_validate): Add missing variable declarations. - (otl_base_script_list_validate): Fix call to - otl_base_script_validate. - (otl_axis_table_validate): Fix calls to otl_base_tag_list_validate - and otl_base_script_list_validate. - (otl_base_validate): Fix calls to otl_axis_table_validate. - - * src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to - otl_attach_point_validate. - (otl_caret_value_validate): Add missing variable declaration. - Fix call to otl_device_table_validate. - (otl_ligature_glyph_validate): Fix call to otl_caret_value_validate. - (otl_ligature_caret_list_validate): Fix call to - otl_ligature_glyph_validate. - (otl_gdef_validate): Fix calls to otl_class_definition_validate, - otl_attach_list_validate, otl_ligature_caret_list_validate, and - otl_class_definition_validate. - - * src/otlayout/otltable.h (otl_table_validate, otl_table_init, - otl_table_set_script): Comment out. - - * src/otlayout/otlparse.h (OTL_ParserRec): - s/OTL_Alternate/OTL_GSUB_Alternate/. - (OTL_ParseError): Add OTL_Err_Parser_Memory and - OTL_Err_Parser_Internal. - (otl_parser_error): Fix typo. - (otl_parser_check_property): Remove third argument. - - * src/otlayout/otlparse.c (otl_string_ensure): - s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/. - (OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index, - otl_parser_replace_1, otl_parser_replace_n): Fix typos. - (OTL_PARSER_UNCOVERED): Removed. - (otl_parser_check_property): Remove third argument. - - * src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing - variable declaration. - - * src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo. - -2004-08-11 Danny <dannyboynow@yahoo.com> - - * src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close - to NULL. This allows custom close functions to delete the FT_STREAM - object. - -2004-08-11 Werner Lemberg <wl@gnu.org> - - Add API to get information about SFNT tables. - - * include/freetype/internal/services/svsfnt.h - (FT_SFNT_Table_Info_Func): New typedef. - (SFNT_Table): Add it. - - * src/base/ftobjs (FT_Sfnt_Table_Info): New function. - - * include/freetype/tttables.h: Updated. - - * src/sfnt/sfdriver.c (sfnt_table_info): New function. - (sfnt_service_sfnt_table): Add it. - - * docs/CHANGES: Updated. - - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. - - * builds/unix/configure.ac (version_info): Set to 9:8:3. - * builds/unix/configure: Updated. - - * builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/. - - * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): - s/2.1.9/2.1.10/. - - * docs/CHANGES, docs/VERSION.DLL: Updated. - -2004-08-11 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/base/ftrfork.c (FT_Raccess_Guess) - [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK]: Remove compiler - warnings. - -2004-08-06 Adam Piotrowski <st_intel@poczta.onet.pl> - - * src/pfr/pfrload.c (pfr_sort_kerning_pairs): Single-byte - adjustments are unsigned, not signed. - -2004-08-05 David Turner <david@freetype.org> - - `Activate' gray-scale specifying hinting within the TrueType - bytecode interpreter. This is an experimental feature which - should probably be made optional. - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Move the code to set the pedantic_hinting flag - to... - (TT_Load_Glyph): Here. - Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'. - - * src/truetype/ttinterp.c (Ins_GETINFO): Return MS rasterizer - version 1.7. - Return rotation and stretching info only if glyph is rotated or - stretched, respectively. - Handle grayscale info. - - * src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale' - member. - -2004-08-02 George Williams <gww@silcom.com> - - * src/base/ftobjs.c (FT_Attach_File): Initialize `open.stream'. - -2004-08-01 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2004-08-01 George Williams <gww@silcom.com> - - FreeType now can read kerning values from PFM files. - - * src/type1/t1afm.c (T1_Done_AFM): Renamed to... - (T1_Done_Metrics): This. - Update all callers. - (T1_Read_AFM): Make it static. - Don't enter and leave a frame. - (LITTLE_ENDIAN_USHORT, LITTLE_ENDIAN_UINT): New macros. - (T1_Read_PFM): New function. - (T1_Read_Metrics): New higher-level function to be used instead of - T1_Read_AFM. - Update all callers. - -2004-07-31 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfread (pcf_load_font), src/bdf/bdfdrivr.c - (BDF_Face_Init), src/truetype/ttgxvar (TT_Get_MM_Var, - tt_face_vary_cvt): Fix compiler warnings. - -2004-07-26 Søren Sandmann <sandmann@daimi.au.dk> - - * src/pcf/pcfread.c (pcf_interpret_style): Always allocate memory for - face->style_name. - * src/pcf/pcfdrivr.c (PCF_Face_Done): Free `style_name'. - -2004-07-26 Darren J Longhorn <darren.longhorn@redcom.co.uk> - - * include/freetype/config/ftconfig.h (FT_SIZEOF_LONG): Recognize - five-byte `long' (which is avoided then). - -2004-07-25 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/pcf/pcfdrivr.c (PCF_Set_Pixel_Size): Compare heights, not - ppem values. - (PCF_Set_Point_Size): Don't call PCF_Set_Pixel_Size but provide own - code to compare ppem values. - * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Compare heights, not - ppem values. - (BDF_Set_Point_Size): Don't call BDF_Set_Pixel_Size but provide own - code to compare ppem values. - -2004-07-25 Kornfeld Eliyahu Peter <peter@e-kadmon.net> - - * src/sfnt/sfobjs.c (sfnt_load_face): Handle - TT_NAME_ID_PREFERRED_FAMILY and TT_NAME_ID_PREFERRED_SUBFAMILY. - -2004-07-24 Derek B. Noonburg <derekn@foolabs.com> - - * src/cff/cffload.c (cff_font_load): Always create inverse mapping. - Even if the charstring count is the same as the CID count, it is - still possible that the font uses a different CID -> GID mapping. - -2004-07-23 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttobjs.c (tt_face_init): Accept 0x00020000 format tag - found in some Arphic fonts made for Chinese version of Windows 3.1. - -2004-07-17 David Turner <david@freetype.org> - - Fixed a dangling pointer bug in the cache code that happened in very - rare cases, i.e., when a new family object was destroyed by an - out-of-memory condition during a glyph node initialization. The - function FTC_Cache_Lookup would flush the cache and restart the - lookup with a bad pointer. - - * include/freetype/cache/ftcglyph.h (FTC_FAMILY_TREE): New macro. - (FTC_GCACHE_LOOKUP_CMP): Use it. - Handle reference count in `num_nodes' correctly. - - * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily): Use - FTC_FAMILY_FREE. - (FTC_GCache_Lookup): Handle reference count in `num_nodes' correctly. - - * src/cache/ftcmanag.c (FTC_Manager_FlushN): Fixed a cache flushing - bug. - - * src/truetype/ttinterp.c (Normalize): Fixed a bug that caused - long and unnecessary delays while normalizing huge vectors. - -2004-07-15 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - - * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix compiler - warning. - -2004-07-15 David Turner <david@freetype.org> - - * src/base/ftstroke.c (FT_Stroker_ParseOutline): Single points - are not stroked, preventing a bug with pala.ttf and other - fonts. - - * include/freetype/ftstroke.h: Updating documentation comments. - -2004-07-13 Werner Lemberg <wl@gnu.org> - - * src/base/ftstroke.c (ft_stroke_border_reverse): Removed. Unused. - -2004-07-12 David Turner <david@freetype.org> - - * src/base/ftstroke.c (ft_stroke_border_close): Add second parameter - to indicate reversion of points. - Update all callers. - (ft_stroke_border_reverse): Fix initialization of `point1' and - `tag1'. - - * src/cache/ftcsbits.c (ftc_snode_load): Fixing advance computation - for transformed glyphs. - -2004-07-11 David Turner <david@freetype.org> - - Fix bugs that prevented the stroker to correctly generate stroked - paths from closed paths, i.e., nearly all glyphs in vectorial fonts. - - The code is still _very_ buggy though; treat with special care. - - * src/base/ftstroke.c (FT_STROKE_TAG_BEGIN_END): New macro. - (ft_stroke_border_reverse): New function. - (ft_stroker_inside): Remove local variable `sigma'; use different - threshold. - (ft_stroker_add_reverse_left): Switch begin/end tags if necessary. - (FT_Stroker_EndSubPath): Call ft_stroker_inside and - ft_stroke_border_reverse. - -2004-06-26 Peter Kovar <peter.kovar@r3.roburnet.sk> - - * src/truetype/ttgload.c (load_truetype_glyph): Fix typo. - -2004-06-25 Werner Lemberg <wl@gnu.org> - - * src/type1/t1afm.c (afm_atoindex): Fix boundary test. Reported - by Dirck Blaskey. - -2004-06-24 David Turner <david@freetype.org> - - - * Version 2.1.9 released. - ========================= - - - * src/truetype/ttgload.c, src/truetype/ttxgvar.c: Removing - compiler warnings. - -2004-06-23 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare - FT_QAlloc_Debug and FT_QRealloc_Debug. - - * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages. - (FT_QRealloc): Call FT_QAlloc if original pointer is NULL. - Fix error message. - -2004-06-23 David Turner <david@freetype.org> - - * include/freetype/internal/ftmemory.h, src/base/ftutil.c - (FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug, - FT_QRealloc_Debug): New functions that perform allocation without - zero-ing out the corresponding blocks. - - * include/freetype/internal/ftmemory.h (FT_MEM_QALLOC, - FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY, - FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY, - FT_QRENEW_ARRAY): New macros. - - * src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC. - * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use FT_QNEW_ARRAY. - * src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY. - - * src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics, - tt_face_load_gasp): Use FT_QNEW_ARRAY. - (tt_face_load_kern): Use FT_QNEW_ARRAY. - Small optimization in the kerning table verifier; this speeds up - TrueType face opening by about 7%. - (tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC. - - * include/freetype/config/ftmodule.h: Changed the order of modules, - putting TrueType and Type 1 first. This dramatically improves the - performance of face open/close operations. For example, putting the - TrueType driver first in the list results in a 5x speedup when - opening `Vera.ttf'. - - The very problem is that both the PCF and BDF drivers do a lot more - than necessary to detect that they cannot handle a font file. - -2004-06-22 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties, - pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve - debugging messages. - - * src/pcf/pcfdrivr.c (FT_COMPONENT): Move up. - (PCF_Face_Init): Simplify code. - - * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'. - - * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start), - src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/. - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs. - Set `default_glyph'. - (BDF_Glyph_Load): Use `default_glyph' for undefined glyph. - - * docs/CHANGES: Updated. - -2004-06-21 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2004-06-21 David Turner <david@freetype.org> - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Don't access (unrounded) - `TT_Size.root.metrics' but (rounded) `TT_Size.metrics'. This fixes - a scaling bug that caused incorrect rendering when the bytecode - interpreter was enabled. - -2004-06-14 Huw D M Davies <h.davies1@physics.ox.ac.uk> - - * src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem - based on pixel_width and pixel_height. - (FNT_Size_Set_Pixels): Updated. - -2004-06-14 Werner Lemberg <wl@gnu.org> - - * src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h. - Reported by Hyvärinen Jyrki Juhani. - -2004-06-11 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2004-06-10 David Turner <david@freetype.org> - - * src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c, - src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed. - Obsolete. - - * src/raster/ftraster.c (Alignment, PAlignment): New union to fix - problems with 64bit systems. - (AlignProfileSize): Use it. - -2004-06-08 David Turner <david@freetype.org> - - * include/freetype/freetype.h (FT_Glyph_Metrics): Move `lsb_delta' - and `rsb_delta' elements to... - (FT_GlyphSlotRec): Here to retain binary compatibility with older - FreeType versions. - Update all users. - - * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning. - - * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization - of slot->metrics.width and slot->metrics.height when loading a - Windows FNT glyph. Thanks to Huw Davies. - - * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change - return type to FT_Bool. - - * src/cache/ftcbasic.c (ftc_basic_family_compare): Change return - type to FT_Bool. - - * src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make - the former call the latter, not vice versa. - (FTC_Cache_Done, ftc_cache_done): Ditto. - - * src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make - the former call the latter, not vice versa. - (FTC_GCache_Init, ftc_gcache_init): Ditto. - (FTC_GCache_Done, ftc_gcache_done): Ditto. - - * src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the - former call the latter, not vice versa. - (FTC_INode_Weight, ftc_inode_weight): Ditto. - - * src/cache/ftcmanag.c (ftc_size_node_compare, - ftc_size_node_compare_faceid, ftc_face_node_compare): Change return - type to FT_Bool. - - * src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the - former call the latter, not vice versa. - (FTC_SNode_Weight, ftc_snode_weight): Ditto. - (FTC_SNode_Compare, ftc_snode_compare): Ditto. - - * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache - sub-system. - -2004-06-05 Werner Lemberg <wl@gnu.org> - - * src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and - `rsb_delta' in slot->metrics and tune side bearings slightly. - -2004-06-04 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2004-06-04 David Chester <davidchester@qmx.net> - - Improve inter-letter spacing for autohinted glyphs. - - * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements - `lsb_delta' and `rsb_delta'. - - * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and - `rsb_delta' in slot->metrics and tune side bearings slightly. - -2004-06-04 David Turner <david@freetype.org> - - * src/autofit/*: Important fixes to the auto-fitter. The output - now seems to be 100% equivalent to the auto-hinter, while being - about 2% faster (which proves that script-specific algorithm - selection isn't a performance problem). - - To test it, change `autohint' to `autofit' in - <freetype/config/ftmodule.h> and recompile. - - A few more testing is needed before making this the official - auto-hinting module. - -2004-06-02 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler - warnings. - -2004-06-01 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English - name record for the Apple platform is preferred to a non-English - entry for the Microsoft platform. Problem reported by HANDA - Ken'ichi. - -2004-05-19 George Williams <gww@silcom.com> - - * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New - auxiliary functions. - (T1_Get_MM_Var): Provide axis tags. - Use mm_axis_unmap and mm_weights_unmap to provide default values - for design and normalized axis coordinates. - - * include/freetype/t1tables.h (PS_DesignMapRec): Change type of - `design_points' to FT_Long. - Update all users. - -2004-05-17 Werner Lemberg <wl@gnu.org> - - * src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases. - Reported by Mikey Anbary <manbary@vizrt.com>. - -2004-05-15 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name. - -2004-05-15 George Williams <gww@silcom.com> - - * src/sfnt/ttload.c (tt_face_load_max_profile): Always set - face->root.num_glyphs. - -2004-05-14 Masatake YAMATO <jet@gyve.org> - George Williams <gww@silcom.com> - - * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly. - -2004-05-14 Werner Lemberg <wl@gnu.org> - - * src/cache/ftcbasic.c (ftc_basic_family_compare, - ftc_basic_family_init, ftc_basic_family_get_count, - ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, - ftc_basic_gnode_compare_faceid): Adjust parameters and return types - to prototypes given in header files from include/freetype/cache. - Use casts to proper types locally. - (ftc_basic_image_family_class, ftc_basic_image_cache_class, - ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove - casts. - - * src/cache/ftccback.h: Adjust parameters and return types to - prototypes given in header files from include/freetype/cache. - - * src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new, - ftc_inode_weight): Adjust parameters and return types to prototypes - given in header files from include/freetype/cache. Use casts to - proper types locally. - - * src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new, - ftc_snode_weight, ftc_snode_compare): Adjust parameters and return - types to prototypes given in header files from - include/freetype/cache. Use casts to proper types locally. - - * src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new, - ftc_cmap_node_weight, ftc_cmap_node_compare, - ftc_cmap_node_remove_faceid): Adjust parameters and return types to - prototypes given in header files from include/freetype/cache. Use - casts to proper types locally. - (ftc_cmap_cache_class): Remove casts. - - * src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init, - ftc_gcache_done): Adjust parameters and return types to prototypes - given in header files from include/freetype/cache. Use casts to - proper types locally. - - * src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare, - ftc_size_node_init, ftc_size_node_reset, - ftc_size_node_compare_faceid, ftc_face_node_init, - ftc_face_node_done, ftc_face_node_compare: Adjust parameters and - return types to prototypes given in header files from - include/freetype/cache. Use casts to proper types locally. - - (ftc_size_list_class, ftc_face_list_class): Remove casts. - -2004-05-13 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done): - Use FT_Module as parameter and do a cast to FT_AutoHinter locally. - (autohint_module_class): Remove casts. - - * src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy, - ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init, - ft_outline_glyph_done, ft_outline_glyph_copy, - ft_outline_glyph_transform, ft_outline_glyph_bbox, - ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast - to FT_XXXGlyph locally. - Use FT_CALLBACK_DEF throughout. - (ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts. - - * src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done, - bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter - and do a cast to BDF_CMap locally. - (bdf_cmap_class): Remove casts. - -2004-05-12 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.h (CFF_Builder): Remove `error'. - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace - `Memory_Error' with `Fail' and update all users. - -2004-05-11 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/psaux.h (T1_ParseState): New - enumeration. - (T1_BuilderRec): Replace `path_begun' with `parse_state'. - Remove `error'. - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace - `Memory_Error' with `Fail' and update all users. - Don't use `builder->error'. - Replace `path_begun' with `parse_state' and check parsing states. - - * src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point): - Replace `path_begun' with `parse_state' and check parsing states. - -2004-05-10 George Williams <gww@silcom.com> - - * src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case - of error -- `avar' is optional so we can't rely on tt_done_blend - being called automatically. - -2004-05-09 George Williams <gww@silcom.com> - - * src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix - error handling. - -2004-05-07 Werner Lemberg <wl@gnu.org> - - * src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init, - pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done, - pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are - typecast to the proper PFR_XXX types within the function. - Update code accordingly. - - * src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance, - pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX - arguments which are typecast to the proper PFR_XXX types within the - function. - Update code accordingly. - Use FT_CALLBACK_DEF throughout. - (pfr_metrics_service_rec, pfr_driver_class): Remove casts. - -2004-05-06 Masatake YAMATO <jet@gyve.org> - - * src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM. - (*): Rename local variable OffsetToData to offsetToData. - -2004-05-06 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset, - cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access - root fields directly. - * src/cff/cffdrivr.c (Load_Glyph): Access root fields directly. - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current - frame before calling TT_Vary_Get_Glyph_Deltas. - - * src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for - consistency. - (pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index, - pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which - are typecast to the proper PCF_XXX types within the function. - Update code accordingly. - (pcf_cmap_class): Remove casts. - (PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use - PCF_XXX but FT_XXX arguments which are typecast to the proper - PCF_XXX types within the function. - Update code accordingly. - Use FT_CALLBACK_DEF throughout. - (PCF_Set_Point_Size): New wrapper function. - (PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF. - (pcf_driver_class): Remove casts. - -2004-05-04 Steve Hartwell <shspamsink@comcast.net> - - * src/truetype/ttobjs.c (tt_driver_done): Fix typo. - -2004-05-04 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init, - BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which - are typecast to the proper BDF_XXX types within the function. - Update code accordingly. - Use FT_CALLBACK_DEF throughout. - (BDF_Set_Point_Size): New wrapper function. - (bdf_driver_class): Remove casts. - - * src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface): - Don't use CFF_XXX but FT_XXX arguments which are typecast to the - proper CFF_XXX types within the function. - Update code accordingly. - Use FT_CALLBACK_DEF throughout. - (cff_driver_class): Remove casts. - - * src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done, - cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init, - cff_face_init, cff_face_done, cff_driver_init, cff_driver_done): - Don't use CFF_XXX but FT_XXX arguments which are typecast to the - proper CFF_XXX types within the function. - Update code accordingly. - (cff_point_size_reset): New wrapper function. - - * src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done, - cid_slot_init, cid_size_done, cid_size_init, cid_size_reset, - cid_face_done, cid_face_init, cid_driver_init, cid_driver_done): - Don't use CID_XXX but FT_XXX arguments which are typecast to the - proper CID_XXX types within the function. - Update code accordingly. - (cid_point_size_reset): New wrapper function. - - * src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph): - Don't use CID_XXX but FT_XXX arguments which are typecast to the - proper CID_XXX types within the function. - Update code accordingly. - - * src/cid/cidriver.c (cid_get_interface): - Don't use CID_XXX but FT_XXX arguments which are typecast to the - proper CID_XXX types within the function. - Update code accordingly. - Use FT_CALLBACK_DEF. - (t1cid_driver_class): Remove casts. - - * src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF. - * src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local - variables (this is done later). - (ft_var_load_avar): Fix call to FT_FRAME_ENTER. - (TT_Get_MM_Var): Fix size for `fvar_fields'. - (TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables - correctly. - - * src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if - current size is zero. - -2004-05-03 Steve Hartwell <shspamsink@comcast.net> - - * src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init, - tt_face_done, tt_size_init, tt_size_done, tt_driver_init, - tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are - typecast to the proper TT_XXX types within the function. - Update code accordingly. - - * src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes, - Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but - FT_XXX arguments which are typecast to the proper TT_XXX types - within the function. - Update code accordingly. - (tt_driver_class): Remove casts. - -2004-05-02 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (tt_face_free_names): Check that `table->names' - is not NULL. Reported by Gordon Childs <gchilds@quickcut.com.au>. - -2004-04-29 Werner Lemberg <wl@gnu.org> - - * docs/formats.txt: Add more information on PFR format. - -2004-04-28 Werner Lemberg <wl@gnu.org> - - * docs/formats.txt: New file. - * docs/CHANGES: Updated. - -2004-04-28 Masatake YAMATO <jet@gyve.org> - - * include/freetype/internal/tttypes.h (GX_BlendRec_) - [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo. - - * src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo. - -2004-04-27 Masatake YAMATO <jet@gyve.org> - - * src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF - for function declarations. - -2004-04-25 George Williams <gww@silcom.com> - - * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo. - -2004-04-25 Werner Lemberg <wl@gnu.org> - - * src/truetype/Jamfile, docs/CHANGES: Updated. - -2004-04-24 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfdrivr.c: Revert change from 2004-04-17. - * src/pcf/pcfutil.c: Use FT_LOCAL_DEF. - * src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H. - Use FT_BEGIN_HEADER and FT_END_HEADER. - Use FT_LOCAL. - -2004-04-24 George Williams <gww@silcom.com> - - Add support for Apple's distortable font technology (in GX fonts). - - * devel/ftoption.h, include/freetype/config/ftoption.h - (TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro. - - * include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style, - FT_MM_Var): New structures. - (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, - FT_Set_Var_Blend_Coordinates): New function declarations. - - * include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func, - FT_Set_Var_Design_Func): New typedefs. - Update MultiMasters service. - - * include/freetype/internal/tttypes.h - [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H. - (GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef. - (TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend' - and `blend'. - - * include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New - macros. - - * include/freetype/internal/fttrace.h: Add `ttgxvar'. - - * src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, - FT_Set_Var_Blend_Coordinates): New functions. - - * src/sfnt/sfobjs.c (sfnt_load_face) - [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS - flag for GX var fonts. - - * src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files. - - * src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include - ttgxvar.c. - - * src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include - FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h. - (tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: - New service. - (tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated. - - * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include - ttgxvar.h. - (TT_Process_Simple_Glyph, load_truetype_glyph) - [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Support GX var fonts. - - * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include - ttgxvar.h. - (tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call - tt_done_blend. - - * src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include - ttgxvar.h. - (tt_face_load_cvt) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call - tt_face_vary_cvt. - - * src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c. - - * src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var - and T1_Set_Var_Design. - - * src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros. - (T1_Get_MM_Var, T1_Set_Var_Design): New functions. - - * src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New - function declarations. - -2004-04-23 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename - declaration and move to... - * include/freetype/freetype.h (FT_Get_Charmap_Index): Here. - (FREETYPE_PATCH): Set to 9. - - * src/base/ftobjs.c (FT_Get_Charmap_Index): New function. - - * builds/unix/configure.ac (version_info): Set to 9:7:3. - * builds/unix/configure: Updated. - - * builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj: s/218/219/. - - * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): - s/2.1.8/2.1.9/. - - * docs/CHANGES, docs/VERSION.DLL: Updated. - -2004-04-21 Werner Lemberg <wl@gnu.org> - - * src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c - (ps_parser_load_field): Use FT_CHAR_BIT. - -2004-04-21 David Turner <david@freetype.org> - - - * Version 2.1.8 released. - ========================= - - - * src/cff/cffobjs.c (cff_face_init): Fix a small memory leak. - - * src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c - (af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name): - Remove compiler warnings. - - * src/autofit/aftypes.h: Undefine AF_DEBUG. - - * src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf, - pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c - (ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict, - t42_service_ps_font_name): Decorate data arrays with `const' to - avoid populating the `.data' segment. - - * src/lzw/Jamfile: New file. - -2004-04-20 Werner Lemberg <wl@gnu.org> - - * src/psaux/psobjs.c (T1Radix): Renamed to... - (ps_radix): This. - Update current cursor position. - - * docs/CHANGES: Updated. - -2004-04-18 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph), - src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to - FT_UInt. From Lex Warners. - -2004-04-17 Chisato Yamauchi <cyamauch@a.phys.nagoya-u.ac.jp> - - * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change - from 2004-03-19. - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'. - - * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with - `static'. - Remove unused function `RepadBitmap'. - * src/pcf/pcfdrivr.c: Don't include pcfutil.h. - -2004-04-16 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype-config.in (usage): Fix and improve usage - information. - -2004-04-15 Werner Lemberg <wl@gnu.org> - - * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define - FT_CHAR_BIT. - - * src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if - glyph is vertically distorted or mirrored. - - * src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly - for embedded bitmaps. - - * docs/CHANGES: Updated. - -2004-04-15 bytesoftware <bytesoftware@btinternet.com> - - * include/freetype/config/ftconfig.h, src/base/ftstream.c - (FT_Stream_ReadFields): More fixes using FT_CHAR_BIT. - -2004-04-14 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro. - -2004-04-14 Alex Strelnikov <ptktyrf@mail.ru> - - * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case - of error. - -2004-04-14 Werner Lemberg <wl@gnu.org> - - * src/base/ftmac.c [__GNUC__]: Define OS_INLINE. - * builds/unix/configure.ac: Don't try to remove `-ansi' compilation - switch on the Mac. - - * builds/unix/ltmain.sh: Regenerated with `libtoolize --force - --copy' from libtool 1.5.6. - * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from - automake 1.8a. - * builds/unix/configure: Regenerated with autoconf 2.59a. - -2004-04-13 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftconfig.h: Use CHAR_BIT to define - size of FT_SIZEOF_xxx. - -2004-04-12 Chisato Yamauchi <cyamauch@a.phys.nagoya-u.ac.jp> - - * include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func, - TT_Load_SBit_Metrics_Func): New typedefs. - (SFNT_Interface): Add find_sbit_image and load_sbit_metrics. - - * src/sfnt/sfdriver.c (sfnt_interface): Updated. - * src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New - declarations. - * src/sfnt/ttsbit.c (find_sbit_image): Renamed to... - (tt_find_sbit_image): This. - Updated all callers. - (load_sbit_metrics): Renamed to... - (tt_load_sbit_metrics): This. - Updated all callers. - -2004-04-12 Werner Lemberg <wl@gnu.org> - - * configure: Accept makepp also. - - * builds/unix/detect.mk: Use proper path to unix-def.mk. - * builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove. - * builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define. - Use BUILD_DIR. - - * docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update - documentation on makepp. - -2004-04-11 Werner Lemberg <wl@gnu.org> - - * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h. - -2004-04-10 Werner Lemberg <wl@gnu.org> - - * src/lzw/ftlzw.c: Include zopen.h dependent on - FT_CONFIG_OPTION_USE_LZW. - - * src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings. - -2004-04-02 Werner Lemberg <wl@gnu.org> - - * builds/unix/ltmain.sh: Regenerated with `libtoolize --force - --copy' from libtool 1.5.2. - * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from - automake 1.8a. - * builds/unix/configure: Regenerated with autoconf 2.59a. - -2004-04-01 Werner Lemberg <wl@gnu.org> - - * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of - AC_COMPILE_IFELSE. - * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from - automake 1.8a. - * builds/unix/configure: Regenerated with autoconf 2.59a. - * builds/unix/config.guess, builds/unix/config.sub: Updated from - `config' CVS module at subversions.gnu.org. - * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from - `texinfo' CVS module at subversions.gnu.org. - * builds/freetype.mk (refdoc): Updated. - -2004-03-31 Werner Lemberg <wl@gnu.org> - - Handle broken FNT files which don't have a trailing NULL byte - in the face name string. - - * src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'. - * src/winfonts/winfnt.c (fnt_font_done): Free font->family_name. - (FNT_Face_Init): Append a final zero byte to the font face name. - -2004-03-30 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from - 2004-03-19. - -2004-03-27 Werner Lemberg <wl@gnu.org> - - * src/base/descrip.mms (OBJS): Add ftbbox.obj. - -2004-03-26 George Williams <gww@silcom.com> - - Add vertical phantom points. - - * include/freetype/internal/tttypes.h (TT_LoaderRec): Add - `top_bearing', `vadvance', `pp3', and `pp4'. - - * src/autofit/afloader.c (af_loader_load_g): Handle two more points. - - * src/autohint/ahhint.c (ah_hinter_load): Handle two more points. - * src/truetype/ttgload.c (Get_VMetrics): New function. - (TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more - points. - (load_truetype_glyph): Use Get_VMetrics. - Handle two more points. - (compute_glyph_metrics): Thanks to vertical phantom points we now - can always compute `advance_height' and `top_bearing'. - * src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom - points. - - - * src/autohint/ahglyph.c (ah_outline_load): Fix allocation of - `news'. - -2004-03-21 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing. - -2004-03-20 Steve Hartwell <shspamsink@comcast.net> - - * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL - value for `selection' as `select all'. - -2004-03-19 Steve Hartwell <shspamsink@comcast.net> - - * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index - values > 0 if loading non-TTC fonts. - - * src/base/ftmac.c (open_face_from_buffer): Set positive face_index - to zero before calling FT_Open_Face. - - * docs/CHANGES: Updated. - -2004-03-04 Werner Lemberg <wl@gnu.org> - - * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h: - Add LZW module. - - * Jamfile.in: Removed. - - * docs/CHANGES: Updated. - - * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/, - s/ABS/FT_ABS/. Updated all callers. - - * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c - (PCF_Face_Init): Use FT_ERROR_BASE. - -2004-03-04 Albert Chin <china@thewrittenword.com> - - Add support for PCF fonts compressed with LZW (extension .pcf.Z, - created with `compress'). - - * include/freetype/config/ftoption.h, devel/ftoption.h - (FT_CONFIG_OPTION_USE_LZW): New macro. - - * include/freetype/ftlzw.h: New file. - * include/freetype/config/ftheader.h (FT_LZW_H): New macro for - ftlzw.h. - - * src/lzw/*: New files. - - * src/pcf/pcfdrivr.c: Include FT_LZW_H. - (PCF_Face_Init): Try LZW also. - - * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate. - Beautify. - -2004-03-03 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code. - -2004-03-02 Werner Lemberg <wl@gnu.org> - - Add embedded bitmap support to CFF driver. - - * src/cff/cffobjs.h (CFF_SizeRec): New structure. - - * src/cff/cffgload.c (cff_builder_init): Updated. - (cff_slot_load): Updated. - [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit. - - * src/cff/cffobjs.c (sbit_size_reset) - [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function. - (cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated. - (cff_size_reset): Updated. - [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset. - - * src/cff/cffdrivr.c (Load_Glyph): Updated. - (cff_driver_class): Use CFF_SizeRec. - - * docs/CHANGES: Updated. - -2004-03-01 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use - FT_RoundFix but FT_PIX_ROUND. - (psh_blues_snap_stem): Don't use blue_shift but blue_threshold. - - * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro. - (psh_glyph_find_strong_points): Use PSH_STRONG_THRESHOLD_MAXIMUM. - (psh_glyph_find_blue_points): New function. Needed for fonts like - p052003l.pfb (URW Palladio L Roman) which have flex curves at the - base line within blue zones, but the flex curves aren't covered by - hints. - (ps_hints_apply): Use psh_glyph_find_blue_points. - -2004-02-27 Garrick Meeker <garrick@digitalanarchy.com> - - * builds/unix/configure.ac: Fix compiler flags for - `--with-old-mac-fonts'. - * builds/unix/configure: Regenerated. - - * src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/. - (FT_New_Face_From_Resource): New function. - (FT_New_Face): Use FT_New_Face_From_Resource. - (FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource. - [__MWERKS__]: Don't include FSp_fopen.h. - -2004-02-26 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshglob.c (psh_globals_new): Fix value of - `dim->stdw.count'. - Don't assign default values to blue scale and blue shift. - -2004-02-25 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2004-02-25 Garrick Meeker <garrick@digitalanarchy.com> - Steve Hartwell <shspamsink@comcast.net> - - Improve MacOS fond support. Provide a new API - `FT_New_Face_From_FSSpec' similar to `FT_New_Face'. - - * src/base/ftmac.c [__MWERKS__]: Include FSp_fopen.h. - STREAM_FILE [__MWERKS__]: New macro. - (ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions. - (file_spec_from_path) [__MWERKS__]: Updated #if statement. - (get_file_type, make_lwfn_spec): Use `const' for argument. - (is_dfont) [TARGET_API_MAC_CARBON]: Removed. - (count_face_sfnt, count_faces): New functions. - (parse_fond): Do some range checking. - (read_lwfn): Change type of second argument. - No longer call FSpOpenResFile. - (OpenFileAsResource): New function. - (FT_New_Face_From_LWFN): Use `const' for second argument. - Use OpenFileAsResource. - (FT_New_Face_From_Suitcase): Change type of second argument. - No longer call FSpOpenResFile. - Loop over all resource indices. - (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed. - (FT_GetFile_From_Mac_Name): Use `const' for first argument. - (ResourceForkSize): Removed. - (FT_New_Face): Updated to use new functions. - (FT_New_Face_From_FSSpec): New function. - - * include/freetype/ftmac.h: Updated. - -2004-02-24 Malcolm Taylor <mtaylor@clear.net.nz> - - * src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>: - Handle case where outline->num_vedges is zero while computing hinted - metrics. - -2004-02-24 Gordon Childs <gchilds@quickcut.com.au> - - * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value - for `count'. - -2004-02-24 Werner Lemberg <wl@gnu.org> - - * include/freetype/t1tables.h (PS_PrivateRec): Add - `expansion_factor'. - - * src/pshinter/pshglob (psh_blues_scale_zones): Fix computation - of blues->no_overshoots -- `blues_scale' is stored with a - magnification of 1000, and `scale' returns fractional pixels. - - * src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift', - `blue_fuzz', `expansion_factor', and `blue_scale' according to the - Type 1 specification. - - * src/type1/t1tokens.h: Handle `ExpansionFactor'. - - * docs/CHANGES: Updated. - -2004-02-24 Masatake YAMATO <jet@gyve.org> - - Provide generic access to MacOS resource forks. - - * src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New - files. - - * src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H. - (Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments - `resource_listoffset' and `resource_data' and adapt code - accordingly. These values are calculated outside of the function - now. - Add new argument `offsets'. - (IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and - `FT_Raccess_Get_DataOffsets'. - (load_face_in_embedded_rfork): New function. - (load_mac_face): Use load_face_in_embedded_rfork. - (ft_input_stream_new): Renamed to... - (FT_Stream_New): This. Use FT_BASE_DEF. Updated all callers. - (ft_input_stream_free): Renamed to... - (FT_Stream_Free): This. Use FT_BASE_DEF. Updated all callers. - - * src/base/ftbase.c: Include ftrfork.c. - - * src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated. - - * include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H): - New macro. - - * include/freetype/internal/fttrace.h: Added `rfork' as a new - trace definition. - - * include/freetype/internal/ftstream.h: Declare FT_Stream_New and - FT_Stream_Free. - - * include/freetype/config/ftoption.h, devel/ftoption.h - (FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option. - - * include/freetype/config/ftstdlib.h (ft_strrchr): New macro. - -2004-02-23 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - - * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H. - -2004-02-23 Masatake YAMATO <jet@gyve.org> - - Provide a simple API to control FreeType's tracing levels. - - * include/freetype/internal/ftdebug.h (FT_Trace_Get_Count, - FT_Trace_Get_Name): New declarations. - - * src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New - functions. - -2004-02-23 David Turner <david@freetype.org> - - * src/autofit/afhints.c, src/autofit/afhints.h, - src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave - bugs have been fixed. The auto-fitter works, doesn't crash, but - still produces unexpected results... - -2004-02-21 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold - the accepted shift for strong points in fractional pixels (which - is a heuristic value). - (psh_glyph_find_strong_points): Compute threshold for - psh_hint_table_find_strong_points. - (psh_hint_table_find_strong_point): Add parameter to pass threshold. - -2004-02-20 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call - ps_mask_table_alloc but ps_mask_table_last. - (ps_hints_t2mask): Use correct position and number for vertical - and horizontal hinter mask bits. - - * docs/CHANGES: Updated. - -2004-02-19 Werner Lemberg <wl@gnu.org> - - * src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling. - * src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning. - -2004-02-18 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly. - - * src/base/ftglyph.c (ft_bitmap_glyph_class, - ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF. - - * src/smooth/ftsmooth.c (ft_smooth_render): Handle - FT_RENDER_MODE_LIGHT. - -2004-02-17 Werner Lemberg <wl@gnu.org> - - Fix callback functions in cache module. - - * src/cache/ftccback.h: New file for callback declarations. - - * src/cache/ftcbasic.c (ftc_basic_family_compare, - ftc_basic_family_init, ftc_basic_family_get_count, - ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, - ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF. - (ftc_basic_image_family_class, ftc_basic_image_cache_class, - ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): - Use FT_CALLBACK_TABLE_DEF and local wrapper functions. - - * src/cache/ftccache.c: Include ftccback.h. - (ftc_cache_init, ftc_cache_done): New wrapper functions which use - FT_LOCAL_DEF. - - * src/cache/ftccmap.c: Include ftccback.h. - (ftc_cmap_cache_class): Use local wrapper functions. - - * src/cache/ftcglyph.c: Include ftccback.h. - (ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper - functions which use FT_LOCAL_DEF. - - * src/cache/ftcimage.c: Include ftccback.h. - (ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper - functions which use FT_LOCAL_DEF. - - * src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class): - Use FT_CALLBACK_TABLE_DEF. - - * src/cache;/ftcsbits.c: Include ftccback.h. - (ftc_snode_free, ftc_snode_new, ftc_snode_weight, - ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF. - - * src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h. - -2004-02-17 Masatake YAMATO <jet@gyve.org> - - * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo - (FT_EXPORT_DEF -> FT_EXPORT). - - * include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto. - -2004-02-15 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo. - -2004-02-14 Masatake YAMATO <jet@gyve.org> - - * builds/unix/ftsystem.c: Include errno.h. - (ft_close_stream): Renamed to... - (ft_close_stream_by_munmap): This. - (ft_close_stream_by_free): New function. - (FT_Stream_Open): Use fallback method if mmap fails. - Use proper function for closing the stream. - -2004-02-14 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_dict): Initialize `start_binary'. - -2004-02-13 Robert Etheridge <roberte@stcc.cc.tx.us> - - * src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c - (T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation - of underline_position and underline_thickness. - -2004-02-12 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if - ppem values don't change. Suggested by Graham Asher. - -2004-02-11 Werner Lemberg <wl@gnu.org> - - * src/cid/cidload.c (cid_face_open): Always allocate - face->cid_stream so that we can deallocate it safely. - -2004-02-10 Werner Lemberg <wl@gnu.org> - - Make the PS parser more tolerant w.r.t. non-standard font data. In - general, an error is only reported in case of a syntax error; a - wrong type is now simply ignored (if possible). To be independent - of the order of various MM-specific keywords, the parse_shared_dict - routine has been removed -- the PS parser is now capable to skip - this data. It no longer fails on parsing e.g. - - dup /WeightVector exch def - - Since the token following /WeightVector isn't `[' (starting an - array) it is simply ignored. - - * include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a - new internal error value. - - * src/type1/t1load.c (parse_blend_axis_types, - parse_blend_design_positions, parse_blend_design_map): Return - T1_Err_Ignore if no proper array is following the keyword. - (parse_weight_vector): Use T1_ToTokenArray, initializing `blend' - structure, if necessary. - Return T1_Err_Ignore if no proper array is following the keyword. - (parse_shared_dict): Removed. - (parse_encoding): Set parser->root.error to return T1_Err_Ignore - if no result can be obtained. - Check for errors before accessing `elements' array. - (t1_keywords): Remove /shareddict. - (parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore. - Set keyword_flag only in case of success. - Check error code if skipping an unrecognized token. - (T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend - if blend commands haven't set up a proper MM font. - - * src/psaux/psobjs.c (ps_parser_load_field_table): Remove special - code for synthetic fonts. - Return PSaux_Err_Ignore if no proper value has been found. - -2004-02-09 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_endchar>: Preserve glyph width before calling - cff_operator_seac. - -2004-02-09 Martin Muskens <mmuskens@aurelon.com> - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special - first argument for `hintmask' and `cntrmask' operators also. - -2004-02-08 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.in: Call AC_SUBST for `enable_shared', - `hardcode_libdir_flag_spec', and `wl'. - * builds/unix/configure: Regenerated. - - * builds/unix/freetype-config.in: Make --prefix and --exec-prefix - actually work. - Report a proper --rpath (or -R) value for --libs argument if a - shared library has been built. - - * docs/CHANGES: Updated. - -2004-02-07 Keith Packard <keithp@keithp.com> - - * src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix - computation of various vertical and horizontal metric values. - - * src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font): - Ditto. - -2004-02-07 Werner Lemberg <wl@gnu.org> - - * builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated. - -2004-02-07 Vitaliy Pasternak <v_a_pasternak@mail.ru> - - * builds/win32/visualc/freetype.sln, - builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003. - -2004-02-03 Werner Lemberg <wl@gnu.org> - - * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): - Initialize `node'. - * src/type1/t1load.c (parse_dict): Initialize `have_integer'. - -2004-02-02 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands - outside of /Subrs or /CharStrings. This can happen if there is - additional code manipulating those two arrays so that FreeType - doesn't recognize them properly. - (T1_Open_Face): Improve an error message. - -2004-02-01 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_charstrings): Exit immediately if - there are no elements in /CharStrings. This is needed for fonts - like Optima-Oblique which not only define /CharStrings but access it - also. - -2004-02-01 David Turner <david@freetype.org> - - * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources. - - * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) - <FTC_INLINE>: Provide macro version which doesn't use inline code. - * include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP) - <FTC_INLINE>: Ditto. - Use FTC_MRULIST_LOOKUP_CMP. - * include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New - macro. - (FTC_MRULIST_LOOKUP): Use it. - - * src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated. - * src/cache/ftcbasic.c: Fix compiler warnings. - * src/cache/ftcmanag.c (FTC_Manager_LookupSize, - FTC_Manager_LookupFace) <FTC_INLINE>: Use FTC_MRULIST_LOOKUP_CMP. - * src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after - heavy testing). - - * Jamfile: Updating `refdoc' target, and adding `autohint' to the - list of modules to build. Both the autohinter and autofitter will - be built by default. But which one will be used is determined by - the content of `ftmodule.h'. - - * src/autofit/*: Many updates, but the code is still buggy... - -2004-01-31 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of - accent offset. - Update code similarly to the seac support for Type 1 fonts. - (cff_decoder_parse_charstrings) <cff_op_endchar>: Fix magnitude - of accent offset. - Don't hint glyphs twice if seac is emulated. - <cff_op_flex>: Assign correct point tags. - * docs/CHANGES: Updated. - -2004-01-30 Werner Lemberg <wl@gnu.org> - - * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not - FT_MEM_COPY, for copying the private dict. - - * src/type1/t1load.c (parse_subrs): Assign number of subrs only - in first run. - (parse_charstrings): Parse /CharStrings in second run without - assigning values. - (parse_dict): Skip all /CharStrings arrays but the first. We need - this for non-standard fonts like `Optima' which have different - outlines depending on the resolution. Note that there is no - guarantee that we get fitting /Subrs and /CharStrings arrays; this - can only be done by a real PS interpreter. - -2004-01-29 Antoine Leca <Antoine-Freetype@Leca-Marti.org> - - * builds/win32/visualc/index.html: New file, giving detailed - explanations about forcing CR+LF line endings for the VC++ project - files. - -2004-01-22 Garrick Meeker <garrick@digitalanarchy.com> - - * src/cff/cffload.c (cff_subfont_load): Initialize `dict'. - -2004-01-22 Werner Lemberg <wl@gnu.org> - - Add support for the hexadecimal representation of binary data - started with `StartData' in CID-keyed Type 1 fonts. - - * include/freetype/internal/t1types.h (CID_FaceRec): Add new - members `binary_data' and `cid_stream'. - - * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'. - (cid_hex_to_binary): New auxiliary function. - (cid_face_open): Add new argument `face_index' to return quickly - if less than zero. Updated all callers. - Call `cid_hex_to_binary', then open and assign memory stream to - `face->cid_stream' if `parser->binary_length' is non-zero. - * src/cid/cidload.h: Updated. - - * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and - `cid_stream'. - - * src/cid/cidparse.c (cid_parser_new): Check arguments to - `StartData' and set parser->binary_length accordingly. - * src/cid/cidparse.h (CID_Parser): New member `binary_length'. - - * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'. - - * docs/CHANGES: Updated. - -2004-01-21 Werner Lemberg <wl@gnu.org> - - include/freetype/config/ftstdlib.h (ft_atoi): Replaced with... - (ft_atol): This. - * src/base/ftdbgmem.c: s/atol/ft_atol/. - * src/type42/t42drivr.c: s/ft_atoi/ft_atol/. - -2004-01-20 Masatake YAMATO <jet@gyve.org> - - * include/freetype/ftcache.h: Delete duplicated definition of - FTC_FaceID. - - * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap - Info service function if the cmap comes from sfnt. Return 0 if the - cmap is synthesized in cff module. - -2004-01-20 David Turner <david@freetype.org> - - * src/cache/ftcmanag.c (ftc_size_node_compare): Call - FT_Activate_Size. - -2004-01-20 Werner Lemberg <wl@gnu.org> - - * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one - CR, LF, or CR/LF after `eexec'. - -2004-01-18 David Turner <david@freetype.org> - - * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler - warning. - - * src/tools/docmaker/*: Updating beautifier tool. - -2004-01-15 David Turner <david@freetype.org> - - * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix - infinite loop bug. - - * include/freetype/ftstroke.h: Include FT_GLYPH_H. - (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New - declarations. - - * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H. - (FT_Outline_GetOutsideBorder): Inverse result. - (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New - functions. - (FT_Stroker_EndSubPath): Close path if needed. - (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind. - - * include/freetype/cache/ftcmanag.h (FTC_ScalerRec, - FTC_Manager_LookupSize): Moved to... - * include/freetype/ftcache.h (FTC_ScalerRec, - FTC_Manager_LookupSize): Here. - - * src/tools/docmaker/docbeauty.py: New file to beautify the - documentation comments (e.g., to convert them to single block border - mode). - * src/tools/docmaker/docmaker.py (file_exists, make_file_list): - Moved to... - * src/tools/docmaker/utils.py (file_exists, make_file_list): Here. - -2004-01-14 David Turner <david@freetype.org> - - * include/freetype/internal/ftmemory.h (FT_ARRAY_COPY, - FT_ARRAY_MOVE): New macros to make copying arrays easier. - Updated all relevant code to use them. - -2004-01-14 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier. - Use number of charstrings as argument to CFF_Load_FD_Select (as - documented in the CFF specs). - -2004-01-13 Graham Asher <graham.asher@btinternet.com> - - * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of - `glyph->memory' up to free arrays properly in case of failure. - -2004-01-10 Masatake YAMATO <jet@gyve.org> - - Make `FT_Get_CMap_Language_ID' work with CFF. Bug reported by - Steve Hartwell <shspamsink@comcast.net>. - - * src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H. - (cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP. - (cff_get_cmap_info): New function. - (cff_service_get_cmap_info) New entry for cff_services. - - * src/sfnt/ttcmap0.c: Exit loop after a format match has been found. - Suggested by Steve Hartwell <shspamsink@comcast.net>. - -2004-01-03 Masatake YAMATO <jet@gyve.org> - - * src/base/ftobjs.c (destroy_charmaps): New function. - (destroy_face, open_face): Use `destroy_charmaps'. - -2004-01-01 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2004-01-01 Michael Jansson <mjan@em2-solutions.com> - - * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of - size->metrics.descender. - -2003-12-31 Wolfgang Domröse <porthos.domroese@harz.de> - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - [FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4. - <cff_op_flex1>: Change type of dx and dy to FT_Pos and remove - cast for accessing arguments. - -2003-12-31 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous - change. It's not necessary. - -2003-12-29 Smith Charles <smith.charles@free.fr> - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated - flags set' correctly. - -2003-12-29 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating - `full' and `weight' properly. - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_hintmask> [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for - tracing output. - -2003-12-26 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func): - Use FT_UInt for ppem values. - * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for - ppem values. - * src/sfnt/ttsbit.h: Updated. - - * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values - larger than -0FFFF. - -2003-12-25 Werner Lemberg <wl@gnu.org> - - * src/base/fttrigon.c, src/base/ftgloadr.c: Include - FT_INTERNAL_OBJECTS_H. - - * src/base/ftstroke.c (FT_Outline_GetInsideBorder, - FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with - C++ compilers. - - * src/cache/ftcmru.c, include/freetype/cache/ftcmru.h: - s/select/selection/ to avoid compiler warning. - * src/cff/cffload.h: s/select/ftselect/ to avoid potential - compiler warning. - -2003-12-24 Werner Lemberg <wl@gnu.org> - - * src/cache/ftcsbits.c (FTC_SNode_Weight): - s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/. - -2003-12-24 David Turner <david@freetype.org> - - * Fixed compilation problems in the cache sub-system. - - * Partial updates to src/autofit. - - * Jamfile (FT2_COMPONENTS): Add autofit module. - -2003-12-23 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle - CID-keyed fonts. - -2003-12-23 David Turner <david@freetype.org> - - * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND, - FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_PIX_CEIL): New macros. - They are used to avoid compiler warnings with very pedantic compilers. - Note that `(x) & -64' causes a warning if (x) is not signed. Use - `(x) & ~63' instead! - Updated all related code. - - Add support for extraction of `inside' and `outside' borders. - - * src/base/ftstroke.c (FT_StrokerBorder): New enumeration. - (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder, - FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions. - (FT_StrokeBorderRec): New boolean member `valid'. - (ft_stroke_border_get_counts): Updated. - * include/freetype/ftstroke.h: Updated. - -2003-12-22 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions - to describe the `charset' field in FT_WinFNT_HeaderRec. - * src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to - FT_ENCODING_NONE except for FT_WinFNT_ID_MAC. - - * include/freetype/freetype.h (FT_Encoding): Improve comment, - based on work by Detlef Würkner <TetiSoft@apg.lahn.de>. - - * docs/CHANGES: Updated. - -2003-12-22 David Turner <david@freetype.org> - - * include/freetype/ftcache.h, - include/freetype/cache/ftcmanag.h, - include/freetype/cache/ftccache.h, - include/freetype/cache/ftcmanag.h, - include/freetype/cache/ftcmru.h (added), - include/freetype/cache/ftlru.h (removed), - include/freetype/cache/ftcsbits.h, - include/freetype/cache/ftcimage.h, - include/freetype/cache/ftcglyph.h, - src/cache/ftcmru.c, - src/cache/ftcmanag.c, - src/cache/ftccache.c, - src/cache/ftcglyph.c, - src/cache/ftcimage.c, - src/cache/ftcsbits.c, - src/cache/ftccmap.c, - src/cache/ftcbasic.c (added), - src/cache/ftlru.c (removed): - - *Complete* rewrite of the cache sub-system to `solve' the - following points: - - - all public APIs have been moved to FT_CACHE_H, everything - under `include/freetype/cache' is only needed by client - applications that want to implement their own caches - - - a new function named FTC_Manager_RemoveFaceID to deal - with the uninstallation of FaceIDs - - - the image and sbit cache are now abstract classes, that - can be extended much more easily by client applications - - - better performance in certain areas. Further optimizations - to come shortly anyway... - - - the FTC_CMapCache_Lookup function has changed its signature, - charmaps can now only be retrieved by index - - - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace - FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in - private header for the moment) - -2003-12-21 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword - is encountered. - -2003-12-19 Werner Lemberg <wl@gnu.org> - - * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32. For - example, the Japanese Hiragino font already contains 15 subfonts. - - * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for - CID-keyed fonts. - - * devel/ftoption.h: Define FT_DEBUG_MEMORY. - -2003-12-18 Werner Lemberg <wl@gnu.org> - - * include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro. - * src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values. - -2003-12-18 Werner Lemberg <wl@gnu.org> - - * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of - `cid_count' to `FT_ULong'. - - * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids' - array. - - * src/cff/cffload.c (cff_charset_done): Free `cids' array. - (cff_font_load): Create cids array only for CID-keyed fonts which - are subsetted. - - * src/cff/cffobjs.c (cff_face_init): Check the availability of - the PSNames modules for non-pure CFFs also. - Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't - CID-keyed. - - * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h. - -2003-12-17 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_init_face): Don't set - FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post' - table. - - * docs/CHANGES: Updated. - -2003-12-17 Masatake YAMATO <jet@gyve.org> - - Add new function FT_Get_CMap_Language_ID to extract the language ID - for TrueType/sfnt fonts. - - * include/freetype/internal/services/svttcmap.h: New file. - * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add - svttcmap.h. - - * src/sfnt/sfdriver.c: Include ttcmap0.h. - (tt_service_get_cmap_info): New service. - (sfnt_services): Updated. - - * src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions. - (tt_cmap*_class_rec): Add tt_cmap*_get_info members. - (tt_get_cmap_info): New function. - * src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H. - (TT_CMap_ClassRec): New field `get_cmap_info'. - (tt_get_cmap_info): New declaration. - - * src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H. - (FT_Get_CMap_Language_ID): New function implementation. - * include/freetype/tttables.h (FT_Get_CMap_Language_ID): New - function declaration. - -2003-12-16 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete. - - * include/freetype/internal/sfnt.h (SFNT_Interface): Remove - obsolete fields `load_charmap' and `free_charmap'. - (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed. - * src/sfnt/sfnt.c: Don't include ttcmap.c. - * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c. - * src/sfnt/ttload.c: Don't include ttcmap.h. - * src/sfnt/sfdriver.c: Don't include ttcmap.h. - (sfnt_interface): Updated. - - * include/freetype/internal/tttypes.h (TT_TableDirRec, - TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec, - TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6, - TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func, - TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed. - Obsolete. - * src/cff/cffobjs.h (CFF_CharMapRec): Removed. Obsolete. - -2003-12-15 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2003-12-15 Wolfgang Domröse <porthos.domroese@harz.de> - - * builds/atari/*: New directory for building FreeType 2 on Atari - with the PureC compiler. - -2003-12-12 Wolfgang Domröse <porthos.domroese@harz.de> - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add - cast. - * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return - value is either 0 or 1. - -2003-12-12 Werner Lemberg <wl@gnu.org> - - * src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message. - (cff_get_name_index): Return if no PSNames service is available. - (cff_ps_has_glyph_names): Handle CID-keyed fonts correctly. - * src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for - CID-keyed fonts. This is the inverse mapping of `sids'. - * src/cff/cffload.c (cff_charset_load): New argument `invert'. - Initialize charset->cids if `invert' is set. - (cff_font_load): In call to cff_charset_load, set `invert' to true - for CID-keyed fonts. - * src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID - and map it to the real glyph index. - - * docs/CHANGES: Updated. - -2003-12-11 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): Don't set - FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts. - Don't construct a cmap for CID-keyed fonts. - -2003-12-10 Werner Lemberg <wl@gnu.org> - - Use implementation specific SID value 0xFFFF to indicate that - a dictionary element is missing. - - * src/cff/cffload.c (cff_subfont_load): Initialize all fields - which hold SIDs to 0xFFFF. - (cff_index_get_sid_string): Handle SID value 0xFFFF. - Handle case where `psnames' is zero. - (cff_font_load): Updated. - Don't load encoding for CID-keyed CFFs. - - * src/cff/cffobjs.c (cff_face_init): Updated. - Don't check for PSNames module if font is CID-keyed. - Compute style name properly (using the same algorithm as in the - CID driver). - Fix computation of style flags. - - * src/cff/cfftoken.h: Comment out handling of base_font_name. - Rename `postscript' field to `embedded_postscript' - * src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name' - and `postscript'. - -2003-12-10 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone - of the similar BDF function). - (pcf_service_bdf): Use it. - -2003-12-09 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES - only if a `post' table is present. - -2003-12-09 George Williams <gww@silcom.com> - - * src/base/ftobjs.c (load_mac_face): Recent versions of Linux - support Mac's HFS+ file system, thus enable code to read /rsrc on - non-Macintosh platforms also. - -2003-12-08 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/psaux.h (PS_TableRec): Change type - of `lengths' to FT_PtrDist. - (T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist. - * include/freetype/internal/t1types.h (T1_FontRec): Change type - of `subrs_len' and `charstrings_len' to FT_PtrDist. - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk' - variable with better solution. - (IsMacResource): Remove unused variable `map_len'. - Replace `junk' variable with better solution. - (FT_Open_Face) [!FT_MACINTOSH]: Add conditional - FT_CONFIG_OPTION_MAC_FONTS. - -2003-12-08 Wolfgang Domröse <porthos.domroese@harz.de> - - * src/autohint/ahhint.c (ah_hinter_hint_edges, - ah_hinter_align_strong_points): Add some casts. - - * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type - of `pos' to FT_Long. - - * src/base/ftobjs.c (Mac_Read_POST_Resource, - Mac_Read_sfnt_Resource): Change type of `len' to FT_Long. - - * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'. - -2003-12-07 Werner Lemberg <wl@gnu.org> - - * docs/raster.txt: New file, taken from FreeType 1 and completely - revised. - -2003-12-04 Masatake YAMATO <jet@gyve.org> - - * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for - t1_interface. t1_interface is used. - -2003-11-27 David Turner <david@freetype.org> - - * src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of - 2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are - the scaling values for outline units, not for metric units. - -2003-11-25 Werner Lemberg <wl@gnu.org> - - * src/base/ftcalc.c, include/freetype/internal/ftcalc.h - (FT_MulDiv_No_Round): Surround code with `#ifdef - TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'. - -2003-11-23 Werner Lemberg <wl@gnu.org> - - * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and - 64 bit version). - * include/freetype/internal/ftcalc.h: Updated. - - * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro. - (TT_INT64): Removed. - (DO_DIV): Use TT_MULDIV_NO_ROUND. - - * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use - metrics->x_scale and metrics->y_scale. - -2003-11-22 Rogier van Dalen <R.C.van.Dalen@umail.leidenuniv.nl> - - * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro. - (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New - functions. Similar to Direct_Move, Direct_Move_X, and - Direct_Move_Y but without touching. - (Compute_Funcs): Use new functions. - - (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, - Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, - Round_Super_45): Fix rounding of value zero. - - (DO_DIV): Don't use TT_MULDIV. - - (Ins_SHC): This instruction actually touches the points. - (Ins_MSIRP): Fix undocumented behaviour. - - * src/truetype/ttinterp.h (TT_ExecContextRec): Updated. - -2003-11-22 Werner Lemberg <wl@gnu.org> - - * docs/VERSION.DLL, docs/CHANGES: Updated. - - * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and - metrics->y_scale really precise. - - (FT_Load_Glyph): Update computation of linearHoriAdvance and - linearVertAdvance. - - * src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC. - -2003-11-22 David Turner <david@freetype.org> - - * src/autofit/*: More updates. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. - * builds/unix/configure.ac (version_info): Set to 9:6:3. - * README: Updated. - -2003-11-13 John A. Boyd Jr. <jaboydjr@netwalk.com> - - * src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c - (pcf_interpret_style): Replace spaces with dashes in properties - SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing. - -2003-11-11 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2003-11-11 John A. Boyd Jr. <jaboydjr@netwalk.com> - - Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF - fonts. - - * src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function. - (BDF_Face_Init): Don't handle style properties but call - bdf_interpret_style. - - * src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function. - (pcf_load_font): Don't handle style properties but call - pcf_interpret_style. - -2003-11-07 Werner Lemberg <wl@gnu.org> - - - * Version 2.1.7 released. - ========================= - - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. - - * builds/unix/ft2unix.h: Fix comments. - - * builds/unix/ftconfig.in: Synchronized with ANSI version. - Use `#undef' in templates as recommended in the autoconf - documentation. - Since real `#undef' lines don't survive during configuration, use - `/undef' instead; the postprocessing facility of the - AC_CONFIG_HEADERS autoconf macro converts them to `#undef'. - - * builds/unix/install.mk (install): Install Unix version of - `ftconfig.h'. - - * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro - to include the correct `ftconfig.h' file. - - * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed. - (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59. - - * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59. - - * builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of - AC_CONFIG_HEADER to create ftconfig.h, and use second argument - to replace `/undef' with `#undef'. - Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap. - Use AS_HELP_STRING in AC_ARG_WITH. - Update syntax to autoconf 2.59. - - * builds/unix/ltmain.sh: Regenerated with `libtoolize --force - --copy' from libtool 1.5. - * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from - automake 1.7.8. - * builds/unix/configure: Regenerated with autoconf 2.59. - * builds/unix/config.guess, builds/unix/config.sub: Updated from - `config' CVS module at subversions.gnu.org - * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from - `texinfo' CVS module at subversions.gnu.org. - - * builds/vms/ftconfig.h: Synchronized with ANSI version. - - * docs/CUSTOMIZE: Fix documentation error. - * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated. - - * builds/freetype.mk (refdoc): Updated --title. - -2003-11-07 David Turner <david@freetype.org> - - - * Version 2.1.6 released. - ========================= - - - * install: Removed. Obsolete. - -2003-11-04 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H. - (sfnt_service_sfnt_table): New service. - (sfnt_services): Updated. - - * docs/license.txt: Reworded. - -2003-11-03 Werner Lemberg <wl@gnu.org> - - * include/freetype/*: Add a guard to all public header files which - load FT_FREETYPE_H to reject freetype.h from FreeType 1. - -2003-11-02 Patrick Welche <prlw1@newn.cam.ac.uk> - - * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect - first argument of AC_DEFUN with brackets to avoid possible - expansion. - -2003-11-02 Werner Lemberg <wl@gnu.org> - - * include/freetype/cache/ftcglyph.h: Don't include stddef.h. - - * include/freetype/freetype.h: Fix check for ft2build.h. - -2003-11-01 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h: Check that ft2build.h has been - loaded first. - - * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied - patch. - -2003-10-31 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): - Fix parameter order in calls to FT_FACE_FIND_SERVICE. - -2003-10-31 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftserv.h - (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed. Unused. - - * src/type42/t42drivr.c (t42_services): Updated. - -2003-10-29 David Turner <david@freetype.org> - - * include/freetype/internal/bdftypes.h: Removed. Obsolete. - * src/base/ftbdf.c: Updated. - - * include/freetype/internal/cfftypes.h: Moved to... - * src/cff/cfftypes.h: This place since no other module needs to - know about those types. - - * include/freetype/internal/t42types.h: Moved to... - * src/type42/t42types.h: This place since no other module needs to - know about those types. - - * include/freetype/internal/services/svbdf.h: Include FT_BDF_H. - - * include/freetype/internal/services/svpsname.h: Renamed to... - * include/freetype/internal/services/svpscmap.h: This. - Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and - `POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere. - - * include/freetype/internal/services/svpsinfo.h: New file, providing - PostScript info service. - - * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H, - FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and - svpsinfo.h. - * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H, - FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed. - - * src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and - FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and - FT_SERVICE_POSTSCRIPT_INFO_H. - (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new - POSTSCRIPT_INFO service. - - * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. - (cff_ps_has_glyph_names): New function. - (cff_service_ps_info): New service. - (cff_services): Updated. - - * src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't - include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly. - - * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. - (cid_ps_get_font_info): New function. - (cid_service_ps_info): New service. - (cid_services): Updated. - - * src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. - (t1_ps_get_font_info, t1_ps_has_glyph_names): New functions. - (t1_service_ps_info): New service. - (t1_services): Updated. - - * src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. - (t42_ps_get_font_info, t42_ps_has_glyph_names): New functions. - (t42_service_ps_info): New service. - - * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H - but t42types.h directly. - - * src/psnames/psmodule.c (psnames_interface, psnames_services): - Renamed to... - (pscmaps_interface, pscmaps_services): This. - Updated all users. - - - * src/gzip/infblock.c (inflate_blocks): Remove compiler warning. - -2003-10-22 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'. - - * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec' - is real. - - * src/type42/t42parse.c (t42_parse_encoding): Improve boundary - checking while parsing. - - * docs/CHANGES: Updated. - -2003-10-21 Josselin Mouette <joss@debian.org> - - * include/freetype/internal/t1types.h (T1_FontRec): `paint_type' - and `stroke_width' aren't pointers. - - * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c - (T1_Face_Done): Don't free `paint_type' and `stroke_width'. - -2003-10-20 Graham Asher <graham.asher@btinternet.com> - - * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'. - -2003-10-19 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from - 2003-08-18 introduced a severe bug (FT_Render_Glyph was called - twice under some circumstances, causing strange results). This - is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'. - - * src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'. - * src/psaux/psobjs.c (ps_tobytes): Initialize `n'. - * src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'. - -2003-10-16 Werner Lemberg <wl@gnu.org> - - Completely revised Type 42 parser. It now handles both fonts - produced with ttftot42 (tested version 0.3.1) and - TrueTypeToType42.ps (tested version May 2001; it is necessary to - fix the broken header comment to be `%!PS-TrueTypeFont...'). - - * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth - parameter to `FT_UInt'. - * src/type42/t42objs.h: Updated. - - * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory' - to FT_Bool. - (T42_Loader): Change type of `num_chars' and `num_glyphs' to - FT_UInt. - Add `swap_table' element. - * src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed, - T1_ToCoordArray, T1_ToTokenArray): Removed. - (T1_ToBytes): New macro. - (t42_is_alpha, t42_hexval): Removed. - (t42_is_space): Handle `\0'. - (t42_parse_encoding): Updated to use new PostScript parser routines - from psaux. - Handle `/Encoding [ ... ]' also. - (T42_Load_Status): New enumeration. - (t42_parse_sfnts): Updated to use new PostScript parser routines - from psaux. - (t42_parse_charstrings): Updated to use new PostScript parser - routines from psaux. - Handle `/CharStrings << ... >>' also. - Don't expect that /.notdef is the first element in dictionary. Copy - code from type1 module to handle this. - (t42_parse_dict): Updated to use new PostScript parser routines - from psaux. - Remove code for synthetic fonts (which can't occur in Type 42 - fonts). - (t42_loader_done): Release `swap_table'. - - * src/psaux/psobjs.c (skip_string): Increase `cur' properly. - - * src/type1/t1load.c (parse_charstrings): Make test for `.notdef' - faster. - -2003-10-15 Graham Asher <graham.asher@btinternet.com> - - * src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c - (fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty, - _num_bdf_properties), src/gzip/infutil.c (inflate_mask), - src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td), - src/gzip/inftrees.h (inflate_trees_fixed), src/gzip/inftrees.c - (inflate_trees_fixed): Decorate with more `const' to avoid - writable global variables which are disallowed on ARM. - -2003-10-08 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove - code specially for synthetic fonts; this is handled elsewhere. - (parse_encoding): Remove code specially for synthetic fonts; this is - handled elsewhere. - Improve boundary checking while parsing. - (parse_dict): Improve boundary checking while parsing. - Use ft_memcmp to simplify code. - -2003-10-07 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic - fonts properly. - (parse_charstrings): Copy correct number of characters into - `name_table'. - -2003-10-06 Werner Lemberg <wl@gnu.org> - - Heavy modification of the PS parser to handle comments and strings - correctly. This doesn't slow down the loading of PS fonts - significantly since charstrings aren't affected. - - * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to... - (ft_isxdigit): This. Updated all callers. - (ft_isdigit): New alias to `isdigit'. - - * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed - `skip_alpha' to `skip_PS_token'. - Add parameter to `to_bytes' and change some argument types. - - * src/psaux/psauxmod.c (ps_parser_funcs): Updated. - * src/psaux/psobjs.c (ft_char_table): New array to map character - codes (ASCII and EBCDIC) of digits to numbers. - (OP): New auxiliary macro holding either `>=' or `<' depending on - the character encoding. - (skip_comment): New function. - (skip_spaces): Use it. - (skip_alpha): Removed. - (skip_literal_string, skip_string): New functions. - (ps_parser_skip_PS_token): New function. This is a better - replacement of... - (ps_parser_skip_alpha): Removed. - (ps_parser_to_token, ps_parser_to_token_array): Updated. - (T1Radix): Rewritten, using `ft_char_table'. - (t1_toint): Renamed to... - (ps_toint): This. Update all callers. - Use `ft_char_table'. - (ps_tobytes): Add parameter to handle delimiters and change some - argument types. - Use `ft_char_table'. - (t1_tofixed): Renamed to... - (ps_tofixed): This. Update all callers. - Use `ft_char_table'. - (t1_tocoordarray): Renamed and updated to... - (ps_tocoordarray): This. Update all callers. - (t1_tofixedarray): Renamed and updated to... - (ps_tofixedarray): This. Update all callers. - (t1_tobool): Renamed to... - (ps_tobool): This. Update all callers. - (ps_parser_load_field): Updated. - (ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS' - everywhere. - (ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array, - ps_parser_to_fixed_array): Skip spaces. Updated. - (ps_parser_to_bytes): Add parameter to handle delimiters and change - some argument types. Updated. - * src/psaux/psobjs.h: Updated. - - * src/cid/cidload.c (cid_parse_dict): Updated. - * src/cid/cidparse.c (cid_parser_new): Check whether the `StartData' - token was really found. - * src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed - to... - (cid_parser_skip_PS_token): This. - - * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean - fields. - (T1_Skip_Alpha): Replaced with... - (T1_Skip_PS_Token): This new macro. - * src/type1/t1parse.c (hexa_value): Removed. - (T1_Get_Private_Dict): Use `ft_isxdigit' and - `psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal - encoding. - After decrypting, replace the four random bytes at the beginning - with whitespace. - * src/type1/t1load.c (t1_allocate_blend): Use proper error values. - (parser_blend_design_positions, parse_blend_design_map, - parse_weight_vector): Updated. - (is_space): Handle `\f' also. - (is_name_char): Removed. - (read_binary_data): Updated. - (parse_encoding): Use `ft_isdigit'. - Updated. - (parse_subrs): Updated. - (TABLE_EXTEND): New macro. - (parse_charstrings): Updated. - Provide a workaround for buggy fonts which have more entries in the - /CharStrings dictionary then expected; the function now adds some - slots and skips entries which still exceed the new limit. - (parse_dict): Updated. - Terminate on the token `closefile'. - - * src/type42/t42parse.c (T1_Skip_Alpha): Replaced with... - (T1_Skip_PS_Token): This new macro. Updated all callers. - (t42_parse_encoding): Use `ft_isdigit'. - - - * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_Ok if - success. - -2003-10-05 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftmodule.h: Renamed to... - * include/freetype/ftmodapi.h: This to avoid duplicate file names. - * include/freetype/config/ftheader.h (FT_MODULE_H): Updated. - -2003-10-04 Werner Lemberg <wl@gnu.org> - - * src/base/ftoutln.c (FT_OrientationExtremumRec, - FT_Outline_Get_Orientation): Trivial typo fixes to make it compile. - -2003-10-02 Markus F.X.J. Oberhumer <markus@oberhumer.com> - - * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset' - has four bytes, not two. - Fix all users. - (fnt_font_load, FNT_Load_Glyph): Add more font validity tests. - -2003-10-01 David Turner <david@freetype.org> - - * src/autofit/*: Adding first source files of the new multi-script - `auto-fitter'. - - * include/freetype/ftoutln.h (FT_Orientation): New enumeration. - (FT_Outline_Get_Orientation): New declaration. - - * src/base/ftoutln.c (FT_OrientationExtremumRec): New structure. - (ft_orientation_extremum_compute): New auxiliary function. - (FT_Outline_Get_Orientation): New function to compute the fill - orientation of a given glyph outline. - - * include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed - trivial bug which could crash the font engine when a cached service - pointer was retrieved. - -2003-09-30 Werner Lemberg <wl@gnu.org> - - * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is - found. - - * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE, - IS_T1_SPACE): Removed. - (PFB_Tag): Removed. - (read_pfb_tag): Don't use PFB_Tag. - - * src/type42/t42parse.c (t42_is_space): Handle `\f' also. - (t42_parse_encoding): Handle synthetic fonts. - -2003-09-29 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/t1types.h: Don't include - FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H. - * src/truetype/ttobjs.c: Don't include - FT_SERVICE_POSTSCRIPT_NAMES_H. - -2003-09-29 David Turner <david@freetype.org> - - Added new service to handle glyph name dictionaries, replacing the - old internal header named `psnames.h' by `services/svpsname.h'. - Note that this is different from `services/svpostnm.h' which only - handles the retrieval of PostScript font names for a given face. - (Should we merge these two services into a single header?) - - * include/freetype/internal/psnames.h: Removed. Most of its - contents is moved to... - * include/freetype/internal/services/svpsname.h: New file. - - * include/freetype/internal/services/svpostnm.h - (FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with... - (FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro. - (PsName): Service named changed to... - (PsFontName): This. - Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and - `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere. - - * include/freetype/internal/internal.h - (FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed. - * include/freetype/internal/psaux.h: Include - FT_SERVICE_POSTSCRIPT_NAMES_H. - (T1_DecoderRec): Updated type of `psnames'. - * include/freetype/internal/t1types.h: Don't include - FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. - Include FT_INTERNAL_OBJECTS_H. - * include/freetype/internal/t42types.h: Don't include - FT_INTERNAL_POSTSCRIPT_NAMES_H. - * include/freetype/internal/tttypes.h (TT_FaceRec): Updated. - - * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed - order of parameters. All callers updated. - (FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service - globally, checking all modules. - (FT_ServiceCacheRec): Updated. - (FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing - `svpsname.h'. - - * include/freetype/internal/ftobjs.h, src/base/ftobjs.c - (ft_module_get_service): New function. - - * src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H - but FT_SERVICE_POSTSCRIPT_NAMES_H. - (cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES - service. - * src/cff/cffcmap.c (cff_cmap_unicode_init): Updated. - * src/cff/cffload.c, src/cff/cffload.h: Don't include - FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. - (cff_index_get_sid_string): Updated. - * src/cff/cffobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H - but FT_SERVICE_POSTSCRIPT_NAMES_H. - (cff_face_init): Use new POSTSCRIPT_NAMES service. - * src/cff/cffobjs.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H - but FT_SERVICE_POSTSCRIPT_NAMES_H. - - * src/cid/cidobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H - but FT_SERVICE_POSTSCRIPT_NAMES_H. - (cid_face_init): Use new POSTSCRIPT_NAMES service. - * src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H. - - * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use - new POSTSCRIPT_NAMES service. - * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode, - t1_decode_init): Use new POSTSCRIPT_NAMES service. - * src/psaux/t1cmap.h, src/psaux/t1decode.h: Don't include - FT_INTERNAL_POSTSCRIPT_NAMES_H. - - * src/psnames/psmodule.c: Don't include - FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. - (ps_build_unicode_table): Renamed to... - (ps_unicodes_init): This. - (ps_lookup_unicode): Renamed to... - (ps_unicodes_char_index): This. - (ps_next_unicode): Renamed to... - (ps_unicodes_char_next): This. - (psnames_interface): Updated. - (psnames_services): New services list. - (psnames_get_service): New function. - (psnames_module_class): Updated. - - * src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H - but FT_SERVICE_POSTSCRIPT_NAMES_H. - (sfnt_init_face): Use new POSTSCRIPT_NAMES service. - * src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H - but FT_SERVICE_POSTSCRIPT_NAMES_H. - (tt_face_get_ps_name): Updated. - - * src/truetype/ttobjs.c: Don't include - FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. - - * src/type1/t1driver.c: Don't include - FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. - * src/type1/t1objs.c: Don't include - FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. - (T1_Face_Init): Use new POSTSCRIPT_NAMES service. - - * src/type42/t42drivr.c (t42_get_ps_name): Renamed to... - (t42_get_ps_font_name): This. - (t42_service_ps_name): Renamed to... - (t42_service_ps_font_name): This. - (t42_services): Updated. - * src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES - service. - * src/type42/t42objs.h: Don't include - FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. - - - * src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before - testing its validity. Reported by Henry Maddocks - <maddocks@metservice.com>. - -2003-09-21 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): - Fix compilation warning (s/pptr/Pptr/). - - * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H, - FT_INTERNAL_FNT_TYPES_H): Removed. - -2003-09-21 David Turner <david@freetype.org> - - Migrating the PFR and WINFNT drivers to the new service-based - internal API. - - * include/freetype/internal/fnttypes.h: Removed. Most of its data - are moved to winfnt.h and... - * include/freetype/internal/services/svwinfnt.h: New file. - - * include/freetype/internal/pfr.h: Removed. Most of its data are - moved to... - * include/freetype/internal/services/svpfr.h: New file. - - * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, - FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing - pointer type argument. - Updated all callers. - Update macro names of services header files. - - * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code. - - * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of - FT_INTERNAL_PFR_H. - (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning, - FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'. - - * src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of - FT_INTERNAL_FNT_TYPES_H. - (FT_Get_WinFNT_Header): Use service provided in `WINFNT'. - - * src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and - FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H. - (pfr_service_bdf): Updated. - (pfr_services): New services list. - (pfr_get_service): New function. - (pfr_driver_class): Updated. - - * src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and - FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H. - (winfnt_get_header, winfnt_get_service): New functions. - (winfnt_service_rec): New structure providing WINFNT services. - (winfnt_services): New services list. - (winfnt_driver_class): Updated. - * src/winfonts/winfnt.h: Add most of the removed fnttypes.h data. - - * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo. - - * src/type1/t1driver.c (t1_service_ps_name): Fix typo. - - * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c, - src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c, - src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler - warnings. - -2003-09-19 David Bevan <dbevan@emtex.com> - - * src/type1/t1parse.c (pfb_tag_fields): Removed. - (read_pfb_tag): Fix code so that it doesn't fail on end-of-file - indicator (0x8003). - * docs/CHANGES: Updated. - -2003-09-16 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, - FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type. - Ugly, I know, but this is needed for compilation with C++ -- - maybe someone knows a better solution? - Updated all callers. - - * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove - C++ compiler warnings. - - * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): - Fix order of arguments passed to FT_FACE_FIND_SERVICE. - -2003-09-15 Werner Lemberg <wl@gnu.org> - - Avoid header files with identical names. - - * include/freetype/internal/services/bdf.h: Renamed to... - * include/freetype/internal/services/svbdf.h: This. - Add copyright notice. - * include/freetype/internal/services/glyfdict.h: Renamed to... - * include/freetype/internal/services/svgldict.h: This. - Add copyright notice. - * include/freetype/internal/services/multmast.h: Renamed to... - * include/freetype/internal/services/svmm.h: This. - Add copyright notice. - Add FT_BEGIN_HEADER and FT_END_HEADER. - * include/freetype/internal/services/sfnt.h: Renamed to... - * include/freetype/internal/services/svsfnt.h: This. - Add copyright notice. - * include/freetype/internal/services/postname.h: Renamed to... - * include/freetype/internal/services/svpostnm.h: This. - Add copyright notice. - * include/freetype/internal/services/xf86name.h: Renamed to... - * include/freetype/internal/services/svxf86nm.h: This. - Add copyright notice. - - * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and - FT_END_HEADER. - Add copyright notice. - Update macro names of services header files. - - * builds/freetype.mk (SERVICES_DIR): New variable. - (BASE_H): Add services header files. - -2003-09-11 Werner Lemberg <wl@gnu.org> - - * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'. - - * src/cff/cffdrivr.c: Don't load headers twice. - - * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro. - * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H. - - * src/cff/cffcmap.c: Include `cfferrs.h'. - * src/pfr/pfrdrivr.c: Include `pfrerror.h'. - * src/sfnt/sfdriver.c: Include `sferrors.h'. - * src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'. - -2003-09-11 David Turner <david@freetype.org> - - Introducing the concept of `module services'. This is the first - step towards a massive simplification of the engine's internals, in - order to get rid of various numbers of hacks. - - Note that these changes will break source & binary compatibility for - authors of external font drivers. - - * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT, - FT_DUMMY_STMNT): New macros. - - * include/freetype/internal/ftserv.h: New file, containing the new - structures and macros to provide `services'. - - * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H, - FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H): - Removed, obsolete. - (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'. - - * include/freetype/internal/services/bdf.h, - include/freetype/internal/services/glyfdict.h, - include/freetype/internal/services/postname.h, - include/freetype/internal/services/xf86name.h: New files. - - * include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func, - FT_Set_MM_Blend_Func): Function pointers moved (in modified form) - to... - * include/freetype/internal/services/multmast.h: New file. - - * include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface' - is now of type `FT_Module_Requester'. - (SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers - moved (in modified form) to... - * include/freetype/internal/services/sfnt.h: New file. - - * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function - pointer moved (in modified form) to `services/sfnt.h'. - - * include/freetype/ftmodule.h (FT_Module_Interface): Make it a - a typedef to `FT_Pointer'. - - * include/freetype/internal/tttypes.h (TT_FaceRec): Add - `postscript_name'. - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove - `postscript_name'. - Add `services' element. - (FT_LibraryRec): Remove `meta_class'. - - * src/base/ftbdf.c: Include FT_SERVICE_BDF_H. - (test_font_type): Removed. - (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services - provided in `FT_SERVICE_ID_BDF'. - - * src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. - (ft_face_get_mm_service): New auxiliary function to get services - from `FT_SERVICE_ID_MULTI_MASTERS'. - (FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates, - FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'. - - * src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and - FT_SERVICE_GLYPH_DICT_H. - (ft_service_list_lookup): New function to get a specific service. - (destroy_face): Updated. - (Mac_Read_POST_Resource): Simplify some code. - (IsMacResource): Fix warnings. - (FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in - `FT_SERVICE_ID_GLYPH_DICT'. - (FT_Get_Postscript_Name): Use service provided in - `FT_SERVICE_ID_POSTSCRIPT_NAME'. - (FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in - `FT_SERVICE_ID_SFNT_TABLE'. - - * src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H. - (FT_Get_X11_Font_Format): Use service provided in - `FT_SERVICE_ID_XF86_NAME'. - - * src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and - FT_SERVICE_XFREE86_NAME_H. - (bdf_get_charset_id): New function. - (bdf_service_bdf): New structure providing BDF services. - (bdf_services): New services list. - (bdf_driver_requester): Use `ft_service_list_lookup'. - - * src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and - FT_SERVICE_GLYPH_DICT_H. - (cff_service_glyph_dict): New structure providing CFF services. - (cff_services): New services list. - (cff_get_interface): Use `ft_service_list_lookup'. - - * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and - FT_SERVICE_XFREE86_NAME_H. - (cid_service_ps_name): New structure providing CID services. - (cid_services): New services list. - (cid_get_interface): Use `ft_service_list_lookup'. - - * src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and - FT_SERVICE_XFREE86_NAME_H. - (pcf_service_bdf): New structure providing PCF services. - (pcf_services): New services list. - (pcf_driver_requester): Use `ft_service_list_lookup'. - - * src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and - FT_SERVICE_POSTSCRIPT_NAME_H. - (get_sfnt_glyph_name): Renamed to... - (sfnt_get_glyph_name): This. - (get_sfnt_postscript_name): Renamed to... - (sfnt_get_ps_name): This. - Updated. - (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures - providing services. - (sfnt_services): New services list. - (sfnt_get_interface): Use `ft_service_list_lookup'. - - * src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H. - (tt_services): New services list. - (tt_get_interface): Use `ft_service_list_lookup'. - - * src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H, - FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and - FT_SERVICE_POSTSCRIPT_NAME_H. - (t1_service_glyph_dict, t1_service_ps_name, - t1_service_multi_masters): New structures providing Type 1 services. - (t1_services): New services list. - (Get_Interface): Use `ft_service_list_lookup'. - - * src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H, - FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H. - (t42_service_glyph_dict, t42_service_ps_name): New structures - providing Type 42 services. - (t42_services): New services list. - (T42_Get_Interface): Use `ft_service_list_lookup'. - - - * README, docs/CHANGES: Updating version numbers for 2.1.6, and - removing obsolete warnings in the documentation. - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. - * builds/unix/configure.ac (version_info): Set to 9:5:3. - * builds/unix/configure: Regenerated. - - * include/freetype/internal/ftcore.h, - include/freetype/internal/ftexcept.h, - include/freetype/internal/fthash.h, - include/freetype/internal/ftobject.h: Removed. Obsolete. - -2003-09-09 David Turner <david@freetype.org> - - Fixing PFR kerning support. The tables within the font file contain - (charcode,charcode) kerning pairs, we need to convert them to - (gindex,gindex). - - * src/base/ftpfr.c (ft_pfr_check): Fix serious typo. - * src/pfr/pfrload.c: Remove dead code. - (pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs): - New functions. - (pfr_phy_font_done): Free `kern_pairs'. - (pfr_phy_font_load): Call `pfr_sort_kerning_pairs'. - * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction. - * src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro. - (PFR_KernPairRec): Make `kerning' an FT_Int. - (PFR_PhyFontRec): New element `kern_pairs'. - (PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and - PFR_KERN_2BYTE_ADJ were erroneously reversed. - - * include/freetype/ftoption.h: Commenting out the macro - TT_CONFIG_OPTION_BYTECODE_INTERPRETER. - -2003-09-02 David Turner <david@freetype.org> - - - * Version 2.1.5 released. - ========================= - - -2003-08-31 Manish Singh <yosh@gimp.org> - - * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but - FT_MEM_MOVE. - -2003-08-30 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312, - FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New - enumerations of FT_Encoding. The FT_ENCODING_MS_* variants except - FT_ENCODING_MS_SYMBOL are now deprecated. - Updated all users. - * docs/CHANGES: Document it. - -2003-08-27 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters - for spacing. - -2003-08-27 Mike FABIAN <mfabian@suse.de> - - * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c - (BDF_Face_Init): Accept lowercase characters for slant and weight. - -2003-08-18 David Turner <david@freetype.org> - - * include/freetype/config/ftoption.h: Disabling TrueType bytecode - interpreter until the UNPATENTED_HINTING works as advertised. - - * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for - setting `load_flags'. - - * Jamfile: Adding the `refdoc' target to the Jamfile in order to - build the API Reference in `docs/reference' automatically. - - * include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h, - src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of - `italic_angle', `underline_position', and `underline_thickness' to - their previous values (i.e., long, short, and ushort) in order to - avoid breaking binary compatibility. - - * include/freetype/ttunpat.h: Fixing documentation comment. - - * include/freetype/config/ftoption.h, devel/ftoption.h - (TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING): Replaced with... - (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users. - (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed. - - * include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed. - (FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro. Use this with - `FT_Set_Debug_Hook' to get the same effect as the removed - TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING. - - * src/truetype/ttobjs.c (tt_face_init): Use - `FT_DEBUG_HOOK_UNPATENTED_HINTING'. - -2003-08-06 Werner Lemberg <wl@gnu.org> - - * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c - (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix - previous change. - -2003-08-05 Werner Lemberg <wl@gnu.org> - - * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c - (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply - font matrix to advance width also. - * docs/CHANGES: Updated. - -2003-07-26 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.ac (version_info): Set to 9:4:3. - * builds/unix/configure: Updated. - * docs/CHANGES, docs/VERSION.DLL: Updated. - - * include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16 - also breaks binary compatibility. Reintroduce an unsigned integer - at the old position of `flags' called `reserved'. - -2003-07-25 Werner Lemberg <wl@gnu.org> - - Make API reference valid HTML 4.01 transitional. - - * src/tools/docmaker/tohtml.py (html_header_1): Add doctype - and charset. - (html_header_2): Fix style elements and add some more. - Fix syntax. - (block_header, block_footer, description_header, description_footer, - marker_header, marker_footer, source_header, source_footer, - chapter_header): Don't use <center>...</center> but `align=center' - table attribute. - (chapter_inter, chapter_footer): Add <li> and use special <ul> - class. - Use double quotes around table widths given in percent. - (keyword_prefix, keyword_suffix): Don't change font color directly - but use a new <span> class. - (section_synopsis_header, section_synopsis_footer): Don't change - color. - (code_header, code_footer): Don't change font color directly but - use a special <pre> class. - (print_html_field): <tr> gets the `valign' attribute, not <table>. - (print_html_field_list): Ditto. - (index_exit): Don't use <center>...</center> but `align=center' - table attribute. - (section_enter): Ditto. - (toc_exit): Don't emit </table>. - (block_enter): Use <h4><a>, not <a><h4>. - (__init__): Fix tag order in self.html_footer. - -2003-07-25 David Turner <david@freetype.org> - - This change reimplements fix from 2003-05-30 without breaking - binary compatibility. - - * include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle', - `is_fixed_pitch', `underline_position', `underline_thickness' are - reverted to be normal values. - - * include/freetype/internal/psaux.h (T1_FieldType): Remove - `T1_FIELD_TYPE_BOOL_P', `T1_FIELD_TYPE_INTEGER_P', - `T1_FIELD_TYPE_FIXED_P', `T1_FIELD_TYPE_FIXED_1000_P'. - (T1_FIELD_TYPE_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P, - T1_FIELD_FIXED_1000_P): Removed. - (T1_FIELD_TYPE_BOOL): Renamed to... - (T1_FIELD_BOOL): New macro. Updated all callers. - - * src/type42/t42parse.c: `italic_angle', `is_fixed_pitch', - `underline_position', `underline_thickness', `paint_type', - `stroke_width' are reverted to be normal values. - (T42_KEYWORD_COUNT): New macro. - (t42_parse_dict): New array `keyword_flags' to mark that a value has - already been assigned to a dictionary entry. - * src/type42/t42objs.c (T42_Face_Init, T42_Face_Done): Updated. - - * src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch', - `underline_position', `underline_thickness' are reverted to be - normal values. - * src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated. - - * src/psaux/psobjs.c (ps_parser_load_field): Updated. - - * src/type1/t1tokens.h: `italic_angle', `is_fixed_pitch', - `underline_position', `underline_thickness', `paint_type', - `stroke_width' are reverted to be normal values. - * src/type1/t1objs.c (T1_Face_Done, T1_Face_Init): Updated. - * src/type1/t1load.c (T1_FIELD_COUNT): New macro. - (parse_dict): Add parameter for keyword flags. - Record only first instance of a field. - (T1_Open_Face): New array `keyword_flags'. - -2003-07-24 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. - * builds/unix/configure.ac (version_info): Set to 10:0:3. - * builds/unix/configure: Updated. - * builds/freetype.mk (refdoc): Fix --title. - - * docs/CHANGES, docs/VERSION.DLL, README: Updated. - - * src/tools/docmaker/sources.py (re_crossref): Fix regular - expression to handle trailing punctuation characters. - * src/tools/docmaker/tohtml.py (make_html_word): Updated. - - * docs/release: New file. - -2003-07-23 YAMANO-UCHI Hidetoshi <mer@din.or.jp> - - * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New - member function `to_bytes'. - - * src/psaux/psauxmod.c (ps_parser_funcs): New member - `ps_parser_to_bytes'. - (psaux_module_class): Increase version to 0x20000L. - - * src/psaux/psobjs.c (IS_T1_LINESPACE): Add \f. - (IS_T1_NULLSPACE): New macro. - (IS_T1_SPACE): Add it. - (skip_spaces, skip_alpha): New functions. - (ps_parser_skip_spaces, ps_parser_skip_alpha): Use them. - (ps_tobytes, ps_parser_to_bytes): New functions. - -2003-07-07 Werner Lemberg <wl@gnu.org> - - * builds/freetype.mk (DOC_DIR): New variable. - (refdoc): Use *_DIR variables. - (distclean): Remove documentation files. - - * builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'. - - * configure: Set DOC_DIR variable. - -2003-07-07 Patrik Hägglund <patrik.hagglund@bredband.net> - - * builds/freetype.mk (refdoc): New target to build the - documentation. - (.PHONY): Updated. - - * include/freetype/freetype.h: Improve documentation of FT_CharMap. - * include/freetype/ftimage,h: Fix documentation of FT_OUTLINE_FLAGS. - * include/freetype/tttables.h: Document FT_Sfnt_Tag. - -2003-07-06 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfread.c - (pcf_load_font): Fix computation of height if PIXEL_SIZE property is - missing. - -2003-07-01 Werner Lemberg <wl@gnu.org> - - * src/cache/ftcsbits.c (ftc_sbit_node_compare): Only add `size' if - there is no error. Reported by Knut St. Osmundsen - <bird-freetype@anduin.net>. - -2003-06-30 Werner Lemberg <wl@gnu.org> - - A new try to synchronize bitmap font access. - - * include/freetype/freetype.h (FT_Bitmap_Size): `height' is now - defined to return the baseline-to-baseline distance. This was - already the value returned by the BDF and PCF drivers. - - The `width' field now gives the average width. I wasn't able to - find something better. It should be taken as informative only. - - New fields `size', `x_ppem', and `y_ppem'. - - * src/pcf/pcfread.c (pcf_load_font): Updated to properly fill - FT_Bitmap_Size. - Do proper rounding and conversion from 72.27 to 72 points. - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Updated to properly fill - FT_Bitmap_Size. - Do proper rounding and conversion from 72.27 to 72 points. - - * src/sfnt/sfobjs.c (sfnt_load_face): Updated to properly fill - FT_Bitmap_Size. - - * src/winfonts/winfnt.c (FNT_Face_Init): Updated to properly fill - FT_Bitmap_Size. - -2003-06-29 Werner Lemberg <wl@gnu.org> - - Redesigning the FNT driver to return multiple faces, not multiple - strikes. At least one font (app850.fon from WinME) contains - different FNT charmaps for its subfonts. Consequently, the previous - design of having multiple bitmap strikes in a single font face fails - since we have only one charmap per face. - - * include/freetype/internal/fnttypes.h (FNT_Size_Rec): Removed. - (FNT_FaceRec): Remove `num_fonts' field and replace `fonts' with - `font'. - - * src/base/ftwinfnt.c (FT_Get_WinFNT_Header): Updated. - - * src/winfonts/winfnt.c (fnt_font_load): Don't set pixel_width equal - to pixel_height. - (fnt_face_done_fonts): Removed. - (fnt_face_get_dll_fonts): Renamed to... - (fnt_face_get_dll_font): This. Add second function argument to - select face index. - Updated to load just one subfont. - (fnt_font_done, FNT_Face_Done): Updated. - (FNT_Face_Init): Handle `face_index'. - Updated. - (FNT_Size_Set_Pixels): Simplified; similar to BDF and PCF, the - bitmap width is now ignored. - (FNT_Load_Glyph): Updated. - Fix glyph index computation. - (winfnt_driver_class): Updated. - -2003-06-25 Owen Taylor <otaylor@redhat.com> - - * src/sfnt/ttload.c (tt_face_load_hdmx): Don't assign - num_records until we actually decide to load the table, - otherwise, we'll segfault in tt_face_free_hdmx. - -2003-06-24 Werner Lemberg <wl@gnu.org> - - * src/cff/cffdrivr.c (cff_get_glyph_name): Protect against zero - glyph name pointer. Reported by Mikey Anbary <manbary@vizrt.com>. - -2003-06-23 Werner Lemberg <wl@gnu.org> - - * src/tools/glnames.py: Updated to AGL 2.0. - * src/psnames/pstables.h: Regenerated. - -2003-06-22 Werner Lemberg <wl@gnu.org> - - * include/freetype/cache/ftcglyph.h, include/freetype/ttnameid.h, - src/base/ftcalc.c, src/base/fttrigon.c, src/cff/cffgload.c, - src/otlayout/otlgsub.c, src/pshinter/pshrec.c, - src/psnames/psmodule.c, src/sfnt/sfobjs.c, src/truetype/ttdriver.c: - Decorate constants with `U' and `L' if appropriate. - - * include/freetype/ftmoderr.h: Updated to include recent module - additions. - - * src/pshinter/pshnterr.h (FT_ERR_BASE): Define as - `FT_Mod_Err_PShinter'. - * src/type42/t42error.h (FT_ERR_BASE): Define as - `FT_Mod_Err_Type42'. - - * src/pshinter/pshrec.h (PS_HINTS_MAGIC): Removed. Not used. - - * include/freetype/config/ftconfig.h [__MWERKS__]: Define FT_LONG64 - and FT_INT64. - -2003-06-21 Werner Lemberg <wl@gnu.org> - - * src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in - computation of glyph_index. - (FNT_Size_Set_Pixels): To find a strike, first check pixel_height - only, then try to find a better hit by comparing pixel_width also. - Without this fix it isn't possible to access all strikes. - Also compute metrics.max_advance to be in sync with other bitmap - drivers. - - * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code. - (FT_Set_Pixel_Sizes): Assign value to `metrics' after validation of - arguments. - -2003-06-20 Werner Lemberg <wl@gnu.org> - - Synchronize computation of height and width for bitmap strikes. The - `width' field in the FT_Bitmap_Size structure is now only useful to - enumerate different strikes. The `max_advance' field of the - FT_Size_Metrics structure should be used to get the (maximum) width - of a strike. - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for - computing `available_sizes->width' but make it always equal to - `available_sizes->height'. - - * src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for - computing `available_sizes->width' but make it always equal to - `available_sizes->height'. - - * src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single - argument to function. - - * src/psnames/psmodule.c (ps_unicode_value): Handle `.' after - `uniXXXX' and `uXXXX[X[X]]'. - -2003-06-19 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/. - * src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c: - s/FT_Err_/FTC_Err_/. - * src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/. - * src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/. - * src/psaux/t1cmap.c: Include psauxerr.h. - s/FT_Err_/PSaux_Err_/. - * src/pshinter/pshnterr.h: New file. - * src/pshinter/rules.mk: Updated. - * src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h. - s/FT_Err_/PSH_Err_/. - * src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c: - s/FT_Err_/PFR_Err_/. - * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c, - src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/. - * src/truetype/ttgload.c: s/FT_Err_/TT_Err_/. - * src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define - FT_ERR_PREFIX and FT_ERR_BASE. - s/FT_Err_/Gzip_Err_/. - -2003-06-19 Dirck Blaskey <listtarget@danbala.com> - - * src/cff/cffload (cff_encoding_load): `nleft' must be FT_UInt, - otherwise adding 1 might wrap the result. - -2003-06-18 Werner Lemberg <wl@gnu.org> - - * src/psnames/psmodule.c (ps_unicode_value): Add support to - recognize `uXXXX[X[X]]' glyph names. - Don't handle glyph names starting with `uni' which have more than - four digits. - -2003-06-16 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FT_Open_Flags): Replaced with - #defines for the constants. - (FT_Open_Args): Change type of `flags' to FT_UInt. - (FT_GlyphSlot): Move `flags' to FT_Slot_Internal. - - * include/freetype/ftimage.h (FT_Outline_Flags, FT_Raster_Flag): - Replaced with #defines for the constants. - - * include/freetype/internal/ftobjs.h (FT_Slot_Internal): New - field `flags' (from FT_GlyphSlot). - Updated all affected source files. - (FT_GLYPH_OWN_BITMAP): New macro (from ftgloadr.h). - - * include/freetype/internal/ftgloadr.h (FT_GLYPH_OWN_BITMAP): Moved - to ftobjs.h. - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Use dummy - FT_GlyphSlot_Internal object. - -2003-06-15 Werner Lemberg <wl@gnu.org> - - * builds/compiler/gcc.mk, builds/compiler/gcc-dev.mk (CFLAGS): - Add -fno-strict-aliasing to get rid of zillion warnings from gcc - version 3.3. - -2003-06-14 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftglyph.h (ft_glyph_bbox_unscaled, - ft_glyph_bbox_subpixels, ft_glyph_bbox_gridfit, - ft_glyph_bbox_truncate, ft_glyph_bbox_pixels): Replaced with - FT_GLYPH_BBOX_UNSCALED, FT_GLYPH_BBOX_SUBPIXELS, - FT_GLYPH_BBOX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS. - The lowercase variants are now (deprecated aliases) to the uppercase - versions. - Updated all other files. - - * include/freetype/ftmodule.h (ft_module_font_driver, - ft_module_renderer, ft_module_hinter, ft_module_styler, - ft_module_driver_scalable, ft_module_driver_no_outlines, - ft_module_driver_has_hinter): Replaced with FT_MODULE_FONT_DRIVER, - FT_MODULE_RENDERER, FT_MODULE_HINTER, FT_MODULE_STYLER, - FT_MODULE_DRIVER_SCALABLE, FT_MODULE_DRIVER_NO_OUTLINES, - FT_MODULE_DRIVER_HAS_HINTER. - The lowercase variants are now (deprecated aliases) to the uppercase - versions. - Updated all other files. - - * src/base/ftglyph.c (FT_Glyph_Get_CBox): Handle bbox_mode better - as enumeration. - - * src/pcf/pcfdrivr.c (pcf_driver_class), src/winfonts/winfnt.c - (winfnt_driver_class), src/bdf/bdfdrivr.c (bdf_driver_class): Add - the FT_MODULE_DRIVER_NO_OUTLINES flag. - -2003-06-13 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/pfr/pfrobjs.c (pfr_slot_load): Apply font matrix. - -2003-06-13 Werner Lemberg <wl@gnu.org> - - * builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also. - - * builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for - EMX gcc compiler. - * builds/dos/detect.mk: Add target `emx'. - - * builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't - like a trailing semicolon; add a dummy command. - - * src/cid/cidload.c: Remove parse_font_bbox code (already enclosed - with #if 0 ... #endif). - - * src/type1/t1tokens.h: Handle /FontName. - * src/type1/t1load.c (parse_font_name): Removed. - Remove parse_font_bbox code (already enclosed with #if 0 ... - #endif). - - * src/type42/t42parse.c (t42_parse_font_name): Removed. - Remove t42_parse_font_bbox code (already enclosed with #if 0 ... - #endif). - (t42_keywords): Handle /FontName with T1_FIELD_KEY. - -2003-06-12 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/psaux.h (T1_FieldType): Add - T1_FIELD_TYPE_KEY. - (T1_FIELD_KEY): New macro. - * src/psaux/psobjs.c (ps_parser_load_field): Handle - T1_FIELD_TYPE_KEY. - - * src/cid/cidtoken.h: Use T1_FIELD_KEY for /CIDFontName. - -2003-06-11 Alexander Malmberg <alexander@malmberg.org> - - * src/cache/ftlru.c (FT_LruList_Remove_Selection): Decrease - number of nodes. - (FT_LruList_Lookup): Fix assertion for out-of-memory case. - -2003-06-11 Werner Lemberg <wl@gnu.org> - - * src/cid/cidload.c (cid_decrypt): Removed. - (cid_read_subrs): Use t1_decrypt from psaux module. - * src/cid/cidload.h: Updated. - * src/cid/cidgload.c (cid_load_glyph): Use t1_decrypt from psaux - module. - -2003-06-10 Werner Lemberg <wl@gnu.org> - - * src/cid/cidobjs.c: Apply change 2003-05-31 from <Ron.Dev@gmx.de>. - Compute style flags. - Fix computation of root->height. - * src/cid/cidtoken.h: Handle FontBBox. - * src/cid/cidload.c (cid_load_keyword): Handle - T1_FIELD_LOCATION_BBOX. - (parse_font_bbox): Commented out. - (cid_field_records): Comment out element for parsing FontBBox. - - * src/type42/t42parse.c (t42_parse_font_bbox): Commented out. - (t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with - T1_FIELD_CALLBACK. - (t42_parse_font_bbox): Commented out. - (t42_load_keyword): Handle T1_FIELD_LOCATION_BBOX. - * src/type42/t42objs.c (T42_Face_Init): Apply change 2003-05-31 - from <Ron.Dev@gmx.de>. - -2003-06-09 George Williams <gww@silcom.com> - - * src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's - TrueType specification. - (Ins_MDRP, Ins_MIRP): Fix single width cut-in test. - -2003-06-09 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/gzip/ftgzip.c: (inflate_mask): Replaced with... - (NO_INFLATE_MASK): This. - * src/gzip/infutil.h: Declare `inflate_mask' conditionally by - NO_INFLATE_MASK. - -2003-06-09 Alexis S. L. Carvalho <alexis@cecm.usp.br> - - * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END - correctly. - -2003-06-09 Wolfgang Domröse <porthos.domroese@harz.de> - - * src/pshinter/pshglob.c (psh_globals_new): Change calculation of - dim->stdw.count to avoid compiler problem. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block - variables to the beginning of the function to avoid compiler - problems. - Add casts necessary for 16bit compilers. - -2003-06-09 Werner Lemberg <wl@gnu.org> - - * src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c. - (PFR_DRV_H): Add pfrtypes.h. - - * include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/. - -2003-06-08 Karl Schultz <kschultz@rsinc.com> - - * src/pfr/pfrsbit.c (pfr_bitwriter_init): Change type of third - argument to FT_Bool. - (pfr_lookup_bitmap_data): Change type of third and fourth argument - to FT_UInt. Updated caller. - (pfr_load_bitmap_bits): Change type of fourth argument to FT_Bool. - -2003-06-08 Werner Lemberg <wl@gnu.org> - - Completely revised FreeType's make management. - - . In all makefiles `/' is used as the path separator. The - conversion to the real path separators is done as late as - possible using $(subst ...). - - . $(HOSTSEP) no longer exists. Now, $(SEP) gives the path separator - for the operating system, and the new $(COMPILER_SEP) the path - separator for the compiler tools. - - . $(BUILD) has been renamed to $(BUILD_DIR). In general, all - directory variables end with `_DIR'. The variants ending in `_' - (like `BASE_' have been removed). - - The following ChangeLog entries only describe changes which are - not related to the redesign. - - * builds/beos/beos-def.mk (BUILD_DIR): Fix typo. - * builds/compiler/watcom.mk (LINK_LIBRARY): Fix linker call to avoid - overlong arguments as suggested by J. Ali Harlow - <ali@avrc.city.ac.uk>. - * builds/dos/dos-wat.mk: New file. - * builds/freetype.mk (FREETYPE_H): Include header files from the - `devel' subdirectory. - - * builds/os2/os2-dev.mk, builds/unix/unixddef.mk, - builds/unix/unixddef.mk, builds/win32/w32-bccd.mk, - builds/win32/w32-dev.mk (BUILD_DIR): Fix path. - - * builds/unix/configure.ac, builds/unix/configure: Updated. - * builds/unix/unix-def.in (DISTCLEAN): Add `freetype2.pc'. - -2003-06-07 Werner Lemberg <wl@gnu.org> - - * src/base/ftmac.c (FT_New_Face_From_SFNT): s/rlen/sfnt_size/ to - make it compile. - - * devel/ftoption.h: Updated. - -2003-06-07 Detlef Würkner <TetiSoft@apg.lahn.de> - - * include/freetype/internal/psaux.h, src/truetype/ttgload.h: - s/index/idx/ to fix compiler warnings. - - * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Use more `volatile' to - fix compiler warning. - - * src/gzip/ftgzip.c (BUILDFIXED): Removed. - * src/gzip/inftrees.c (inflate_trees_fixed) [!BUILDFIXED]: Use - FT_UNUSED to remove compiler warning. - -2003-06-06 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftstroker.h: Renamed to... - * include/freetype/ftstroke.h: This. - - * src/base/ftstroker.c: Renamed to... - * src/base/ftstroke.c: This. - - * include/freetype/config/ftheader.h (FT_STROKER_H): Updated. - - * src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk: - Updated. - - * src/pcf/pcfdriver.c: Renamed to... - * src/pcf/pcfdrivr.c: This. - * src/pcf/pcfdriver.h: Renamed to... - * src/pcf/pcfdrivr.h: This. - - * src/pcf/Jamfile, src/pcf/rules.mk: Updated. - -2003-06-05 Wenlin Institute (Tom Bishop) <wenlin@wenlin.com> - - * src/base/ftmac.c (file_spec_from_path) [TARGET_API_MAC_CARBON]: - Add `#if !defined(__MWERKS__)'. - -2003-06-05 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/psaux.h (T1_FieldType): Add - T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P. - (T1_FIELD_FIXED_1000, T1_FIELD_FIXED_1000_P): New macros. - * src/psaux/psobjs.c (ps_parser_load_field): Handle - T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P. - - * src/cff/cffparse.c (cff_kind_fixed_thousand): New enumeration. - (CFF_FIELD_FIXED_1000): New macro. - (cff_parser_run): Handle cff_kind_fixed_thousand. - * src/cff/cfftoken.h: Use CFF_FIELD_FIXED_1000 for blue_scale. - * src/cff/cffload (cff_subfont_load): Fix default values of - expansion_factor and blue_scale. - - * src/cid/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000 - for blue_scale. - - * src/pshinter/pshglob.c (psh_globals_new): Fix default value of - blue_scale. - -2003-06-04 Wolfgang Domröse <porthos.domroese@harz.de> - - * include/freetype/internal/ftdriver.h, - include/freetype/internal/ftobjs.h, - include/freetype/internal/psaux.h, src/cid/cidgload.c, - src/psaux/psobjs.c, src/psaux/t1decode.c, src/psaux/psobjs.h, - src/pshinter/pshrec.c, src/pshinter/pshalgo.c, - src/psnames/psmodule.c, src/raster/ftraster.c, src/sfnt/sfobjs.c, - src/smooth/ftgrays.c, src/smooth/ftsmooth.c, src/truetype/ttobjs.c, - src/truetype/ttdriver.c, src/truetype/ttgload.c, src/type1/t1afm.c, - src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1load.c, - src/type1/t1objs.c, src/type42/t42parse.c, src/type42/t42parse.h: - Many casts and slight argument type changes to make it work with - a 16bit compiler. - -2003-06-04 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftoption.h: Defining - TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING by default is a bad idea - since some fonts (e.g. Arial) produce worse results than without - hinting. Reverted. - -2003-06-04 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (load_truetype_glyph) - [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Call - FT_GlyphLoader_CheckPoints before adding phantom points. This fixes - a segfault bug with fonts (e.g. htst3.ttf) which have nested - subglyphs more than one level deep. Reported by Anthony Fok. - - * include/freetype/config/ftoption.h: Define - TT_CONFIG_OPTION_BYTECODE_INTERPRETER, - TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, and - TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to make it the new - default. - -2003-06-03 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahhint.c (ah_hinter_hint_edges): Removed. Just a - wrapper for ah_hint_edges. - (ah_hint_edges): Renamed to... - (ah_hinter_hint_edges): This. - - * src/base/ftobjs.c (FT_Set_Hint_Flags): Removed. Unused. - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec), - include/freetype/internal/psaux.h (T1_DecoderRec), - src/cff/cffgload.h (CFF_Builder): Remove `hint_flags' field. - Unused. - - * src/cff/cffgload.c (cff_builder_init): Updated. - (cff_decoder_parse_charstrings) <cff_op_endchar>: Call hinter->apply - with decoder->hint_mode instead of builder->hint_flags. - * src/psaux/t1decode.c (t1_decoder_init): Updated. - - * src/base/ftstroker.c (ft_stroke_border_export): s/index/idx/. - - * src/sfnt/sfobjs.c (sfnt_load_face): Commented out code which - increased root->height by 15% if the line gap was zero. There exist - fonts (containing e.g. form drawing characters) which intentionally - have a zero line gap value. - - * src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj): - Removed. Unused. - Updated all callers. - -2003-06-02 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): Use symbolic names for - Adobe specific encoding IDs (there was a wrong EID value for custom - encoding). - - * src/cff/cffcmap.h (CFF_CMapStdRec): Remove `count'. - * src/cff/cffcmap.c (cff_cmap_encoding_init, - cff_cmap_encoding_done): Updated. - (cff_cmap_encoding_char_index, cff_cmap_encoding_char_next): Use - 256 as limit for character code. - -2003-06-01 Werner Lemberg <wl@gnu.org> - - * src/winfonts/winfnt.c (FNT_Load_Glyph): Revert change from - 2003-03-20. - -2003-05-31 Werner Lemberg <wl@gnu.org> - - * include/freetype/fttrigon.h (FT_Vector_Normalize): Removed. - -2003-05-31 <Ron.Dev@gmx.de> - - * src/type1/t1objs.c (T1_Face_Init): Improve algorithm for guessing - the font style by ignoring spaces and hyphens. - - * builds/unix/freetype2.in: Fix `Version' field. - -2003-05-30 Werner Lemberg <wl@gnu.org> - - Avoid overwriting of numeric font dictionary entries for synthetic - fonts. Additionally, some entries were handled as `integer' instead - of `number'. - - * include/freetype/internal/psaux.h (T1_FieldType): Add - T1_FIELD_TYPE_BOOL_P, T1_FIELD_TYPE_INTEGER_P, and - T1_FIELD_TYPE_FIXED_P. - (T1_FIELD_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P): New macros. - * src/psaux/psobjs.c (ps_parser_load_field): Handle new field types. - - * include/freetype/internal/cfftypes.h (CFF_FontRecDict), - src/cff/cfftoken.h: Change type of underline_position and - underline_thickness to FT_Fixed. - * src/cff/cffload.c (cff_subfont_load): Fix default values of - underline_position and underline_thickness. - * src/cff/cffobjs.c (cff_face_init): Set underline_position - and underline_thickness in `root'. - - * include/freetype/internal/t1types.h (T1_Font): Change point_type - and stroke_width to pointers. - * include/freetype/t1tables.h (PS_FontInfo): Change italic_angle, - is_fixed_pitch, underline_position, and underline_thickness to - pointers. - * src/type1/t1tokens.h: Change italic_angle, is_fixed_pitch, - underline_position, and underline_thickness to pointers. Change - the type of the latter two to `fixed'. - Change type of stroke_width to `fixed' and make it a pointer. - Change paint_type to pointer. - * src/type1/t1objs.c (T1_Face_Done): Updated. - (T1_Face_Init): Updated. - Fix assignment of underline_position and underline_thickness. - - * src/cid/cidtoken.h: Change italic_angle, is_fixed_pitch, - underline_position, and underline_thickness to pointers. Change - the type of the latter two to `fixed'. - Change type of stroke_width to `fixed'. - * src/cid/cidobjs.c (cid_face_done): Updated. - (cid_face_init): Updated. - Fix assignment of underline_position and underline_thickness. - - * src/type42/t42parse.c: Change italic_angle, is_fixed_pitch, - underline_position, and underline_thickness to pointers. Change the - type of the latter two to `fixed'. - Change type of stroke_width to `fixed' and make it a pointer. - Change paint_type to pointer. - * src/type42/t42objs.c (T42_Face_Init): Updated. - Fix assignment of underline_position and underline_thickness. - (T42_Face_Done): Updated. - - * src/base/ftobjs.c (open_face_from_buffer): Fix compiler warning. - * src/pshinter/pshglob.c, src/pshinter/pshglob.h - (psh_globals_set_scale): Make it a local function. - - * test/gview.c: Fix renaming ps3->ps typo. - Formatting. - -2003-05-29 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshalgo1.[ch], src/pshinter/pshalgo2.[ch]: Removed. - * src/pshinter/pshalgo.h: Removed. - - * src/pshinter/pshalgo3.[ch]: Renamed to... - * src/pshinter/pshalgo.[ch]: New files. - s/PSH3/PSH/. - s/psh3/psh/. - s/ps3/ps/. - - * src/pshinter/pshrec.c, src/pshinter/pshinter.c: Updated. - * src/pshinter/rules.mk, src/pshinter/Jamfile: Updated. - - * src/pshinter/pshglob.[ch] (psh_dimension_snap_width): Commented - out. - - * tests/gview.c: Remove code for pshalgo1 and pshalgo2. - Updated. - -2003-05-28 Martin Zinser <zinser@decus.de> - - * vms_make.com: Reworked support for shareable images on VMS. The - first version was kind of a hack; the current implementation of the - procedure to extract the required symbols is much cleaner. - - Reworked creation of MMS files, avoiding a number of temporary files - which were created in the previous version. - - Further work on creating descrip.mms files on the fly. - - * builds/vms/descrip.mms, src/autohint/descrip.mms, - src/type1/descrip.mms: Removed. - -2003-05-28 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshalgo3.c (psh3_glyph_compute_extrema): Skip - contours with only a single point to avoid segfault. - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Activate code for - handling `origin'. - -2003-05-24 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahtypes.h (AH_OPTION_NO_STRONG_INTERPOLATION): - Removed since unused. - -2003-05-21 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftstdlib.h (ft_strcat): New wrapper macro - for strcat. - - * src/base/ftmac.c (create_lwfn_name): s/isupper/ft_isupper/. - (parse_font): s/memcpy/ft_memcpy/. - (is_dfont) [TARGET_API_MAC_CARBON]: s/memcmp/ft_memcmp/. - * src/base/ftobjs.c (load_mac_face) [FT_MACINTOSH]: - s/strlen/ft_strlen/. - s/strcat/ft_strcat/. - s/strcpy/ft_strcpy/. - * src/gzip/zutil.h: s/memset/ft_memset/. - s/memcmp/ft_memcmp/. - - * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c - (PCF_Face_Init): Test for charset registry case-insensitively. - - * src/gzip/ftgzip.c (ft_gzip_file_io): Revert change from yesterday; - it has already been fixed differently. - - * src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around - if-clause. - -2003-05-21 Martin Zinser <zinser@decus.de> - - * t1load.c (parse_blend_axis_types): Fix compiler warning. - - * descrip.mms: Removed. Now created by... - - * vms_make.com: New file. - -2003-05-21 Weiqi Gao <weiqigao@networkusa.net> - - * src/gzip/ftgzip.c (ft_gzip_file_io): Avoid zero value of `delta' - to prevent infinite loop. - -2003-05-21 Lars Clausen <lrclause@cs.uiuc.edu> - - * docs/VERSION.DLL: Provide better autoconf snippet to check - FreeType version. - -2003-05-21 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (open_face): Free `internal' not - `face->internal' in case of error to avoid possible segfault. - - * src/pshinter/pshalgo3.c (ps3_hints_apply): Check whether we - actually have an outline. - -2003-05-20 David Chester <davidchester@qmx.net> - - * src/pshinter/pshalgo3.c (ps3_hints_apply): Try to optimize - y_scale so that the top of non-capital letters is aligned on a pixel - boundary whenever possible. - - * src/autohint/ahhint.c (ah_hint_edges): Make sure that lowercase - m's maintain their symmetry. - -2003-05-20 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahhint.c (ah_hinter_load_glyph): Oops! David's - patch from yesterday has been resolved already in a different - way. Reverted. - -2003-05-19 David Chester <davidchester@qmx.net> - - * src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale - y_scale locally but face->size->metrics.y_scale. - -2003-05-19 David Turner <david@freetype.org> - - * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start - value for `hi' to avoid infinite loop. - -2003-05-18 Yong Sun <sunyong@njstar.com> - - * src/raster/ftraster.c (Insert_Y_Turn): Fix overflow test. - -2003-05-18 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftoption.h [FT_CONFIG_OPTION_MAC_FONTS]: - New macro. - * src/base/ftobjs.c: Use it to control mac font support on non-mac - platforms. - -2003-05-17 George Williams <gww@silcom.com> - - Implement partial support of Mac fonts on non-Mac platforms. - - * src/base/ftobjs.c (memory_stream_close, new_memory_stream, - open_face_from_buffer, Mac_Read_POST_Resource, - Mac_Read_sfnt_Resource, IsMacResource, IsMacBinary, load_mac_face) - [!FT_MACINTOSH]: New functions. - (FT_Open_Face) [!FT_MACINTOSH]: Use load_mac_face. - -2003-05-17 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Load_Glyph): Scale linear advance width only - if FT_FACE_FLAG_SCALABLE is set (otherwise we have a division by - zero since FNT and friends don't define `face->units_per_EM'). - -2003-05-15 David Turner <david@freetype.org> - - * src/base/fttrigon.c (FT_Vector_Rotate): Avoid rounding errors - for small values. - -2003-05-15 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahtypes.h (AH_PointRec): Remove unused `in_angle' - and `out_angle' fields. - -2003-05-14 George Williams <gww@silcom.com> - - * src/base/ftmac.c (FT_New_Face_From_SFNT): Handle CFF files also. - -2003-05-14 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h: Fix typo in comment - (FT_HAS_FIXED_SIZES). - -2003-05-10 Dan Williams <dan@bigw.org> - - * builds/unix/aclocal.m4: Comment out definition of - `allow_undefined_flag' for Darwin 1.3. - * builds/unix/configure.ac: Add option --with-old-mac-fonts. - * builds/unix/ltmain.sh: Fix version numbering for Darwin 1.3. - * builds/unix/configure: Regenerated. - - * include/freetype/config/ftconfig.h: Fix conditions for defining - `FT_MACINTOSH'. - * src/base/ftbase.c: Include `ftmac.c' conditionally. - * src/base/ftmac.c: Handle __GNUC__. - -2003-05-07 YAMANO-UCHI Hidetoshi <mer@din.or.jp> - - * src/cid/cidload.c (is_alpha): Removed. - (cid_parse_dict): Use `cid_parser_skip_alpha' instead of `is_alpha'. - -2003-05-07 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahoptim.c, src/autohint/ahoptim.h: Obsolete, removed. - -2003-05-07 David Turner <david@freetype.org> - - * src/autohint/ahglyph.c (ah_setup_uv): Exchange `for' loop and - `switch' statement to make it run faster. - (ah_outline_compute_segments): Reset `segment->score' and - `segment->link'. - (ah_outline_link_segments): Provide alternative code which does - the same but runs much faster. - Handle major direction also. - (ah_outline_compute_edges): Scale `edge_distance_threshold' down - after rounding instead of scaling comparison value in loop. - - * src/autohint/ahhint.c (ah_hinter_align_strong_points): Provide - alternative code which runs faster. - Handle `before->scale == 0'. - - * src/autohint/ahtypes.h (AH_SegmentRec): Move some fields down. - (AH_EdgeRec): Move some fields in structure. - New field `scale'. - - * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Use binary search. - -2003-05-02 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahoptim.c (LOG): Renamed to... - (AH_OPTIM_LOG): This. - (AH_Dump_Springs): Fix log message format. - - * src/autohint/ahhint.c (ah_hint_edges_3): Renamed to... - (ah_hint_edges): This. - -2002-05-02 Keith Packard <keithp@keithp.com> - - * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Initialize `max_advance'. - -2003-05-01 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahglyph.c (ah_test_extrema): Renamed to... - (ah_test_extremum): This. - -2003-04-28 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.ac: Generate `freetype.pc' from - `freetype.in'. - * builds/unix/configure: Regenerated. - * builds/unix/install.mk (install, uninstall): Handle `freetype.pc'. - -2003-04-28 Gustavo J. A. M. Carneiro <gjc@inescporto.pt> - - * builds/unix/freetype2.in: New file. Contains building information - for the `pkg-config' package. - -2003-04-28 David Turner <david@freetype.org> - - * src/base/ftobjs.c (FT_Load_Glyph): Fix boundary check for - `glyph_index'. - -2003-04-25: Graham Asher <graham.asher@btinternet.com> - - Added the optional unpatented hinting system for TrueType. It - allows typefaces which need hinting to produce correct glyph forms - (e.g., Chinese typefaces from Dynalab) to work acceptably without - infringing Apple patents. This system is compiled only if - TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in - ftoption.h. - - * include/freetype/ttunpat.h: New file. Defines - FT_PARAM_TAG_UNPATENTED_HINTING. - - * include/freetype/config/ftheader.h (FT_TRUETYPE_UNPATENTED_H): New - macro to use when including ttunpat.h. - - * include/freetype/config/ftoption.h - (TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, - TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): New configuration macros - (not defined, but in comments) for the unpatented hinting system. - - * include/freetype/internal/tttypes.h (TT_FaceRec) - [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: New element `FT_Bool - unpatented_hinting'. - - * src/truetype/ttinterp.c (NO_APPLE_PATENT, APPLE_THRESHOLD): - Removed. - (GUESS_VECTOR): New macro. - (TT_Run_Context) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: - Set `both_x_axis'. - (tt_default_graphics_state) - [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Updated. - (Current_Ratio) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: - Handle `unpatented_hinting'. - (Direct_Move) [NO_APPLE_PATENT]: Removed. - [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion. - (Project, FreeProject) - [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion. - (Compute_Funcs) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: - Implement unpatented hinting. - (DO_SPVTCA, DO_SFVTCA, DO_SPVTL, DO_SFVTL, DO_SPVFS, DO_SFVFS, - Ins_SDPVTL): Call `GUESS_VECTOR'. - (DO_GPV, DO_GFV) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: - Handle `unpatented_hinting'. - (Compute_Point_Displacement) [NO_APPLE_PATENT]: Removed. - [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented - hinting. - (Move_Zp2_Point, Ins_SHPIX, Ins_DELTAP, Ins_DELTAC) - [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented - hinting. - (TT_RunIns): Updated. - - * src/truetype/ttobjs.c - [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Include - FT_TRUETYPE_UNPATENTED_H. - (tt_face_init) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, - TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING]: Check - FT_PARAM_TAG_UNPATENTED_HINTING. - - * src/truetype/ttobjs.h (TT_GraphicsState) - [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Add `both_x_axis'. - -2003-04-25 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdflib.c (hash_bucket, hash_lookup): Use `const' for first - argument. - (bdf_get_font_property): Use `const' for third argument. - Updated all callers. - * src/bdf/bdfdrivr.c (BDF_Face_Init): Set pixel width and height - similar to the PCF driver. - * src/bdf/bdf.h (_hashnode): Use `const' for `key'. - Updated. - - * src/gzip/ftgzip.c: C++ doesn't like that the array `inflate_mask' - is declared twice. It is perhaps better to modify the zlib source - files directly instead of this hack. - (zcalloc, zfree, ft_gzip_stream_close, ft_gzip_stream_io): Add casts - to make build with g++ successful. - -2003-04-24 Manish Singh <yosh@gimp.org> - - * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c - (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Split on `-' - also for searching the style name. - -2003-04-24 David Turner <david@freetype.org> - - * src/pcf/pcfread.c (pcf_load_font): Fixed the computation of - face->num_glyphs. We must increase the value by 1 to respect the - convention that glyph index 0 always corresponds to the `missing - glyph'. - -2003-04-24 Werner Lemberg <wl@gnu.org> - - * builds/unix/unix-cc.in (CFLAGS): Add @CPPFLAGS@. - -2003-04-24 Dieter Baron <dillo@netbsd.org> - - * builds/unix/freetype-config.in (cflags): Emit FreeType 2's include - files first. Otherwise there are conflicts with FreeType 1 - installed simultaneously. - -2003-04-23 Werner Lemberg <wl@gnu.org> - - Fixing bugs reported by Nelson Beebe. - - * src/base/ftstroker.c (FT_Stroker_ParseOutline): Remove unused - variable `in_path'. - - * src/base/ftobjs (ft_glyphslot_set_bitmap): Change type of - second argument to `FT_Byte*'. - * include/freetype/internal/ftobjs.h: Updated. - - * src/bdf/bdflib.c (_bdf_readstream): Remove unused variable `res'. - (_bdf_parse_glyphs): Remove unused variable `next'. - Mark `call_data' as unused. - - * src/cache/ftlru.c (FT_LruList_Lookup): Remove unused variable - `plast'. - - * src/pcf/pcfread.c (pcf_seek_to_table_type): Slight recoding to - actually use `error'. - (pcf_load_font): Remove unused variable `avgw'. - - * src/pfr/pfrobjs.c (pfr_face_get_kerning): Change return type - to `void'. - Mark `error' as unused. - * src/pfr/pfrobjs.h: Updated. - * src/pfr/pfrdrivr.c (pfr_get_kerning): Updated. - - * src/sfnt/ttload.c (sfnt_dir_check): Remove unused variable - `format_tag'. - - * src/sfnt/ttcmap0.c (tt_cmap6_validate, tt_cmap10_validate): Remove - unused variable `start'. - (tt_cmap10_char_next): Remove unused variable `result' - - * src/sfnt/sfobjs.c (tt_face_get_name): Mark `error' as unused. - - * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Mark `error' as - unused. - - * src/type1/t1objs.c (T1_Face_Init): Remove unused variable - `pshinter'. - - * src/type1/t1gload.c (T1_Load_Glyph): Use `glyph_data_loaded' - only for FT_CONFIG_OPTION_INCREMENTAL. - -2003-04-23 Akito Hirai <akito@kde.gr.jp> - - * src/sfnt/ttcmap0.c (tt_cmap4_validate): Provide a weak variant - of the glyph ID bounding check if FT_VALIDATE_TIGHT is not active. - Without this change, many CJK fonts from Dynalab are rejected. - -2003-04-23 Joe Marcus Clarke <marcus@FreeBSD.org> - - * src/base/ftbdf.c (FT_Get_BDF_Property): Check for valid - `get_interface'. - -2003-04-23 Paul Miller <paulm@profoundeffects.com> - - * src/base/ftmac.c (parse_fond): Fix handling of style names. - -2003-04-23 Werner Lemberg <wl@gnu.org> - - * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist - instead of FT_UInt for `len'. - -2003-04-22 Werner Lemberg <wl@gnu.org> - - * src/gzip/ftgzip.c (zcalloc) [!FT_CONFIG_OPTION_SYSTEM_ZLIB]: - Convert K&R format to modern C usage. - (FT_Stream_OpenGzip): Use long constant. - -2003-04-21 Werner Lemberg <wl@gnu.org> - - * src/cache/ftccache.c (ftc_cache_lookup): Remove shadow declaration - of `manager'. - -2003-04-20 Werner Lemberg <wl@gnu.org> - - * doc/INSTALL.UNX: Cleaned up. - -2003-04-09 Torrey Lyons <torrey@mrcla.com> - - * src/base/ftmac.c (open_face_from_buffer): Removed a double-free - bug that had nasty consequences when trying to open an `invalid' - font on a Mac. - -2003-04-09 Mike Fabian <mfabian@suse.de> - - * src/bdf/bdfdrivr.h (BDF_encoding_el), src/pcf/pcf.h - (PCF_EncodingRec): Changed FT_Short to FT_UShort in order to be able - to access more than 32768 glyphs in fonts. - -2003-04-08 David Turner <david@freetype.org> - - - * Version 2.1.4 released. - ========================= - - -2003-04-03 Martin Muskens <mmuskens@aurelon.com> - - * src/type1/t1load.c (T1_Open_Face): Fixed the code to make it - handle special cases where a font only contains a `.notdef' glyph - (happens in PDF-embedded fonts). Otherwise, FT_Panic was called. - -2003-03-27 David Turner <david@freetype.org> - - * README: Updated. - - * README.UNX: Removed (now replaced by docs/INSTALL.UNX). - - * src/pshinter/pshalgo3.c: The hinter now performs as in 2.1.3 and - will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is - used. - (psh3_dimension_quantize_len): Enabled. - (psh3_hint_align): Enable commented code. - (psh3_hint_align_light): Commented out. - - * src/base/ftobjs.c (FT_Set_Char_Size): Changed the default - computations to include rounding in all cases; this is required to - provide accurate kerning data when native TrueType hinting is - enabled. - - * src/type1/t1load.c (is_name_char): The Type 1 loader now accepts - more general names according to the PostScript specification (the - previous one was too restrictive). - (parse_font_name, parse_encoding, parse_charstrings, parse_dict): - Use `is_name_char'. - (parse_subrs): Handle empty arrays. - -2003-03-20 David Turner <david@freetype.org> - - Serious rewriting of the documentation. - - * docs/BUGS, docs/BUILD: Removed. - * docs/DEBUG.TXT: Renamed to... - * docs/DEBUG: This. - * docs/CUSTOMIZE, docs/TRUETYPE, docs/UPGRADE.UNX: New files. - * docs/INSTALL.ANY, docs/INSTALL.UNX, docs/INSTALL.GNU New files, - containing platform specific information previously in INSTALL. - * docs/readme.vms: Renamed to... - * docs/INSTALL.VMS: This. - - * docs/*: Updated. - - Introduced three new functions to deal with glyph bitmaps within - FT_GlyphSlot objects: - - ft_glyphslot_free_bitmap - ft_glyphslot_alloc_bitmap - ft_glyphslot_set_bitmap - - These functions are much more convenient to use than managing the - FT_GLYPH_OWN_BITMAP flag manually. - - * include/freetype/internal/ftobjs.h (ft_glyphslot_free_bitmap, - ft_glyphslot_alloc_bitmap, ft_glyphslot_set_bitmap): New functions. - * src/base/ftobjs.c: Implement them. - (ft_glyphslot_done): Use ft_glyphslot_free_bitmap. - - * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdriver.c - (PCF_Glyph_Load): Remove unused variable `memory'. - Use `ft_glyphslot_*' functions. - Don't set `FT_GLYPH_OWN_BITMAP'. - - * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Use - `ft_glyphslot_alloc_bitmap'. - - * src/sfnt/ttsbit.c (Load_SBit_Image): Change 5th argument to type - `FT_GlyphSlot'. - Adding argument `depth' to handle recursive calls. - Use `ft_glyphslot_alloc_bitmap'. - (tt_face_load_sbit_image): Remove unused variable `memory'. - Don't handle `FT_GLYPH_OWN_BITMAP'. - Update call to Load_SBit_Image. - - * src/type42/t42objs.c (ft_glyphslot_clear): Renamed to... - (t42_glyphslot_clear): This. Updated caller. - Call `ft_glyphslot_free_bitmap'. - - * src/winfonts/winfnt.c (FNT_Load_Glyph): Use - `ft_glyphslot_set_bitmap'. - Don't handle `FT_GLYPH_OWN_BITMAP'. - - * src/cache/ftlru.c (FT_LruList_Lookup): Fixed an invalid assertion - check. - - * src/autohint/ahglyph.c (ah_outline_load): Add two scaling - arguments. - * src/autohint/ahglyph.h: Updated. - * src/autohint/ahhint.c (ah_hinter_load): Updated. - * src/autohint/ahglobal.c (ah_hinter_compute_widths): Updated. - - * src/cache/ftccache.c (ftc_family_done): Fixed small bug that could - crash the cache in rare circumstances (mostly with broken fonts). - -2003-03-15 David Turner <david@freetype.org> - - * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a small rounding - bug. Actually, it seems that previous versions of FreeType didn't - perform TrueType rounding exactly as appropriate. - -2003-03-14 David Turner <david@freetype.org> - - * src/truetype/ttdriver.c (Set_Char_Sizes): Fixing the small - TrueType native rendering glitches; they came from a small rounding - error. - -2003-03-13 David Turner <david@freetype.org> - - Added new environment variables to control memory debugging with - FreeType. See the description of `FT2_DEBUG_MEMORY', - `FT2_ALLOC_TOTAL_MAX' and `FT2_ALLOC_COUNT_MAX' in DEBUG.TXT. - - * src/base/ftdbgmem.c (FT_MemTableRec): Add `alloc_count', - `bound_total', `alloc_total_max', `bound_count', `alloc_count_max'. - (ft_mem_debug_alloc): Handle new variables. - (ft_mem_debug_init): s/FT_DEBUG_MEMORY/FT2_DEBUG_MEMORY/. - Handle new environment variables. - * docs/DEBUG.TXT: Updated. - - Fixed the cache sub-system to correctly deal with out-of-memory - conditions. - - * src/cache/ftccache.c (ftc_node_destroy): Comment out generic - check. - (ftc_cache_lookup): Implement loop. - * src/cache/ftccmap.c: Define FT_COMPONENT. - * src/cache/ftcsbits.c (ftc_sbit_node_load): Handle - FT_Err_Out_Of_Memory. - * src/cache/ftlru.c: Include FT_INTERNAL_DEBUG_H. - (FT_LruList_Lookup): Implement loop. - - * src/pfr/pfrobjs.c (pfr_face_done): Fix memory leak. - (pfr_face_init): Fixing compiler warnings. - - * src/psaux/psobjs.c (reallocate_t1_table): Fixed a bug (memory - leak) that only happened when a try to resize an array would end in - an out-of-memory condition. - - * src/smooth/ftgrays.c (gray_convert_glyph): Removed compiler - warnings / volatile bug. - - * src/truetype/ttobjs.c (tt_glyphzone_done): Removed segmentation - fault that happened in tight memory environments. - -2003-02-28 Pixel <pixel@mandrakesoft.com> - - * src/gzip/ftgzip.c (ft_gzip_file_done): Fixed memory leak: The ZLib - stream was not properly finalized. - -2003-02-25 Anthony Fok <anthony@thizlinux.com> - - * src/cache/ftccmap.c: Include FT_TRUETYPE_IDS_H. - (ftc_cmap_family_init): The cmap cache now - supports UCS-4 charmaps when available in Asian fonts. - - * src/sfnt/ttload.c, src/base/ftobjs.c: Changed `asian' to `Asian' - in comments. - -2003-02-25 David Turner <david@freetype.org> - - * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Fixed a bug that - caused FreeType to loop endlessly when trying to read certain - compressed gzip files. The following test reveals the bug: - - touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz - - Several fixes to the PFR font driver: - - - The list of available embedded bitmaps was not correctly set in - the root FT_FaceRec structure describing the face. - - - The glyph loader always tried to load the outlines when - FT_LOAD_SBITS_ONLY was specified. - - - The table loaded now scans for *undocumented* elements of a - physical font's auxiliary data record. This is necessary to - retrieve the `real' family and style names. - - NOTE THAT THESE CHANGES THE FAMILY NAME OF MANY PFR FONTS! - - * src/pfr/pfrload.c (pfr_aux_name_load): New function. - (pfr_phy_font_done): Free `family_name' and `style_name' also. - Remove unused variables. - (pfr_phy_font_load): Extract useful information from the auxiliary - bytes. - - * src/pfr/pfrobjs.c (pfr_face_done): Set pointers to NULL. - (pfr_face_init): Provide fallback values for `family_name' and - `style_name'. - Handle strikes. - (pfr_slot_load): Handle FT_LOAD_SBITS_ONLY. - * src/pfr/pfrtypes.h (PFR_PhyFontRec): Add fields `ascent', - `descent', `leading', `family_name', and `style_name'. - - * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a rounding bug - when computing the scale factors for a given character size in - points with resolution. - - * devel/ft2build.h, devel/ftoption.h: New files (in a new directory) - which are special development versions of include/ft2build.h and - include/freetype/config/ftoption.h, respectively. - -2003-02-18 David Turner <david@freetype.org> - - Fixing the slight distortion problem that occurred due to the latest - auto-hinter changes. - - * src/base/ftobjs.c (ft_recompute_scaled_metrics): Fix rounding. - - * src/truetype/ttdriver.c (Set_Char_Sizes): New variable `metrics2'. - [!TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Removed. - - * src/truetype/ttobjs.h (TT_SizeRec): New field `metrics'. - * src/truetype/ttobjs.c (Reset_Outline_Size): Fix initialization of - `metrics'. - [FT_CONFIG_CHESTER_ASCENDER]: Code removed. - (Reset_SBit_Size): Fix initialization of `metrics'. - - * src/truetype/ttinterp.c (TT_Load_Context): Fix initialization of - `exec->metrics'. - - * src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width - `correction' which seemed to provide more trouble than benefits. - -2003-02-13 Graham Asher <graham.asher@btinternet.com> - - Changed the incremental loading interface in a way that makes it - simpler and allows glyph metrics to be changed (e.g., by adding a - constant, as required by CFF fonts) rather than just overridden. - This was required to make the GhostScript-to-FreeType bridge work. - - * src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_INCREMENTAL]: - Allow metrics to be overridden. - * src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]: - Ditto. - - * src/truetype/ttgload.c (load_truetype_glyph) - [FT_CONFIG_OPTION_INCREMENTAL]: Simplify. - (compute_glyph_metrics) [FT_CONFIG_OPTION_INCREMENTAL]: Code block - moved down. - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String) - [FT_CONFIG_OPTION_INCREMENTAL]: Updated. - - * include/freetype/ftincrem.h: Updated. - -2003-01-31 David Turner <david@freetype.org> - - * docs/CHANGES, docs/VERSION.DLL, docs/TODO: Updating documentation - for the 2.1.4 release. - - * builds/win32/visualc/freetype.dsp, - builds/win32/visualc/index.html: Updating the project file for - 2.1.4. - - * src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c, - src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c, - src/gzip/infutil.c: Removed old-style (K&R)function definitions. - This avoids warnings with Visual C++ at its most pedantic mode. - - * src/pfr/pfrsbit.c: Removed compiler warnings. - - * src/cache/ftccmap.c (ftc_cmap_family_init): Changed an FT_ERROR - into an FT_TRACE1 since it caused `ftview' and others to dump too - much junk when trying to display a waterfall with a font without a - Unicode charmap (e.g. SYMBOL.TTF). - - Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last - patch from David Chester, but with a much simpler (and saner) - implementation. - - * src/autohint/ahhint.c (ah_hinter_load_glyph) - [FT_CONFIG_CHESTER_BLUE_SCALE]: Try to optimize the y_scale so that - the top of non-capital letters is aligned on a pixel boundary - whenever possible. - - * src/base/ftobjs.c (FT_Set_Char_Size) - [FT_CONFIG_CHESTER_BLUE_SCALE]: Round differently. - * src/truetype/ttdriver.c (Set_Char_Sizes) - [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Do some rounding only - if this macro is defined. - - * src/truetype/ttobjs.c (Reset_Outline_Size) - [FT_CONFIG_CHESTER_ASCENDER]: Round differently. - - * src/pshinter/pshalgo3.c: Improved the Postscript hinter. Getting - rid of stem snapping seems to work well here (though the stems are - still slightly moved to increase contrast). - (psh3_dimension_quantize_len): Commented out. - (psh3_hint_align_light): New function. - (psh3_hint_align): Comment out some code. - - THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES - STILL SUCK. - -2003-01-22 David Chester <davidchester@qmx.net> - - * src/autohint/ahhint.c (ah_compute_stem_width): Small fix to the - stem width optimization. - -2003-01-22 David Turner <david@freetype.org> - - Adding a new API `FT_Get_BDF_Property' to retrieve the BDF - properties of a given PCF or BDF font. - - * include/freetype/ftbdf.h (BDF_PropertyType): New enumeration. - (BDF_Property, BDF_PropertyRec): New structure. - FT_Get_BDF_Property): New function. - * include/freetype/internal/bdftypes.h: Include FT_BDF_H. - (BDF_GetPropertyFunc): New function pointer. - - * src/base/ftbdf.c (test_font_type): New helper function. - (FT_Get_BDF_Charset_ID): Use `test_font_type'. - (FT_Get_BDF_Property): New function. - - * src/bdf/bdfdrivr.c: Include FT_BDF_H. - (bdf_get_bdf_property, bdf_driver_requester): New functions. - (bdf_driver_class): Use `bdf_driver_requester'. - - * src/pcf/pcfdrivr.c: Include FT_BDF_H. - (pcf_get_bdf_property, pcf_driver_requester): New functions - (pcf_driver_class): Use `pcf_driver_requester'. - - * src/pcf/pcfread.c: Include `pcfread.h'. - (pcf_find_property): Decorate it with FT_LOCAL_DEF. - * src/pcf/pcfread.h: New file, providing `pcf_find_property'. - - * src/sfnt/ttload.c (sfnt_dir_check): Relaxed the `head' table size - verification to accept a few broken fonts who pad the size - incorrectly (the table should be padded, but its `size' field - shouldn't according to the specification). - -2003-01-18 Werner Lemberg <wl@gnu.org> - - * builds/unix/ltmain.sh: Regenerated with `libtoolize --force - --copy' from libtool 1.4.3. - * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from - automake 1.7.1. - * builds/unix/configure: Regenerated with autoconf 2.54. - * builds/unix/config.guess, builds/unix/config.sub: Updated from - `config' CVS module at subversions.gnu.org. - * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from - `automake' CVS module at subversions.gnu.org. - -2003-01-15 David Turner <david@freetype.org> - - * include/freetype/freetype.h: Fixed documentation for - FT_Size_Metrics. - -2003-01-15 James Su <suzhe@turbolinux.com.cn> - - * src/gzip/ftgzip.c (ft_gzip_check_header): Bugfix: couldn't read - certain gzip-ed font files (typo: `&&' -> `&'). - -2003-01-15 Huw D M Davies <h.davies1@physics.ox.ac.uk> - - Added a Windows .FNT specific API (mostly for Wine). Also fixed a - nasty bug in the header loader which would cause invalid memory - overwrites. - - * include/freetype/config/ftheader.h (FT_WINFONTS_H): New macro - for ftwinfnt.h. - * include/freetype/internal/fnttypes.h: Include FT_WINFONTS_H. - (FNT_FontRec): Updated. - Move Windows FNT definition to... - * include/freetype/ftwinfnt.h: This new file. - (FT_WinFNT_HeaderRec): Rename `reserved2' to `reserved1'. - * src/base/ftwinfnt.c: New file, providing `FT_Get_WinFNT_Header'. - * src/winfonts/winfnt.c (winfnt_header_fields): Updated. - Rename `reserved2' to `reserved1'. - (fnt_font_load): Updated. - - * src/base/Jamfile, src/base/descrip.mms, src/base/rules.mk: - Updated. - -2003-01-14 Graham Asher <graham.asher@btinternet.com> - - * include/freetype/ftglyph.h, src/base/ftglyph.c: Added `const' to - the type of the first argument to FT_Matrix_Multiply, which isn't - changed -- this adds documentation and convenience. - -2003-01-13 Graham Asher <graham.asher@btinternet.com> - - * src/sfnt/ttload.c (tt_face_load_metrics) - [FT_CONFIG_OPTION_INCREMENTAL]: TrueType typefaces without - horizontal metrics (without the `hmtx' table) are now tolerated if - an incremental interface has been specified that has a - get_glyph_metrics function, implying that metrics will be supplied - from outside. This happens for certain Type 42 fonts passed from - GhostScript. - -2003-01-11 David Chester <davidchester@qmx.net> - - Patches to the auto-hinter in order to slightly improve the output. - Note that everything is controlled through the new - FT_CONFIG_OPTION_CHESTER_HINTS defined in `ftoption.h'. There are - also individual FT_CONFIG_CHESTER_XXX macros to control individual - `features'. - - Note that all improvements are enabled by default, but can be - tweaked for optimization and testing purposes. The configuration - macros will most likely disappear in the short future. - - * include/freetype/config/ftoption.h - (FT_CONFIG_OPTION_CHESTER_HINTS): New macro. - (FT_CONFIG_CHESTER_{SMALL_F,ASCENDER,SERIF,STEM,BLUE_SCALE}) - [FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual - features. - - * src/autohint/ahglobal.c (blue_chars) [FT_CONFIG_CHESTER_SMALL_F]: - Add blue zone for `fijkdbh'. - * src/autohint/ahglobal.h (AH_IS_TOP_BLUE) - [FT_CONFIG_CHESTER_SMALL_F]: Use `AH_BLUE_SMALL_F_TOP'. - * src/autohint/ahglyph.c (ah_outline_compute_edges) - [FT_CONFIG_CHESTER_SERIF]: Use `AH_EDGE_SERIF'. - (ah_outline_compute_blue_edges) [FT_CONFIG_CHESTER_SMALL_F]: - Increase threshold for `best_dist'. - * src/autohint/ahhint.c (ah_compute_stem_width) - [FT_CONFIG_CHESTER_SERIF]: Provide new version for improved serif - handling. - (ah_align_linked_edge) [FT_CONFIG_CHESTER_SERIF]: Use special - version of `ah_compute_stem_width'. - (ah_hint_edges_3) [FT_CONFIG_CHESTER_STEM]: A new algorithm for stem - alignment when stem widths are less than 1.5 pixels wide centers the - stem slightly off-center of the center of a pixel (this increases - sharpness and consistency). - [FT_CONFIG_CHESTER_SERIF]: Use special version of - `ah_compute_stem_width'. - * src/autohint/ahtypes.h [FT_CONFIG_CHESTER_SMALL_F]: Add - `AH_BLUE_SMALL_F_TOP'. - -2003-01-11 David Turner <david@freetype.org> - - * include/freetype/internal/fnttypes.h (WinFNT_HeaderRec): Increase - size of `reserved2' to avoid memory overwrites. - -2003-01-08 Huw Davies <huw@codeweavers.com> - - * src/winfonts/winfnt.c (winfnt_header_fields): Read 16 bytes into - `reserved2', not `reserved'. - - * src/base/ftobjs.c (find_unicode_charmap): Fixed the error code - returned when the font doesn't contain a Unicode charmap. This - allows FT2 to load `symbol.ttf' and a few others correctly since the - last release. - (open_face): Fix return value. - -2003-01-08 Owen Taylor <owen@redhat.com> - - Implemented the FT_RENDER_MODE_LIGHT hinting mode in the auto and - postscript hinters. - - * src/autohint/ahtypes.h (AH_HinterRec): Add `do_stem_adjust'. - * src/autohint/ahhint.c (ah_compute_stem_width): Handle - hinter->do_stem_adjust. - (ah_hinter_load_glyph): Set hinter->do_stem_adjust. - - * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add `do_stem_adjust'. - * src/pshinter/pshalgo3.c (psh3_hint_align): Use `do_stem_adjust'. - (ps3_hints_apply): Handle FT_RENDER_MODE_LIGHT. - - * include/freetype/freetype.h (FT_Render_Mode): Add - FT_RENDER_MODE_LIGHT. - - * src/truetype/ttgload.c: Fixing the TrueType loader to handle - invalid composites correctly by limiting the recursion depth. - (TT_MAX_COMPOSITE_RECURSE): New macro. - (load_truetype_glyph): Add argument `recurse_count'. - Load a composite only if the numbers of contours is -1, emit error - otherwise. - (TT_Load_Glyph): Updated. - -2003-01-08 David Turner <david@freetype.org> - - * Jamrules, Jamfile, Jamfile.in, src/*/Jamfile: Small changes to - support the compilation of FreeType 2 as part of larger projects - with their own configuration options (only with Jam). - -2003-01-07 David Turner <david@freetype.org> - - * src/base/ftstroker.c: Probably the last bug-fixes to the stroker; - the API is likely to change, however. - (ft_stroke_border_close): Don't record empty paths. - (ft_stroke_border_get_counts): Increase `num_points' also in for loop. - (ft_stroke_border_export): Don't increase `write' twice in for loops. - (ft_stroker_outside): Handle `phi' together with `theta'. - (FT_Stroker_ParseOutline): New function. - - * src/base/fttrigon.c (FT_Angle_Diff): Fixing function: It returned - invalid values for large negative angle differences (resulting in - incorrect stroker computations, among other things). - - * src/cache/ftccache.c (ftc_node_hash_unlink): Removing incorrect - assertion, and changing code to avoid hash table size contraction. - - * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding - `ftstroker' to default build, as optional component. - -2002-12-26 David Turner <david@freetype.org> - - * src/gzip/adler32.c, src/gzip/infblock.c, src/gzip/inflate.c, - src/gzip/inftrees.c, src/gzip/zconf.h, src/gzip/zlib.h, - src/gzip/zutil.h: Updates to allow compilation without compiler - warnings with LCC-Win32. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. - * builds/unix/configure.ac (version_info): Increased to 9:3:3. - * builds/unix/configure: Regenerated. - * docs/VERSION.DLL: Updated. - -2002-12-23 Anthony Fok <anthony@thizlinux.com> - - * builds/unix/configure.ac, builds/unix/unix-cc.in (LINK_LIBRARY), - builds/unix/unix-def.in (SYSTEM_ZLIB): Small fix to configure - sub-system on Unix to allow other programs to correctly link with - zlib when needed. - -2002-12-19 David Turner <david@freetype.org> - - * include/freetype/internal/sfnt.h (SFNT_Load_Table_Func): New - function pointer. - - * include/freetype/tttables.h (FT_Load_Sfnt_Table): New function. - * src/base/ftobjs.c: Implement it. - - * src/sfnt/sfdriver.c (sfnt_get_interface): Handle `load_sfnt' - module request. - -2002-12-17 David Turner <david@freetype.org> - - * src/base/ftobjs.c (find_unicode_charmap): Added some comments to - better explain what's happening there. - (open_face): Included Graham Asher's fix to prevent faces without - Unicode charmaps from loading. - - * src/winfonts/winfnt.c: Included George Williams's fix to support - version 2 fonts correctly. - (winfnt_header_fields): Updated. - (fnt_font_load): Handle version 2 fonts. - (FNT_Load_Glyph): Updated. - -2002-12-16 David Turner <david@freetype.org> - - * docs/VERSION.DLL: Updating document to better explain the - differences between the three version numbers being used on Unix, as - well as providing an autoconf fragment provided by Lars Clausen. - - * src/smooth/ftgrays.c (gray_render_conic): Fixed small bug that - prevented Bézier arcs with negative vertical coordinates to be - rendered appropriately. - -2002-12-02 Antoine Leca <Antoine-Freetype@Leca-Marti.org> - - * src/base/ftobjs.c: Modified the logic to get Unicode charmaps. - Now it loads UCS-4 charmaps when there is one. - (find_unicode_charmap): New function. - (open_face): Refer to the above one. - (FT_Select_Charmap): Idem. - -2002-11-29 Antoine Leca <Antoine-Freetype@Leca-Marti.org> - - * include/freetype/ftgzip.h: Correct the name of the controlling - macro (was __FTXF86_H__ ...). - -2002-11-27 Vincent Caron <v.caron@zerodeux.net> - - * builds/unix/unix-def.in, builds/unix/freetype-config.in, - builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c - [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Adding support for system zlib - installations if available on the target platform (Unix only). - -2002-11-23 David Turner <david@freetype.org> - - * src/cff/cffload.c (cff_charset_load, cff_encoding_load): Modified - charset loader to accept pre-defined charsets, even when the font - contains fewer glyphs. Also enforced more checks to ensure that we - never overflow the character codes array in the encoding. - -2002-11-22 Antoine Leca <Antoine-Freetype@Leca-Marti.org> - - * include/freetype/ttnameid.h: Updated to latest OpenType - specification. - -2002-11-18 David Turner <david@freetype.org> - - - * Version 2.1.3 released. - ========================= - - -2002-11-07 David Turner <david@freetype.org> - - * src/cache/ftcsbits.c (ftc_sbit_node_load): Fixed a small bug that - caused problems with embedded bitmaps. - - * src/otlayout/otlayout.h, src/otlayout/otlconf.h, - src/otlayout/otlgsub.c, src/otlayout/otlgsub.h, - src/otlayout/otlparse.c, src/otlayout/otlparse.h, - src/otlayout/otlutils.h: Updating the OpenType Layout code, adding - support for the first GSUB lookups. Nothing that really compiles - for now though. - - * src/autohint/ahhint.c (ah_align_serif_edge): Disabled serif stem - width quantization. It produces slightly better shapes though this - is not distinguishable with many fonts. - Remove other dead code. - - * src/Jamfile, src/*/Jamfile: Simplified. - Use $(FT2_SRC_DIR). - -2002-11-06 David Turner <david@freetype.org> - - * include/freetype/freetype.h (FT_LOAD_TARGET_LIGHT): New macro. - (FT_LOAD_TARGET, FT_LOAD_TARGET_MODE): Use `& 15' instead of `& 7'. - -2002-11-05 David Turner <david@freetype.org> - - * include/freetype/config/ftoption.h, src/gzip/ftgzip.c: Added - support for the FT_CONFIG_OPTION_SYSTEM_ZLIB option, used to specify - the use of system-wide zlib. - - Note that this macro, as well as - TT_CONFIG_OPTION_BYTECODE_INTERPRETER, is not #undef-ed anymore. - This allows the build system to define them depending on the - configuration (typically by adding -D flags at compile time). - - * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Removed compiler - warnings in optimized mode relative to the `volatile' local - variables. This was not a compiler bug after all, but the fact that - a pointer to a volatile variable is not the same as a volatile - pointer to a variable :-) - - The fix was to change - `volatile FT_Byte* p' - into - `FT_Byte* volatile p'. - - * src/pfr/pfrload.c (pfr_phy_font_load), src/pfr/pfrdrivr.c - (pfr_get_metrics), src/gzip/inftrees.c: Removed compiler warnings in - optimized modes. - - * src/gzip/*.[hc]: Modified our zlib copy in order to prevent - exporting any zlib function names outside of the component. This - prevents linking problems on some platforms, when applications want - to link FreeType _and_ zlib together. - -2002-11-05 Juliusz <jch@pps.jussieu.fr> - - * src/psaux/psobjs.c (ps_table_add): Modified increment loop in - order to implement exponential behaviour. - -2002-11-01 David Turner <david@freetype.org> - - Added PFR-specific public API. Fixed the kerning retrieval routine - (it returned invalid values when the outline and metrics resolution - differ). - - * include/freetype/ftpfr.h, include/freetype/internal/pfr.h: New - files. - - * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H): New - macro for pfr.h. - - * src/base/ftpfr.c: New file. - * src/base/Jamfile, src/base/descrip.mms: Updated. - - * src/pfr/pfrdrivr.c: Include FT_INTERNAL_PFR_H. - (pfr_get_kerning, pfr_get_advance, pfr_get_metrics): New functions. - (pfr_service_rec): New format interface. - (pfr_driver_class): Use `pfr_service_rec'. - Replace `pfr_face_get_kerning' with `pfr_get_kerning'. - * src/pfr/pfrobjs.c: Remove dead code. - - * src/base/ftobjs.c (ft_glyphslot_clear): Small internal fix to - better support bitmap-based font formats. - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix handling of - `scale'. - Fix arguments to `FT_Vector_From_Polar'. - -2002-10-31 David Turner <david@freetype.org> - - Add support for automatic handling of gzip-compressed PCF files. - - * src/gzip/*: New files, taken from the zlib package (except - ftgzip.c). - - * include/freetype/ftgzip.h, src/gzip/ftgzip.c: New files. - * include/freetype/config/ftheader.h (FT_GZIP_H): New macro for - `ftgzip.h'. - - * src/pcf/pcfdriver.c: Include FT_GZIP_H and FT_ERRORS_H. - (PCF_Face_Init): If normal open fails, try to open gzip stream. - (PCF_Face_Done): Close gzip stream. - - * include/freetype/internal/pcftypes.h (PCF_Public_FaceRec), - src/pcf/pcf.h (PCF_FaceRec): Add `gzip_stream' and `gzip_source'. - - * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_ZLIB): - New macro. - (T1_CONFIG_OPTION_DISABLE_HINTER, FT_CONFIG_OPTION_USE_CMAPS - FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS, - FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS): Removed. - - (FT_EXPORT, FT_EXPORT_DEF, FT_DEBUG_LEVEL_ERROR, - FT_DEBUG_LEVEL_TRACE, FT_DEBUG_MEMORY): Comment out definitions so - that platform specific configuration file can override. - - * include/freetype/internal/ftstream.h: Include FT_SYSTEM_H. - -2002-10-30 David Turner <david@freetype.org> - - * FreeType 2.1.3rc3 released. - -2002-10-25 David Turner <david@freetype.org> - - * include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro. - (FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG. - -2002-10-22 Giuseppe Ghibò <ghibo@mandrakesoft.com> - - * include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2. - -2002-10-07 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FT_Open_Face): Use `const' for `args' - (suggested by Graham). - * src/base/ftobjs.c (FT_Open_Face): Updated. - (ft_input_stream_new): Ditto. - -2002-10-05 David Turner <david@freetype.org> - - Adding support for embedded bitmaps to the PFR driver, and rewriting - its kerning loader/handler to use all kerning pairs in a physical - font (and not just the first item). - - * src/pfr/pfr.c: Include `pfrsbit.c'. - * src/pfr/pfrgload.c: Include `pfrsbit.h'. - * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): Rewritten. - (pfr_phy_font_done, pfr_phy_font_load): Updated. - * src/pfr/pfrobjs.c: Include `pfrsbit.h'. - (pfr_face_init): Handle kerning and embedded bitmaps. - (pfr_slot_load): Load embedded bitmaps. - (PFR_KERN_INDEX): Removed. - (pfr_face_get_kerning): Rewritten. - * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h: New files. - * src/pfr/pfrtypes.h (PFR_KernItemRec): New structure. - (PFR_KERN_INDEX): New macro. - (PFR_PhyFontRec): Add items for kerning and embedded bitmaps. - * src/pfr/Jamfile (_sources) [FT2_MULTI]: Add `pfrsbit'. - - * src/base/ftobjs.c (FT_Load_Glyph): Don't load bitmap fonts if - FT_LOAD_NO_RECURSE is set. - Load embedded bitmaps only if FT_LOAD_NO_BITMAP isn't set. - - * src/tools/docmaker/content.py, src/tools/docmaker/sources.py, - src/tools/docmaker/tohtml.py: Fixing a few nasty bugs. - - * src/sfnt/ttcmap0.c (tt_cmap4_validate): The validator for format 4 - sub-tables is now capable of dealing with invalid `length' fields at - the start of the sub-table. This allows fonts like `mg______.ttf' - (i.e. Marriage) to return accurate charmaps. - - * docs/CHANGES: Updated. - -2002-10-05 Werner Lemberg <wl@gnu.org> - - * src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'. - Update all callers. - (TRUNC): Add cast to `TCoord'. - Update all callers. - (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and - last_ey. - Update all casts. - (gray_render_line): Fix casts for `p' and `first'. - -2002-10-02 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t - structure with FT_ALLOC instead of using the stack. - -2002-09-27 Werner Lemberg <wl@gnu.org> - - * src/include/freetype/internal/tttypes.h (num_sbit_strikes, - num_sbit_scales): Use `FT_ULong'. - * src/sfnt/sfobjs.c (sfnt_load_face): Updated accordingly. - * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Ditto. - (find_sbit_image): Remove cast. - * src/raster/ftrend1.c (ft_raster1_render): Fix cast. - -2002-09-27 Wolfgang Domröse <porthos.domroese@harz.de> - - * src/sfnt/ttload.c (tt_face_load_names): Use cast. - * src/sfnt/ttcmap.c (code_to_next2): Use long constant. - (code_to_index4): Use cast. - (code_to_index8_12): Fix cast. - * src/sfnt/ttcmap0.c (tt_cmap4_char_next, tt_cmap8_char_index, - tt_cmap12_char_index): Use cast for `result'. - (tt_face_build_cmaps): Use cast. - * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_ucs4): Use cast for - `code'. - (sfnt_load_face): Use FT_Int32 for `flags'. - - * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line, - gray_compute_cbox, gray_convert_glyph, gray_raster_reset): Add casts - to `TCoord' and `int'. - More 16bit fixes. - s/FT_Pos/TPos/. - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts. - -2002-09-26 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttpost.c (load_post_names, tt_face_free_ps_names, - tt_face_get_ps_name): Replace switch statement with if clauses to - make it more portable. - - * src/cff/cffobjs.c (cff_face_init): Ditto. - - * include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for - `module_size'. - * include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for - `glyph_size'. - - * src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to - `FT_Render_Mode'. - (FT_Render_Glyph_Internal): Change third parameter to - `FT_Render_Mode'. - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter - to `FT_Render_Mode'. - - * src/raster/ftrend1.c (ft_raster1_render): Change third parameter - to `FT_Render_Mode'. - * src/smooth/ftsmooth.c (ft_smooth_render, ft_smooth_render_lcd, - ft_smooth_render_lcd_v): Ditto. - (ft_smooth_render_generic): Change third and fifth parameter to - `FT_Render_Mode'. - - * include/freetype/freetype.h, include/freetype/internal/ftobjs.h, - include/freetype/ftglyph.h: Updated. - - * src/cff/cffdrivr.c (Load_Glyph), src/pcf/pcfdriver.c - (PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load), - src/winfonts/winfnt.c (FNT_Load_Glyph), src/t42/t42objs.c - (T42_GlyphSlot_Load), src/bdf/bdfdrivr.c (BDF_Glyph_Load): Change - fourth parameter to `FT_Int32'. - - * src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters - and declare them as unused. - - * src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'. - - * src/psnames/psnames.h (PS_Unicode_Value_Func): Change return - value to FT_UInt32. - * src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table): - Updated accordingly. - -2002-09-26 Wolfgang Domröse <porthos.domroese@harz.de> - - * src/cff/cffdrivr.c (Get_Kerning): Use FT_Long for `middle'. - (cff_get_glyph_name): Use cast for result of ft_strlen. - * src/cff/cffparse.c (cff_parse_real): User cast for assigning - `exp'. - * src/cff/cffload.c (cff_index_get_pointers): Use FT_ULong for - some local variables. - (cff_charset_load, cff_encoding_load): Use casts to FT_UInt for some - switch statements. - (cff_font_load): Use cast in call to CFF_Load_FD_Select. - * src/cff/cffobjs.c (cff_size_init): Use more casts. - (cff_face_init): Use FT_Int32 for `flags'. - * src/cff/cffgload.c (cff_operator_seac): Use cast for assigning - `adx' and `ady'. - (cff_decoder_parse_charstrings): Use FT_ULong for third parameter. - Use more casts. - * src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'. - - * src/cid/cidload.c (cid_read_subrs): Use FT_ULong for `len'. - * src/cid/cidgload.c (cid_load_glyph): Add missing cast for - `cid_get_offset'. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <18>: Use - cast for `num_points'. - (t1_decoder_init): Use cast for assigning `decoder->num_glyphs'. - - * src/base/ftdebug.c (ft_debug_init): Use FT_Int. - * include/freetype/internal/ftdriver.h (FT_Slot_LoadFunc): Use - `FT_Int32' for fourth parameter. - * src/base/ftobjs.c (open_face): Use cast for calling - clazz->init_face. - - * src/raster/ftraster.c (Set_High_Precision): Use `1' instead of - `1L'. - (Finalize_Profile_Table, Line_Up, ft_black_init): Use casts. - * src/raster/ftrend1.c (ft_raster1_render): Ditto. - - * src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long - constant. - -2002-09-26 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/include/freetype/config/ftmodule.h: Updated. - -2002-09-25 David Turner <david@freetype.org> - - * src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics - hinting in the auto-hinter. This produces much better anti-aliased - text. - - * docs/CHANGES: Updating the changes documentation. - -2002-09-25 Anthony Fok <anthony@thizlinux.com> - - * src/sfnt/ttcmap0.c (tt_cmap4_validate, tt_cmap4_char_index, - tt_cmap4_char_next): Added support for opens___.ttf (it contains a - charmap that uses offset=0xFFFFU instead of 0x0000 to indicate a - missing glyph). - -2002-09-21 Wolfgang Domröse <porthos.domroese@harz.de> - - * src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be - FT_Int32. - * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph): - Ditto. - -2002-09-19 Wolfgang Domröse <porthos.domroese@harz.de> - - More 16bit fixes. - - * src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'. - (ah_hinter_compute_widths): Use FT_Pos for `dist'. - Use AH_MAX_WIDTHS. - * src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos - for `delta'. - (ah_outline_compute_edges): Replace some ints with FT_Int and - FT_Pos. - (ah_test_extrema): Clean up code. - (ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to - hold indices. - * src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score' - to FT_Pos. - -2002-09-19 Werner Lemberg <wl@gnu.org> - - * builds/unix/config.guess, builds/unix/config.sub: Updated to - recent versions. - -2002-09-18 David Turner <david@freetype.org> - - * src/base/ftobjs.c (FT_Library_Version): Bugfix. - - * FreeType 2.1.3rc2 (release candidate 2) is released! - -2002-09-17 David Turner <david@freetype.org> - - * include/freetype/freetype.h, include/freetype/ftimage.h, - include/freetype/ftstroker.h, include/freetype/ftsysio.h, - include/freetype/ftsysmem.h, include/freetype/ttnameid.h: Updating - the in-source documentation. - - * src/tools/docmaker/tohtml.py: Updating the HTML formatter in the - DocMaker tool. - - * src/tools/docmaker.py: Removed. - -2002-09-17 Werner Lemberg <wl@gnu.org> - - More 16bit fixes. - - * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for - second parameter. - -2002-09-16 Werner Lemberg <wl@gnu.org> - - 16bit fixes from Wolfgang Domröse. - - * src/type1/t1parse.h (T1_ParserRec): Change type of `base_len' - and `private_len' to FT_Long. - * src/type1/t1parse.c (T1_Get_Private_Dict): Remove cast for - `private_len'. - * src/type1/t1load.c: Use FT_Int cast for most calls of T1_ToInt. - Use FT_PtrDist where appropriate. - (parse_encoding): Use FT_Long for `count' and `n'. - (read_binary_data): Use FT_Long* for second parameter. - * src/type1/t1afm.c (afm_atoindex): Use FT_PtrDist. - - * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label. - * src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable. - -2002-09-14 Werner Lemberg <wl@gnu.org> - - Making ftgrays.c compile stand-alone again. - - * include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_ - isn't defined. - * src/smooth/ftgrays.c [_STANDALONE_]: Define ft_memset, - FT_BEGIN_HEADER, FT_END_HEADER. - (FT_MEM_ZERO): Define. - (TRaster) [GRAYS_USE_GAMMA]: Use `unsigned char' instead of FT_Byte. - (gray_render_span, gray_init_gamma): Don't use `FT_UInt'. - Don't cast with `FT_Byte'. - (grays_init_gamma): Don't use `FT_UInt'. - -2002-09-14 Werner Lemberg <wl@gnu.org> - - * src/base/ftinit.c (FT_Add_Default_Modules): Improve error message. - * src/pcf/pcfdriver.c (PCF_Face_Done): Improve tracing message. - * include/freetype/config/ftoption.h (FT_MAX_MODULES): Increased - to 32. - -2002-09-10 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.ac (version_info): Set to 9:2:3. - * builds/unix/configure: Regenerated. - * docs/VERSION.DLL: Updated. - -2002-09-09 David Turner <david@freetype.org> - - * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points), - src/pshinter/pshalgo3.c (psh3_glyph_find_strong_points): Adding fix - to prevent segfault when hints are provided in an empty glyph. - - * src/cache/ftccache.i (GEN_CACHE_LOOKUP) [FT_DEBUG_LEVEL_ERROR]: - Removed conditional code. This fixes a bug that prevented - compilation in debug mode of template instantiation. - - * include/freetype/ftimage.h: Removed incorrect `zft_' definitions - and updated constants documentation comments. - - * src/cff/cffparse.c (cff_parser_run): Fixed the CFF table loader. - It didn't accept empty arrays, and this prevented the loading of - certain fonts. - - * include/freetype/freetype.h (FT_FaceRec): Updating documentation - comment. The `descender' value is always *negative*, not positive. - -2002-09-09 Owen Taylor <owen@redhat.com> - - * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation - of bitmap metrics. - -2002-09-08 David Turner <david@freetype.org> - - Various updates to correctly support subpixel rendering. - - * include/freetype/config/ftmodule.h: Add two renderers for LCD. - - * src/base/ftobjs.c (FT_Load_Glyph): Updated. - - * src/smooth/ftsmooth.c (ft_smooth_render_lcd, - ft_smooth_render_lcd_v): Set FT_PIXEL_MODE_LCD and - FT_PIXEL_MODE_LCD_V, respectively. - - * include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New - structure. - Updated all users. - (FTC_ImageDesc): Removed. - (FTC_ImageCache_Lookup): Second parameter is now of type - `FTC_ImageType'. - Updated all users. - (FTC_IMAGE_DESC_COMPARE): Updated and renamed to... - (FTC_IMAGE_TYPE_COMPARE): This. - (FTC_IMAGE_DESC_HASH): Updated and renamed to... - (FTC_IMAGE_TYPE_HASH): This. - - * include/freetype/cache/ftcsbits.h (FTC_SBitRec): Field `num_grays' - replaced with `max_grays'. - `pitch' is now FT_Short. - (FTC_SBitCache_Lookup): Second parameter is now of type - `FTC_ImageType'. - Updated all users. - - * src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec): - Updated. - (ftc_image_node_init): Updated. - Moved code to convert type flags to load flags to... - (FTC_Image_Cache_Lookup): This function. - (ftc_image_family_init): Updated. - - * src/cache/ftcsbits.c (FTC_SBitQueryRec, FTC_SBitFamilyRec): - Updated. - (ftc_sbit_node_load): Updated. - Moved code to convert type flags to load flags to... - (FTC_SBitCache_Lookup): This function. - - * src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with - `do_*_snapping'. - Update all users (with negation). - * src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for - `dist' for `delta' < 40. - - * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with - `do_*_snapping'. - Update all users (with negation). - * src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New - function. - (psh3_hint_align): Use it. - Improve hinting code. - [STRONGER]: Removed. - (STRONGER): Removed. - - * include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*): - Removed. - -2002-09-05 Werner Lemberg <wl@gnu.org> - - * src/cid/cidobjs.c (CID_Size_Init): Renamed to... - (cid_size_init): This. - * src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to... - (t1_builder_add_point1): This. - - Updated all affected code. - - * src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings. - * src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto. - -2002-09-04 David Turner <david@freetype.org> - - * include/freetype/freetype.h: Corrected the definition of - ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of - the erroneous FT_ENCODING_SYMBOL). - - * builds/unix/unix-def.in (datadir): Initialize it (thanks to - Anthony Fok). - -2002-08-29 David Turner <david@freetype.org> - - Slight modification to the Postscript hinter to slightly increase - the contrast of smooth hinting. This is very similar to what the - auto-hinter does when it comes to stem width computations. However, - it produces better results with well-hinted fonts. - - * include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Add hint - mode to `init' member function. - (T1_DecoderRec): Add hint mode. - * include/freetype/internal/pshints (T1_Hints_ApplyFunc, - T2_Hints_ApplyFunc): Pass `hint_mode', not `hint_flags'. - * src/psaux/t1decode.c (t1_decoder_init): Add hint mode argument. - * src/pshinter/pshalgo1.c (ps1_hints_apply): Pass hint mode, not - hint flags. - * src/pshinter/pshalgo2.c (ps2_hints_apply): Ditto. - * src/pshinter/pshalgo3.c (ps3_hints_apply): Ditto. - (STRONGER): New macro. - (psh3_hint_align, psh3_hint_table_align_hints): Pass `glyph' instead - of `hint_flags'. - Implement announced changes. - * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control - vertical and horizontal hints and snapping. - - * README, docs/CHANGES: Updating for the 2.1.3 release. - -2002-08-27 David Turner <david@freetype.org> - - * Massive re-formatting changes to many, many source files. I don't - want to list them all here. The operations performed were all - logical transformations of the sources: - - - trying to convert all enums and constants to CAPITALIZED_STYLE, - #with define definitions like - - #define my_old_constants MY_NEW_CONSTANT - - - big, big update of the documentation comments - - * include/freetype/freetype.h, src/base/ftobjs.c, - src/smooth/ftsmooth.c, include/freetype/ftimage.h: Adding support - for LCD-optimized rendering though the new constants/enums: - - FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V - FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V - - This is still work in progress, don't expect everything to work - correctly though most of the features have been implemented. - - * Adding new FT_LOAD_XXX flags, used to specify both hinting and - rendering targets: - - FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering - FT_LOAD_TARGET_MONO :: monochrome bitmaps - FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated - hinting & rendering - FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated - hinting & rendering - - Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default - behaviour of the font engine is _unchanged_. - - * include/freetype/ftimage.h - (FT_Outline_{Move,Line,Conic,Cubic}To_Func): Renamed to... - (FT_Outline_{Move,Line,Conic,Cubic}ToFunc): This. - (FT_Raster_Span_Func): Renamed to ... - (FT_SpanFunc): This. - (FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ... - (FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This. - - Updated all affected code. - - * include/freetype/ftrender.h - (FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed - to ... - (FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This. - (FTRenderer_{render,transform,getCBox,setMode}): Renamed to ... - (FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SetModeFunc}): - This. - - Updated all affected code. - - * src/autohint/ahtypes.h (AH_Point, AH_Segment, AH_Edge, AH_Globals, - AH_Face_Globals, AH_Outline, AH_Hinter): These typedefs are now - pointers to the corresponding `*Rec' structures. All source files - have been updated accordingly. - - * src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter. - * src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element. - - * src/cid/cidgload.c (CID_Compute_Max_Advance): Renamed to... - (cid_face_compute_max_advance): This. - (CID_Load_Glyph): Renamed to... - (cid_slot_load_glyph): This. - * src/cid/cidload.c (CID_Open_Face): Renamed to... - (cid_face_open): This. - * src/cid/cidobjs.c (CID_GlyphSlot_{Done,Init}): Renamed to... - (cid_slot_{done,init}): This. - (CID_Size_{Get_Globals_Funcs,Done,Reset): Renamed to... - (cid_size_{get_globals_funcs,done,reset): This. - (CID_Face_{Done,Init}): Renamed to... - (cid_face_{done,init}): This. - (CID_Driver_{Done,Init}: Renamed to... - (cid_driver_{done,init}: This. - * src/cid/cidparse.c (CID_{New,Done}_Parser): Renamed to... - (cid_parser_{new,done}): This. - * src/cid/cidparse.h (CID_Skip_{Spaces,Alpha}): Renamed to... - (cid_parser_skip_{spaces,alpha}): This. - (CID_To{Int,Fixed,CoordArray,FixedArray,Token,TokenArray}): Renamed - to... - (cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}): - This. - (CID_Load_{Field,Field_Table): Renamed to... - (cid_parser_load_{field,field_table}): This. - * src/cid/cidriver.c (CID_Get_Interface): Renamed to... - (cid_get_interface): This. - - Updated all affected code. - - * src/psaux/psobjs.c (PS_Table_*): Renamed to... - (ps_table_*): This. - (T1_Builder_*): Renamed to... - (t1_builder_*): This. - * src/psaux/t1decode.c (T1_Decoder_*): Renamed to... - (t1_decoder_*): This. - - * src/psnames/psmodule.c (PS_*): Renamed to... - (ps_*): This. - - Updated all affected code. - - * src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to... - (sfnt_get_interface): This. - * src/sfnt/sfobjs.c (SFNT_*): Renamed to... - (sfnt_*): This. - * src/sfnt/ttcmap.c (TT_CharMap_{Load,Free}): Renamed to... - (tt_face_{load,free}_charmap): This. - * src/sfnt/ttcmap0.c (TT_Build_CMaps): Renamed to... - (tt_face_build_cmaps): This. - * src/sfnt/ttload.c (TT_*): Renamed to... - (tt_face_*): This. - * src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to... - (tt_post_default_names): This. - (Load_*): Renamed to... - (load_*): This. - (TT_*): Renamed to... - (tt_face_*): This. - * src/sfnt/ttsbit.c (TT_*): Renamed to... - (tt_face_*): This. - ({Find,Load,Crop}_*): Renamed to... - ({find,load,crop}_*): This. - - Updated all affected code. - - * src/smooth/ftsmooth.c (ft_smooth_render): Renamed to... - (ft_smooth_render_generic): This. - Make function more generic by adding vertical and horizontal scaling - factors. - (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v): - New functions. - - (ft_smooth_lcd_renderer_class, ft_smooth_lcdv_renderer_class): New - classes. - - * src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to... - (tt_glyphzone_{done,new}): This. - (TT_{Face,Size,Driver}_*): Renamed to... - (tt_{face,size,driver}_*): This. - * src/truetype/ttpload.c (TT_Load_Locations): Renamed to... - (tt_face_load_loca): This. - (TT_Load_Programs): Renamed to... - (tt_face_load_fpgm): This. - (TT_*): Renamed to... - (tt_face_*): This. - -2002-08-27 Werner Lemberg <wl@gnu.org> - - * docs/VERSION.DLL: New file. - -2002-08-23 Graham Asher <graham.asher@btinternet.com> - - * src/cff/cffgload.c (cff_operator_seac) - [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts (actually not - incremental in the case of CFF but just using callbacks to get glyph - recipes) pass the character code, not the glyph index, to the - get_glyph_data function; they have no valid charset table. - - * src/cff/cffload.c (cff_font_load): Removed special cases for - FT_CONFIG_OPTION_INCREMENTAL, which are no longer necessary; CFF - fonts provided via the incremental interface now have to conform - more closely to the CFF font format. - - * src/cff/cffload.h (cff_font_load): Removed argument now unneeded. - - * src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load - to conform with new signature. - -2002-08-22 David Turner <david@freetype.org> - - * src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c, - src/bdf/bdfdrivr.c: Removed compiler warnings. - -2002-08-21 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshalgo3.c (psh3_glyph_compute_inflections, - psh3_glyph_compute_extrema, psh3_hint_table_find_strong_point): Fix - compiler warnings and resolve shadowing of local variables. - -2002-08-21 David Turner <david@freetype.org> - - The automatic and Postscript hinter now automatically detect - inflection points in glyph outlines and treats them specially. This - is very useful to prevent nasty effect like the disappearing - diagonals of `S' and `s' in many, many fonts. - - * src/autohint/ahtypes.h (ah_flag_inflection): New macro. - * src/autohint/ahangles.c (ah_angle_diff): New function. - * src/autohint/ahangles.h: Updated. - * src/autohint/ahglyph.c (ah_outline_compute_inflections): New - function. - (ah_outline_detect_features): Use it. - * src/autohint/ahhint.c (ah_hinter_align_strong_points) - [!AH_OPTION_NO_WEAK_INTERPOLATION]: Handle inflection. - - * src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py, - src/tools/docmaker/tohtml.py: Updating the DocMaker tool. - - * include/freetype/freetype.h: Changing the type of the `load_flags' - parameter from `FT_Int' to `FT_Int32', this in order to support more - options. This should only break binary and/or source compatibility - on 16-bit platforms (Atari?). - (FT_LOAD_NO_AUTOHINT): New macro. - - * src/base/ftobjs.c (FT_Load_Glyph): Updated. - Handle FT_LOAD_NO_AUTOHINT. - (FT_Load_Char): Updated. - - * src/pshinter/pshalgo3.c, src/base/ftobjs.c, src/base/ftobject.c, - src/autohint/ahglyph.c, include/freetype/freetype.h: Fixing typos - and removing compiler warnings. - -2002-08-20 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0. - -2002-08-20 David Turner <david@freetype.org> - - * src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c, - src/pshinter/pshglob.c, src/pshinter/pshrec.c, - src/autohint/ahmodule.c [DEBUG_HINTER]: Removing compiler warnings - (only used in development builds anyway). - - Improve support of local extrema and stem edge points. - - * src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec - for `zones'. - (PSH3_DIR_UP, PSH3_DIR_DOWN): Exchange values. - (PSH3_DIR_HORIZONTAL, PSH3_DIR_VERTICAL): New macros. - (PSH3_DIR_COMPARE, PSH3_DIR_IS_HORIZONTAL, PSH3_IS_VERTICAL): New - macros. - (PSH3_POINT_INFLEX): New enum. - (psh3_point_{is,set}_{off,inflex}): New macros. - (PSH3_POINT_{EXTREMUM,POSITIVE,NEGATIVE,EDGE_MIN,EDGE_MAX): New - enum values. - (psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}): - New macros. - (PSH3_PointRec): New members `flags2' and `org_v'. - (PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros. - - * src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler - warnings. - (COMPUTE_INFLEXS): New macro. - (psh3_hint_align): Simplify some basic arithmetic computations. - (psh3_point_is_extremum): Removed. - (psh3_glyph_compute_inflections) [COMPUTE_INFLEXS]: New function. - (psh3_glyph_init) [COMPUTE_INFLEXS]: Use it. - (psh3_glyph_compute_extrema): New function. - (PSH3_STRONG_THRESHOLD): Increased to 30. - (psh3_hint_table_find_strong_point): Improved. - (psh3_glyph_find_strong_points, - psh3_glyph_interpolate_strong_points): Updated. - (psh3_hints_apply): Use psh3_glyph_compute_extrema. - - * test/gview.c (draw_ps3_hint, ps3_draw_control_points): New - functions. - Other small updates. - - * Jamfile: Small updates. - -2002-08-18 Arkadiusz Miskiewicz <misiek@pld.ORG.PL> - - * builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to - make life easier for package maintainers. - -2002-08-18 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of - horiBearingX. - * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix computation of - horiBearingY. - -2002-08-16 George Williams <gww@silcom.com> - - Add support for Apple composite glyphs. - - * include/freetype/config/ftoption.h - (TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro. - - * src/truetype/ttgload.c (OVERLAP_COMPOUND, SCALED_COMPONENT_OFFSET, - UNSCALED_COMPONENT_OFFSET): New macros for additional OpenType - glyph loading flags. - (load_truetype_glyph): Implement it. - -2002-08-16 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (cff_free_glyph_data), - src/cff/cffload.c (cff_font_load): Use FT_UNUSED. - -2002-08-15 Werner Lemberg <wl@gnu.org> - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'. - * src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning. - -2002-08-15 Graham Asher <graham.asher@btinternet.com> - - Implemented the incremental font loading system for the CFF driver. - Tested using the GhostScript-to-FreeType bridge (under development). - - * src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New - functions. - (cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use - them. - * src/cff/cffload.c (cff_font_load): Add `face' parameter. - Load charset and encoding only if there are glyphs. - [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts don't need - character recipes. - * src/cff/cffload.h, src/cff/cffobjs.c: Updated. - - * src/cid/cidgload.c (cid_load_glyph) - [FT_CONFIG_OPTION_INCREMENTAL]: Corrected the incremental font - loading implementation to use the new system introduced on - 2002-08-01. - -2002-08-06 Werner Lemberg <wl@gnu.org> - - * src/cff/cffcmap.c: Remove compiler warnings. - * src/cache/ftccache.c, src/cache/ftccache.i, - src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/. - * src/cff/cffload.c: s/select/fdselect/. - * src/raster/ftraster.c: s/wait/waiting/. - -2002-08-01 Graham Asher <graham.asher@btinternet.com> - - * src/type1/t1load.c (T1_Open_Face): Tolerate a face with no - charstrings if there is an incremental loading interface. Type 1 - faces supplied by PostScript interpreters like GhostScript will - typically not provide any charstrings at load time, so this is - essential if they are to work. - -2002-08-01 Graham Asher <graham.asher@btinternet.com> - - Modified incremental loading interface to be closer to David's - preferences. The header freetype.h is not now affected, the - interface is specified via an FT_Parameter, the pointer to the - interface is hidden in an internal part of the face record, and all - the definitions are in ftincrem.h. - - * include/freetype/freetype.h [FT_CONFIG_OPTION_INCREMENTAL]: - Removed. - * include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]: - Include FT_INCREMENTAL_H. - (FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add - `incremental_interface'. - - * src/base/ftobjs.c (open_face, FT_Open_Face) - [FT_CONFIG_OPTION_INCREMENTAL]: Updated. - * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]: - Updated. - - * src/truetype/ttgload.c (load_truetype_glyph) - [FT_CONFIG_OPTION_INCREMENTAL]: Updated. - Free loaded glyph data properly. - (compute_glyph_metrics, TT_Load_Glyph) - [FT_CONFIG_OPTION_INCREMENTAL]: Updated. - * src/truetype/ttobjs.c (TT_Face_Init) - [FT_CONFIG_OPTION_INCREMENTAL]: Updated. - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String) - [FT_CONFIG_OPTION_INCREMENTAL]: Updated. - (T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated. - Free loaded glyph data properly. - (T1_Load_Glyph): Updated. - [FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly. - -2002-07-30 David Turner <david@freetype.org> - - * include/freetype/ftincrem.h: Adding new experimental header file - to demonstrate a `cleaner' API to support incremental font loading. - - * include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro. - - * src/tools/docmaker/*: Adding new (more advanced) version of - the DocMaker tool, using Python's sophisticated regexps. - -2002-07-28 Werner Lemberg <wl@gnu.org> - - s/ft_memset/FT_MEM_SET/. - s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate. - -2002-07-27 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs. - -2002-07-26 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (load_truetype_glyph) - [FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/. - - * src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning. - * src/cff/cffload.c (cff_encoding_load): Remove `memory' variable. - * src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames' - variable. - * src/truetype/ttgload.c (load_truetype_glyph): Remove statement - without effect. - * src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed. - - * src/pshinter/pshalgo3.c (psh3_hint_table_record, - psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error - message. - -2002-07-24 Graham Asher <graham.asher@btinternet.com> - - * src/truetype/ttobjs.c: Fix for bug reported by Sven Neumann - [sven@gimp.org] on the FreeType development forum: `If - FT_CONFIG_OPTION_INCREMENTAL is undefined (this is the default), the - TrueType loader crashes in line 852 of src/truetype/ttgload.c when - it tries to access face->glyph_locations.' - -2002-07-18 Graham Asher <graham.asher@btinternet.com> - - Added types and structures to support incremental typeface loading. - The FT_Incremental_Interface structure, defined in freetype.h, is - designed to be passed to FT_Open_Face to provide callback functions - to obtain glyph recipes and metrics, for fonts like those passed - from PostScript that do not necessarily provide all, or any, glyph - information, when first opened. - - * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL): - New configuration macro to enable incremental face loading. By - default it is not defined. - - * include/freetype/freetype.h (FT_Basic_Glyph_Metrics, - FT_Get_Glyph_Data_Func, FT_Get_Glyph_Metrics_Func, - FT_Incremental_Interface_Funcs, FT_Incremental_Interface) - [FT_CONFIG_OPTION_INCREMENTAL]: New. - (FT_Open_Args, FT_FaceRec) [FT_CONFIG_OPTION_INCREMENTAL]: New field - `incremental_interface'. - (FT_Open_Flags) [FT_CONFIG_OPTION_INCREMENTAL]: New enum - `ft_open_incremental'. - - * include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H. - (FT_Data): New structure to represent binary data. - - * src/base/ftobjs.c (open_face) [FT_CONFIG_OPTION_INCREMENTAL]: - Add parameter for incremental loading. - (FT_Open_Face) [FT_CONFIG_OPTION_INCREMENTAL]: Use incremental - interface. - - * src/truetype/ttgload.c (load_truetype_glyph) - [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system - for the TrueType driver. - (compute_glyph_metrics): Return FT_Error. - [FT_CONFIG_OPTION_INCREMENTAL]: Check for overriding metrics. - (TT_Load_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Don't look for - the glyph table while handling an incremental font. - Get glyph offset. - - * src/truetype/ttobjs.c (TT_Face_Init) - [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading - system for the TrueType driver. - - * src/cid/cidgload.c (cid_load_glyph) - [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system - for the CID driver. - - * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]: - Changes to support incremental Type 42 fonts: Assume a font has - glyphs if it has an incremental interface object. - - * src/type1/t1gload.c (T1_Parse_Glyph): Renamed to... - (T1_Parse_Glyph_And_Get_Char_String): This. - [FT_CONFIG_OPTION_INCREMENTAL]: Added support for incrementally - loaded Type 1 faces. - (T1_Parse_Glyph): New function. - (T1_Load_Glyph): Updated. - -2002-07-17 David Turner <david@freetype.org> - - Cleaning up the cache sub-system code; linear hashing is now the - default. - - * include/freetype/cache/ftccache.h, src/cache/ftccache.i, - src/cache/ftccache.c [!FTC_CACHE_USE_LINEAR_HASHING]: Removed. - (FTC_CACHE_USE_LINEAR_HASHING): Removed also. - - FT_CONFIG_OPTION_USE_CMAPS is now the default. - - * include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove - `get_char_index' and `get_next_char'. - - * include/freetype/config/ftoption.h, - include/freetype/internal/tttypes.h, src/base/ftobjs.c, - src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c, - src/pfr/pfrdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c, - src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c, - src/type42/t42objs.c, src/winfonts/winfnt.c - [!FT_CONFIG_OPTION_USE_CMAPS]: Removed. The new cmap code is now - the default. - - * src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext): - Removed. - * src/type42/t42objs.h: Updated. - - * src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char): - Removed. - (t1cid_driver_class): Updated. - * src/truetype/ttdriver.c (tt_driver_class): Updated. - * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Removed - (t1_driver_class): Updated. - * src/type42/t42drivr.c (t42_driver_class): Updated. - - * src/base/ftobjs.c (open_face): Select Unicode cmap by default. - - * src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that - prevented OpenType fonts to be recognized by FreeType. - -2002-07-11 David Turner <david@freetype.org> - - Changing the SFNT loader to check for SFNT-based font files - differently. We now ignore the range `helper' fields and check the - `head' table's magic number instead. - - * include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset' - field. - - * src/sfnt/ttload.c (sfnt_dir_check): New function. - (TT_Load_SFNT_HeaderRec): Renamed to... - (TT_Load_SFNT_Header): This. - Implement new functionality. - * src/sfnt/ttload.h: Updated. - * src/sfnt/sfdriver.c (sfnt_interface): Updated. - - * src/base/ftobject.c, src/base/fthash.c: Updated object sub-system - and dynamic hash table implementation (still experimental, don't - use). - * include/freetype/internal/fthash.h: Updated. - * include/freetype/internal/ftobjs.h (FT_LibraryRec): New member - `meta_class'. - - Fixing a bug in the Type 1 loader that prevented valid font bounding - boxes to be loaded from multiple master fonts. - - * include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field. - - * include/freetype/internal/psaux.h (T1_FieldType): Add - `T1_FIELD_TYPE_BBOX'. - (T1_FieldLocation): Add `T1_FIELD_LOCATION_BBOX'. - (T1_FIELD_BBOX): New macro. - - * src/psaux/psobjs.c (PS_Parser_LoadField): Handle T1_FIELD_TYPE_BBOX. - * src/type1/t1load.c (t1_allocate_blend): Create blend->bboxes. - (T1_Done_Blend): Free blend->bboxes. - (t1_load_keyword): Handle T1_FIELD_LOCATION_BBOX. - (parse_font_bbox): Commented out. - (t1_keywords): Comment out `parse_font_bbox'. - * src/type1/t1tokens.h: Define `FontBBox' field. - -2002-07-10 David Turner <david@freetype.org> - - * src/cff/cffobjs.c: Small fix to select the Unicode charmap by - default when needed. - Small fix to allow OpenType fonts to support Adobe charmaps when - needed. - - * src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support - charmaps for CFF fonts. - - * src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated. - - * include/freetype/internal/cfftypes.h (CFF_EncodingRec): Use - fixed-length arrays for `sids' and `codes'. Add `count' member. - (CFF_FontRec): Add `psnames' member. - - * src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffload.h, - src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c, - src/cffparse.h, src/cff/cffgload.c, src/cff/cffgload.h: Adding - support for CFF charmaps, reformatting the sources, and removing - some bugs in the Encoding and Charset loaders. - Many fonts renamed to use lowercase only: - - CFF_Builder_Init -> cff_builder_init - CFF_Builder_Done -> cff_builder_done - CFF_Init_Decoder -> cff_decoder_init - CFF_Parse_CharStrings -> cff_decoder_parse_charstrings - CFF_Load_Glyph -> cff_slot_load - CFF_Init_Decoder -> cff_decoder_init - CFF_Prepare_Decoder -> cff_decoder_prepare - CFF_Get_Standard_Encoding -> cff_get_standard_encoding - CFF_Access_Element -> cff_index_access_element - CFF_Forget_Element -> cff_index_forget_element - CFF_Get_Name -> cff_index_get_name - CFF_Get_String -> cff_index_get_sid_string - CFF_Get_FD -> cff_fd_select_get - CFF_Done_Charset -> cff_charset_done - CFF_Load_Charset -> cff_charset_load - CFF_Done_Encoding -> cff_encoding_done - CFF_Load_Encoding -> cff_encoding_load - CFF_Done_SubFont -> cff_subfont_done - CFF_Load_Font -> cff_font_load - CFF_Done_Font -> cff_font_done - CFF_Size_Get_Globals_Funcs -> cff_size_get_globals_funcs - CFF_Size_Done -> cff_size_done - CFF_Size_Init -> cff_size_init - CFF_Size_Reset -> cff_size_reset - CFF_GlyphSlot_Done -> cff_slot_done - CFF_GlyphSlot_Init -> cff_slot_init - CFF_StrCopy -> cff_strcpy - CFF_Face_Init -> cff_face_init - CFF_Face_Done -> cff_face_done - CFF_Driver_Init -> cff_driver_init - CFF_Driver_Done -> cff_driver_done - CFF_Parser_Init -> cff_parser_init - CFF_Parser_Run -> cff_parser_run - - add_point -> cff_builder_add_point - add_point1 -> cff_builder_add_point1 - add_contour -> cff_builder_add_contour - close_contour -> cff_builder_close_contour - cff_explicit_index -> cff_index_get_pointers - -2002-07-09 Owen Taylor <owen@redhat.com> - - * src/pshinter/pshglob.c (psh_globals_new): Fixed a bug that - prevented the hinter from using correct standard width and height - values, resulting in hinting bugs with certain fonts (e.g. Utopia). - -2002-07-07 David Turner <david@freetype.org> - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Added code to return - successfully when the function is called with a bitmap glyph (the - previous code simply returned with an error). - - * docs/DEBUG.TXT: Adding debugging support documentation. - - * src/base/ftdebug.c (ft_debug_init), builds/win32/ftdebug.c - (ft_debug_init), builds/amiga/src/ftdebug.c (ft_debug_init): Changed - the syntax of the FT2_DEBUG environment variable used to control - debugging output (i.e. logging and error messages). It must now - look like: - - any:6 memory:4 io:3 or - any:6,memory:4,io:3 or - any:6;memory:4;io:3 - -2002-07-07 Owen Taylor <owen@redhat.com> - - * src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for - blue fuzz. - * src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field. - * src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'. - - Adding support for hinter-specific bit flags, and the new - FT_Set_Hint_Flags high-level API. - - * include/freetype/freetype.h (FT_Set_Hint_Flags): New function. - (FT_HINT_NO_INTEGER_STEM, FT_HINT_NO_HSTEM_ALIGN, - FT_HINT_NO_VSTEM_ALIGN): New macros. - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add - `hint_flags' member. - - * src/base/ftobjs.c (FT_Set_Hint_Flags): New function. - - * include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags' - member. - - * include/freetype/internal/pshints.h (T1_Hints_ApplyFunc, - T2_Hints_ApplyFunc): Add parameter to pass hint flags. - - * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings, - T1_Decoder_Init): Use decoder->hint_flags. - * src/cff/cffgload.h (CFF_Builder): Add `hint_flags' field. - * src/cff/cffgload.c (CFF_Builder_Init): Set builder->hint_flags. - (CFF_Parse_CharStrings): Updated. - * src/pshinter/pshalgo1.c (ps1_hints_apply): Add parameter to handle - hint flags (unused). - * src/pshinter/pshalgo1.h: Updated. - * src/pshinter/pshalgo2.c (ps2_hints_apply): Add parameter to handle - hint flags (unused). - * src/pshinter/pshalgo2.h: Updated. - * src/pshinter/pshalgo3.c (ps3_hints_apply): Add parameter to handle - hint flags. - * src/pshinter/pshalgo3.h: Updated. - -2002-07-04 David Turner <david@freetype.org> - - * src/pfr/pfrobjs.c (pfr_slot_load): Fixed a small bug that returned - incorrect advances when the outline resolution was different from - the metrics resolution. - - * src/autohint/ahhint.c: Removing compiler warnings. - - * src/autohint/ahglyph.c: s/FT_MEM_SET/FT_ZERO/ where appropriate. - (ah_outline_link_segments): Slight improvements to the serif - detection code. More work is needed though. - -2002-07-03 David Turner <david@freetype.org> - - Small improvements to the automatic hinter. Uneven stem-widths have - now disappeared and everything looks much better, even if there are - still issues with serifed fonts. - - * src/autohint/ahtypes.h (AH_Globals): Added `stds' array. - * src/autohint/ahhint.c (OPTIM_STEM_SNAP): New #define. - (ah_snap_width): Commented out. - (ah_align_linked_edge): Renamed to... - (ah_compute_stem_width): This. - Don't allow uneven stem-widths. - (ah_align_linked_edge): New function. - (ah_align_serifed_edge): Don't strengthen serifs. - (ah_hint_edges_3, ah_hinter_scale_globals): Updated. - -2002-07-03 Owen Taylor <owen@redhat.com> - - Adding new algorithm based on Owen Taylor's recent work. - - * src/pshinter/pshalgo3.c, src/pshinter/pshalgo3.h: New files. - * src/pshinter/pshalgo.h: Updated. - Use pshalgo3 by default. - * src/pshinter/pshinter.c: Include pshalgo3.c. - - * src/pshinter/Jamfile, src/pshinter/rules.mk: Updated. - -2002-07-01 Owen Taylor <owen@redhat.com> - - * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points): Fix a bug - where, if a glyph has more than hint mask, the second mask gets - applied to points that should have been covered by the first mask. - -2002-07-01 Keith Packard <keithp@keithp.com> - - * src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next): - Fixing the cmap 8 and 12 parsing routines. - -2002-07-01 David Turner <david@freetype.org> - - * src/base/ftsynth.c: Include FT_TRIGONOMETRY_H. - (FT_Outline_Embolden): Renamed to... - (FT_GlyphSlot_Embolden): This. - Updated to new trigonometric functions. - (FT_Outline_Oblique): Renamed to... - (FT_GlyphSlot_Oblique): This. - (ft_norm): Removed. - * include/freetype/ftsynth.h: Updated. - -2002-06-26 David Turner <david@freetype.org> - - * include/freetype/internal/ftobject.h: Updating the object - sub-system definitions (still experimental). - - * src/base/fthash.c (ft_hash_remove): Fixing a small reallocation - bug. - - * src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New - functions. - * include/freetype/fttrigon.h: Updated. - - - Adding path stroker component (work in progress). - - * include/freetype/ftstroker.h, src/base/ftstroker.c: New files. - * src/base/Jamfile: Updated. - - * include/freetype/config/ftheader.h (FT_STROKER_H): New macro. - - - * src/truetype/ttgload.c (TT_Load_Composite_Glyph), - src/base/ftoutln.c (FT_Vector_Transform): Fixed Werner's latest fix. - FT_Vector_Transform wasn't buggy, the TrueType composite loader was. - -2002-06-24 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. - -2002-06-21 David Turner <david@freetype.org> - - - * Version 2.1.2 released. - ========================= - - -2002-06-21 Roberto Alameda <ojancano@geekmail.de>. - - * include/freetype/internal/t42types.h (T42_Font): Removed since - it is already in t42objs.h. - (T42_Face): Use T1_FontRec. - - * src/base/fttype1.c (FT_Get_PS_Font_Info): Updated. - (FT_Has_PS_Glyph_Names): Check for type42 driver name also. - * src/type42/t42objs.h: Include FT_INTERNAL_TYPE42_TYPES_H. - (T42_Face): Removed since it is already in t42types.h. - -2002-06-21 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite - glyphs. - -2002-06-21 Sven Neumann <sven@convergence.de> - - * src/pfr/pfrtypes.h (PFR_KernPair): New structure. - (PFR_PhyFont): Use it. - (PFR_KernFlags): New enumeration. - * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): New - function. - (pfr_phy_font_extra_items): Use it. - (pfr_phy_font_done): Updated. - * src/pfr/pfrobjs.c (pfr_face_init): Set kerning flag conditionally. - (pfr_face_get_kerning): New function. - * src/pfr/pfrobjs.h: Updated. - * src/pfr/pfrdrivr.c (pfr_driver_class): Updated. - -2002-06-21 David Turner <david@freetype.org> - - * README, docs/CHANGES: Preparing the 2.1.2 release. - -2002-06-19 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H. - (t1_face_check_cast): Removed. - (FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers - also. - -2002-06-19 Sebastien BARRE <http://barre.nom.fr/contact.html#email> - - * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning. - -2002-06-19 Werner Lemberg <wl@gnu.org> - - * src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo - (xy <-> yx). - * src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with - `||' to make code easier to read. - -2002-06-18 Roberto Alameda <ojancano@geekmail.de>. - - * src/type42/t42objs.c (t42_check_size_change): Removed. - (T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size - instead. - (T42_GlyphSlot_Load): Remove call to t42_check_size_change. - -2002-06-18 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/psaux/t1cmap.c (t1_cmap_custom_char_index, - t1_cmap_custom_char_next): Fix index computation -- indices start - with 0 and not with cmap->first. - - Provide default charmaps. - - * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c - (PCF_Face_Init), src/pfr/pfrobjs.c (pfr_face_init), - src/type1/t1objs (T1_Face_Init), src/winfonts/winfnt.c - (FNT_Face_Init): Implement it. - -2002-06-17 Sven Neumann <sven@gimp.org> - - * src/pfr/pfrobjs.c (pfr_face_init): Fix typo. - -2002-06-16 Leonard Rosenthol <leonardr@lazerware.com> - - Updated Win32/VC++ projects to include the new PFR driver. - - * builds/win32/visualc/freetype.dsp: Updated. - -2002-06-16 Anthony Fok <fok@debian.org> - - Install freetype2.m4. - - * builds/unix/install.mk (install, uninstall): Handle it. - -2002-06-16 Detlef Würkner <TetiSoft@apg.lahn.de> - - Same fix for PFR driver. - - * src/pfr/pfrcmap.c (pfr_cmap_char_index, pfr_cmap_char_next): - Increase return value by 1. - * src/pfr/pfrobjs.c (pfr_slot_load): Decrease index by 1. - -2002-06-15 Detlef Würkner <TetiSoft@apg.lahn.de> - - Fix glyph indices to make index zero always the undefined glyph. - - * src/bdf/bdfdrivr.c (bdf_cmap_init): Don't decrease - cmap->num_encodings. - (bdf_cmap_char_index, bdf_cmap_char_next, BDF_Get_Char_Index): - Increase result by 1 for normal cases. - (BDF_Glyph_Load): Decrease index by 1. - - * src/pcf/pcfdriver.c (pcf_cmap_char_index, pcf_cmap_char_next, - PCF_Char_Get_Index): Increase result by 1 for normal cases. - (PCF_Glyph_Load): Decrease index by 1. - * src/pcf/pcfread.c (pcf_get_encodings): Don't decrease j for - allocating `encoding'. - - * src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix - bounding tests. - -2002-06-14 Detlef Würkner <TetiSoft@apg.lahn.de> - - Add new cmap support to BDF driver. - - * src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]: - New structure. - (bdf_cmap_init, bdf_cmap_done, bdf_cmap_char_index, - bdf_cmap_char_next) [FT_CONFIG_OPTION_USE_CMAPS]: New functions. - (BDF_Get_Char_Index) [!FT_CONFIG_OPTION_USE_CMAPS]: Use only - conditionally. - (BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords. - Implement new cmap handling. - (bdf_driver_class): Updated. - -2002-06-14 Werner Lemberg <wl@gnu.org> - - * Makefile, configure, */*.mk, builds/unix/unix-def.in, - docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/. - -2002-06-12 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdflib.c: s/FT_Short/short/ for consistency. - -2002-06-11 David Turner <david@freetype.org> - - * builds/win32/ftdebug.c: Added a missing #endif. - - * src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings. - - Removed the bug in Type 42 driver that prevented un-hinted outlines - to be loaded. - - * src/type42/t42objs.c (T42_Face_Init): Call FT_Done_Size. - (T42_Size_Init): Call FT_Activate_Size. - (t42_check_size_change): New function. - (T42_Size_SetChars, T42_Size_SetPixels): Use it. - (ft_glyphslot_clear): Replace FT_MEM_SET with FT_ZERO. - (T42_GlyphSlot_Load): Use t42_check_size_change. - Initialize more fields of `glyph'. - - * builds/win32/visualc/freetype.dsp: Updated. - -2002-06-09 David Turner <david@freetype.org> - - - * Version 2.1.1 released. - ========================= - - -2002-06-08 Juliusz Chroboczek <jch@pps.jussieu.fr> - - * include/freetype/internal/ftobjs.h, src/autohint/ahglyph.c, - src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/smooth/ftgrays.c: Don't - use `setjmp', `longjmp', and `jmp_buf' but `ft_setjmp', `ft_longjmp', - and `ft_jmp_buf'. - Removed direct references to <stdio.h> and <setjmp.h> when - appropriate, to eventually replace them with a - FT_CONFIG_STANDARD_LIBRARY_H. Useful for the XFree86 Font Server - backend based on FT2. - - * src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value. - -2002-06-08 David Turner <david@freetype.org> - - * src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused - the function to return invalid values. - - * src/cache/ftccache.i: Removing a typo that prevented - the source's compilation. - - * src/cache/ftccache.c (ftc_node_hash_unlink): Fixed a - bug that caused nasty memory overwrites. The hash table's - buckets array wasn't correctly resized when shrunk. - -2002-06-08 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/smakefile, builds/amiga/makefile: Updated. - -2002-06-08 Werner Lemberg <wl@gnu.org> - - * src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link) - [FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code. - Fix debugging messages. - * src/cache/ftccache.i (GEN_CACHE_LOOKUP): Move declaration of - `family' and `hash' up to make it compilable with g++. - - * src/type42/t42error.h: New file. - * src/type42/t42drivr.c, src/type42/t42objs.c, - src/type42/t42parse.c: Use t42 error codes. - * src/type42/rules.mk: Updated. - - * src/base/ftnames.c: Include FT_INTERNAL_STREAM_H. - -2002-06-08 David Turner <david@freetype.org> - - * src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE, - GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]: - New macros. - (ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to - ftc_cache_lookup. - (FTC_CMapCache_Lookup): Updated. - - Adding various experimental optimizations to the cache manager. - - * include/freetype/cache/ftccache.h (FTC_CACHE_USE_INLINE, - FTC_CACHE_USE_LINEAR_HASHING): New options. - (FTC_CacheRec) [FTC_CACHE_USE_LINEAR_HASHING]: New elements `p', - `mask', and `slack'. - - * src/cache/ftccache.c (FTC_HASH_MAX_LOAD, FTC_HASH_MIN_LOAD, - FTC_HASH_SUB_LOAD) [FTC_CACHE_USE_LINEAR_HASHING, - FTC_HASH_INITIAL_SIZE]: New macros. - (ftc_node_mru_link, ftc_node_mru_up): Optimized. - (ftc_node_hash_unlink, ftc_node_hash_link) - [FTC_CACHE_USE_LINEAR_HASHING]: New variants. - (FTC_PRIMES_MIN, FTC_PRIMES_MAX, ftc_primes, ftc_prime_closest, - FTC_CACHE_RESIZE_TEST, ftc_cache_resize) - [!FTC_CACHE_USE_LINEAR_HASHING]: Define it conditionally. - (ftc_cache_init, ftc_cache_clear) [FTC_CACHE_USE_LINEAR_HASHING]: - Updated. - (ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it. - - * src/cache/ftccache.i: New file. - - * src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE, - GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]: - New macros. - (ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to - ftc_cache_lookup. - (FTC_SBitCache_Lookup): Updated. - - * src/type42/t42parse.c: Removing duplicate function. - -2002-06-07 Graham Asher <graham.asher@btinternet.com> - - * src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition - from FT_EXPORT_DEF to FT_BASE_DEF. - -2002-06-07 David Turner <david@freetype.org> - - Fixed the bug that prevented the correct display of fonts with - `ftview'. - - * src/type42/t42drivr.c: Split into... - * src/type42/t42drivr.h, src/type42/t42parse.c, - src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c, - src/type42/type42.c: New files. - - (t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use - `face->type1'. - - (Get_Interface): Renamed to... - (T42_Get_Interface): This. - Updated. - (T42_Open_Face, T42_Face_Done): Updated. - (T42_Face_Init): Add new cmap support. - Updated. - (T42_Driver_Init, T42_Driver_Done, T42_Size_Init, T42_Size_Done, - T42_GlyphSlot_Init, T42_GlyphSlot_Done): Updated. - (Get_Char_Index, Get_Next_Char): Renamed to... - (T42_CMap_CharIndex, T42_CMap_CharNext): This. - Updated. - (T42_Char_Size, T42_Pixel_Size): Renamed to... - (T42_Size_SetChars, T42_Size_SetPixels): This. - (T42_Load_Glyph): Renamed to... - (T42_GlyphSlot_Load): This. - - (t42_init_loader, t42_done_loader): Renamed to... - (t42_loader_init, t42_loader_done): This. - (T42_New_Parser, T42_Finalize_Parser): Renamed to... - (t42_parser_init, t42_parser_done): This. - (parse_dict): Renamed to... - (t42_parse_dict): This. - (is_alpha, is_space, hexval): Renamed to... - (t42_is_alpha, t42_is_space, t42_hexval): This. - (parse_font_name, parse_font_bbox, parse_font_matrix, - parse_encoding, parse_sfnts, parse_charstrings, parse_dict): - Renamed to... - (t42_parse_font_name, t42_parse_font_bbox, t42_parse_font_matrix, - t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings, - t42_parse_dict): This. - Updated. - - (t42_keywords): Updated. - - * src/type42/Jamfile, src/type42/descrip.mms: Updated. - -2002-06-03 Werner Lemberg <wl@gnu.org> - - Add 8bpp support to BDF driver. - - * src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp. - * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto. - * src/bdf/README: Updated. - -2002-06-02 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array. - -2002-05-29 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically. - (_bdf_parse_glyphs): Use correct size for allocating - `font->unencoded'. - (bdf_load_font): Free array conditionally. - Return proper error code in case of failure. - * src/bdf/bdfdrivr.c (BDF_Face_Init): Make it more robust against - unusual fonts. - -2002-05-29 Werner Lemberg <wl@gnu.org> - - * src/bdf/descrip.mms, src/type42/descrip.mms: New files. - * descrip.mms (all): Updated. - - * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented - compilation. - * src/pshglob.c (psh_blues_scale_zones): Fix compiler warning. - -2002-05-28 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/makefile, builds/amiga/smakefile, - amiga/include/freetype/config/ftmodule.h: Updated to include - support for BDF and Type42 drivers. - - * docs/modules.txt: Updated. - -2005-05-28 David Turner <david@freetype.org> - - * docs/CHANGES: Updating file for next release (2.1.1). - - * src/bdf/bdflib.c: Removing compiler warnings. - - * include/freetype/ftxf86.h, src/base/ftxf86.c: New files. - They provide a new API (FT_Get_X11_Font_Format) to retrieve an - X11-compatible string describing the font format of a given face. - This was put in a new optional base source file, corresponding to a - new public header (named FT_XFREE86_H since this function should - only be used within the XFree86 font server IMO). - - * include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not - documented yet). - - * src/base/fttype1.c: New file, providing two new API functions - (FT_Get_PS_Font_Info and FT_Has_PS_Glyph_Names). - * include/freetype/t1tables.h: Updated. - - * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: - Updating build control files for the new files `ftxf86.c' and - `fttype1.c' in src/base. - - * src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that - prevented family blue zones substitution from happening correctly. - - * include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding - documentation comment. - -2002-05-28 Werner Lemberg <wl@gnu.org> - - * src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT - but FT_STREAM_READ. - Declare `stream' variable. - - * src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math - with calls to `FT_MulDiv'. - -2002-05-28 David Turner <david@freetype.org> - - Fixing the SFNT name table loader to support various buggy fonts. - It now ignores empty name entries, entries with invalid pointer - Offsets and certain fonts containing tables with broken - `storageOffset' fields. - - Name strings are now loaded on demand, which reduces the memory - requirements for a given FT_Face tremendously (for example, the name - table of Arial.ttf is about 10Kb and contains 70 names). - - This is a temporary fix. The whole name table loader and interface - will be rewritten in a much more cleanly way shortly, once CSEH have - been introduced in the sources. - - * include/freetype/internal/tttypes.h (TT_NameEntryRec): Change - type of `stringOffset' to FT_ULong. - (TT_NameTableRec): Change type of `numNameRecords' and - `storageOffset' to FT_UInt. - Replace `storage' with `stream'. - * src/base/ftnames.c (FT_Get_Sfnt_Name): Load name on demand. - * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto. - Make code more robust. - * src/sfnt/sfobjs.c (TT_NameEntry_ConvertFunc): New typedef. - (tt_face_get_name): Use it. - Make code more robust. - * src/sfnt/ttload.c (TT_Load_Names): Use `static' for arrays. - Handle invalid `storageOffset' data better. - Set length fields to zero for invalid or ignored data. - Remove code within FT_DEBUG_LEVEL_TRACE. - (TT_Free_Names): Updated. - -2002-05-24 Tim Mooney <enchanter@users.sourceforge.net> - - * builds/unix/ft-munmap.m4: New file, extracted FT_MUNMAP_DECL and - FT_MUNMAP_PARAM from aclocal.m4 into here, so aclocal.m4 can be - rebuilt from sources. Set macro serial to 1, and use third argument - to AC_DEFINE for our two custom symbols, so ftconfig.in could one day - be rebuilt with autoheader (not recommended now, ftconfig.in is a - custom source file) - -2002-05-22 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftheader.h (FT_BEZIER_H): Removed. - (FT_BDF_H): New macro for accessing `ftbdf.h'. - - * src/type42/t42drivr.c (hexval): Fix typo. - -2002-05-21 Martin Muskens <mmuskens@aurelon.com> - - * src/psaux/psobjs.c (T1Radix): New function. - (t1_toint): Use it to handle numbers in radix format. - - * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy - for undocumented, obsolete opcode 15. - -2002-05-21 David Turner <david@freetype.org> - - * src/bdf/bdflib.c: Removed compiler warning, and changed all tables - to the `static const' storage specifier (instead of simply - `static'). - - * src/type42/t42drivr.c (hexval): Use more efficient code. - Removing compiler warnings. - * src/bdf/bdfdrivr.c: Removing compiler warnings. - - * include/freetype/internal/ftbdf.h, src/base/ftbdf.c, - src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk - (FT_Get_BDF_Charset_ID): New API to retrieve BDF-specific strings - from a face. This is much cleaner than accessing the internal types - `BDF_Public_Face' defined in FT_INTERNAL_BDF_TYPES_H. - -2002-05-21 Werner Lemberg <wl@gnu.org> - - * src/bdf/README: Mention Microsoft's SBIT tool. - - * src/cff/cffdrivr.c, src/cid/cidriver.c, src/pcf/pcfdriver.c, - src/truetype/ttdriver.c, src/type1/t1driver.c, - src/winfonts/winfnt.c, src/type42/t42drivr.c, src/bdf/bdfdrivr.c - [FT_CONFIG_OPTION_DYNAMIC_DRIVERS]: Completely removed. It has - been never used. - -2002-05-21 Roberto Alameda <ojancano@geekmail.de>. - - * src/type42/t42drivr.c: s/T42_ENCODING_TYPE_/T1_ENCODING_TYPE_/. - (parse_font_matrix): Remove unnecessary code. - (parse_sfnts): Initialize some variables. - (t42_driver_class) [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Use - ft_module_driver_has_hinter conditionally. - Moved some type 42 specific structure definitions to... - * include/freetype/internal/t42types.h: New file. - * include/freetype/internal/internal.h (FT_INTERNAL_T42_TYPES_H): - New macro. - -2002-05-20 Werner Lemberg <wl@gnu.org> - - * include/freetype/cache/ftcsbits.h (FTC_SBit): Added a new field - `num_grays' for specifying the number of used gray levels. - * src/cache/ftcsbits.c (ftc_sbit_node_load): Initialize it. - -2002-05-19 Werner Lemberg <wl@gnu.org> - - Adding a driver for BDF fonts written by Francesco Zappa Nardelli - <Francesco.Zappa.Nardelli@ens.fr>. Heavily modified by me to - better adapt it to FreeType, removing unneeded stuff. Additionally, - it now supports Mark Leisher's BDF extension for anti-aliased - bitmap glyphs with 2 and 4 bpp. - - * src/bdf/*: New driver. - * include/freetype/internal/bdftypes.h: New file. - * include/freetype/internal/fttrace.h: Added BDF driver components. - * include/freetype/fterrdef.h: Added error codes for BDF driver. - * include/freetype/config/ftmodule.h, src/Jamfile: Updated. - * include/freetype/internal/internal.h (FT_INTERNAL_BDF_TYPES_H): - New macro. - - * include/freetype/config/ftstdlib.h (ft_sprintf): New alias for - sprintf. - -2002-05-18 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/fttrace.h: Added Type 42 driver - component. - * src/type42/t42drivr.c: Use it. - - * include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H): - New macro. - -2002-05-17 Werner Lemberg <wl@gnu.org> - - * src/type42/Jamfile: New file. - -2002-05-14 Werner Lemberg <wl@gnu.org> - - Adding a driver for Type42 fonts written by Roberto Alameda - <ojancano@geekmail.de>. - - * src/type42/*: New driver. - * include/freetype/config/ftmodule.h, src/Jamfile: Updated. - * include/freetype/config/ftstdlib.h (ft_xdigit, ft_memcmp, - ft_atoi): New aliases for xdigit, memcmp, and atoi, respectively. - -2002-05-12 Owen Taylor <otaylor@redhat.com> - - * src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables - with a zero length value. - -2002-05-12 Michael Pfeiffer <michael.pfeiffer@utanet.at> - - * builds/beos/beos.mk: Include `link-std.mk'. - -2002-05-12 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.h (T1_Loader): Renamed to... - (T1_LoaderRec): This. - (T1_Loader): Now pointer to T1_LoaderRec. - * src/type1/t1load.c: Updated. - - * include/freetype/internal/t1types.h, src/type1/t1load.c, - src/type1/t1objs.c: - s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/. - -2002-05-06 Werner Lemberg <wl@gnu.org> - - * README: Add a note regarding libttf vs. libfreetype. - -2002-05-05 Werner Lemberg <wl@gnu.org> - - FreeType 2 can now be built in an external directory with the - configure script also. - - * builds/freetype.mk (INCLUDES): Add `OBJ_DIR'. - - * builds/unix/detect.mk (have_mk): New variable to test for - external build. - (unix-def.mk): Defined according to value of `have_mk'. - * builds/unix/unix.mk (have_mk): New variable to test for - external build. - Select include paths for unix-def.mk and unix-cc.mk according - to value of `have_mk'. - * builds/unix/unix-def.in (OBJ_BUILD): New variable. - (DISTCLEAN): Use it. - * builds/unix/unix-cc.in (LIBTOOL): Define default value only - if not yet defined. - * builds/unix/install.mk (install): Use `OBJ_BUILD' for installing - freetype-config. - - * configure: Don't depend on bash features. - (ft2_dir, abs_curr_dir, abs_ft2_dir): New variables (code - partially taken from Autoconf). - Build a dummy Makefile if not building in source tree. - - * docs/INSTALL: Document it. - -2002-05-04 David Turner <david@freetype.org> - - * src/truetype/ttgload.c (TT_Load_Glyph): Finally fixing the last - bug that prevented FreeType 2.x and FreeType 1.x to produce - bit-by-bit identical monochrome glyph bitmaps with native TrueType - hinting. The culprit was a single-bit flag that wasn't set - correctly by the TrueType glyph loader. - - * src/otlayout/otlayout.h, src/otlayout/otlbase.c, - src/otlayout/otlbase.h, src/otlayout/otlconf.h, - src/otlayout/otlgdef.c, src/otlayout/otlgdef.h, - src/otlayout/otlgpos.c, src/otlayout/otlgpos.h, - src/otlayout/otlgsub.c, src/otlayout/otlgsub.h, - src/otlayout/otljstf.c, src/otlayout/otljstf.h, - src/otlayout/otltable.c, src/otlayout/otltable.h, - src/otlayout/otltags.h: New OpenType Layout source files. The - module is still incomplete. - -2002-05-02 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo - (0xFFFU -> 0xFFFFU). - -2002-05-01 Werner Lemberg <wl@gnu.org> - - * docs/INSTALL: Fix URL of makepp. - -2002-05-01 David Turner <david@freetype.org> - - * src/sfnt/sfobjs.c (tt_face_get_name): Fixing a bug that caused - FreeType to crash when certain broken fonts (e.g. `hya6gb.ttf') - were opened. - - * src/sfnt/ttload.c (TT_Load_Names): Applied a small work-around to - manage fonts containing a broken name table (e.g. `hya6gb.ttf'). - - * src/sfnt/ttcmap0.c (tt_cmap4_validate): Fixed over-restrictive - validation test. The charmap validator now accepts overlapping - ranges in format 4 charmaps. - - * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary - search algorithm. Certain fonts contain more than 170 distinct - segments! - - * include/freetype/config/ftstdlib.h: Adding an alias for the `exit' - function. This will be used in the near future to panic in case of - unexpected exception (which shouldn't happen in theory). - - * include/freetype/internal/fthash.h, src/base/fthash.c: New files. - This is generic implementation of dynamic hash tables using a linear - algorithm (to get rid of `stalls' during resizes). In the future - this will be used in at least three parts of the library: the cache - sub-system, the object sub-system, and the memory debugger. - - * src/base/Jamfile: Updated. - - * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H, - FT_INTERNAL_OBJECT_H): New macros. - - * include/freetype/internal/ftcore.h: New file to group all new - definitions related to exception handling and memory management. It - is very likely that this file will disappear or be renamed in the - future. - - * include/freetype/internal/ftobject.h, include/freetype/ftsysmem.h: - Adding comments to better explain the object sub-system as well as - the new memory manager interface. - -2002-04-30 Wenlin Institute (Tom Bishop) <wenlin@wenlin.com> - - * src/base/ftmac.c (p2c_str): Removed. - (file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for - OS X. - (is_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X. - Handle `nameLen' <= 6 also. - (parse_fond): Remove unused variable `name_table'. - Use functionality of old p2c_str directly. - Add safety checks. - (read_lwfn): Initialize `size_p'. - Check for size_p == NULL. - (new_memory_stream, open_face_from_buffer): Updated to FreeType 2.1. - (FT_New_Face_From_LWFN): Remove unused variable `memory'. - Remove some dead code. - (FT_New_Face_From_SFNT): Remove unused variable `stream'. - (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Define only for - OS X. - (FT_New_Face_From_FOND): Remove unused variable `error'. - (ResourceForkSize): New function. - (FT_New_Face): Use it. - Handle empty resource forks. - Conditionalize some code for OS X. - Add code to call normal loader as a fallback. - -2002-04-30 Werner Lemberg <wl@gnu.org> - - `interface' is reserved on the Mac. - - * include/freetype/ftoutln.h, include/freetype/internal/sfnt.h, - src/base/ftoutln.c: s/interface/func_interface/. - * src/base/ftbbox.c (FT_Outline_Get_BBox): - s/interface/bbox_interface/. - * src/cff/cffdrivr.c: s/interface/module_interface/. - * src/cff/cffload.c, src/cff/cffload.h: - s/interface/psnames_interface/. - * src/cid/cidriver.c: s/interface/cid_interface/. - * src/sfnt/sfdriver.c: s/interface/module_interface/. - * src/smooth/ftgrays.c: s/interface/func_interface/. - * src/truetype/ttdriver.c: s/interface/tt_interface/. - * src/type1/t1driver.c: s/interface/t1_interface/. - - Some more variable renames to avoid troubles on the Mac. - - * src/raster/ftraster.c: - s/Unknown|Ascending|Descending|Flat/\1_State/. - * src/smooth/ftgrays.c: s/TScan/TCoord/. - - Other changes for the Mac. - - * include/freetype/config/ftconfig.h: Define FT_MACINTOSH for - Mac platforms. - * src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/. - - * src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always - an even number. - -2002-04-29 Jouk Jansen <joukj@hrem.stm.tudelft.nl> - - * descrip.mms (all): Add pfr driver. - -2002-04-28 Werner Lemberg <wl@gnu.org> - - * src/pfr/pfrerror.h: New file. - * include/freetype/ftmoderr.h: Add PFR error codes. - * src/pfr/pfrgload.c: Include pfrerror.h. - Use PCF error codes. - (pfr_extra_item_load_stem_snaps): Fix debug message. - * src/pfr/pfrgload.c: Include pfrerror.h. - Use PCF error codes. - (pfr_extra_item_load_bitmap_info, pfr_glyph_load_simple, - pfr_glyph_load_compound): Fix debug message. - * src/pfr/pfrobjs.c: Include pfrerror.h. - Use PCF error codes. - (pfr_face_init): Return PFR_Err_Unknown_File_Format. - * src/pfr/rules.mk (PFR_DRV_H): Include pfrerror.h. - - * src/pcf/pcfdriver.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_CMAPS]: - `root' -> `face->root'. - * src/sfnt/ttcmap0.c (TT_Build_CMaps) [!FT_CONFIG_OPTION_USE_CMAPS]: - Removed. - * src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for - FT_CONFIG_OPTION_USE_CMAPS. - -2002-04-27 Werner Lemberg <wl@gnu.org> - - * src/cache/ftccache.c (ftc_cache_lookup), - src/cache/ftccmap.c (ftc_cmap_family_init), - src/cache/ftcmanag.c (ftc_family_table_alloc), - src/cache/ftcsbits.c (FTC_SBit_Cache_Lookup): Use FTC_Err_*. - src/cache/ftcimage.c (FTC_Image_Cache_Lookup): Use FTC_Err_*. - (FTC_ImageCache_Lookup): Fix handling of invalid arguments. - -2002-04-22 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.ac: Set `version_info' to 9:1:3 (FT2 - version 2.0.9 has 9:0:3). - * builds/unix/configure: Regenerated (using autoconf 2.53). - -2002-04-19 Werner Lemberg <wl@gnu.org> - - * src/pfr/pfrload.c (pfr_extra_items_parse): Fix debug message. - (pfr_phy_font_load): s/size/Size/ for local variable to avoid - compiler warning. - * src/pfr/pfrobjs.c (pfr_face_init): Fix debug message. - (pfr_slot_load): Remove redundant local variable. - -2002-04-19 David Turner <david@freetype.org> - - Adding a PFR font driver to the FreeType sources. Note that it - doesn't support embedded bitmaps or kerning tables yet. - - src/pfr/*: New files. - - * include/freetype/config/ftmodule.h, - include/freetype/internal/fttrace.h, src/Jamfile: Updated. - - * src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c - (T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback - function. - - * include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New - macros. - - * include/freetype/internal/ftstream.h (FT_NEXT_OFF3, FT_NEXT_UOFF3, - FT_NEXT_OFF3_LE, FT_NEXT_UOFF3_LE): New macros to parse in-memory - 24-bit integers. - -2002-04-18 David Turner <david@freetype.org> - - * src/base/ftobjs.c, builds/win32/ftdebug.c, - builds/amiga/src/base/ftdebug.c: Version 2.1.0 couldn't be linked - against applications in Win32 and Amiga builds due to changes to - `src/base/ftdebug.c' that were not properly propagated to - `builds/win32' and `builds/amiga'. This has been fixed. - - * include/freetype/internal/ftobject.h, - include/freetype/internal/ftexcept.h, include/freetype/ftsysmem.h, - include/freetype/ftsysio.h, src/base/ftsysmem.c, src/base/ftsysio.c: - New experimental files. - -2002-04-17 David Turner <david@freetype.org> - - - * Version 2.1.0 released. - ========================= - - -2002-04-17 Michael Jansson <mjan@em2-solutions.com> - - * src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug - that prevented the function to return the correct value. - -2002-04-16 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr> - - * src/pcf/pcfread.c (pcf_get_accel): Fix parsing of accelerator - tables. - -2002-04-15 David Turner <david@freetype.org> - - * docs/FTL.txt: Formatting. - - * include/freetype/config/ftoption.h: Reduce the size of the - render pool from 32kByte to 16kByte. - - * src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler - warning. - - * include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed. - - * docs/CHANGES: Preparing 2.1.0 release. - -2002-04-13 Werner LEMBERG <wl@gnu.org> - - * src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid - compiler warning. - -2002-04-12 David Turner <david@freetype.org> - - * README.UNX: Updated the Unix-specific quick-compilation guide to - warn about the GNU Make requirement at compile time. - - * include/freetype/config/ftstdlib.h, - include/freetype/config/ftconfig.h, - include/freetype/config/ftheader.h, - include/freetype/internal/ftmemory.h, - include/freetype/internal/ftobjs.h, - - src/autohint/ahoptim.c, - - src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c, - src/base/ftobjs.c, src/base/ftsystem.c, - - src/cache/ftcimage.c, src/cache/ftcsbits.c, - - src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffobjs.c, - - src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c, - - src/pcf/pcfdriver.c, src/pcf/pcfread.c, - - src/psaux/t1cmap.c, src/psaux/t1decode.c, - - src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c, - src/pshinter/pshrec.c, - - src/psnames/psmodule.c, - - src/raster/ftraster.c, - - src/sfnt/sfdriver.c, src/sfnt/ttload.c, - - src/smooth/ftgrays.c, - - src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c, - src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c, - - builds/unix/ftconfig.in, builds/vms/ftconfig.h, - - builds/amiga/src/base/ftdebug.c: - - Added the new configuration file `ftstdlib.h' used to define - aliases for all ISO C library functions used by the engine - (e.g. strlen, qsort, setjmp, etc.). - - This eases the porting of FreeType 2 to environments like - XFree86 modules/extensions. - - Also removed many #include <string.h>, #include <stdlib.h>, etc. - from the engine's sources where they are not needed. - - * src/sfnt/ttpost.c: Use macro name for psnames.h. - -2002-04-12 Vincent Caron <v.caron@zerodeux.net> - - * configure, builds/detect.mk: Updated the build system to print - a warning message in case GNU Make isn't used to build the library. - -2002-04-11 David Turner <david@freetype.org> - - * README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release. - - * docs/FTL.txt: Updated license text to provide a preferred - disclaimer and adjust copyright dates/extents. - - * include/freetype/cache/ftcglyph.h: Removing obsolete (and - confusing) comment. - - * Jamfile.in: New file. - -2002-04-11 Maxim Shemanarev <mcseemagg@yahoo.com> - - * src/smooth/ftgrays.c (gray_hline): Minor optimization. - -2002-04-02 Werner Lemberg <wl@gnu.org> - - Fixes from the stable branch: - - * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS): - Removed. - [FT_CONFIG_OPTION_OLD_CALCS]: Removed. - * include/freetype/internal/ftcalc.h, src/base/ftcalc.c - [FT_CONFIG_OPTION_OLD_CALCS]: Removed. - - * src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match - output of FreeType 1. - - * src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small - bug that created un-even stem widths when hinting Postscript fonts. - - * src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes. - -2002-04-01 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c: 16bit fixes. - (TT_Load_Simple_Glyph): Improve debug messages. - (load_truetype_glyph): Remove dead code. - * src/truetype/ttinterp.c: 16bit fixes. - * src/truetype/ttobjs.c: Ditto. - - * include/freetype/ftsnames.h, include/freetype/internal/sfnt.h, - src/cff/cffload.h, src/psaux/psobjs.h, src/truetype/ttinterp.[ch], - src/sfnt/ttpost.h: s/index/idx/. - -2002-03-31 Yao Zhang <yaoz@vidar.niaaa.nih.gov> - - * src/truetype/ttobjs.c (TT_Size_Init): Fix typo. - -2002-03-31 Werner Lemberg <wl@gnu.org> - - * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/. - * src/psaux/t1cmap.c: Ditto. - * src/sfnt/ttcmap0.c: Ditto. - - * include/freetype/internal/tttypes.h, - include/freetype/internal/sfnt.h (TT_Goto_Table_Func): Renamed to ... - (TT_Loader_GotoTableFunc): This. - * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix debug - messages. - * src/psnames/psmodule.c (psnames_interface) - [!FT_CONFIG_OPTION_ADOBE_GLYPH_LIST]: Fix typo. - * src/sfnt/sfdriver.c (get_sfnt_table): 16bit fix. - * src/sfnt/ttcmap.c: 16bit fixes (0xFFFF -> 0xFFFFU). - * src/sfnt/ttcmap0.c: 16bit fixes. - (TT_Build_CMaps): Simplify debug messages. - (tt_cmap12_char_next): Fix offset. - * src/sfnt/ttload.c (TT_Load_Names, TT_Load_CMap): Fix debug - messages. - (TT_Load_OS2): 16bit fix. - -2002-03-30 David Turner <david@freetype.org> - - * include/freetype/internal/tttypes.h: Adding comments to some of - the TT_FaceRec fields. - - * src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings. - - * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}: - New functions. - (tt_face_get_name): Use them to properly extract an ascii font name. - -2002-03-30 Werner Lemberg <wl@gnu.org> - - * include/freetype/t1tables.h (t1_blend_max): Fix typo. - * src/base/ftstream.c: Simplify FT_ERROR calls. - * src/cff/cffdrivr.c (cff_get_glyph_name): Fix debug message. - - * src/cff/cffobjs.c (CFF_Driver_Init, CFF_Driver_Done) - [TT_CONFIG_OPTION_EXTEND_ENGINE]: Removed. - * src/cff/sfobjs.c (SFNT_Load_Face) - [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto. - * src/truetype/ttobjs.c (TT_Init_Driver, TT_Done_Driver) - [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto. - - * src/truetype/ttdriver.c, src/truetype/ttobjs.c, - src/truetype/ttobjs.h: Renaming driver functions to the - FT_<Subject>_<Action> scheme: - - TT_Init_Driver => TT_Driver_Init - TT_Done_Driver => TT_Driver_Done - TT_Init_Face => TT_Face_Init - TT_Done_Face => TT_Face_Done - TT_Init_Size => TT_Size_Init - TT_Done_Size => TT_Size_Done - TT_Reset_Size => TT_Size_Reset - -2002-03-29 Werner Lemberg <wl@gnu.org> - - * builds/vms/ftconfig.h: Rename LOCAL_DEF and LOCAL_FUNC to - FT_LOCAL and FT_LOCAL_DEF, respectively, as with other ftconfig.h - files. - * builds/unix/ftconfig.in: Add argument to FT_LOCAL and - FT_LOCAL_DEF. - * src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/. - * builds/unix/configure.ac: Temporarily deactivate creation of - ../../Jamfile. - * builds/unix/configure: Updated. - -2002-03-28 KUSANO Takayuki <AE5T-KSN@asahi-net.or.jp> - - * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos. - -2002-03-28 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix - compiler warnings. - * include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for - some members. - * src/base/ftapi.c (FT_New_Memory_Stream): Fix typos. - * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Add - cast. - (t1_cmap_{standard,expert,custom,unicode}_class_rec): Use - `FT_CALLBACK_TABLE_DEF'. - * src/psaux/t1cmap.h: Updated. - * src/sfnt/ttcmap0.c (TT_Build_CMaps): Use `ft_encoding_none' - instead of zero. - * src/type1/t1objs.c (T1_Face_Init): Use casts. - -2002-03-26 David Turner <david@freetype.org> - - * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c: - Fixed a small bug in the FT_CMaps support code. - -2002-03-25 David Turner <david@freetype.org> - - * src/truetype/ttinterp.c (Norm): Replaced with... - (TT_VecLen): This. - (TT_MulFix14, TT_DotFix14): New functions. - (Project, Dual_Project, Free_Project, Compute_Point_Displacement, - Ins_SHPIX, Ins_MIAP, Ins_MIRP): Use them. - [FT_CONFIG_OPTION_OLD_CALCS]: Removed all code. - -2002-03-22 David Turner <david@freetype.org> - - * src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c: - Various fixes to make the FT_CMaps support work correctly (more - tests are still needed). - - * include/freetype/internal/ftobjs.h, src/sfnt/Jamfile, - src/sfnt/rules.mk, src/sfnt/sfnt.c, src/sfnt/sfobjs.c, - src/sfnt/ttload.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Updated - the SFNT charmap support to use FT_CMaps. - - * include/freetype/fterrdef.h: New file. - * include/freetype/fterrors.h: Include it. It contains all error - codes. - * include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New - macro. - - * include/freetype/internal/ftmemory.h, and a lot of other files: - Changed the names of memory macros. Examples: - - MEM_Set => FT_MEM_SET - MEM_Copy => FT_MEM_COPY - MEM_Move => FT_MEM_MOVE - - ALLOC => FT_ALLOC - FREE => FT_FREE - REALLOC = >FT_REALLOC - - FT_NEW was introduced to allocate a new object from a _typed_ - pointer. - - Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by - FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer - arguments. - - This results in _lots_ of sources being changed, but makes the code - more generic and less error-prone. - - * include/freetype/internal/ftstream.h, src/base/ftstream.c, - src/cff/cffload.c, src/pcf/pcfread.c, src/sfnt/ttcmap.c, - src/sfnt/ttcmap0.c, src/sfnt/ttload.c, src/sfnt/ttpost.c, - src/sfnt/ttsbit.c, src/truetype/ttgload.c, src/truetype/ttpload.c, - src/winfonts/winfnt.c: Changed the definitions of stream macros. - Examples: - - NEXT_Byte => FT_NEXT_BYTE - NEXT_Short => FT_NEXT_SHORT - NEXT_UShortLE => FT_NEXT_USHORT_LE - READ_Short => FT_READ_SHORT - GET_Long => FT_GET_LONG - etc. - - Also introduced the FT_PEEK_XXXX functions. - - * src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented - out function. - (find_encoding): Removed. - (CFF_Face_Init): Remove charmap support. - - * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_CMAPS, - TT_CONFIG_CMAP_FORMAT{0,2,4,6,8,10,12}): New macros to fine-tune - support of cmaps. - -2002-03-21 David Turner <david@freetype.org> - - * src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated - to new FT_CMap definitions. - - * src/psaux/t1cmap.h, src/psaux/t1cmap.c, src/type1/t1cmap.h, - src/type1/t1cmap.c: Updating and moving the Type 1 FT_CMap support - from `src/type1' to `src/psaux' since it is going to be shared by - the Type 1 and CID font drivers. - - * src/psaux/Jamfile, src/psaux/psaux.c, src/psaux/psauxmod.c, - src/psaux/rules.mk, include/freetype/internal/psaux.h: Added support - for Type 1 FT_CMaps. - -2002-03-20 David Turner <david@freetype.org> - - * src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a - memory allocation bug that was due to un-careful renaming of the - FT_SubGlyph type. - - * src/base/ftdbgmem.c (ft_mem_table_destroy): Fixed a small bug that - caused the library to crash with Electric Fence when memory - debugging is used. - - * Renaming stream macros. Examples: - - FILE_Skip => FT_STREAM_SKIP - FILE_Read => FT_STREAM_READ - ACCESS_Frame => FT_FRAME_ENTER - FORGET_Frame => FT_FRAME_EXIT - etc. - - * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak. - - * include/freetype/internal/ftobjs.h: Changing the definition of - FT_CMap_CharNextFunc slightly. - - * src/cff/*.c: Updating CFF type definitions. - -2002-03-14 David Turner <david@freetype.org> - - * include/freetype/internal/autohint.h, src/autohint/ahmodule.c, - src/base/ftapi.c, src/base/ftobjs.c: Updating the type definitions - for the auto-hinter module. - - FT_AutoHinter_Interface => FT_AutoHinter_ServiceRec - FT_AutoHinter_Interface* => FT_AutoHinter_Service - etc. - - FT_AutoHinter_Get_Global_Func => FT_AutoHinter_GlobalGetFunc - FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc - etc. - - * ahloader.h [_STANDALONE_]: Removed all conditional code. - - * include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the - type definitions of the CFF font driver. - - CFF_Font => CFF_FontRec - CFF_Font* => CFF_Font - etc. - - * include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating - type definitions of the Windows FNT font driver. - - * include/freetype/internal/ftdriver.h, - include/freetype/internal/ftobjs.h, src/base/ftapi.c, - src/base/ftobjs.c, src/cff/cffdrivr.c, src/cff/cffdrivr.h, - src/cid/cidriver.c, src/cid/cidriver.h, src/pcf/pcfdriver.c, - src/pcf/pcfdriver.h, src/truetype/ttdriver.c, - src/truetype/ttdriver.h, src/type1/t1driver.c, src/type1/t1driver.h, - src/winfonts/winfnt.c, src/winfonts/winfnt.h: Updating type - definitions for font drivers. - - FTDriver_initFace => FT_Face_InitFunc - FTDriver_initGlyphSlot => FT_Slot_InitFunc - etc. - - * src/cid/cidobjs.c (CID_Face_Init): Remove dead code. - - * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a - few face method definitions: - - FT_PSName_Requester => FT_Face_GetPostscriptNameFunc - FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc - FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc - - * src/base/ftapi.c: New file. It contains backward compatibility - functions. - - * include/freetype/internal/psaux.h, src/cid/cidload.c, - src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h, - src/psaux/t1decode.c, src/type1/t1load.c, src/type1/t1tokens.h: - Updated common PostScript type definitions. - Renamed all enumeration values like to uppercase variants: - - t1_token_any => T1_TOKEN_TYPE_ANY - t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO - etc. - - * include/freetype/internal/psglobal.h: Removed. - * include/freetype/internal/pshints.h, src/pshinter/pshglob.h: - Updated. - - * include/freetype/internal/tttypes.h, - include/freetype/internal/sfnt.h, src/base/ftnames.c, - src/cff/cffdrivr.c, src/sfnt/*.c, src/truetype/*.c: Updated - SFNT/TrueType type definitions. - - * include/freetype/freetype.h, include/freetype/internal/ftgloadr.h: - Updating type definitions for the glyph loader. - -2002-03-13 Antoine Leca <antoine@oriolnet.com> - - * include/freetype/config/ftoption.h: Changed the automatic - detection of Microsoft C compilers to automatically support 64-bit - integers only since revision 9.00 (i.e. >= Visual C++ 2.0). - -2002-03-08 Werner Lemberg <wl@gnu.org> - - * src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset. - -2002-03-07 Werner Lemberg <wl@gnu.org> - - * src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new, - ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free, - ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug, - FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings. - * src/base/ftcalc.c (FT_MulFix): Ditto. - * src/cff/cffdrivr.c (cff_get_name_index): Ditto. - * src/cff/cffobjs.c (CFF_Size_Get_Globals_Funcs, CFF_Size_Init, - CFF_GlyphSlot_Init): Ditto. - * src/cid/cidobjs.c (CID_GlyphSlot_Init, - CID_Size_Get_Globals_Funcs): Ditto. - * src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init): - Ditto. - * src/pshinter/pshmod.c (pshinter_interface): Use `static const'. - * src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused - variables. - - * include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed - to... - (T1_Builder_FuncsRec): This. - (T1_Builder_Funcs): New typedef. - (PSAux_Interface): Remove compiler warnings. - * src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h - (t1_builder_funcs): Updated. - - * src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ... - (PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines. - (PSH_AlignmentRec): Updated. - - * include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix - typo. - * include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto. - * src/base/ftstream (FT_Get_Char): Rename to... - (FT_Stream_Get_Char): This. - - * src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is - a built-in function in gcc, causing warning messages with gcc 3.0. - * src/autohint/ahglyph.c (ah_outline_load): Ditto. - * src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto. - * src/cache/ftcmanag.c (ftc_family_table_alloc, - ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache): - Ditto. - * src/cff/cffload.c (cff_new_index, cff_done_index, - cff_explicit_index, CFF_Access_Element, CFF_Forget_Element, - CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font, - CFF_Done_Font): Ditto. - * src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto. - * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto. - * src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit, - ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3, - * src/pshinter/pshalgo1.c (psh1_hint_table_record, - psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto. - * src/pshinter/pshalgo2.c (psh2_hint_table_record, - psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto. - * src/sfnt/ttpost.c (Load_Format_20, Load_Format_25, - TT_Get_PS_Name): Ditto. - * src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics, - load_truetype_glyph): Ditto. - * src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto. - * src/type1/t1afm.c (T1_Get_Kerning): Ditto. - * include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto. - -2002-03-06 David Turner <david@freetype.org> - - * src/type1/t1objs.c (T1_Face_Init), src/cid/cidobjs.c - (CID_Face_Init): Fixed another bug related to the - ascender/descender/text height of Postscript fonts. - - * src/pshinter/pshalgo2.c (print_zone): Renamed to ... - (psh2_print_zone): This. - * src/pshinter/pshalgo1.c (print_zone): Renamed to ... - (psh1_print_zone): This. - - * include/freetype/freetype.h, include/freetype/internal/ftobjs.h, - src/base/ftobjs.c: Adding the new FT_Library_Version API to return - the library's current version in dynamic links. - * src/base/ftinit.c (FT_Init_FreeType): Updated. - -2002-03-06 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshglob.h (PSH_DimensionRec): s/std/stdw/. - * src/pshinter/pshglob.c (psh_global_scale_widths, - psh_dimension_snap_width, psh_globals_destroy, psh_globals_new): - Ditto. - -2002-03-05 David Turner <david@freetype.org> - - * src/type1/t1objs.c (T1_Face_Init), src/cff/cffobjs.c - (CFF_Face_Init), src/cid/cidobjs.c (CID_Face_Init): Removing the bug - that returned global BBox values in 16.16 fixed format (instead of - integer font units). - - * src/cid/cidriver.c (cid_get_postscript_name): Fixed a bug that - caused the CID driver to return Postscript font names with a leading - slash (`/') as in `/MOEKai-Regular'. - - * src/sfnt/ttload.c (TT_Load_Names), src/sfnt/sfobjs.c (Get_Name), - src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed the loader so - that it accepts broken fonts like `foxjump.ttf', which made FreeType - crash when trying to load them. - - Also improved the name table parser to be able to load - Windows-encoded entries before Macintosh or Unicode ones, since it - seems some fonts don't have reliable values here anyway. - - * include/freetype/internal/psnames.h: Add typedef for - `PSNames_Service'. - -2002-03-05 Werner Lemberg <wl@gnu.org> - - * builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool - 1.4.2. - Apply a small patch for AIX to make shared libraries work (this - patch is already in the CVS version of libtool). - - * builds/unix/config.sub, builds/unix/config.guess: Updated to - recent versions. - - * builds/unix/configure.ac: Fix typo - (AC_CONFIG_FILE->AC_CONFIG_FILES). - - * builds/unix/configure: Regenerated. - -2002-02-28 David Turner <david@freetype.org> - - * include/freetype/ftconfig.h: Changed `FT_LOCAL xxxx' to - `FT_LOCAL( xxxx )' everywhere in the source. The same goes for - `FT_LOCAL_DEF xxxx' which is translated to `FT_LOCAL_DEF( xxxxx )'. - - * include/freetype/freetype.h (FREETYPE_MINOR, FREETYPE_PATCH): - Changing version to 2.1.0 to indicate an unstable branch. - Added the declarations of FT_Get_First_Char and FT_Get_Next_Char. - - * src/base/ftobjs.c: Implement FT_Get_First_Char and - FT_Get_Next_Char. - - * include/freetype/t1tables.h: Renaming structure types. This - - typedef T1_Struct_ - { - } T1_Struct; - - becomes - - typedef PS_StructRec_ - { - } PS_StructRec, *PS_Struct; - - typedef PS_StructRec T1_Struct; /* backward compatibility */ - - Hence, we increase the coherency of the source code by effectively - using the `Rec' prefix for structure types. - -2002-02-27 David Turner <david@freetype.org> - - * src/sfnt/ttload.c (TT_Load_Names): Simplifying and securing the - names table loader. Invalid individual name entries are now handled - correctly. This allows the loading of very buggy fonts like - `foxjump.ttf' without allocating tons of memory and causing crashes. - - * src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still - experimental) code for OpenType Layout tables validation and - parsing. - - * src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still - experimental) code for Type 1 charmap processing. - - * src/sfnt/ttcmap0.c: New file. It contains a new, still - experimental SFNT charmap processing support. - - * include/freetype/internal/ftobjs.h: Adding validation support as - well as internal charmap object definitions (FT_CMap != FT_CharMap). - -2002-02-24 David Turner <david@freetype.org> - - * Renaming stream functions to the FT_<Subject>_<Action> scheme: - - FT_Seek_Stream => FT_Stream_Seek - FT_Skip_Stream => FT_Stream_Skip - FT_Read_Stream => FT_Stream_Read - FT_Read_Stream_At => FT_Stream_Read_At - FT_Access_Frame => FT_Stream_Enter_Frame - FT_Forget_Frame => FT_Stream_Exit_Frame - FT_Extract_Frame => FT_Stream_Extract_Frame - FT_Release_Frame => FT_Stream_Release_Frame - FT_Get_XXXX => FT_Stream_Get_XXXX - FT_Read_XXXX => FT_Stream_Read_XXXX - - FT_New_Stream( filename, stream ) => - FT_Stream_Open( stream, filename ) - - (The function doesn't create the FT_Stream structure, it simply - initializes it for reading.) - - FT_New_Memory_Stream( library, FT_Byte* base, size, stream ) => - FT_Stream_Open_Memory( stream, const FT_Byte* base, size ) - - FT_Done_Stream => FT_Stream_Close - FT_Stream_IO => FT_Stream_IOFunc - FT_Stream_Close => FT_Stream_CloseFunc - - ft_close_stream => ft_ansi_stream_close (in base/ftsystem.c only) - ft_io_stream => ft_ansi_stream_io (in base/ftsystem.c only) - - * src/base/ftutil.c: New file. Contains all memory and list - management code (previously in `ftobjs.c' and `ftlist.c', - respectively). - - * include/freetype/internal/ftobjs.h: Moving all code related to - glyph loaders to ... - * include/freetype/internal/ftgloadr.h: This new file. - `FT_GlyphLoader' is now a pointer to the structure - `FT_GlyphLoaderRec'. - (ft_glyph_own_bitmap): Renamed to ... - (FT_GLYPH_OWN_BITMAP): This. - * src/base/ftobjs.c: Moving all code related to glyph loaders - to ... - * src/base/ftgloadr.c: This new file. - -2002-02-22 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in - enum to avoid compiler warnings. - -2002-02-21 David Turner <david@freetype.org> - - Modified the debug sub-system initialization. Trace levels can now - be specified within the `FT2_DEBUG' environment variable. See the - comments within `ftdebug.c' for more details. - - * src/base/ftdebug.c: (FT_SetTraceLevel): Removed. - (ft_debug_init): New function. - (ft_debug_dummy): Removed. - Updated to changes in ftdebug.h - - * include/freetype/internal/ftdebug.h: Always define - FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE is defined. - (FT_Assert): Renamed to ... - (FT_ASSERT): This. - Some stuff from ftdebug.h has been moved to ... - - * include/freetype/internal/fttrace.h: New file, to define the trace - levels used for debugging. It is used both to define enums and - toggle names for FT2_DEBUG. - - * include/freetype/internal/internal.h: Updated. - - * src/base/ftobjs.c, src/base/ftstream.c: Updated. - - * include/freetype/internal/ftextend.h, src/base/ftextend.c: - Removed. Both files are now completely obsolete. - * src/base/Jamfile, src/base/rules.mk: Updated. - - * include/freetype/fterrors.h: Adding `#undef FT_ERR_CAT' and - `#undef FT_ERR_XCAT' to avoid warnings with certain compilers (like - LCC). - - * src/pshinter/pshalgo2.c (print_zone): Renamed to ... - (psh2_print_zone): This to avoid errors during compilation of debug - library. - - * src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as - `trace_smooth'. - -2002-02-20 David Turner <david@freetype.org> - - * README: Adding `devel@freetype.org' address for bug reports. - -2002-02-20 Werner Lemberg <wl@gnu.org> - - * builds/unix/install.mk (check): New dummy target. - (.PHONY): Add it. - -2002-02-19 Werner Lemberg <wl@gnu.org> - - * builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first. - - * src/cache/ftccache.c (ftc_cache_resize): Mark `error' as unused - to avoid compiler warning. - * src/cff/cffload.c (CFF_Get_String): Ditto. - * src/cff/cffobjs.c (CFF_StrCopy): Ditto. - * src/psaux/psobjs.c (PS_Table_Done): Ditto. - * src/pcf/pcfread.c (pcf_seek_to_table_type): Ditto. - * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto. - (pcf_get_bitmaps): The same for `sizebitmaps'. - * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): The same for - `orig_y'. - (t1operator_seac): Comment out more dead code. - * src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER' - conditional. - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER' - conditional. - -2002-02-18 Werner Lemberg <wl@gnu.org> - - * src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused - variables. - * src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead - of UNUSED. - * src/autohint/ahmodule.c (ft_autohinter_reset): Ditto. - * src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable - swapping code. - * src/pshinter/pshglob.h (PSH_Blue_Align): Add PSH_BLUE_ALIGN_NONE. - * src/pshinter/pshglob.c (psh_blues_snap_stem): Use it. - * src/pshinter/pshalgo1.c (psh1_hint_table_optimize): Ditto. - * src/pshinter/pshalgo2.c (psh2_hint_align): Ditto. - * include/freetype/internal/ftobjs.h (UNUSED): Removed. - -2002-02-10 Roberto Alameda <ojancano@geekmail.de> - - Add support for ISOLatin1 PS encoding. - - * include/freetype/freetype.h (ft_encoding_latin_1): New tag - (`lat1'). - * include/freetype/internal/t1types.h (T1_Encoding_Type): Add - `t1_encoding_isolatin1'. - * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle - ft_encoding_latin_1. - * src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'. - * src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'. - ----------------------------------------------------------------------------- - -Copyright (C) 2002-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.22 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.22 deleted file mode 100644 index e25cafccfa9..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.22 +++ /dev/null @@ -1,2837 +0,0 @@ -2006-05-12 Werner Lemberg <wl@gnu.org> - - - * Version 2.2.1 released. - ========================= - - - Tag sources with `VER-2-2-1'. - -2006-05-12 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/sources.py (re_source_keywords): Add word - boundary markers. - * src/tools/docmaker/content.py (re_field): Allow `.' in field names - (but not at the beginning or end). - * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset. - (block_footer): Split into... - (block_footer_start, block_footer_middle, block_footer_end): This to - add navigation buttons. - (HtmlFormatter::block_exit): Updated. - - * include/freetype/*: Many minor documentation improvements (adding - links, spelling errors, etc.). - -2006-05-11 Werner Lemberg <wl@gnu.org> - - * README: Minor updates. - - * include/freetype/*: s/scale/scaling value/ where appropriate. - Many other minor documentation improvements. - - * src/tools/docmaker/sources.py (re_italic, re_bold): Handle - trailing punctuation. - * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add - warning message for undefined cross references. - Update handling of re_italic and re_bold. - -2006-05-11 Masatake YAMATO <jet@gyve.org> - - * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if - read system call returns -1. - Remove a redundant parenthesis. - -2006-05-10 Werner Lemberg <wl@gnu.org> - - * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if - given an empty, un-mmap()able file. Reported and suggested fix in - Savannah bug #16555. - - * builds/freetype.mk (refdoc): Write-protect the `docmaker' - directory to suppress generation of .pyc files. According to the - Python docs there isn't a more elegant solution (currently). - - * builds/toplevel.mk (dist): New target which builds .tar.gz, - .tar.bz2, and .zip files. Note that the version number is still - hard-coded. - (do-dist): Sub-target of `dist'. - (CONFIG_GUESS, CONFIG_SUB): New variables. - (.PHONY): Updated. - -2006-05-09 Rajeev Pahuja <rpahuja@esri.com> - - * builds/win32/visualc/freetype.sln, - builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from - VS.NET 2003 - Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c. - - * builds/win32/visualc/index.html: Updated. - -2006-05-07 Werner Lemberg <wl@gnu.org> - - Put version information into the configure script. Reported by Paul - Watson <pwatson@redlinepy.com>. - - * builds/unix/configure.ac: Renamed to... - * builds/unix/configure.raw: This which now serves (with appropriate - modifications) as a template for configure.ac. - - * version.sed: New script. - - * autogen.sh: Generate configure.ac from configure.raw, using - FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h. - -2006-05-06 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. - - * builds/unix/configure.ac (version_info): Set to 9:10:3. - - * builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc), - Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/. - Minor updates. - - * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS: - Updated. - - * builds/unix/install-sh: Updated from `texinfo' CVS module at - savannah.gnu.org. - - * devel/ftoption.h: Synchronize with - include/freetype/config/ftoption.h. - -2006-05-04 Werner Lemberg <wl@gnu.org> - - * src/lzw/ftlzw2.c: Renamed to... - * src/lzw/ftlzw.c: This. - - * src/lzw/Jamfile, src/lzw/rules.mk: Updated. - - * builds/mac/FreeType.m68k_cfm.make.txt, - builds/mac/FreeType.m68k_far.make.txt, - builds/mac/FreeType.ppc_carbon.make.txt, - builds/mac/FreeType.ppc_classic.make.txt: Updated. - -2006-05-03 David Turner <david@freetype.org> - - Allow compilation again with C++ compilers. - - * include/freetype/internal/ftmemory.h (FT_ASSIGNP, - FT_ASSIGNP_INNER): New macros which do the actual assignment, and - which exist in two variants (for C and C++). - Update callers accordingly. - -2006-05-03 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed. - -2006-05-02 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++). - (FT_ALLOC): Remove redundant redefinition. - - * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use - `-Wstrict-prototypes'. - - * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast. - - * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]: - Remove `extern'. - -2006-05-02 David Turner <david@freetype.org> - - Update the memory management functions and macros to safely deal - with array size buffer overflows. This corresponds to attempts to - allocate arrays that are too large. For an example, consider the - following code: - - count = read_uint32_from_file(); array = malloc( sizeof ( Item ) * - count ); for ( nn = 0; nn < count; nn++ ) - array[nn] = read_item_from_file(); - - If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the - multiplication overflows, and the array allocated os smaller than - the data read from the file. In this case, the heap will be - trashed, and this can be used as a denial-of-service attack, or make - the engine crash later. - - The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new - count is no larger than `FT_INT_MAX/item_size', otherwise a new - error code `FT_Err_Array_Too_Large' will be returned. - - Note that the memory debugger now works again when FT_DEBUG_MEMORY - is defined. FT_STRICT_ALIASING has disappeared; the corresponding - code is now the default. - - - * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]: - Don't use `extern'. - - * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error - code. - - * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER) - [FT_DEBUG_MEMORY]: New macro. - (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also. - (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug, - ft_mem_qrealloc_debug, ft_mem_free_debug): Removed. - (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, - FT_MEM_FREE): Redefine. - (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY, - FT_MEM_QRENEW_ARRAY): Redefine. - (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT, - FT_MEM_QREALLOC_MULT): New macros. Update callers where - appropriate. - (FT_MEM_SET_ERROR): Slightly redefine. - - - * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno) - [FT_DEBUG_MEMORY]: New global variables, replacing... - (FT_MemTableRec) [FT_DEBUG_MEMORY]: Remove `filename' and - `line_no'. Update all callers. - (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer - overflow. - (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug, - ft_mem_qrealloc_debug, ft_mem_free_debug): Removed. - - * src/base/ftmac.c (read_lwfn): Catch integer overflow. - * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto. - * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING. - (ft_mem_alloc, ft_mem_realloc, ft_mem_qrealloc): Rewrite. - - - * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT, - FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the - place where the frames were entered, extracted, exited or released - in the memory debugger. - - * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]: - Call ft_mem_free. - (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc. - (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free. - -2006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos - initialization, remove extra cast to copy to pfb_lenpos. This fixes - parsing of PFB fonts with MacOS resource fork (bug introduced - 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>. - -2006-04-29 Werner Lemberg <wl@gnu.org> - - Further C library abstraction. Based on a patch from - msn2@bidyut.com. - - * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE, - ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc, - ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for - C library functions. Update all users accordingly (and catch some - other places where the C library function was used instead of the - wrapper functions). - - * src/base/ftsystem.c: Don't include stdio.h and stdlib.h. - * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't - include malloc.h. - - - * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c - and forthcoming versions. - -2006-04-28 Werner Lemberg <wl@gnu.org> - - * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed, - obsolete. - -2006-04-27 yi luo <luoyi.ly@gmail.com> - - * builds/win32/visualc/freetype.vcproj: Updated. - -2006-04-26 David Turner <david@freetype.org> - - - * Version 2.2 released. - ======================= - - - Tag sources with `VER-2-2-0'. - -2006-04-26 Werner Lemberg <wl@gnu.org> - - * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but - FT_PtrDist for `delta'. Reported by Céline PILLET - <Celine.Pillet@Tagginfo.com>. - -2006-04-21 David Turner <david@freetype.org> - - * include/freetype/ftincrem.h: Documentation updates. - (FT_Incremental_Interface): New typedef. - - * include/freetype/ftmodapi.h, include/freetype/ftglyph.h: - Documentation updates. - - * include/freetype/freetype.h: Documentation update. - (FT_HAS_FAST_GLYPHS): Always set to 0. - - * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New): - Take an FT_Library argument instead of FT_Memory. - - * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2). - -2006-04-13 David Turner <david@freetype.org> - - * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove - superfluous code in the auto-fitter's loader. - -2006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/makefile, builds/amiga/makefile.os4, - builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define. - -2006-04-03 luoyi <luoyi.ly@gmail.com> - - * builds/compiler/intelc.mk (TE): New variable. - (ANSIFLAGS): Updated. - -2006-04-03 Werner Lemberg <wl@gnu.org> - - * builds/exports.mk (clean_symbols_list, clean_apinames): Removed. - (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE). - (.PHONY): Updated. - - * configure.ac: Minor fixes to improve --help output. - - - * docs/PROBLEMS: New file. - -2006-04-01 David Turner <david@freetype.org> - - * docs/CHANGES: Updated. - - * include/freetype/ftcache.h, include/freetype/config/ftheader.h: - Update documentation comments. - -2006-04-01 Werner Lemberg <wl@gnu.org> - - * builds/unix/install.mk (uninstall): Don't handle `cache' - directory which no longer exists. - -2006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de> - - * src/psaux/psconv.c: Changed some variables which are expected to - hold negative values from `char' to `FT_Char' to allow building with - a compiler where `char' is unsigned by default. - -2006-03-27 David Turner <david@freetype.org> - - * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that - causes some programs to go into an infinite loop when dealing with - fonts that don't have a properly sorted kerning sub-table. - -2006-03-26 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdflib.c (ERRMSG4): New macro. - (_bdf_parse_glyphs): Handle invalid BBX values. - - * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error - macro. - -2006-03-23 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - - - * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal - padding between table elements. - (html_header_1): The `DOCTYPE' comment must be in uppercase. - (make_html_para): Convert `...' quotations into real left and - right single quotes. - Use `para_header' and `para_footer'. - - * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'" - also. - -2006-03-23 David Turner <david@freetype.org> - - Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that - we do not expose the FT_SubGlyphRec structure. - - * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved - to... - * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here. - (FT_Get_SubGlyph_Info): New declaration. - - * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function. - - - * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and - rsb_delta correctly in edge cases. - -2006-03-22 Werner Lemberg <wl@gnu.org> - - * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup) - [!FTC_INLINE]: Compile conditionally. - * src/cache/ftccache.h: Updated. - - * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily, - FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New): - s/FT_EXPORT/FT_LOCAL/. - (FTC_GCache_Init, FTC_GCache_Done): Commented out. - (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally. - s/FT_EXPORT/FT_LOCAL/. - * src/cache/ftcglyph.h: Updated. - - * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New): - s/FT_EXPORT/FT_LOCAL/. - (FTC_INode_Weight): Commented out. - * src/cache/ftcimage.h: Updated. - - * src/cache/ftcmanag.c (FTC_Manager_Compress, - FTC_Manager_RegisterCache, FTC_Manager_FlushN): - s/FT_EXPORT/FT_LOCAL/. - * src/cache/ftcmanag.h: Updated. - - * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New, - FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/. - (FTC_SNode_Weight): Commented out. - * src/cache/ftcsbits.h: Updated. - -2006-03-22 Werner Lemberg <wl@gnu.org> - - * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy): - Remove, unused. - - * src/cache/ftccmap.h: Remove, unused. - - * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h. - -2006-03-21 Zhe Su <james.su@gmail.com> - - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve - algorithm. - -2006-03-21 Werner Lemberg <wl@gnu.org> - - * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member. - - * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'. - - * src/cff/cffgload.c (cff_slot_load): Change type of third parameter - to `FT_UInt'. - Check range of `glyph_index'. - * src/cff/cffgload.h: Updated. - - - * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset - correctly. - - - * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc), - README: s/2.1.10/2.2/. - -2006-03-21 David Turner <david@freetype.org> - - * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug - that crashes the auto-hinter (introduced by previous patch). - -2006-03-20 Werner Lemberg <wl@gnu.org> - - * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove. - (FREETYPE_H): Updated. - - * src/cache/rules.mk (CACHE_H_DIR): Remove. - (CACHE_DRV_H): Updated. - -2006-03-20 David Turner <david@freetype.org> - - * include/freetype/cache/ftccache.h, - include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h - include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h - include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h: - Move to... - - * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h, - src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h, - src/cache/ftcmru.h: This new location. - Update declarations according to the changes in the corresponding - source files. - - Note that these files are not used by FreeType clients; all public - APIs of the cache module have been already moved to - `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H - macros resolve to it. - - Reason for the move is to allow modifications of the internals - without interferences with rogue clients. Note that there are no - known clients that access the cache internals at the moment. - - * builds/unix/install.mk (install): Don't install headers from - $(CACHE_H). - Remove `freetype/cache' from the target directory. - - * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H, - FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H, - FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H, - FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to - FT_CACHE_H. - - * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h, - src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h, - src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c, - src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c, - src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros - but include the headers directly (which are now in `src/cache'). - - * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H - macros but include the headers directly. - (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode, - FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF. - - * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H - macros but include the headers directly. - (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove, - FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done, - FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection): - Declare as FT_LOCAL_DEF. - (FTC_MruList_Find, FTC_MruList_Lookup) [!FTC_INLINE]: Compile - conditionally. - Declare as FT_LOCAL_DEF. - - - * builds/win32/visualc/freetype.dsp: Update project file, add - missing base source files (ftstroke.c, ftxf86.c, etc.). - - - * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c, - src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c, - src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c, - src/type1/t1objs.c: Remove compiler warnings when building with - Visual C++ 6 and /W4. - - * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal - hinting for italic/oblique fonts. - - - - * src/truetype/ttpload.c, src/truetype/ttpload.h - (tt_face_get_device_metrics): Change second argument to `FT_UInt'. - -2006-03-06 David Turner <david@freetype.org> - - * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in - Mozilla/FireFox print preview in Ubuntu Hoary. - -2006-02-28 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not - return error when size == 0. - -2006-02-28 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse - order so that type42 module is removed before truetype module. This - avoids double free in some occasions. - -2006-02-28 David Turner <david@freetype.org> - - * Release candidate VER-2-2-0-RC4. - ---------------------------------- - - * docs/CHANGES: Documentation updates. - -2006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to - build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not - built. - -2006-02-27 Werner Lemberg <wl@gnu.org> - - * include/freetype/cache/ftccache.h - [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of - ftc_node_done. - - * src/cache/ftccache.c (ftc_node_destroy) - [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This - should now fix all possible compilation options. - -2006-02-27 David Turner <david@freetype.org> - - * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc, - ft_mem_qrealloc): Return an error if a negative size is passed in - parameters. - - * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since - it needs to be exported for rogue clients. - - * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems - with malformed fonts which have an odd number of blue values (these - are broken according to the specs). - - * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c - (T1_Open_Face): Modify the loaders to force even-ness of - `num_blue_values'. - - (cff_index_access_element): Ignore invalid entries in index files. - -2006-02-27 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width - or height is 0. - -2006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/mac/FreeType.m68k_cfm.make.txt, - builds/mac/FreeType.m68k_far.make.txt, - builds/mac/FreeType.ppc_carbon.make.txt, - builds/mac/FreeType.ppc_classic.make.txt: Update to new header - inclusion introduced on 2006-02-16. - -2006-02-27 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/base/ftobjs.c (GRID_FIT_METRICS): New macro. - (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]: - Re-enable glyph metrics grid-fitting. It is now done in the base - layer. - (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and - height are not too small or too large, just like we were doing in - 2.1.10. - - * src/autofit/afloader.c (af_loader_load_g): The vertical metrics - are not scaled. - -2006-02-26 Werner Lemberg <wl@gnu.org> - - * docs/release: Minor additions and clarifications. - - * docs/CHANGES: Updated to reflect many fixes for backward - compatibility. Still incomplete. - -2006-02-26 David Turner <david@freetype.org> - - * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable - conservative rounding of metrics to avoid breaking clients like - Pango (see https://bugzilla.gnome.org/show_bug.cgi?id=327852). - -2006-02-25 Werner Lemberg <wl@gnu.org> - - * devel/ftoption.h: Synchronize with - include/freetype/config/ftoption.h. - - * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again). - -2006-02-25 David Turner <david@freetype.org> - - Fix compiler warnings as well as C++ compilation problems. - Add missing prototypes. - - * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c, - src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c, - src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c - src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts, - initialize variables, and decorate functions with FT_CALLBACK_DEF, - etc., to fix compiler warnings (and C++ compiling errors). - - * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with - gcc. - - * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but - FT_INTERNAL_STREAM_H. - - * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H. - - * include/freetype/config/ftheader.h (FT_PFR_H): New macro. - - * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't - define for C++. - - * include/freetype/internal/services/svotval.h: Don't include - FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H. - - * include/freetype/internal/services/svpfr.h: Include FT_PFR_H. - - * src/gzip/ftgzip.c: Include FT_GZIP_H. - - * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H. - - * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code. - -2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has, - ft_contour_enclosed, ft_outline_get_orientation): Commented out. We - have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized. - (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'. - -2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update - documentation. - - * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap), - src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make - sure a glyph slot owns its bitmap. It is also marked experimental - and due to change. - (FT_GlyphSlot_Embolden): Undo the last change. It turns out that - rendering the outline confuses some applications. - -2006-02-24 David Turner <david@freetype.org> - - * Release candidate VER-2-2-0-RC3. - ---------------------------------- - - * src/cache/ftcbasic.c: Correct compatibility hack bug. - -2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/freetype.h (FT_Size_RequestRec): Change the type - of `width' and `height' to `FT_Long'. - (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics): - New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales - directly. - -2006-02-23 David Turner <david@freetype.org> - - Two BDF patches from Debian libfreetype6 for 2.1.10. - - * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width - glyphs. - Fix a problem with large encodings. - - - Fix binary compatibility issues for gnustep-back (GNUstep backend - module) which still crashes under Sarge. - - * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec, - FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data - structures and enumerations. - (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New - compatibility code. - - * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to - support rogue clients compiled against 2.1.7 to work correctly. - This probably explains the GNUstep crashes with the second release - candidate. - -2006-02-23 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/ftoutln.h (enum FT_Orientation): New value - `FT_ORIENTATION_NONE'. - - * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has, - ft_contour_enclosed, ft_outline_get_orientation): Another version of - `FT_Outline_Get_Orientation'. This version differs from the public - one in that each part (contour not enclosed in another contour) of the - outline is checked for orientation. - (FT_Outline_Embolden): Use `ft_outline_get_orientation'. - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and - use bitmap's embolden routine when the outline one failed. - -2006-02-22 Chia-I Wu <b90201047@ntu.edu.tw> - - * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI - compatibility. - - * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak. - - * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned, - tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit - loading. (Only tested with bit aligned sbit with x_pos == 0.) - - * src/truetype/ttpload.c (tt_face_load_hdmx, - tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not - actually used. - -2006-02-21 David Turner <david@freetype.org> - - Add a new API named FT_Get_TrueType_Engine_Type to determine whether - we have a patented, unpatented, or unimplemented TrueType bytecode - interpreter. - - The FT_Get_Module_Flags API was removed consequently. - - * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed. - Replaced with... - (FT_Get_TrueType_Engine_Type): This. - (FT_TrueTypeEngineType): New enumeration. - - * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H): - New macro. - - * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H. - (FT_Module_Get_Flags): Removed. Replaced with... - (FT_Get_TrueType_Engine_Type): This. - - * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H. - (tt_service_truetype_engine): New service structure. - (tt_services): Register it. - - * include/freetype/internal/services/svtteng.h: New file. - - - * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented - embedded bitmaps from being correctly listed and used. - - - * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization - if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because - libXfont is directly accessing the HMTX data, unfortunately. - Fix some compiler warnings. - (tt_face_get_metrics): Ditto. - - - * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of - character advances. - -2006-02-20 David Turner <david@freetype.org> - - Support binary compatibility with the X.Org server's Xfont library. - Note that this change unfortunately prevents memory optimizations - for the embedded bitmap loader. - - * include/freetype/internal/sfnt.h (SFNT_Interface): Move - `set_sbit_strike' and `load_sbit_metrics' fields to the location of - version 2.1.8. - - * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call - FT_Size_Request. - (sfnt_interface): Updated. - - * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load - ttsbit0.c. - (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static. - - * src/sfnt/ttsbit.h: Updated. - -2006-02-17 David Turner <david@freetype.org> - - * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported - functions anymore. This ensures that all FT_BASE internal functions - are available for dynamic linking. - - * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE, - FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec, - FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New, - FTC_OldImageDesc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx, - ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup, - FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup) - [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the - cache sub-system. We try to recognize old legacy signatures with a - gross hack (hope it works). - -2006-02-17 Werner Lemberg <wl@gnu.org> - - * devel/ftoption.h: Synchronize with - include/freetype/config/ftoption.h. - -2006-02-16 David Turner <david@freetype.org> - - Massive changes to the internals to respect the internal object - layouts and exported functions of FreeType 2.1.7. Note that the - cache sub-system cannot be fully retrofitted, unfortunately. - - * include/freetype/config/ftoption.h - (FT_CONFIG_OPTION_OLD_INTERNALS): New macro. - - * include/freetype/ftcache.h, include/freetype/cache/ftccache.h, - include/freetype/cache/ftccmap.h, - include/freetype/internal/ftcalc.h, - include/freetype/internal/ftdriver.h, - include/freetype/internal/ftmemory.h, - include/freetype/internal/ftobjs.h, - include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h, - include/freetype/internal/t1types.h, - include/freetype/internal/tttypes.h, src/base/ftcalc.c, - src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c, - src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h, - src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c, - src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c, - src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c, - src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c: - Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data - structures. - - Move newly added structure elements to the end of the affected - structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is - defined) to assure binary compatibility with older FreeType - versions. - Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old - functions: - - ft_stub_set_char_sizes - ft_stub_set_pixel_sizes - - Rename the following internal functions to provide the old function - names as stubs: - - FT_Alloc -> ft_mem_alloc - FT_QAlloc -> ft_mem_qalloc - FT_Realloc -> ft_mem_realloc - FT_QRealloc -> ft_mem_qrealloc - FT_Free -> ft_mem_free - FT_Alloc_Debug -> ft_mem_alloc_debug - FT_QAlloc_Debug -> ft_mem_qalloc_debug - FT_Realloc_Debug -> ft_mem_realloc_debug - FT_QRealloc_Debug -> ft_mem_qrealloc_debug - FT_Free_Debug -> ft_mem_free_debug - -2006-02-15 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove - unused `max_points' and `max_contours'. - - * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c - (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update. - - * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused - `max_components'. - - * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused - `loadSize' and `loadStack'. - - * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context), - src/sfnt/ttload.c (tt_face_load_maxp): Update. - - * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c - (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix - compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not - defined. - - * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix - possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions. - (finally!) - - - For most OpenType tables, `tt_face_load_xxxx' simply loads the table - and `face->root' is set later in `sfnt_load_face'. Here, we try to - make this work for _all_ tables. Also improve tracing messages. - - * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c, - src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and - then exit. Error handling or setting face->root is done later in - `sfnt_load_face'. - - * src/sfnt/sfobjs.c (sfnt_load_face): Work harder. - Mac bitmap-only fonts are not scalable. - Check that `face->header.Units_Per_EM' is not zero. - (LOAD_, LOADM_): Emit pretty trace messages. - - * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics - from `eblc'. - - * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c - (load_format_20, load_format_25, tt_face_get_ps_name): Use - face->max_profile.numGlyphs, instead of face->root.num_glyphs. - -2006-02-14 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in - documentation that negative strength values are possible. - Give an example call. - - * include/freetype/freetype.h (FT_GlyphSlotRec): Improve - documentation of `outline' field. - - * src/sfnt/sfobjs.c: Include FT_INTERNAL_DEBUG_H. - * src/sfnt/sfdriver.c: Include ttmtx.h. - - * src/autofit/afcjk.c: Include aftypes.h and aflatin.h. - -2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo. - -2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply - return error if table is missing. - Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'. - - * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics - tables. The last change makes Mac bitmap-only font not load and - this fixes it. - - * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation - error when FT_CONFIG_OPTION_INCREMENTAL is defined. - -2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw> - - Clean up the SFNT_Interface. In this final pass, `load_hmtx' is - split from `load_hhea'. - - * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c, - src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'. - - * src/sfnt/sfobjs.c (sfnt_load_face): Update. - -2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of - code... - -2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw> - - Clean up the SFNT_Interface. In this pass, we want to treat the - font directory (offset table and table directory) as a normal table - like the others. This also means that TTCs are no longer recognized - there but in `init_face'. - - * include/freetype/internal/sfnt.h (SFNT_Interface), - src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are - combined and renamed to `load_font_dir'. - - * src/sfnt/ttload.h, src/sfnt/ttload.c: - s/sfnt_dir_check/check_table_dir/. - `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'. - `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined - and renamed to `tt_face_load_font_dir'. - - * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here. - -2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw> - - Clean up the SFNT_Interface. Table loading functions are now named - after the tables' tags; `hdmx' is TrueType-specific and thus the - code is moved to the truetype module; `get_metrics' is moved here - from the truetype module so that the code can be shared with the cff - module. - - This pass involves no real changes. That is, the code is moved - verbatim mostly. The only exception is the return value of - `tt_face_get_metrics'. - - * include/freetype/internal/sfnt.h, src/sfnt/rules.mk, - src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c, - src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c, - src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface. - - * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related - tables' loading and parsing code is moved to here. - Move `tt_face_get_metrics' here from the truetype module. The - return value is changed from `void' to `FT_Error'. - - * include/freetype/internal/fttrace.h: New trace: ttmtx. - - * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and - parsing code is moved here. - New function `tt_face_load_prep' split from `tt_face_load_fpgm'. - `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist. - - * src/cff/cffgload.c, src/cff/cffobjs.c: Update. - - * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update. - -2006-02-11 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug... - - * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use - AF_LatinMetricsRec as the dummy metrics because we cast the metrics - to it later in `af_latin_hints_link_segments'. - -2006-02-11 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define - to enable autofit CJK script support. (#define'd by default.) - - * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro. - - * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure - that `edge_distance_threshold' is always set. - (af_latin_hints_link_segments): Potential divide-by-zero bug. - Use latin constant in the scoring formula. - - * src/autofit/afcjk.c: Minor updates due to the above three changes. - - * docs/TODO, docs/CHANGES: Updated. - -2006-02-09 Chia-I Wu <b90201047@ntu.edu.tw> - - Introduce experimental autofit CJK module based on akito's autohint - patch. You need to #define AF_MOD_CJK in afcjk.c to enable it. - - * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c, - src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h: - Add CJK module based on akito's autohint patch. - - * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the - overlap length of the segments. - (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros. - - * src/autofit/aflatin.h (af_latin_metrics_init_widths), - src/autofit/aflatin.c (af_latin_metrics_init_widths): Made - `FT_LOCAL'. - Use the character given by the caller. - (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale - the thresholds. - - * src/autofit/afloader.c (af_loader_load_g): Respect - AF_SCALER_FLAG_NO_ADVANCE. - -2006-02-09 Werner Lemberg <wl@gnu.org> - - * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable. - -2006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or - broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel - 2005-11-02). - -2006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts' - option on UNIX platform. It has been broken since 2006-01-11. - -2006-02-01 Werner Lemberg <wl@gnu.org> - - * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/. - * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/. - - * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing - change from 2006-01-31). - (TOP_DIR, OBJ_DIR): Update. - - * builds/unix/install.mk (install): Fix path for ftmodule.h. - - * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use - `?=' where appropriate. - - * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR), - builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere. - -2006-01-31 Werner Lemberg <wl@gnu.org> - - Implement new, simplified module selection. With GNU make it is now - sufficient to modify a single file, `modules.cfg', to control the - inclusion of modules and base extension files. - - This change also fixes the creation of ftmodule.h; it now depends on - `modules.cfg' and thus is rebuilt only if necessary. - - Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the - default location. - - * modules.cfg: New file. - - * builds/freetype.mk: Don't include `modules.mk'. - Include all `rules.mk' files as specified in `modules.cfg'. - (FTOPTION_FLAG, FTOPTION_H): New variables. - (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H. - Add FTOPTION_FLAG. - ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST. - (CONFIG_H): Add FTMODULE_H and FTOPTION_H. - (INCLUDES): Add DEVEL_DIR. - (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ, - OBJ_M, OBJ_S): Use `:=', not `='. - (remove_ftmodule_h): New phony target to delete `ftmodule.h'. - (distclean): Add remove_ftmodule_h. - - * builds/modules.mk: (MODULE_LIST): Removed. - (make_module_list, clean_module_list): Replace targets - with... - (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New - variables. Reason for the change is that it is not possible to have - a phony prerequisite which is run only if the target file must be - rebuilt (phony prerequisites act like subroutines and are *always* - executed). We only want to rebuild `ftmodule.h' if `module.cfg' is - changed. - Update all callers. - ($FTMODULE_H)): Rule to create `ftmodule.h', depending on - `modules.cfg'. - - * builds/toplevel.mk: Rewrite and simplify module handling. - (MODULES_CFG, FTMODULE_H): New variables. - Include MODULES_CFG. - (MODULES): New variable to include all `module.mk' and `rules.mk' - files. We no longer use make's `wildcard' function for this. - - * Makefile (USE_MODULES): Remove. Update all users. - (OBJ_DIR): Define it here. - - * src/*/module.mk: Change - - make_module_list: foo - foo: ... - - to - - FTMODULE_H_COMMANDS += FOO - define FOO - ... - endef - - in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'. - - * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS. - - * builds/unix/detect.mk (setup): Always execute `configure' script. - (have_mk): Rename to... - (have_Makefile): This. - Don't use `strip' function. - - * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is - defined. - (have_mk): Don't use `strip' function. - Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test - accordingly). - - * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'. - - * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk, - builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define - BUILD_DIR but DEVEL_DIR for development header files. - - * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR), - builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in - (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere. - - * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR), - builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere. - - * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for - development header files. - Don't define PLATFORM. - - * configure: Copy `modules.cfg' to builddir if builddir != srcdir. - Update snippet taken from autoconf's m4sh.m4 to current CVS version. - Be more verbose. - - * include/freetype/config/ftmodule.h: Add comments -- this file is - no longer used if FreeType is built with GNU make. - - * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY, - docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism. - Other minor updates. - - * modules.txt: Removed. Contents included in `modules.cfg'. - - - * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug, - FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos. - - * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug, - FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug) - [FT_STRICT_ALIASING]: Implement. - -2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c - (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init), - src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 * - units_per_EM, ascender - descender). - -2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/internal/t1types.h (AFM_FontInfo), - src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox', - `Ascender', and `Descender' from an AFM. - - * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM. - - * include/freetype/freetype.h (FT_FaceRec): Mention that fields may - be changed after file attachment. - -2006-01-28 Werner Lemberg <wl@gnu.org> - - * src/*/module.mk (.PHONY): Add. - -2006-01-27 Werner Lemberg <wl@gnu.org> - - * README, docs/FTL.TXT: Fix email address for bug reports. - Other minor formatting. - - * devel/ftoption.h: Synchronize with - include/freetype/config/ftoption.h. - - * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk - (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix - whitespace. - - * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv - renderer classes. - -2006-01-27 David Turner <david@freetype.org> - - * builds/unix/configure.ac: Fix build problem on Cygwin. - - * builds/unix/install.mk (install): Don't install the internal - headers, and remove existing ones if found in the target install - directory. - - * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation - if the warp hinter isn't active (it shouldn't, still experimental). - - * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid' - and `otvalid' from the list of modules that are linked statically - to a given FreeType library. Functionality has been moved to the - `ftvalid' CVS module. - - Note also that current Make-based build system still compiles the - modules though. - - * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro - which controls the definitions of the memory management functions to - avoid warnings with recent versions of GCC. This macro is only here - to be disabled, in case we detect problems with the new scheme. - - NOTE: Disable macro to use the memory debugger -- this will be fixed - later! - - * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc, - FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]: - New versions. - - - * builds/win32/visualc/freetype.dsp: Updating project file to - define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from - compilation. - - - * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the - macro FT2_BUILD_LIBRARY when compiling the library. - - * include/freetype/config/ftheader.h: Remove inclusions of internal - headers except if the macro FT2_BUILD_LIBRARY is defined. - - - * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern, - AFM_FontInfo): Move structure declarations to... - * include/freetype/internal/t1types.h: This file. - - - * (many files): Fix compiler warnings. - Various minor reorganizations. - - - * src/cff/cffload.c (cff_font_done): Don't free static array - `subfonts'. - - * src/otvalid/otvcommn.c (otv_ClassDef_validate), - src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information. - - - Get rid of writable static variables (i.e., the string table) in - afmparse, and fix compilation in FT2_MULTI mode. - - * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H. - (AFM_MAX_ARGUMENTS): Define... - * src/psaux/afmparse.h: Here. - * src/psaux/Jamfile (_sources): Add afmparse. - - * src/psaux/psconv.c: Include psconv.h. - - * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but - FT_INTERNAL_POSTSCRIPT_AUX_H. - * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H. - -2006-01-23 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/freetype.h (FT_Select_Size): Rename the second - argument from `idx' to `strike_index'. - (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of - this enum. - - * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH, - FT_REQUEST_HEIGHT): New macros to get the width and height of a - request, in fractional pixels. - - * include/freetype/internal/ftobjs.h (FT_Select_Metrics, - FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics, - FT_Request_Metrics): New base functions to set the font metrics. They - were part of FT_Select_Size/FT_Request_Size and are made independent - functions so that metrics are not set again and again. - - * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set - only when driver's size_select/size_request is NULL. That is, drivers - should set the metrics themselves. - (FT_Match_Size): Round before matching. This was what we did and it - does cause some problems without rounding. - - * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c - (tt_size_select): Set the font metrics. - s/index/strike_index/. - The scaled metrics are always preferred over strikes' metrics, even - when some strike is selected. This is done because the strikes' - metrics are not reliable, e.g., the sign of the descender is wrong for - some fonts. - - * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c - (tt_size_request): Set the font metrics. - Call cff_size_select/tt_size_select when some strike is matched. - - * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c, - src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c, - src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c: - Set the font metrics. - s/index/strike_index/. - - * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these - files were committed. Just a catch-up. - (PS_Conv_ToFixed): Remove the `goto'. - (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little. - - * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes, - tt_face_load_strike_metrics), src/sfnt/ttsbit0.c - (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The - advertised metrics in `available_sizes' are different from those - actually used. - -2006-01-23 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make - AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'. - -2006-01-22 Werner Lemberg <wl@gnu.org> - - * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from - `texinfo' CVS module at savannah.gnu.org. - -2006-01-21 Werner Lemberg <wl@gnu.org> - - * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c. - - * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up - to avoid compiler warnings. - - * src/autofit/afwarp.c (af_warper_compute_line_best): Remove - shadowing variable declarations. - Fix warning parameters and replace printf with AF_LOG. - (af_warper_compute): Remove unused variable. - -2006-01-20 David Turner <david@freetype.org> - - Adding experimental implementation of `warp hinting' (new hinting - algorithm for gray-level and LCD rendering). It is disabled by - default, you need to #define AF_USE_WARPER in aftypes.h. - - * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]: - New function. - * src/autofit/afhints.h: Updated. - - * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h. - (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to - FT_RENDER_MODE_NORMAL if an LCD mode is selected. - (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute - appropriately. - - * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]: - Isolate code for adjusting metrics. - - * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by - default). - - * src/autofit/afwarp.c, src/autofit/afwarp.h: New files. - - * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c. - - * src/autofit/Jamfile (_sources): Add afwarp. - -2006-01-19 David Turner <david@freetype.org> - - * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug - that prevented compilation when FT_OPTIMIZE_MEMORY is defined. - -2006-01-19 Brian Weed <bw@imaginengine.com> - - * builds/win32/visualc/freetype.dsp: Updated. - -2006-01-17 Werner Lemberg <wl@gnu.org> - - Use pscmap service in CFF module. - - * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed. - (cff_sid_to_glyph_name): New function. - (cff_cmap_unicode_init, cff_cmap_unicode_done, - cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap - service. - (cff_cmap_unicode_class_rec): Updated. - * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed. - - - * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode' - return value. - - - * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting - to avoid compiler warnings regarding type-punning. - -2006-01-16 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which - implement an AFM parser. - - * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide - conversion functions (e.g., PS real number => FT_Fixed) for the - PS_Parser and AFM_Parser. Some of the functions are taken, with - some modifications, from the file psobjs.c. - - * src/psaux/psobjs.c: Use functions from psconv.c. - - * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add - `AFM_Parser' to the `psaux' service. - - * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include - those new files. - - * src/tools/test_afm.c: A test program for AFM parser. - - * include/freetype/internal/services/svkern.h: New file providing a - `Kerning' service. It is currently only used to get the track - kerning information. - - * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New - macro. - - * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c, - src/type1/t1afm.h: Update to use the AFM parser. - Provide the `Kerning' service. - - * include/freetype/freetype.h, src/base/ftobjs.c: New API - `FT_Get_Track_Kerning'. - -2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/internal/ftobjs.h, src/base/ftobjs.c, - src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c, - src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c: - s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/. - - * docs/CHANGES: Mention that vertical metrics are synthesized for - fonts not having this info. - -2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics), - src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake - vertical metrics. - - * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c, - src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics, - which are monotone. - - * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and - formattings in vertical metrics faking. There is still room for - improvements (and so does the CFF module). - -2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c - (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set - the linear advance fields as they are only used by the outline - glyphs. - - * include/freetype/freetype.h: Documentation updates and - clarifications. - The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real - change need be made to the code. - - * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and - decide whether to use the auto-hinter according to documentation. - There should to be no real difference. - Some checks (e.g., is text height positive?) after the glyph is - loaded. - (FT_Select_Size, FT_Request_Size): Scales are set to wrong values. - Be careful that scales won't be negative. - -2006-01-14 Chia-I Wu <b90201047@ntu.edu.tw> - - * docs/CHANGES: Mention the size selection change. - - * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select), - src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select), - src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size - matching for requests of type NOMINAL and REAL_DIM. - - * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when - `pixel_height' is used for nominal height. - - * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the - face is bitmap only and driver doesn't provide `request_size'. This - is added merely for completion as no driver satisfies the conditions. - -2006-01-13 Chia-I Wu <b90201047@ntu.edu.tw> - - Introduce new size selection interface. - - * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec): - Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and - `select_size'. - - * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type, - FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c - (FT_Select_Size, FT_Request_Size): API additions to export the new - size selection interface. - - * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use - `FT_Request_Size'. - - * include/freetype/internal/ftobjs.h (FT_Match_Size), - src/base/ftobjs.c (FT_Match_Size): New function to match a size - request against `available_sizes'. Drivers supporting bitmap strikes - can use this function to implement `request_size'. - - * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h, - src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c, - src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c, - src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c: - Update to new size selection interface. - - * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c, - src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c, - src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size - selection interface. - Make `strike_index' FT_ULong and always defined. - Use `load_strike_metrics' provided by SFNT interface. - -2006-01-13 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/internal/sfnt.h (SFNT_Interface): New method - `load_strike_metrics' used to load the strike's metrics. - - * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h, - src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'. - - * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly. - - * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for - nominal size unless it is obviously incorrect. - - * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on - FNT driver. - -2006-01-12 Werner Lemberg <wl@gnu.org> - - Prepare use of pscmap service within CFF module. - - * include/freetype/internal/services/svpscmap.h: Include - FT_INTERNAL_OBJECTS_H. - (PS_Unicode_Index_Func): Removed. Unused. - (PS_Macintosh_Name_Func): Renamed to... - (PS_Macintosh_NameFunc): This. - Update all callers. - (PS_Adobe_Std_Strings_Func): Renamed to... - (PS_Adobe_Std_StringsFunc): This. - Update all callers. - (PS_UnicodesRec): This is the former `PS_Unicodes' structure. - Add `cmap' member. - Update all callers. - (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec. - Update all callers. - (PS_Glyph_NameFunc): New typedef. - (PS_Unicodes_InitFunc): Change arguments to expect a function - and generic data pointer which returns a glyph name from a given - index. - - * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index, - ps_unicodes_char_next, pscmaps_interface): Updated. - - * include/freetype/internal/t1types.h (T1_FaceRec): Updated. - - * src/psaux/t1cmap.h (T1_CMapStdRec): Updated. - (T1_CMapUnicode, T1_CMapUnicodeRec): Removed. - - * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function. - (t1_cmap_unicode_init, t1_cmap_unicode_done, - t1_cmap_unicode_char_index, t1_cmap_unicode_char_next, - t1_cmap_unicode_class_rec): Updated. - - * src/type42/t42types.h (T42_FaceRec): Updated. - -2006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * include/freetype/ftmac.h: Add declaration of new functions - FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that - were introduced by the jumbo patch on 2006-01-11. - -2006-01-11 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #15056 and use pscmap service in psaux module. - - * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use - FT_UInt32 for `glyph_index'. - (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'. - (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'. - (PS_Unicodes_CharNextFunc): Make second argument a pointer to - FT_UInt32. - - * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros. - (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a - variant glyph (this is, it has non-leading `.' in its name). - (compare_uni_maps): Sort base glyphs before variant glyphs. - (ps_unicodes_init): Use FT_String for `glyph_names' argument. - Reallocate only if number of used entries is much smaller. - Updated to handle variant glyphs. - (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs - over variant glyphs. - Simplify code. - - * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed. - (t1_cmap_unicode_init, t1_cmap_unicode_char_index, - t1_cmap_unicode_char_next): Use pscmap service. - (t1_cmap_unicode_done): Updated. - - * src/psaux/t1cmap.h (T1_CMapUniPair): Removed. - (T1_CMapUnicode): Use PS_Unicodes structure. - -2006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Jumbo patch to fix `deprecated' warning of cross-build for Tiger on - Intel, as reported by Sean McBride <sean@rogue-research.com> on - 2005-08-24. - - * src/base/ftmac.c: Heavy change to build without deprecated Carbon - functions on Tiger. - - * builds/unix/configure.ac: Add options and autochecks for Carbon - functions availabilities, for MacOS X. - - * builds/mac/ascii2mpw.py: Add converter for character `\305'. - * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional - macros to avoid unavailable functions. - ftmac.c must be compiled without `-strict ansi', because it disables - cpp macro to use ToolBox system call. - - * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional - macros to avoid unavailable functions. - - * builds/mac/README: Detailed notes on function availabilities. - - * docs/CHANGES: Notes about (possible) incompatibilities. - -2006-01-08 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk> - - * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New - declaration. - - * src/base/ftobjs.c (FT_Module_Get_Flags): New function. - -2006-01-07 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable - `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>. - - * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/. - Reported by Niels Boldt <nielsboldt@gmail.com>. - -2005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for - MPW compiler. - -2005-12-23 David Turner <david@freetype.org> - - * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam - refdoc' works correctly to generate the API reference in - `docs/reference'. - - * src/tools/docmaker/tohtml.py (print_html_field, - print_html_field_list): Update to output nicer fields lists in the - API reference. - - * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now - forces auto-hinting. - - * freetype/freetype.h: Updating the documentation for - FT_LOAD_TARGET_XXX and FT_Render_Mode values. - -2005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces - in supported formats (sfnt, LWFN) only, and ignore bitmap faces in - unsupported formats (fbit, NFNT). The number of available faces are - passed via face->num_faces. If bitmap faces are embedded in sfnt - resource, face->num_fixed_size is correctly set. In public API, - FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as - FT_GetFile_From_Mac_Name(), which ignores NFNT resources. - - * doc/CHANGES: Mention the changes. - -2005-12-17 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/truetype/ttinterp.c (Update_Max): Set current size of buffer - correctly (so that memory debug system won't panic). - -2005-12-16 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics), - src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed. - - * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round. - - * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c - (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics), - src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics. - - * doc/CHANGES: Mention the changes. - -2005-12-13 David Turner <david@freetype.org> - - Change the implementation of the LIGHT hinting mode to completely - disable horizontal hinting. This is an experimental effort to - integrate David Chester's latest patch without affecting the other - hinting modes as well. - - Note that this doesn't force auto-hinting for all fonts, however. - - * src/autofit/afhints.c (af_glyph_hints_reload): Don't set - scaler_flags here but... - (af_glyph_hints_rescale): Here. - - * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal - hinting for `light' hinting mode. - - - * Jamfile: Small fix to ensure that ftexport.sym is placed into the - same location as other generated objects (i.e., within the `objs' - directory of the current directory). - - - Add support for an embedded `BDF ' table within SFNT-based bitmap - font files. This is used to store atoms & properties from the - original BDF fonts that were used to generate the font file. - - The feature is controlled by TT_CONFIG_OPTION_BDF within - `ftoption.h' and is used to implement FT_Get_BDF_Property for these - font files. - - At the moment, this is still experimental, the BDF table format - isn't cast into stone yet. - - * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New - macro. - - * include/freetype/config/ftstdlib.h (ft_memchr): New macro. - - * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF) - [TT_CONFIG_OPTION_BDF]: New structure. - (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'. - - * include/freetype/tttags.h (TTAG_BDF): New macro. - - * src/sfnt/Jamfile (_sources): Add ttbdf. - - * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c. - - * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and - FT_SERVICE_BDF_H. - (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function. - (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service. - (sfnt_services) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf. - - * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c. - - * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h. - (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call - tt_face_free_bdf_props. - - * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files. - -2005-12-07 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_init_face): Move tag check to... - * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs. - -2005-12-06 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is - initialized twice. - size->strike_index is not initialized. - -2005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com> - - * src/type42/t42objs.c (T42_Face_Init): Replace call to - FT_New_Memory_Face with call to FT_Open_Face to pass `params'. - -2005-11-30 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Document ftdump's `-v' option. - Document latest charmap code changes. - - * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: - s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/. - -2005-11-30 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary, - tt_cmap12_char_map_binary): Fix compiler warnings. - -2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw> - - Major update to distinguish between unsorted and overlapping - segments for cmap format 4. For overlapping but sorted segments, - which is previously considered unsorted, we still use binary search. - - * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'. - (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros. - - * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined. - (TT_CMap4Rec_): Remove `old_charcode' and `table_length'. - (tt_cmap4_reset): Removed. - (tt_cmap4_init): Updated accordingly. - (tt_cmap4_next): Updated accordingly. - Take care of overlapping segments. - (tt_cmap4_validate): Make sure the subtable is large enough. - Do not check glyph_ids because some fonts set the length wrongly. - Also, if all segments have offset 0, glyph_ids is always invalid. - It does not cause any problem so far only because the check misses - equality. - Distinguish between unsorted and overlapping segments. - (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions - to do `charcode => glyph index' by linear/binary search. - (tt_cmap4_char_index, tt_cmap4_char_next): Use - tt_cmap4_char_map_linear and tt_cmap4_char_map_binary. - (tt_face_build_cmaps): Treat the return value of validator as flags - for cmap. - -2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next): - New structures and functions for fast `next char'. - (tt_cmap12_char_map_binary): New function to do `charcode => glyph - index' by binary search. - (tt_cmap12_char_index, tt_cmap12_char_next): Use - tt_cmap12_char_map_binary. - (tt_face_build_cmaps): Check table and offset correctly (equality is - missing). - -2005-11-15 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/smakefile: Adjusted the compiler options - to the current sources, now really builds the gxvalid, gzip - and psnames modules. - - * builds/amiga/src/base/ftsystem.c: The assumed Seek() position - in the file cache was off by one byte which could cause false - errors in font files. - -2005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/mac/FreeType.m68k_far.make.txt, - builds/mac/FreeType.m68k_cfm.make.txt, - builds/mac/FreeType.ppc_classic.make.txt, - builds/mac/FreeType.ppc_carbon.make.txt: - Updated for MPW to build all available modules. - -2005-11-21 Håvard Wall <haavardw@ifi.uio.no> - - * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small - memory leak. - -2005-11-21 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (sfnt_init): Add tracing message. - -2005-11-21 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was - added twice to image_start if image_format was 2 or 5. - -2005-11-21 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known - before loading the table directory. - - * src/sfnt/ttload.c (tt_face_load_sfnt_header, - tt_face_load_directory): Delay sfnt_dir_check from - tt_face_load_sfnt_header to tt_face_load_directory. - -2005-11-20 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct - error code. - (sfnt_init): New function to fill in face->ttc_header. A non-TTC font - is synthesized into a TTC font with one offset table. - (tt_face_load_sfnt_header): Use sfnt_init. - Fix an invalid access if the font is TTC and face_index is -1. - -2005-11-18 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number - of metrics instead of aborting. Patch suggested by Derek Noonburg. - - * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c - (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale - the glyph properly if no hinter is available. - - * docs/CHANGES: Mention scaling bug. - -2005-11-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * include/freetype/ftgxval.h, src/base/ftgxval.c - (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free - buffers allocated by gxvalid module. - * include/freetype/ftotval.h, src/base/ftotval.c - (FT_OpenType_Free): New function to free buffer allocated by - otvalid module. - -2005-11-18 Chia-I Wu <b90201047@ntu.edu.tw> - - * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory, - FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory, - FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic): - s/FT_EXPORT/FT_BASE/. - -2005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count, - FT_Trace_Get_Name, FT_Message, FT_Panic), - builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, - FT_Stream_Open): s/FT_EXPORT/FT_BASE/. - -2005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/makefile, builds/amiga/makefile.os4, - builds/amiga/smakefile, - builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga - build files (added support for the gxvalid module). - -2005-11-17 Werner Lemberg <wl@gnu.org> - - Add vertical metrics support to OpenType CFF outlines. Based on a - patch from Mike Moening <MikeM@RetekSolutions.com>. - - * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function. - (cff_slot_load): Use cff_face_get_vertical_metrics. - - * docs/CHANGES: Updated. - -2005-11-17 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/base/ftcalc.c (FT_MulTo64): Commented out. - - * include/freetype/internal/ftcalc.h (FT_SqrtFixed), - src/base/ftcalc.c (FT_SqrtFixed), - include/freetype/internal/ftdebug.h (FT_Trace_Get_Count, - FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c - (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic), - include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory), - include/freetype/internal/ftstream.h (FT_Stream_Open), - src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open): - s/FT_EXPORT/FT_BASE/. - - * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST - too. - -2005-11-15 David Turner <david@freetype.org> - - * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created - invalid computations, resulting in very weird bugs in TrueType - bytecode hinted fonts. - - * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a - structure copy each time. - -2005-11-11 Werner Lemberg <wl@gnu.org> - - * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c - (FTC_Manager_Check): Remove FT_EXPORT_DEF tag. - - * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag. - (FT_Div64by32, FT_Sqrt32): Commented out. Unused. - - * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused. - (FT_Sqrt32): Commented out. Unused. - - * include/freetype/cache/ftccache.h: - s/ftc_node_destroy/FTC_Node_Destroy/. - - * src/cache/ftccback.h (ftc_node_destroy): New declaration. - - * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag. - (FTC_Node_Destroy): New exported wrapper function for - ftc_node_destroy. - - * src/cache/ftcmanag.c: Include ftccback.c. - -2005-11-10 Werner Lemberg <wl@gnu.org> - - * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff): - Comment out. Unused. - - * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns. - -2005-11-10 Christian Biesinger <cbiesinger@web.de> - - * builds/beos/beos.mk: Call beos-def.mk before anything else to - define the separator. - - * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag. - -2005-11-07 Werner Lemberg <wl@gnu.org> - - * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning - table available'. From Sergey Tolstov <stolstov@esri.com>. - -2005-11-03 Ville Syrjälä <syrjala@sci.fi> - - * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak. - -2005-11-02 Werner Lemberg <wl@gnu.org> - - Make compiling instructions in docs/CUSTOMIZE work again. - - * builds/unix/unix-cc.in (CPPFLAGS): New variable. - (CFLAGS): Don't include @CPPFLAGS@. - * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS. - -2005-10-28 David Turner <david@freetype.org> - - Update build system to support the generation of a list of exported - symbols or Windows .DEF files by parsing the public headers with the - `apinames' tool located in src/tools/apinames.c. - - Only tested on Unix at the moment. On Windows, the .DEF file is - generated but isn't used yet to generate a DLL. - - * builds/exports.mk: New file. - - * builds/freetype.mk: Include exports.mk. - (dll): New target. - (clean_project_dos): Fix rule. - - * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E), - builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New - variables for controlling executable extensions. - - * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe), - builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk, - builds/win32/w32-icc.mk, builds/win32/w32-icc.mk, - builds/win32/w32-mingw32.mk, builds/win32/w32-vcc, - builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS, - APINAMES_OPTIONS): New targets for controlling the `apinames' tool. - - * Jamfile (GenExportSymbols): Updated. - - - * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c - [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into - FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity. - - - * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c - (FT_MulFix): Performance optimizations. - - - * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P, - FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for - checking points and contours. Update callers to use - FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints - at profile-detected hot-spots. - - * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust' - to 0 to not call `AdjustPoints' every time. - - - * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline - FT_Angle_Diff. - - * src/autofit/afhints.c (af_direction_compute): Re-implement. - (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use - AF_ANGLE_DIFF to speed up the detection of inflexions. - - - * src/tools/apinames.c: Include <string.h>. - (OutputFormat): New enumeration. - (names_dump): Add two parameters to control output format and DLL - name. - (names_dump_windef): Removed. Code folded into `names_dump'. - (read_header_file): Use isalnum, not isalpha. Otherwise function - names with digits aren't read correctly. - (usage): Updated. - (main): New option `-o' to control output file name. - New option `-d' to indicate DLL file name. - Extend `-w' flag to handle Borland and Watcom compilers and linkers. - -2005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed. - ftlib.prj is unmaintained and incompatible with current tree. - freetype.mak is unrecoverably broken. - - * builds/mac/ftlib.prj.xml: Added. - Generated by Metrowerks CodeWarrior 9.0. - - * builds/mac/FreeType.m68k_far.make.txt, - builds/mac/FreeType.m68k_cfm.make.txt, - builds/mac/FreeType.ppc_classic.make.txt, - builds/mac/FreeType.ppc_carbon.make.txt: Added. - Skeleton files of MPW makefiles. - - * builds/mac/ascii2mpw.py: Added. - Python script to make MPW makefile from skeleton. - - * builds/mac/README: Updated. - Almost rewritten to use new files. - -2005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c: Fix invalid casts from NULL to integer typed - variables. Advised by David Turner, Masatake YAMATO, Sean McBride, - and George Williams. - -2005-10-27 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed. - Obsolete. - -2005-10-25 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfdriver.c (sfnt_interface): Move out - `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J. - Ibbs <tibs@sj.co.uk>. - -2005-10-23 Werner Lemberg <wl@gnu.org> - - * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with - C++. - -2005-10-21 David Turner <david@freetype.org> - - * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc): - Another realloc memory counting bug fix. - - * src/tools/Jamfile: Add missing file. - - * src/lzw/Jamfile: Fix incorrect source file reference. - -2005-10-20 David Turner <david@freetype.org> - - * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove, - ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes - to better account for memory reallocations. - - * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c, - src/lzw/rules.mk: First version of LZW loader re-implementation. - Apparently, this saves about 330 KB of heap memory when loading - timR24.pcf.Z. - -2005-10-20 Chia-I Wu <b90201047@ntu.edu.tw> - - * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden), - src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c - (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix - FT_EXPORT/FT_EXPORT_DEF tagging. - -2005-10-19 Chia-I Wu <b90201047@ntu.edu.tw> - - * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to - be invalid when FT_LOAD_NO_SCALE is set. - -2005-10-17 David Turner <david@freetype.org> - - * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and - FT_New_Size if we are opening a face with face_index < 0 (which is - only used for testing the format). - - * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate): - Remove compiler warning. - -2005-10-16 David Turner <david@freetype.org> - - * src/tools/apinames.c: Add new tool to extract public API function - names from header files. - -2005-10-05 Werner Lemberg <wl@gnu.org> - - Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has - a hinting engine of its own. - - * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro. - - * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c - (cid_face_init), src/truetype/ttobjs.c (tt_face_init) - [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c - (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init) - [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags. - - * docs/CHANGES: Document it. - -2005-09-27 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype2.m4: Add license exception so that the file - can be used in any other autoconf script. - -2005-09-26 David Turner <david@freetype.org> - - * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad - computation of the `vertical' flag, causing ugly things in LCD mode - and others. - -2005-09-23 David Turner <david@freetype.org> - - * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that - prevented internal hint mode bitflags from being computed correctly. - - * src/base/Jamfile: Adding src/base/ftgxval.c. - - * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c, - src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c, - src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c, - src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c, - src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c, - src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c, - src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c, - src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c, - src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c, - src/truetype/ttgload.c: Remove _many_ compiler warnings when - compiling with Visual C++ at maximum level (/W4). - - * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based - implementation with one using lookup tables. This simple thing - speeds up glyph loading by 18%, according to ftbench! - - * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for - `get_sfnt' and `load_sfnt' module interfaces. - -2005-09-22 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Mention SING Glyphlet support. - -2005-09-22 David Turner <david@freetype.org> - - * src/base/Jamfile: Disable compilation of ftgxval module - temporarily. - -2005-09-19 David Somers <dsomers@omz13.com> - - * src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a - font to have no `head' table if tables `SING' and `META' are - present; this is to support `SING Glyphlet'. - - `SING Glyphlet' is an extension to OpenType developed by Adobe - primarily to facilitate adding supplemental glyphs to an OpenType - font (with emphasis on, but not necessarily limited to, gaiji to a - CJK font). A SING Glyphlet Font is an OpenType font that contains - the outline(s), either in a `glyf' or `CFF' table, for a glyph; - `cmap', `BASE', and `GSUB' tables are present with the same format - and functionality as a regular OpenType font; there are no `name', - `head', `OS/2', and `post' tables; there are two new tables, `SING' - which contains details about the glyphlet, and `META' which contains - metadata. - - Further information on the SING Glyphlet format can be found at: - - https://www.adobe.com/content/dam/acom/en/devnet/font/pdfs/5148.SING_Tutorial.pdf - - * include/freetype/tttags.h (TTAG_SING, TTAG_META): New macros for - the OpenType tables `SING' and `META'. These two tables are used in - SING Glyphlet Format fonts. - -2005-09-09 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set - FT_FACE_FLAG_KERNING which has been commented out erroneously. - - * docs/CHANGES: Document it. - -2005-09-05 Werner Lemberg <wl@gnu.org> - - Fixes for `make multi' and using C++ compiler. - - * src/gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset, - gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte, - gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF. - (gxv_compare_ranges): Make it static. - (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate, - gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate, - gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve - trace messages. - (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/. - (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE, - GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to - gxvcommn.h. - - * src/gxvalid/gxvcommn.h: Add prototypes for - gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup, - gxv_XStateTable_validate, gxv_array_getlimits_byte, - gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset, - gxv_set_length_by_ulong_offset, gxv_odtect_add_range, - gxv_odtect_validate. - (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE, - GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from - gxvcommn.c. - - * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate, - gxv_bsln_parts_fmt1_validate): Improve trace messages. - - * src/gxvalid/gxvfeat.c: Split off predefined registry stuff to... - * src/gxvalid/gxvfeat.h: New file. - - * src/gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace - message. - - * src/gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN. - (gxv_kern_subtable_fmt1_valueTable_load, - gxv_kern_subtable_fmt1_subtable_setup, - gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors. - (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKNOWN. - Improve trace message. - (gxv_kern_validate_generic): Fix C++ compiler error. - Improve trace message. - (gxv_kern_validate_classic): Fix C++ compiler error. - - * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare - with FT_LOCAL_DEF. - - * src/gxvalid/gxvmort1.c - (gxv_mort_subtable_type1_substitutionTable_load, - gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors. - (gxv_mort_subtable_type1_substTable_validate): Improve trace - message. - (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF. - - * src/gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load, - gxv_mort_subtable_type2_subtable_setup, - gxv_mort_subtable_type2_ligActionOffset_validate, - gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler - errors. - (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF. - - * src/gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare - with FT_LOCAL_DEF. - - * src/gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup, - gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler - errors. - (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF. - - * src/gxvalid/gxvmort.c: Include gxvfeat.h. - (gxv_mort_featurearray_validate, gxv_mort_coverage_validate): - Declare with FT_LOCAL_DEF. - (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace - messages. - - * src/gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove. - - * src/gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare - with FT_LOCAL_DEF. - - * src/gxvalid/gxvmorx1.c - (gxv_morx_subtable_type1_substitutionTable_load, - gxv_morx_subtable_type1_subtable_setup, - gxv_morx_subtable_type1_entry_validate, - gxv_morx_subtable_type1_substitutionTable_validate): Fix C++ - compiler errors. - (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF. - - * src/gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load, - gxv_morx_subtable_type2_subtable_setup, - gxv_morx_subtable_type2_ligActionIndex_validate, - gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler - errors. - (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF. - Fix typo. - - * src/gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare - with FT_LOCAL_DEF. - - * src/gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load, - gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error. - (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF. - - * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate, - gxv_morx_validate): Improve trace message. - - * src/gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler - warnings. - (gxv_opbd_validate): Improve trace message. - - * src/gxvalid/gxvprop.c: Decorate constants with `U' and `L' where - appropriate. - (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace - message. - - * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused - parameter. Update all callers. - (gxv_trak_validate): Improve trace message. - - * rules.mk (GXV_DRV_H): Add gxvfeat.h. - -2005-09-01 Werner Lemberg <wl@gnu.org> - - * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'. - - * src/gxvalid/gxvmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE), - src/gxvalid/gxvmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix - typo. - - * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c, - src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c, - src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace - messages. - Decorate constants with `U' and `L' where appropriate. - Fix compiler warnings. - -2005-08-31 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (load_truetype_glyph): Fix typo. - - * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message. - - * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'. - - * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, - src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c, - src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c, - src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c, - src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace - messages. - Decorate constants with `U' and `L' where appropriate. - Fix compiler warnings. - -2005-08-30 Werner Lemberg <wl@gnu.org> - - * src/gxvalid/README: Revised. - * src/gxvalid/gxvbsln.c: Fix compiler warnings. - * src/gxvalid/gxvcommn.c: Fix compiler warnings. - (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused - parameter. Update all callers. - Improve trace messages. - Some formatting. - -2005-08-29 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h, include/freetype/ftchapters.h: Add - a preliminary section with some explanations about user allocation. - - * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter): - Don't abort if there are no data types, functions, etc., in a - section. - Print synopsis only if we have a data type, function, etc. - - * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE, - docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX, - docs/VERSION.DLL, docs/formats.txt: Revised, formatted. - -2005-08-28 George Williams <gww@silcom.com> - - * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed. - (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'. - -2005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk> - - * builds/unix/freetype2.in (CFlags): Add missing directory. - -2005-08-24 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Mention gxvalid module. - -2005-08-23 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize - render mode properly. Reported by chris@dokein.co.uk. - -2005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Add gxvalid module to validate TrueType GX/AAT tables. - - Modifications on existing files: - - * Jamfile: Register gxvalid module. - * src/base/Jamfile: Register ftgxval.c. - * src/base/rule.mk: Register ftgxval.c. - * docs/INSTALL.ANY: Register gxvalid/gxvalid.c. - - * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro - to include gxvalid header file. - * include/freetype/config/ftmodule.h: Register gxv_module_class. - - * include/freetype/ftchapters.h: Add comment about gx_validation. - * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX - to FT_VALIDATE_OTXXX to co-exist with gxvalid. - * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables. - - * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New - macro for gxvalid service. - * include/freetype/internal/fttrace.h: Add trace facilities for - gxvalid. - - New files on existing directories: - - * include/freetype/internal/services/svgxval.h: Registration of - validation service for TrueType GX/AAT and classic kern table. - * include/freetype/ftgxval.h: Public API definition to use gxvalid. - * src/base/ftgxval.c: Public API of gxvalid. - - New files under src/gxvalid/: - - * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk - src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h - src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h - src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c - src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c - src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c - src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c - src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c - src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c - src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c - src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c - src/gxvalid/gxvtrak.c: New files, gxvalid body. - -2005-08-21 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline - to (0,0) if bit 1 of the `head' table isn't set. This improves - rendering of buggy fonts. - -2005-08-20 Chia I Wu <b90201047@ntu.edu.tw> - - * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of - ttmetrics here. TrueType fonts with only sbits always have - ttmetrics.valid set to false. - - * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is - valid before loading outline glyph. - - * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak. - -2005-08-20 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing - `hhea' table for SFNT Mac fonts. Change based on a patch by - mpsuzuki@hiroshima-u.ac.jp. - -2005-08-20 Masatake YAMATO <jet@gyve.org> - - * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead - of ft_setjmp. - -2005-08-19 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler - warnings. - -2005-08-16 Chia I Wu <b90201047@ntu.edu.tw> - - * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright - messages. - -2005-08-16 Chia I Wu <b90201047@ntu.edu.tw> - - * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original - TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context - with slight changes. - Update all callers. - (TT_New_Context): Now takes TT_Driver argument directly. - Update all callers. - - * src/truetype/ttobjs.h (tt_slot_init): New function. - * src/truetype/ttobjs.c (tt_driver_init): Initialize execution - context here. - (tt_slot_init): New function to create extra points for the internal - glyph loader. We then use it directly, instead of face's glyph - loader, when loading glyph. - - * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for - glyph slot initialization. - (Load_Glyph): Load flag dependencies are handled here. Return error - if size is NULL. - - * src/truetype/ttgload.c: Heavy cleanup and refactoring. - (org_to_cur): Removed. - (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints. - (TT_Hint_Glyph): New function to hint a zone, prepared by caller. - (TT_Process_Simple_Glyph): s/load/loader/. - Use loader->pp values instead of recalculation. - Use TT_Hint_Glyph. - No need to save/restore loader->stream before and after - TT_Vary_Get_Glyph_Deltas now. - (TT_LOADER_SET_PP): New macro to calculate and set the four phantom - points. - (load_truetype_glyph): Never set exec->glyphSize to 0. This closes - Savannah bug #13107. - Forget glyph frame before calling TT_Process_Simple_Glyph. - Use TT_LOADER_SET_PP. - Scale all four phantom points. - Split off some functionality to ... - (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These - new functions. - (TT_Load_Glyph): Set various fields of `glyph' here, not in - load_truetype_glyph and compute_glyph_metrics. - Split off some functionality to ... - (load_sbit_image, tt_loader_init): These new functions. - (compute_glyph_metrics): Call FT_Outline_Get_CBox. - -2005-08-08 Werner Lemberg <wl@gnu.org> - - * docs/INSTALL.ANY: Updated. - -2005-08-05 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (cff_builder_close_contour), - src/psaux/psobjs.c (t1_builder_close_contour): Protect against - zero `outline' pointer. - - * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero - `loader' address. - -2005-08-03 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]: - Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics - to make X work again. - -2005-08-02 Werner Lemberg <wl@gnu.org> - - * src/otvalid/otvcommn.h: Remove dead code. - -2005-07-31 Chia I Wu <b90201047@ntu.edu.tw> - - * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New - functions. - - * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New - functions. - (tt_size_init): Add 4, instead of 2, (phantom) points to twilight - zone. - Move code that runs fpgm to tt_size_run_fpgm. - (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep. - (tt_glyphzone_new): Allocate right size of arrays. - Set max_points and max_contours properly. - -2005-07-26 Chia I Wu <b90201047@ntu.edu.tw> - - * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary - computations and clean up. - - * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the - internal copy of metrics. - -2005-07-12 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype. - Reported by Xerxes. - -2005-07-04 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo. - Reported by Brett Hutley. - -2005-06-30 David Turner <david@freetype.org> - - * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c: - Removing compiler warnings (Visual C++ /W4). - - - Implement a work-around for broken C preprocessor in Visual C++ (it - has been confirmed by the MS developers that it is indeed a bug - which won't be fixed in the very near future). - - * Jamfile (FT2_COMPONENTS): Include otvalid (again). - - * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros. - (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to - avoid argument expansion by argument prescan. - Append `Func' to all affected macros and change them to take just a - single argument. Example: `AttachList' is renamed to - `AttachListFunc'. - - * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, - src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros - affected by the changes to OTV_NESTx and modify them to take just a - single argument. - -2005-06-20 Chia I Wu <b90201047@ntu.edu.tw> - - * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function - ft_glyphslot_grid_fit_metrics. - - * src/truetype/ttgload.c (compute_glyph_metrics): Use - ft_glyphslot_grid_fit_metrics. - - * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c - (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use - ft_glyphslot_grid_fit_metrics. - FT_Outline_Get_CBox is called twice. - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more - reasonable values when emboldening outline glyphs. The theoretic - ones are unrealistic. - -2005-06-16 Chia I Wu <b90201047@ntu.edu.tw> - - * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be - halved. - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default - strength. - Don't increase slot->advance.y. - -2005-06-16 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2. - (FREETYPE_PATCH): Set to 0. - - * builds/unix/configure.ac (version_info): Set to 9:9:3. - Currently, we are still binary compatible. - - * builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/. - - * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): - s/2.1.9/2.1.10/. - - * docs/CHANGES, docs/VERSION.DLL: Updated. - - * ChangeLog: Split off older entries into... - * ChangeLog.20, ChangeLog.21: These new files. - -2005-06-15 Kirill Smelkov <kirr@mns.spb.ru> - - The next release will be 2.2.0, so don't worry about source code - backward compatibility. - - * include/freetype/ftimage.h (FT_Outline_MoveToFunc, - FT_Outline_LineToFunc, FT_Outline_ConicToFunc, - FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc), - include/freetype/ftrender.h (FT_Glyph_TransformFunc, - FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate - parameters with `const' where appropriate. - -2005-06-15 Chia I Wu <b90201047@ntu.edu.tw> - - * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY - to make glyphs centered vertically. - - * src/truetype/ttgload.c (compute_glyph_metrics): Compute - vertBearingY to make glyphs centered vertically. - Fix some bugs in vertical metrics: - - . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font - units. - . As we use the glyph's cbox to calculate the top bearing now - there is no need to adjust `top'. - -2005-06-15 Werner Lemberg <wl@gnu.org> - - * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be - in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake. - -2005-06-13 Werner Lemberg <wl@gnu.org> - - * docs/release: Update. - ----------------------------------------------------------------------------- - -Copyright (C) 2005-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.23 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.23 deleted file mode 100644 index 0e32ca8e05c..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.23 +++ /dev/null @@ -1,7948 +0,0 @@ -2010-02-13 Werner Lemberg <wl@gnu.org> - - * Version 2.3.12 released. - ========================== - - - Tag sources with `VER-2-3-12'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.3.12. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.3.11/2.3.12/, s/2311/2312/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12. - - * builds/unix/configure.raw (version_info): Set to 10:0:4. - -2010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Improve autotool version checking to work with beta releases. - - * autogen.sh (check_tool_version): Improve the extraction of version - number from "tool --version" output. Some beta releases of - autotools have extra strings before version number. - -2010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix overallocating bug in FT_Outline_New_Internal(). - - * src/base/ftoutln.c (FT_Outline_New_Internal): The length of - FT_Outline->points[] should be numPoints, not 2 * numPoints. - Found by Paul Messmer, see - https://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html - -2010-02-10 Ken Sharp <ken.sharp@artifex.com> - - Really fix Savannah bug #28678 (part 2). - - Since we consider `sbw' for the horizontal direction only, we still have - to synthesize vertical metrics if the user wants to use the vertical - writing direction. - - * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c - (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): - Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is - set. - -2010-02-10 Ken Sharp <ken.sharp@artifex.com> - - Really fix Savannah bug #28678 (part 1). - - After long discussion, we now consider the character width vector - (wx,wy) returned by the `sbw' Type 1 operator as being part of *one* - direction only. For example, if you are using the horizontal - writing direction, you get the horizontal and vertical components of - the advance width for this direction. Note that OpenType and CFF fonts - don't have such a vertical component; instead, the GPOS table can be - used to generate two-dimensional advance widths (but this isn't - handled by FreeType). - - * include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add - `advance_v' field to hold the vertical component of the advance - value. - - * src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c - (cff_slot_load), src/type1/t1gload.c - (T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c - (cid_load_glyph): Use it. - -2010-02-08 Werner Lemberg <wl@gnu.org> - - * devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define. - -2010-02-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Prevent NULL pointer dereference passed to FT_Module_Requester. - - * src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'. - * src/psnames/psmodule.c (psnames_get_interface): Ditto. - - * src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'. - * src/truetype/ttdriver.c (tt_get_interface): Ditto. - -2010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix memory leaks in previous patch. - - * src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings - allocated for face->root.family_name and style_name. - -2010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - New parameters for FT_Open_Face() to ignore preferred family names. - - Preferred family names should be used for legacy systems that - can hold only a few faces (<= 4) for a family name. Suggested by - Andreas Heinrich. - https://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html - - * include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY, - FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define. - - * src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and - ignore preferred family and subfamily names if requested. - -2010-01-27 Ken Sharp <ken.sharp@artifex.com> - - Fix Savannah bug #28678. - - * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c - (cid_load_glyph): Handle vertical metrics correctly. - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle - vertical metrics correctly. - (T1_Load_Glyph): Don't synthesize vertical metrics. - -2010-01-14 Werner Lemberg <wl@gnu.org> - - Make FT_Set_Transform work if no renderer is available. - - * src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation - if no renderer is compiled into the library. - -2010-01-14 Werner Lemberg <wl@gnu.org> - - Fix compilation warning. - - * src/base/ftbase.h: s/LOCAL_DEF/LOCAL/. - * src/base/ftobjs.c: Include ftbase.h conditionally. - -2010-01-11 Kwang Yul Seo <skyul@company100.net> - - Provide inline assembly code for RVCT compiler. - This is Savannah patch #7059. - - * include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER, - FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define. - -2010-01-08 Ken Sharp <ken.sharp@artifex.com> - - Fix Savannah bug #28521. - - Issue #28226 involved a work-around for a font which used the - `setcurrentpoint' operator in an invalid way; this operator is only - supposed to be used with the result of OtherSubrs, and the font used - it directly. The supplied patch removed the block of code which - checked this usage entirely. - - This turns out to be a Bad Thing. If `setcurrentpoint' is being - used correctly it should reset the flex flag in the decoder. If we - don't do this then the flag never gets reset and we omit any further - contours from the glyph (at least until we close the path or - similar). - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - <op_setcurrentpoint>: Handle `flex_state' correctly. - -2010-01-05 Werner Lemberg <wl@gnu.org> - - Apply reports from clang static analyzer. - - * src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c - (FT_Stroker_ParseOutline), src/base/ftsynth.c - (FT_GlyphSlot_Embolden): Remove dead code. - - * src/base/ftpatent.c (_tt_check_patents_in_table): Initialize - `offset_i' and `length_i'. - -2010-01-05 Ralph Giles <giles@ghostscript.com> - - Enable the incremental font interface by default. - - Ghostscript requires the incremental font interface for handling - some Postscript documents. It is moving to using FreeType as its - primary renderer; supporting this in the default build makes it - Ghostscript to be linked against the system FreeType when one is - available. - - * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL): - Uncomment. - -2010-01-05 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #28395. - - * src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c - (T1_Load_Glyph): Don't check `num_glyphs' if incremental interface - is used. - -2010-01-05 Ken Sharp <ken.sharp@artifex.com> - - Make Type 1 `seac' operator work with incremental interface. - This fixes Savannah bug #28480. - - * src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names' - if incremental interface is used. - -2010-01-04 Ken Sharp <ken.sharp@artifex.com> - - Make incremental interface work with TrueType fonts. - This fixes Savannah bug #28478. - - * src/truetype/ttgload.c (load_truetype_glyph): Don't check - `glyf_offset' if incremental interface is used. - -2009-12-31 Lars Abrahamsson <wonko@opera.com> - - Make compilation with FT_CONFIG_OPTION_PIC work again. - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]: - Declare `library' for FT_BITMAP_GLYPH_CLASS_GET. - - * src/base/ftinit.c (ft_destroy_default_module_classes, - ft_create_default_module_classes): Use proper casts (needed for C++ - compilation). - - * src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP. - -2009-12-22 Marc Kleine-Budde <mkl@pengutronix.de> - - Make freetype-config aware of $SYSROOT. - This is Savannah patch #7040. - - * builds/unix/freetype-config.in: Decorate with ${SYSROOT} where - appropriate. - -2009-12-20 Werner Lemberg <wl@gnu.org> - - Fix compiler warning. - Reported by Sean. - - * src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty - source files; however, some compilers warn about an unused variable - declaration. This is now replaced with a typedef. - -2009-12-18 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #28320. - - There exist corrupt, subsetted fonts (embedded in PDF files) which - contain a private dict that ends with an unterminated floating point - number (no operator following). We now ignore this error (as - acrobat does). - - * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for - unterminated floating point numbers. - -2009-12-16 Werner Lemberg <wl@gnu.org> - - Really fix compiler warnings. - Reported by Sean. - - * src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS, - GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros. - -2009-12-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Improve configure.raw to copy some options from CFLAGS to LDFLAGS. - The linker of Mac OS X 10.6 is sensitive to the architecture. If - the architectures are specified explicitly for the C compiler, the - linker requires the architecture specifications too. - - * builds/unix/configure.raw: Replace `-isysroot' option parser by - more generic argument parser. - -2009-12-15 Werner Lemberg <wl@gnu.org> - - Fix compiler warnings. - Reported by Sean. - - * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data - type. - -2009-12-14 Ken Sharp <ken.sharp@artifex.com> - - Ignore invalid `setcurrentpoint' operations in Type 1 fonts. - This fixes Savannah bug #28226. - - At least two wild PostScript files of unknown provenance contain - Type 1 fonts, apparently converted from TrueType fonts in earlier - PDF versions of the files, which use the `setcurrentpoint' operator - inappropriately. - - FreeType currently throws an error in this case, but Ghostscript and - Adobe Distiller both accept the fonts and ignore the problem. This - commit #ifdefs out the check so PostScript interpreters using - FreeType can render these files. - - The specification says `setcurrentpoint' should only be used to set - the point after a `Subr' call, but these fonts use it to set the - initial point to (0,0). Unnecessarily so, as they correctly use an - `hsbw' operation which implicitly sets the initial point. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - <op_setcurrentpoint>: Comment out code. - -2009-12-14 Bram Tassyns <bramt@enfocus.be> - - Fix parsing of /CIDFontVersion. - This fixes Savannah bug #28287. - - * src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in - t1tables.h) is of type FT_Fixed. - -2009-12-14 Werner Lemberg <wl@gnu.org> - - Trace glyph index in CID module. - Suggested in Savannah patch #7023. - - * src/cid/cidgload.c (cid_load_glyph): Add tracing message. - -2009-12-03 Werner Lemberg <wl@gnu.org> - - Fix compiler warnings. - - * src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the - proper preprocessor conditional. - * src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc. - -2009-11-25 John Tytgat <John.Tytgat@esko.com> - - Better handling of start of `eexec' section. - This fixes Savannah bug #28090. - - * src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace - characters before start of `eexec' section. - -2009-11-20 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #27742. - - * src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by - zero, using a threshold for `theta'. - -2009-11-20 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #28036. - - * src/type1/t1afm.c (t1_get_index): Fix comparison. - -2009-11-16 Werner Lemberg <wl@gnu.org> - - Fix compiler warnings. - Reported by Kevin Blenkinsopp <arqon@promode.org>. - - * src/sfnt/ttload.c (check_table_dir): Use proper data type. - -2009-11-15 Werner Lemberg <wl@gnu.org> - - Really fix FreeDesktop bug #21197. - This also fixes Savannah bug #28021. - - * src/autofit/aflatin.c (af_latin_metrics_check_digits), - src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop. - -2009-11-15 Werner Lemberg <wl@gnu.org> - - Add tracing messages for advance values. - - * src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c - (TT_Get_HMetrics, TT_Get_VMetrics): Do it. - -2009-11-08 Werner Lemberg <wl@gnu.org> - - Fix compiler warning. - Reported by Jeremy Manson <jeremy.manson@gmail.com>. - - * src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'. - -2009-11-04 Werner Lemberg <wl@gnu.org> - - Remove compiler warning. - Reported by Sean McBride <sean@rogue-research.com>. - - * src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to - `int', as specified in the printf(3) man page. - -2009-11-04 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #27921. - - * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c - (cid_face_init), src/type1/t1afm.c (T1_Read_Metrics), - src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant - values for rounding if the argument can be negative. - -2009-11-03 Bram Tassyns <bramt@enfocus.be> - - Add basic support for Type1 charstrings in CFF. - This fixes Savannah bug #27922. - - * src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle - `seac', `sbw', and `setcurrentpoint' opcodes. - (cff_compute_bias): Add parameter to indicate the charstring type. - Update all callers. - (cff_operator_seac): Add parameter for side bearing. - (cff_decoder_parse_charstrings): Updated for more Type1 support. - -2009-11-03 Werner Lemberg <wl@gnu.org> - - Return correct `linearHoriAdvance' value for embedded TT bitmaps too. - Reported by Jeremy Manson <jeremy.manson@gmail.com>. - - src/truetype/ttgload.c (load_truetype_glyph): Add parameter to - quickly load the glyph header only. - Update all callers. - (tt_loader_init): Add parameter to quickly load the `glyf' table - only. - Update all callers. - (TT_Load_Glyph): Compute linear advance values for embedded bitmap - glyphs too. - -2009-11-03 Werner Lemberg <wl@gnu.org> - - Improve code readability. - - * src/ttgload.c (load_truetype_glyph): Move metrics calculation - to... - (tt_get_metrics): This new function. - -2009-10-26 Bram Tassyns <bramt@enfocus.be> - - Fix Savannah bug #27811. - - * src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix - signed/unsigned mismatch. - -2009-10-19 Ning Dong <flintning@163.com> - - Fix handling of `get' and `put' CFF instructions. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get, - cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of - elements for the `get' and `put' operators to 32. - * src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define. - (CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'. - -2009-10-18 Werner Lemberg <wl@gnu.org> - - Fix handling of `dup' CFF instruction. - Problem and solution reported by Ning Dong <flintning@163.com>. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>: - Increase `args' by 2, not 1. - -2009-10-10 Werner Lemberg <wl@gnu.org> - - * Version 2.3.11 released. - ========================== - - - Tag sources with `VER-2-3-11'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.3.11. - - * README, Jamfile (RefDoc), builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualce/index.html, - builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11. - - * builds/unix/configure.raw (version_info): Set to 9:22:3. - -2009-10-10 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES, docs/release: Updated. - -2009-10-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops - truncation. Reported by Martin von Gagern and Peter Volkov. - https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256 - -2009-10-06 Werner Lemberg <wl@gnu.org> - - * Version 2.3.10 released. - ========================== - - - Tag sources with `VER-2-3-10'. - - * builds/toplevel.mk (major, minor, patch): Fix regexp to allow more - than a single digit. - (dist): We now use git. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.3.10. - - * README, Jamfile (RefDoc), builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualce/index.html, - builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. - - * builds/unix/configure.raw (version_info): Set to 9:21:3. - -2009-10-06 Werner Lemberg <wl@gnu.org> - - Fix `make multi'. - - * src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define. - - * src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H. - -2009-09-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582. - Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed. - Now these functions should be called with FTC_Node or FTC_MruNode - variable, and the caller should cast them to appropriate pointers to - concrete data. These tricky casts can GCC-4.4 optimizer (-O2) - confused and the crashing binaries are generated. - - * src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast. - Now the 4th argument `node' of this function should be typed as - FTC_MruNode. - - * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline - implementation, new temporal variable FTC_MruNode `_mrunode' to take - the pointer from FTC_MRULIST_LOOKUP_CMP(). For non-inline - implementation, tricky cast is dropped. - - * src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting - to FTC_SizeNode. - (FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode - `mrunode', and FTC_SIZE_NODE() is inserted. - (FTC_FACE_NODE): New macro casting to FTC_FaceNode. - (FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode - `mrunode', and FTC_FACE_NODE() is inserted. - - * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of - `node' from FTC_INode to FTC_Node. Extra casting macro FTC_NODE() - is dropped. - (FTC_ImageCache_LookupScaler): Ditto. - (FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to - FTC_Node. Extra casting macro FTC_NODE() is dropped. FTC_SNODE() - is inserted. - (FTC_SBitCache_LookupScaler): Ditto. - - * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of - `node' from FTC_CMapNode to FTC_Node. Extra casting macro - FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted. - -2009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache, psaux, type1] Fix for multi build. - In multi build, some cpp functions are left as unresolved symbols. - - * src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1(). - - * src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for - FIXED_TO_INT(). - * src/type1/t1gload.c: Ditto. - * src/type1/t1objs.c: Ditto. - -2009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [autofit] Fix for multi build. - - * src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use - FT_DECLARE_MODULE() macro in multi build. - - * src/autofit/aflatin.c: Include <ft2build.h> to handle - FT_ADVANCES_H correctly in multi build. - -2009-09-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Check the face filled by FTC_Manager_LookupFace(). - - * src/cache/ftcbasic.c (ftc_basic_family_get_count): Return - immediately if FTC_Manager_LookupFace() fills face by NULL. Such - case can occur when the code is optimized by GCC-4.2.x. - -2009-09-23 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2009-09-12 Werner Lemberg <wl@gnu.org> - - [raster] Fix 5-levels grayscale output. - This was broken since version 2.3.0. - - * src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which - were then computed dynamically). - (Vertical_Gray_Sweep_Step): Updated. - - (ft_black_render): Initialize `worker->gray_lines' (problem found by - valgrind). - - (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Don't #undef, just - comment out. - -2009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Improve configure.raw for cross build. - - * builds/unix/configure.raw: Remove temporal files created by the - suffix checking for CC_BUILD. Set XX_ANSIFLAGS and XX_CFLAGS when - cross compiler is GCC. AC_PROG_CC checks whether the cross compiler - is GCC, its result is stored in GCC. - -2009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [BDF] Modify hash API to take size_t value instead of void *. - - The hash API in BDF driver is designed to be generic, it takes - void * typed data. But BDF driver always gives an unsigned long - integer (the index to a property). To reduce non-essential - casts from unsigned long to void* and from void* to unsigned - long, the hash API is changed to take size_t integer. - The issue of incompatible cast between unsigned long and void* - on LLP64 platform is reported by NightStrike from MinGW-Win64 - project. See - https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html - - * src/bdf/bdf.h: The type of hashnode->data is changed from - void* to size_t. - - * src/bdf/bdflib.c (hash_insert): Get size_t data, instead of - void* data. - (bdf_create_property): Get the name length of new property by - size_t variable, with a cut-off at FT_ULONG_MAX. - (_bdf_set_default_spacing): Get the name length of the face by - size_t variable, with a cut-off at 256. - (bdf_get_property): Get the property id by size_t variable to - reduce the casts between 32-bit prop ID & hashnode->data during - simple copying. - (_bdf_add_property): Ditto. - (_bdf_parse_start): Calculate the index to the property array - by size_t variable. - (bdf_get_font_property): Drop a cast to unsigned long. - -2009-09-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [Win64] Improve the computation of random seed from stack address. - - On LLP64 platform, the conversion from pointer to FT_Fixed need - to drop higher 32-bit. Explicit casts are required. Reported by - NightStrike from MinGW-w64 project. See - https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html - - * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly. - - * src/psaux/t1decode.c: Ditto. - - -2009-09-03 Werner Lemberg <wl@gnu.org> - - [raster] Improvements for stand-alone mode. - - * src/raster/rules.mk: Don't handle ftmisc.h. It is needed for - stand-alone mode only. - - * src/raster/ftmisc.h (FT_MemoryRec, FT_Alloc_Func, FT_Free_Func, - FT_Realloc_Func): Copy declarations from ftsystem.h. - -2009-09-02 Bram Tassyns <bramt@enfocus.be> - - Improve vertical metrics calculation (Savannah bug #27364). - - The calculation of `vertBearingX' is not defined in the OTF font - spec so FreeType does a `best effort' attempt. However, this value - is defined in the PDF and PostScript specs, and that algorithm is - better than the one FreeType currently uses: - - FreeType: Use the middle of the bounding box as the X coordinate - of the vertical origin. - - Adobe PDF spec: Use the middle of the horizontal advance vector as - the X coordinate of the vertical origin. - - FreeType's algorithm goes wrong if you have a really small glyph - (like the full-width, circle-like dot at the end of the sentence, as - used in CJK scripts) with large bearings. With the FreeType - algorithm this dot gets centered on the baseline; with the PDF - algorithm it gets the correct location (in the top right). Note - that this is a serious issue, it's like printing the dot at the end - of a Roman sentence at the center of the textline instead of on the - baseline like it should. So i believe the PDF spec's algorithm - should be used in FreeType as well. - - The `vertBearingY' value for such small glyphs is also very strange - if no `vmtx' information is present, since the height of the bbox is - not representable for the height of the glyph visually (the - whitespace up to the baseline is part of the glyph). The fix also - includes some code for a better estimate of `vertBearingY'. - - * src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX' - is now calculated as described by the Adobe PDF Spec. Estimate for - `vertBearingY' now works better for small glyphs completely above or - below the baseline into account. - - * src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now - calculated as described by the Adobe PDF Spec. Vertical metrics - information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS - was not defined. - - * src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is - now calculated as described by the Adobe PDF Spec. - -2009-09-01 John Tytgat <John.Tytgat@esko.com> - - Fix custom cmap for empty Type 1 font (Savannah bug #27294). - - * include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update - comment to reflect revised code_last meaning. - * src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c - (T42_Open_Face): Assign max_char as highest character code + 1 and - use this for T1_EncodingRecRec_::code_last. - * src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised - T1_EncodingRecRec_::code_last meaning. - -2009-08-25 Werner Lemberg <wl@gnu.org> - - Fix rendering of horizontally compressed CFFs. - Bug reported by Ivan Nincic <inincic@pdftron.com>. - - * src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of - `font_matrix' also. - - * docs/CHANGES: Updated. - -2009-08-03 suyu0925@gmail.com - - Don't call `ft_fseek' every time when executing `ft_fread'. - - * src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c - (ft_ansi_stream_io): Implement it. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Cast a charcode to 32-bit in cmap format 14 parser. - - * src/sfnt/ttcmap.c (tt_cmap14_char_var_index, - tt_cmap14_char_var_isdefault, tt_cmap14_char_variants, - tt_cmap14_variant_chars): Correct mismatches from - FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments - are replaced by FT_UInt32 arguments. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Cast a charcode to 32-bit in cmap format 12 parser. - - * src/sfnt/ttcmap.c (tt_cmap12_char_next): - Insert explicit cast from FT_UFast to FT_UInt32 - for return value. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - psaux: Fix a few casts to FT_Int32 value. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): - Fix a few casts setting `value' from FT_Long to FT_Int32, - because `value' is typed as FT_Int32 since 2009-06-22. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Fix a data type mismatching with its source. - - * src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the - type of `gindex' from FT_ULong to FT_UInt because - it is set by FT_UInt tt_cmap13_char_map_binary() or - TT_CMap13->cur_gindex. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Extend a few local variables to load 32-bit values. - - * src/sfnt/ttkern.c (tt_face_load_kern): Extend `count' - and `kern' to load 32-bit values. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pfr: Extend `num_aux' to take 32-bit value. - - * src/pfr/pfrload.c (pfr_phy_font_load): Extend - `num_aux' to load 32-bit value. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops. - - * src/pcf/pcfread.c (pcf_get_properties): Load `nprops' - as FT_ULong value from PCF file, but truncate it as - int to fit PCF_Face->nprops. The number of truncated - properties is shown in the trace message. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - gxvalid: Extend a few local variables to reduce the casts. - - * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate): - Extend `type' and `rest' to take FT_ULong values. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - gxvalid: Extend `settingTable' to take 32-bit offset. - - * src/gxvalid/gxvfeat.c (gxv_feat_name_validate): - Extend `settingTable' to take 32-bit offset. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - autofit: Cast FT_Long glyph_count to compare with FT_UInt GID. - - * src/autofit/afglobal.c (af_face_globals_is_digit, - af_face_globals_compute_script_coverage): Cast FT_Long - globals->glyph_count to FT_ULong, to compare with FT_UInt - gindex. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - smooth: Exclude 16-bit system in invalid pitch/height check. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): - pitch and height are typed as FT_UInt but checked to fit - 16-bit range, to avoid the overflows. On 16-bit system, - this checking inserts a conditional that never occurs. - -2009-07-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cff: Type large constants > 0x7FFF as long for 16-bit systems. - - * src/cff/cffload.c (cff_charset_load): Type large - constants > 0x7FFF as long, because normal constants - are typed signed integer that is less than 0x8000 on - 16-bit systems. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - base: Remove an unused variable. - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an - unused variable `library'. glyph->library is used. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cache: Check higher bits in flags for non ILP32 systems. - - 4 public functions ought to take FT_ULong flags, but take - FT_UInt flags. To keep binary compatibility, we drop higher - bits on non ILP32 platforms, - ILP64 systems: No drop occurs. - LP64 systems: Higher bits are not used. - 16-bit systems: Drop can occur. - See - https://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html - These functions will be refined to take FT_ULong flags in - next bump with incompatible API change. - - * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): - Check `flags' in `type', the 2nd argument. - (FTC_SBitCache_Lookup): Ditto. - (FTC_ImageCache_LookupScaler): Check `load_flags', - the 3rd argument. - (FTC_SBitCache_LookupScaler): Ditto. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Ignore invalid GIDs in glyph name lookup. - - * include/freetype/internal/fttrace.h: - New trace module for sfdriver.c is added. - - * src/sfnt/sfdriver.c (sfnt_get_name_index): - Restrict glyph name lookup to FT_UInt GID. - Genuine TrueType can hold 16-bit glyphs. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pcf: Fix a comparison between FT_Long and FT_ULong. - - * src/pcf/pcfread.c (pcf_get_bitmaps): Return an error - if PCF_Face->nmetrics is negative. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - gxvalid: Guarantee `nFeatureFlags' size up to 32-bit. - - * src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate): - Extend the 3rd argument `nFeatureFlags' to FT_ULong. - * src/gxvalid/gxvmort.h: Ditto. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Insert explicit cast for LP64 system. - - * src/sfnt/ttkern.c (tt_face_load_kern): Insert - cast from unsigned long to FT_UInt32. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - gxvalid: Guarantee `just' table size upto 32-bit. - - * src/gxvalid/gxvjust.c (gxv_just_validate): - The type of `offset' is changed from FT_UInt to - FT_Offset, for 16-bit platforms. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - gxvalid: Guarantee `trak' table size upto 32-bit. - - * src/gxvalid/gxvtrak.c (gxv_trak_validate): - The type of `offset' is changed from FT_UInt to - FT_Offset, for 16-bit platforms. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - type1: Fix a data type mismatching with its source. - - * include/freetype/internal/t1types.h: The type of - T1_Face->buildchar is matched with T1_Decoder->top. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pfr: Fix a data type mismatching with its source. - - * src/pfr/pfrtypes.h: The type of PFR_KernItem->offset - is extended from FT_UInt32 to FT_Offset, because it is - calculated with the pointer difference, in - pfr_extra_item_load_kerning_pairs(). - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pfr: Fix a data type mismatching with its source. - - * src/pfr/pfrtypes.h: The type of PFR_PhyFont->chars_offset - is extended from FT_UInt32 to FT_Offset, because it is - calculated with the pointer difference in pfr_phy_font_load(). - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pfr: Fix a data type mismatching with its source. - - * src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset - is extended from FT_UInt32 to FT_Long, because it is - loaded by FT_STREAM_POS() in pfr_phy_font_load(). - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - smooth: Improve the format in debug message. - - * src/smooth/ftgrays.c (gray_dump_cells): Improve the - format specifications to dump variables. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Fix a data type mismatching with its source. - - * src/sfnt/sfobjs.c (sfnt_load_face): The type of - local `flags' is matched with FT_Face->face_flags. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - psaux: Fix a data type mismatching with its source. - - * include/freetype/internal/psaux.h: The type of - T1_DecoderRec.buildchar is matched with - T1_DecoderRec.top. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Extend TrueType GX packed deltas to FT_Offset. - - * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): - The type of 2nd argument `delta_cnt' is changed from - FT_Int to FT_Offset, because its source can be cvt - table size calculated from stream position. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Extend mmvar_len to hold size_t values. - - * src/truetype/ttgxvar.h: The type of - GX_BlendRec.mmvar_len is changed from FT_Int to - FT_Offset, because TT_Get_MM_Var() calculates it - by sizeof() results. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Check invalid function number in IDEF instruction. - - * src/truetype/ttinterp.c (Ins_IDEF): Check - if the operand fits to 8-bit opcode limitation. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Check invalid function number in FDEF instruction. - - * src/truetype/ttinterp.c (Ins_FDEF): Check - if the operand fits 16-bit function number. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Truncate the deltas of composite glyph at 16-bit values. - - * src/truetype/ttgload.c (load_truetype_glyph): - Insert cast from FT_Long (deltas[i].{x,y}) to - FT_Int16 in the summation of deltas[] for composite - glyphs. Because deltas[i] is typed as FT_Pos, - its component x, y are typed as FT_Long, but - their sources are always FT_Int16 when they are - loaded by ft_var_readpackeddeltas(). However, - the limitation about the summed deltas is unclear. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Truncate the instructions upto 16-bit per a glyph. - - * src/truetype/ttgload.c (TT_Hint_Glyph): Truncate - the instructions upto 16-bit length per a glyph. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Cast the numerical operands to 32-bit for LP64 systems. - - * src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP, - Ins_MIRP): Insert cast from long (args[], the - operands passed to TrueType operator) to FT_Int32 - (the argument of TT_MulFix14()). - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Cast the project vector to 32-bit for LP64 system. - - * src/truetype/ttinterp.c (Project, DualProject): - Insert casts from FT_Pos (the arguments `dx', `dy') - to FT_UInt32 (the argument to TT_DotFix14()). - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Cast the scaling params to 32-bit for LP64 system. - - * src/truetype/ttgload.c (TT_Process_Composite_Component): - Insert casts from long (return value of FT_MulFix()) to - FT_Int32 (the argument to FT_SqrtFixed()). - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Cast a character code to FT_UInt32 for LP64 system. - - * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary, - tt_cmap14_variants, tt_cmap14_char_variants, - tt_cmap14_def_char_count, tt_cmap14_get_def_chars, - tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars) - Insert casts when FT_UInt32 variable is loaded by - TT_NEXT_{UINT24|ULONG}. Because most of them are - compared with FT_UInt32 values in public API, replacing - FT_UFast is not recommended. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Cast a character code to FT_UInt32 for LP64 system. - - * src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next): - Insert the casts from unsigned long constant to - FT_UInt32. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF. - - * include/freetype/internal/tttypes.h: The type - of TT_BDF->string_size is extended from FT_UInt32 - to FT_ULong, because BDF specification does not - restrict the length of string. - * src/sfnt/ttbdf.c: The scratch variable `strings' - to load TT_BDF->string_size is matched with - TT_BDF->string_size. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - psaux: Handle the string length by FT_Offset variables. - - * src/psaux/afmparse.c (afm_parser_next_key, - afm_tokenize, afm_parse_track_kern, - afm_parse_kern_pairs, afm_parse_kern_data, - afm_parser_skip_section, afm_parser_parse): - The length of key is handled by FT_Offset, - instead of FT_UInt. Although the length of - PostScript strings or name object is 16-bit, - AFM_STREAM_KEY_LEN() calculates the length - from the pointer difference. - - * src/psaux/afmparse.h (afm_parser_next_key): - Ditto. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pcf: Fix some data types mismatching with their sources. - - * src/pcf/pcfread.c (pcf_get_bitmaps): The types - of `nbitmaps', `i', `sizebitmaps' are matched with - the type of area FT_Bitmap.pitch * FT_Bitmap.rows. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pcf: Handle the string length by size_t variables. - - * src/pcf/pcfread.c (pcf_interpret_style): The types - of nn, len, lengths[4] are changed to size_t, because - they are loaded by (or compared with) ft_strlen(). - - * src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap, - FourByteSwap): The type of the 2nd argument `nbytes' - is changed to size_t, for similarity with ANSI C - string functions. - - * src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of - `bytes' is changed to FT_Offset, because it is passed - to FT_ALLOC(), via ft_glyphslot_alloc_bitmap(). At - least, using unsigned type is better. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pcf: Fix some data types mismatching with their sources. - - * src/pcf/pcfread.c (pcf_seek_to_table_type, - pcf_has_table_type): The type of 3rd argument - `ntables' is matched with PCF_Toc->count. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - otvalid: Truncate the glyph index to 16-bit. - - * src/otvalid/otvalid.c (otv_validate): Checks - face->num_glyphs does not exceed 16-bit limit, - pass FT_UInt num_glyphs to backend functions - otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate(). - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cache: Insert explicit casts for LP64 systems. - - * src/cache/ftcbasic.c (FTC_ImageCache_Lookup, - FTC_SBitCache_Lookup): The type of FTC_ImageType->width - is FT_Int, so the cast to unsigned larger type FT_ULong - is introduced for the comparisons with 0x10000L for - LP64 platform. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cache: Fix some data types mismatching with their sources. - - * src/cache/ftccache.h: The type of return value - by FTC_Node_WeightFunc function is changed to - FT_Offset. The type of FTC_CacheClass->cache_size - is changed to FT_Offset, too. - - * src/cache/ftccback.h (ft_inode_weight, - ftc_snode_weight): Ditto. - - * src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto. - - * src/cache/ftcimage.c (ftc_inode_weight, - FTC_INode_Weight): Ditto. - - * src/cache/ftcsbits.c (ftc_snode_weight, - FTC_SNode_Weight): Ditto. - - * src/cache/ftcmru.h: The type of - FTC_MruListClass->node_size is changed to FT_Offset, - because it is passed to FT_ALLOC() to specify the - size of buffer. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - XXX_cmap_encoding_char_next() return FT_UInt32 values. - - * include/freetype/internal/services/svpscmap.h: - The size of the charcode value returned by - the function typed PS_Unicodes_CharNextFunc is - matched with its input charcode value. - - * src/cff/cffmap.c (cff_cmap_encoding_char_next, - cff_cmap_unicode_char_next): Ditto. - - * src/pfr/pfrmap.c (pfr_cmap_encoding_char_next): - Ditto. - - * src/psaux/t1cmap.c (t1_cmap_std_char_next, - t1_cmap_custom_char_next, t1_cmap_unicode_char_next): - Ditto. - - * src/psnames/psmodule.c (ps_unicodes_char_next): - Ditto. - - * src/winfonts/winfnt.c (fnt_cmap_char_next): - Ditto. - - * src/sfnt/ttcmap.c (tt_cmap0_char_next, - tt_cmap2_char_next, tt_cmap4_char_next, - tt_cmap6_char_next, tt_cmap10_char_next, - tt_cmap12_char_next, tt_cmap13_char_next): Ditto. - (tt_cmap14_char_variants): Handle base unicode - codepoint by FT_UInt32 variable to avoid overflow - on 16-bit platforms. - (tt_cmap14_ensure): The type of `num_results' is - extend to FT_UInt32, to cover unsigned 32-bit - `numVarSelectorRecords' in cmap14 table header. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - truetype: Extend TT_Face->num_locations for broken TTFs. - - * include/freetype/internal/tttypes.h: - TT_Face->num_locations are extended from FT_UInt - to FT_ULong, to stand with broken huge loca table. - Some people insists there are broken TTF including - the glyphs over 16-bit limitation, in PRC market. - * src/truetype/ttpload.c (tt_face_load_loca): - Remove unrequired 16-bit truncation for FT_UInt - TT_Face->num_locations. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - smooth: Fix some data types mismatching with their sources. - - * src/smooth/ftgrays.c: The type of `TCoord' is - matched to `TPos', because they are mixed in - gray_set_cell(). The type of TCell->x is extended - to `TPos', because gray_find_cell() sets it by - TWorker.ex. The type of TCell->cover is extended - to `TCoord', because gray_render_scanline() adds - TCoord value to it. The type of TWork.cover is matched - with TCell->cover. The types of - TWork.{max_cells,num_cells} are changed to FT_PtrDist, - because they are calculated from the memory addresses. - The type of TWork.ycount is changed to TPos, because - it is calculated from TPos variables. - (gray_find_cell): The type of `x' is matched with - its initial value ras.ex. - (gray_render_scanline): The types of `mod', `lift' - and `rem' are changed to TCoord, because their values - are set with explicit casts to TCoord. When ras.area - is updated by the differential values including - `delta', they are explicitly cast to TArea, because - the type of `delta' is not TArea but TCoord. - (gray_render_line): The type of `mod' is extended - from int to TCoord, because (TCoord)dy is added to mod. - (gray_hline): The argument `acount' is extended to - TCoord, to match with the parameters in the callers. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cff: Fix some data types mismatching with their sources. - - * src/cff/cffobjs.c (cff_face_init): The type of - `scaling' is matched with the scaling parameter - in FT_Matrix_Multiply_Scaled() and - FT_Vector_Transform_Scaled(). - - * src/cff/cffparse.c (cff_parse_real): The type of - `power_ten', `scaling', `exponent_add', - `integer_length', `fraction_length', - `new_fraction_length' and `shift' are matched with - the type of `exponent' to avoid unexpected truncation. - (cff_parse_fixed_scaled): The type of `scaling' is - matched with the `scaling' argument to - cff_parse_real(). - (cff_parse_fixed_dynamic): Ditto. - (cff_parse_font_matrix): The type of `scaling' is - matched with the `scaling' argument to - cff_parse_dynamic(). - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - autofit: Fix some data types mismatching with their sources. - - * src/autofit/afglobal.c: Correct the type of - AF_FaceGlobalsRec.glyph_count to match with - FT_Face->num_glyphs. - (af_face_globals_compute_script_coverage): - Insert explicit cast to compare - FT_Long AF_FaceGlobalsRec.glyph_count versus - FT_UInt gindex. The type of `nn' is changed - to scan glyph index upto AF_FaceGlobalsRec.glyph_count. - (af_face_globals_get_metrics): The type of `script_max' - is changed to cover size_t value. Insert explicit cast - to compare FT_Long AF_FaceGlobalsRec.glyph_count versus - FT_UInt gindex. - - * src/autofit/afhints.c (af_axis_hints_new_segment): - Insert explicit cast to calculate `big_max' from - integer and size_t values. - (af_axis_hints_new_edge): Ditto. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): - The type of `best_y' is matched to FT_Vector.y. - (af_latin_compute_stem_width): The type of `delta' is - matched to `dist' and `org_dist'. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - autofit: Count the size of the memory object by ptrdiff_t. - - * src/autofit/afcjk.c (af_cjk_hint_edges): The - number of edges `n_edges' should be counted by - FT_PtrDist variable instead of FT_Int. - - * src/autofit/aflatin.c (af_latin_hint_edges): - Ditto. - - * src/autofit/aftypes.h: In AF_ScriptClassRec, - the size of metric `script_metrics_size' should - be counted by FT_Offset variable instead of FT_UInt. - - * src/autofit/afhints.c - (af_glyph_hints_align_strong_points): The cursors - for the edges `min', `max', `mid' in the memory - buffer should be typed FT_PtrDist. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - autofit: Fix for unused variable `first'. - - * src/autofit/afhints.c (af_glyph_hints_reload): Insert - FT_UNUSED() to hide the unused variable warning. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Improve bitmap size or pixel variables for 16-bit systems. - - * include/freetype/config/ftstdlib.h: Introduce - FT_INT_MIN, to use in signed integer overflow in - 16-bit and 64-bit platforms. - - * include/freetype/internal/fttrace.h: Add a tracer - to ftsynth.c. - - * src/base/ftbitmap.c (FT_Bitmap_Embolden): Check - invalid strength causing integer overflow on 16-bit - platform. - - * src/base/ftcalc.c (ft_corner_orientation): Change - the internal calculation from FT_Int to FT_Long, to - avoid an overflow on 16-bit platforms. The caller of - this function should use only the sign of result, - so the cast to FT_Int is acceptable. - - * src/base/ftsynth.c: Introduce a tracer for synth module. - (FT_GlyphSlot_Embolden): Check invalid strength causing - integer overflow on 16-bit platform. - - * src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index - in FT2 API is typed as FT_UInt, although BDF driver - can handle unsigned long glyph index internally. To - avoid integer overflow on 16-bit platform, too large - glyph index should be excluded. - (BDF_Glyph_Load): The glyph pitch in FT2 is typed as - FT_UInt, although BDF driver can handle unsigned long - glyph pitch internally. To avoid integer overflow on - 16-bit platform, too large glyph pitch should not be - returned. - - * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph - pitch in FT2 is typed as FT_UInt, although PFR font - format can include huge bitmap glyph with 24-bit pitch - (however, a glyph spends 16.7 pixel, it's not realistic). - To avoid integer overflow on 16-bit platform, huge - bitmap glyph should be excluded. - - * src/smooth/ftgrays.c (gray_hline): As FT_Span.x is - truncated to fit its type (16-bit short), FT_Span.y - should be truncated to fit its type (FT_Int). - - * src/cff/cffdrivr.c (cff_get_ros): CFF specification - defines the supplement in ROS as a real number. - Truncate it to fit public FT2 API. - - * src/cff/cffparse.c (cff_parse_cid_ros): Warn the - supplement if it is truncated or rounded in cff_get_ros(). - - * src/cff/cfftypes.h: Change the type of internal variable - `supplement' from FT_Long to FT_ULong to fit the signedness - to the type in public API. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - psaux: Prevent invalid arguments to afm_parser_read_vals(). - - * src/psaux/afmparse.c (afm_parser_read_vals): Change - the type of `n' to prevent negative number how many - arguments should be parsed. - - * src/psaux/afmparse.h (afm_parser_read_vals): Ditto. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - base: Prevent some overflows on LP64 systems. - - * src/base/ftadvanc.c (FT_Get_Advances): Cast the - unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32 - for LP64 platforms. - - * src/base/ftcalc.c (FT_Sqrt32): All internal variables - are changed to FT_UInt32 from FT_ULong. - (FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms. - This function is designed for 32-bit integer, although - their arguments and return value are FT_Long. - - * src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode' - is within unsigned 32-bit integer for LP64 platforms. - (FT_Face_GetCharVariantIndex): Check `charcode' and - `variantSelector' are within 32-bit integer for LP64 - platforms. - (FT_Face_GetCharsOfVariant): Check `variantSelector' is - within unsigned 32-bit integer for LP64 platforms. - - * src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed - variable `val' and unsigned long constant FT_TRIG_SCALE - are cast to FT_UInt32, when calculates FT_UInt32. - (FT_Vector_Rotate): The long constant 1L is cast to - FT_Int32 to calculate FT_Int32 `half'. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cff: Cast the long variables to 32-bit for LP64 systems. - - * src/cff/cffdrivr.c (cff_get_advances): Insert - explicit cast to modify a 32-bit flag by unsigned - long constant. - - * src/cff/cffobjs.c (cff_face_init): Ditto. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): - Replace the casts to FT_Long by the casts to FT_Int32 - for LP64 platforms. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pcf: Improve PCF_PropertyRec.value names on LP64 platforms. - - * src/pcf/pcf.h: In PCF_PropertyRec.value, the member - `integer' is replaced by `l', `cardinal' is replaced - by `ul', to fix the difference between the name and - the types on LP64 platforms. - - * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect - PCF_PropertyRec.value change, with appropriate casts - to FT_Int32/FT_UInt32. Their destinations - BDF_PropertyRec.{integer|cardinal} are public and - explicitly defined as FT_Int32/FT_UInt32. - - * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): - Reflect PCF_PropertyRec.value change. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - pcf: Fix some data types mismatching with their sources. - - * src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of - `code' is matched to PCF_Encoding->enc. - (pcf_cmap_char_next): The type of `charcode' is matched - to PCF_Encoding->enc. When *acharcode is set by charcode, - an overflow is checked and cast to unsigned 32-bit - integer. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - bdf: Improve bdf_property_t.value names for LP64 platforms. - - * src/bdf/bdf.h: In bdf_property_t.value, the member - `int32' is replaced by `l', `card32' is replaced by - `ul', to fix the difference between the name and the - types on LP64 platforms. - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect - bdf_property_t.value change. - (bdf_get_bdf_property): Reflect bdf_property_t.value - change, with appropriate casts to FT_Int32/FT_UInt32. - Their destinations BDF_PropertyRec.{integer|cardinal} - are public and explicitly defined as FT_Int32/FT_UInt32. - - * src/bdf/bdflib.c (_bdf_add_property): Reflect - bdf_property_t.value change. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - bdf: Fix some data types mismatching with their sources. - - * src/bdf/bdfdrivr.c (bdf_cmap_char_index): The type - of `code' is matched with BDF_encoding_el->enc. - (bdf_cmap_char_next): The type of `charcode' is - matched with BDF_encoding_el->enc. When *acharcode - is set by charcode, an overflow is checked and - cast to unsigned 32-bit integer. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - autofit: Improve Unicode range definitions. - - * src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro - to declare a range by two unsigned 32-bit integer, - to avoid 64-bit range definition on LP64 platforms. - - * src/autofit/aflatin.c (af_latin_uniranges): Ditto. - - * src/autofit/aflatin2.c (af_latin2_uniranges): Ditto. - - * src/autofit/afindic.c (af_indic_uniranges): Ditto. - - * src/autofit/afcjk.c (af_cjk_uniranges): Declare - the ranges by AF_UNIRANGE_REC. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - smooth: Fix a data type mismatching with its source. - - * src/smooth/ftgrays.c (gray_sweep): The type of - `area' is matched with the 3rd argument `area' - of gray_hline(). - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - smooth: Fix a data type mismatching with its source. - - * src/smooth/ftgrays.c (gray_render_line): The type - of `area' is matched with TWorker.area. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cache: Disable the legacy compatibility if 16-bit system. - - * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude - the legacy behaviour from 16-bit platform, because the - current hack cannot detect the caller uses this function - via legacy convention. - (FTC_SBitCache_Lookup): Ditto. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cache: Check 32-bit glyph index on 16-bit systems. - - * src/cache/ftcbasic.c (ftc_basic_family_get_count): - Check overflow caused by the face including large - number of glyphs > 64k. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cache: Fix some data types mismatching with their sources. - - * src/cache/ftccache.c (ftc_cache_resize): The types of - `p', `mask', `count' are matched with FTC_Cache->{p,mask}. - (FTC_Cache_Clear): The type of `old_index' is matched to - FTC_Cache->{p,mask}. - - * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type - of `_idx' is matched with FTC_Cache->{p,mask}. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cache: Fix some data types mismatching with their sources. - - * src/cache/ftcsbits.c (ftc_snode_load): The types - of `xadvance' and `yadvance' are matched with - FT_GlyphSlot->advance.{x|y}. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cache: Cast NULL to a required function type explicitly. - - * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): - Insert explicit cast from NULL to function type. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - fttypes.h: Cast FT_MAKE_TAG output to FT_Tag explicitly. - - * include/freetype/fttypes.h (FT_MAKE_TAG): - Cast the result to FT_Tag. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - psnames: Handle Unicode codepoints by FT_UInt32 variables. - - * src/psnames/psmodule.c (BASE_GLYPH): Cast the result - to unsigned 32-bit integer for LP64 platform. - (ps_unicode_value): Return the value by unsigned 32-bit - integer instead of unsigned long. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - psaux: Use size_t variable to pass the buffer size. - - * src/psaux/psaux.h (to_bytes): The type of `max_bytes' - (the argument to pass the buffer size) is changed to - size_t, to match with ANSI C string functions. - - * src/psaux/psconv.h (PS_Conv_StringDecode, - PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto. - - * src/psaux/psconv.c (PS_Conv_StringDecode, - PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto. - - * src/psaux/psobjs.h (ps_parser_to_bytes): Ditto. - - * src/psaux/psobjs.c (ps_parser_to_bytes): Ditto. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - type1: Use size_t variable to pass the string length. - - * psaux.h: The type of `len' (the argument to pass - the buffer size to the function in AFM_ParserRec) - is changed to size_t, to match with ANSI C string - functions. - - * t1afm.c (t1_get_index): Ditto. - - * test_afm.c (dummy_get_index): Ditto. - - * afmparse.c (afm_parser_read_vals): To call - AFM_ParserRec.get_index, the length of token - `len' is cast to size_t. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cid: Fix some data types mismatching with their sources. - - * src/cid/cidparse.c (cid_parser_new): The types of - `read_len' and `stream_len' are matched to - FT_Stream->size. Unrequired cast is removed. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cff: Fix for unused variable `rest'. - - * src/cff/cffparse.c (cff_parse_real): Insert - FT_UNUSED() to hide the unused variable warning. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - cff: Fix some data types mismatching with their sources. - - * src/cff/cffgload.c (cff_slot_load): The types of - `top_upm' and `sub_upm' are matched with - CFF_FontRecDict->units_per_em. - - * src/cff/cffobjs.c (cff_size_select): Ditto. - (cff_size_request): Ditto. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - bdf: Fix some data types mismatching with their sources. - - * bdflib.c (_bdf_list_ensure): The type of `num_items' - is matched with _bdf_list_t.used. Also the types of - `oldsize', `newsize', `bigsize' are matched too. - (_bdf_readstream): `cursor' is used as an offset to - the pointer, it should be typed as FT_Offset. Also - the types of `bytes', `start', `end', `avail' are matched. - - * bdfdrivr.c: The type of BDF_CMap->num_encodings is - matched with FT_CMap->clazz->size. - (bdf_cmap_char_index): The types of `min', `max', `mid' - are matched with BDF_CMap->num_encodings. The type of - `result' is matched with encoding->glyph. - (bdf_cmap_char_next): Ditto, the type of `code' is - matched with BDF_encoding_el.enc. - (bdf_interpret_style): The type of `lengths' is changed - to size_t, to take the value by ft_strlen(). Also the - types of `len', `nn', `mm' are matched. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - sfnt: Count the size of the memory object by ptrdiff_t. - - * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of - `property_len' is changed from FT_UInt to FT_Offset, - to match with size_t, which is appropriate type for the - object in the memory buffer. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - lzw: Count the size of the memory object by ptrdiff_t. - - * src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total, - stack_size} are changed from FT_UInt to FT_Offset, to match - with size_t, which is appropriate type for the object in - the memory buffer. - - * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of - `old_size' and `new_size' are changed from FT_UInt to - FT_Offset, to match with size_t, which is appropriate type - for the object in the memory buffer. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - otvalid: Count the table size on memory by ptrdiff_t. - - * src/otvalid/otvgpos.c (otv_ValueRecord_validate): - Change the type of table size from FT_UInt to - FT_PtrDist because it is calculated by the memory - addresses. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset. - - * src/otvalid/otvgpos.c (otv_ExtensionPos_validate): - Extend ExtensionOffset from FT_UInt to FT_ULong, to - cover 32-bit offset on 16-bit platform. - - * src/otvalid/otvgsub.c (otv_ExtensionSubst_validate): - Ditto. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - ftobjs.c: Prevent an overflow in glyph index handling. - - * src/base/ftobjs.c (FT_Face_GetCharsOfVariant): - Improve the cast in comparison to avoid the truncation. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Improve the variable types in raccess_make_file_name(). - - * src/base/ftrfork.c (raccess_make_file_name): - Change the type of cursor variable `tmp' to const char*, - to prevent the unexpected modification of original pathname. - (raccess_make_file_name): Change the type of new_length - to size_t. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - ftpatent.c: Fix for unused variable `error'. - - * src/base/ftpatent.c (_tt_check_patents_in_range): - Fix warning for unused variable `error'. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - type1: Check invalid string longer than PostScript limit. - - * src/type1/t1afm.c (t1_get_index): Check invalid string - which exceeds the limit of PostScript string/name objects. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default. - - * src/gzip/ftgzip.c (zcalloc, zcfree): Disable all - zcalloc() & zfree() by zlib in zutil.c, those in - ftgzip.c by FT2 are enabled by default. To use - zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC. - See discussion: - https://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - gzip: Distinguish PureC from TurboC on MSDOS. - - * src/gzip/zutil.c (zcalloc, zcfree): Enable only for - MSDOS platform. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - gxvalid: Insert PureC pragma to allow unevaluated variables. - - * builds/atari/ATARI.H: Insert PureC pragma not to - warn against set-but-unevaluated variable in gxvalid - module. - -2009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - gxvalid: Pass the union by the pointer instead of the value. - - * src/gxvalid/gxvcommn.h: - - Declare new type `GXV_LookupValueCPtr'. - - Update the type of the 2nd argument to pass GXV_LookupValueDesc - data to the function prototyped as GXV_Lookup_Value_Validate_Func, - from GXV_LookupValueDesc to GXV_LookupValueCPtr. - - Likewise for the function prototyped as - GXV_Lookup_Fmt4_Transit_Func. - - - Declare new type `GXV_StateTable_GlyphOffsetCPtr'. - - Update the type of the 3rd argument to pass - GXV_StateTable_GlyphOffsetDesc data to the function prototyped - as GXV_StateTable_Entry_Validate_Func, from - GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr. - - - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'. - - Update the type of the 3rd argument to pass - GXV_XStateTable_GlyphOffsetDesc data to the function prototyped - as GXV_XStateTable_Entry_Validate_Func, - from GXV_XStateTable_GlyphOffsetDesc - to GXV_XStateTable_GlyphOffsetCPtr. - - * src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate, - gxv_XClassTable_lookupval_validate, - gxv_XClassTable_lookupfmt4_transit): - Update from GXV_LookupValueDesc to GXV_LookupValueCPtr. - - * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate, - gxv_bsln_LookupFmt4_transit): Ditto. - - * src/gxvalid/gxvjust.c - (gxv_just_pcTable_LookupValue_entry_validate, - gxv_just_classTable_entry_validate, - gxv_just_wdcTable_LookupValue_validate): Ditto. - - * src/gxvalid/gxvkern.c - (gxv_kern_subtable_fmt1_entry_validate): Ditto. - - * src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate, - gxv_lcar_LookupFmt4_transit): Ditto. - - * src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate, - gxv_opbd_LookupFmt4_transit): Ditto. - - * src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate, - gxv_prop_LookupFmt4_transit): Ditto. - - * src/gxvalid/gxvmort4.c - (gxv_mort_subtable_type4_lookupval_validate): Ditto. - - * src/gxvalid/gxvmort0.c - (gxv_mort_subtable_type0_entry_validate): Update - from GXV_StateTable_GlyphOffsetDesc - to GXV_StateTable_GlyphOffsetCPtr. - - * src/gxvalid/gxvmort1.c - (gxv_mort_subtable_type1_entry_validate): Ditto. - - * src/gxvalid/gxvmort2.c - (gxv_mort_subtable_type2_entry_validate): Ditto. - - * src/gxvalid/gxvmort5.c - (gxv_mort_subtable_type5_entry_validate): Ditto. - - * src/gxvalid/gxvmorx2.c - (gxv_morx_subtable_type2_entry_validate): Ditto. - - * src/gxvalid/gxvmorx5.c - (gxv_morx_subtable_type5_entry_validate): Ditto. - - * src/gxvalid/gxvmorx1.c - (gxv_morx_subtable_type1_entry_validate): Ditto. - (gxv_morx_subtable_type1_LookupValue_validate, - gxv_morx_subtable_type1_LookupFmt4_transit): - Update from GXV_LookupValueDesc to GXV_LookupValueCPtr. - - * src/gxvalid/gxvmorx0.c - (gxv_morx_subtable_type0_entry_validate): Update - from GXV_XStateTable_GlyphOffsetDesc - to GXV_XStateTable_GlyphOffsetCPtr. - -2009-07-29 Fabrice Bellet <fabrice@bellet.info> - - Fix Redhat bugzilla #513582 and Savannah bug #26849. - - * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix - aliasing bug. - -2009-07-19 Werner Lemberg <wl@gnu.org> - - Document recent library changes. - - * docs/CHANGES: Do it. - -2009-07-17 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #23786. - - * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem - and y_ppem. Otherwise the `*_CVT_Stretched' functions in ttinterp.c - get never called. - An anonymous guy suggested this change on Savannah, and it seems to - be the right solution. - -2009-07-15 Werner Lemberg <wl@gnu.org> - - * docs/release: Updated. - -2009-07-15 Werner Lemberg <wl@gnu.org> - - README.CVS -> README.git - - * README.CVS: Renamed to... - * README.git: This. - Updated. - -2009-07-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Borland C++ compiler patch proposed by Mirco Babin. - https://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html. - - * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}. - Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform - specific pathname syntax. - * builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS. - Define TE = `-e' separately (bcc32 cannot specify the pathname of - binary executable by T = `-o'). - Extend the large page size in linking freetype.lib. - Add extra CLEAN target to delete bcc specific temporary files. - * builds/compiler/bcc-dev.mk: Ditto. - -2009-07-14 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #27026. - - * builds/win32/vc2005/freetype.sln: Use correct version number. - -2009-07-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Add a script to check the undefined and unused trace macros. - - * src/tools/chktrcmp.py: A script to check trace_XXXX macros - that are used in C source but undefined in fttrace.h, or - defined in fttrace.h but unused in C sources. See - https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html. - * docs/DEBUG: Mention on chktrcmp.py. - * docs/release: Ditto. - -2009-07-09 Werner Lemberg <wl@gnu.org> - - [ftraster] Make it compile again with -D_STANDALONE_. - - * src/raster/ftraster.c [_STANDALONE_]: Define - FT_CONFIG_STANDARD_LIBRARY_H. - Include `string.h'. - Don't include `rastpic.h'. - Define FT_DEFINE_RASTER_FUNCS. - -2009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - smooth: Check glyph size by width/height, instead of pitch/height. - Suggested by der Mouse <mouse@Rodents-Montreal.ORG>. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve - the check for too large glyph. Replace the pair of `pitch' and - `height' by the pair of `width' and `height'. `pitch' cannot - be greater than `height'. The required is checking the product - `pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for - the realistic case only. - -2009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Register 2 missing trace components, t1afm and ttbdf. - - * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm ) - and FT_TRACE_DEF( ttbdf ). See - https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html - -2009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Register a trace component for ftgloadr.c. - - * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ). - The macro `trace_gloader' was already used in the initial version - on 2002-02-24. - -2009-07-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Prevent the overflows by a glyph with too many points or contours. - The bug is reported by Boris Letocha <b.letocha@gmc.net>. See - https://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html - https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html - - * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX, - FT_OUTLINE_POINTS_MAX): New macros to declare the maximum - values of FT_Outline.{n_contours,n_points}. - * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the - total numbers of points and contours cause no overflows in - FT_Outline.{n_contours,n_points}. - - * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P, - FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and - contours as unsigned long number, instead of signed int, to - prevent the overflows on 16-bit systems. - -2009-07-05 Bram Tassyns <bramt@enfocus.be> - - Improve compatibility to Acroread. - This fixes Savannah bug #26944. - - * src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to - single CID mappings, make the lowest value win. - -2009-06-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - ftpatent: Fix a bug by wrong usage of service->table_info(). - https://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html - - * include/freetype/internal/services/svsfnt.h: Extend - FT_SFNT_TableInfoFunc() to take new argument to obtain the offset - to the specified table. - * src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the - table-offset to the caller function. - * src/base/ftpatent.c (_tt_check_patents_in_table): Use new - service->table_info(). - * src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new - service->table_info(). - -2009-06-28 Werner Lemberg <wl@gnu.org> - - [psaux, cff] Protect against nested `seac' calls. - - * include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h - (CFF_Decoder): Add `seac' boolean variable. - - * src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c - (t1operator_seac): Use it. - -2009-06-28 Werner Lemberg <wl@gnu.org> - - Thinko. - - * src/psaux/t1decode.c (t1operator_seac) - [FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental - interface. - -2009-06-28 Werner Lemberg <wl@gnu.org> - - * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define. - -2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Add tools to preprocess the source files for AtariST PureC. - - * builds/atari/deflinejoiner.awk: New file to filter C source files - for broken C preprocessor of PureC compiler. - - * builds/atari/gen-purec-patch.sh: New file to generate a patch set - for PureC, by using deflinejoiner.awk. - -2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Keep existing modules.cfg in the building tree. - - * configure: If `configure' is executed outside of the source tree, - an existing `modules.cfg' file in the build directory should be - kept, not overwritten by the version in the source tree. - -2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Filter --srcdir= option before invoking builds/unix/configure. - - * configure: If builds/unix/configure is invoked with --srcdir - option, the option should take `builds/unix' directory instead of - the top source directory. Thus the configure script in the top - directory should modify the --srcdir= option if - `builds/unix/configure' is invoked. - -2009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Improve configure.raw for cross-building on exe-suffixed systems. - - * builds/unix/configure.raw: Fix a bug in sed script to extract - native suffix for binary executables, patch by Peter Breitenlohner. - https://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html - -2009-06-26 Werner Lemberg <wl@gnu.org> - - [truetype] Remove TT_SubGlyphRec. - - * src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused. - -2009-06-26 Werner Lemberg <wl@gnu.org> - - * */*: For warning messages, replace FT_ERROR with FT_TRACE0. - - FT_ERROR is now used only if a function produces a non-zero `error' - value. - - Formatting, improving and harmonizing debug strings. - -2009-06-25 Werner Lemberg <wl@gnu.org> - - Provide version information better. - - * src/base/ftinit.c (FT_Init_FreeType): Don't set version here - but... - * src/base/ftobjs.c (FT_New_Library): Here. - -2009-06-22 Werner Lemberg <wl@gnu.org> - - Use 16.16 format while parsing Type 1 charstrings. - This fixes Savannah bug #26867. - - Previously, only integers have been used which can lead to serious - rounding errors. - - However, fractional values are only used internally; after the - charstrings (of either Type 1 or 2) have been processed, the - resulting coordinates get rounded to integers currently -- before - applying scaling. This should be fixed; at the same time a new load - flag should be introduced, to be used in combination with - FT_LOAD_NO_SCALE, which indicates that font units are returned in - 16.16 format. Similarly, the incremental interface should be - extended to allow fractional values for metrics. - - * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift' - field. - * include/freetype/internal/pshints.h (T1_Hints_SetStemFunc, - T1_Hints_SetStem3Func): Use FT_Fixed for coordinates. - - * src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H. - (t1_build_add_point): Always convert fixed to integer. - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): - Use 16.16 format everywhere (except for large integers followed by a - `div'). - [CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate - code unconditionally. - Add support for random numbers and update remaining code - accordingly; this should work now. - (t1operator_seac): Updated. - * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H. - (ps_hints_t1stem3, t1_hints_stem): Updated. - - * src/cid/cidgload.c: Include FT_INTERNAL_CALC_H. - (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL], - (cid_face_compute_max_advance, cid_slot_load_glyph): Updated. - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String) - [FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph): - Updated. - * src/type1/t1load.c: Include FT_INTERNAL_CALC_H. - * src/type1/t1objs.c (T1_Face_Init): Updated. - -2009-06-21 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshrec.c: Use PSH_Err_Ok. - -2009-06-21 Werner Lemberg <wl@gnu.org> - - Code beautification. - - * src/type1/t1load.c (FT_INT_TO_FIXED): Removed. - Replace everywhere with INT_TO_FIXED. - (FT_FIXED_TO_INT): Move to ... - * include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here. - Update all users. - -2009-06-20 Werner Lemberg <wl@gnu.org> - - Remove unused variables. - - * include/freetype/internal/psaux.h (T1_BuilderRec), - src/cff/cffgload.h (CFF_Builder): Remove `last'. - Update all users. - -2009-06-20 Werner Lemberg <wl@gnu.org> - - [psaux] Check large integers while parsing charstrings. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large - integers must be followed by a `div' operator. - -2009-06-20 Werner Lemberg <wl@gnu.org> - - [cff] Revert last change. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it. - Next time, don't confuse Type 2 charstring opcodes with TOP DICT - values... - -2009-06-20 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix - compiler warning. - -2009-06-20 Werner Lemberg <wl@gnu.org> - - * builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6. - -2009-06-19 Werner Lemberg <wl@gnu.org> - - [cff] Fix handling of reserved byte 0xFF. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte - 0xFF is encountered. - -2009-06-19 Werner Lemberg <wl@gnu.org> - - Improve debug messages for Type1 charstrings. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines - after instructions. - Prettify output. - -2009-06-19 Werner Lemberg <wl@gnu.org> - - More ftgray fixes for FT_STATIC_RASTER. - Problems reported by suyu@cooee.cn. - - * src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use - RAS_VAR. - -2009-06-18 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2009-06-18 Werner Lemberg <wl@gnu.org> - - Fix B/W rasterization of subglyphs with different drop-out modes. - - Normally, the SCANMODE instruction (if present) to set the drop-out - mode in a TrueType font is located in the `prep' table only and thus - valid for all glyphs. However, there are fonts like `pala.ttf' - which additionally contain this instruction in the hinting code of - some glyphs (but not all). As a result it can happen that a - composite glyph needs multiple drop-out modes for its subglyphs - since the rendering state gets reset for each subglyph. - - FreeType collects the hinted outlines from all subglyphs, then it - sends the data to the rasterizer. It also sends the drop-out mode - -- after hinting has been applied -- and here is the error: It sends - the drop-out mode of the last subglyph only; drop-out modes of all - other subglyphs are lost. - - This patch fixes the problem; it adds a second, alternative - mechanism to pass the drop-out mode: For each contour, the - rasterizer now checks the first `tags' array element. If bit 2 is - set, bits 5-7 contain the contour's drop-out mode, overriding the - global drop-out mode. - - * include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro. - - * src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in - `tags[0]'. - - * src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom): - Use bits 3-5 instead of 0-2. - (New_Profile): Set the drop-out mode in the profile's `flags' field. - (Decompose_Curve): Check `tags[0]' and set `dropOutControl' if - necessary. - (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, - Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out - mode. - -2009-06-16 Werner Lemberg <wl@gnu.org> - - Improve scan conversion rules 4 and 6. - - Two new constraints are introduced to better identify a `stub' -- a - concept which is only vaguely described in the OpenType - specification. The old code was too rigorous and suppressed more - pixel than it should. - - . The intersection of the two profiles with the scanline is less - than a half pixel. Code related to this was already present in - the sources but has been commented out. - - . The endpoint of the original contour forming a profile has a - distance (`overshoot') less than half a pixel to the scanline. - - Note that the two additional conditions fix almost all differences - to the Windows rasterizer, but some problematic cases remain. - - * src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New - macros for the `flags' field in the `TProfile' structure. - (IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros. - (New_Profile, End_Profile): Pass overshoot flag as an argument and - set it accordingly. - Update callers. - (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new - constraints. - -2009-06-11 Werner Lemberg <wl@gnu.org> - - Increase precision for B/W rasterizer. - - * src/raster/ftraster.c (Set_High_Precision): Add two more bits to - the precision. This corrects rendering of some small glyphs, for - example, glyph `xi' in verdana.ttf at 13 ppem. Testing with ftbench - on my GNU/Linux box I don't see a performance degradation. - -2009-06-08 Michael Zucchi <notzed@gmail.com> - - Handle FT_STROKER_LINECAP_BUTT. - This fixes Savannah bug #26757. - - * src/base/ftstroke.c (ft_stroker_cap): Implement it. - -2009-06-07 Harald Fernengel <harry@kdevelop.org> - - Fix some potential out-of-memory crashes. - - * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'. - * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'. - * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of - `exec' in case of failure. - -2009-06-07 Werner Lemberg <wl@gnu.org> - - Simplify math. - Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>. - - * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, - Horizontal_Gray_Sweep_Drop): Do it. - -2009-06-04 Werner Lemberg <wl@gnu.org> - - Preparation for fixing scan conversion rules 4 and 6. - - * src/raster/ftraster.c (TFlow): Replace enumeration with... - (Flow_Up): This macro. - (TProfile): Replace `flow' member with `flags' bit field. - Update all affected code. - -2009-05-29 James Cloos <cloos@jhcloos.com> - - Enable autohinting for glyphs rotated by multiples of 90°. - - * src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted - matrices to allow rotations by multiples of 90°, not only unrotated, - possibly slanted matrices. - -2009-05-28 Werner Lemberg <wl@gnu.org> - - Remove compiler warning. - Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>. - - * src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of - `n_edges' into `#if' block. - -2009-05-28 Werner Lemberg <wl@gnu.org> - - Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined. - Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>. - - * src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]: - Make it work. - Simplify #ifdef logic. - -2009-05-22 Werner Lemberg <wl@gnu.org> - - Improve b/w rasterizer. - Problem reported by Krzysztof Kotlenga <pocek@users.sf.net>. - - * src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, - Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if - intersections are equally distant relative to next pixel center, - select the left pixel, not the right one. - -2009-05-19 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #26600. - - * src/type42/t42parse.c (t42_load_keyword): Handle - T1_FIELD_LOCATION_FONT_EXTRA. - -2009-04-30 Werner Lemberg <wl@gnu.org> - - Document recent changes to ftview. - - * docs/CHANGES: Do it. - -2009-04-27 Werner Lemberg <wl@gnu.org> - - autohinter: Don't change digit widths if all widths are the same. - This fixes FreeDesktop bug #21197. - - * src/autofit/afglobal.c (AF_DIGIT): New macro. - (af_face_globals_compute_script_coverage): Mark ASCII digits in - `glyph_scripts' array. - (af_face_globals_get_metrics): Updated. - (af_face_globals_is_digit): New function. - * src/autofit/afglobal.h: Updated. - (AF_ScriptMetricsRec): Add `digits_have_same_width' flag. - - * src/autofit/aflatin.c: Include FT_ADVANCES_H. - (af_latin_metrics_check_digits): New function. - (af_latin_metrics_init): Use it. - * src/autofit/aflatin.h: Updated. - * src/autofit/afcjk.c (af_cjk_metrics_init): Updated. - - * src/autofit/aflatin2.c: Similar changes as with aflatin.c. - - * src/autofit/afloader.c (af_loader_load_g): Test digit width. - - * docs/CHANGES: Document it. - -2009-04-26 Werner Lemberg <wl@gnu.org> - - Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again. - Problems reported by suyu@cooee.cn. - - * src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS, - FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define. - [!_STANDALONE_]: Include ftspic.h only here. - (ras): Define/declare after definition of `TWorker'. - Use `RAS_VAR_' where necessary. - -2009-04-21 Karl Berry <karl@gnu.org> - - Fix AC_CHECK_FT2. - - * builds/unix/freetype2.m4: Only check PATH for freetype-config if - we did not already find it from a prefix option. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Add #error to modules and files that do not support PIC yet. - - When FT_CONFIG_OPTION_PIC is defined the following files will - create #error: - * src/bdf/bdfdrivr.h - * src/cache/ftcmanag.c - * src/cid/cidriver.h - * src/gxvalid/gxvmod.h - * src/gzip/ftgzip.c - * src/lzw/ftlzw.c - * src/otvalid/otvmod.h - * src/pcf/pcfdrivr.h - * src/pfr/pfrdrivr.h - * src/psaux/psauxmod.h - * src/type1/t1driver.h - * src/type42/t42drivr.h - * src/winfonts/winfnt.h - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Position Independent Code (PIC) support in autofit module. - - * include/freetype/internal/autohint.h add macros to init - instances of FT_AutoHinter_ServiceRec. - - * src/autofit/afmodule.h declare autofit_module_class - using macros from ftmodapi.h, - when FT_CONFIG_OPTION_PIC is defined create and destroy - functions will be declared. - * src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined - af_autofitter_service and autofit_module_class structs - will have functions to init or create and destroy them - instead of being allocated in the global scope. - And macros will be used from afpic.h in order to access them. - - * src/autofit/aftypes.h add macros to init and declare - instances of AF_ScriptClassRec. - - * src/autofit/afcjk.h declare af_cjk_script_class - using macros from aftypes.h, - when FT_CONFIG_OPTION_PIC is defined init function will be declared. - * src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined - af_cjk_script_class struct will have function to init it instead of - being allocated in the global scope. - - * src/autofit/afdummy.h declare af_dummy_script_class - using macros from aftypes.h, - when FT_CONFIG_OPTION_PIC is defined init function will be declared. - * src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined - af_dummy_script_class struct will have function to init it instead of - being allocated in the global scope. - - * src/autofit/afindic.h declare af_indic_script_class - using macros from aftypes.h, - when FT_CONFIG_OPTION_PIC is defined init function will be declared. - * src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined - af_indic_script_class struct will have function to init it instead of - being allocated in the global scope. - - * src/autofit/aflatin.h declare af_latin_script_class - using macros from aftypes.h, - when FT_CONFIG_OPTION_PIC is defined init function will be declared. - * src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined - af_latin_script_class struct will have function to init it instead of - being allocated in the global scope. - Change af_latin_blue_chars to be PIC-compatible by being a two - dimensional array rather than array of pointers. - - - * src/autofit/aflatin2.h declare af_latin2_script_class - using macros from aftypes.h, - when FT_CONFIG_OPTION_PIC is defined init function will be declared. - * src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined - af_latin2_script_class struct will have function to init it instead of - being allocated in the global scope. - Change af_latin2_blue_chars to be PIC-compatible by being a two - dimensional array rather than array of pointers. - - * src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined - af_script_classes array initialization was moved to afpic.c and - is later referred using macros defined in afpic.h. - - New Files: - * src/autofit/afpic.h declare struct to hold PIC globals for autofit - module and macros to access them. - * src/autofit/afpic.c implement functions to allocate, destroy and - initialize PIC globals for autofit module. - - * src/autofit/autofit.c add new file to build: afpic.c. - * src/autofit/jamfile add new files to FT2_MULTI build: afpic.c. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Position Independent Code (PIC) support in pshinter module. - - * include/freetype/internal/pshints.h add macros to init - instances of PSHinter_Interface. - - * src/pshinter/pshmod.h declare pshinter_module_class - using macros from ftmodapi.h, - when FT_CONFIG_OPTION_PIC is defined create and destroy - functions will be declared. - * src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined - pshinter_interface and pshinter_module_class structs - will have functions to init or create and destroy them - instead of being allocated in the global scope. - And macros will be used from pshpic.h in order to access them. - - New Files: - * src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter - module and macros to access them. - * src/pshinter/pshpic.c implement functions to allocate, destroy and - initialize PIC globals for pshinter module. - - * src/pshinter/pshinter.c add new file to build: pshpic.c. - * src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Position Independent Code (PIC) support in psnames module. - - * include/freetype/internal/services/svpscmap.h add macros to init - instances of FT_Service_PsCMapsRec. - - * src/psnames/psmodule.h declare psnames_module_class - using macros from ftmodapi.h, - when FT_CONFIG_OPTION_PIC is defined create and destroy - functions will be declared. - * src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined - pscmaps_interface and pscmaps_services structs - and psnames_module_class array - will have functions to init or create and destroy them - instead of being allocated in the global scope. - And macros will be used from pspic.h in order to access them. - - New Files: - * src/psnames/pspic.h declare struct to hold PIC globals for psnames - module and macros to access them. - * src/psnames/pspic.c implement functions to allocate, destroy and - initialize PIC globals for psnames module. - - * src/psnames/psnames.c add new file to build: pspic.c. - * src/psnames/jamfile add new files to FT2_MULTI build: pspic.c. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Position Independent Code (PIC) support in raster renderer. - - * src/raster/ftrend1.h declare ft_raster1_renderer_class - and ft_raster5_renderer_class - using macros from ftrender.h, - when FT_CONFIG_OPTION_PIC is defined create and destroy - functions will be declared. - * src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined - ft_raster1_renderer_class and ft_raster5_renderer_class structs - will have functions to init or create and destroy them - instead of being allocated in the global scope. - Macros will be used from rastpic.h in order to access - ft_standard_raster from the pic_container (allocated in ftraster.c). - In ft_raster1_render when PIC is enabled, the last letter of - module_name is used to verify the renderer class rather than the - class pointer. - - * src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined - ft_standard_raster struct will have function to init it - instead of being allocated in the global scope. - - New Files: - * src/raster/rastpic.h declare struct to hold PIC globals for raster - renderer and macros to access them. - * src/raster/rastpic.c implement functions to allocate, destroy and - initialize PIC globals for raster renderer. - - * src/raster/raster.c add new file to build: rastpic.c. - * src/raster/jamfile add new files to FT2_MULTI build: rastpic.c. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Position Independent Code (PIC) support in smooth renderer. - - * src/smooth/ftsmooth.h declare ft_smooth_renderer_class, - ft_smooth_lcd_renderer_class and ft_smooth_lcdv_renderer_class - using macros from ftrender.h, - when FT_CONFIG_OPTION_PIC is defined create and destroy - functions will be declared. - * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined - the following structs: - ft_smooth_renderer_class, ft_smooth_lcd_renderer_class - and ft_smooth_lcdv_renderer_class - will have functions to init or create and destroy them - instead of being allocated in the global scope. - And macros will be used from ftspic.h in order to access - ft_grays_raster from the pic_container (allocated in ftgrays.c). - - * src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H - * src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined - func_interface was moved from gray_convert_glyph_inner function - to the global scope. - When FT_CONFIG_OPTION_PIC is defined - func_interface and ft_grays_raster structs - will have functions to init them - instead of being allocated in the global scope. - And func_interface will be allocated on the stack of - gray_convert_glyph_inner. - - New Files: - * src/smooth/ftspic.h declare struct to hold PIC globals for smooth - renderer and macros to access them. - * src/smooth/ftspic.c implement functions to allocate, destroy and - initialize PIC globals for smooth renderer. - - * src/smooth/smooth.c add new file to build: ftspic.c. - * src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Position Independent Code (PIC) support in cff driver. - - * include/freetype/internal/services/svcid.h add macros to init - instances of FT_Service_CIDRec. - * include/freetype/internal/services/svpsinfo.h add macros to init - instances of FT_Service_PsInfoRec. - - * src/cff/cffcmap.h declare cff_cmap_encoding_class_rec - and cff_cmap_unicode_class_rec using macros from - ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy - functions will be declared. - * src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined - the following structs: - cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec - will have functions to init or create and destroy them - instead of being allocated in the global scope. - - * src/cff/cffdrivr.h declare cff_driver_class using macros from - ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy - functions will be declared. - * src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined - the following structs: - cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name - cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class, - and cff_services array - will have functions to init or create and destroy them - instead of being allocated in the global scope. - And macros will be used from cffpic.h in order to access them - from the pic_container. - Use macros from cffpic.h in order to access the - structs allocated in cffcmap.c - - * src/cff/cffobjs.c Use macros from cffpic.h in order to access the - structs allocated in cffcmap.c - - * src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined - implement functions to create and destroy cff_field_handlers array - instead of being allocated in the global scope. - And macros will be used from cffpic.h in order to access it - from the pic_container. - - New Files: - * src/cff/cffpic.h declare struct to hold PIC globals for cff - driver and macros to access them. - * src/cff/cffpic.c implement functions to allocate, destroy and - initialize PIC globals for cff driver. - - * src/cff/cff.c add new file to build: cffpic.c. - * src/cff/jamfile add new files to FT2_MULTI build: cffpic.c. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Position Independent Code (PIC) support in sfnt driver. - - * include/freetype/internal/services/svbdf.h add macros to init - instances of FT_Service_BDFRec. - * include/freetype/internal/services/svgldict.h add macros to init - instances of FT_Service_GlyphDictRec. - * include/freetype/internal/services/svpostnm.h add macros to init - instances of FT_Service_PsFontNameRec. - * include/freetype/internal/services/svsfnt.h add macros to init - instances of FT_Service_SFNT_TableRec. - * include/freetype/internal/services/svttcmap.h add macros to init - instances of FT_Service_TTCMapsRec. - * include/freetype/internal/sfnt.h add macros to init - instances of SFNT_Interface. - - * src/sfnt/sfdriver.h declare sfnt_module_class using macros from - ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy - functions will be declared. - * src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined - the following structs: - sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name - tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface, - sfnt_module_class, and sfnt_services array - will have functions to init or create and destroy them - instead of being allocated in the global scope. - And macros will be used from sfntpic.h in order to access them - from the pic_container. - - * src/sfnt/ttcmap.h add macros to init - instances of TT_CMap_ClassRec. - * src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined - the following structs: - tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec - tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec, - tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array - will have functions to init or create and destroy them - instead of being allocated in the global scope. - And macros will be used from sfntpic.h in order to access them - from the pic_container. - The content of tt_cmap_classes is now described in the - new file 'ttcmapc.h'. - - New Files: - * src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt - driver and macros to access them. - * src/sfnt/sfntpic.c implement functions to allocate, destroy and - initialize PIC globals for sfnt driver. - * src/sfnt/ttcmapc.h describing the content of - tt_cmap_classes allocated in ttcmap.c - - * src/sfnt/sfnt.c add new file to build: sfntpic.c. - * src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Position Independent Code (PIC) support in truetype driver. - - * include/freetype/internal/services/svmm.h add macros to init - instances of FT_Service_MultiMastersRec. - * include/freetype/internal/services/svttglyf.h add macros to init - instances of FT_Service_TTGlyfRec. - - * src/truetype/ttdriver.h declare tt_driver_class using macros from - ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy - functions will be declared. - * src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined - the following structs: - tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class - and tt_services array, - will have functions to init or create and destroy them - instead of being allocated in the global scope. - And macros will be used from ttpic.h in order to access them - from the pic_container. - * src/truetype/ttobjs.c change trick_names array to be - PIC-compatible by being a two dimensional array rather than array - of pointers. - - New Files: - * src/truetype/ttpic.h declare struct to hold PIC globals for truetype - driver and macros to access them. - * src/truetype/ttpic.c implement functions to allocate, destroy and - initialize PIC globals for truetype driver. - - * src/truetype/truetype.c add new file to build: ttpic.c. - * src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Position Independent Code (PIC) support and infrastructure in base. - - * include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC - * include/freetype/internal/ftobjs.h Add pic_container member to - FT_LibraryRec. - Add macros to declare and init instances of FT_CMap_ClassRec. - Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs. - Add macros to declare, allocate and initialize modules - (FT_Module_Class). - Add macros to declare, allocate and initialize renderers - (FT_Renderer_Class). - Add macro to init instances of FT_Glyph_Class. - Add macros to declare, allocate and initialize drivers - (FT_Driver_ClassRec). - * include/freetype/internal/ftpic.h new file to declare the - FT_PIC_Container struct and the functions to allocate and destroy it. - * include/freetype/internal/ftserv.h add macros to allocate and - destroy arrays of FT_ServiceDescRec. - * include/freetype/internal/internal.h define macro to include - ftpic.h. - - New Files: - * src/base/ftpic.c implement functions to allocate and destroy the - global pic_container. - * src/base/basepic.h declare struct to hold PIC globals for base and - macros to access them. - * src/base/basepic.c implement functions to allocate, destroy and - initialize PIC globals for base. - - * src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement - functions that allocate and destroy ft_default_modules according to - FT_CONFIG_MODULES_H in the pic_container instead of the global scope - and use macro from basepic.h to access it. - * src/base/ftobjs.c add calls to the functions that allocate and - destroy the global pic_container when the library is created and - destroyed. - - * src/base/jamfile add new files to FT2_MULTI build: - ftpic.c and basepic.c. - * src/base/ftbase.c add new files to build: - ftpic.c and basepic.c. - - * src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined - ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated - in the pic_container instead of the global scope and use macros from - basepic.h to access them. - * src/base/ftbbox.c allocate bbox_interface struct on the stack - instead of the global scope when FT_CONFIG_OPTION_PIC is defined. - * src/base/ftstroke.c access ft_outline_glyph_class allocated in - ftglyph.c via macros from basepic.h - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Preparing changes in cff parser later needed for PIC version. - - * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c, - src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to - 'CFF_ParserRec' set by `cff_parser_init'. - Route library pointer from 'cff_face_init' to 'cff_subfont_load' - for `cff_parser_init'. - - * src/cff/cffparse.c (CFF_Field_Handler): Move it to... - * src/cff/cffparse.h: This file, to be used by other C files. - -2009-04-05 Oran Agra <oran@monfort.co.il> - - Minor change in ftstroke.c. - - * src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with - `library' needed for PIC version. - Update all callers. - -2009-04-04 Werner Lemberg <wl@gnu.org> - - ftnames.c -> ftsnames.c - - * src/base/ftnames.c: Rename to... - * src/base/ftsnames.c: This. - * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated. - -2009-04-04 Werner Lemberg <wl@gnu.org> - - Add support for cmap type 13. - - * devel/ftoption.h, include/freetype/config/ftoption.h - (TT_CONFIG_CMAP_FORMAT_13): New macro. - - * src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init, - tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next, - tt_cmap13_get_info, tt_cmap13_char_map_def_binary, - tt_cmap14_class_rec): New functions and structures for cmap 13 - support. - (tt_cmap_classes): Register tt_cmap13_class_rec. - - * docs/CHANGES: Mention cmap 13 support. - -2009-04-01 Werner Lemberg <wl@gnu.org> - - Ignore empty contours in CFF glyphs. - - Problem reported by Albert Astals Cid <aacid@kde.org>. - - * src/cff/cffgload.c (cff_builder_close_contour): Synchronize with - t1_builder_close_contour. - -2009-03-21 Werner Lemberg <wl@gnu.org> - - Another redundant header inclusion. - - * src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041. - -2009-03-21 Werner Lemberg <wl@gnu.org> - - Remove redundant header inclusions. - - This covers many Ghostscript Coverity issues. - - * src/*: Do it. - -2009-03-21 Werner Lemberg <wl@gnu.org> - - Fix Ghostscript Coverity issue #3904. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against - invalid values of `runcnt'. - -2009-03-20 Werner Lemberg <wl@gnu.org> - - Fix `make multi' run. - - * src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H. - -2009-03-20 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #25923. - - * src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo. - -2009-03-20 Werner Lemberg <wl@gnu.org> - - Protect against too large glyphs. - - Problem reported by Tavis Ormandy <taviso@google.com>. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow - `pitch' or `height' to be larger than 0xFFFF. - -2009-03-20 Werner Lemberg <wl@gnu.org> - Tavis Ormandy <taviso@google.com> - - Fix validation for various cmap table formats. - - * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate, - tt_cmap12_validate): Check `length' correctly. - (tt_cmap_14_validate): Check `length' and `numMappings' correctly. - -2009-03-20 Werner Lemberg <wl@gnu.org> - - Protect against malformed compressed data. - - * src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is - zero. - -2009-03-20 Werner Lemberg <wl@gnu.org> - - Protect against invalid SID values in CFFs. - - Problem reported by Tavis Ormandy <taviso@google.com>. - - * src/cff/cffload.c (cff_charset_load): Reject SID values larger - than 64999. - -2009-03-19 Vincent Richomme <richom.v@free.fr> - - Update WinCE Visual C project files. - - * builds/wince/vc2005-ce/freetype.vcproj, - builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension - files. - -2009-03-19 Werner Lemberg <wl@gnu.org> - - Remove unused Win32 code. - - * builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'. - Since Win32 is handled separately this is no longer needed. - -2009-03-19 Vincent Richomme <richom.v@free.fr> - - Make `gzip' module compile on WinCE. - - * src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H. - -2009-03-19 Werner Lemberg <wl@gnu.org> - - Remove unused WinCE code. - - * builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'. - Since WinCE is handled separately this is no longer needed. - -2009-03-16 Werner Lemberg <wl@gnu.org> - - docmaker: Don't ignore single-line code blocks. - - * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from - 2009-01-31. - -2009-03-15 Steve Langasek <steve.langasek@canonical.com> - - Use __asm__ for declaring assembly instead of asm. - - * builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of - asm on arm, fixing a build failure on armel with -pedantic. - -2009-03-14 Werner Lemberg <wl@gnu.org> - - Fix valgrind warning. - - * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read - past the end of the frame. - -2009-03-12 Werner Lemberg <wl@gnu.org> - - * Version 2.3.9 released. - ========================= - - - Tag sources with `VER-2-3-9'. - -2009-03-12 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'. - -2009-03-12 Werner Lemberg <wl@gnu.org> - - Fix some FreeType Coverity issues as reported for Ghostscript. - - * src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize - `args.stream' (#3874, #3875). - (open_face_PS_from_sfnt_stream): Improve error management (#3786). - * src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice' - (#3870). - * src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead - code (#3790). - * src/base/ftrfork.c (raccess_guess_apple_generic): Check error - value of `FT_Stream_Skip' (#3784). - - * src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing - it (#3872) - - * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing - it (#3871). - * src/pcf/pcfread.c (pcf_get_metrics): Handle return value of - `pcf_get_metric' (#3789, #3782). - (pcf_get_properties): Use FT_STREAM_SKIP (#3783). - - * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of - `acache' (#3797) - - * src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff' - (#3796). - * src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795). - * src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794). - - * src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom' - (#3793). - (_bdf_parse_start): Add comment (#3792). - - * src/raster/ftraster.c (Finalize_Profile_Table): Check - `ras.fProfile' (#3791). - - * src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785). - - * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore - seek error (#3781). - -2009-03-11 Michael Toftdal <toftdal@gmail.com> - - Extend CID service functions to handle CID-keyed CFFs as CID fonts. - - * include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed, - FT_Get_CID_From_Glyph_Index): New functions. - - * include/freetype/internal/services/svcid.h - (FT_CID_GetIsInternallyCIDKeyedFunc, - FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs. - (CID Service): Use them. - - * src/base/ftcid.c: Include FT_CID_H. - (FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index): - New functions. - - * src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index): - New functions. - (cff_service_cid_info): Add them. - * src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids' - -- it is needed for access as a CID-keyed font. It gets deleted - later on. - - * src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index): - New functions. - (cid_service_cid_info): Add them. - - * docs/CHANGES: Updated. - -2009-03-11 Bram Tassyns <bramt@enfocus.be> - - Fix Savannah bug #25597. - - * src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length - to become larger than 9. - -2009-03-11 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #25814. - - * builds/unix/freetype2.in: As suggested in the bug report, move - @LIBZ@ to `Libs.private'. - -2009-03-11 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #25781. - We now simply check for a valid `offset', no longer handling `delta - = 1' specially. - - * src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for - last segment. - (tt_cmap4_set_range, tt_cmap4_char_map_linear, - tt_cmap4_char_map_binary): Check offset. - -2009-03-11 Werner Lemberg <wl@gnu.org> - - * src/base/Jamfile: Fix handling of ftadvanc.c. - Reported by Oran Agra <oran@monfort.co.il>. - -2009-03-10 Vincent Richomme <richom.v@free.fr> - - Restructure Win32 and Wince compiler support. - - * src/builds/win32: Remove files for WinCE. - Move VC 2005 support to a separate directory. - Add directory for VC 2008 support. - - * src/builds/wince: New directory hierarchy for WinCE compilers - (VC 2005 and VC 2008). - -2009-03-09 Werner Lemberg <wl@gnu.org> - - More preparations for 2.3.9 release. - - * docs/CHANGES: Updated. - - * Jamfile, README: s/2.3.8/2.3.9/, s/238/239/. - -2009-03-09 Werner Lemberg <wl@gnu.org> - - * src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c. - -2009-03-09 Alexey Kryukov <anagnost@yandex.ru> - - Fix handling of EBDT formats 8 and 9 (part 2). - - This patch fixes the following problems in ttsbit0.c: - - . Bitmaps for compound glyphs were never allocated. - - . `SBitDecoder' refused to load metrics if some other metrics have - already been loaded. This condition certainly makes no sense for - recursive calls, so I've just disabled it. Another possibility - would be resetting `decoder->metrics_loaded' to false before - loading each composite component. However, we must restore the - original metrics after finishing the recursion; otherwise we can - get a misaligned glyph. - - . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos', - causing some glyph components to be shifted too far to the right - (especially noticeable for small sizes). - - Note that support for grayscale bitmaps (not necessarily compound) is - completely broken in ttsbit0.c. - - * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics. - (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case - of `h == height'. - (tt_sbit_decoder_load_compound): Reset metrics after loading - components. - Allocate bitmap. - -2009-03-09 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.raw (version_info): Set to 9:20:3. - -2009-03-03 David Turner <david@freetype.org> - - Protect SFNT kerning table parser against malformed tables. - - This closes Savannah BUG #25750. - - * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a - bug where a malformed table would be successfully loaded but later - crash the engine during parsing. - -2009-03-03 David Turner <david@freetype.org> - - Update documentation and bump version number to 2.3.9. - - * include/freetype/freetype.h: Bump patch version to 9. - * docs/CHANGES: Document the ABI break in 2.3.8. - * docs/VERSION.DLL: Update version numbers table for 2.3.9. - -2009-03-03 David Turner <david@freetype.org> - - Remove ABI-breaking field in public PS_InfoFontRec definition. - - Instead, we define a new internal PS_FontExtraRec structure to - hold the additional field, then place it in various internal - positions of the corresponding FT_Face derived objects. - - * include/freetype/t1tables.h (PS_FontInfoRec): Remove the - `fs_type' field from the public structure. - * include/freetype/internal/psaux.h (T1_FieldLocation): New - enumeration `T1_FIELD_LOCATION_FONT_EXTRA'. - * include/freetype/internal/t1types.h (PS_FontExtraRec): New - structure. - (T1_FontRec, CID_FaceRec): Add it. - - * src/cid/cidload.c (cid_load_keyword): Handle - T1_FIELD_LOCATION_FONT_EXTRA. - * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c: - Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'. - * src/type1/t1load.c (t1_load_keyword): Handle - T1_FIELD_LOCATION_FONT_EXTRA. - - * include/freetype/internal/services/svpsinfo.h (PsInfo service): - Add `PS_GetFontExtraFunc' function typedef. - - * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and - FT_SERVICE_POSTSCRIPT_INFO_H. - (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service. - - * src/cff/cffdrivr.c (cff_service_ps_info): Updated. - * src/cid/cidriver.c (cid_ps_get_font_extra): New function. - (cid_service_ps_info): Updated. - * src/type1/t1driver.c (t1_ps_get_font_extra): New function. - (t1_service_ps_info): Updated. - * src/type42/t42drivr.c (t42_ps_get_font_extra): New function. - (t42_service_ps_info): Updated. - -2009-03-02 Alexey Kryukov <anagnost@yandex.ru> - - Fix handling of EBDT formats 8 and 9. - - The main cycle in `blit_sbit' makes too many iterations: it actually - needs the count of lines in the source bitmap rather than in the - target image. - - * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]: - Add parameter `source_height' and use it for main loop. - (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated. - -2009-02-23 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #25669. - - * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo. - - * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix - scaling factor for non-scalable fonts. - - * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width - value to prevent incorrect scaling. - - * docs/CHANGES: Document it. - -2009-02-15 Matt Godbolt <matt@godbolt.org> - - Fix Savannah bug #25588. - - * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for - `orr' instruction. - -2009-02-11 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'. - Reported by David Bevan <dbevan@emtex.com>. - -2009-02-09 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #25495. - - * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before - setting metrics and bbox values. This ensures that the check for a - font with neither a `glyf' table nor bitmap strikes can be performed - early enough to set metrics and bbox values too. - -2009-02-04 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #25480. - - * builds/unix/freetype-config.in: For --ftversion, don't use $prefix - but $includedir. - -2009-01-31 Werner Lemberg <wl@gnu.org> - - Minor docmaker improvements. - - * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty - code blocks. - -2009-01-25 Werner Lemberg <wl@gnu.org> - - Fix SCANCTRL handling in TTFs. - Problem reported by Alexey Kryukov <anagnost@yandex.ru>. - - * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling. - -2009-01-23 Werner Lemberg <wl@gnu.org> - - Move FT_Get_FSType_Flags to a separate file. - Problem reported by Mickey Gabel <mickey@monfort.co.il>. - - * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to... - * src/base/ftfstype.c: This new file. - - * modules.cfg (BASE_EXTENSION): Add ftfstype.c. - - * docs/INSTALL.ANY: Updated. - - * builds/mac/*.txt, builds/amiga/*makefile*, - builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*: - Updated. - -2009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error - messages ending without "\n". - -2009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix Savannah bug #25347. - - * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind - the stream to the original position passed to this function, - when ft_lookup_PS_in_sfnt_stream() failed. - (Mac_Read_sfnt_Resource): Rewind the stream to the head of - sfnt resource body, when open_face_PS_from_sfnt_stream() - failed. - -2009-01-19 Michael Lotz <mmlr@mlotz.ch> - - Fix Savannah bug #25355. - - * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make - assembler code work with gcc 2.95.3 (as used by the Haiku project). - Add `cc' register to the clobber list. - -2009-01-18 Werner Lemberg <wl@gnu.org> - - Protect FT_Get_Next_Char. - - * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to - change from 2008-07-22. - - Patch from Ronen Ghoshal <rghoshal@emtex.com>. - -2009-01-18 Werner Lemberg <wl@gnu.org> - - Implement FT_Get_Name_Index for SFNT driver. - - * src/sfnt/sfdriver.c (sfnt_get_name_index): New function. - (sfnt_service_glyph_dict): Use it. - - Problem reported by Truc Truong <tructv@necsv.com>. - -2009-01-18 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix - documentation. Problem reported by Truc Truong <tructv@necsv.com>. - - * docs/CHANGES: Updated. - -2009-01-14 Werner Lemberg <wl@gnu.org> - - * Version 2.3.8 released. - ========================= - - - Tag sources with `VER-2-3-8'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.3.8. - - * README, Jamfile (RefDoc), builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualce/index.html, - builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. - - * builds/unix/configure.raw (version_info): Set to 9:19:3. - - * docs/release: Updated. - -2009-01-14 Werner Lemberg <wl@gnu.org> - - * builds/toplevel.mk (dist): Compress better. - -2009-01-13 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation - with C++. - -2009-01-13 Werner Lemberg <wl@gnu.org> - - Don't use stdlib.h and friends directly. - Reported by Mickey Gabel <mickey@monfort.co.il>. - - * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/. - - * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h: - s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/. - - * src/autofit/aftypes.h, src/autofit/afhints.c, - src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/ - - * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h. - -2009-01-12 Werner Lemberg <wl@gnu.org> - - Avoid compiler warnings. - - * */*: s/do ; while ( 0 )/do { } while ( 0 )/. - Reported by Sean McBride <sean@rogue-research.com>. - -2009-01-12 Werner Lemberg <wl@gnu.org> - - Fix stdlib dependencies. - - Problem reported by Mickey Gabel <mickey@monfort.co.il>. - - * include/freetype/config/ftstdlib.h (ft_exit): Removed. Unused. - - * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c: - s/memcpy/ft_memcpy/. - * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/. - -2009-01-11 Werner Lemberg <wl@gnu.org> - - * docs/formats.txt: Add link to PCF specification. - - * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve - documentation. - -2009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance, - FT_Get_Advances): Change the type of load_flags from FT_UInt32 to - FT_Int32, to match with the flags for FT_Load_Glyph(). - * src/cff/cffdrivr.c (cff_get_advances): Ditto. - * src/truetype/ttdriver.c (tt_get_advances): Ditto. - * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances): - Ditto. - * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): - Ditto. - -2009-01-09 Daniel Zimmermann <netzimme@aol.com> - - * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong - length check. From Savannah patch #6682. - -2009-01-09 Werner Lemberg <wl@gnu.org> - - Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2. - - * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle - `count_offset' if it is zero (i.e., unused). Otherwise, the first - element of the structure which holds the data is erroneously - modified. Problem reported by Chi Nguyen <chint@necsv.com>. - -2009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance, - FT_Get_Advances): Extend the type of load_flags from FT_UInt to - FT_UInt32, to pass 32-bit flags on 16bit platforms. - * src/cff/cffdrivr.c (cff_get_advances): Ditto. - * src/truetype/ttdriver.c (tt_get_advances): Ditto. - * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances): - Ditto. - * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): - Ditto. - -2009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (FT_Done_Library): Issue an error message when - FT_Done_Face() cannot free all faces. If the list of the opened - faces includes broken face which FT_Done_Face() cannot free, - FT_Done_Library() retries FT_Done_Face() and it can fall into - an endless loop. See the discussion: - https://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html - https://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html - -2009-01-07 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Document new key `a' in ftdiff. - -2009-01-06 Werner Lemberg <wl@gnu.org> - - * autogen.sh: Don't use GNUisms while calling sed. Problem reported - by Sean McBride. - -2009-01-06 Werner Lemberg <wl@gnu.org> - - * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD - and FT_PIXEL_MODE_LCD_V. Problem reported by Chi Nguyen - <chint@necsv.com>. - -2009-01-06 Diego Pettenò <flameeyes@gmail.com> - - * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and - AC_CANONICAL_TARGET and use $host_os only. A nice explanation for - this change can be found at - https://blog.flameeyes.eu/s/canonical-target. - - From Savannah patch #6712. - -2009-01-06 Sean McBride <sean@rogue-research.com> - - * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static. - - * src/base/ftmac.c: Remove some #undefs. - -2008-12-26 Werner Lemberg <wl@gnu.org> - - Set `face_index' field in FT_Face for all font formats. - - * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init), - sfnt/sfobjs.c (sfnt_init_face): Do it. - - * docs/CHANGES: Document it. - -2008-12-22 Steve Grubb - - * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files. - Patch from Savannah bug #25151. - -2008-12-21 Werner Lemberg <wl@gnu.org> - - * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c, - src/smooth/ftgrays.c, src/base/ftobjs.c, src/sfobjs.c: - s/_Err_Bad_Argument/_Err_Invalid_Argument/. The former is for - errors in the bytecode interpreter only. - -2008-12-21 Werner Lemberg <wl@gnu.org> - - * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL - arguments. - Fix return value for non-PFR fonts. Both problems reported by Chi - Nguyen <chint@necsv.com>. - -2008-12-21 anonymous - - FT_USE_MODULE declares things as: - - extern const FT_Module_Class - - (or similar for C++). However, the actual types of the variables - being declared are often different, e.g., FT_Driver_ClassRec or - FT_Renderer_Class. (Some are, indeed, FT_Module_Class.) - - This works with most C compilers (since those structs begin with an - FT_Module_Class struct), but technically it's undefined behavior. - - To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7 - paragraph 2: - - All declarations that refer to the same object or function shall - have compatible type; otherwise, the behavior is undefined. - - (And they are not compatible types.) - - Most C compilers don't reject (or even detect!) code which has this - issue, but the GCC LTO development branch compiler does. (It - outputs the types of the objects while generating .o files, along - with a bunch of other information, then compares them when doing the - final link-time code generation pass.) - - Patch from Savannah bug #25133. - - * src/base/ftinit.c (FT_USE_MODULE): Include variable type. - - * builds/amiga/include/freetype/config/ftmodule.h, - include/freetype/config/ftmodule.h, */module.mk: Updated to declare - pass correct types to FT_USE_MODULE. - -2008-12-21 Hongbo Ni <hongbo@njstar.com> - - * src/autofit/aflatin.c (af_latin_hint_edges), - src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c - (af_cjk_hint_edges): Protect against division by zero. This fixes - Savannah bug #25124. - -2008-12-18 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2008-12-18 David Bevan <dbevan@emtex.com> - - Provide API for accessing embedding and subsetting restriction - information. - - * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING, - FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING, - FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING, - FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New - macros. - (FT_Get_FSType_Flags): New function declaration. - - * src/base/ftobjs.c (FT_Get_FSType_Flags): New function. - - * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c - (t42_keywords): Handle `FSType'. - - * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field. - -2008-12-17 Werner Lemberg <wl@gnu.org> - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal - macros so that copying the source code into an application works - out of the box. - -2008-12-17 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftsynth.h, src/base/ftsynth.c: Move - FT_GlyphSlot_Own_Bitmap to... - * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files. - - * docs/CHANGES: Document it. - -2008-12-10 Werner Lemberg <wl@gnu.org> - - Generalize the concept of `tricky' fonts by introducing - FT_FACE_FLAG_TRICKY to indicate that the font format's hinting - engine is necessary for correct rendering. - - At the same time, slightly modify the behaviour of tricky fonts: - FT_LOAD_NO_HINTING is now ignored. To really force raw loading - of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and - FT_LOAD_NO_AUTOHINT must be used. - - Finally, tricky TrueType fonts always use the bytecode interpreter - even if the patented code is used. - - * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY): - New macros. - - * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags - semantics as described above. - - * src/truetype/ttobjs.c (tt_check_trickyness): New function, using - code of ... - (tt_face_init): This function, now simplified and updated to new - semantics. - - * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky - fonts. - - * docs/CHANGES: Document it. - -2008-12-09 Werner Lemberg <wl@gnu.org> - - Really fix Savannah bug #25010: An SFNT font with neither outlines - nor bitmaps can be considered as containing space `glyphs' only. - - * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where - a `glyf' table is missing. - - * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no - `glyf' table but a non-zero `loca' entry. - (tt_loader_init): Handle missing `glyf' table. - - * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05. - - * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines - nor bitmaps is scalable. - -2008-12-05 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This - fixes Savannah bug #21190 which also provides a basic patch. - -2008-12-05 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value - 0x100 instead of 0x10000; the latter value is already occupied by - FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos. - - - Handle SFNT with neither outlines nor bitmaps. This fixes Savannah - bug #25010. - - * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither - outlines nor bitmaps. - - * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there - is no table with glyphs. - - - * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging - message. - -2008-12-01 Werner Lemberg <wl@gnu.org> - - GDEF tables need `glyph_count' too for validation. Problem reported - by Chi Nguyen <chint@necsv.com>. - - * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h - (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass - `glyph_count'. - -2008-11-29 Werner Lemberg <wl@gnu.org> - - * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c, - src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c, - src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c, - src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c, - src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings - (Atari PureC). - -2008-11-29 James Cloos <cloos@jhcloos.com> - - * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix - it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values - in the /BlendDesignMap space). - -2008-11-29 James Cloos <cloos@jhcloos.com> - - * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*, - whereas `design_points' is FT_Long*. Therefore, return blend rather - than design points. - -2008-11-27 Werner Lemberg <wl@gnu.org> - - * src/cff/cffparse.c (cff_parse_real): Handle more than nine - significant digits correctly. This fixes Savannah bug #24953. - -2008-11-25 Daniel Zimmermann <netzimme@aol.com> - - * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream - before the NULL check. From Savannah patch #6681. - -2008-11-24 Werner Lemberg <wl@gnu.org> - - Fixes from the gnuwin32 port. - - * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/. - - * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H. - - * src/psaux/psobjs.c (ps_table_add): Check `length'. - -2008-11-15 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (tt_default_graphics_state): The default - value for `scan_type' is zero, as confirmed by Greg Hitchcock from - Microsoft. Problem reported by Michal Nowakowski - <miszka@limes.com.pl>. - -2008-11-12 Tor Andersson <tor.andersson@gmail.com> - - * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field. - This fixes Savannah bug #24819. - -2008-11-08 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards - since OpenType version 1.5 has been released. - - * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY, - TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5. - (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE, - TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN, - TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE, - TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI, - TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC, - TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA, - TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING, - TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE, - TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI, - TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS, - TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New - macros for OpenType 1.5. - -2008-11-08 Wenlin Institute <wenlin@wenlin.com> - - * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against - slot->internal == NULL. Reported by Graham Asher. - -2008-11-08 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error - code so that memory allocation problems can be distinguished from - missing table entries. Reported by Graham Asher. - (GET_NAME): New macro. - (sfnt_load_face): Use it. - -2008-11-05 Werner Lemberg <wl@gnu.org> - - * devel/ftoption.h, include/freetype/config/ftoption.h - [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine - TT_CONFIG_OPTION_UNPATENTED_HINTING. This fixes the return value of - `FT_Get_TrueType_Engine_Type' (and makes it work as documented). - Reported in bug #441638 of bugzilla.novell.com. - - * docs/CHANGES: Document it. - -2008-11-03 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_subrs): Use an endless loop. There are - fonts (like HELVI.PFB version 003.001, used on OS/2) which define - some `subrs' elements more than once. Problem reported by Peter - Weilbacher <mozilla@weilbacher.org>. - -2008-10-15 Graham Asher <graham.asher@btinternet.com> - - * src/sfnt/ttpost.c (tt_post_default_names): Add `const'. - -2008-10-15 David Turner <david@freetype.org> - - * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for - meddlesome compilers' warning against `for ( ...; ...; ...) ;'. - -2008-10-14 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): Remove compiler warning. - Suggested by Bram Tassyns in Savannah patch #6651. - -2008-10-12 Graham Asher <graham.asher@btinternet.com> - - * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of - `underline_position'. - -2008-10-12 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2008-10-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix Savannah bug #24468. - - According to include/freetype/internal/ftobjs.h, the appropriate - type to interchange single character codepoint is FT_UInt32. It - should be distinguished from FT_UInt which can be 16bit integer. - - * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type - of the second argument `pcharcode' from FT_UInt* to FT_UInt32*. - (tt_cmap4_char_map_binary): Ditto. - (tt_cmap14_get_nondef_chars): Change the type of return value - from FT_UInt* to FT_UInt32*. - -2008-10-08 John Tytgat <John.Tytgat@esko.com> - - Fix Savannah bug #24485. - - * src/type1/t1load.c (parse_charstrings): Assure that we always have - a .notdef glyph. - -2008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build. - * builds/mac/ftmac.c: Ditto. - -2008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions. - * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H. - -2008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in - the beginning of sfnt container. - * src/sfnt/ttload.c (check_table_dir): Return - `SFNT_Err_Table_Missing' when sfnt table directory structure is - correct but essential tables for TrueType fonts (`head', `bhed' or - `SING') are missing. Other errors are returned by - SFNT_Err_Unknown_File_Format. - - * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns - `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'. It is - enabled only when old mac font support is configured. - -2008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN, - TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify - the repeated calculations of these values in ftobjs.c and ftmac.c. - * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags. - * src/base/ftmac.c: Ditto. - * builds/mac/ftmac.c: Ditto. - -2008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong - initialization of *is_sfnt_cid. - -2008-10-04 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler - warnings. - -2008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by... - (ft_lookup_PS_in_sfnt_stream): This. - (open_face_PS_from_sfnt_stream): New function. It checks whether - the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed - font, then try to open a face for given face_index. - (Mac_Read_sfnt_Resource): Replace the combination of - `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by - `open_face_PS_from_sfnt_stream'. - * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto. - * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto. - * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add - `open_face_PS_from_sfnt_stream'. - -2008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to - FALSE if neither `CID ' nor `TYP1' is found in the sfnt container. - -2008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or - MrC compiler of MPW is used. These compilers do not define the - macro __APPLE__ by themselves. - * builds/unix/ftconfig.in: Ditto. - * builds/vms/ftconfig.h: Ditto. - * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to - include ftmac.c if FreeType 2 is built by MPW. - * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to - enable shared functions for ftmac.c if FreeType 2 is built by MPW. - - * builds/mac/ftmac.c: Include ftbase.h. - (memory_stream_close): Removed. - (new_memory_stream): Ditto. - (open_face_from_buffer): Removed. Use the implementation in - ftobjs.c. - (ft_lookup_PS_in_sfnt): Ditto. - - * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an - included part of ftbase.c, to share the functions in ftobjs.c. The - rule compiling ftmac.c separately is removed and the rule copying - ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added. - * builds/mac/FreeType.m68k_cfm.make.txt: Ditto. - * builds/mac/FreeType.ppc_classic.make.txt: Ditto. - * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. - -2008-10-02 Bram Tassyns <bramt@enfocus.be> - - * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This - fixes Savannah bug #24430. - -2008-10-02 Werner Lemberg <wl@gnu.org> - - * builds/freetype.mk (BASE_H): Rename to... - (INTERNAL_H): This. - (FREETYPE_H): Updated. - * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H. - * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h. - * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h. - * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h. - * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h. - * src/type42/rules.mk (T42_DRV_H): Add t42types.h. - -2008-10-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftbase.h: New file to declare the private utility - functions shared by the sources of base modules. Currently, - `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to - share between ftobjs.c and ftmac.c. - - * src/base/rule.mk: Add ftbase.h. - - * src/base/ftobjs.c: Include ftbase.h. - (memory_stream_close): Build on any platform when old MacOS font - support is enabled. - (new_memory_stream): Ditto. - (open_face_from_buffer): Build on any platform when old MacOS font - support is enabled. The counting of the face in a font file is - slightly different between Carbon-dependent parser and Carbon-free - parser. They are merged with the platform-specific conditional. - (ft_lookup_PS_in_sfnt): Ditto. - - * src/base/ftmac.c: Include ftbase.h. - (memory_stream_close): Removed. - (new_memory_stream): Ditto. - (open_face_from_buffer): Removed. Use the implementation in - ftobjs.c. - (ft_lookup_PS_in_sfnt): Ditto. - -2008-10-02 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed - if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined. - -2008-10-01 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c - (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done), - src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c - (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done), - src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0. - Reported by Graham Asher. - -2008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/rules.mk: Add conditional source to BASE_SRC, for `make - multi' on Mac OS X. If the macro $(ftmac_c) is defined, - $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC. In a normal build, the - lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes - ftmac.c. - * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c). - * builds/unix/configure.raw: Add procedure to set up appropriate - value of $(ftmac_c) with the consideration of the availability of - Carbon framework. - -2008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/Jamfile: Add target for multi build by jam on Mac OS X. - * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this - function for MPW building. It is synchronized the condition to - include ftmac.c source into ftbase.c. - -2008-09-22 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (CFF_Operator, cff_argument_counts, - cff_decoder_parse_charstrings): Handle (invalid) - `callothersubr' and `pop' instructions. - -2008-09-22 John Tytgat <John.Tytgat@esko.com> - - Fix Savannah bug #24307. - - * include/freetype/internal/t1types.h (CID_FaceRec), - src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'. - -2008-09-21 Werner Lemberg <wl@gnu.org> - - * src/smooth/ftgrays.c (gray_raster_render): Don't dereference - `target_map' if FT_RASTER_FLAG_DIRECT is set. Problem reported by - Stephan T. Lavavej <stl@nuwen.net>. - -2008-09-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/otvalid/Jamfile: Add missing target `otvmath' for multi build - by jam. - * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by - jam. - -2008-09-20 Werner Lemberg <wl@gnu.org> - - * src/smooth/ftgrays.c (gray_find_cell): Fix threshold. The values - passed to this function are already `normalized'. Problem reported - by Stephan T. Lavavej <stl@nuwen.net>. - - * docs/CHANGES: Document it. - -2008-09-20 Werner Lemberg <wl@gnu.org> - - * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H. - (FT_Outline_Decompose): Decorate with tracing messages. - - * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with - FT_DEBUG_LEVEL_TRACE. - [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and - stdarg.h. - - (FT_TRACE) [_STANDALONE_]: Remove. - (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function. - (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros. - (FT_ERROR) [_STANDALONE_]: Updated. - - (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition. - Use FT_TRACE7. - (gray_dump_cells): Make it `static void'. - (gray_convert_glyph): Use FT_TRACE7. - - (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in - ftoutln.c. - - * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use - FT_ERROR_BASE. - - * docs/formats.txt: Updated. - -2008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped - CID-keyed font support. - * builds/mac/ftmac.c: Ditto. - -2008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in - sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code. - `open_face_from_buffer' frees the passed buffer if it cannot open a - face from the buffer, so the caller must not free it. - -2008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support - for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font. - (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID ' - table in sfnt table directory. It is used before loading TrueType - font driver. - - * docs/CHANGES: Add note about the current status of sfnt-wrapped - Type1 and sfnt-wrapped CID-keyed font support. - -2008-09-18 Werner Lemberg <wl@gnu.org> - - * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for - orthogonality (ft_free and ft_sfree could belong to different memory - pools). This fixes Savannah bug #24297. - -2008-09-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined - in tttags.h instead of numerical value 0x4F54544FL. - -2008-09-16 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.h, src/cff/cffgload.c - (cff_decoder_set_width_only): Eliminate function call. - -2008-09-15 George Williams <gww@silcom.com> - - Fix Savannah bug #24179, reported by Bram Tassyns. - - * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation - of default values. - -2008-09-15 Werner Lemberg <wl@gnu.org> - - * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index' - and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to - prevent unconditional definition. This fixes Savannah bug #24241. - - * src/psnames/pstables.h: Regenerated. - -2008-09-13 Werner Lemberg <wl@gnu.org> - - * autogen.sh, builds/unix/configure.raw, - include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor - beautifying. - - * include/freetype/ftadvanc.h, include/freetype/ftgasp.h, - include/freetype/ftlcdfil.h: Protect against FreeType 1. - Some other minor fixes. - - * devel/ftoption.h: Synchronize with - include/freetype/config/ftoption.h. - -2008-09-11 Werner Lemberg <wl@gnu.org> - - * src/base/ftbase.c: Include ftadvanc.c. - -2008-09-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/ftconfig.in: Duplicate the cpp computation of - FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h. - (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro. If defined, the cpp - computation is disabled and the statically configured sizes are - used. This fixes Savannah bug #21250. - - * builds/unix/configure.raw: Add the checks to compare the cpp - computation results of the bit length of int and long versus the - sizes detected by running `configure'. If the results are - different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the - results. - New option --{enable|disable}-biarch-config is added to define or - undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually. - -2008-09-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or - ApplicationServices framework is missing. Although this value is not - used in building of FreeType2, it is written in `freetype2.pc' and - `freetype-config'. - -2008-09-01 David Turner <david@freetype.org> - - * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap - index to mean `use default cached FT_Face's charmap'. This fixes - Savannah bug #22625. - * include/freetype/ftcache.h: Document it. - - - Make FT_MulFix an inlined function. This is done to speed up - FreeType a little (on x86 3% when loading+hinting, 10% when - rendering, ARM savings are more important though). Disable this by - undefining FT_CONFIG_OPTION_INLINE_MULFIX. - - Use of assembler code can now be controlled with - FT_CONFIG_OPTION_NO_ASSEMBLER. - - * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in - [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler - implementation. - [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler - implementation taken from `ftcalc.c'. - [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro - which is defined to the platform-specific assembler implementation - of FT_MulFix. - [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER] - (FT_MULFIX_INLINED): New macro. - - * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER, - FT_CONFIG_OPTION_INLINE_MULFIX): New macros. - - * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED. - - * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and - FT_MULFIX_INLINED. - - - Add a new header named FT_ADVANCES_H declaring some new APIs to - extract the advances of one or more glyphs without necessarily - loading their outlines. Also provide `fast loaders' for the - TrueType, Type1, and CFF font drivers (more to come later). - - * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files. - - * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro. - * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro. - - * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): - `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed', - respectively. - - * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add - ftadvanc.c. - - * src/cff/cffdrivr.c (cff_get_advances): New function. - (cff_driver_class): Register it. - - * src/cff/cffgload.c (cff_decoder_set_width_only): New function. - (cff_decoder_parse_charstrings): Handle `width_only'. - (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY. - - * src/cff/cffgload.h (cff_decoder): New element `width_only'. - (cff_decoder_set_width_only): New declaration. - - * src/truetype/ttdriver.c (tt_get_advances): New function. - (tt_driver_class): Register it. - - * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to... - (TT_Get_HMetrics, TT_Get_VMetrics): This. - Update callers. - * src/truetype/ttgload.h: Declare them. - - * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New - function. - * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances. - - - Add checks for minimum version of the `autotools' stuff. - - * autogen.sh: Implement it. - (get_major_version, get_minor_version, get_patch_version, - compare_to_minimum_version, check_tool_version): New auxiliary - functions. - - * README.CVS: Document it. - -2008-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in - tttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ). - -2008-08-28 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_encoding): Protect against infinite - loop. This fixes Savannah bug #24150 (where a patch has been posted - too). - -2008-08-23 Werner Lemberg <wl@gnu.org> - - * src/type/t1afm.c (compare_kern_pairs), src/psaux/afmparse.c - (afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug - #24119. - -2008-08-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always, - even if passed library or arguments are invalid. This fixes a bug - that an uninitialized stream is freed when an invalid library handle - is passed. Originally proposed by Mike Fabian, 2008/08/18 on - freetype-devel. - (FT_Open_Face): Ditto (stream). - (load_face_in_embedded_rfork): Ditto (stream2). - -2008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c: Add a fallback to guess the availability of the - `ResourceIndex' type. It is used when built without configure - (e.g., a build with Jam). - * builds/mac/ftmac.c: Ditto. - * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0 - explicitly, even if `ResourceIndex' is unavailable. - -2008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: In checking of Mac OS X features, - all-in-one header file `Carbon.h' is replaced by the minimum - header file `CoreServices.h', similar to current src/base/ftmac.c. - -2008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of - sub-header when its code_count is 0. Many Japanese Dynalab fonts - include such an empty sub-header (code_count == 0, first_code == 0 - delta == 0, but offset != 0) as the second sub-header in SJIS cmap. - -2008-08-04 Werner Lemberg <wl@gnu.org> - - * src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes - Savannah bug #23995. - - * src/cid/cidload.c (parse_expansion_factor): New callback function. - (cid_field_records): Use it for `ExpansionFactor'. - * src/cod/cidtoken.h: Handle `ForceBold' keyword. - Don't handle `ExpansionFactor'. - -2008-08-04 Bram Tassyns <bramt@enfocus.be> - - * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which - resulted in incorrect scaling. This fixes Savannah bug #23973. - -2008-08-04 Werner Lemberg <wl@gnu.org> - - Be more tolerant w.r.t. invalid entries in SFNT table directory. - - * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and - adjust table count. - Add more trace messages. - (tt_face_load_font_dir): Updated. - -2008-07-30 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer - assume that the first argument on the stack is the bottom-most - element. Two reasons: - - o According to people from Adobe it is missing in the Type 2 - specification that pushing of additional, superfluous arguments - on the stack is prohibited. - - o Acroread in general handles fonts differently, namely by popping - the number of arguments needed for a particular operand (as a PS - interpreter would do). In case of buggy fonts this causes a - different interpretation which of the elements on the stack are - superfluous and which not. - - Since there are CFF subfonts (embedded in PDFs) which rely on - Acroread's behaviour, FreeType now does the same. - -2008-07-27 Werner Lemberg <wl@gnu.org> - - Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This - fixes Savannah bug #23940. - - * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to... - (EXTRA_GLYPH_LIST_SIZE): This. - Increase by 2. - (ft_wgl_extra_unicodes): Rename to... - (ft_extra_glyph_unicodes): This. - Add two code values. - (ft_wgl_extra_glyph_names): Rename to... - (ft_extra_glyph_names): This. - Add two glyphs. - (ft_wgl_extra_glyph_name_offsets): Rename to... - (ft_extra_glyph_name_offsets): This. - Add two offsets. - - (ps_check_wgl_name, ps_check_wgl_unicode): Rename to... - (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This. - Updated. - (ps_unicodes_init): Updated. - -2008-07-26 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (cff_decoder_prepare, - cff_decoder_parse_charstrings): Improve debug output. - -2008-07-22 Martin McBride <mmcbride@emtex.com> - - * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear, - tt_cmap4_char_map_binary): Handle fonts which treat the last segment - specially. According to the specification, such fonts would be - invalid but acroread accepts them. - -2008-07-16 Jon Foster <Jon.Foster@cabot.co.uk> - - * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error. - - * src/base/ftcalc.c (FT_MulFix): Fix portability issue. - - * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]: - Fix compiler warning. - -2008-07-16 Werner Lemberg <wl@gnu.org> - - Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly. - - * src/cff/cffload.c (cff_font_load): Pass `pure_cff'. - Invert sids table only if `pure_cff' is set. - * src/cff/cffload.h: Updated. - - * src/cff/cffobjs.c (cff_face_init): Updated. - Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set. - - * docs/CHANGES: Updated. - -2008-07-09 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts - where num_locations < num_glyphs. Problem reported by Ding Li. - -2008-07-05 Werner Lemberg <wl@gnu.org> - - Since FreeType uses `$(value ...)', we now need GNU make 3.80 or - newer. This fixes Savannah bug #23648. - - * configure: zsh doesn't like ${1+"$@"}. - Update needed GNU make version. - * builds/toplevel.mk: Check for `$(eval ...)'. - * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document - it. - -2008-07-04 Werner Lemberg <wl@gnu.org> - - * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one - pixel, only check for dropouts if neither start nor end point lies - on a pixel center. This fixes Savannah bug #23762. - -2008-06-29 Werner Lemberg <wl@gnu.org> - - * Version 2.3.7 released. - ========================= - - - Tag sources with `VER-2-3-7'. - - * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump - version number to 2.3.7. - - * README, Jamfile (RefDoc), builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualce/index.html, - builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. - - * builds/unix/configure.raw (version_info): Set to 9:18:3. - - * docs/release: Updated. - -2008-06-28 Werner Lemberg <wl@gnu.org> - - * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to... - * src/ftcalc.c: Here. This fixes Savannah bug #23729. - -2008-06-27 Werner Lemberg <wl@gnu.org> - - * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, - Horizontal_Gray_Sweep_Drop): Test for intersections which - degenerate to a single point can be ignored; this has been confirmed - by Greg Hitchcock from Microsoft. (This was commented out code.) - -2008-06-26 Werner Lemberg <wl@gnu.org> - - Improve navigation in API reference. - - * src/tools/docmaker/tohtml.py (html_header_3): Renamed to... - (html_header_6): This. - (html_header_3, html_header_3i, html_header_4, html_header_5, - html_header_5t): New strings. - (toc_footer_start, toc_footer_end): New strings. - (HtmlFormatter::html_header): Updated. - (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header): - New strings. - (HtmlFormatter::index_enter): Use `html_index_header'. - (HtmlFormatter::index_exit): Print `html_footer'. - (HtmlFormatter::toc_enter): Use `html_toc_header'. - (HtmlFormatter::toc_exit): Print proper footer. - - Convert ~ to non-breakable space. - - * src/tools/docmaker/tohtml.py (make_html_para): Implement it. - Update header files accordingly. - -2008-06-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: Check type `ResourceIndex' explicitly - and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5 - bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without - ResourceIndex type definition. The macro does not inform the type - availability. - * src/base/ftmac.c: More parentheses are inserted to clarify the - conditionals to disable legacy APIs in `10.5 and later' cases. If - HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined. - -2008-06-24 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering - mode. - - * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph, - Draw_Sweep): No-dropout mode is value 2, not value 0. - (Draw_Sweep): Really skip dropout handling for no-dropout mode. - -2008-06-24 Werner Lemberg <wl@gnu.org> - - * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour - if it consists of one point only. Based on a patch from Savannah - bug #23683 (from John Tytgat). - -2008-06-22 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff - with IS_HINTED. - - * docs/CHANGES: Updated. - -2008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option - but LDFLAGS does not, import it to LDFLAGS. The option is used to - specify non-default SDK on Mac OS X (e.g., universal binary SDK for - Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137 - recommends to add the option only to CFLAGS, LDFLAGS should include - it because libfreetype.la is built with -no-undefined. This fixes a - bug reported by Ryan Schmidt in MacPorts, - https://trac.macports.org/ticket/15331. - -2008-06-21 Werner Lemberg <wl@gnu.org> - - Enable access to the various dropout rules of the B&W rasterizer. - Pass dropout rules from the TT bytecode interpreter to the - rasterizer. - - * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS, - FT_OUTLINE_EXCLUDE_STUBS): New flags for FT_Outline. - - * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, - Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the - OpenType specification. - Fix mode 4 computation. - (Render_Glyph, Render_Gray_Glyph): Handle new outline flags. - - * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion - mode to FT_OUTLINE_XXX flags. - - * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check. - -2008-06-19 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): Compute final - `dict->units_per_em' value before assigning it to - `cffface->units_per_EM'. Otherwise, CFFs without subfonts are - scaled incorrectly if the font matrix is non-standard. This fixes - Savannah bug #23630. - - * docs/CHANGES: Updated. - -2008-06-19 Werner Lemberg <wl@gnu.org> - - * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix - from 2008-06-19. - -2008-06-18 Werner Lemberg <wl@gnu.org> - - * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21. - Reported by Peter Weilbacher <mozilla@weilbacher.org>. - - * docs/CHANGES: Updated. - -2008-06-15 George Williams <gww@silcom.com> - - * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set - `valid->extra2' to 1. This is undocumented in the OpenType 1.5 - specification. - -2008-06-15 Werner Lemberg <wl@gnu.org> - - * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly - from clobbering. Patch from Savannah bug report #23556. - - * docs/CHANGES: Document it. - -2008-06-10 Werner Lemberg <wl@gnu.org> - - * autogen.sh: Add option `--install' to libtoolize. - -2008-06-10 Werner Lemberg <wl@gnu.org> - - * Version 2.3.6 released. - ========================= - - - Tag sources with `VER-2-3-6'. - - * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump - version number to 2.3.6. - - * README, Jamfile (RefDoc), builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualce/index.html, - builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. - - * builds/unix/configure.raw (version_info): Set to 9:17:3. - - - * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x' - and `scale_y'. - * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'. - - - * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H. - * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. - -2008-06-10 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (open_face): Check `clazz->init_face' and - `clazz->done_face'. - -2008-06-09 VaDiM <s_sliva@rambler.ru> - - Support debugging on WinCE. From Savannah patch #6536; this fixes - bug #23497. - - * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro - as a replacement for OutputDebugStringA (which WinCE doesn't have). - Update all callers. - (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have - environment variables. - -2008-06-09 Werner Lemberg <wl@gnu.org> - - * README.CVS: Updated. - - * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated - for newer versions of autoconf and friends. - -2008-06-08 Werner Lemberg <wl@gnu.org> - - * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and - `private_len' unsigned. - - * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read - it as such. - (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned. - - - * src/base/ftstream.c (FT_Stream_Skip): Reject negative values. - - - * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis' - for sane value. - Fix typo. - - - * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly. - - - * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check - `last_point'. - - - * src/sfnt/ttload.c (tt_face_load_max_profile): Limit - `maxTwilightPoints'. - -2008-06-06 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0' - correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem. - -2008-06-03 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftcache.h (FTC_FaceID): Change type back to - FT_Pointer. Reported by Ian Britten <britten@caris.com>. - -2008-06-02 Werner Lemberg <wl@gnu.org> - - Emit header info for defined FreeType objects in reference. - - * src/tools/docmaker/content.py (re_header_macro): New regexp. - (ContentProcessor::__init__): Initialize new dictionary `headers'. - (DocBlock::__init__): Collect macro header definitions. - - * src/tools/docmaker/tohtml.py (header_location_header, - header_location_footer): New strings. - (HtmlFormatter::__init__): Pass `headers' dictionary. - (HtmlFormatter::print_html_field): Don't emit paragraph tags. - (HtmlFormatter::print_html_field_list): Emit empty paragraph. - (HtmlFormatter::block_enter): Emit header info. - -2008-06-01 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H, - FT_INCREMENTAL_H): Added. - -2008-05-28 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/sources.py (SourceBlock::__init__): While - looking for markup tags, return immediately as soon a single one is - found. - -2008-05-28 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses - original, unscaled input values. Confirmed by Greg Hitchcock from - Microsoft. - -2008-05-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py (block_footer_start, - block_footer_middle): Beautify output. - -2008-05-25 Werner Lemberg <wl@gnu.org> - - * src/raster/ftraster.c (fc_black_render): Return 0 when we are - trying to render into a zero-width/height bitmap, not an error code. - - * src/truetype/ttgload.c (load_truetype_glyph): Move initialization - of the graphics state for subglyphs to... - (TT_Hint_Glyph): This function. - Hinting instructions for a composite glyph apparently refer to the - just hinted subglyphs, not the unhinted, unscaled outline. This - seems to fix Savannah bugs #20973 and (at least partially) #23310. - -2008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid - `aface' is returned by FT_New_Face_From_FOND(). The patch was - proposed by an anonymous reporter of Savannah bug #23204. - -2008-05-18 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after - correction for pixel boundary. Without this patch, the effect can - be cumulative under certain circumstances, making glyphs taller and - taller after each call. This fixes Savannah bug #19976. - -2008-05-18 Werner Lemberg <wl@gnu.org> - - * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr. - This fixes Savannah bug #23280. - - * docs/CHANGES: Updated. - -2008-05-18 David Turner <david@freetype.org> - - * src/psnames/psmodule.c (ft_wgl_extra_unicodes, - ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets, - ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make - declarations non-global. - - * src/type1/t1load.c: Add missing comment. - -2008-05-17 Sam Hocevar <samh> - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour - glyphs correctly. Patch from Savannah bug #23277. - -2008-05-16 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2008-05-16 Sergey Tolstov <stolstov@esri.com> - - Improve support for WGL4 encoded fonts. - - * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro. - (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names, - ft_wgl_extra_glyph_name_offsets): New arrays. - (ps_check_wgl_name, ps_check_wgl_unicode): New functions. - (ps_unicodes_init): Use them to add additional Unicode mappings. - -2008-05-15 Werner Lemberg <wl@gnu.org> - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - <op_closepath>: `closepath' without a path is a no-op, not an error - (cf. the PS reference manual). - - Reported by Martin McBride. - -2008-05-15 Werner Lemberg <wl@gnu.org> - - * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated. - -2008-05-15 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array - which contains a single but empty entry. This is technically - invalid (since it must end with `return'), but... - - Reported by Martin McBride. - -2008-05-14 Werner Lemberg <wl@gnu.org> - - Finish fix of scaling bug of CID-keyed CFF subfonts. - - * include/freetype/internal/ftcalc.h, src/base/ftcalc.c - (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New - functions. - - * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to - provide global hinting data for both the top-font and all subfonts - (with proper scaling). - - * src/cff/cffobjs.c (cff_make_private_dict): New function, using - code from `cff_size_init'. - (cff_size_init, cff_size_done, cff_size_select, cff_size_request): - Use CFF_Internal and handle subfonts. - (cff_face_init): Handle top-dict and subfont matrices correctly; - apply some heuristic in case of unlikely matrix concatenation - results. This has been discussed with people from Adobe (thanks - goes mainly to David Lemon) who confirm that the CFF specs are fuzzy - and not correct. - - * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument. - - * src/cff/cffgload.c (cff_builder_init): Updated. - (cff_decoder_prepare): Handle hints globals for subfonts. - Update all callers. - (cff_slot_load): Handling scaling of subfonts properly. - - * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function. - (cff_parse_font_matrix): Use it. - - * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em' - FT_ULong. - - * docs/CHANGES: Document it. - -2008-05-13 Werner Lemberg <wl@gnu.org> - - * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init): - Handle case `face_index < 0'. - * docs/CHANGES: Document it. - -2008-05-04 Werner Lemberg <wl@gnu.org> - - First steps to fix the scaling bug of CID-keyed CFF subfonts, - reported by Ding Li on 2008/03/28 on freetype-devel. - - * src/base/cff/cffparse.c (power_tens): New array. - (cff_parse_real): Rewritten to introduce a fourth parameter which - returns the `scaling' of the real number so that we have no - precision loss. This is not used yet. - Update all callers. - (cff_parse_fixed_thousand): Replace with... - (cff_parse_fixed_scaled): This function. Update all callers. - -2008-05-03 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without - transformation since it recursively calls FT_Load_Glyph. This fixes - Savannah bug #23143. - -2008-04-26 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x' - and `scale_y' as obsolete since they aren't used. - * src/psaux/psobjs.c (t1_builder_init): Updated. - - * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as - obsolete since they aren't used. - * src/cff/cffgload.c (cff_builder_init): Updated. - -2008-04-14 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to - `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZW'. From Savannah - bug #22909. - -2008-04-13 Werner Lemberg <wl@gnu.org> - - * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if - integer part is zero. - -2008-04-01 Werner Lemberg <wl@gnu.org> - - Fix compilation with g++ 4.1 (with both `single' and `multi' - targets). - - * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block - which is crossed by a `goto'. - - * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype. - -2008-03-31 Werner Lemberg <wl@gnu.org> - - Fix support for subsetted CID-keyed CFFs. - - * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED, - FT_IS_CID_KEYED): New macros. - - * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the - maximum CID value in CID-keyed CFFs. - Handle FT_FACE_FLAG_CID_KEYED flag. - - * docs/CHANGES: Document it. - - - Fix CFF font matrix calculation and improve precision. - - * src/cff/cffparse.c (cff_parse_real): Increase precision if integer - part is zero. - (cff_parse_font_matrix): Simplify computation of `units_per_em'; - this prevents overflow also. - - - Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts. - - * src/cid/cidriver.c: Include FT_SERVICE_CID_H. - (cid_get_ros): New function. - (cid_service_cid_info): New service structure. - (cid_services): Register it. - -2008-03-23 Werner Lemberg <wl@gnu.org> - - Adjustments for Visual C++ 8.0, as reported by Rainer Deyke. - - * builds/compiler/visualc.mk (CFLAGS): Remove /W5. - (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE. - -2008-03-21 Laurence Darby <ldarby> - - * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from - Savannah bug #22675. - -2008-03-13 Derek Clegg <dclegg@apple.com> - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop. - Patch from Savannah bug #22541. - -2008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp> - - * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary, - tt_cmap14_find_variant): Return correct value. - (tt_cmap14_variant_chars): Fix check for `di'. - -2008-02-29 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2008-02-29 Wolf - - Add build support for symbian platform. From Savannah bug #22440. - - * builds/symbian/*: New files. - -2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name - synthesis. For any face of a specified FOND, always the name for - the first face was used. Except of a FOND that refers multiple - Type1 font files, wrong synthesized font names are not used at all, - so this is an invisible bug. A few limit checks are added too. - - * builds/mac/ftmac.c: Ditto. - -2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: Split compiler option to link Carbon - frameworks to one option for CoreServices framework and another - option for ApplicationServices framework. The split options can be - managed by GNU libtool to avoid unrequired duplication when FreeType - is linked with other applications. Suggested by Daniel Macks, - Savannah bug #22366. - -2008-02-18 Victor Stinner <victor.stinner@haypocalc.com> - - * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix - from Savannah bug #22356. - -2008-02-17 Jonathan Blow <jon@number-none.com> - - * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): - Check for valid callback pointers. - -2008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource - handle by its value instead of ResError(), fix provided by Deron - Kazmaier. According to the Resource Manager Reference, - GetResource(), Get1Resource(), GetNamedResource(), - Get1NamedResource() and RGetResource() set noErr but return NULL - handle when they can not find the requested resource. These - functions never return undefined values, so it is sufficient to - check if the handle is not NULL. - - * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto. - -2008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other - inclusion styles. Now it always includes src/base/ftmac.c; - builds/mac/ftmac.c is never included in any configuration. - - * builds/unix/configure.raw: Print warning if configure is executed - with options to specify Carbon functionalities explicitly. - - * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not - included automatically and manual replacement is required. - -2008-02-11 Werner Lemberg <wl@gnu.org> - - * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk - (dos_setup), builds/freetype.mk (clean_project_dos, - distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan - Murdoch. - -2008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com> - - * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to - mention intra-pixel algorithm. - - * include/freetype/freetype.h (FT_Render_Mode): Mention that - FT_Library_SetLcdFilter can be used to reduce fringes. - -2008-01-16 Werner Lemberg <wl@gnu.org> - - * src/raster/ftraster.c (ft_black_render): Check `outline' before - using it. Reported by Allan Yang. - -2008-01-12 Werner Lemberg <wl@gnu.org> - - * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove. - -2008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com> - - * src/raster/ftraster.c (ft_black_init) - [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation. - -2008-01-10 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (load_truetype_glyph): Handle the case - where the number of contours in a simple glyph is zero (and which - does contain an entry in the `glyf' table). This fixes Savannah bug - #21990. - -2008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Formatting suggested by Sean McBride. - - * builds/mac/ftmac.c: Formatting (tab expanded). - * src/autofit/afindic.c: Ditto. - * src/base/ftcid.c: Ditto. - * src/base/ftmac.c: Ditto. - -2007-12-30 Werner Lemberg <wl@gnu.org> - - * src/smooth/ftgrays.c (gray_raster_render): Check `outline' - correctly. - -2007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Improvement of POSIX resource-fork accessor to load unsorted - references in a resource. In HelveLTMM (resource-fork PostScript - Type1 font bundled with Mac OS X since 10.3.x), the appearance order - of PFB chunks is not sorted; sorting the chunks by reference IDs is - required. - - * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure - type to store a pair of reference ID and offset to the chunk. - - * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to - sort FT_RFork_Ref by their reference IDs. - - (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is - sorted by reference ID. - -2007-12-14 Werner Lemberg <wl@gnu.org> - - * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten' - division too early; otherwise the most significant digit(s) of the - final result are lost as the value is truncated to an integer. This - fixes Savannah bug #21794 (where the patch has been posted too). - -2007-12-06 Fix <4d876b82@gmail.com> - - Pass options from one configure script to another as-is (not - expanded). This is needed for options like - --includedir='${prefix}/include'. - - * builds/unix/detect.mk, configure: Prevent argument expansion in - call to the (real) `configure' script. - -2007-12-06 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if - TT_USE_BYTECODE_INTERPRETER isn't defined. - -2007-12-06 Werner Lemberg <wl@gnu.org> - - There exist CFFs which contain opcodes for the Type 1 operators - `hsbw' and `closepath' which are both invalid in Type 2 charstrings. - However, it doesn't harm to support them. - - * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and - `cff_op_closepath.' - (cff_argument_counts): Ditto. - - (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath) - and 13 (hsbw) which are invalid in Type 2 charstrings. - -2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to - support new pathname syntax `..namedfork/rsrc' to access a resource - fork on Mac OS X. The legacy syntax `/rsrc' does not work on - case-sensitive HFS+. - (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of - buffer size to store a pathname. - * include/freetype/internal/ftrfork.h: Increment the number of - resource fork guessing rule. - -2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: Improve the compile tests to search - Carbon functions. - * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities - proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16). - -2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - The documents and comments for Mac OS X are improved by Sean - McBride. - - * src/base/ftmac.c: Fix a comment. - * include/freetype/ftmac.h: Ditto. - * docs/INSTALL.MAC: Improve English and add comment on lowest - system version specified by MACOSX_DEPLOYMENT_TARGET. - -2007-12-04 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to - concatenate error codes. - * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto. - -2007-12-04 Graham Asher <graham.asher@btinternet.com> - - * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to - concatenate error codes. - -2007-12-04 Sean McBride <sean@rogue-research.com> - - * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler - warning. - -2007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is - not working since 2.3.5. In FT_Open_New(), if FT_New_Stream() - cannot mmap() the specified file and cannot seek to head of the - specified file, it returns NULL stream and FT_Open_New() returns the - error immediately. On MacOS, most legacy MacOS fonts fall into such - a scenario because their data forks are zero-sized and cannot be - sought. To proceed to guessing of resource fork fonts, the - functions for legacy MacOS font must properly handle the NULL stream - returned by FT_New_Stream(). - - * src/base/ftobjs.c (IsMacBinary): Return error - FT_Err_Invalid_Stream_Operation immediately when NULL stream is - passed. - (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed - to fallback. Originally, legacy MacOS font is tested in the cases - of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty) - or FT_Err_Unknown_File_Format (occurs when AppleSingle header or - .dfont header is combined). Now the case of - FT_Err_Cannot_Open_Stream is included. - - * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL, - skip FT_Stream_Seek(), which seeks to the head of stream, and - proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek() - for a NULL stream causes a Bus error on Mac OS X. - (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream - immediately if passed stream is NULL. - (raccess_guess_apple_single): Ditto. - -2007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix for Carbon incompatibilities since Mac OS X 10.5, - proposed by Sean McBride. - - * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET. - - * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and - FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling - Carbon functions from a forked process is classified as unsafe - by Apple. All Carbon-dependent functions should be deprecated. - - * src/base/ftmac.c: Use essential header files - <CoreServices/CoreServices.h> and - <ApplicationServices/ApplicationServices.h> instead of - all-in-one header file <Carbon/Carbon.h>. - - Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple - genuine macro PATH_MAX. - - Add fallback macro for kATSOptionFlagsUnRestrictedScope which - is not found in Mac OS X 10.0. - - Multi-character constants ('POST', 'sfnt' etc) are replaced by - 64bit constants calculated by FT_MAKE_TAG() macro. - - For the index in the segment of resource fork, new portable - type ResourceIndex is introduced for better compatibility. - This type is since Mac OS X 10.5, so it is defined as short - when built on older platforms. - - (FT_ATSFontGetFileReference): If build target is only the systems - 10.5 and newer, it calls Apple genuine ATSFontGetFileReference(). - - (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5 - and newer or 64bit platform, because legacy type FSSpec type is - removed completely. - - (FT_New_Face_From_FSSpec): Ditto. - -2007-11-01 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This - fixes Savannah bug #21485. - -2007-10-29 Daniel Svoboda <dasvo@planeta@cz> - - * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver - can handle the font at all, then check `face_index'. Otherwise, the - driver might return the wrong error code. This fixes Savannah bug - #21468. - -2007-10-21 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare - support for bit 8 of the `fsSelection' field in the `OS/2' table. - MS is already using this; hopefully, this becomes part of OpenType - 1.5. - Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22 - (WWS_SUBFAMILY). - -2007-10-20 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py (html_header_2): Fix typo. - Add `td.left' element to CSS. - (toc_section_enter): Use it. - -2007-10-18 David Turner <david@freetype.org> - - * include/freetype/freetype.h, src/base/ftobjs.c: Rename API - functions related to cmap type 14 support to the - `FT_Object_ActionName' scheme: - - FT_Get_Char_Variant_Index -> FT_Face_GetCharVariantIndex - FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault - FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors - FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar - FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant - - Update documentation accordingly. - - * src/sfnt/ttcmap.c: Stronger cmap 14 validation. - Make the code a little more consistent with FreeType coding - conventions and modify the cmap14 functions that returned a newly - allocated array to use a persistent vector from the TT_CMap14 object - instead. - - (TT_CMap14Rec): Provide array and auxiliary data for result. - (tt_cmap14_done, tt_cmap14_ensure): New functions. - - (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary, - tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant, - tt_cmap14_char_var_index, tt_cmap14_variants, - tt_cmap14_char_variants, tt_cmap14_def_char_count, - tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, - tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved. - -2007-10-15 George Williams <gww@silcom.com> - - Add support for cmap type 14. - - * devel/ftoption.h, include/freetype/config/ftoption.h - (TT_CONFIG_CMAP_FORMAT_14): New macro. - - * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc, - FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc, - FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New - support function prototypes. - (FT_CMap_ClassRec): Add them. - Update all users. - - * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New - macro. - - * include/freetype/freetype.h (FT_Get_Char_Variant_Index, - FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors, - FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API - functions. - - * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary - function. - (FT_Set_Charmap): Disallow cmaps of type 14. - (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault, - FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char, - FT_Get_Chars_Of_Variant): New API functions. - - * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros. - - (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate, - tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info, - tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary, - tt_cmap14_find_variant, tt_cmap14_char_var_index, - tt_cmap14_char_var_isdefault, tt_cmap14_variants, - tt_cmap14_char_variants, tt_cmap14_def_char_count, - tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, - tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and - structures for cmap 14 support. - (tt_cmap_classes): Register tt_cmap14_class_rec. - (tt_face_build_cmaps): One more error message. - - * docs/CHANGES: Mention cmap 14 support. - -2007-10-01 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4 - charmap fails, do the loop again while searching a UCS-2 charmap. - This favours MS charmaps over Apple ones. - -2007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c: Introduction of abstract `short' data types, - ResFileRefNum and ResID. These types were introduced for Copland, - then backported to MPW. The variables exchanged with FileManager - QuickDraw frameworks are redefined by these data types. Patch was - proposed by Sean McBride. - * builds/mac/ftmac.c: Ditto. - -2007-08-18 Werner Lemberg <wl@gnu.org> - - * src/otvalid/otvcommn.c (otv_x_y_ux_sy): Skip context glyphs. Found - by Imran Yousaf. Fixes Savannah bug #20773. - - (otv_Lookup_validate): Correct handling of LookupType. Found by - Imran Yousaf. Fixes Savannah bug #20782. - -2007-08-17 George Williams <gww@silcom.com> - - * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of - SingleSubstFormat1. - -2007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by - ${build-gcc} (unchecked) instead of by ${build}-gcc (checked). - Found by Ryan Hill. - -2007-08-11 George Williams <gww@silcom.com> - - * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h - (otv_Coverage_validate): Add fourth argument to pass an expected - count value. Update all users. - Check glyph IDs. - (otv_ClassDef_validate): Check `StartGlyph'. - - * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID - checks. - - * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only - 56 constants. - (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate): - Check glyph IDs. - -2007-08-08 Werner Lemberg <wl@gnu.org> - - * src/otvalid/otvbase.c, src/otvalid/otvcommn.c, - src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, - src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where - appropriate. Reported by George. - - * include/freetype/internal/fttrace.h: Define `trace_otvmath'. - - * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c. - - * docs/CHANGES: Updated. - -2007-08-08 George Williams <gww@silcom.com> - - Add `MATH' validating support to otvalid module. - - * include/freetype/tttags.h (TTAG_MATH): New macro. - * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro. - (FT_VALIDATE_OT): Updated. - - * src/otvalid/otvmath.c: New file. - - * src/otvalid/otvalid.c: Include otvmath.c. - * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table. - -2007-08-04 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL. - Fixes Savannah bug #20686. - -2007-08-03 Werner Lemberg <wl@gnu.org> - - * src/psnames/psmodule.c: Fix usage of - FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher. - -2007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c (open_face_from_buffer): The argument - `driver_name' is typed as `const char*' to match with the - callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT. - This is same with open_face_from_buffer in src/base/ftobjs.c. - Found and fixed by Sean McBride. - -2007-07-28 Werner Lemberg <wl@gnu.org> - - * src/raster/ftraster.c (count_table): Make it conditional. - * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with - a preprocessor statement. - -2007-07-27 Werner Lemberg <wl@gnu.org> - - * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before - first usage. From Savannah patch #6115. - -2007-07-16 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2007-07-16 Derek Clegg <dclegg@apple.com> - - Add new service for getting the ROS from a CID font. - - * include/freetype/config/ftheader.h (FT_CID_H): New macro. - * include/freetype/ftcid.h: New file. - - * include/freetype/internal/ftserv.h (FT_SERVICE_CID_H): New macro. - * include/freetype/internal/services/svcid.h: New file. - - * src/base/ftcid.c: New file. - - * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H. - (cff_get_ros): New function. - (cff_service_cid_info): New service structure. - (cff_services): Register it. - - * src/cff/cffload.c (cff_font_done): Free registry and ordering. - - * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'. - - * modules.cfg (BASE_EXTENSIONS): Add ftcid.c. - -2007-07-11 Derek Clegg <dclegg@apple.com> - - Add support for postscript name service to CFF driver. - - * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H. - (cff_get_ps_name): New function. - (cff_service_ps_name): New service structure. - (cff_services): Register it. - -2007-07-07 Werner Lemberg <wl@gnu.org> - - * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of - `target'. Reported by Sean McBride. - -2007-07-06 Werner Lemberg <wl@gnu.org> - - * src/pfr/pfrcmap.c: Include pfrerror.h. - - * src/autofit/afindic.c: Add some external declarations to pacify - `make multi' compilation. - - * src/cid/cidgload.c (cid_load_glyph): Pacify compiler. - - * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c - (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP), - src/autofit/aflatin.c (af_latin_hints_compute_edges), - src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c - (tt_face_get_metrics), src/base/ftobjs.c (open_face) - [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler. - - * docs/release: Mention test compilation targets. - -2007-07-04 Werner Lemberg <wl@gnu.org> - - * docs/PROBLEMS: Mention that some PS based fonts can't be - handled correctly by FreeType. - - * src/truetype/ttgload.c (load_truetype_glyph): Always allow a - recursion depth of 1. This was the maximum value in TrueType 1.0, - and some older fonts don't set this field correctly. - - * src/gxvalid/gxvmort1.c - (gxv_mort_subtable_type1_substTable_validate): Fix tracing message. - -2007-07-03 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize - `round' to pacify compiler. - -2007-07-02 Werner Lemberg <wl@gnu.org> - - - * Version 2.3.5 released. - ========================= - - - Tag sources with `VER-2-3-5'. - - * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump - version number to 2.3.5. - - * README, Jamfile (RefDoc), builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualce/index.html, - builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. - - * builds/unix/configure.raw (version_info): Set to 9:16:3. - -2007-07-01 David Turner <david@freetype.org> - - * include/freetype/freetype.h, src/base/ftpatent.c - (FT_Face_SetUnpatentedHinting): New function to dynamically change - the setting after a face is created. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug - that created distortions in the bytecode interpreter results. - -2007-06-30 David Turner <david@freetype.org> - - * src/truetype/ttinterp.c (Ins_IUP): Add missing variable - initialization. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Get rid of an - infinite loop in the case of degenerate fonts. - -2007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com> - - Add autofit module for Indic scripts. This currently just reuses - the CJK-specific functions. - - * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New - macro. - * devel/ftoption.h: Synchronize with - include/freetype/config/ftoption.h. - - * src/autofit/afindic.c, src/autofit/afindic.h: New files. - - * src/autofit/afglobal.c, src/autofit/aftypes.h, - src/autofit/autofit.c: Updated. - - * src/autofit/Jamfile (_sources), * src/autofit/rules.mk - (AUTOF_DRV_SRC): Updated. - -2007-06-23 David Turner <david@freetype.org> - - * src/truetype/ttgload.c (TT_Load_Simple): Fix change from - 2007-06-16 that prevented the TrueType module from loading most - glyphs. - -2007-06-20 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28 - change. - -2007-06-19 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_encoding): Handle one more error. - -2007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com> - - * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error - FNT_Err_Invalid_File_Format if file format was recognized but - the file doesn't contain any FNT(NE) or RT_FONT(PE) resources. - Add verbose debug logs to make it easier to debug failing load - attempts. - (FNT_Face_Init): A single FNT font can't contain more than 1 face, - so return an error if requested face index is > 0. - Do not do further attempt to load fonts if a previous attempt has - failed but returned error FNT_Err_Invalid_File_Format, i.e., the - file format has been recognized but no fonts found in the file. - -2007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c: Apply patches proposed by Sean McBride. - (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix - the compiler warnings against unused arguments. - (FT_ATSFontGetFileReference): Ditto. - (FT_GetFile_From_Mac_ATS_Name): Ditto. - (FT_New_Face_From_FSSpec): Ditto. - (lookup_lwfn_by_fond): Fix wrong comment. - Replace `const StringPtr' by more appropriate type - `ConstStr255Param'. - FSRefMakePathPath always returns UTF8 POSIX pathname in - Mach-O, thus HFS pathname support is dropped. - (count_faces): Remove HLock and HUnlock which is not - required on Mac OS X anymore. - (FT_New_Face_From_SFNT): Ditto. - (FT_New_Face_From_FOND): Ditto. - * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c, - except of HFS pathname support and HLock/HUnlock. - They are required on classic CFM environment. - -2007-06-18 Werner Lemberg <wl@gnu.org> - - * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect - assertion. - (ps_parser_to_bytes): Fix error message. - - * src/type42/t42objs.c (T42_Open_Face): Handle one more error. - * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/. - Don't allow mixed binary and hex strings. - Handle string_size == 0 and string_buf == 0. - (t42_parse_encoding): Handle one more error. - -2007-06-18 Werner Lemberg <wl@gnu.org> - - * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit - logic. - (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters - correctly. - (ps_parser_load_field_table): Use `fields->array_max' instead of - T1_MAX_TABLE_ELEMENTS to limit the number of arguments. - - * src/cff/cffgload.c (cff_decoder_prepare): Fix change from - 2007-06-06. - -2007-06-17 Werner Lemberg <wl@gnu.org> - - * src/tools/ftrandom.c (font_size): New global variable. - (TestFace): Use it. - (main): Handle new option `--size' to set `font_size'. - (Usage): Updated. - - * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of - invalid font. - (FNT_Load_Glyph): Protect against invalid bitmap width. - -2007-06-16 David Turner <david@freetype.org> - - * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline): - Prevent integer overflows when rendering very large outlines. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the - well-formedness of the contours array when loading a glyph. - - * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1', - and `zp2'. - (Ins_IP): Check argument ranges to reject bogus operations properly. - (IUP_WorkerRec): Add `max_points' member. - (_iup_worker_interpolate): Check argument ranges. - (Ins_IUP): Ignore empty outlines. - -2007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com> - - * src/winfonts/winfnt.h: Add necessary structures for PE resource - parsing. - (WinPE32_HeaderRec): New structure. - (WinPE32_SectionRec): New structure. - (WinPE_RsrcDirRec): New structure. - (WinPE_RsrcDirEntryRec): New structure. - (WinPE_RsrcDataEntryRec): New structure. - (FNT_FontRec): Remove unused `size_shift' field. - - * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for - loading bitmap .fon files in PE format. - -2007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com> - - * builds/win32/ftdebug.c: Unify debug level handling with other - platforms. - -2007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com> - - * builds/win32/ftdebug.c (FT_Message): Send debug output to the - console as well as to the debugger. - -2007-06-14 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to - cover all ranges which could possibly be handled by the aflatin - module (since the default fallback for unknown ranges is now the - afcjk module). It might be necessary to fine-tune this further by - splitting off modules for Greek, Cyrillic, or other blocks. - -2007-06-11 David Turner <david@freetype.org> - - * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix - incorrect segment linking computation. This was the root cause of - Savannah bug #19565. - - - * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes - to improve the Latin auto-hinter. Note that the new code is - disabled by default since it is not stabilized yet. - - * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files - (disabled currently). - - * src/autofit/afhints.c: Remove dead code. - (af_axis_hints_new_edge): Add argument to handle segment directions. - (af_edge_flags_to_string): New function. - (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle - option flags. - (af_glyph_hints_reload): Add argument to handle inflections. - Simplify. - (af_direction_compute): Fine tuning. - (af_glyph_hints_align_edge_points): Fix logic. - (af_glyph_hints_align_strong_points): Do linear search for small - edge counts. - (af_glyph_hints_align_weak_points): Skip any touched neighbors. - (af_iup_shift): Handle zero `delta'. - - * src/autofit/afhints.h: Updated. - (AF_SORT_SEGMENTS): New macro (disabled). - (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'. - - * src/autofit/afglobal.c (af_face_globals_get_metrics): Add - argument to pass option flags for handling scripts. - * src/autofit/afglobal.h: Updated. - - * src/autofit/afcjk.c: Updated. - * src/autofit/aflatin.c: Updated. - (af_latin_metrics_scale_dim): Don't reduce scale by 2%. - - (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code. - (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code. - Don't set `edge->dir' - (af_latin_hint_edges): Add more logging. - - * src/autofit/afloader.c: Updated. - -2007-06-11 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Document FT_Face_CheckTrueTypePatents. - -2007-06-10 David Turner <david@freetype.org> - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to - the TrueType glyph loader. - - * include/freetype/config/ftoption.h: Clarify documentation - regarding unpatented hinting. - - - Add new `FT_Face_CheckTrueTypePatents' API. - - * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New - declaration. - - * include/freetype/internal/services/svttglyf.h, - src/base/ftpatent.c: New files. - - * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H): - New macro. - - * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and - `ttpload.h'. - (tt_service_truetype_glyf): New service structure. - (tt_services): Register it. - - * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add - `ftpatent.c'. - -2007-06-08 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28. - Fonts without a cmap must be handled correctly by FreeType (anything - else would be a bug). - - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - [FT_DEBUG_LEVEL_TRACE]: Improve tracing message. - -2007-06-07 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttsbit0.c (tt_sbit_decoder_init, - tt_sbit_decoder_load_image): Protect against integer overflows. - - - * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks - for `x_control' and `y_control'. - -2007-06-06 Werner Lemberg <wl@gnu.org> - - * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'. - - - * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal - FreeType error. - - - * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of - `font_count'. - - - * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'. - - - * src/cff/cffgload.c (cff_decoder_prepare): Change return type to - `FT_Error'. - Check `fd_index'. - (cff_slot_load): Updated. - * src/cff/cffgload.h: Updated. - -2007-06-05 Werner Lemberg <wl@gnu.org> - - * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code. - (pfr_glyph_load_simple): Convert assertion into normal FreeType - error. - Check `idx'. - (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to): - Convert assertion into normal FreeType error. - - * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code. - - - * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'. - - - * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1 - in case of parsing error. - (ps_parser_load_field): Updated. - - * src/type1/t1load.c (parse_font_matrix): Updated. - -2007-06-04 Werner Lemberg <wl@gnu.org> - - * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'. - - * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'. - -2007-06-03 Werner Lemberg <wl@gnu.org> - - * src/tools/ftrandom/*: Add the `ftrandom' test program written by - George Williams (with some modifications). - -2007-06-03 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c - (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for - face == NULL. Suggested by Graham Asher. - -2007-06-03 Ismail Dönmez <ismail@pardus.org.tr> - - * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning. - -2007-06-02 Werner Lemberg <wl@gnu.org> - - * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header, - FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files. - - * src/bdf/bdflib.c (bdf_load_font): Use them. - - * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better. - -2007-06-01 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c - (FTC_CMapCache_Lookup): Remove unused code. - -2007-06-01 Sean McBride <sean@rogue-research.com> - - * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed, - unused. - -2007-06-01 Werner Lemberg <wl@gnu.org> - - * src/cid/cidparse.c (cid_parser_new): Don't continue second search - pass for `StartData' if an error has occurred. - Exit properly if no `StartData' has been seen at all. - - * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but - LONG_MAX to avoid compiler warning. Suggested by Sean McBride. - -2007-05-30 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect - against too small binary data strings. - - * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better. - -2007-05-28 David Turner <david@freetype.org> - - * src/cff/cffgload.c (cff_slot_load): Do not apply the identity - transformation. This significantly reduces the loading time of CFF - glyphs. - - * docs/CHANGES: Updated. - - * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default - hinting script to CJK, since it works well with more scripts than - latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing - this out! - -2007-05-25 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2007-05-24 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration - into TT_USE_BYTECODE_INTERPRETER preprocessor block. - -2007-05-24 Graham Asher <graham.asher@btinternet.com> - - * src/truetype/ttobjs.c (tt_size_ready_bytecode) - [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused. - -2007-05-22 David Turner <david@freetype.org> - - * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to - avoid crashes in case the bytecode interpreter is not used. - - - Avoid heap blowup with very large .Z font files. This fixes - Savannah bug #19910. - - * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor', - `in_limit', `pad', `pad_bits', and `in_buff' members. - Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and - `buf_total' members. - - * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes - only one argument. - (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated. - -2007-05-20 Ismail Dönmez <ismail@pardus.org.tr> - - * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'. - (ps_dimension_set_mask_bits): Remove `const'. - -2007-05-19 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttmtx.c (tt_face_get_metrics) - [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix. - -2007-05-19 Derek Clegg <dclegg@apple.com> - - Savannah patch #5929. - - * include/freetype/tttables.h, src/base/ftobjs.c - (FT_Get_CMap_Format): New function. - - * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add - `format' member. - * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set - cmap_info->format. - -2007-05-19 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state - before handling subglyphs so that it can be reinitialized each time. - This fixes Savannah bug #19859. - -2007-05-16 Werner Lemberg <wl@gnu.org> - - * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink), - src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h - (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init), - src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea, - tt_face_get_metrics): Fix type-punning issues. - -2007-05-15 David Turner <david@freetype.org> - - * include/freetype/config/ftstdlib.h, - include/freetype/internal/ftobjs.h: As suggested by Graham Asher, - ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values - instead of relying on the locale-dependent functions provided by - <ctypes.h>. - -2007-05-15 Graham Asher <graham.asher@btinternet.com> - - * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused - variable. - * src/autofit/afloader.c (af_loader_load_g): Ditto. - - * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'. - (open_face_from_buffer): Initialize `stream'. - (FT_Request_Metrics): Remove unused variable. - Remove redundant `break' statements. - (FT_Get_Track_Kerning): Remove unused variable. - - * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs, - afm_parse_kern_data): Remove redundant - `break' statements. - (afm_parser_parse): Ditto. - Don't use uninitialized variables. - - * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long. - Use `|' operator instead of `^' to set it. - Update all users. - - * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'. - * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant - comparison. - (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'. - (TT_Load_Glyph): Remove unused variable. - -2007-05-13 Derek Clegg <dclegg@apple.com> - - * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool - if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928. - -2007-05-11 David Turner <david@freetype.org> - - * src/cache/ftcbasic.c, include/freetype/ftcache.h - (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new - functions that allow us to look up glyphs using an FTC_Scaler object - to specify the size, making it possible to use fractional pixel - sizes. - - * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set - `size->cvt_ready'. Reported by Boris Letocha. - -2007-05-09 Graham Asher <graham.asher@btinternet.com> - - * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c - (af_latin_metrics_scale_dim): Fix compiler warnings. - -2007-05-06 Werner Lemberg <wl@gnu.org> - - * builds/win32/visualce/freetype.sln: Removed, as requested by - Vincent. - -2007-05-04 Vincent RICHOMME <richom.v@free.fr> - - * builds/win32/visualce/*: Add Visual C++ project files for Pocket - PC targets. - - * docs/CHANGES: Document them. - -2007-05-04 <harry@kdevelop.org> - - * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of - mmap (which might happen on some RTOS). From Savannah patch #5909. - -2007-05-03 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code. - * include/freetype/freetype.h (FT_Set_Char_Size): Update - documentation. - -2007-04-28 Victor Stinner <victor.stinner@inl.fr> - - * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading - `cmap'. - -2007-04-27 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative - number of points in contours. Problem reported by Victor Stinner - <victor.stinner@haypocalc.com>. - (TT_Process_Simple_Glyph): Synchronize variable types. - -2007-04-26 Werner Lemberg <wl@gnu.org> - - * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to - zero in case of error. This fixes Savannah bug #19689. - -2007-04-25 Boris Letocha <b.letocha@cz.gmc.net> - - * src/truetype/ttobjs.c: Fix a typo that created a speed regression - in the TrueType bytecode loader. - -2007-04-10 Martin Horak <horakm@centrum.cz> - - * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]: - Ignore `hhea' table. This fixes Savannah bug #19261. - -2007-04-09 Werner Lemberg <wl@gnu.org> - - - * Version 2.3.4 released. - ========================= - - - Tag sources with `VER-2-3-4'. - - * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump - version number to 2.3.4. - - * README, Jamfile (RefDoc), builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. - - * builds/unix/configure.raw (version_info): Set to 9:15:3. - -2007-04-09 Martin Horak <horakm@centrum.cz> - - * src/truetype/ttgload.c (load_truetype_glyph): Save and restore - memory stream to avoid a crash with the incremental memory - interface (Savannah bug #19260). - -2007-04-06 David Turner <david@freetype.org> - - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite - bug (Savannah bug #19536). - -2007-04-04 Werner Lemberg <wl@gnu.org> - - - * Version 2.3.3 released. - ========================= - - - Tag sources with `VER-2-3-3'. - - * docs/CHANGES: Mention CVE-2007-1351. - -2007-04-03 David Turner <david@freetype.org> - - * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos, - if one of the resolution values is 0, treat it as if it were the - same as the other value. - -2007-04-02 David Turner <david@freetype.org> - - Add special code to detect `extra-light' fonts and do not snap their - stem widths too much to avoid bizarre hinting effects. - - * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and - `extra_light' members. - - * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize - them. - (af_latin_metrics_scale_dim): Set `extra_light'. - (af_latin_compute_stem_width): Use `extra_light'. - -2007-03-28 David Turner <david@freetype.org> - - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the - padding. - -2007-03-28 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128 - gracefully. - (_bdf_set_default_spacing): Increase `name' buffer size to 256 and - issue an error for longer names. This fixes CVE-2007-1351. - (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the - number of code points in Unicode. - - * builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/, - s/232/233/. - - * docs/CHANGES: Mention ftdiff. - -2007-03-26 David Turner <david@freetype.org> - - * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and - corresponding code. - (Ins_MD): Last regression fix. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues - computations in order to ignore single-point contours. These are - never rasterized and correspond in certain fonts to mark-attach - points that are very far from the glyph's real outline, ruining the - computation. - - * src/autofit/afloader.c (af_loader_load_g): In the case of - monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0. - Otherwise code that uses them will most certainly ruin the fixed - advance property. - - * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update - documentation and bump version number to 2.3.3. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. - - * builds/unix/configure.raw (version_info): Set to 9:14:3. - -2007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/ftconfig.in: Disable Carbon framework dependency on - 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride. - * builds/vms/ftconfig.h: Ditto. - * include/freetype/config/ftconfig.h: Ditto. - -2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent - 32bit unsigned long overflow by 64bit filesize on LP64 platform, as - proposed by Sean McBride: - https://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html - -2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/ftconfig.in: Suppress SGI compiler's warning against - setjmp, proposed by Sean McBride: - https://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html - -2007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of - conftest.c, to avoid unexpected shell evaluation. Possibly it is a - bug or undocumented behaviour of autoconf. - -2007-03-18 David Turner <david@freetype.org> - - * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression - fix; testing still needed. - - * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix. - -2007-03-17 David Turner <david@freetype.org> - - * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the - (undocumented) twilight zone special case. - -2007-03-09 Werner Lemberg <wl@gnu.org> - - - * Version 2.3.2 released. - ========================= - - - Tag sources with `VER-2-3-2'. - - * builds/win32/visualc/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/, - s/231/232/. - -2007-03-08 David Turner <david@freetype.org> - - * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release. - - * builds/unix/configure.raw (version_info): Set to 9:13:3. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. - - * README, Jamfile (RefDoc): s/2.3.1/2.3.2/. - - * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the - function to work properly, over-writing user-provided buffers in - some cases. Reported by James Cloos <cloos@jhcloos.com>. - - -2007-03-05 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper - macro for `strstr'. - - * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning - `trick_names', as suggested by Ivan Nincic. - -2007-03-05 David Turner <david@freetype.org> - - * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in - case FT_Init_FreeType fails for some reason. Problem reported by - Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>. - - * src/truetype/ttobjs.c (tt_size_init_bytecode): Clear the `x_ppem' - and `y_ppem' fields of the `TT_Size.metrics' structure, not those of - `TT_Size.root.metrics'. Problem reported by Daniel Glöckner - <daniel-gl@gmx.net>. - - * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit - signed values, not unsigned ones. Problem reported by Johannes - Walther <joh_walt@yahoo.de>. - -2007-02-21 David Turner <david@freetype.org> - - * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting - of small and ghost stems in the Postscript interpreter. - -2007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory - leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>. - * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto. - -2007-02-16 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Ins_MD): Remove unused variable. - * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto. - -2007-02-14 David Turner <david@freetype.org> - - It seems that the following changes fix most of the known - interpreter problems with my fonts, but more testing is needed, - though. - - * src/truetype/ttinterp.c (FIX_BYTECODE): Activate. - (TT_MulFix14): Rewrite. - (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated. - (Ins_MIRP): Ditto. - -2007-02-12 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler - warnings. - - * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c - (bdf_interpret_style): Ditto. - -2007-02-12 David Turner <david@freetype.org> - - Simplify projection and dual-projection code interface. - - * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not - FT_Vector' as argument type. - * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj): - Updated. - (CUR_fast_project, CUR_fast_dualproj): New macros. - (Project, Dual_Project, Project_x, Project_y): Updated. - (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast' - macros. - - - * src/autofit/afloader.c (af_loader_load_g): Improve spacing - adjustments for the non-light auto-hinted modes. Gets rid of - `inter-letter spacing is too wide' problems. - - * src/autofit/aflatin.c (af_latin_hints_link_segments, - af_latin_hints_compute_edges): Slight optimization of the segment - linker and better handling of serif segments to get rid of broken - `9' in Arial at 9pt (96dpi). - - - Introduce new string functions and the corresponding macros to get - rid of various uses of strcpy and other `evil' functions, as well as - to simplify a few things. - - * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup, - ft_mem_strcpyn): New declarations. - (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New - macros. - * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New - functions. - - * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Init), - src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c - (pcf_get_properties, pcf_interpret_style, pcf_load_font), - src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c - (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy), - src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c - (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name, - t42_get_name_index): Use new functions and simplify code. - - * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN. - -2007-02-11 Werner Lemberg <wl@gnu.org> - - * src/autofit/afloader.c (af_loader_load_g): Don't change width for - non-spacing glyphs. - -2007-02-07 Tom Parker <palfrey@tevp.net> - - * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL - pointer. - -2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE): - Introduce __attribute((deprecated))__ to warn functions - which use non-ANSI data types in its interfaces. - (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec. - (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec. - (FT_New_Face_From_FSSpec): Deprecated, using FSSpec. - (FT_New_Face_From_FSRef): Deprecated, using FSRef. - - * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void - to avoid warning in building FreeType. - * builds/mac/ftmac.c: Ditto. - -2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured - `--with-fsspec' etc. Replace #include "ftmac.c" with - #include <ftmac.c>. - -2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name): - Introduced as replacement of FT_GetFile_From_Mac_ATS_Name. - * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto. - (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of - FT_GetFilePath_From_Mac_ATS_Name. - * builds/mac/ftmac.c: Ditto. - -2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of - FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are - for passing to FT_New_Face_From_FSSpec. - -2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: Check whether Mac OS X system headers - can be built under ANSI C mode. - - * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version - compatible to ANSI C in case system headers are ANSI C incompatible. - * builds/mac/ftmac.c (OS_INLINE): Ditto. - -2007-02-01 Werner Lemberg <wl@gnu.org> - - * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN): - Explain why applications shouldn't use it. Found by Alexei. - -2007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning - message. - - * src/gxvalid/gxvmort1.c - (gxv_mort_subtable_type1_substTable_validate): Fix debugging - message. - -2007-01-31 Werner Lemberg <wl@gnu.org> - - - * Version 2.3.1 released. - ========================= - - - Tag sources with `VER-2-3-1-FINAL'. - - * builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj: s/230/231/. - * builds/win32/visualc/index.html: s/221/231/. - - * vms_make.com: Add `ftgasp'. - -2007-01-30 David Turner <david@freetype.org> - - Tag sources with VER-2-3-1 to prepare release. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. - - * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc): - s/2.3.0/2.3.1/. - - * builds/unix/configure.raw (version_info): Set to 9:12:3. - - - * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c - (af_loader_load_g): Disable the warper (i.e., the light hinting - improvements) to make a 2.3.1 bugfix release before introducing a - new feature. This should give us more time to tune and improve the - warper for the next release. - - * docs/CHANGES: Update accordingly. - -2007-01-25 David Turner <david@freetype.org> - - For light auto-hinting, improve glyph advance widths and resurrect - normal/full hinting to its normal quality. - - * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta' - and `xmax_delta'. - * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta' - and `xmax_delta'. - - * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace - preprocessor conditional with if-clause, handling both light and - normal mode. - - * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again. - (af_warper_compute): Handle `xmin_delta' and `xmax_delta'. - -2007-01-25 Werner Lemberg <wl@gnu.org> - - * docs/release: Updated -- Savannah uses a new uploading scheme. - -2007-01-25 David Turner <david@freetype.org> - - * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty - functions. - - * docs/CHANGES: Document light auto-hinting improvement. - -2007-01-25 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (cff_index_get_pointers): Handle last entry - correctly in a sanity check. Since this function is only used to - load local and global functions, any charstring that called the last - local/global function would fail otherwise. This fixes Savannah bug - #18867. - - * docs/CHANGES: Document it. - -2007-01-23 David Turner <david@freetype.org> - - * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that - prevented compilation when disabling both the unpatented and the - bytecode interpreter in the TrueType font driver. - - - Fix and enable the warper to improve `light' hinting mode. This is - not necessarily a final version, but it seems to work well. - - * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]: - Disable code. - (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT. - * src/autofit/aftypes.h: Activate AF_USE_WARPER. - - * src/autofit/afwarp.c (AF_WarpScore): Tune table. - (af_warper_compute_line_best): Fix array size of `scores'. - (af_warper_compute): Better handling of border cases. - * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1' - and `X2'. - -2007-01-21 Werner Lemberg <wl@gnu.org> - - * ChangeLog: Split off older entries into... - * ChangeLog.22: This new file. - -2007-01-21 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Document SHZ fix. - -2007-01-21 George Williams <gww@silcom.com> - - * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom - points. - -2007-01-21 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttmtx.c (tt_face_get_metrics) - [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check. - -2007-01-17 Werner Lemberg <wl@gnu.org> - - - * Version 2.3.0 released. - ========================= - - - Tag sources with `VER-2-3-0-FINAL'. - -2007-01-17 Werner Lemberg <wl@gnu.org> - - * docs/release: Updated. - -2007-01-16 David Turner <david@freetype.org> - - * src/autofit/aflatin.c (af_latin_hints_compute_segments), - src/cff/cffdrivr.c (cff_ps_get_font_info), src/truetype/ttobjs.c - (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler - warnings. - -2007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de> - - * builds/amiga/makefile, builds/amiga/makefile.os4, - builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'. - - * builds/amiga/include/freetype/config/ftconfig.h: Synchronize. - -2007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de> - - Fix various compiler warnings. - - * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h, - src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h: - s/index/strike_index/. - * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/. - - * src/gxvalid/gxvmorx5.c - (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/. - - * src/truetype/ttinterp.c (Compute_Point_Displacement), - src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly - uninitialized variables. - -2007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * docs/CHANGES, docs/INSTALL.MAC: Improvements. - -2007-01-13 Werner Lemberg <wl@gnu.org> - - * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM - versions up to 0x3FF without complaining. - -2007-01-13 Derek Clegg <dclegg@apple.com> - - Add FT_Get_PS_Font_Info interface to CFF driver. - - * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H. - (CFF_FontRec): Add `font_info' field. - - * src/cff/cffload.c: Include FT_TYPE1_TABLES_H. - (cff_font_done): Free font->font_info if necessary. - - * src/cff/cffdrivr.c (cff_ps_get_font_info): New function. - (cff_service_ps_info): Register cff_ps_get_font_info. - -2007-01-13 Werner Lemberg <wl@gnu.org> - - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation - with C++ compiler. - - * src/autofit/afhints.c (af_glyph_hints_dump_segments, - af_glyph_hints_dump_edges): Ditto. - - * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in - `modules.cfg'). - - * src/sfnt/ttsbit0.h: Remove. - - * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c. - -2007-01-12 David Turner <david@freetype.org> - - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping - bug in the bitmap emboldener if the pitch of the source bitmap is - much larger than its width. - - * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related - compilation warning. - -2007-01-12 Werner Lemberg <wl@gnu.org> - - * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from - `automake' CVS module from sources.redhat.com. - -2007-01-11 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (is_space): Removed. - (parse_encoding, parse_charstrings): Use IS_PS_DELIM. - (parse_charstrings): Use IS_PS_TOKEN. - - - * autogen.sh: Avoid bash specific syntax. - -2007-01-11 David Turner <david@freetype.org> - - * docs/CHANGES: Small update. - - * builds/unix/configure.raw (version_info): Set to 9:11:3. - - * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a - crash with some Mac OS X .dfont files. Submitted by Masatake - Yamato. - - * autogen.sh: Small fix to get it working on Mac OS X properly: - The issue is that GNU libtool is called `glibtool' on this platform, - and we must call `glibtoolize', since `libtoolize' doesn't exist. - -2007-01-10 David Turner <david@freetype.org> - - * all-sources: Tag all sources with VER-2-3-0-RC1 and - VER-2-3-0. - - * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update - version number to 2.3.0. - - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3. - (FREETYPE_PATCH): Set to 0. - - * include/freetype/ftchapters.h, include/freetype/ftgasp.h, - include/freetype/ftlcdfil.h: Update reference documentation with - GASP support and LCD filtering sections. - - * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo - which created an endless loop with some malformed font files. - -2007-01-10 Derek Clegg <dclegg@apple.com> - - * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed-point - values. - -2007-01-08 David Turner <david@freetype.org> - - * docs/CHANGES: Updated. - - * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add - a new API `FT_Get_Gasp' to return entries of the `gasp' table - corresponding to a given character pixel size. - - * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the - `gasp' table, in order to avoid potential problems with later - versions. - - * include/freetype/config/ftheader.h (FT_GASP_H): New macro for - <freetype/ftgasp.h>. - - * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources), - modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the - default build. - -2007-01-07 Werner Lemberg <wl@gnu.org> - - * src/cid/cidparse.c (cid_parser_new): Improve error message for - Type 11 fonts. - Scan for `/sfnts' token. - -2007-01-07 Werner Lemberg <wl@gnu.org> - - * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts. - -2007-01-06 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (cff_index_init): Remove unused variable. - (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing. - -2007-01-04 David Turner <david@freetype.org> - - * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts - correctly. This fixes Savannah bug #17876. - - - Do not allocate interpreter-specific tables in memory if we are not - going to load glyphs with the bytecode interpreter anyway. - - * src/truetype/ttgload.c (tt_loader_init): Load execution context - only if glyph is hinted. - Updated. - * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready' - and `cvs_ready'. - Add `tt_size_ready_bytecode' declaration. - * src/truetype/ttobjs.c (tt_size_done_bytecode, - tt_size_init_bytecode, tt_size_ready_bytecode): New functions. - (tt_size_init): Move most code into `tt_size_init_bytecode'. - (tt_size_done): Move most code into `tt_size_done_bytecode'. - (tt_size_reset): Move some code to `tt_size_ready_bytecode'. - - - Don't extract the metrics table from the SFNT font file. Instead, - reparse it on each glyph load. The runtime difference is not - noticeable, and it can save a lot of heap memory when memory-mapped - files are not used. - - * include/freetype/internal/tttypes.h (TT_FaceRec): Add members - `horz_metrics_offset' and `vert_metrics_offset'. - * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): - Updated. - - - * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization. - - - Do not load the CFF index offsets into memory, since this wastes a - *lot* of heap memory with large Asian CFF fonts. There is no - significant performance loss. - - * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration. - * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and - `data_size'. - (CFF_CharsetRec): Add field `num_glyphs'. - - * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets, - cff_charset_cid_to_gindex): New functions. - (cff_new_index): Renamed to... - (cff_index_init): This. Update all callers. - Updated -- some code has been moved to `cff_index_load_offsets'. - (cff_done_index): Renamed to... - (cff_index_done): This. Update all callers. - (cff_index_get_pointers, cff_index_access_element): Updated to use - stream offsets. - (cff_charset_compute_cids): Set `num_glyphs' field. - (cff_encoding_load): Updated. - - * src/cff/cffgload.c (cff_slot_load): Updated. - -2007-01-04 David Turner <david@freetype.org> - - * docs/INSTALL.UNIX: Simplify some parts, add reference to - autogen.sh and pointer to README.CVS. - - * README.CVS: Add common problem description and solution - when running autogen.sh. - - * docs/INSTALL: Add reference to MacOS X. - - * docs/MAKEPP, docs/INSTALL.MAC: New documentation files. - - * docs/TODO: Remove obsolete items. - - * src/raster/ftraster.c: (TRaster_Instance): Replace it with... - (TWorker): This. - Remove `count_table' and `memory'. - Make `grays' a pointer. - (TRaster): New structure. - (count_table): New static array. - (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras, - Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done, - ft_black_set_mode, ft_black_render): Updated. - (ft_black_init): Don't initialize `count_table'. - (ft_black_reset): Use the render pool. This saves about 6KB of - heap space for each FT_Library instance. - - * src/smooth/ftgrays.c (TRaster): Replaced with... - (TWorker): This. - Remove `memory'. - (TRaster): New structure. - - (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line, - gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to, - gray_render_span, gray_raster_render): Updated. - (gray_raster_reset): Use the render pool. This saves about 6KB of - heap space for each FT_Library instance. - - * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h, - src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h, - src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove - FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since - the optimization is no longer experimental. - - * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points): - Remove a typo that results in no hinting and a memory leak with some - large Asian CFF fonts. - - * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak - which happens when FT_Done_Library is called with still opened - CFF_Faces in it. We need to close all faces before destroying the - modules, or else some bad things (memory leaks) may happen. - -2007-01-02 Werner Lemberg <wl@gnu.org> - - * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): - Remove compiler warning. - -2007-01-02 David Turner <david@freetype.org> - - * src/sfnt/sfobjs.c: Add documentation comment. - -2006-12-31 Masatake YAMATO <jet@gyve.org> - - * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New - function. - Check uniqueness of the gid pairs. - (gxv_kern_subtable_fmt0_validate): Move some code to - `gxv_kern_subtable_fmt0_pairs_validate'. - -2006-12-22 David Turner <david@freetype.org> - - * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler - warnings. - - * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE - to avoid deprecation warnings with Visual C++ 8. - -2006-12-16 Anders Kaseorg <anders@kaseorg.com> - - * src/base/ftlcdfil.c (FT_Library_SetLcdFilter) - [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo. - -2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * include/freetype/internal/services/svotval.h: Add `volatile' to - sync with the modification by Jens Claudius on 2006-08-22; cf. - https://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5 - -2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c: Specialized for Mac OS X only. - * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework. - * builds/unix/configure.raw: Ditto. When explicit switches for - FSSpec/FSRef/QuickDraw/ATS availability are given to configure, - builds/mac/ftmac.c is used instead of default src/base/ftmac.c. - -2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system. - * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c - instead of src/base/ftmac.c - * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. - * builds/mac/FreeType.ppc_classic.make.txt: Ditto. - * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c - that cannot be built at present. - -2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c: Improvement of resource fork handler for - POSIX, cf. - https://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html - (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font - format or .dfont, to simulate the face index number counted by ftmac.c. - (IsMacResource): Return the number of scalable faces correctly. - -2006-12-10 Werner Lemberg <wl@gnu.org> - - * builds/toplevel.mk (version): Protect against `distclean' target. - -2006-12-09 Werner Lemberg <wl@gnu.org> - - * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat' - or `type'. - - * builds/freetype.mk (version): Extracted from freetype.h, using - GNU make's built-in string functions. - (refdoc): Use $(version) instead of static version number. - -2006-12-08 Werner Lemberg <wl@gnu.org> - - * builds/toplevel.mk (dist): Extract version number from freetype.h. - -2006-12-08 Vladimir Volovich <vvv@vsu.ru> - - * src/tools/apinames.c (State): Remove final comma in structure -- - xlc v5 under AIX 4.3 doesn't like this. - -2006-12-07 David Turner <david@freetype.org> - - * src/autofit/afloader.c (af_loader_load_g): Small adjustment - to the spacing of auto-fitted glyphs. This only impacts rare - cases (e.g., Arial Bold at rather small character sizes). - -2006-12-03 Werner Lemberg <wl@gnu.org> - - * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c. - -2006-12-01 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are - encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>. - (tt_name_entry_ascii_from_ucs4): Removed. - - - * include/freetype/ftxf86.h: Fix and extend comment so that it - appears in the documentation. - - * include/freetype/ftchapters.h: Add `font_format' section. - - - * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link - to TOC in index page. - -2006-11-28 David Turner <david@freetype.org> - - * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are - trying to render into a zero-width/height bitmap, not an error code. - - * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch. - - * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType - ones instead. - - * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused - variable. - -2006-11-26 Pierre Hanser <hanser@club-internet.fr> - - * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer. - -2006-11-25 David Turner <david@freetype.org> - - * src/autofit/afhints.c (af_glyph_hints_dump_points, - af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]: - Add stubs to link the `ftgrid' test program when debugging is - disabled in the auto-hinter. - -2006-11-23 David Turner <david@freetype.org> - - * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c, - src/autofit/aftypes.h: Miscellaneous auto-hinter improvements. - - * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]: - Emit more sensible information. - - * src/autofit/afhints.h (AF_SegmentRec): Add `height' member. - - * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve - rounding of blue values. - (af_latin_hints_compute_segments): Hint segment heights. - (af_latin_hints_link_segments): Reduce `len_score' value. - (af_latin_hints_compute_edges): Increase `segment_length_threshold' - value and use `height' member for comparisons. - (af_latin_hint_edges): Extend logging message. - Improve handling of remaining edges. - -2006-11-22 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #15553. - - * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT - program after a change from mono to grayscaling (and vice versa). - Use correct constant for comparison to get `exec->grayscale'. - -2006-11-18 Werner Lemberg <wl@gnu.org> - - Because FT_Load_Glyph expects CID values for CID-keyed fonts, the - test for a valid glyph index must be deferred to the font drivers. - This patch fixes Savannah bug #18301. - - * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'. - * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c - (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph), - src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c - (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph), - src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c - (FNT_Load_Glyph): Check validity of `glyph_index'. - -2006-11-13 David Turner <david@freetype.org> - - * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter - `enhancements' are still too buggy for general use. - - * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and - FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros - when building the library to change the default LCD filter to be - used. This is only useful for experimentation. - - * include/freetype/ftlcdfil.h: Update documentation. - -2006-11-10 David Turner <david@freetype.org> - - * src/smooth/ftsmooth.c: API change for the LCD - filter. The FT_LcdFilter value is an enumeration describing which - filter to apply, with new values FT_LCD_FILTER_LIGHT and - FT_LCD_FILTER_LEGACY (the latter implements the LibXft original - algorithm which produces strong color fringes for everything - except very-well hinted text). - - * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change - second parameter to an enum type. - - * src/base/ftlcdfil.c (USE_LEGACY): Define. - (_ft_lcd_filter): Rename to... - (_ft_lcd_filter_fir): This. - Update parameters. - (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function. - (FT_Library_SetLcdFilter): Update parameters. - Handle new filter modes. - - * include/internal/ftobjs.h: Include FT_LCD_FILTER_H. - (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'. - (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering - callback and update other fields. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic) - [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update. - Other minor improvements. - - * src/autofit/aflatin.c: Various tiny improvements that drastically - improve the handling of serif fonts and of LCD/LCD_V hinting modes. - (af_latin_hints_compute_edges): Fix typo. - (af_latin_compute_stem_width): Take better care of diagonal stems. - -2006-11-09 David Turner <david@freetype.org> - - * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix - typo which created a variable-used-before-initialized bug. - -2006-11-07 Zhe Su <james.su@gmail.com> - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout - also. - -2006-11-03 Werner Lemberg <wl@gnu.org> - - * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'. - -2006-11-02 David Turner <david@freetype.org> - - Add a few tweaks to better handle serif fonts. - Add more debugging messages. - - * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore - segments that are less than 1.5 pixels high. This gets rid of - *many* corner cases with serifs. - (af_latin_align_linked_edge): Add logging message. - (af_latin_hint_edges): Use AF_HINTS_DO_BLUES. - Add logging messages. - Handle AF_EDGE_FLAG flag specially. - - * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug, - _af_debug_disable_blue_hints, and _af_debug_hints variables. - - * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug. - Update external declarations. - (af_corner_orientation, af_corner_is_flat): Replaced by... - - * include/freetype/internal/ftcalc.h (ft_corner_orientation, - ft_corner_is_flat): These declarations. - - * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat): - Comment out. Replaced by... - - * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat): - These functions. Update all callers. - (FT_Add64) [!FT_LONG64]: Simplify. - - * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H. - (af_direction_compute): Add a missing FT_ABS call. This bug caused - production of garbage by missing lots of segments. - - * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro. - - * src/autofit/afloader.c (af_loader_init, af_loader_done) - [AF_DEBUG]: Set _af_debug_hints. - - - * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H. - (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat - and ft_corner_orientation. - - - * src/gzip/inftrees.c (huft_build): Remove compiler warning. - -2006-10-24 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (cff_encoding_load): Remove unused variable. - - * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE - as argument. - -2006-10-23 Zhe Su <zsu@novell.com> - - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to - better deal with broken Asian fonts with strange glyphs, having - self-intersections and other peculiarities. The used algorithm is - based on the nonzero winding rule. - -2006-10-23 David Turner <david@freetype.org> - - Speed up the CFF font loader. With some large CFF fonts, - FT_Open_Face is now more than three times faster. - - * src/cff/cffload.c (cff_get_offset): Removed. - (cff_new_index): Inline functionality of `cff_get_offset'. - (cff_charset_compute_cids, cff_charset_free_cids): New functions. - (cff_charset_done): Call `cff_charset_free_cids'. - (cff_charset_load): Call `cff_charset_compute_cids'. - (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop. - - * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX - with FT_NEXT_XXX. - - - Speed up the Postscript hinter, with more than 100% speed increase - on my machine. - - * src/pshinter/pshalgo.c (psh_corner_is_flat, - psh_corner_orientation): New functions. - (psh_glyph_compute_inflections): Merge loops for efficiency. - Use `psh_corner_orientation'. - (psh_glyph_init): Use `psh_corner_is_flat'. - (psh_hint_table_find_strong_point): Renamed to... - (psh_hint_table_find_strong_points): This. - Rewrite, adding argument to handle all points at once. - Update all callers. - (PSH_MAX_STRONG_INTERNAL): New macro. - (psh_glyph_interpolate_normal_points): Rewrite for efficiency. - -2006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable - `error' with FT_Err_Ok. - -2006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * docs/INSTALL.CROSS: New document file for cross-building. - - * builds/unix/configure.raw: Preliminary cross-building support. - Find native C compiler and pass it by CC_BUILD, and - find suffix for native executable and pass it by EXEEXT_BUILD. - Also suffix for target executable is passed by EXEEXT. - - * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to - build `apinames' which runs on building system. They are set by - CC_BUILD and EXEEXT_BUILD. - - * builds/exports.mk (APINAMES_EXE): Change the extension for - apinames from the suffix for target (E) to that for building host - (E_BUILD). - -2006-10-12 Werner Lemberg <wl@gnu.org> - - * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to... - * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents - which reference those files. - -2006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is - embedded in freetype2.pc and freetype-config. Use it to record - Carbon dependency of MacOSX. - - * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS. - - * builds/unix/freetype-config.in: Ditto. - -2006-10-11 Werner Lemberg <wl@gnu.org> - - * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for - development. - -2006-10-03 Jens Claudius <jens.claudius@yahoo.com> - - * include/freetype/config/ftstdlib.h: Cast away volatileness from - argument to ft_setjmp. - - * include/freetype/internal/ftvalid.h: Add comment that - ft_validator_run must not be used. - -2006-10-01 Werner Lemberg <wl@gnu.org> - - * src/base/ftbase.c: Undo change from 2006-09-30. - - * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'. - -2006-09-30 David Turner <david@freetype.org> - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): - s/unpatented_hinting/ignore_unpatented_hinter/. - Update all callers. - - * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether - auto-hinting shall be used or not. - - * src/truetype/ttobjs.c (tt_face_init): Ditto. - -2006-09-30 Werner Lemberg <wl@gnu.org> - - * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer - in use). - - * src/base/ftbase.c: Include `ftlcdfil.c'. - -2006-09-29 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for - overlapping segments. Bug reported by Stefan Koch. - -2006-09-28 David Turner <david@freetype.org> - - Fix a bug in the automatic unpatented hinting support which prevents - normal bytecode hinting to work properly. - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): - s/force_autohint/unpatented_hinting/. Update all callers. - - * src/base/ftobjs.c (FT_Load_Glyph): Updated code. - - * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces. - -2006-09-27 David Turner <david@freetype.org> - - * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2. - - - Add a new API to support color filtering of subpixel glyph bitmaps. - In a default build, the function `FT_Library_SetLcdFilter' returns - `FT_Err_Unimplemented_Feature'; you need to #define - FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the - real implementation. - - * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files. - - * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New - typedef. - (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members - `lcd_filter_weights' and `lcd_filter'. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments - `hmul' and `vmul'. - - Handle subpixel rendering. - Simplify function. - (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'. - (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'. - - * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro, - pointing to <freetype/ftlcdfil.h>. - - * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC), - vms_make.com: Add `ftlcdfil.c' to the list of compiled source files. - - * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c. - -2006-09-26 David Bustin - - * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes - correctly. Reported as Savannah bug #17843. - -2006-09-26 David Turner <david@freetype.org> - - * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL, - AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable - horizontal and vertical hinting for the purpose of debugging the - auto-fitter. - - * src/autofit/afmodule.c (_af_debug_disable_horz_hints, - _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables. - - * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables. - - * include/freetype/config/ftoption.h, devel/ftoption.h - (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether - we want to compile LCD-optimized rendering code (à la ClearType) or - not. The macro *must* be disabled in default builds of the library - for patent reasons. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable - LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING - isn't defined at compile time. This only changes the content of the - rendered glyph to match the one of normal gray-level rendering, - hence clients should not need to be modified. - - * docs/CHANGES: Updated. - -2006-09-18 Garrick Meeker <garrick@digitalanarchy.com> - - * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if - LWFN fails and both are available. - -2006-09-11 David Turner <david@freetype.org> - - * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which - report their English names through an Apple Roman - (platform,encoding) pair, with language_id != English. - - If the font uses another name entry with language_id == English, it - will be selected correctly, though. - - * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting - selection for `mingli.ttf'. - -2006-09-05 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size' - values which have the upper two bytes set to 0xFF instead of 0x00 - (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and - `HAN NOM B.ttf'). - - * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code. - -2006-09-05 David Turner <david@freetype.org> - - Minor source cleanups and optimizations. - - * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed. - (TRaster): Remove `count_ex' and `count_ey'. - (gray_find_cell): Remove 2nd and 3rd argument. - (gray_alloc_cell): Merged with `gray_find_cell'. - (gray_record_cell): Simplify. - (gray_set_cell): Rewrite. - (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'. - (gray_render_span): Don't use FT_MEM_SET for small values. - (gray_dump_cells) [DEBUG_GRAYS]: New function. - (gray_sweep): Avoid buffer overwrites when to drawing the end of a - bitmap scanline. - (gray_convert_glyph): Fix speed-up. - -2006-09-04 David Turner <david@freetype.org> - - * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with - 64bit processors. - -2006-09-03 Werner Lemberg <wl@gnu.org> - - * devel/ftoption.h: Synchronize with - include/freetype/config/ftoption.h. - - * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing - variable declaration. - (gray_convert_glyph): Fix compiler warnings. - -2006-09-01 David Turner <david@freetype.org> - - * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader - to recognize a few fonts that require the automatic unpatented - loader. - - * src/smooth/ftgrays.c: Optimize the performance of the anti-aliased - rasterizer. The speed improvement is between 15% and 25%, depending - on the font data. - - (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code. - (TCell): Redefine. - (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'. - (gray_init_cells): Updated. - (gray_find_cell, gray_alloc_cell): New functions. - (gray_record_cell): Rewritten to use `gray_find_cell' and - `gray_alloc_cell'. - (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT, - QSORT_THRESHOLD): - Removed. - (gray_shell_sort, gray_quick_sort, gray_check_sort, - gray_dump_cells): Removed. - (gray_sweep): Rewritten. - (gray_convert_glyph): Rewrite code which used one of the sorting - functions. - (gray_raster_render): Updated. - -2006-08-29 Dr. Werner Fink <werner@suse.de> - - * configure: Make it possible to handle configure options which - have strings containing spaces. - -2006-08-27 David Turner <david@freetype.org> - - * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER): - New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER - or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined. - - * include/freetype/internal/ftcalc.h, src/base/ftcalc.c, - src/truetype/truetype.c, src/truetype/ttdriver.c, - src/truetype/ttgload.c, src/truetype/ttgload.h, - src/truetype/ttinterp.c, src/truetype/ttobjs.c, - src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c: - s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/. - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New - member `force_autohint'. - - * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'. - - * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing - against a list of font names which need the bytecode interpreter. - -2006-08-27 Jens Claudius <jens.claudius@yahoo.com> - - Fix miscellaneous compiler warnings. - - * include/freetype/internal/ftobjs.h: Close comment with `*/' to - avoid `/* in comment' compiler warning. - - * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast - `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on - 64-bit platforms void* is larger than FT_UInt32. - - * src/base/ftobjs.c (t_validator_error): Cast away - volatileness of argument to ft_longjmp. Spotted by Werner - `Putzfrau' Lemberg. - - * src/bdf/bdflib.c (bdf_load_font): Initialize local - variable `lineno'. - - * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable - `error' as volatile. - -2006-08-27 Werner Lemberg <wl@gnu.org> - - * builds/unix/ftconfig.in: Synchronize with main ftconfig.h. - Reported by Jens. - -2006-08-22 Jens Claudius <jens.claudius@yahoo.com> - - Fix for previous commit, which caused many compiler warnings/errors - about addresses of volatile objects passed as function arguments as - non-volatile pointers. - - * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a - pointer to a volatile object. - - * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument - `table' a pointer to a volatile object. - - * src/otvalid/otvmod.c (otv_load_table): Make function argument - `table' a pointer to a volatile object. - -2006-08-18 Jens Claudius <jens.claudius@yahoo.com> - - * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt' - as volatile since it must keep its value across a call to ft_setjmp. - (gxv_validate): Same for local variables `memory' and `valid'. - (classic_kern_validate): Same for local variables `memory', - `ckern', and `valid'. - - * src/otvalid/otvmod.c (otv_validate): Same for function parameter - `face' and local variables `base', `gdef', `gpos', `gsub', `jstf', - and 'valid'. - - * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable - `cmap'. - -2006-08-16 David Turner <david@freetype.org> - - * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler - warnings. - - * src/base/ftobjs.c (ft_validator_run): Disable function; it is - buggy by design. Always return -1. - - - Improvements to native TrueType hinting. This is a first try, - controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c. - - * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member - `extra_points2'. - - * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member - `orus'. - - * src/base/ftgloadr.c (FT_GlyphLoader_Reset, - FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra, - FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to - handle `extra_points2'. - - * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'. - Remove compiler warning. - (cur_to_arg): Remove macro. - (TT_Hint_Glyph): Updated. - (TT_Process_Simple_Glyph): Handle `orus'. - - * src/truetype/ttinterp.c (FIX_BYTECODE): New macro. - (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'. - (LOC_Ins_IUP): Renamed to... - (IUP_WorkerRec): This. - Add `orus' member. - (Shift): Renamed to... - (_iup_worker_shift): This. - Updated. - (Interp): Renamed to... - (_iup_worker_interpolate): This. - Updated to handle `orus'. - (Ins_IUP): Updated. - - * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new): - Handle `orus'. - -2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to - build ftvalid in ft2demos. This has been inadvertently changed - 2006-08-13. - -2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - `ft_validator_run' wrapping `setjmp' can cause a crash, as found by - Jens: - https://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm. - - * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'. - It reverts the change introduced on 2005-08-20. - - * src/gxvalid/gxvmod.c: Ditto. - -2006-08-13 Jens Claudius <jens.claudius@yahoo.com> - - * finclude/freetype/internal/psaux.h: (T1_TokenType): Add - T1_TOKEN_TYPE_KEY. - (T1_FieldRec): Add `dict'. - (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros. - (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS - keyword is expected as an additional argument. - - * src/cid/cidload.c: (cid_field_records): Adjust invocations of - T1_FIELD_XXX. - - * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX. - - * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing. - (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY, - not T1_TOKEN_TYPE_ANY. - (ps_parser_load_field): Make sure a token that should be a string or - name is really a string or name. - Avoid memory leak if a keyword has been already encountered and its - value is overwritten. - * src/type1/t1load.c: (t1_keywords): Adjust invocations of - T1_FIELD_XXX. - (parse_dict): Ignore keywords that occur in the wrong dictionary - (e.g., in `Private' instead of `FontDict'). - - * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX. - - * src/type42/t42parse.c: (t42_keywords): Adjust invocations of - T1_FIELD_XXX. - -2006-07-18 Jens Claudius <jens.claudius@yahoo.com> - - Move creation of field `buildchar' of T1_DecoderRec out of - `t1_decoder_init' and let the caller of `t1_decoder_init' take care - of it. - - Call the finisher for T1_Decoder in `cid_face_compute_max_advance' - and `T1_Compute_Max_Advance'. - - * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field - `face', add `len_buildchar'. - - * include/freetype/internal/t1types.h (T1_FaceRec): Add field - `buildchar'. - - * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher - for T1_Decoder. - (cid_slot_load_glyph): Do not ignore failure when initializing the - T1_Decoder. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated. - (t1_decoder_init): Remove initialization of fields `buildchar' and - `len_buildchar'. - (t1_decoder_done): Remove deallocation of field `buildchar'. - - * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize - T1_Decoder's `buildchar' and `len_buildchar'; call finisher for - T1_Decoder. - (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and - `len_buildchar'; make sure to call finisher for T1_Decoder even in - case of error. - - * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar' - of T1_FaceRec. - - * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of - T1_FaceRec. - -2006-07-14 Jens Claudius <jens.claudius@yahoo.com> - - * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE, - IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, - and IS_PS_BASE85 (from src/psaux/psconv.h). - (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER, - T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND. - (T1_DecoderRec): New fields `buildchar' and `face'. - (IS_PS_TOKEN): New macro. - - * include/freetype/internal/t1types.h (T1_FaceRec): New fields - `ndv_idx', `cdv_idx', and `len_buildchar'. - - * include/freetype/t1tables.h (PS_BlendRec): New fields - `default_design_vector' and `num_default_design_vector'. - - * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE, - IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and - IS_PS_BASE85 to include/freetype/internal/psaux.h. - - * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token' - argument to be NULL if we want only to count the number of tokens. - (ps_tocoordarray): Allow `coords' argument to be NULL if we just - want to skip the array. - (ps_tofixedarray): Allow `values' argument to be NULL if we just - want to skip the array. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support - for (partially commented out) othersubrs 19-25, 27, and 28. - (t1_decoder_init): Initialize new fields `face' and `buildchar'. - (t1_decoder_done): Release new field `buildchar'. - - * src/type1/t1load.c (parse_buildchar, parse_private): New - functions. - (t1_keywords): Register them. - (t1_allocate_blend): Updated. - (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER, - T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND. - (parse_dict): Remove `keyword_flags' argument. - Use new macro IS_PS_TOKEN. - Changed function so that later PostScript definitions override - earlier ones. - (t1_init_loader): Initialize new field `keywords_encountered'. - (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and - `len_buildchar'. - Remove `keywords_flags'. - - * src/type1/t1load.h (T1_LoaderRec): New field - `keywords_encountered'. - (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros. - - * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New - entries for parsing /NDV, /CDV, and /DesignVector. - -2006-07-07 Werner Lemberg <wl@gnu.org> - - Add many checks to protect against malformed PCF files. - - * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers. - (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors. - - * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table - data and check that tables don't overlap (using a simple - bubblesort). - (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE): - New macros which give the size of data structures in the data - stream. - (pcf_get_properties): Use rough estimates to get array size limits. - Assign `face->nprops' and `face->properties' earlier so that a call - to PCF_Face_Done can do the clean-up in case of error. - Protect against invalid string offsets. - (pcf_get_metrics): Clean up code. - Adjust tracing message levels. - Use rough estimate to get array size limit. - (pcf_get_bitmaps): Clean up code. - Adjust tracing message levels. - Use rough estimates to get offset limits. - (pcf_get_encodings): Adjust tracing message level. - (pcf_get_accel): Clean up code. - -2006-06-26 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which - don't have a POINT_SIZE property. This fixes Savannah bug #16914. - -2006-06-26 Jens Claudius <jens.claudius@yahoo.com> - - * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15. - (t1_decoder_parse_charstrings): Operator with - opcode 15 pops its two arguments. - Handle the case where the pops of an othersubr may be part of a - subroutine. - Handle unknown othersubrs gracefully: count their operands and let - the following pop operators push the operands as the results onto - the Type1 stack. - Improve handling of setcurrentpoint opcode. - -2006-06-25 Jens Claudius <jens.claudius@yahoo.com> - - The Type 1 parser now skips over top-level procedures as required - for a `Simplified Parser'. This makes the parser more robust as it - doesn't poke around in PostScript code. Additionally, it makes the - FontDirectory hackery in src/type1/t1load.c unnecessary. - - * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro. - (skip_literal_string): Add FT_Error as return value. - Handle escapes better. - (skip_string): Add FT_Error as return value. - Don't set `parser->error' but return error code directly. - (skip_procedure): New function. - (ps_parser_skip_PS_token): Handle procedures. - Update code. - (ps_parser_to_token): Update code. - (ps_parser_load_field_table): Handle bbox entries also. - - * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery. - Add commented-out code for synthetic fonts. - -2006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua> - - Fix two hinting bugs as reported in - https://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html. - - * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add - `first_point' member. - - * src/truetype/ttgload.c (tt_prepare_zone): Initialize - `first_point'. - (TT_Process_Composite_Glyph): Always untouch points. - - * src/truetype/ttinterp.c (Ins_SHC): Fix computation of - `first_point' and `last_point' in case of composite glyphs. - (Ins_IUP): Fix computation of `end_point'. - -2006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel - Mac. The original patch was written by David Sachitano and Lawrence - Coopet, and modified by Sean McBride for MPW compatibility. Only - required data are converted; unused data are left in big endian. - - * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non - Mac OS X platforms. - (OS_INLINE): Undefine before definition. - (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of - FontAssociation table in FOND resource. - (count_faces_scalable): Insert EndianS16_BtoN to parse the header - and fontSize at each entry of FontAssociation table in FOND - resource. - (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse - ffStylOff of FamilyRecord header of FOND resource, the header, - fontSize, fontID at each entry of FontAssociation table, and - StyleMapping table. - (count_faces): Call `HUnlock' after all FOND utilization. - -2006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Public API of TrueTypeGX, OpenType, and classic kern table validator - should return `FT_Err_Unimplemented_Feature' if validation service - is unavailable (disabled in `modules.cfg'). It is originally - suggested by David Turner, cf. - https://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html - - * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return - FT_Err_Unimplemented_Feature if TrueTypeGX validation service is - unavailable. - (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if - classic kern table validation service is unavailable. - - * src/base/ftotval.c (FT_OpenType_Validate): Return - FT_Err_Unimplemented_Feature if OpenType validation service is - unavailable. - -2006-06-08 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of - errors. - -2006-06-07 David Turner <david@freetype.org> - - * src/type1/t1afm.c (KERN_INDEX): Make it more robust. - (T1_Read_Metrics): Fix memory leak which happened when the metrics - file doesn't have kerning pairs. This fixes Savannah bug #16768. - -2006-06-06 David Turner <david@freetype.org> - - Fix memory leak described in Savannah bug #16759. - - We change `ps_unicodes_init' so that it also takes a - `free_glyph_name' callback to release the glyph names returned by - `get_glyph_name' - - * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc): - Renamed to ... - (PS_GetGlyphNameFunc): This. - (PS_FreeGlyphNameFunc): New typedef. - (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc. - - * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first - argument. - (cff_sid_free_glyph_name): New function. - (cff_cmap_unicode_init): Updated. - - * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated. - - * src/psnames/psmodule.c (ps_unicodes_init): Add variable for - PS_FreeGlyphNameFunc and use it. - - -2006-06-04 David Turner <david@freetype.org> - - * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept - `item_size == 0' as well -- though this sounds weird, it can - theoretically happen. This fixes Savannah bug #16669. - - * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation - of `face->num_glyphs' which missed the last glyph, due to - the offset-by-1 computation, since the PFR format doesn't - guarantee that glyph index 0 corresponds to the `missing - glyph. This fixes Savannah bug #16668. - -2006-05-25 Werner Lemberg <wl@gnu.org> - - * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out - `-no-undefined'. Reported by Christian Biesinger. - -2006-05-19 Brian Weed <bw@imaginengine.com> - - * builds/win32/visualc/freetype.dsp: Release libraries no longer - have debug information, and debug libraries use `C7 compatible' - debug info. - -2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Apply patch by Derek Clegg to fix two memory leaks in the MacOS - resource fork handler. This fixes Savannah bug #16631. - - * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace - `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak. - - * src/base/ftrfork.c (raccess_guess_linux_double_from_file_name): - Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak. - -2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * build/unix/configure.raw: Add a fallback to disable Carbon - dependency, if configured with no options on Mac OS X. - -2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when - its content cannot be parsed as supported font. This fixes - the second part of Savannah bug #16590. - -2006-05-18 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (TT_Load_Composite_Glyph) - [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again. - -2006-05-17 David Turner <david@freetype.org> - - This is a major patch used to drastically improve the performance of - loading glyphs. This both speeds up loading the glyph vectors - themselves and the auto-fitter module. - - We now use inline assembler code with GCC to implement `FT_MulFix', - which is probably the most important function related to the - engine's performance. - - The resulting speed-up is about 25%. - - - * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields - `cursor' and `limit'. - - * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation): - New functions. - (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out. - [TEST]: Remove. - - * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test - code. - - * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call - `FT_ZERO' - (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten. - (af_glyph_hints_reload: Rewrite recognition of weak points. - - * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move - constant values out of the loops. - - * src/autofit/aftypes.h: Updated. - - * src/base/ftcalc.c (FT_MulFix): Use inline assembler code. - - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector - product to get orientation. - - * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function. - (FT_Stream_OpenGzip): Use it to handle small files directly in - memory. - - * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): - Improve performance. - - * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and - `limit'. - - (TT_Load_Glyph_Header, TT_Load_Simple_Glyph, - TT_Load_Composite_Glyph): Updated. Add threshold to protect against - exceedingly large values of number of contours. Speed up by - reducing the number of loops. - - * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix. - - - * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold - used to detect rogue clients from 4 to 16. This is to prevent some - segmentation faults with fonts like `KozMinProVI-Regular.otf' which - comes from the Japanese Adobe Reader Asian Font pack. - -2007-05-17 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This - fixes the first part of Savannah bug #16590. - -2006-05-16 Werner Lemberg <wl@gnu.org> - - * docs/PROBLEMS: Updated icl issues. - ----------------------------------------------------------------------------- - -Copyright (C) 2006-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.24 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.24 deleted file mode 100644 index 9d06b0f54d2..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.24 +++ /dev/null @@ -1,6360 +0,0 @@ -2013-05-08 Werner Lemberg <wl@gnu.org> - - * Version 2.4.12 released. - ========================== - - - Tag sources with `VER-2-4-12'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.12. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.11/2.4.12/, s/2411/2412/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12. - - * builds/unix/configure.raw (version_info): Set to 16:1:10. - -2013-05-08 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2013-05-08 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Typo. - -2013-05-05 Werner Lemberg <wl@gnu.org> - - Synchronize `ftconfig.h'. - - * builds/unix/ftconfig.in: Updated. - -2013-05-05 Werner Lemberg <wl@gnu.org> - - Fix compilation with C++. - - * src/base/md5.c (body): Use proper cast. - -2013-05-05 Werner Lemberg <wl@gnu.org> - - Fix 64bit compilation issues. - - * include/freetype/config/ftconfig.h [FT_LONG64]: Typedef - `FT_Int64' here. - - * src/base/ftcalc.c: Remove typedef of `FT_Int64'. - (FT_DivFix): Fix cast. - * src/base/fttrigon.c: Remove typedef of `FT_Int64'. - -2013-05-05 Werner Lemberg <wl@gnu.org> - - [raster] Fix clang issues. - - Fix suggested by <octoploid@yandex.com>. - - * src/raster/ftraster.c (ULong): New typedef. - (SCALED): Add proper cast. - -2013-05-04 Werner Lemberg <wl@gnu.org> - - Fix clang fixes. - - * src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate): Use - correct types. - - * src/cff/cf2intrp.c (cf2_interpT2CharString) <default>: Force - unsigned for computations. - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Ditto. - * src/cff/cffparse.c (cff_parse_integer): Ditto. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto. - -2013-05-04 Werner Lemberg <wl@gnu.org> - - [cff] Make Adobe CFF engine work correctly on 64bit hosts. - - Reported by numerous people on the `freetype-devel' list. Without - this fix, glyphs aren't properly aligned on a common baseline. - - On 64bit systems, `FT_Pos' expands to `long int', having a width of - 64bit. `CF2_Fixed' expands to `int' which is normally 32bit wide on - 64bit hosts also. Wrong casts filled up the blues arrays with - incorrect values. Note that all blues values are accessed with the - `cf2_blueToFixed' macro which handles the 64bit to 32bit conversion. - - * src/cff/cf2ft.h (cf2_getBlueValues, cf2_getOtherBlues, - cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Use `FT_Pos' for - `data', not `CF2_Fixed'. - * src/cff/cf2ft.c (cf2_getBlueValues, cf2_getOtherBlues, - cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Updated. - * src/cff/cf2blues.c (cf2_blues_init): Updated. - -2013-05-04 Werner Lemberg <wl@gnu.org> - - More fixes for clang's `sanitize' feature. - - * src/base/ftcalc.c (FT_DivFix): Use unsigned values for - computations which use the left shift operator and convert to signed - as the last step. - * src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate, - FT_Vector_Length, FT_Vector_Polarize): Ditto. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Simplify. - * src/cff/cffload.c (cff_subfont_load): Fix constant. - * src/cff/cffparse.c (cff_parse_integer, cff_parse_real, do_fixed, - cff_parse_fixed_dynamic): Use unsigned values for computations which - use the left shift operator and convert to signed as the last step. - - * src/cid/cidload.c (cid_get_offset): Ditto. - - * src/psaux/psconv.c (PS_Conv_ToFixed): Ditto. - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto. - - * src/truetype/ttinterp.c (TT_MulFix14, TT_DotFix14): Ditto. - -2013-05-04 Werner Lemberg <wl@gnu.org> - - Fix errors reported by clang's `sanitize' feature. - - * include/freetype/internal/ftstream.h: Simplify and fix integer - extraction macros. - (FT_INT8_, FT_BYTE_I16, FT_BYTE_I32, FT_INT8_I16, FT_INT8_I32, - FT_INT8_I32, FT_INT8_U32): Removed. - (FT_PEEK_SHORT, FT_PEEK_LONG, FT_PEEK_OFF3, FT_PEEK_SHORT_LE, - FT_PEEK_LONG_LE, FT_PEEK_OFF3_LE): Use unsigned values for - computations and convert to signed as the last step. - - * src/cff/cf2fixed.h (cf2_intToFixed, cf2_fixedToInt, - cf2_fracToFixed): Avoid shifts of negative values. - (cf2_intToFrac, cf2_fixedToFrac, cf2_fixedTo26Dot6): Removed, - unused. - - * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdEXTENDEDNMBR, - default>: Use unsigned values for computations and convert to signed - as the last step. - Use proper types in tracing messages. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Use unsigned - values for computation of operands and convert to signed as the last - step. - Use proper type in tracing message. - -2013-05-03 Werner Lemberg <wl@gnu.org> - - * src/cff/cf2blues.c: Remove dead code. - -2013-05-02 Chris Liddell <chris.liddell@artifex.com> - - * src/cff/cffgload.c: Include FT_CFF_DRIVER_H. - -2013-04-27 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - * README: Improved. - -2013-04-13 Werner Lemberg <wl@gnu.org> - - [cff] Add a new Type 2 interpreter and hinter. - - This work, written by Dave Arnold <darnold@adobe.com> and fully - integrated into FreeType by me, is a donation by Adobe in - collaboration with Google. It is vastly superior to the old CFF - engine, and it will replace it soon. Right now, it is still off by - default, and you have to explicitly select it using the new - `hinting-engine' property of the cff driver. - - For convenience, (most of) the new files are committed separately. - - * include/freetype/config/ftheader.h (FT_CFF_DRIVER_H): New macro. - * include/freetype/ftcffdrv.h: New file to access CFF driver - properties. - * include/freetype/fterrdef.h (FT_Err_Glyph_Too_Big): New error - code. - * include/freetype/internal/fttrace.h: Add `cf2blues', `cf2hints', - and `cf2interp'. - - * src/cff/cffgload.h (CFF_SubFont): New member `current_subfont'. - * src/cff/cffobjs.h (CFF_DriverRec): New members `hinting_engine' - and `no_stem_darkening'. - * src/cff/cfftypes.h (CFF_FontRec): New member `cf2_instance'. - - * src/cff/cff.c: Include new files. - * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle - `hinting-engine' and `no-stem-darkening' properties (only the Adobe - engine listens to them). - * src/cff/cffgload.c: Include `cf2ft.h'. - (cff_decoder_prepare): Initialize `current_subfont'. - (cff_build_add_point): Handle Adobe engine which uses 16.16 - coordinates. - (cff_slot_load): Handle FT_LOAD_NO_SCALE and FT_LOAD_NO_HINTING - separately. - Choose rendering engine based on `hinting_engine' property. - * src/cff/cffload.c (cff_font_done): Call finalizer of the Adobe - engine. - * src/cff/cffobjs.c: Include FT_CFF_DRIVER_H. - (cff_driver_init): Set default property values. - - * src/cff/rules.mk (CFF_DRV_SRC, CFF_DRV_H): Add new files. - - * src/cff/cf2*.*: New files, containing the Adobe engine. - -2013-04-12 Werner Lemberg <wl@gnu.org> - - [cff] Minor code administration issues. - - * src/cff/cffgload.c (check_points): Rename to... - (cff_check_points): ...this and make it FT_LOCAL. - (cff_builder_add_point, cff_builder_add_point1, - cff_builder_start_point, cff_builder_close_contour, - cff_lookup_glyph_by_stdcharcode, cff_get_glyph_data, - cff_free_glyph_data): Make them FT_LOCAL. - - * src/cff/cffgload.h: Updated. - -2013-04-12 Werner Lemberg <wl@gnu.org> - - Add output bitmap checksums. - - Use `FT2_DEBUG=bitmap:3' for tracing. - - * src/base/md5.c, src/base/md5.h: New files, taken from - - https://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 - - * include/freetype/internal/fttrace.h: Add `bitmap'. - - * src/base/ftobjs.c [FT_DEBUG_LEVEL_TRACE]: Include `md5.c' - - (FT_Render_Glyph_Internal) [FT_DEBUG_LEVEL_TRACE]: For tracing, - convert resulting bitmap to a uniform format and compute a checksum. - Use `bitmap' category for the tracing message. - - * src/base/rules.mk (BASE_H): Updated. - - * docs/LICENSE.TXT: Updated. - -2013-04-12 Werner Lemberg <wl@gnu.org> - - [cff] Add framework for CFF properties. - - * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC7): - New macro. - - * src/cff/cffdrivr.c: Include FT_SERVICE_PROPERTIES_H. - (cff_property_set, cff_property_get): New functions, still empty. - Define `cff_service_properties' service. - Update `cff_services'. - - * src/cff/cffpic.h: Include FT_SERVICE_PROPERTIES_H. - (CFF_SERVICE_PROPERTIES_GET): New macro. - (CffModulePIC): Add `cff_service_properties'. - -2013-04-03 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #38589. - - * src/bdf/bdflib.c (_bdf_readstream): Thinko. - -2013-03-31 Werner Lemberg <wl@gnu.org> - - * configure: Use egrep, not grep. - - Problem reported Mojca Miklavec <mojca.miklavec.lists@gmail.com>. - -2013-03-29 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftlcdfil.h: Add description of color filtering. - - Based on a contribution from Antti S. Lankila <alankila@bel.fi> - (Savannah bug #38607). - -2013-03-23 Werner Lemberg <wl@gnu.org> - - [autofit] Minor. - - * src/autofit/afmodule.c (af_property_set): Typo. - (af_autofitter_init, af_autofitter_done): Use cast. - -2013-03-21 Werner Lemberg <wl@gnu.org> - - * configure: Automatically test for `gmake' also. - - Suggested by Mojca Miklavec <mojca.miklavec.lists@gmail.com>. - -2013-03-21 Peter Breitenlohner <peb@mppmu.mpg.de> - - Respect CONFIG_SHELL from the environment. - - Some large packages using FreeType have to use a broken (deficient) - /bin/sh. The configure scripts (as generated by Autoconf) are - clever enough to find a better shell and put that one into the - environment variable CONFIG_SHELL. If that environment variable is - already set the script skips the test and assumes to be already - running under a good shell. - - * builds/unix/detect.mk: Honour CONFIG_SHELL. - * builds/unix/unix-def.in (SHELL): Define. - -2013-03-21 Werner Lemberg <wl@gnu.org> - - Fix Savannah patch #7971. - - * configure: Handle MAKE environment variable also. - -2013-03-17 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #38538. - - * builds/amiga/src/base/ftdebug.c, builds/win32/ftdebug.c, - builds/wince/ftdebug.c (FT_Throw): Add function. - -2013-03-17 Werner Lemberg <wl@gnu.org> - - [raster] Remove dead code. - - * src/raster/rastpic.c (ft_raster1_renderer_class_pic_init) - src/smooth/ftspic.c (ft_smooth_renderer_class_pic_init): Do it. - -2013-03-17 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshpic.h (GET_PIC): Use correct container. - -2013-03-15 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftmoderr.h: Fix commit from 2013-03-11. - - The previous version was not backward compatible. Reported by - Behdad. - -2013-03-14 Werner Lemberg <wl@gnu.org> - - */*: Use FT_ERR_EQ, FT_ERR_NEQ, and FT_ERR where appropriate. - - FT_Err_XXX and friends are no longer directly used in the source - code. - -2013-03-14 Werner Lemberg <wl@gnu.org> - - New error management macros. - - * include/freetype/fterrors.h (FT_ERR_XCAT, FT_ERR_CAT): Move to... - * include/freetype/fttypes.h: ... this file. - (FT_ERR, FT_ERR_EQ, FT_ERR_NEQ, FT_MODERR_EQ, FT_MODERR_NEQ): New - macros. - - * include/freetype/freetype.h: Updated. - -2013-03-14 Werner Lemberg <wl@gnu.org> - - */*: Use FT_Err_Ok only. - - This is a purely mechanical conversion. - -2013-03-14 Werner Lemberg <wl@gnu.org> - - */*: Use `FT_THROW'. - - This is essentially a mechanical conversion, adding inclusion of - `FT_INTERNAL_DEBUG_H' where necessary, and providing the macros for - stand-alone compiling modes of the rasterizer modules. - - To convert the remaining occurrences of FT_Err_XXX and friends it is - necessary to rewrite the code. Note, however, that it doesn't harm - if some cases are not handled since FT_THROW is a no-op. - -2013-03-13 Werner Lemberg <wl@gnu.org> - - Introduce `FT_THROW' macro. - - The idea is to replace code like - - return FT_Err_Foo_Bar; - - or - - return CFF_Err_Foo_Bar; - - with - - return FT_THROW( Foo_Bar ); - - The FT_THROW macro has two functions: - - . It hides the module specific prefix. - - . In debug mode, it calls the empty function `FT_Throw' which can - be thus used to set a breakpoint. - - * include/freetype/internal/ftdebug.h (FT_THROW): New macro. - (FT_Throw): New prototype. - * src/base/ftdebug.c (FT_Throw): New function. - -2013-03-12 Werner Lemberg <wl@gnu.org> - - Remove `FT_KEEP_ERR_PREFIX'. - - The idea is to always have FT_ERR_PREFIX available internally. - - * include/freetype/fterrors.h: Use FT2_BUILD_LIBRARY to guard - undefinition of FT_ERR_PREFIX - - * src/gxvalid/gxverror.h, src/otvalid/otverror.h, - src/sfnt/sferrors.h: Updated. - -2013-03-11 Werner Lemberg <wl@gnu.org> - - [gxvalid] Fix module error. - - * src/gxvalid/gxverror.h (FT_ERR_BASE): Define as - FT_Mod_Err_GXvalid. - * include/freetype/ftmoderr.h: Add module error for `GXvalid'. - -2013-03-11 Werner Lemberg <wl@gnu.org> - - Always use module related error codes. - - * src/cff/cffobjs.c (cff_face_init), src/type1/t1objs.c - (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Use - `FT_ERROR_BASE'. - - * src/type1/t1load.c (parse_encoding): Use - T1_Err_Unknown_File_Format. - -2013-03-08 Werner Lemberg <wl@gnu.org> - - [cff] Set `linear{Hori,Vert}Advance' for embedded bitmaps also. - - Problem reported by Khaled Hosny <khaledhosny@eglug.org>. - - * src/cff/cffgload.c (cff_slot_load): Implement it. - -2013-02-23 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Fix commit ab02d9e8. - - * src/base/ftbbox.c (BBox_Cubic_Check): Change scaling to msb of 22. - -2013-02-19 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] New bisecting BBox_Cubic_Check (disabled). - - * src/base/ftbbox.c (BBox_Cubic_Check): New bisecting algorithm - for extremum search built around simple condition that defines - which half contains the extremum. - -2013-02-18 Alexei Podtelezhnikov <apodtele@gmail.com> - - [tools] Update BBox testing tool. - - * src/tools/test_bbox.c: Add another cubic outline with exact BBox. - (REPEAT): Increase the number of benchmarking cycles. - (profile_outline): Tweak output formatting. - -2013-02-02 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #38235. - - * builds/unix/configure.raw: Don't generate `freetype-config' and - `freetype.pc'. - - * builds/unix/unix-def.in (FT2_EXTRA_LIBS, LIBBZ2, LIBZ, - build_libtool_libs, ft_version): New variables to be substituted. - (freetype-config, freetype.pc): New rules to generate those files. - - * builds/unix/freetype-config.in: Remove code for handling `rpath'. - The use of $rpath has been accidentally removed in a patch from - 2009-12-22, and apparently noone has missed it since. - Use `%' instead of `@' as a variable substitution marker. - Use quotes. - - * builds/unix/freetype.in: Use `%' instead of `@' as a variable - substitution marker. - Use quotes. - -2013-02-07 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttobjs.c (tt_size_run_prep): Reset more GS variables. - - BTW, Greg agrees that the OpenType specification is missing the list - of GS variables which will always be reset to the default values - after the `prep' table has been executed. - -2013-02-06 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttobjs.c (tt_size_run_prep): Reset reference points. - - Up to now, we simply took a snapshot of the Graphics State after the - `prep' table has been executed, and right before a glyph's bytecode - was run it got reloaded. However, as Greg Hitchcock has told us in - private communication, reference points get reset to zero in the MS - rasterizer and we follow in due course. While reasonable, this is - undocumented behaviour. - - Most notably, this fixes the rendering of Arial's `x' glyph in - subpixel hinting mode. - -2013-02-05 Werner Lemberg <wl@gnu.org> - - [truetype] A better fix for Savannah bug #38211. - - * src/truetype/ttinterp.c (Ins_IP): Implement identical behaviour to - MS rasterizer if rp1 == rp2 (confirmed by Greg Hitchcock). - -2013-02-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - [pcf] Streamline parsing of PCF encoding table. - - * src/pcf/pcfread.c (pcf_get_encodings): Use simpler double for-loop. - Reallocate array instead of using temporary storage. - -2013-02-01 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #38227. - - * builds/unix/freetype-config.in: Set LC_ALL. - -2013-02-01 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #38221. - - This complements commit 83c0ebab. - - * src/base/ftcalc.c (FT_MulDiv_No_Round): Don't enclose with - `TT_USE_BYTECODE_INTERPRETER'. - -2013-02-01 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #38211. - - * src/truetype/ttinterp.c (Ins_IP): Make FreeType behave identical - to other interpreters if rp1 == rp2 (which is invalid). - -2013-01-28 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Small optimization of BBox calculation. - - * src/base/ftbbox.c (BBox_Cubic_Check): Use FT_MSB function in - scaling algorithm. - -2013-01-26 Infinality <infinality@infinality.net> - - [truetype] Minor formatting fix. - - * src/truetype/ttinterp.c: Updated. - (DO_RS): Fix indentation. - -2013-01-26 Infinality <infinality@infinality.net> - - [truetype] Fix rasterizer_version logic in sph. - - * src/truetype/ttsubpix.c: Updated. - (ALWAYS_SKIP_DELTAP_Rules): Remove rule for Trebuchet MS. - (sph_set_tweaks): Fix `rasterizer_version' logic. - -2013-01-26 Infinality <infinality@infinality.net> - - [truetype] Align more to ClearType whitepaper for sph. - - * include/freetype/internal/tttypes.h (TT_FaceRec): Add flags - for detected opcode patterns and compatibility mode. - - * src/truetype/ttgload.c (tt_loader_init): Complete conditional. - - * src/truetype/ttinterp.c: Updated. - Remove SPH_DEBUG and replace with FT_TRACE7. - (DO_RS): More conditions. - (Ins_FDEF): Add more opcode detection patterns. - More specific conditions when flagging an fdef. - Make compatibility mode only turn on when delta fdefs are found. - (Ins_CALL, Ins_LOOPCALL): Set flags for currently executed fdef. - (Ins_SHPIX): Remove logic to handle ttfautohinted fonts. - Simplify conditionals where possible. - Use `&' instead of `%' operator for dumb compilers. - (Ins_MIAP): Adjust twilight zone conditional. - Ensure `ignore_x_mode' is on when testing sph conditionals. - (Ins_MIRP): Ensure `ignore_x_mode' is on when testing sph - conditionals. - Do cvt cutin always when `ignore_x_mode' is active. - Remove test for ttfautohinted fonts. - (Ins_DELTAP): Ensure `ignore_x_mode' is on when testing sph - conditionals. - Do cvt cutin always when `ignore_x_mode' is active. - Remove test for ttfautohinted fonts. - Use `&' instead of `%' operator for dumb compilers. - (Ins_GETINFO): Remove SPH_DEBUG and replace with FT_TRACE7. - - * src/truetype/ttinterp.h: Updated. - (TT_ExecContextRec): Remove compatibility_mode variable. - Add variable to indicate when executing in special fdefs for sph. - - * src/truetype/ttobjs.h: Updated. - (TT_DefRecord): Add flags to identify special fdefs for sph. - (TT_SizeRec): Remove unnecessary ttfautohinted variable. - - * src/truetype/ttsubpix.c: Updated. - (COMPATIBILITY_MODE_Rules): Remove all. Auto-detected now. - (PIXEL_HINTING_Rules): Remove all. Unnecessary after fixes. - (SKIP_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu. - (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Arial Bold `N'. - (SKIP_OFFPIXEL_Y_MOVES_Rules): Remove all. Happens automatically - now. - (ROUND_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu. - (ROUND_NONPIXEL_Y_MOVES_Rules_Exceptions): Remove all. - (NORMAL_ROUND_Rules): Remove Verdana. - (NO_DELTAP_AFTER_IUP_Rules): Remove all. - (sph_set_tweaks): Performance fix. Don't run prep always. - Adjust conditional for sph_compatibility_mode. - - * src/truetype/ttsubpix.h: Add new fdef flags for sph. - -2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Fix broken emboldening at small sizes. - - * src/base/ftoutln.c (FT_Outline_EmboldenXY): Do not attempt to - normalize zero-length vectors. - -2013-01-25 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #38167. - - This fixes commit 83c0ebab from 2012-06-27. - - * src/truetype/ttinterp.h: - s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/. - -2013-01-25 Xi Wang <xi.wang@gmail.com> - - [sfnt] Fix broken pointer overflow checks. - - Many compilers such as gcc and clang optimize away pointer overflow - checks `p + n < p', because pointer overflow is undefined behavior. - Use a safe form `n > p_limit - p' instead. - - Also avoid possible integer overflow issues, for example, using - `num_glyphs > ( p_limit - p ) / 2' rather than `num_glyphs * 2' - given a large `num_glyphs'. - - * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Implement it. - -2013-01-25 Werner Lemberg <wl@gnu.org> - - [base] Fix `make multi'. - - * src/base/ftoutln.c, src/base/fttrigon.c: Include - FT_INTERNAL_CALC_H. - -2013-01-25 David 'Digit' Turner <digit@google.com> - - [truetype] Fix C++ compilation. - - * src/truetype/ttsubpix.h: Updated. - (SPH_X_SCALING_RULES_SIZE): Moved and renamed to... - * src/truetype/ttsubpix.c (X_SCALING_RULES_SIZE): This. - (sph_X_SCALING_Rules): Removed. - (scale_test_tweak): Make function static. - (sph_test_tweak_x_scaling): New function. - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Updated. - -2013-01-23 Werner Lemberg <wl@gnu.org> - - [base] Make `FT_Hypot' really internal. - - * include/freetype/fttrigon.h (FT_Hypot): Move to... - * include/freetype/internal/ftcalc.h: This file. - - * src/base/fttrigon.c (FT_Hypot): Move to... - * src/base/ftcalc.c: This file. - Include FT_TRIGONOMETRY_H. - - * src/truetype/ttgload.c: Don't include FT_TRIGONOMETRY_H. - -2013-01-23 Werner Lemberg <wl@gnu.org> - - [truetype] Revert change from 2013-01-22. - - FreeType's `height' value is the baseline-to-baseline distance... - - * src/truetype/ttobjs.c (tt_size_reset): Undo. - -2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base, truetype] New internal `FT_Hypot' function. - - * include/freetype/fttrigon.h (FT_Hypot): Declare it. - * src/base/fttrigon.c (FT_Hypot): Define it. - * src/truetype/ttgload.c (TT_Process_Composite_Component): Use it - instead of explicit expressions. - * src/truetype/ttinterp.c (Current_Ratio, Normalize): Use it instead - of TT_VecLen. - (TT_VecLen): Removed. - -2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Fix integer overflow. - - * src/base/ftoutln.c (FT_Outline_EmboldenXY): Normalize incoming and - outgoing vectors and use fixed point arithmetic. - -2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Fix integer overflow. - - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Scale the - coordinates down to avoid overflow. - -2013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Split out MSB function. - - * src/base/fttrigon.c (ft_trig_prenorm): Borrow from here. - * include/freetype/internal/ftcalc.h (FT_MSB): Declare here. - * src/base/ftcalc.c (FT_MSB): Define here. - -2013-01-22 Werner Lemberg <wl@gnu.org> - - [truetype] Fix font height. - - * src/truetype/ttobjs.c (tt_size_reset): The Windows rendering - engine uses rounded values of the ascender and descender to compute - the TrueType font height. - -2013-01-16 Behdad Esfahbod <behdad@behdad.org> - - [sfnt] Fix optimized sbit loader. - - It was not taking bit_depth into consideration when blitting! - - * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_byte_aligned, - * tt_sbit_decoder_load_bit_aligned): Handle bit - depth. - -2013-01-16 David 'Digit' Turner <digit@google.com> - - [truetype] Improve subpixel code. - - This patches fixes many issues with the ttsubpix implementation. - - 1. Data tables are defined, instead of declared, in the header, and - thus copied into each source file that includes it. - - 2. These tables were defined as global, mutable, visible variables, - and thus costing private RAM to every process that loads the - library (> 50 KB / process, this is huge!). - - Additionally, this also made the library export the symbols - completely needlessly. - - 3. Missing `sph_' and `SPH_' prefixes to some of the definitions. - - Note that this doesn't try to fix the incredibly inefficient storage - format for the data tables used by the code. This one will require - another pass in the future. - - * src/truetype/ttinterp.h (MAX_NAME_SIZE, MAX_CLASS_MEMBERS): - Renamed to... - (SPH_MAX_NAME_SIZE, SPH_MAX_CLASS_MEMBERS): This. - Update all users. - - (SPH_TweakRule, SPH_ScaleRule): Decorate with `const' where - appropriate. - - (Font_Class): Rename to... - (SPH_Font_Class): This. Decorate with `const' where appropriate. - - * src/truetype/ttsubpix.h (scale_test_tweak, sph_test_tweak): - Decorate arguments with `const' where appropriate. - - Move font tweaking tables to... - - * src/truetype/ttsubpix.c: This file and decorate them with `static' - and `const' where appropriate. - - (X_SCALING_Rules, X_SCALING_RULES_SIZE): Renamed to... - (sph_X_SCALING_Rules, SPH_X_SCALING_RULES_SIZE): This. - Update all users. - -2013-01-12 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Improve accuracy of normalization of short vectors. - - Unit vector components are stored as 2.14 fixed-point numbers. In - order to calculate all 14 bits accurately, a short vector to be - normalized has to be upscaled to at least 14 bits before its length - is calculated. This has been safe since accurate CORDIC algorithms - were adopted. - - * src/truetype/ttinterp.c (Normalize): Scale short vectors by 0x4000. - -2013-01-12 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Kill very old vector normalization hacks. - - Back in the days, vector length calculations were not very accurate - and the vector normalization function, Normalize, had to meticulously - correct the errors for long vectors [commit b7ef2b096867]. It was no - longer necessary after accurate CORDIC algorithms were adopted, but - the code remained. It is time to kill it. - - * src/truetype/ttinterp.c (Normalize): Remove error compensation. - (TT_VecLen): Remove any mention of old less accurate implementation. - -2013-01-11 Werner Lemberg <wl@gnu.org> - - Disable FT_CONFIG_OPTION_OLD_INTERNALS. - - After the next release we are going to remove the code completely. - - * devel/ftoption.h, include/freetype/config/ftoption.h - (FT_CONFIG_OPTION_OLD_INTERNALS): Comment out. - * docs/CHANGES: Document it. - -2013-01-10 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Update the overflow protection bit. - - The recent optimizations of CORDIC iterations drastically reduce the - expansion factor. Vector components with MSB of 29 are now safe - from overflow. - - * src/base/fttrigon.c (FT_TRIG_SAFE_MSB): New macro. - (ft_trig_prenorm): Use it and remove dead code. - -2013-01-09 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base, pshinter] Use FT_ABS, FT_MIN, and FT_MAX for readability. - - * src/base/ftbbox.c: Updated. - * src/base/ftobjs.c: Updated. - * src/base/fttrigon.c: Updated. - * src/pshinter/pshalgo.c: Updated. - * src/pshinter/pshrec.c: Updated. - -2013-01-08 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Clean up trigonometric core. - - * src/base/fttrigon.c: Document the algorithm in a large comment. - (FT_TRIG_COSCALE): Remove macro. - (FT_Tan: Use `FT_TRIG_SCALE' instead. - (FT_Cos, FT_Vector_Unit): Ditto and round the return values. - -2013-01-02 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Use rounding in CORDIC iterations. - - * src/base/fttrigon.c (ft_trig_pseudo_rotate, - ft_trig_pseudo_polarize): Improve accuracy by rounding. - -2013-01-02 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Reduce trigonometric algorithms. - - After we get within 45 degrees by means of true 90-degree rotations, - we can remove initial 45-degree CORDIC iteration and start from - atan(1/2) pseudorotation, reducing expansion factor thereby. - - * src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macros. - (ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Update. - - * src/tools/cordic.py: Bring up to date with trigonometric core. - - * docs/CHANGES: Old typo. - -2013-01-02 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/pshinter/pshalgo.h: Remove unused code. - -2012-12-27 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c (tt_loader_init): Add more tracing. - -2012-12-23 Werner Lemberg <wl@gnu.org> - - [type1] Fix handling of /FontBBox in MM fonts. - Problem reported by Del Merritt <del@alum.mit.edu> - - If we have - - /FontBBox { { 11 12 13 14 15 16 17 18 } - { 21 22 23 24 25 26 27 28 } - { 31 32 33 34 35 36 37 38 } - { 41 42 43 44 45 46 47 48 } } - - in the /Blend dictionary, then the first BBox is { 11 21 31 41 }, - the second { 12 22 32 42 }, etc. - - * include/freetype/internal/psaux.h (T1_FieldType): Add - `T1_FIELD_TYPE_MM_BBOX' (for temporary use). - - * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>: - Implement it. - -2012-12-21 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/tools/cordic.py: Bring up to date with trigonometric core. - -2012-12-21 Werner Lemberg <wl@gnu.org> - - Check parameters of `FT_Outline_New'. - Problem reported by Robin Watts <robin.watts@artifex.com>. - - * src/base/ftoutln.c (FT_Outline_New_Internal): Ensure that - `numContours' and `numPoints' fit into FT_Outline's `n_points' and - `n_contours', respectively. - -2012-12-20 Werner Lemberg <wl@gnu.org> - - * Version 2.4.11 released. - ========================== - - - Tag sources with `VER-2-4-11'. - - * docs/CHANGES, docs/release: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.11. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.10/2.4.11/, s/2410/2411/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11. - - * builds/unix/configure.raw (version_info): Set to 16:0:10. - - * builds/toplevel.mk (dist): Don't include `.mailmap'. - -2012-12-20 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Improve trigonometric core. - - FreeType used to rely on a 24-step iteration CORDIC algorithm to - calculate trigonometric functions and rotate vectors. It turns out - that once the vector is in the right half-plane, the initial rotation - by 63 degrees is not necessary. The algorithm is perfectly capable - to converge to any angle starting from the second 45 degree rotation. - This patch removes the first rotation and makes it a 23-step CORDIC - algorithm. - - * src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macro - values. - (ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Remove initial - rotation. - -2012-12-19 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (ft_property_do): Fix compiler warning. - -2012-12-19 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftrfork.c (FT_Raccess_Guess): Switch to FT_Int counters. - -2012-12-19 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Clean up trigonometric core. - - * src/base/fttrigon.c (ft_trig_pseudo_polarize): Align algorithm - with `ft_trig_pseudo_rotate'. - -2012-12-18 Infinality <infinality@infinality.net> - - [truetype] Minor performance enhancement. - - * src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Use FT_MulFix - instead of FT_MulDiv. - -2012-12-17 Infinality <infinality@infinality.net> - - [truetype] Remove unused code and variables. - - * src/truetype/ttinterp.c: Updated. - (Ins_FDEF): Remove opcode patterns that are not being used. - -2012-12-16 Werner Lemberg <wl@gnu.org> - - Various compiler warning fixes. - - * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Use - `logical not' operator instead of negation. The idea is that `~' - returns exactly the data type enforced by the cast to a pointer (be - it 32bit or 64bit or whatever), while a negative integer has not - this flexibility. - * src/cache/ftccmap.c (FTC_CMAP_UNKNOWN): Ditto. - * src/truetype/ttgxvar.c (ALL_POINTS, TT_Get_MM_Var): Ditto. - * src/type/t1load.c (T1_Get_MM_Var): Ditto. - (parse_blend_axis_types): Use cast. - * src/bdf/bdflib.c (_bdf_readstream): Use cast. - -2012-12-16 Infinality <infinality@infinality.net> - - [truetype] Remove unused code and variables. Add minor fixes. - - * src/truetype/ttsubpix.h: Updated. - (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Trebuchet MS. - (ALLOW_X_DMOVEX_Rules): Remove Arial characters. - (ALLOW_X_DMOVE_Rules): Remove Arial characters. - (RASTERIZER_35_Rules): Verdana no longer needs to be here. - (SKIP_IUP_Rules): Formatting fix. - (DELTAP_SKIP_EXAGGERATED_VALUES_Rules): Remove Segoe UI. - (COMPATIBLE_WIDTHS_Rules): Add Monaco and Trebuchet MS. - (X_SCALING_Rules): Add misc. corrective fixes. - - * src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Adjust correction - factor for emboldening during scaling. - - * src/truetype/ttinterp.h: Updated. - (TT_ExecContextRec): Remove unused variables. - - * src/truetype/ttobjs.h: Updated. - (TT_SizeRec): Add ttfautohinted variable. - - * src/truetype/ttinterp.c: Updated. - (Ins_FDEF): Rework code to fix bugs and add more detection. - (Ins_CALL): Remove unused code. - (Ins_LOOPCALL): Remove unused code. - (TT_RunIns): Remove unused code. - (Ins_SHPIX): Add logic to handle ttfautohinted fonts. - (Ins_MIRP): Don't round x in cut-in calculation. Add logic to handle - ttfautohinted fonts. - -2012-12-16 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #37936. - - * src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak. - -2012-12-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Fix 11-year old bug. - - Since the initial commit (ebe85f59) the value of FT_TRIG_SCALE has - always been slightly less than the correct value, which has been - given in the comment as a hexadecimal. As a result, vector lengths - were underestimated and rotated vectors were shortened. - - * src/base/fttrigon.c (FT_TRIG_SCALE): Fix macro value. - -2012-12-15 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #37907. - - * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize - negative second parameter of `ENCODING' field also. - -2012-12-15 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #37906. - - * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Use correct array - size for checking `glyph_enc'. - -2012-12-15 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #37905. - - * src/bdf/bdflib.c (_bdf_parse_start) <STARTPROPERTIES>: Reset - `props_size' to zero in case of allocation error; this value gets - used in a loop in `bdf_free_font'. - -2012-12-10 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Scale F_dot_P down. - - The dot product between freeVector and projVector or cosine of - the angle between these FT_F2Dot14 unit vectors used to be scaled up - by 4 and routinely occupied 32 bits in an FT_Long field F_dot_P. - This patch scales the value down by 2^14 instead, which simplifies - its use throughout the bytecode interpreter. - - This does not lead to the loss of precision because the lower bits - are unreliable anyway. Consider two unit vectors (1,0) and (.6,.8) - for which the true value of F_dot_P is .6 * 0x40000000 = 0x26666666. - These vectors are stored as (0x4000,0) and (0x2666,0x3333) after - rounding and F_dot_P is assigned 0x26660000. The lower bits were - already lost while rounding the unit vector components. - - Besides code simplification, this change can lead to better - performance when FT_MulDiv with the scaled-down F_dot_P is less - likely to use the costly 64-bit path. We are not changing the type - of F_dot_P to FT_F2Dot14 at this point. - - * src/truetype/ttinterp.c (Compute_Funcs): Scale F_dot_P down by 14 - bits and modify its use accordingly. - (Direct_Move, Direct_Move_Orig, Compute_Point_Displacement): Modify - the use of F_dot_P field. - * src/truetype/ttobjs.c (tt_size_run_fpgm): Change arbitrary - assignment of F_dot_P to its theoretical maximum in case we decide - to scale back its type later. - -2012-12-09 Johnson Y. Yan <yinsen_yan@foxitsoftware.com> - - [type1] Another fix for 2012-09-17 commit. - - * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set - `limit' value. - -2012-12-06 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Tweak the previous commit. - - * src/truetype/ttinterp.c (Current_Ratio): Put unit vector - components as the second TT_MulFix14 arguments. This is required - on 16-bit systems. - -2012-12-06 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Microoptimizations in bytecode interpreter. - - * src/truetype/ttinterp.c (TT_DivFix14): New macro. - (Normalize): Use it here. - (Current_Ratio): Use TT_MulFix14 instead of FT_MulDiv. - (Ins_SHPIX): Cancel out two TT_MulFix14 calls. - -2012-12-05 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Cosmetic improvement in bytecode interpreter. - - * src/truetype/ttinterp.c: Use explicit calls to FT_MulDiv, - FT_MulFix, and FT_DivFix instead of macros. - -2012-12-03 John Tytgat <John.Tytgat@esko.com> - - [pshinter] Clamp BlueScale value. - - This is Savannah bug #37856. - - * src/pshinter/pshglob.c (psh_calc_max_height): New function. - (psh_globals_new): Use it to limit BlueScale value to - `1 / max_of_blue_zone_heights'. - -2012-12-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype, type1] Revise the use of FT_MulDiv. - - * src/truetype/ttgxvar.c: Updated. - * src/truetype/ttobjs.c: Updated. - * src/type1/t1load.c: Updated. - -2012-11-30 Werner Lemberg <wl@gnu.org> - - [configure] Preserve customized `ftoption.h'. - - Problem reported by Del Merritt <del@alum.mit.edu>. - - * builds/unix/configure.raw <cpp computation of bit length>: Don't - remove existing FreeType configuration files. - -2012-11-29 John Tytgat <John.Tytgat@esko.com> - - [type1] Fix Savannah bug #37831. - - The bug report also contains a patch. - - * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Really fix - change from 2012-09-17. - -2012-11-28 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Fix formatting and typo. - -2012-11-27 Alexei Podtelezhnikov <apodtele@gmail.com> - - [cid, type1, type42] Clean up units_per_EM calculations. - - * src/cid/cidload.c (cid_parse_font_matrix): Updated. - * src/type1/t1load.c (t1_parse_font_matrix): Updated. - * src/type42/t42parse.c (t42_parse_font_matrix): Updated. - -2012-11-27 Alexei Podtelezhnikov <apodtele@gmail.com> - - [ftstroke] Minor improvement. - - * src/base/ftstroke.c: Replace nested FT_DivFix and FT_MulFix with - FT_MulDiv. - -2012-11-17 Werner Lemberg <wl@gnu.org> - - * src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work. - -2012-11-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Fix integer overflows in dd5718c7d67a. - - * src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv. - -2012-11-15 Werner Lemberg <wl@gnu.org> - - [autofit] Trace stem widths. - - * src/autofit/aflatin.c (af_latin_metrics_init_widths): Add some - FT_TRACE calls. - -2012-11-13 Werner Lemberg <wl@gnu.org> - - [cff] Add support for OpenType Collections (OTC). - - * src/cff/cffload.c (cff_font_load): Separate subfont and face - index handling to load both pure CFFs with multiple subfonts and - OTCs (with multiple faces where each face holds exactly one - subfont). - * src/cff/cffobjs.c (cff_face_init): Updated. - -2012-11-12 Werner Lemberg <wl@gnu.org> - - [autofit] Minor improvement. - - * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Fix - loop. - -2012-11-10 Werner Lemberg <wl@gnu.org> - - [autofit] Improve tracing. - - * src/autofit/aflatin.c (af_latin_hint_edges) - [FT_DEBUG_LEVEL_TRACE]: Count number of actions and emit something - if there weren't any. - -2012-11-04 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Fortify emboldening code against egregious distortions. - - * src/base/ftoutln.c (FT_Outline_EmboldenXY): Threshold emboldening - strength when it leads to segment collapse. - -2012-11-03 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Clean up emboldening code and improve comments there. - - * src/base/ftoutln.c (FT_Outline_EmboldenXY): Replace sequential - calls to FT_MulFix and FT_DivFix with FT_MulDiv. - Mention that bisectors are used to figure out the shift direction. - -2012-10-24 Werner Lemberg <wl@gnu.org> - - [autofit] Add standard character to `AF_ScriptClassRec' structure. - - * src/autofit/aftypes.h (AF_ScriptClassRec): Add `standard_char' - member. - (AF_DEFINE_SCRIPT_CLASS): Updated. - - * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use it. - (af_latin_metrics_init, af_latin_script_class): Updated. - - * src/autofit/aflatin.c (af_latin2_metrics_init_widths): Use it. - (af_latin2_metrics_init, af_latin2_script_class): Updated. - - * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Use it. - (af_cjk_metrics_init, af_cjk_script_class): Updated. - - * src/autofit/afindic.c (af_indic_metrics_init, - af_indic_script_class): Updated. - - * src/autofit/afcjk.h, src/autofit/aflatin.h: Updated. - - * src/autofit/afdummy.c: Updated. - -2012-10-24 Werner Lemberg <wl@gnu.org> - - [autofit] Only use Unicode CMap. - - * src/autofit/aflatin.c (af_latin_metrics_init): Implement it, to be - in sync with `af_face_globals_compute_script_coverage'. - -2012-10-21 Werner Lemberg <wl@gnu.org> - - [psaux] Improve parsing of invalid numbers. - - * src/psaux/psconv.c (PS_Conv_Strtol): Always parse complete number, - even in case of overflow. - (PS_Conv_ToInt): Only increase cursor if parsing was successful. - (PS_Conv_ToFixed): Ditto. - Trace underflow and data error. - -2012-10-21 Werner Lemberg <wl@gnu.org> - - [smooth] Improve tracing. - - * src/smooth/ftgrays.c (gray_sweep): Trace last sweep line of - current band also. - -2012-10-20 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Cheaper way to threshold angles between vectors. - - * src/truetype/ttinterp.c (Ins_ISECT): Thresholding tangent is a lot - cheaper than thresholding sine. - -2012-10-20 Werner Lemberg <wl@gnu.org> - - [cff] Improve parsing of invalid real numbers. - - * src/cff/cffparse.c (cff_parse_real): Always parse complete number, - even in case of overflow or underflow. - Also trace one more underflow. - -2012-10-20 Andreas Pehnack <andreas.pehnack@me.com> - - [sfnt] Load pure CFF fonts wrapped in SFNT container. - - Such fonts only have a `cmap' and a `CFF' table. - - * src/sfnt/ttload.c (tt_face_load_font_dir): Don't call - `check_table_dir' if font signature is `OTTO'. - -2012-10-20 Werner Lemberg <wl@gnu.org> - - [psaux] Fix some value overflows and improve tracing. - - * src/psaux/psconv.c: Include FT_INTERNAL_DEBUG_H. - (FT_COMPONENT): Define. - (PS_Conv_Strtol): Return FT_Long. - Handle bad data and overflow. - Emit some tracing messages in case of error. - (PS_Conv_ToInt): Return FT_Long. - (PS_Conv_ToFixed): Updated. - * src/psaux/psconv.h: Updated. - - * include/freetype/internal/fttrace.h: Add `psconv'. - -2012-10-20 Werner Lemberg <wl@gnu.org> - - [autofit] Fix `make multi CC=c++'. - - * src/autofit/aflatin.c, src/autofit/aflatin2.c: Include - `afglobal.h'. - * src/autofit/afloader.c: Fix order of header files. - * src/autofit/afmodule.c: Include `afglobal.h' and `aferrors.h'. - -2012-10-19 Werner Lemberg <wl@gnu.org> - - [cff] Fix more value errors and improve tracing. - - * src/cff/cffparse.c (cff_parse_integer): Emit tracing message in - case of error. - (cff_parse_real): Handle and trace overflow, underflow, and bad data - consistently. - (do_fixed): New helper function, handling and tracing overflow. - (cff_parse_fixed, cff_parse_fixed_scaled): Use `do_fixed'. - -2012-10-17 Werner Lemberg <wl@gnu.org> - - [psaux] Fix some value overflows. - - * src/psaux/psconv.c (PS_Conv_ToFixed): Implement it. - -2012-10-17 Bram Tassyns <BramT@enfocus.com> - - [cff] Fix value overflow. - - * src/cff/cffparse.c (cff_parse_fixed_scaled): Implement it. - -2012-10-17 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #37572. - - * src/truetype/ttinterp.c (Ins_ISECT): Use angle between vectors to - avoid grazing intersections. The previous threshold was too coarse, - incorrectly rejecting short but valid vectors. - -2012-09-30 Gilles Espinasse <g.esp@free.fr> - - Remove useless `rm' detection. - - `rm -f' is directly used in the `configure' script created by - autoconf, thus no availability test is necessary. - - * builds/unix/configure.raw (RMF): Remove test. - * builds/unix/unix-def.in (DELETE): Updated. - -2012-09-29 Werner Lemberg <wl@gnu.org> - - [autofit] Minor optimization. - - * src/autofit/afglobal.c (af_face_globals_compute_script_coverage): - Add loop condition. - -2012-09-29 Werner Lemberg <wl@gnu.org> - - [autofit] Fix thinko. - - * src/autofit/aftypes.h (AF_SCRIPT): - s/AF_SCRIPT_NONE/AF_SCRIPT_DUMMY/. We already use `AF_SCRIPT_NONE' - as a bit mask. - - * src/autofit/afdummy.c: Updated. - -2012-09-18 Werner Lemberg <wl@gnu.org> - - [autofit] Implement `increase-x-height' property. - - * include/freetype/ftautoh.h (FT_Prop_IncreaseXHeight): New - structure. - - * include/autofit/afmodule.c (af_property_get_face_globals): New - function, re-using code from `af_property_get'. - (af_property_set, af_property_get): Handle `increase-x-height'. - Updated. - -2012-09-18 Werner Lemberg <wl@gnu.org> - - [autofit] Implement Infinality's `increase glyph heights'. - - This is an improved version of a similar fix contained in the - so-called `Infinality patch', taken from - - http://www.infinality.net/fedora/linux/zips/freetype-infinality-2.4.10-20120616_01-x86_64.tar.bz2 - - which addresses various enhancements of the auto-hinter. Without - properties to control a module's metadata it wasn't possible to - adapt the patches because everything was originally controlled by - environment variables which I consider not suitable in general. - - A patch to control `increase_x_height' follows. - - * src/autofit/afglobal.h (AF_PROP_INCREASE_X_HEIGHT_MIN, - AF_PROP_INCREASE_X_HEIGHT_MAX): New macros. - (AF_FaceGlobalsRec): Add `increase_x_height' member. - * src/autofit/afglobal.c (af_face_globals_new): Initialize it. - - * src/autofit/aflatin.c (af_latin_metrics_scale_dim), - * src/autofit/aflatin2.c (af_latin2_metrics_scale_dim): Implement - handling of `increase_x_height'. - -2012-09-18 Werner Lemberg <wl@gnu.org> - - [autofit] Add hierarchical property access to some structures. - - * src/autofit/afglobal.h: Include `afmodule.h'. - (AF_FaceGlobalsRec): Add `module' member. - (AF_FaceGlobals): Typedef moved to... - * src/autofit/aftypes.h: Here. - (AF_ScriptMetricsRec): Add `globals' member. - - * src/autofit/afglobal.c (af_face_globals_new, - af_face_globals_compute_script_coverage, - af_face_globals_get_metrics): Updated. - - * src/autofit/afloader.c (af_loader_reset), src/autofit/afmodule.c - (af_property_get): Updated. - -2012-09-17 Werner Lemberg <wl@gnu.org> - - [type1] Fix Savannah bug #37350. - - * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Check for ASCII - storage only if we actually have at least four bytes. - -2012-09-15 Werner Lemberg <wl@gnu.org> - - [autofit] Implement `fallback-script' property. - - * src/autofit/afglobal.c: s/default_script/fallback_script/. - * src/autofit/afglobal.h: s/AF_SCRIPT_DEFAULT/AF_SCRIPT_FALLBACK/. - - * src/autofit/afmodule.c: s/default_script/fallback_script/. - (af_property_set, af_property_get): Implement `fallback-script'. - * src/autofit/afmodule.h: s/default_script/fallback_script/. - - * include/freetype/ftautoh.h: Document it. - -2012-09-15 Werner Lemberg <wl@gnu.org> - - [autofit] Correct previous Unicode 6.1.0 change. - - The auto-hinter's latin module only handles latin ligatures in the - `Alphabetical Presentation Forms' block. - - * src/autofit/aflatin.c (af_latin_uniranges): Fix it. - -2012-09-15 Werner Lemberg <wl@gnu.org> - - * src/autofit/afmodule.c: s/FT_Err_/AF_Err_/. - -2012-09-15 Werner Lemberg <wl@gnu.org> - - [autofit] Make default script a global property. - - * src/autofit/afmodule.h (AF_ModuleRec): Add `default_script' field. - - * src/autofit/afglobal.c (af_face_globals_compute_script_coverage, - af_face_globals_new), src/autofit/afloader.c (af_loader_reset), - src/autofit/afmodule.c (af_property_get) <glyph-to-script-map>, - af_autofitter_init: - Handle default script. - - * src/autofit/afglobal.h: Updated. - -2012-09-15 Werner Lemberg <wl@gnu.org> - - Use `FT_Module' instead of `FT_Library' argument in property funcs. - - This internal change simplifies access to global module data. - - * include/freetype/internal/services/svprop.h - (FT_Properties_SetFunc, FT_Properties_GetFunc): Change accordingly. - - * src/base/ftobjs.c (ft_property_do), src/autofit/afmodule.c - (af_property_set, af_property_get): Updated. - -2012-09-14 Werner Lemberg <wl@gnu.org> - - [autofit] Update to Unicode 6.1.0. - - * src/autofit/afcjk.c (af_cjk_uniranges), src/autofit/aflatin.c - (af_latin_uniranges): Add and fix ranges. - -2012-09-14 Werner Lemberg <wl@gnu.org> - - [autofit] Pass `AF_Module' instead of `AF_Loader'. - - We want to access the (not yet existing) module's global data later - on. - - * src/autofit/afloader.c: Include `afmodule.h'. - (af_loader_init, af_loader_reset, af_loader_done, - af_loader_load_glyph): Change accordingly. - * src/autofit/afmodule.c (AF_ModuleRec): Move to `afmodule.h'. - Updated. - - * src/autofit/afmodule.h: Include `afloader.h'. - (AF_ModuleRec): Define here. - * src/autofit/afloader.h (AF_Module): Define here. - Updated. - -2012-09-14 Werner Lemberg <wl@gnu.org> - - [autofit] Fix `make multi'. - - * include/freetype/internal/fttrace.h: Add `afmodule'. - * src/autofit/afmodule.c: Include FT_INTERNAL_DEBUG_H. - (FT_COMPONENT): Define. - -2012-09-14 Werner Lemberg <wl@gnu.org> - - * src/autofit/afmodule.c: s/FT_Autofitter/AF_Module/. - -2012-09-12 Werner Lemberg <wl@gnu.org> - - [autofit] Minor reorganization. - - * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT, - AF_SCRIPT_LIST_NONE, AF_DIGIT): Move to... - * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT, AF_SCRIPT_LIST_NONE, - AF_DIGIT): This and update code. - -2012-09-01 Werner Lemberg <wl@gnu.org> - - [autofit] Implement `glyph-to-script-map' property. - - * include/freetype/ftautoh.h: New public header file. - * include/freetype/config/ftheader.h (FT_AUTOHINTER_H): New macro. - - * src/autofit/afglobal.c (AF_FaceGlobalsRec): Move structure to... - * src/autofit/afglobal.h: This header file. - * src/autofit/afmodule.c: Include FT_AUTOHINTER_H. - (af_property_get): Handle `glyph-to-script-map'. - -2012-08-31 Werner Lemberg <wl@gnu.org> - - [autofit] Implement properties service framework. - - No properties are added yet. - - * src/autofit/afmodule.c: Include FT_SERVICE_PROPERTIES_H. - (af_property_set, af_property_get): New dummy functions. - (af_service_properties, af_services, af_get_interface): Provide - service setup. - (autofit_moduleclass): Add service interface. - - * src/autofit/afpic.c: Add necessary forward declarations. - (autofit_module_class_pic_init): Add code for service addition. - (autofit_module_pic_free): Add code for service removal. - * src/autofit/afpic.h (AF_SERVICES_GET, AF_SERVICE_PROPERTIES_GET): - New macros which provide necessary syntactical sugar for PIC - support. - -2012-08-30 Werner Lemberg <wl@gnu.org> - - Implement properties to control FreeType modules. - - * include/freetype/fterrdef.h (FT_Err_Missing_Property): New error - code. - * include/freetype/ftmodapi.h (FT_Property_Set, FT_Property_Get): - New API. - - * include/freetype/internal/services/svprop.h: New file. - * include/freetype/internal/ftserv.h (FT_SERVICE_PROPERTIES_H): New - macro. - - * src/base/ftobjs.c: Include FT_SERVICE_PROPERTIES_H. - (ft_property_do, FT_Property_Set, FT_Property_Get): New functions. - -2012-08-29 Werner Lemberg <wl@gnu.org> - - [docmaker] Allow `-' in tags and identifiers. - - * src/tools/docmaker/content.py (re_identifier), - src/tools/docmaker/sources.py (re_markup_tag1, re_markup_tag2, - re_crossref): Add `-' in patterns. - -2012-08-27 Werner Lemberg <wl@gnu.org> - - [FT_CONFIG_OPTION_PIC] Fix g++ 4.6.2 compiler warnings. - - * include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER), - include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER, - FT_DEFINE_MODULE), include/freetype/internal/ftserv.h - (FT_DEFINE_SERVICEDESCREC1, FT_DEFINE_SERVICEDESCREC2, - FT_DEFINE_SERVICEDESCREC3, FT_DEFINE_SERVICEDESCREC4, - FT_DEFINE_SERVICEDESCREC5, FT_DEFINE_SERVICEDESCREC6), - src/autofit/afpic.c (autofit_module_class_pic_init), - src/base/basepic.c (ft_base_pic_init), src/base/ftinit.c - (ft_create_default_module_classes), src/cff/cffparse.c - (FT_Create_Class_cff_field_handlers), src/cff/cffpic.c - (cff_driver_class_pic_init), src/pshinter/pshpic.c - (pshinter_module_class_pic_init), src/psnames/pspic.c - (psnames_module_class_pic_init), src/raster/rastpic.c - (ft_raster1_renderer_class_pic_init), src/sfnt/sfntpic.c - (sfnt_module_class_pic_init), src/sfnt/ttcmap.c - (FT_Create_Class_tt_cmap_classes), src/smooth/ftspic.c - (ft_smooth_renderer_class_pic_init), src/truetype/ttpic.c - (tt_driver_class_pic_init): Initialize allocation variable. - -2012-08-27 Werner Lemberg <wl@gnu.org> - - [truetype] Fix compilation warning. - - * src/truetype/ttgload.c (IS_HINTED): Move macro to... - * src/truetype/ttobjs.h: This header file. - -2012-08-27 Werner Lemberg <wl@gnu.org> - - [autofit, cff, pshinter, psnames] More renamings for orthogonality. - - * src/autofit/afmodule.c, src/autofit/afpic.h: - s/AF_AUTOFITTER_/AF_/. - - * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffparse.c, - src/cff/cffpic.h: s/FT_CFF_/CFF_/. - - * src/pshinter/pshmod.c, src/pshinter/pshpic.h: - s/FT_PSHINTER_/PSHINTER_/. - - * src/psnames/psmodule.c, src/psnames/pspic.h: - s/FT_PSCMAPS/PSCMAPS_/. - -2012-08-27 Werner Lemberg <wl@gnu.org> - - [sfnt, truetype] More renamings for orthogonality. - - * src/sfnt/sfdriver.c, src/sfnt/sfntpic.h, src/sfnt/ttcmap.c, - src/truetype/ttdriver.c, src/truetype/ttpic.h: s/FT_SFNT_/SFNT_/, - s/FT_TT_/TT_/, s/GET_CMAP_INFO_GET/CMAP_INFO_GET/. - -2012-08-27 Werner Lemberg <wl@gnu.org> - - [autofit] Some macro and variable renamings for orthogonality. - - * include/freetype/internal/autohint.h, src/base/ftobjs.c, - src/autofit/afmodule.c, src/autofit/afpic.c, src/autofit/afpic.h: - s/SERVICE/INTERFACE/, s/service/interface/, s/Service/Interface/. - -2012-08-26 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #37178. - - * src/base/ftobjs.c (FT_Open_Face): Initialize `error' with - `FT_Err_Missing_Module' before loop to indicate `no valid drivers'. - -2012-08-17 Werner Lemberg <wl@gnu.org> - - * src/base/ftsynth.c (FT_GlyphSlot_Oblique): Fix shear angle. - - The old value was far too large (more than 20°). The new one - corresponds to 12°, quite common in typography. - -2012-08-12 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Fix Savannah bug #37017. - - * src/smooth/ftgrays.c (gray_render_cubic): Use a different set of - checks when detecting super curvy splines to be split. - -2012-08-05 Werner Lemberg <wl@gnu.org> - - [autofit] Improve recognition of flat segments. - - Problem reported by Brad Dunzer <BDunzer@extensis.com>. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): We have - a flat segment if the horizontal distance of best on-points is - larger than a given threshold. - -2012-08-05 Werner Lemberg <wl@gnu.org> - - [autofit] Variable renamings. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Replace - `glyph' with `outline'. - s/best_first/best_contour_first/. - s/best_last/best_contour_last/. - -2012-07-31 Werner Lemberg <wl@gnu.org> - - [type1] Fix Savannah bug #37000. - - * src/type1/t1load.c (parse_encoding): Fix order of checks. - -2012-07-17 Werner Lemberg <wl@gnu.org> - - [psaux] Fix Savannah bug #36833. - - * src/psaux/t1decode.c (t1operator_seac): `seac' is not a valid - operator if we want metrics only. - -2012-07-16 Werner Lemberg <wl@gnu.org> - - [type1] Fix Savannah bug #36832. - - * src/type1/t1load.c (parse_charstrings): Reject negative number of - glyphs. - -2012-07-13 Werner Lemberg <wl@gnu.org> - - [type1] Fix Savannah bug #36829. - - * src/type1/t1load.c (parse_encoding): Check cursor position after - call to T1_Skip_PS_Token. - -2012-07-12 Alexei Podtelezhnikov <apodtele@gmail.com> - - Revert the last commit 45337b07. - - * src/base/ftstroke.c (FT_Stroker_New): Revert the previous change. - -2012-07-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - [ftstroke] Fix uninitialized return value. - - * src/base/ftstroke.c (FT_Stroker_New): Return FT_Err_Ok instead. - -2012-07-11 Werner Lemberg <wl@gnu.org> - - [smooth] Avoid memory leak in case of failure. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use flags to - indicate what to clean up after finishing the function, with and - without errors. - -2012-07-09 Werner Lemberg <wl@gnu.org> - - Fix compilation with MSVC 5.0. - - Problem reported by Peter Breitenlohner and Akira Kakuto. - - * include/freetype/config/ftstdlib.h (ft_setjmp): Updated. - * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove cast. - -2012-07-09 Werner Lemberg <wl@gnu.org> - - [autofit] Improve debugging messages; do some code cleanup. - - * src/autofit/aflatin.c (af_latin_align_linked_edge, - af_latin_hint_edges): Synchronize with formatting used in the - ttfautohint project. - -2012-07-07 Gilles Espinasse <g.esp@free.fr> - - Fix strict-aliasing warning. - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Avoid double cast. - -2012-07-07 Dave Thomas <dave.thomas@metaforic.com> - - [ARM] Fix FT_MulFix_arm. - - * include/freetype/config/ftconfig.h (FT_MulFix_arm) [__arm__]: - Avoid ADDS instruction to clobber condition codes. - -2012-07-06 Werner Lemberg <wl@gnu.org> - - [autofit] Do some code cleanup. - - * src/autofit/afglobal.c (af_face_globals_new): Simplify. - - * src/autofit/afhints.c: Use `FT_TRACE7' instead of `printf' - everywhere. - (FT_COMPONENT): New macro. - (af_glyph_hints_done): Simplify. - - * include/freetype/internal/fttrace.h: Updated. - -2012-07-05 Werner Lemberg <wl@gnu.org> - - [autofit] Improve output of debugging information. - - * src/autofit/afhints.c (af_glyph_hints_dump_segments): Print more - data; report no data. - (af_glyph_hints_dump_edges): Report no data. - -2012-07-04 Werner Lemberg <wl@gnu.org> - - [autofit] Fix Savannah bug #36091. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues), - src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Change the - constraint for testing round vs. flat segment: Accept either a - small distance or a small angle. - -2012-07-04 Werner Lemberg <wl@gnu.org> - - [autofit] Beautify blue zone tracing. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues), - src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Implement it. - -2012-07-03 Werner Lemberg <wl@gnu.org> - - [autofit] Quantize stem widths. - - * src/autofit/afangles.c (af_sort_widths): Rename to... - (af_sort_and_quantize_widths): This. - Add code to avoid stem widths which are almost identical. - * src/autofit/aftypes.h, src/autofit/aflatin.c, src/autofit/afcjk.c: - Updated. - -2012-07-03 Werner Lemberg <wl@gnu.org> - - [autofit] Minor speed-up. - - * src/autofit/afangles (af_sort_pos, af_sort_widths): Don't swap - elements if they are equal. - -2012-06-30 Gilles Espinasse <g.esp@free.fr> - - Fix `checking if gcc static flag -static works' test. - - On my linux build tree, I receive yes answer in every package I - build except FreeType for this test checking if gcc static flag - `-static' works - - In FreeType, no is received, unless bzip2 and zlib are disabled using - - ./configure --without-bzip2 --without-zlib - - The reason is that bzip2 and zlib tests add `-lz' and `-lbz2' to - LDFLAGS and this broke static flag test. - - * builds/unix/configure.raw: Update CFLAGS and LDFLAGS only after - LT_INIT has run. - -2012-06-28 Infinality <infinality@infinality.net> - - [truetype] Fix various artifacts. - - Verdana was broken in the original Infinality commit. Also - includes other minor fixes. - - * src/truetype/ttsubpix.h: Updated. Removed unused macros. - (RASTERIZER_35_Rules): Add Verdana. - (SKIP_NONPIXEL_Y_MOVES_Rules): Add Tahoma `s'. - (MIRP_CVT_ZERO_Rules): Remove Verdana. - (ALWAYS_SKIP_DELTAP_Rules): Add Russian char 0x438. - (COMPATIBLE_WIDTHS_Rules): Rearrange some rules. - (X_SCALING_Rules): Adjust Verdana `a' at 12 and 13 ppem. - - * src/truetype/ttsubpix.c: Updated. - (sph_set_tweaks): Re-execute fpgm always. - -2012-06-28 Gilles Espinasse <g.esp@free.fr> - - Fix CFLAGS and LDFLAGS share configure test. - - * builds/unix/configure.raw: Fix typo. - -2012-06-28 Werner Lemberg <wl@gnu.org> - - [truetype] Set the `subpixel_positioned' flag unconditionally. - - This is how the code currently behaves. - - * src/truetype/ttgload.c (tt_loader_init): Do it. - -2012-06-27 Werner Lemberg <wl@gnu.org> - - Fix conditional compilation. - - * src/base/basepic.c: Use FT_CONFIG_OPTION_MAC_FONTS. - -2012-06-27 Werner Lemberg <wl@gnu.org> - - Fix conditional compilation. - - * include/freetype/internal/ftcalc.h (FT_MulDiv_No_Round): Don't - enclose with `TT_USE_BYTECODE_INTERPRETER'; we now need the function - elsewhere also. - - * src/autofit/afcjk.h: Use AF_CONFIG_OPTION_CJK. - - * src/truetype/ttgload.c (tt_loader_init): Fix compiler warning. - - * src/truetype/ttinterp.c (Ins_MSIRP): Fix compiler warning. - - * src/truetype/ttinterp.h: Use - TT_CONFIG_OPTION_BYTECODE_INTERPRETER. - -2012-06-26 Infinality <infinality@infinality.net> - - [truetype] Remove unused rounding functionality. - - The subpixel hinting patch contained the concept of an adjustable - number of gridlines per pixel. This is no longer used due to x - being completely ignored instead. This will return some of the - code to its existing state prior to the original Infinality - commit. - - * include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID, - FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): Removed. - - * src/truetype/ttinterp.c: Updated. - (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, - Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45, - SetSuperRound): Remove parameter to handle the number of grid lines per - pixel. - (SET_SuperRound, ROUND_None, CUR_Func_round): Updated. - (DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated. - (DO_ROUND, DO_NROUND): Updated. - (Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP, - Ins_MDRP, Ins_MIRP): Perform Round_None instead of calling a modified - rounding function. Remove gridlines_per_pixel. Create a local - variable to store control value cutin. Simplify the conditional for - ignore_x_mode. Adjust rounding calls to pass only two values. - -2012-06-25 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #36705. - - Handle numbers like 2.001 correctly. - - * src/cff/cffparse.c (cff_parse_real): Avoid negative values for - `shift'. - -2012-06-18 Infinality <infinality@infinality.net> - - [truetype] Support subpixel hinting. - - This is the large, famous `Infinality' patch to support ClearType - bytecode which has been available from - http://www.infinality.net/blog/ for some time, and which has been - refined over the last years. While still experimental, it is now - mature enough to be included directly into FreeType. - - Most of the code is based on the ClearType whitepaper written by - Greg Hitchcock - - https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx - - which gives a detailed overview of the necessary changes to the - Microsoft rasterizer so that older fonts are supported. However, a - lot of details are still missing, and this patches provides a - framework to easily handle rendering issues down to the glyph level - of certain fonts. - - Note that ClearType support is not completely implemented! In - particular, full support for the options `compatible_widths', - `symmetrical_smoothing, and `bgr' (via the GETINFO bytecode - instruction) is missing. - - * src/truetype/ttsubpix.c: New file, providing code to handle - `tweaks', this is, rules for certain glyphs in certain fonts - (including wildcards) which need a special treatment. - - * src/truetype/ttsubpix.h: New file, holding the tweaking rules. - - * include/freetype/config/ftoption.h, src/devel/ftoption.h - (TT_CONFIG_OPTION_SUBPIXEL_HINTING): New macro. - - * include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID, - FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): New macros. - - * src/truetype/truetype.c [TT_USE_BYTECODE_INTERPRETER]: Include - `ttsubpix.c'. - - * src/truetype/ttgload.c: Include `ttsubpix.h'. - [All changes below are guarded by TT_CONFIG_OPTION_SUBPIXEL_HINTING.] - - (tt_get_metrics): Set tweak flags. - (TT_Hint_Glyph): Call `FT_Outline_EmboldenXY' if necessary. - (TT_Process_Simple_Glyph): Compensate emboldening if necessary. - (compute_glyph_metrics): Handle `compatible widths' option. - (tt_loader_init): Handle ClearType GETINFO information bits. - - * src/truetype/rules.mk (TT_DRV_SRC): Updated. - - * src/truetype/ttinterp.c: Include `ttsubpix.h'. - [Where necessary, changes below are guarded by - TT_CONFIG_OPTION_SUBPIXEL_HINTING.] - - (Direct_Move, Direct_Move_X): Extended. - (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, - Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45, - SetSuperRound): Add parameter to handle the number of grid lines per - pixel. - (SET_SuperRound, ROUND_None, CUR_Func_round): Updated. - (DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated. - (DO_ROUND, DO_NROUND): Updated. - (DO_RS): Take care of `Typeman' bytecode patterns. - (Ins_FDEF): Add some debugging code. Commented out. - (Ins_ENDF): Restore state. - (Ins_CALL, Ins_LOOPCALL): Handle inline delta functions. - (Ins_MD): Handle `Vacuform' rounds. - (Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP, - Ins_MDRP, Ins_MIRP): Handle tweaks. - (Ins_ALIGNRP): Add tweak guard. - (Ins_IUP, Ins_DELTAP): Handle tweaks. - (Ins_GETINFO): Handle new ClearType bits. - (TT_RunIns): Handle tweaks. - - * src/truetype/ttinterp.h: Updated. - (SPH_TweakRule, SPH_ScaleRule): New structures for tweaks. - (TT_ExecContextRec): Add members for subpixel hinting support. - - * src/truetype/ttobjs.h (TT_DefRecord): Add `inline_delta' member. - -2012-06-15 Werner Lemberg <wl@gnu.org> - - * Version 2.4.10 released. - ========================= - - - Tag sources with `VER-2-4-10'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.10. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.9/2.4.10/, s/249/2410/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. - - * builds/unix/configure.raw (version_info): Set to 15:0:9. - -2012-06-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Improve spacing. - - * docs/CHANGES: Updated. - -2012-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/exports.mk: Add CCexe_CFLAGS and CCexe_LDFLAGS. - - to pass special compiler/linker flags under cross development. - Suggested by Savannah bug #36367. - - ChangeLog on 2010-07-15 saying as they were removed was wrong - for the official trunk of FreeType2. This commit is the first - introduction of them. - -2012-06-14 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2012-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Add new versions of NEC FA family to tricky font list. - - NEC FA family dated in 1996 have different checksum. - Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>; see - - https://lists.gnu.org/archive/html/freetype-devel/2012-06/msg00023.html - - * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): 4 sets - of fpgm & prep table checksums for FA-Gothic, FA-Minchou, - FA-RoundedGothicM, FA-RoundedGothicB are added. The family - names in sample PDF are truncated, thus the list of the - family names in tt_check_trickyness_family() is not updated yet. - -2012-06-06 Werner Lemberg <wl@gnu.org> - - [ftraster] Fix rounding issue causing visual artifacts. - - Problem reported by jola <hans-jochen.lau@lhsystems.com>; see - - https://lists.gnu.org/archive/html/freetype-devel/2012-05/msg00036.html - - * src/raster/ftraster.c (SMulDiv_No_Round): New macro. - (Line_Up): Use it. - * src/raster/ftmisc.h (FT_MulDiv_No_Round): Copied from `ftcalc.c'. - -2012-05-28 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Simplify. - - We now use the cross product of the direction vectors to compute the - outline's orientation. - -2012-05-28 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2012-05-28 Alexei Podtelezhnikov <apodtele@gmail.com> - - New function FT_Outline_EmboldenXY. - - * include/freetype/ftoutln.h (FT_Outline_EmboldenXY): Define it. - - * src/base/ftoutln.c (FT_Outline_EmboldenXY): Implement it, using a - simplified emboldening algorithm. - (FT_Outline_Embolden): Make it a special case of - `FT_Outline_EmboldenXY' - -2012-05-07 Werner Lemberg <wl@gnu.org> - - [type1] Fix Savannah bug #36386. - - * src/type1/t1load.c (t1_load_keyword): Ignore keyword if context is - not valid. - -2012-04-07 Werner Lemberg <wl@gnu.org> - - Remove compiler warning. - - * src/truetype/ttgload.c (TT_Load_Glyph) - [!TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Access `glyph->face' directly. - -2012-03-28 Werner Lemberg <wl@gnu.org> - - [autofit] Properly copy scaler flags to script metrics object. - - Without this patch, only the dummy and cjk autohinter modules get - them (since they copy the whole scaler object). - - * src/autofit/aflatin.c (af_latin_metrics_scale), - src/autofit/aflatin2.c (af_latin2_metrics_scale): Implement it. - -2012-03-22 Alexei Podtelezhnikov <apodtele@gmail.com> - - [bdflib] Remove redundant macro. - - * src/bdf/bdflib.c (isdigok): Remove and replace with sbitset, which - is exactly the same. - -2012-03-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [configure] Fix Savannah bug #35644. - - * builds/unix/configure.raw: Check `-ansi' flag works even if gcc - is used. Bionic libc headers for Android lose the consistency - when they are parsed with __STDC_VERSION__ older than 199901L or - __STRICT_ANSI__. - -2012-03-20 Werner Lemberg <wl@gnu.org> - - [bdf] Improvement to Savannah bug #35656. - - * src/bdf/bdflib.c (isdigok): Add cast, as suggested in report. - -2012-03-17 Chris Liddell <chris.liddell@artifex.com> - - [type1] Fix Savannah bug #35847. - - * src/type1/t1load.c (parse_subrs): Fix the loop exit condition; - we want to exit when we have run out of data. - -2012-03-16 Werner Lemberg <wl@gnu.org> - - [bdf] Really fix Savannah bug #35658. - - * src/bdf/bdflib.c (_bdf_list_split): Add one more `field' initializer. - -2012-03-14 Yann Droneaud <yann@droneaud.fr> - - [sfnt] Make arrays static like all others. - - * src/sfnt/ttload.c (tt_face_load_maxp, tt_face_load_os2), - src/sfnt/ttmtx.c (tt_face_load_hhea): Add `static' keyword to frame - fields. - -2012-03-14 Huw Davies <huw@codeweavers.com> - - [sfnt] A refinement of the previous commit. - - * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, - tt_name_entry_ascii_from_other): Stop at null byte. - -2012-03-14 Huw Davies <huw@codeweavers.com> - - [sfnt] Add `name' table compatibility to MS Windows. - - * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, - tt_name_entry_ascii_from_other): Don't replace `\0' with question - marks when converting strings. - -2012-03-14 Werner Lemberg <wl@gnu.org> - - [type1] Fix Savannah bug #35833. - - Based on the patch given in the bug report. - - * src/type1/t1load.c (IS_INCREMENTAL): New macro. - (read_binary_data): Add parameter `incremental'. - Update all callers using `IS_INCREMENTAL'. - -2012-03-11 Werner Lemberg <wl@gnu.org> - - [autofit] Return correct linear advance width values. - - This was quite a subtle bug which accidentally showed up with glyph - `afii10023' of arial.ttf (version 2.76). This glyph is a composite; - the first component, `E', has an advance width of 1366 font units, - while the advance width of the composite itself (which looks like - uppercase `E' with dieresis) is 1367 font units. I think this is - actually a bug in the font itself, because there is no reason that - this glyph has not the same width as uppercase `E' without the - dieresis. Anyway, it helped identify this problem. - - Using the TrueType hinter, the correct value (1367) of `afii10023' - was returned, but the autohinter mysteriously returned 1366. - - Digging in the code showed that the autohinter recursively calls - FT_Load_Glyph to load the glyph, adding the FT_LOAD_NO_SCALE load - flag. However, the `linearHoriAdvance' field is still returned as a - scaled value. To avoid scaling twice, the old code in autofit reset - `linearHoriAdvance', using the `horiAdvance' field. This seemed to - work since FT_LOAD_NO_SCALE was in use, but it failed actually, - because `horiAdvance' is defined as the distance of the first - subglyph's phantom points, which in turn are initialized using the - advance width of the first subglyph. And as the given example - shows, these widths can differ. - - * src/autofit/afloader.c (af_loader_load_g): Temporarily set - FT_LOAD_LINEAR_DESIGN while calling FT_Load_Glyph to get unscaled - values for the linear advance widths. - -2012-03-10 Werner Lemberg <wl@gnu.org> - - [truetype] Fix SSW instruction. - - * src/truetype/ttinterp.c (DO_SSW): SSW *does* use font units. For - verification, it took some time to find a font which actually uses - this instruction. - -2012-03-09 Vinnie Falco <vinnie.falco@gmail.com> - - Prepare source code for amalgamation. - - * include/freetype/freetype.h: Swap order of preprocessor blocks. - -2012-03-08 Werner Lemberg <wl@gnu.org> - - * Version 2.4.9 released. - ========================= - - - Tag sources with `VER-2-4-9'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.9. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.8/2.4.9/, s/248/249/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 9. - - * builds/unix/configure.raw (version_info): Set to 14:1:8. - -2012-03-08 Werner Lemberg <wl@gnu.org> - - [bdf] Add missing overflow check. - - * src/bdf/bdflib.c (_bdf_parse_glyphs) <BITMAP>: Add threshold for - `glyph->bpr'. - -2012-03-07 Vinnie Falco <vinnie.falco@gmail.com> - - Prepare source code for amalgamation. - - * src/autofit/aferrors.h, src/bdf/bdferror.h, src/bzip2/ftbzip2.c, - src/cache/ftcerror.h, src/cff/cfferrs.h, src/cid/ciderrs.h, - src/gxvalid/gxverror.h, src/gzip/ftgzip.c, src/lzw/ftlzw.c, - src/otvalid/otverror.h, src/pcf/pcferror.h, src/pfr/pfrerror.h, - src/psaux/psauxerr.h, src/pshinter/pshnterr.h, - src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h, - src/smooth/ftsmerrs.h, src/truetype/tterrors.h, - src/type1/t1errors.h, src/type42/t42error.h, src/winfonts/fnterrs.h: - Add #undef FT_ERR_PREFIX before #define FT_ERR_PREFIX. - -2012-03-03 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #35660. - - For some divisions, we use casts to 32bit entities. Always guard - against division by zero with these casts also. - - * src/base/ftcalc.c (ft_div64by32): Remove redundant cast. - (FT_MulDiv, FT_MulDiv_No_Round): Add 32bit cast. - (FT_DivFix): Add 32bit cast (this omission triggered the bug). - -2012-03-03 Werner Lemberg <wl@gnu.org> - - [psaux] Fix handling of track kerning. - - * src/psaux/afmparse.c (afm_parse_track_kern): Don't inverse sign - for `min_kern'. It is indeed quite common that track kerning - *increases* spacing for very small sizes. - -2012-03-02 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #35689. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check first outline - point. - -2012-03-01 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #35656. - - * src/bdf/bdflib.c (_bdf_parse_glyphs) <_BDF_BITMAP>: Check validity - of nibble characters instead of accessing `a2i' array. - -2012-03-01 Werner Lemberg <wl@gnu.org> - - [winfonts] Fix Savannah bug #35659. - - * src/winfonts/winfnt.c (FNT_Face_Init): Check number of glyphs. - -2012-03-01 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #35658. - - * src/bdf/bdflib.c (_bdf_list_split): Initialize `field' elements - properly. - -2012-03-01 Werner Lemberg <wl@gnu.org> - - [psaux] Fix Savannah bug #35657. - - If in function `skip_spaces' the routine `skip_comment' comes to the - end of buffer, `cur' is still increased by one, so we need to check - for `p >= limit' and not `p == limit'. - - * src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed, - PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Fix boundary checking. - -2012-03-01 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #35646. - - * src/truetype/ttinterp.c (Ins_MIRP): Typo, present since ages. The - code is now in sync with the other operators (e.g. MSIRP) which - modify twilight points. - -2012-03-01 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #35643. - - * src/bdf/bdflib.c (_bdf_list_ensure): Bring code in sync with - comment before `_bdf_list_split', this is, really allocate at least - five `field' elements. - -2012-03-01 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #35641. - - * src/bdf/bdflib.c (_bdf_parse_glyphs) <DWIDTH, BBX>: Abort if - _BDF_ENCODING isn't set. We need this because access to the `glyph' - variable might be undefined otherwise. - -2012-03-01 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #35640. - - * src/truetype/ttinterp.c (SkipCode, TT_RunIns): Fix boundary check - for NPUSHB and NPUSHW instructions. - -2012-02-29 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #35601. - - * src/truetype/ttinterp.c (Ins_SHZ): Use number of points instead of - last point for loop. - Also remove redundant boundary check. - -2012-02-29 Werner Lemberg <wl@gnu.org> - - [truetype] Remove redundant check. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant - second check for ordered contour start points. - -2012-02-29 Werner Lemberg <wl@gnu.org> - - [truetype] Make SHC instruction behave similar to MS rasterizer. - - * src/truetype/ttinterp.c (Ins_SHC): Handle virtual contour in - twilight zone. - -2012-02-29 Alexei Podtelezhnikov <apodtele@gmail.com> - - Avoid modulo operators against a power-of-two denominator. - - * src/afcjk.c (af_hint_normal_stem), src/base/ftoutln.c - (ft_contour_has), src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_vvcurveto, cff_op_hhcurveto, cff_op_hvcurveto>, - src/gxvalid/gxvcommn.c (GXV_32BIT_ALIGNMENT_VALIDATE), - src/gxvalid/gxvfeat.c (gxv_feat_setting_validate): Replace `%' with - `&' operator. - -2012-02-29 Werner Lemberg <wl@gnu.org> - - [autofit] Don't synchronize digit widths for light rendering mode. - - We don't hint horizontally in this mode. - - * src/autofit/afloader.c (af_loader_load_g) <Hint_Metrics>: - Implement it. - -2012-02-26 Alexei Podtelezhnikov <apodtele@gmail.com> - - [type42] Minor code optimization (again). - - * src/type42/t42parse.c (t42_parse_sfnts): Simplify previous change. - -2012-02-26 Mateusz Jurczyk <mjurczyk@google.com> - Werner Lemberg <wl@gnu.org> - - [smooth] Fix Savannah bug #35604. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `FT_Pos' - instead of `FT_UInt' for some variables and update comparisons - accordingly. A detailed analysis can be found in the bug report. - -2012-02-26 Alexei Podtelezhnikov <apodtele@gmail.com> - - [type42] Minor code optimization. - - * src/type42/t42parse.c (t42_parse_sfnts): Use bitmask instead of - modulo operator. - -2012-02-26 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2012-02-26 Werner Lemberg <wl@gnu.org> - - [type1] Fix Savannah bug #35608. - - * src/type1/t1parse.c (T1_Get_Private_Dict): Reject too short - dictionaries. - -2012-02-26 Werner Lemberg <wl@gnu.org> - - [bdf] Support `ENCODING -1 <n>' format. - - * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Implement it. - -2012-02-26 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #35607. - - * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize - negative encoding values. - -2012-02-26 Werner Lemberg <wl@gnu.org> - - [type1] Fix Savannah bug #35606. - - * src/type1/t1load.c (parse_subrs): Add proper guards for `strncmp'. - - * src/psaux/psobjs.c (ps_parser_skip_PS_token): Emit error message - only if cur < limit. - -2012-02-25 Werner Lemberg <wl@gnu.org> - - [pcf] Fix Savannah bug #35603. - - * src/pcf/pcfread.c (pcf_get_properties): Assure final zero byte in - `strings' array. - -2012-02-25 Werner Lemberg <wl@gnu.org> - - [type42] Fix Savannah bug #35602. - - * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size' more - thoroughly. - -2012-02-25 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bugs #35599 and #35600. - - * src/bdf/bdflib.c (ACMSG16): New warning message. - (_bdf_parse_glyphs) <_BDF_BITMAP>: Check line length. - -2012-02-24 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bugs #35597 and #35598. - - * src/bdf/bdflib.c (_bdf_is_atom): Fix handling of property value. - -2012-02-24 Vinnie Falco <vinnie.falco@gmail.com> - - Prepare source code for amalgamation (6/6). - - * src/cff/cffdrivr.c: s/Load_Glyph/cff_glyph_load/. - - * src/cid/cidload.c: s/parse_font_matrix/cid_parse_font_matrix/. - s/t1_init_loader/cid_init_loader/. - s/t1_done_loader/cid_done_loader/. - - * src/psaux/t1cmap.c: s/t1_get_glyph_name/psaux_get_glyph_name/. - - * src/truetype/ttdriver.c: s/Load_Glyph/tt_glyph_load/. - - * src/type1/t1load.c: s/parse_font_matrix/t1_parse_font_matrix/. - -2012-02-24 Vinnie Falco <vinnie.falco@gmail.com> - - Prepare source code for amalgamation (5/6). - - * include/freetype/fterrors.h: Undefine FT_KEEP_ERR_PREFIX after - using it. - -2012-02-22 Vinnie Falco <vinnie.falco@gmail.com> - - Prepare source code for amalgamation (4/6). - - * src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine RAS_ARG, - RAS_ARGS, RAS_VAR, and RAS_VARS before defining it. - - * src/smooth/ftgrays.c: s/TRaster/black_TRaster/, - s/PRaster/black_PRaster/. - * src/raster/ftraster.c: s/TRaster/gray_TRaster/, - s/PRaster/gray_PRaster/. - -2012-02-20 Vinnie Falco <vinnie.falco@gmail.com> - - Prepare source code for amalgamation (3/6). - - * src/smooth/ftgrays.c: s/TWorker/black_TWorker/, - s/PWorker/black_PWorker/. - * src/raster/ftraster.c: s/TWorker/gray_TWorker/, - s/PWorker/gray_PWorker/. - -2012-02-20 Vinnie Falco <vinnie.falco@gmail.com> - - Prepare source code for amalgamation (2/6). - - * src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine FLOOR, - CEILING, TRUNC, and SCALED before defining it. - -2012-02-20 Vinnie Falco <vinnie.falco@gmail.com> - - Prepare source code for amalgamation (1/6). - - See discussion starting at - - https://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00037.html - - * src/smooth/ftgrays.c: s/TBand/gray_TBand/. - * src/raster/ftraster.c: s/TBand/black_TBand/. - -2012-02-17 Alexei Podtelezhnikov <apodtele@gmail.com> - - [autofit] Fix outline flags. - - * src/autofit/afloader.c (af_loader_load_g): Don't reassign - `outline.flags' so that this information is preserved. See - discussion starting at - - https://lists.gnu.org/archive/html/freetype-devel/2012-02/msg00046.html - -2012-02-11 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #35466. - - Jump instructions are now bound to the current function. The MS - Windows rasterizer behaves the same, as confirmed by Greg Hitchcock. - - * src/truetype/ttinterp.h (TT_CallRec): Add `Cur_End' element. - * src/truetype/ttobjs.h (TT_DefRecord): Add `end' element. - - * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Check upper - bound of jump address. - (Ins_FDEF, Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns): Updated. - -2012-02-11 Werner Lemberg <wl@gnu.org> - - We don't use `extensions'. - - * include/freetype/internal/ftobjs.h (FT_DriverRec): Remove - `extensions' field. - -2012-02-11 Werner Lemberg <wl@gnu.org> - - Clean up `generic' fields. - - * include/freetype/internal/ftobjs.h (FT_ModuleRec, FT_LibraryRec): - Remove `generic' field since users can't access it. - - * src/base/ftobjs.c (FT_Done_GlyphSlot): Call `generic.finalizer' as - advertised in the documentation of FT_Generic. - (Destroy_Module, FT_Done_Library): Updated to changes in `ftobjs.h'. - -2012-02-07 Werner Lemberg <wl@gnu.org> - - [autofit] Harmonize function arguments. - - * src/autofit/afloader.c, src/autofit/afloader.h: Use `FT_Int32' for - `load_flags'. - -2012-02-07 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): Remove unnecessary casts. - -2012-01-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Fix Savannah bug #35286. - - Patch submitted by anonymous reporter. - - * src/gxvalid/gxvcommn.c (gxv_XStateTable_subtable_setup): - gxv_set_length_by_ulong_offset() must be called with 3, not 4, - the number of the subtables in the state tables; classTable, - stateArray, entryTable. - -2012-01-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [raccess] Modify for PIC build. - - Based on the patch provided by Erik Dahlstrom <ed@opera.com>, - https://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00010.html - - Also `raccess_guess_table[]' and `raccess_rule_by_darwin_vfs()' - are renamed with `ft_' suffixes. - - * src/base/ftbase.h: `raccess_rule_by_darwin_vfs()' is renamed - to `ft_raccess_rule_by_darwin_vfs()'. - * src/base/ftobjs.c: Ditto. - - * src/base/ftrfork.c: Declarations of FT_RFork_Rule, - raccess_guess_rec, are moved to... - * include/freetype/internal/ftrfork.h: Here. - - * include/freetype/internal/ftrfork.h: - FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END} macros are defined - to replace raccess_guess_table[] in both of PIC and non-PIC - modes. - * src/base/ftrfork.c: raccess_guess_table[] array is rewritten - by FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END}. - - * src/base/basepic.h (BasePIC): Add `ft_raccess_guess_table' - storage. (FT_RACCESS_GUESS_TABLE_GET): New macro to retrieve - the function pointer from `ft_raccess_guess_table' storage in - `BasePIC' structure. - * src/base/ftrfork.c (FT_Raccess_Guess): Rewritten with - FT_RACCESS_GUESS_TABLE_GET. - (raccess_get_rule_type_from_rule_index): Add `library' as the - first argument to the function, to retrieve the storage of - `ft_raccess_guess_table' from it. Also `raccess_guess_table' - is replaced by FT_RACCESS_GUESS_TABLE_GET. - (ft_raccess_rule_by_darwin_vfs): Ditto. - -2012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Remove trailing spaces. - -2012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Formatting PIC related sources. - - * src/autofit/afpic.c: Harmonize to FT2 coding conventions. - * src/base/basepic.c: Ditto. - * src/base/ftpic.c: Ditto. - * src/cff/cffpic.c: Ditto. - * src/pshinter/pshpic.c: Ditto. - * src/psnames/pspic.c: Ditto. - * src/raster/rastpic.c: Ditto. - * src/sfnt/sfntpic.c: Ditto. - * src/smooth/ftspic.c: Ditto. - * src/truetype/ttpic.c: Ditto. - -2012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [autofit] Fix the inclusion of `aflatin2.h' in PIC file. - - * src/autofit/afpic.c: Include `aflatin2.h' when - FT_OPTION_AUTOFIT2 is defined, as afglobal.c does so. - Unconditionally inclusion causes declared but unimplemented - warning by GCC 4.6. - -2012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cff] Remove redundant declarations of cff_cmap_XXX_class_rec. - - * src/cff/cffpic.c: The declarations of - FT_Init_Class_cff_cmap_encoding_class_rec() and - FT_Init_Class_cff_cmap_unicode_class_rec() are removed. - They can be obtained by the inclusion of cffcmap.h. - cffcmap.h invokes FT_DECLARE_CMAP_CLASS() and it declares - FT_Init_Class_cff_cmap_encoding_class_rec() etc in PIC mode. - -2012-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix redundant declaration warning in PIC mode. - - Originally FT_DEFINE_{DRIVER,MODULE,RENDERER}() macros were - designed to declare xxx_pic_{free,init} by themselves. - Because these macros are used at the end of the module - interface (e.g. ttdriver.c) and the wrapper source to build - a module as a single object (e.g. truetype.c) includes - the PIC file (e.g. ttpic.c) before the module interface, - these macros are expanded AFTER xxx_pic_{free,init} body - when the modules are built as single object. - The declaration after the implementation causes the redundant - declaration warnings, so the declarations are moved to module - PIC headers (e.g. ttpic.h). Separating to other header files - are needed for multi build. - - * include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER): - Remove class_##_pic_free and class_##_pic_init declarations. - * include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER, - FT_DEFINE_MODULE): Ditto. - - * src/base/basepic.h: Insert a comment and fix coding style. - * src/autofit/afpic.h: Declare autofit_module_class_pic_{free, - init}. - * src/cff/cffpic.h: Declare cff_driver_class_pic_{free,init}. - * src/pshinter/pshpic.h: Declare pshinter_module_class_pic_{free, - init}. - * src/psnames/pspic.h: Declare psnames_module_class_pic_{free, - init}. - * src/raster/rastpic.h: Declare - ft_raster{1,5}_renderer_class_pic_{free,init} - * src/sfnt/sfntpic.h: Declare sfnt_module_class_pic_{free,init}. - * src/smooth/ftspic.h: Declare - ft_smooth_{,lcd_,lcdv_}renderer_class_pic_{free,init}. - * src/truetype/ttpic.h: Declare tt_driver_class_pic_{free,init}. - -2012-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Make pspic.c to include module error header to fix multi build. - - * src/psnames/pspic.c: Include `psnamerr.h'. - -2012-01-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [base] Fix a dereference of uninitialized variable in PIC mode. - - * src/base/ftglyph.c (FT_Glyph_To_Bitmap): `glyph' must be - set before dereferring to obtain `library'. The initialization - of `clazz', `glyph', `library' and NULL pointer check are - reordered to minimize PIC conditionals. - -2012-01-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [base] Insert explicit cast for GCC 4.6 in PIC mode. - - * src/base/ftinit.c (FT_Add_Default_Modules): Under PIC - configuration, FT_DEFAULT_MODULES_GET returns - FT_Module_Class** pointer, GCC 4.6 warns that - const FT_Module_Class* const* variable is warned as - inappropriate to store it. To calm it, explicit cast is - inserted. Also `library' is checked to prevent the NULL - pointer dereference in FT_DEFAULT_MODULES_GET. - -2012-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix PIC build broken by d9145241fe378104ba4c12a42534549faacc92e6. - - Under PIC configuration, FT_{CFF,PSCMAPS,SFNT,TT}_SERVICES_GET - take no arguments but derefer the variable named `library' - internally. - - * src/cff/cffdrivr.c (cff_get_interface): Declare `library' and - set it if non-NULL driver is passed. - * src/truetype/ttdriver.c (tt_get_interface): Ditto. - - * src/sfnt/sfdriver.c (sfnt_get_interface): Declare `library' - under PIC configuration, and set it if non-NULL module is given. - * src/psnames/psmodule.c (psnames_get_interface): Ditto. - -2012-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Make PIC files include module error headers, to use the error codes - with per-module prefix. - - * src/autofit/afpic.c: Include `aferrors.h'. - * src/cff/cffpic.c: Include `cfferrs.h'. - * src/pshinter/pshpic.c: Include `pshnterr.h'. - * src/raster/rastpic.c: Include `rasterrs.h'. - * src/sfnt/sfntpic.c: Include `sferrors.h'. - * src/smooth/ftspic.c: Include `ftsmerrs.h'. - * src/truetype/ttpic.c: Include `tterrors.h'. - -2012-01-04 Tobias Ringström <tobias@ringis.se> - - [truetype] Fix IP instruction if x_ppem != y_ppem. - - * src/truetype/ttinterp.c (Ins_IP): Scale `orus' coordinates - properly. - -2012-01-02 Werner Lemberg <wl@gnu.org> - - Fix tracing message for `loca' table. - - * src/truetype/ttpload.c (tt_face_get_location): Don't emit a - warning message if the last `loca' entry references an empty glyph. - -2011-12-10 Werner Lemberg <wl@gnu.org> - - Add some variable initializations. - Reported by Richard COOK <rscook@unicode.org>. - - * src/type1/t1driver.c (t1_ps_get_font_value): Initialize `val'. - * src/smooth/ftgrays.c (gray_render_conic): Initialize `levels' - earlier. - -2011-12-08 Werner Lemberg <wl@gnu.org> - - Fix serious scaling bug in `FT_Get_Advances'. - - * src/base/ftadvanc.c (FT_Get_Advances): Advance values returned by - `FT_Load_Glyph' must be simply multiplied by 1024. - -2011-12-08 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdflib.c (_bdf_parse_start): Drop redundant error tracing. - -2011-12-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [mac] Unify DARWIN_NO_CARBON with FT_MACINTOSH. - - Originally FT_MACINTOSH was a pure auto macro and DARWIN_NO_CARBON - was a configurable macro to disable Carbon-dependent code. Because - now configure script sets DARWIN_NO_CARBON by default and disables - Darwin & Carbon-dependent codes, these macros can be unified. - FT_MACINTOSH (undefined by default) is kept and DARWIN_NO_CARBON - (defined by default) is removed, because DARWIN_NO_CARBON violates - FT_XXX naming convention of public macros, and a macro configured by - default is not portable for the building without configure (e.g. - make devel). - - * builds/unix/configure.raw: Define FT_MACINTOSH if Carbon-based - old Mac font support is requested and Carbon is available. - * builds/unix/ftconfig.in: Undefine FT_MACINTOSH when the support - for Mac OS X without Carbon (e.g. Mac OS X 10.4 for ppc64) is - requested. - * include/freetype/config/ftconfig.in: Ditto. - * builds/vms/ftconfig.h: Ditto. - - * src/base/ftbase.h: Remove DARWIN_NO_CARBON. - * src/base/ftbase.c: Ditto. - * src/base/ftobjs.c: Ditto. - * src/base/ftrfork.c: Ditto. - - * src/base/ftmac.c: Compile the body if FT_MACINTOSH is defined - (same with TT_USE_BYTECODE_INTERPRETER in ttinterp.c). - * builds/mac/ftmac.c: Ditto. - - * builds/mac/FreeType.m68k_cfm.make.txt: Define FT_MACINTOSH. - * builds/mac/FreeType.m68k_far.make.txt: Ditto. - * builds/mac/FreeType.ppc_classic.make.txt: Ditto. - * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. - -2011-11-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix Savannah bug #34728 (`make devel' on Mac OS X). - - * builds/toplevel.mk: Check `/dev/null' to identify the Unix- - like systems without `init' nor `hurd' (e.g. Mac OS X >= 10.4). - * builds/unix/detect.mk: Ditto. - -2011-11-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [apinames] Fix the overflow of signed integer hash. - - * src/tools/apinames.c (names_add): Change the type of `h' from - int to unsigned int, to prevent undefined behaviour in the - overflow of signed integers (overflow of unsigned int is defined - to be wrap around). Found by clang test suggested by Sean - McBride. - -2011-11-30 Werner Lemberg <wl@gnu.org> - - [winfonts] Remove casts. - - * src/winfonts/winfnt.c (winfnt_driver_class): Remove all casts and - update affected functions. - (FNT_Size_Select): Fix number of arguments. - -2011-11-30 Werner Lemberg <wl@gnu.org> - - [type42] Remove casts. - - * src/type42/t42drivr.c (t42_driver_class): Remove all casts and - update affected functions. - - * src/type42/t42objs.c, src/type42/t42objs.h: Updated for t42 driver - changes. - -2011-11-30 Werner Lemberg <wl@gnu.org> - - [type1] Remove casts. - - * src/type1/t1driver.c (t1_driver_class): Remove all casts and - update affected functions. - - * src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1objs.c: - Updated for t1driver changes. - src/type1/t1objs.h (T1_Driver): Remove unused typedef. - Updated for t1driver changes. - -2011-11-27 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #34896. - - ENCODING now covers the whole Unicode range. - - Note, however, that this change is quite expensive since it - increases the size of three arrays by almost 400kByte in total. The - right fix is to replace the logic with something smarter. - Additionally, there exist very old BDFs for three-byte CCCII - encoding which exceeds the range of Unicode (another reason to have - a smarter logic). - - * src/bdf/bdf.h (bdf_font_t): Increase size of `nmod' and `umod' - arrays. - * src/bdf/bdflib.c (bdf_parse_t): Increase size of `have' array. - -2011-11-27 Werner Lemberg <wl@gnu.org> - - [bdf] Improve tracing. - - * src/bdf/bdflib.c (DBGMSG1, DBGMSG2): New macros. - (_bdf_parse_glyphs): Use them. - -2011-11-26 Werner Lemberg <wl@gnu.org> - - Improve tracing. - - * src/bdf/bdfdrivr.c (BDF_Face_Done), src/pcf/pcfdrivr.c - (PCF_Face_Done): Remove tracing message. - - * src/bdf/bdfdrivr.c (BDF_Face_Init), src/cff/cffobjs.c - (cff_face_init), src/cid/cidobjs.c (cid_face_init), - src/pfr/pfrobjs.c (pfr_face_init), src/sfnt/sfobjs.c - (sfnt_init_face), src/truetype/ttobjs.c (tt_face_init), - src/type1/t1objs.c (T1_Face_Init), src/type42/t42objs.c - (T42_Face_Init), src/winfonts/winfnt.c (FNT_Face_Init): Add - `greeting' message. - - * src/sfnt/sfobjs.c (sfnt_open_font), src/type42/t42objs.c - (T42_Open_Face): Improve tracing. - -2011-11-26 Werner Lemberg <wl@gnu.org> - - [cid] Fix error code. - - * src/cid/cidparse.c (cid_parser_new): Do it. - -2011-11-26 Werner Lemberg <wl@gnu.org> - - [cff] Fix error code. - - * src/cff/cffload.c (cff_font_load): Do it. - -2011-11-26 Werner Lemberg <wl@gnu.org> - - Add new error code FT_Err_Missing_Module. - - Previously, FreeType misleadingly returned - FT_Err_Unknown_File_Format if a module was missing (or a test was - missing completely). - - * include/freetype/fterrdef.h (FT_Err_Missing_Module): Define. - - * src/cff/cffobjs.c (cff_face_init), src/cff/cffdrivr.c - (cff_get_glyph_name), src/cid/cidobjs.c (cid_face_init), - src/sfnt/sfobjs.c (sfnt_init_face), src/truetype/ttobjs.c - (tt_face_init), src/type1/t1objs.c (T1_Face_Init), - src/type42/t42objs.c (T42_Face_Init, T42_Driver_Init): Updated. - - * src/type1/t1afm.c (T1_Read_Metrics), src/type/t1objs.c - (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Remove now - redundant test for `psaux'. - -2011-11-25 Werner Lemberg <wl@gnu.org> - - [bdf] Add more error messages. - - * src/bdf/bdflib.c (_bdf_set_default_spacing, _bdf_add_property): - Add line number argument. - Update all callers. - (ERRMSG5, ERRMSG6, ERRMSG7, ERRMSG8, ERRMSG9): New macros. - (_bdf_readstream, _bdf_set_default_spacing, _bdf_add_property, - _bdf_parse_glyphs, _bdf_parse_start): Add error messages. - -2011-11-24 Werner Lemberg <wl@gnu.org> - - * include/freetype/fterrors.h: Remove dead code. - -2011-11-15 Werner Lemberg <wl@gnu.org> - - * docs/releases: Updated. - -2011-11-15 Werner Lemberg <wl@gnu.org> - - * Version 2.4.8 released. - ========================= - - - Tag sources with `VER-2-4-8'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.8. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.7/2.4.8/, s/247/248/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. - - * builds/unix/configure.raw (version_info): Set to 14:0:8. - -2011-11-13 Chris Liddell <chris.liddell@artifex.com> - - Add FT_Get_PS_Font_Value() API. - - This allows a Type 1 font face to be interrogated to retrieve most - of the dictionary keys (keys not relevant to FreeType's Type 1 - interpreter are not available). - - * include/freetype/internal/services/svpsinfo.h - (PS_GetFontValueFunc): New typedef. - (PSInfo): Add `ps_get_font_value'. - (FT_DEFINE_SERVICE_PSINFOREC): Updated. - - * include/freetype/internal/t1types.h (T1_EncodingType): Moved to... - * include/freetype/t1tables.h: Here. - (PS_Dict_Keys): New enumeration. - (FT_Get_PS_Font_Value): New declaration. - - * src/base/fttype1.c (FT_Get_PS_Font_Value): New function. - - * src/type1/t1driver.c (t1_ps_get_font_value): This new function - does the real job. - (t1_service_ps_info): Add it. - - * src/cff/cffdrivr.c (cff_service_ps_info), src/cid/cidriver.c - (cid_service_ps_info), src/type42/t42drivr.c (t42_service_ps_info): - Updated. - -2011-11-08 Braden Thomas <bthomas@apple.com> - - [cid] Various loading fixes. - - * src/cid/cidload.c (cid_load_keyword) <default>, - (parse_font_matrix, parse_expansion_factor): Correctly check number - of dictionaries. - (cid_read_subrs): Protect against invalid values of `num_subrs'. - Assure that the elements of the `offsets' array are ascending. - -2011-11-05 Werner Lemberg <wl@gnu.org> - - * README: We use copyright ranges also. - - According to - - https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html - - this should be mentioned explicitly. - -2011-10-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [raccess] Supplement for previous fix. - - * src/base/ftbase.h (raccess_rule_by_darwin_vfs): Do not declare - it on native Mac OS X. - * src/base/ftrfork.c (raccess_get_rule_type_from_rule_index): - Hide raccess_get_rule_type_from_rule_index() on native Mac OS X - too. - -2011-10-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [raccess] Hide raccess_rule_by_darwin_vfs() on native Mac OS X. - - * src/base/ftrfork.c (raccess_rule_by_darwin_vfs): Do not - compile on native Mac OS X because it is not used. - -2011-10-25 Werner Lemberg <wl@gnu.org> - - [truetype] Fix MD instruction for twilight zone. - - * src/truetype/ttinterp.c (Ins_MD): Without this fix, the MD - instruction applied to original coordinates of twilight points - always returns zero. - -2011-10-18 Werner Lemberg <wl@gnu.org> - - * Version 2.4.7 released. - ========================= - - - Tag sources with `VER-2-4-7'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.7. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.6/2.4.7/, s/246/247/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. - - * builds/unix/configure.raw (version_info): Set to 13:2:7. - -2011-10-15 Kal Conley <kcconley@gmail.com> - - Fix handling of transformations if no renderer is present. - - * src/base/ftobjs.c (FT_Load_Glyph): Thinko. - -2011-10-15 Kal Conley <kcconley@gmail.com> - - Fix conditions for autohinting. - - * src/base/ftobjs.c (FT_Load_Glyph): Handle - FT_LOAD_IGNORE_TRANSFORM. - -2011-10-07 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Fix a bug to detect too large offset in morx table. - - * src/gxvalid/gxvmorx2.c - (gxv_morx_subtable_type2_ligActionIndex_validate): Fix a bug - that too large positive offset cannot be detected. - -2011-10-01 Braden Thomas <bthomas@apple.com> - - Handle some border cases. - - * include/freetype/config/ftstdlib.h (FT_USHORT_MAX): New macro. - - * src/base/ftbitmap.c (FT_Bitmap_Convert): Protect against invalid - value of `target->rows'. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add check for - flex start. - - * src/raster/ftrend1.c (ft_raster1_render): Check `width' and - `height'. - - * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Protect against - invalid values in `localpoints' array. - -2011-10-01 Werner Lemberg <wl@gnu.org> - - [psnames] Handle zapfdingbats. - Problem reported by Nicolas Rougier <Nicolas.Rougier@inria.fr>. - - * src/tools/glnames.py (adobe_glyph_list): Add data from AGL's - `zapfdingbats.txt' file. - - * src/psnames/pstables.h: Regenerated. - -2011-09-27 Simon Bünzli <zeniko@gmail.com> - - [type1] Fix Savannah bug #34189. - - * src/type1/t1load.c (T1_Open_Face): Initialize - `face->len_buildchar'. - -2011-09-26 Werner Lemberg <wl@gnu.org> - - [cff] Dump SIDs while tracing. - - * src/cff/cffobjs.c (cff_face_init): Do it. - - * src/cff/cffparse.c (cff_parser_run) [FT_DEBUG_LEVEL_TRACE] - <cff_kind_string>: Identify as SID. - -2011-09-17 Werner Lemberg <wl@gnu.org> - - Remove unused FT_ALIGNMENT macro. - - * builds/unix/ftconfig.in, builds/vms/ftconfig.h, - include/freetype/config/ftconfig.h: Do it. - -2011-09-17 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Slightly optimize conic and cubic flatteners. - - * src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move - out some code from the main loop to speed it up. - -2011-09-11 Tomas Hoger <thoger@redhat.com> - - Slightly improve LZW_CLEAR handling. - - * src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_CODE>: - Ensure that subsequent (modulo garbage byte(s)) LZW_CLEAR codes are - handled as clear codes. This also re-sets old_code and old_char to - predictable values, which is a little better than using `random' - ones if the code following LZW_CLEAR is invalid. - -2011-09-11 Tomas Hoger <thoger@redhat.com> - - Add explicit LZW decompression stack size limit. - - Stack larger than 1<<LZW_MAX_BITS is never needed if prefix table is - constructed correctly. It's even less than that, see e.g. - libarchive code comment for a better size upper bound: - - http://code.google.com/p/libarchive/source/browse/trunk/libarchive/archive_read_support_filter_compress.c?r=3635#121 - - This patch adds explicit stack size limit, enforced when stack is - realloced. - - An alternative is to ensure that code < state->prefix[code - 256] - when traversing prefix table. Such check is less efficient and - should not be required if prefix table is constructed correctly in - the first place. - - * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Implement it. - -2011-09-11 Tomas Hoger <thoger@redhat.com> - - Protect against loops in the prefix table. - - LZW decompressor did not sufficiently check codes read from the - input LZW stream. A specially-crafted or corrupted input could - create a loop in the prefix table, which leads to memory usage - spikes, as there's no decompression stack size limit. - - * src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_START>: First - code in valid LZW stream must be 0..255. - <FT_LZW_PHASE_CODE>: In the special KwKwK case, code == free_ent, - code > free_ent is invalid. - -2011-09-09 Werner Lemberg <wl@gnu.org> - - Better tracing of metrics. - - * src/base/ftobjs.c (FT_Request_Size, FT_Select_Size): Decorate with - FT_TRACE. - -2011-09-07 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #33816. - - * src/cff/cfftypes.h (CFF_FontRecDictRec): New member - `has_font_matrix'. - * src/cff/cffparse.c (cff_parse_font_matrix): Set it. - Update tracing output. - * src/cff/cffobjs.c (cff_face_init): Use it so that the heuristics - can be removed. - -2011-08-30 Werner Lemberg <wl@gnu.org> - - Better tracing of metrics. - - * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): - Decorate with FT_TRACE. - -2011-08-25 Werner Lemberg <wl@gnu.org> - - [cff] Better tracing of the parsing process. - - * src/cff/cffload.c (cff_subfont_load, cff_font_load): Decorate with - FT_TRACE. - - * src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox, - cff_parse_private_dict, cff_parse_cid_ros): Updated. - (CFF_FIELD_NUM, CFF_FIELD_FIXED, CFF_FIELD_FIXED_1000, - CFF_FIELD_STRING, CFF_FIELD_BOOL, CFF_FIELD_CALLBACK, CFF_FIELD, - CFF_FIELD_DELTA): Add argument for ID. - (cff_parser_run): Decorate with FT_TRACE. - - * src/cff/cffparse.h (CFF_Field_Handler) [FT_DEBUG_LEVEL_TRACE]: Add - `id' member. - - * src/cff/cfftoken.h: Add IDs to all fields. - -2011-08-16 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #34022. - - * README, docs/INSTALL: Remove references to UPGRADE.UNIX. - -2011-08-15 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #34018. - - * docs/UPGRADE.UNIX: Removed. Obsolete. - -2011-08-15 David Bevan <david.bevan@pb.com> - - Fix Savannah bug #33992. - - * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix border case. - -2011-08-12 Werner Lemberg <wl@gnu.org - - [truetype] Fix degenerate case in S{P,F,DP}VTL opcodes. - - * src/truetype/ttinterp.c (Ins_SxVTL): Handle p1 == p2 specially. - (Ins_SDPVTL): Handle v1 == v2 specially. - -2011-08-09 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #33975. - - * src/cff/cffparse.c (cff_parse_font_matrix): Fix typo. - -2011-07-29 Werner Lemberg <wl@gnu.org> - - * Version 2.4.6 released. - ========================= - - - Tag sources with `VER-2-4-6'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.6. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.5/2.4.6/, s/245/246/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. - - * builds/unix/configure.raw (version_info): Set to 13:1:7. - -2011-07-29 Werner Lemberg <wl@gnu.org> - - [cff] Add some more tracing infos. - - * src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox, - cff_parse_cid_ros): Add tracing. - -2011-07-22 Dirk Müller <dmueller@suse.de> - - [psaux, type1] Fix null pointer dereferences. - - Found with font fuzzying. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Check - `decoder->buildchar'. - - * src/type1/t1load.c (t1_load_keyword): Check `blend->num_designs'. - -2011-07-20 Chris Morgan <cmorgan@cybexintl.com> - - Add FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT. - - Useful for embedded systems which don't need file stream support. - - * src/base/ftsystem.c, src/base/ftobjs.c (FT_Stream_New): Implement - it. - -2011-07-20 Elton Chung <elton328@gmail.com> - - * src/base/ftpatent.c (FT_Face_SetUnpatentedHinting): Fix typo. - -2011-07-16 Steven Chu <steven.f.chu@gmail.com> - - [truetype] Fix metrics on size request for scalable fonts. - - * src/truetype/ttdriver.c (tt_size_request): Fix copying metrics - from TT_Size to FT_Size if scalable font. - - See - - https://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00049.html - - for some comparison images. - -2011-07-14 Matthias Drochner <M.Drochner@fz-juelich.de>. - - [psaux] Fix potential sign extension problems. - - When shifting right a signed value, it is not defined by the - C standard whether one gets a sign extension or not. Use a macro to - do an explicit cast from a signed short (assuming that this is - 16bit) to an int. - - * src/psaux/t1decode.c (Fix2Int): New macro. - Use it where appropriate. - -2011-07-14 Werner Lemberg <wl@gnu.org> - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - <op_callothersubr>: Better handling of subroutine index 0. - From Matthias Drochner <M.Drochner@fz-juelich.de>. - -2011-07-10 Алексей Подтележников <apodtele@gmail.com> - - [psaux] Optimize previous commit. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - <op_callothersubr>: Move error check down to avoid testing twice for - good cases. - -2011-07-08 Werner Lemberg <wl@gnu.org> - - [psaux] Add better argument check for `callothersubr'. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - <op_callothersubr>: Reject negative arguments. - -2011-07-07 Werner Lemberg <wl@gnu.org> - - [sfnt] Try harder to find non-zero values for ascender and descender. - - * src/sfnt/sfobjs.c (sfnt_load_face): Consult `OS/2' table in case - the `hhea' table's values are zero. - -2011-07-03 Werner Lemberg <wl@gnu.org> - - Fix previous commit. - - We want to unset FT_FACE_FLAG_SCALABLE only if there are bitmap - strikes in the font. - - * src/truetype/ttobjs.c (tt_face_init): Implement it. - - * docs/CHANGES: Updated. - -2011-07-02 Just Fill Bugs <mozbugbox@yahoo.com.au> - - [truetype] Fix Savannah bug #33246. - - * src/truetype/ttobjs.c (tt_check_single_notdef): New function. - (tt_face_init): Use it to test FT_FACE_FLAG_SCALABLE. - -2011-07-02 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2011-07-02 David Bevan <david.bevan@pb.com> - - [ftstroke] Major revision. - - The main problems - ----------------- - - o If FT_STROKER_LINEJOIN_BEVEL was specified, unlimited miter - joins (not bevel joins) were generated. Indeed, the meanings of - `miter' and `bevel' were incorrectly reversed (consistently) in - both the code and comments. - - o The way bevel joins were constructed (whether specified - explicitly, or created as a result of exceeding the miter limit) - did not match what is required for stroked text in PostScript or - PDF. - - The main fixes - -------------- - - o The behaviour of FT_STROKER_LINEJOIN_BEVEL has been corrected. - - o A new line join style, FT_STROKER_LINEJOIN_MITER_FIXED, has been - introduced to support PostScript and PDF miter joins. - - o FT_STROKER_LINEJOIN_MITER_VARIABLE has been introduced as an - alias for FT_STROKER_LINEJOIN_MITER. - - Additionally, a variety of stroking errors have been fixed. These - would cause various artifacts (including points `at infinity'), - especially when stroking poor quality fonts. - - See - - https://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00001.html - - for example documents. The FreeType stroker now produces results - very similar to that produced by GhostScript and Distiller for these - fonts. - - Other problems - -------------- - - The following problems have been resolved: - - o Inside corners could be generated incorrectly. Intersecting the - inside corner could cause a missing triangular area and other - effects. - - The intersection point can only be used if the join is between - two lines and both lines are long enough. The `optimization' - condition in `ft_stroker_inside' has been corrected; this - requires the line length to be passed into various functions and - stored in `FT_StrokerRec'. - - o Incorrect cubic curves could be generated. The angle - calculations in `FT_Stroker_CubicTo' have been corrected to - handle the case of the curve crossing the +/-PI direction. - - o If the border radius was greater than the radius of curvature of - a curve, then the negative sector would end up outside (not - inside) the border. This situation is now recognized and the - negative sector is circumnavigated in the opposite direction. - (If round line joins are being used, this code is disabled - because the line join will always cover the negative sector.) - - o When a curve is split, the arcs may not join smoothly (especially - if the curve turns sharply back on itself). Changes in - direction between adjacent arcs were not handled. A round - corner is now added if the deviation from one arc to the next is - greater than a suitable threshold. - - o The current direction wasn't retained if a the outline contained - a zero length lineto or a curve that was determined to be - `basically a point'. This could cause a spurious join to be - added. - - o Cubics with close control points could be mishandled. All eight - cases are now distinguished correctly. - - Other improvements - ------------------ - - o Borders for cubic curves could be too `flat'. - FT_SMALL_CUBIC_THRESHOLD has been reduced a little to prevent - this. - - o The handling and use of movable points has been simplified a - little. - - o Various values are now computed only if the results are actually - needed. - - o The directions of the outer and inner borders have been swapped, - as recommended by Graham Asher. - - * src/base/ftstroke.c: Revised. - * include/freetype/ftstroke.h: Updated. - -2011-06-30 İsmail Dönmez <ismail@namtrac.org> - - * builds/toplevel.mk: We use git, not CVS, thus skip `.gitignore'. - -2011-06-29 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #33663. - - * src/bdf/bdflib.c (_bdf_parse_glyphs): Handle negative values for - ENCODING correctly. - - * docs/CHANGES: Document it. - -2011-06-24 Werner Lemberg <wl@gnu.org> - - * Version 2.4.5 released. - ========================= - - - Tag sources with `VER-2-4-5'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.5 - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.4/2.4.5/, s/244/245/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. - - * builds/unix/configure.raw (version_info): Set to 13:0:7. - -2011-06-20 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix change - from 2011-05-04. - -2011-06-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] make the `prop' validation tracing verbose. - - * src/gxvalid/gxvprop.c: Add tracing messages for errors. - -2011-06-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [autogen.sh] Reflect environment variable LIBTOOLIZE. - -2011-06-18 Werner Lemberg <wl@gnu.org> - - Update license documentation. - - * docs/GPL.TXT: Renamed to... - * docs/GPLv2.TXT: This. - - * docs/LICENSE.TXT: Updated. - -2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix g++4.6 compiler warnings in module drivers. - - The background is same with previous commit. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): - Init `points'. (TT_Vary_Get_Glyph_Deltas): Init - `delta_xy'. (TT_Get_MM_Var): Init `mmvar'. - * src/type1/t1load.c (T1_Get_MM_Var): Ditto. - * src/cff/cffdrivr.c (cff_ps_get_font_info): Init - `font_info'. - * src/cff/cffload.c (cff_index_get_pointers): Init `t'. - (cff_font_load): Init `sub'. - * src/cff/cffobjs.c (cff_size_init): Init `internal'. - (cff_face_init): Init `cff'. - * src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps): - Init `snaps'. - * src/pcf/pcfread.c (pcf_get_properties): Init `properties'. - (pcf_get_bitmaps): Init `offsets'. (pcf_get_encodings): - Init `tmpEncoding'. - * src/sfnt/ttload.c (tt_face_load_gasp): Init `gaspranges'. - * src/sfnt/ttsbit.c (Load_SBit_Image): Init `components'. - * src/cache/ftcmru.c (FTC_MruList_New): Init `node'. - * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Init `zip' and - `zip_buff'. - * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Init `zip'. - * src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Init `zip'. - -2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [base] Fix g++4.6 compiler warnings in src/base/*.c. - - Passing uninitialized pointer to FT_NEW() families is - not problematic theoretically (as far as the returned - pointer is checked before writing), but g++4.6 dislikes - it and warns by -Wuninitialized. Initialize them by NULL. - - * src/base/ftobjs.c (FT_Stream_New): Init `stream'. - (new_memory_stream): Ditto. - (FT_New_GlyphSlot): Init `slot'. - (FT_CMap_New): Init `cmap'. - (open_face_PS_from_sfnt_stream): Init `sfnt_ps'. - (Mac_Read_POST_Resource): Init `pfb_data'. - (Mac_Read_sfnt_Resource): Init `sfnt_data'. - * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): - Init `offsets_internal' and `ref'. - (raccess_guess_darwin_hfsplus): Init `newpath'. - (raccess_guess_darwin_newvfs): Ditto. - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): - Init `buffer'. - * src/base/ftstroke.c (FT_Stroker_New): Init `stroker'. - -2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Cleanup. - - Some invalid, overrunning, unrecommended non-zero values - are cared in paranoid validation mode only. There are - many lines looking like: - - if ( valid->root->level >= FT_VALIDATE_PARANOID ) - FT_INVALID_xxx; - - To simplify them, GXV_SET_ERR_IF_PARANOID( err ) is - introduced for more paranoid validation in future. - - * src/gxvalid/gxvcommn.h (IS_PARANOID_VALIDATION): - New macro to assure valid->root->level is more or - equal to FT_VALIDATE_PARANOID. (GXV_SET_ERR_IF_PARANOID): - New macro to raise an error if in paranoid validation. - * src/gxvalid/gxvcommn.c: Use GXV_SET_ERR_IF_PARANOID(). - * src/gxvalid/gxvfeat.c: Ditto. - * src/gxvalid/gxvjust.c: Ditto. - * src/gxvalid/gxvkern.c: Ditto. - * src/gxvalid/gxvmort.c: Ditto. - * src/gxvalid/gxvmort0.c: Ditto. - * src/gxvalid/gxvmort1.c: Ditto. - * src/gxvalid/gxvmort2.c: Ditto. - * src/gxvalid/gxvmorx1.c: Ditto. - * src/gxvalid/gxvmorx2.c: Ditto. - -2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Fix gcc4.6 compiler warnings in gxvtrak.c. - - * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): - Check different entries pointing same tracking value. - (gxv_trak_validate): Remove unused variable `table_size'. - -2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Fix gcc4.6 compiler warnings in gxvmorx*.c. - - * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate): - Conditionalize unvalidated variable `subFeatureFlags'. - (gxv_morx_chain_validate): Conditionalize unvalidated - variable `defaultFlags'. - - * src/gxvalid/gxvmorx0.c - (gxv_morx_subtable_type0_entry_validate): - Conditionalize unvalidated variables; `markFirst', - `dontAdvance', `markLast', `verb'. - - * src/gxvalid/gxvmorx1.c - (gxv_morx_subtable_type1_entry_validate): Conditionalize - unvalidated variables; `setMark', `dontAdvance'. - - * src/gxvalid/gxvmorx2.c - (gxv_morx_subtable_type2_ligActionOffset_validate): - Conditionalize unvalidated variables; `last', `store'. - Checking for overrunning offset is added. - (gxv_morx_subtable_type2_entry_validate): - Conditionalize unvalidated variables; `setComponent', - `dontAdvance', `performAction'. - (gxv_morx_subtable_type2_ligatureTable_validate): - Check if the GID for ligature does not exceed the - max GID in `maxp' table. - - * src/gxvalid/gxvmort5.c - (gxv_morx_subtable_type5_InsertList_validate): - Conditionalize unvalidated loading of `insert_glyphID' - array. (gxv_morx_subtable_type5_entry_validate): - Conditionalize unvalidated variables; `setMark', - `dontAdvance', `currentIsKashidaLike', - `markedIsKashidaLike', `currentInsertBefore', - `markedInsertBefore'. - -2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Fix gcc4.6 compiler warnings in gxvmort*.c. - - * src/gxvalid/gxvmort.c (gxv_mort_subtables_validate): - Conditionalize unvalidated variable `subFeatureFlags'. - (gxv_mort_chain_validate): Conditionalize unvalidated - variable `defaultFlags'. - - * src/gxvalid/gxvmort0.c - (gxv_mort_subtable_type0_entry_validate): Check the - conflict of the marks for the glyphs. - - * src/gxvalid/gxvmort1.c - (gxv_mort_subtable_type1_offset_to_subst_validate): - Local variables `min_gid', `max_gid' are replaced by - variables in the validator. - (gxv_mort_subtable_type1_entry_validate): Conditionalize - unvalidated variables; `setMark', `dontAdvance'. - (gxv_mort_subtable_type1_substTable_validate): - Validate the GID by the min/max GIDs in the validator. - - * src/gxvalid/gxvmort2.c - (gxv_mort_subtable_type2_ligActionOffset_validate): - Conditionalize unvalidated variables; `last', `store'. - Checking for overrunning offset is added. - (gxv_mort_subtable_type2_entry_validate): - Conditionalize unvalidated variables; `setComponent', - `dontAdvance'. - (gxv_mort_subtable_type2_ligatureTable_validate): - Check if the GID for ligature does not exceed the - max GID in `maxp' table. - - * src/gxvalid/gxvmort5.c - (gxv_mort_subtable_type5_InsertList_validate): - Conditionalize unvalidated loading of `insert_glyphID' - array. (gxv_mort_subtable_type5_entry_validate): - Conditionalize unvalidated variables; `setMark', - `dontAdvance', `currentIsKashidaLike', - `markedIsKashidaLike', `currentInsertBefore', - `markedInsertBefore'. - -2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Fix gcc4.6 compiler warnings in gxvkern.c. - - * src/gxvalid/gxvkern.c - (gxv_kern_subtable_fmt0_pairs_validate): Conditionalize - unvalidated variable `kernValue'. - (gxv_kern_subtable_fmt1_entry_validate): Conditionalize - unvalidated variables; `push', `dontAdvance', `kernAction', - `kernValue'. - (gxv_kern_coverage_new_apple_validate): Conditionalize - trace-only variables; `kernVertical', `kernCrossStream', - `kernVariation'. - (gxv_kern_coverage_classic_apple_validate): Conditionalize - trace-only variables; `horizontal', `cross_stream'. - (gxv_kern_coverage_classic_microsoft_validate): - Conditionalize trace-only variables; `horizontal', - `minimum', `cross_stream', `override'. - (gxv_kern_subtable_validate): Conditionalize trace-only - variables; `version', `tupleIndex'. - -2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Fix gcc4.6 compiler warnings in gxvjust.c. - - * src/gxvalid/gxvjust.c (gxv_just_check_max_gid): - New function to unify the checks of too large GID. - (gxv_just_wdp_entry_validate): Conditionalize unvalidated - variables; `beforeGrowLimit', `beforeShrinkGrowLimit', - `afterGrowLimit', `afterShrinkGrowLimit', `growFlags', - `shrinkFlags'. Additional check for non-zero values in - unused storage `justClass' is added. - (gxv_just_actSubrecord_type0_validate): Conditionalize - unvalidated variable `order'. GID is checked by - gxv_just_check_max_gid(). Additional check for upside-down - relationship between `lowerLimit' and `upperLimit' is added. - (gxv_just_actSubrecord_type1_validate): GID is checked by - gxv_just_check_max_gid(). - (gxv_just_actSubrecord_type2_validate): Conditionalize - unvalidated variable `substThreshhold'. GID is checked by - gxv_just_check_max_gid(). - (gxv_just_actSubrecord_type5_validate): GID is checked by - gxv_just_check_max_gid(). - (gxv_just_classTable_entry_validate): Conditionalize - unvalidated variables; `setMark', `dontAdvance', - `markClass', `currentClass'. - -2011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Preparation to fix gcc4.6 compiler warnings. - - * src/gxvalid/gxvcommn.h (GXV_LOAD_TRACE_VARS): New macro to - conditionalize the variable which is only used for trace messages. - Automatically set by FT_DEBUG_LEVEL_TRACE. - (GXV_LOAD_UNUSED_VARS): New macro to conditionalize the loading of - unvalidated variables. Undefined by default to calm gcc4.6 warning. - (GXV_ValidatorRec.{min_gid,max_gid}): New variables to hold defined - GID ranges, for the comparison of GID ranges in different subtables. - -2011-06-08 Werner Lemberg <wl@gnu.org> - - [autofit] Remove unused structure member. - - * src/autofit/afhints.h (AF_SegmentRec): Remove `contour'. - * src/autofit/aflatin.c (af_latin_hints_compute_segments), - src/autofit/aflatin2.c (af_latin2_hints_compute_segments): Updated. - -2011-05-30 Werner Lemberg <wl@gnu.org> - - Fix g++ 4.6 compilation. - - * src/autofit/afhints.c (af_glyph_hints_dump_segments, - af_glyph_hints_dump_edges): Use cast. - -2011-05-30 Werner Lemberg <wl@gnu.org> - - Fix gcc 4.6 compiler warnings. - - * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Use casts and - remove unused variables. - * src/autofit/aflatin.c (af_latin_hints_compute_edges): Comment out - `up_dir'. - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `height_org' - and `width_org' conditionalized. - -2011-05-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [mac] Conditionalize the inclusion of `AvailabilityMacros.h'. - - The native SDK on earliest Mac OS X (10.0-10.1) did not have - `AvailabilityMacros.h'. To prevent the inclusion of missing - header file, ECANCELED (introduced in 10.2) in POSIX header - file <errno.h> is checked to detect the system version. - - * include/freetype/config/ftconfig.h: Conditionalize the - inclusion of `AvailabilityMacros.h'. - * builds/unix/ftconfig.in: Ditto. - * builds/vms/ftconfig.h: Ditto. - -2011-05-27 Werner Lemberg <wl@gnu.org> - - [autofit] Improve tracing of hinting process. - - * src/autofit/aflatin.c (af_latin_hint_edges): Add tracing message - `ADJUST'. - -2011-05-26 Werner Lemberg <wl@gnu.org> - - [autofit] Fix trace message. - - * src/autofit/aflatin.c (af_latin_hint_edges): Show correct value in - tracing message. - -2011-05-24 Daniel Zimmermann <netzimme@googlemail.com> - - Reduce warnings for MS Visual Studio 2010. - - * src/autofit/afhints.c (af_glyph_hints_get_num_segments, - af_glyph_hints_get_segment_offset) [!FT_DEBUG_AUTOFIT]: Provide - return value. - * src/cff/cffgload.c (cff_slot_load): Add cast. - * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): Use proper - loop variable type. - -2011-05-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Automake component `builds/unix/install-sh' is removed. - - * builds/unix/install-sh: Removed. It is not needed to - include repository, because autogen.sh installs it. - * builds/unix/.gitignore: Register install-sh. - -2011-05-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [autofit] Make trace message for CJK bluezone more verbose. - -2011-05-08 Just Fill Bugs <mozbugbox@yahoo.com.au> - suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [autofit] Add bluezones for CJK Ideographs. - - To remove extrema of vertical strokes of CJK Ideographs at - low resolution and make the top and bottom horizontal stems - aligned, bluezones for CJK Ideographs are calculated from - sample glyphs. At present, vertical bluezones (bluezones - to align vertical stems) are disabled by default. For detail, see - https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00070.html - https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00092.html - https://lists.gnu.org/archive/html/freetype-devel/2011-05/msg00001.html - - * include/freetype/internal/fttrace.h: New trace component `afcjk'. - * src/autofit/afcjk.h (AF_CJK{Blue,Axis,Metric}Rec): Add CJK version - for AF_Latin{Blue,Axis,Metric}Rec. - (af_cjk_metrics_check_digits): Ditto, shared with Indic module. - (af_cjk_metrics_init_widths): Ditto. - (af_cjk_metrics_init): Take AF_CJKMetric instead of AF_LatinMetric. - (af_cjk_metrics_scale): Ditto (declaration). - (af_cjk_hints_init): Ditto (declaration). - (af_cjk_hints_apply): Ditto (declaration). - * src/autofit/afcjk.c (af_cjk_metrics_scale): Ditto (body). - (af_cjk_hints_init): Ditto (body). - (af_cjk_hints_apply): Ditto (body). - (af_cjk_metrics_init_widths): Duplicate af_latin_metrics_init_widths. - (af_cjk_metrics_check_digits): Duplicate af_latin_metrics_check_digits. - (af_cjk_metrics_init): Call CJK bluezone initializer. - (af_cjk_metrics_scale_dim): Add code to scale bluezones. - (af_cjk_hints_compute_blue_edges): New function, CJK version of - af_latin_hints_compute_blue_edges. - (af_cjk_metrics_init_blues): New function, CJK version of - af_latin_metrics_init_blues. - (af_cjk_hint_edges): Add code to align the edge stems to blue zones. - - * src/autofit/afindic.c (af_indic_metrics_init): Take AF_CJKMetric - instead of AF_LatinMetric, and initialize as af_cjk_metrics_init. - However bluezones are not initialized. - (af_indic_metrics_scale): Take AF_CJKMetric instead of AF_LatinMetric. - (af_indic_hints_init): Ditto. - (af_indic_hints_apply): Ditto. - - * docs/CHANGES: Note about CJK bluezone support. - -2011-05-06 Werner Lemberg <wl@gnu.org> - - [autofit] Remove unused struct member. - - * src/autofit/aflatin.h (AF_LatinAxis): Remove `control_overshoot'. - -2011-05-04 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Simplify. - -2011-05-01 Just Fill Bugs <mozbugbox@yahoo.com.au> - Werner Lemberg <wl@gnu.org> - - [autofit] Add more debugging functions. - - * src/autofit/afhints.c (af_glyph_hints_get_num_segments, - af_glyph_hints_get_segment_offset): New functions. - -2011-05-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Add new option `--disable-mmap' to configure script. - - * builds/unix/configure.raw: New option `--disable-mmap' - is added. It is for the developers to simulate the systems - without mmap() (like 4.3BSD, minix etc) on POSIX systems. - -2011-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Always recalculate the sfnt table checksum. - - * src/truetype/ttobjs.c (tt_get_sfnt_checksum): Recalculate - the sfnt table checksum even if non-zero value is written in - the TrueType font header. Some bad PDF generators write - wrong values. For details see examples and benchmark tests - of the latency by recalculation: - https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00091.html - https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00096.html - -2011-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Register a set of tricky fonts, NEC FA family. - - * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): - Add 8 checksum sets for NEC FA family. For the tricky fonts - without some tables (e.g. NEC FA fonts lack cvt table), - extra check is added to assure that a zero-length table in the - registry is not included in the font. - -2011-04-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Fix a bug in the sfnt table checksum getter. - - * src/truetype/ttobjs.c (tt_get_sfnt_checksum): Check the - return value of face->goto_table() correctly. - -2011-04-28 Werner Lemberg <wl@gnu.org> - - [autofit] Improve tracing messages. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues, - af_latin_align_linked_edge, af_latin_hint_edges): Do it. - -2011-04-25 Kan-Ru Chen <kanru@kanru.info> - - [truetype] Always check the checksum to identify tricky fonts. - - Because some PDF generators mangle the family name badly, - the trickyness check by the checksum should be invoked always. - For sample PDF, see - https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html - - * src/truetype/ttobjs.c (tt_check_trickyness): Even when - tt_check_trickyness_family() finds no trickyness, - tt_check_trickyness_sfnt_ids() is invoked. - -2011-04-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [autofit] Add more Indic scripts with hanging baseline. - - * src/autofit/afindic.c (af_indic_uniranges): Tibetan, Limbu, - Sundanese, Meetei Mayek, Syloti Nagri and Sharada scripts are - added. - -2011-04-21 Behdad Esfahbod <behdad@behdad.org> - - Always ignore global advance. - - This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant, - deprecated, and ignored. The new behavior is what every major user - of FreeType has been requesting. Global advance is broken in many - CJK fonts. Just ignoring it by default makes most sense. - - * src/truetype/ttdriver.c (tt_get_advances), - src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics, - tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph), - src/truetype/ttgload.h: Implement it. - - * docs/CHANGES: Updated. - -2011-04-21 rainy6144 <rainy6144@gmail.com> - - [autofit] Blur CJK stems if too many to preserve their gaps. - - When there are too many stems to preserve their gaps in the - rasterization of CJK Ideographs at a low resolution, blur the - stems instead of showing clumped stems. See - https://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html - https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html - for details. - - * src/autofit/afcjk.c (af_cjk_hint_edges): Store the position of - the previous stem by `has_last_stem' and `last_stem_pos', and skip - a stem if the current and previous stem are too near to preserve - the gap. - -2011-04-18 Werner Lemberg <wl@gnu.org> - - Integrate autofitter debugging stuff. - - * devel/ftoption.h, include/freetype/config/ftoption.h - (FT_DEBUG_AUTOFIT): New macro. - - * include/freetype/internal/fttrace.h: Add trace components for - autofitter. - - * src/autofit/aftypes.h (AF_LOG): Removed. - (_af_debug): Removed. - - * src/autofit/*: s/AF_DEBUG/FT_DEBUG_AUTOFIT/. - s/AF_LOG/FT_TRACE5/. - Define FT_COMPONENT where necessary. - -2011-04-18 Werner Lemberg <wl@gnu.org> - - Synchronize config files. - - * builds/unix/ftconfig.in: Copy missing assembler routines from - include/freetype/config/ftconfig.h. - -2011-04-13 Werner Lemberg <wl@gnu.org> - - [psaux] Fix Savannah bug #33047. - - Patch submitted by anonymous reporter. - - * src/psaux/psobjs.c (ps_table_add): Use FT_PtrDist for pointer - difference. - -2011-04-11 Kan-Ru Chen <kanru@kanru.info> - - Fix reading of signed integers from files on 64bit platforms. - - Previously, signed integers were converted to unsigned integers, but - this can fail because of sign extension. For example, 0xa344a1eb - becomes 0xffffffffa344a1eb. - - We now do the reverse which is always correct because the integer - size is the same during the cast from unsigned to signed. - - * include/freetype/internal/ftstream.h, src/base/ftstream.c - (FT_Stream_Get*): Replace with... - (FT_Stream_GetU*): Functions which read unsigned integers. - Update all macros accordingly. - - * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Updated. - -2011-04-07 Werner Lemberg <wl@gnu.org> - - Update Unicode ranges for CJK autofitter; in particular, add Hangul. - - * src/autofit/afcjk.c (af_cjk_uniranges): Update to Unicode 6.0. - -2011-04-04 Werner Lemberg <wl@gnu.org> - - Fix formatting of autofit debug dumps. - - * src/autofit/afhints.c (af_glyph_hints_dump_points, - af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Adjust - column widths. - -2011-03-30 Werner Lemberg <wl@gnu.org> - - * src/autofit/aftypes.h (AF_OutlineRec): Removed, unused. - -2011-03-24 Werner Lemberg <wl@gnu.org> - - * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 256. - This limit is given on p. 37 of Adobe Technical Note #5014. - -2011-03-23 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttpload.c (tt_face_load_loca): Fix mismatch warning. - -2011-03-20 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_open_font): Check number of TTC subfonts. - -2011-03-19 Werner Lemberg <wl@gnu.org> - - More C++ compilation fixes. - - * src/autofit/afhints.c (af_glyph_hints_dump_points, - af_glyph_hints_dump_segments, af_glyph_hints_dump_edges) - [__cplusplus]: Protect with `extern "C"'. - -2011-03-18 Werner Lemberg <wl@gnu.org> - - C++ compilation fixes. - - * src/autofit/aflatin.c (af_latin_hints_apply), src/autofit/afcjk.c - (af_cjk_hints_apply): Use cast for `dim'. - -2011-03-17 Alexei Podtelezhnikov <apodtele@gmail.com> - - A better fix for Savannah bug #32671. - - * src/smooth/ftgrays.c (gray_render_conic): Clean up code and - replace WHILE loop with a more natural DO-WHILE construct. - -2011-03-16 Werner Lemberg <wl@gnu.org>. - - * src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field. - Suggested by Graham Asher. - -2011-03-09 Werner Lemberg <wl@gnu.org> - - Make FT_Sfnt_Table_Info return the number of SFNT tables. - - * src/sfnt/sfdriver.c (sfnt_table_info): Implement it. - * include/freetype/tttables.h: Update documentation. - * docs/CHANGES: Updated. - -2011-03-07 Bram Tassyns <bramt@enfocus.be> - - [cff] Fix Savannah bug #27988. - - * src/cff/cffobjs.c (remove_style): New function. - (cff_face_init): Use it to strip off the style part of the family - name. - -2011-03-07 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2011-03-07 Alexei Podtelezhnikov <apodtele@gmail.com> - - Quick fix for Savannah bug #32671. - - This isn't the optimal solution yet, but it restores the previous - rendering quality (more or less). - - * src/smooth/ftgrays.c (gray_render_conic): Do more splitting. - -2011-03-06 Werner Lemberg <wl@gnu.org> - - Fix autohinting fallback. - - * src/base/ftobjs.c (FT_Load_Glyph): Assure that we only check TTFs, - ignoring CFF-based OTFs. - -2011-02-27 Werner Lemberg <wl@gnu.org> - - Add AF_CONFIG_OPTION_USE_WARPER to control the autofit warper. - - * devel/ftoption.h, include/freetype/config/ftoption.h - (AF_CONFIG_OPTION_USE_WARPER): New macro. - * src/autofit/aftypes.h (AF_USE_WARPER): Remove. - - * src/autofit/*: s/AF_USE_WARPER/AF_CONFIG_OPTION_USE_WARPER/. - - * src/autofit/afwarp.c [!AF_CONFIG_OPTION_USE_WARPER]: Replace dummy - variable assignment with a typedef. - -2011-02-26 Werner Lemberg <wl@gnu.org> - - [autofit] Slight simplifications. - - * src/autofit/aflatin.c (af_latin_hints_link_segments): Remove - test which always returns false. - (af_latin_hints_compute_blue_edges): Remove redundant assignment. - -2011-02-24 Werner Lemberg <wl@gnu.org> - - * docs/PROBLEMS: Mention rendering differences on different - platforms. - Suggested and worded by Jason Owen <jason.a.owen@gmail.com>. - -2011-02-24 Werner Lemberg <wl@gnu.org> - - [autofit] Comment out unused code. - - * src/autofit/aflatin.c, src/autofit/aflatin2.c - (af_latin_hints_compute_edges): Do it. - -2011-02-24 Werner Lemberg <wl@gnu.org> - - * src/autofit/afhints.h (AF_GlyphHints): Remove unused field. - -2011-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Fix an off-by-one bug in `FTC_Manager_RemoveFaceID'. - Found by <ychen1392001@yahoo.com.cn>, see detail in - - https://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html - - * src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node - buckets[cache->p + cache->mask] too. - -2011-02-19 Kevin Kofler <kevin.kofler@chello.at> - - Fall back to autohinting if a TTF/OTF doesn't contain any bytecode. - This is Savannah patch #7471. - - * src/base/ftobjs.c (FT_Load_Glyph): Implement it. - -2011-02-19 John Tytgat <John.Tytgat@esko.com> - - [cff] Fix subset prefix removal. - This is Savannah patch #7465. - - * src/cff/cffobjs.c (remove_subset_prefix): Update length after - subset prefix removal. - -2011-02-13 Bradley Grainger <bgrainger@logos.com> - - Add inline assembly version of FT_MulFix for MSVC. - - * include/freetype/config/ftconfig.h: Ported the FT_MulFix_i386 - function from GNU inline assembly syntax (see #ifdef __GNUC__ block - above) to MASM syntax for Microsoft Visual C++. - -2011-02-13 Bradley Grainger <bgrainger@logos.com> - - Add project and solution files in Visual Studio 2010 format. - - * builds/win32/.gitignore: Ignore user-specific cache files. - * builds/win32/vc2010/: Add VS2010 project & solution files, created - by upgrading builds/win32/vc2008/freetype.vcproj. - * objs/.gitignore: Ignore Visual Studio output files. - -2011-02-01 Werner Lemberg <wl@gnu.org> - - * src/autofit/afdummy.c: Include `aferrors.h'. - Problem reported by Chris Liddell <chris.liddell@artifex.com>. - -2011-02-01 Werner Lemberg <wl@gnu.org> - - [cff] Ignore unknown operators in charstrings. - Patch suggested by Miles.Lau <sunliang_liu@foxitsoftware.com>. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing - message for unknown operators and continue instead of exiting with a - syntax error. - -2011-02-01 Werner Lemberg <wl@gnu.org> - - [truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also. - - * src/truetype/ttgload.c (tt_loader_init): Handle - `FT_LOAD_PEDANTIC'. - * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep, - tt_size_init_bytecode, tt_size_ready_bytecode): New argument to - handle pedantic mode. - * src/truetype/ttobjs.h: Updated. - -2011-01-31 Werner Lemberg <wl@gnu.org> - - [truetype] Protect jump instructions against endless loops. - - * src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error - if offset is zero. - -2011-01-31 Werner Lemberg <wl@gnu.org> - - [truetype] Improve handling of invalid references. - - * src/truetype/interp.c: Set even more TT_Err_Invalid_Reference - error codes only if pedantic hinting is active. At the same time, - try to provide sane values which hopefully allow useful - continuation. Exception to this is CALL and LOOPCALL – due to - possible stack corruption it is necessary to bail out. - -2011-01-31 Werner Lemberg <wl@gnu.org> - - [truetype] Improve handling of stack underflow. - - * src/truetype/ttinterp.c (TT_RunIns, Ins_FLIPPT, Ins_DELTAP, - Ins_DELTAC): Exit with error only if `pedantic_hinting' is set. - Otherwise, try to do something sane. - -2011-01-30 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message. - -2011-01-30 LIU Sun-Liang <sunliang_liu@foxitsoftware.com> - - [truetype]: Fix behaviour of MIAP for invalid arguments. - - * src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in - case of error. - -2011-01-18 Werner Lemberg <wl@gnu.org> - - [truetype] Fix handling of MIRP instruction. - - Thanks to Greg Hitchcock who explained the issue. - - * src/truetype/ttinterp.c (Ins_MIRP): Replace a `>=' operator with - `>' since the description in the specification is incorrect. - This fixes, for example, glyph `two' in font `Helvetica Neue LT Com - 65 medium' at 15ppem. - -2011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix ARM assembly code in include/freetype/config/ftconfig.h. - - * include/freetype/config/ftconfig.h (FT_MulFix_arm): - Copy the maintained code from builds/unix/ftconfig.in. - Old GNU binutils could not accept the reduced syntax - `orr %0, %2, lsl #16'. Un-omitted syntax like RVCT, - `orr %0, %0, %2, lsl #16' is better. Reported by - Johnson Y. Yan. The bug report by Qt developers is - considered too. - - https://bugreports.qt.io/browse/QTBUG-6521 - -2011-01-15 Werner Lemberg <wl@gnu.org> - - [raster] Make bbox handling the same as with Microsoft's rasterizer. - - Right before B/W rasterizing, the bbox gets simply rounded to - integers. This fixes, for example, glyph `three' in font `Helvetica - Neue LT Com 65 Medium' at 11ppem. - - Thanks to Greg Hitchcock who explained this behaviour. - - * src/raster/ftrend1.c (ft_raster1_render): Implement it. - -2011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Copy -mcpu=* & -march=* options from CFLAGS to LDFLAGS. - - * builds/unix/configure.raw: Consider recent gcc-standard - flags to specify architecture in CFLAGS & LDFLAGS - harmonization. Requested by Savannah bug #32114, to - support multilib feature of BuildRoot SDK correctly. - -2011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix off-by-one bug in CFLAGS & LDFLAGS harmonizer. - - * builds/unix/configure.raw: Some important options that - included in CFLAGS but not in LDFLAGS are copied to - LDFLAGS, but the last option in CFLAGS was not checked. - -2011-01-13 Werner Lemberg <wl@gnu.org> - - [raster] Add undocumented drop-out rule to the other bbox side also. - - * src/raster/ftraster.c (Vertical_Sweep_Drop, - Horizontal_Sweep_Drop): Implement it. - -2011-01-13 Werner Lemberg <wl@gnu.org> - - [raster] Reduce jitter value. - - This catches a rendering problem with glyph `x' from Tahoma at - 10ppem. It seems that the increase of the precision in the change - from 2009-06-11 makes a larger jitter value unnecessary. - - * src/raster/ftraster.c (Set_High_Precision): Implement it. - -2011-01-13 Werner Lemberg <wl@gnu.org> - - [raster] Handle drop-outs at glyph borders according to Microsoft. - - If a drop-out rule would switch on a pixel outside of the glyph's - bounding box, use the right (or top) pixel instead. This is an - undocumented feature, but some fonts like `Helvetica Neue LT Com 65 - Medium' heavily rely on it. - - Thanks to Greg Hitchcock who explained this behaviour. - - * src/raster/ftraster.c (Vertical_Sweep_Drop, - Horizontal_Sweep_Drop): Implement it. - -2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Fix Savannah bug #31923, patch drafted by Harsha. - - When a node comparator changes the cached nodes during the - search of a node matching with queried properties, the - pointers obtained before the function should be updated to - prevent the dereference to freed or reallocated nodes. - To minimize the rescan of the linked list, the update is - executed when the comparator notifies the change of cached - nodes. This change depends previous change: - 38b272ffbbdaae276d636aec4ef84af407d16181 - - * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Rescan the - top node if the cached nodes are changed. - * src/cache/ftccache.c (FTC_Cache_Lookup): Ditto. - -2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Notice if a cache query induced the node list change. - - Some node comparators (comparing the cache node contents and the - properties specified by the query) can flush the cache node to - prevent the cache inflation. The change may invalidate the pointers - to the node obtained before the node comparison, so it should be - noticed to the caller. The problem caused by the cache node - changing is reported by Harsha, see Savannah bug #31923. - - * src/cache/ftccache.h (FTC_Node_CompareFunc): Add new argument - `FT_Bool* list_changed' to indicate the change of the cached nodes - to the caller. - (FTC_CACHE_LOOKUP_CMP): Watch the change of the cached nodes by - `_list_changed'. - (FTC_CACHE_TRYLOOP_END): Take new macro argument `_list_changed' - and update it when `FTC_Manager_FlushN' flushes any nodes. - - * src/cache/ftccback.h (ftc_snode_compare): Updated to fit with new - FTC_Node_CompareFunc type. - (ftc_gnode_compare): Ditto. - - * src/cache/ftcbasic.c: Include FT_INTERNAL_OBJECTS_H to use - TRUE/FALSE macros. - (ftc_basic_gnode_compare_faceid): New argument `FT_Bool* - list_changed' to indicate the change of the cache nodes (anyway, it - is always FALSE). - - * src/cache/ftccmap.c: Include FT_INTERNAL_OBJECTS_H to use - TRUE/FALSE macros. - (ftc_cmap_node_compare): New argument `FT_Bool* list_changed' to - indicate the change of the cache nodes (anyway, it is always FALSE). - (ftc_cmap_node_remove_faceid): Ditto. - - * src/cache/ftccache.c (FTC_Cache_NewNode): Pass a NULL pointer to - `FTC_CACHE_TRYLOOP_END', because the result is not needed. - (FTC_Cache_Lookup): Watch the change of the cache nodes by - `list_changed'. - (FTC_Cache_RemoveFaceID): Ditto. - - * src/cache/ftcglyph.c: Include FT_INTERNAL_OBJECTS_H to use - TRUE/FALSE macros. - (ftc_gnode_compare): New argument `FT_Bool* list_changed' to - indicate the change of the cache nodes (anyway, it is always FALSE). - (FTC_GNode_Compare): New argument `FT_Bool* list_changed' to be - passed to `ftc_gnode_compare'. - * src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto. - - * src/cache/ftcsbits.c (ftc_snode_compare): New argument `FT_Bool* - list_changed' to indicate the change of the cache nodes, anyway. It - is updated by `FTC_CACHE_TRYLOOP'. - (FTC_SNode_Compare): New argument `FT_Bool* list_changed' to be - passed to `ftc_snode_compare'. - * src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto. - -2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Fit `FTC_GNode_Compare' to `FTC_Node_CompareFunc'. - - * src/cache/ftcglyph.h (FTC_GNode_Compare): Add the 3rd - argument `FTC_Cache cache' to fit FTC_Node_CompareFunc - prototype. - * src/cache/ftcglyph.c (FTC_GNode_Compare): Ditto. Anyway, - `cache' is not used by its child `ftc_gnode_compare'. - -2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Deduplicate the code to get the top node by a hash. - - There are several duplicated code fragments getting the top node - from a cache by a given hash, like: - - idx = hash & cache->mask; - if ( idx < cache->p ) - idx = hash & ( cache->mask * 2 + 1 ); - pnode = cache->buckets + idx; - - To remove duplication, a cpp-macro to do same work - `FTC_NODE__TOP_FOR_HASH' is introduced. For non-inlined - configuration, non-`ftc_get_top_node_for_hash' is also introduced. - - * src/cache/ftccache.h (FTC_NODE__TOP_FOR_HASH): Declare - and implement inlined version. - (FTC_CACHE_LOOKUP_CMP): Use `FTC_NODE__TOP_FOR_HASH'. - * src/cache/ftccache.c (ftc_get_top_node_for_hash): Non-inlined - version. - (ftc_node_hash_unlink): Use `FTC_NODE__TOP_FOR_HASH'. - (ftc_node_hash_link): Ditto. - (FTC_Cache_Lookup): Ditto. - -2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] inline-specific functions are conditionalized. - - * src/cache/ftcglyph.c (FTC_GNode_Compare): Conditionalized for - inlined configuration. This function is a thin wrapper of - `ftc_gnode_compare' for inlined `FTC_CACHE_LOOKUP_CMP' (see - `nodecmp' argument). Under non-inlined configuration, - `ftc_gnode_compare' is invoked by `FTC_Cache_Lookup', via - `FTC_Cache->clazz.node_compare'. - - * src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto. - * src/cache/ftcsbits.c (FTC_SNode_Compare): Ditto, for - `ftc_snode_compare'. - * src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto. - -2011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Correct a type mismatch under non-inlined config. - - * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): `FTC_GCache_Lookup' - takes the node via a pointer `FTC_Node*', differently from cpp-macro - `FTC_CACHE_LOOKUP_CMP'. - -2011-01-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Update Jamfile to include Bzip2 support. - - * Jamfile: Include src/bzip2 to project. - Comments for lzw, gzip, bzip2 are changed to clarify that - they are for compressed PCF fonts, not others. - (e.g. compressed BDF fonts are not supported yet) - -2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Update Symbian project files to include Bzip2 support. - - Currently, it provides `FT_Stream_OpenBzip2' that returns - unimplemented error always, to prevent unresolved symbol - error for the applications designed for Unix systems. - - * builds/symbian/bld.inf: Include ftbzip2.h. - * builds/symbian/freetype.mmp: Include ftbzip2.c. - -2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Update classic MacOS makefiles to include Bzip2 support. - - Currently, it provides `FT_Stream_OpenBzip2' that returns - unimplemented error always, to prevent unresolved symbol - error for the applications designed for Unix systems. - - * builds/mac/FreeType.m68k_cfm.make.txt: Include ftbzip2.c.o. - * builds/mac/FreeType.m68k_far.make.txt: Ditto. - * builds/mac/FreeType.ppc_carbon.make.txt: Include ftbzip2.c.x. - * builds/mac/FreeType.ppc_classic.make.txt: Ditto. - -2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Update Amiga makefiles to include Bzip2 support. - - Currently, it provides `FT_Stream_OpenBzip2' that returns - unimplemented error always, to prevent unresolved symbol - error for the applications designed for Unix systems. - - * builds/amiga/makefile: Include bzip2.ppc.o built from ftbzip2.c. - * builds/amiga/makefile.os4: Include bzip2.o built from ftbzip2.c. - * builds/amiga/smakefile: Ditto. - -2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Update pkg-config tools to reflect Bzip2 support. - - * builds/unix/freetype-config.in: Include `-lbz2' to - --libs output, if built with Bzip2 support. - * builds/unix/freetype2.in: Ditto. - -2011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * builds/unix/configure.raw: Remove `SYSTEM_BZ2LIB' macro. - - SYSTEM_ZLIB is used to switch the builtin zlib source - or system zlib source out of FreeType2. But ftbzip2 - module has no builtin bzip2 library and always requires - system bzip2 library. Thus SYSTEM_BZ2LIB is always yes, - it is not used. - -2011-01-03 Werner Lemberg <wl@gnu.org> - - */rules.mk: Handle `*pic.c' files. - -2010-12-31 Werner Lemberg <wl@gnu.org> - - * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 64. - Problem reported by Tom Bishop <wenlin@wenlin.com>. - -2010-12-31 Werner Lemberg <wl@gnu.org> - - Improve bzip2 support. - - * include/freetype/ftmoderr.h: Add bzip2. - - * docs/INSTALL.ANY, docs/CHANGES: Updated. - - * src/pcf/README: Updated. - * include/freetype/internal/pcftypes.h: Obsolete, removed. - -2010-12-31 Joel Klinghed <the_jk@yahoo.com> - - Add bzip2 compression support to handle *.pcf.bz2 files. - - * builds/unix/configure.raw: Test for libbz2 library. - - * devel/ftoption.h, include/freetype/config/ftoption.h - (FT_CONFIG_OPTION_USE_BZIP2): Define. - * include/freetype/config/ftheader.h (FT_BZIP2_H): Define. - - * include/freetype/ftbzip2.h: New file. - - * src/bzip2/*: New files. - - * src/pcf/pcf.h: s/gzip_/comp_/. - * src/pcf/pcfdrivr.c: Include FT_BZIP2_H. - s/gzip_/comp_/. - (PCF_Face_Init): Handle bzip2 compressed files. - - * docs/formats.txt, modules.cfg: Updated. - -2010-12-25 Harsha <mm.harsha@gmail.com> - - Apply Savannah patch #7422. - - If we encounter a space in a string then the sbit buffer is NULL, - height and width are 0s. So the check in ftc_snode_compare will - always pass for spaces (comparison with 255). Here the comments - above the condition are proper but the implementation is not. When - we create an snode I think it is the proper way to initialize the - width to 255 and then put a check for being equal to 255 in snode - compare function. - - * src/cache/ftcsbits.c (FTC_SNode_New): Initialize sbit widths with - value 255. - (ftc_snode_compare): Fix condition. - -2010-12-13 Werner Lemberg <wl@gnu.org> - - Fix parameter handling of `FT_Set_Renderer'. - Reported by Kirill Tishin <siege@bk.ru>. - - * src/base/ftobjs.c (FT_Set_Renderer): Increment `parameters'. - -2010-12-09 Werner Lemberg <wl@gnu.org> - - [cff] Allow `hlineto' and `vlineto' without arguments. - - We simply ignore such instructions. This is invalid, but it doesn't - harm; and indeed, there exist such subsetted fonts in PDFs. - - Reported by Albert Astals Cid <aacid@kde.org>. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - [cff_op_hlineto]: Ignore instruction if there aren't any arguments - on the stack. - -2010-11-28 Werner Lemberg <wl@gnu.org> - - * Version 2.4.4 released. - ========================= - - - Tag sources with `VER-2-4-4'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.4 - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.3/2.4.4/, s/243/244/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. - - * builds/unix/configure.raw (version_info): Set to 12:2:6. - -2010-11-28 Alexei Podtelezhnikov <apodtele@gmail.com> - - [ftsmooth]: Minor code simplification. - - * src/smooth/ftgrays (gray_render_cubic): Do only one comparison - instead of two. - -2010-11-26 Johnson Y. Yan <yinsen_yan@foxitsoftware.com> - - [truetype] Better multi-threading support. - - * src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone - references. - -2010-11-23 John Tytgat <John.Tytgat@esko.com> - - * src/psaux/t1decode.c (t1_decoder_parse_charstring): Expand - start_point, check_points, add_point, add_point1, close_contour - macros. - Remove add_contour macro. - Return error code from t1_builder_start_point and - t1_builder_check_points when there was one (instead of returning 0). - -2010-11-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Identify the tricky fonts by cvt/fpgm/prep checksums. - Some Latin TrueType fonts are still expected to be unhinted. - Fix Savannah bug #31645. - - * src/truetype/ttobjs.c (tt_check_trickyness): Divided to... - (tt_check_trickyness_family): this checking family name, and - (tt_check_trickyness_sfnt_ids): this checking cvt/fpgm/prep. - (tt_get_sfnt_checksum): Function to retrieve the sfnt checksum - for specified subtable even if cleared by lazy PDF generators. - (tt_synth_sfnt_checksum): Function to calculate the checksum. - -2010-11-18 Werner Lemberg <wl@gnu.org> - - [truetype] Fix `loca' handling for inconsistent number of glyphs. - Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>. - - * src/truetype/ttpload.c (tt_face_load_loca): While sanitizing, - handle case where `loca' is the last table in the font. - -2010-11-18 Werner Lemberg <wl@gnu.org> - - [sfnt] Ignore all errors while loading `OS/2' table. - Suggested by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>. - - * src/sfnt/sfobjs.c (sfnt_load_face): Do it. - -2010-11-18 Johnson Y. Yan <yinsen_yan@foxitsoftware.com> - - [type1] Fix matrix normalization. - - * src/type1/t1load.c (parse_font_matrix): Handle sign of scaling - factor. - -2010-11-18 Werner Lemberg <wl@gnu.org> - - [type1] Improve guard against malformed data. - Based on a patch submitted by Johnson Y. Yan - <yinsen_yan@foxitsoftware.com> - - * src/type1/t1load.c (read_binary_data): Check `size'. - -2010-11-17 Werner Lemberg <wl@gnu.org> - - [sfnt] While tracing, output table checksums also. - - * src/sfnt/ttload.c (tt_face_load_font_dir): Do it. - -2010-11-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [UVS] Fix `find_variant_selector_charmap', Savannah bug #31545. - - Since 2010-07-04, `find_variant_selector_charmap' returns - the first cmap subtable always under rogue-compatible - configuration, it causes NULL pointer dereference and - make UVS-related functions crashed. - - * src/base/ftobjs.c (Fix find_variant_selector_charmap): - Returns UVS cmap correctly. - -2010-11-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - [ftsmooth] Improve rendering. - - * src/smooth/ftsmooth.c (gray_render_conic): Since version 2.4.3, - cubic deviations have been estimated _after_ UPSCALE, whereas - conic ones have been evaluated _before_ UPSCALE, which produces - inferior rendering results. Fix this. - Partially undo change from 2010-10-15 by using ONE_PIXEL/4; this has - been tested with demo images sent to the mailing list. See - - https://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html - - and later mails in this thread. - -2010-10-28 Werner Lemberg <wl@gnu.org> - - [ftraster] Minor fixes. - - Reported by Tom Bishop <wenlin@wenlin.com>. - - * src/raster/ftraster.c (ULong): Remove unused typedef. - (TWorker): Remove unused variable `precision_mask'. - -2010-10-28 Werner Lemberg <wl@gnu.org> - - [ftraster] Fix rendering. - - Problem reported by Tom Bishop <wenlin@wenlin.com>; see - thread starting with - - https://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html - - * src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv - since the involved multiplication exceeds 32 bits. - -2010-10-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Revert a change of `_idx' type in `FTC_CACHE_LOOKUP_CMP'. - - * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Revert - the type of `_idx' from FT_PtrDist (by previous change) - to original FT_UFast, to match with FT_CacheRec. - -2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Change the hash types to FT_PtrDist. - - On LLP64 platforms (e.g. Win64), FT_ULong (32-bit) - variables are inappropriate to calculate hash values - from the memory address (64-bit). The hash variables - are extended from FT_ULong to FT_PtrDist and new - hashing macro functions are introduced. The hash - values on 16-bit memory platforms are changed, but - ILP32 and LP64 are not changed. The hash value in - the cache subsystem is not reverted to the memory - address, so using signed type FT_PtrDist is safe. - - * src/cache/ftccache.h (_FTC_FACE_ID_HASH): New hash - function to replace `FTC_FACE_ID_HASH' for portability. - * src/cache/ftcmanag.h (FTC_SCALER_HASH): Replace - `FTC_FACE_ID_HASH' by `_FTC_FACE_ID_HASH'. - * src/cache/ftccmap.c (FTC_CMAP_HASH): Ditto. - - * src/cache/ftccache.h (FTC_NodeRec): The type of the - member `hash' is changed from FT_UInt32 to FT_PtrDist. - - * src/cache/ftccache.h (FTC_Cache_Lookup): The type of the - argument `hash' is changed from FT_UInt32 to FT_PtrDist. - (FTC_Cache_NewNode): Ditto. - * src/cache/ftccache.c (ftc_cache_add): Ditto. - (FTC_Cache_Lookup): Ditto. (FTC_Cache_NewNode): Ditto. - * src/cache/ftcglyph.h (FTC_GCache_Lookup): Ditto. - * src/cache/ftcglyph.c (FTC_GCache_Lookup): Ditto. - - * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): The type - of the internal variable `hash' is changed to FT_PtrDist - from FT_UInt32. (FTC_ImageCache_LookupScaler): Ditto. - (FTC_SBitCache_Lookup): Ditto. - (FTC_SBitCache_LookupScaler): Ditto. - * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto. - * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Ditto. - Also the type of the internal variable `_idx' is changed to - FT_PtrDist from FT_UFast for better pointer calculation. - -2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Hide internal macros incompatible with LLP64. - - `FT_POINTER_TO_ULONG', `FTC_FACE_ID_HASH', and - `FTC_IMAGE_TYPE_HASH' are enclosed by - FT_CONFIG_OPTION_OLD_INTERNALS and hidden from - normal clients. - - For the history of these macros, see the investigation: - https://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html - -2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Change the type of `FT_MEM_VAL' from FT_ULong to FT_PtrDist. - - On LLP64 platforms (e.g. Win64), unsigned long (32-bit) - cannot cover the memory address (64-bit). `FT_MEM_VAL' is - used for hashing only and not dereferred, so using signed - type FT_PtrDist is safe. - - * src/base/ftdbgmem.c (FT_MEM_VAL): Change the type of the - return value from FT_ULong to FT_PtrDist. - (ft_mem_table_resize): The type of hash is changed to - FT_PtrDist. (ft_mem_table_get_nodep): Ditto. - -2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Replace "%lx" for memory address by "%p", LLP64 platforms. - - On LLP64 platforms (e.g. Win64), long (32-bit) cannot cover - the memory address (64-bit). Also the casts from the pointer - type to long int should be removed to preserve the address - correctly. - - * src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p". - (End_Profile) Ditto. - * src/truetype/ttinterp.c (Init_Context): Ditto. - -2010-10-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - Fix thinko in spline flattening. - - FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL. - - * src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and - replace it everywhere with ONE_PIXEL/8. - -2010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [raccess] Skip unrequired resource access rules by Darwin VFS. - - When a resource fork access rule by Darwin VFS could open the - resource fork but no font is found in it, the rest of rules - by Darwin VFS are skipped. It reduces the warnings of the - deprecated resource fork access method by recent Darwin kernel. - Fix MacPorts ticket #18859: - https://trac.macports.org/ticket/18859 - - * src/base/ftobjs.c (load_face_in_embedded_rfork): - When `FT_Stream_New' returns FT_Err_Cannot_Open_Stream, it - means that the file is possible to be `fopen'-ed but zero-sized. - Also there is a case that the resource fork is not zero-sized, - but no supported font exists in it. If a rule by Darwin VFS - falls into such cases, there is no need to try other Darwin VFS - rules anymore. Such cases are marked by vfs_rfork_has_no_font. - If it is TRUE, the Darwin VFS rules are skipped. - -2010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [raccess] Grouping resource access rules based on Darwin VFS. - - MacOS X/Darwin kernel supports a few tricky methods to access - a resource fork via ANSI C or POSIX interface. Current resource - fork accessor tries all possible methods to support all kernels. - But if a method could open a resource fork but no font is found, - there is no need to try other methods older than tested method. - To determine whether the rule index is for Darwin VFS, a local - function `ftrfork.c::raccess_rule_by_darwin_vfs' is introduced. - To use this function in ftobjs.c etc but it should be inlined, - it is exposed by ftbase.h. - - * src/base/ftrfork.c (FT_RFork_Rule): New enum type to identify - the rules to access the resource fork. - (raccess_guess_rec): New structure to bind the rule function and - rule enum type. - (FT_Raccess_Guess): The list of the rule functions is replaced by - (raccess_guess_table): This. This is exposed to be used by other - intra module functions. - (raccess_rule_by_darwin_vfs): A function to return a boolean - if the rule specified by the rule index is based on Darwin VFS. - -2010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Prevent to open a FT_Stream for zero-sized file on non-Unix. - - builds/unix/ftsystem.c prevents to open an useless stream from - zero-sized file and returns FT_Err_Cannot_Open_Stream, but the - stream drivers for ANSI C, Amiga and VMS return useless streams. - For cross-platform consistency, all stream drivers should act - same. - - * src/base/ftsystem.c (FT_Stream_Open): If the size of the opened - file is zero, FT_Err_Cannot_Open_Stream is returned. - * builds/amiga/src/base/ftsystem.c (FT_Stream_Open): Ditto. - * src/vms/ftsystem.c (FT_Stream_Open): Ditto. - -2010-10-12 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #31310. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against - invalid `runcnt' values. - -2010-10-08 Chris Liddell <chris.liddell@artifex.com> - - [sfnt] Fix Savannah bug #31275. - - * src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H. - -2010-10-06 Werner Lemberg <wl@gnu.org> - - [truetype] Improve error handling of `SHZ' bytecode instruction. - Problem reported by Chris Evans <scarybeasts@gmail.com>. - - * src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'. - -2010-10-05 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #31253. - Patch submitted by an anonymous reporter. - - * configure: Use `awk' instead of `sed' to manipulate output of `ls - -id'. - -2010-10-03 Werner Lemberg <wl@gnu.org> - - * Version 2.4.3 released. - ========================= - - - Tag sources with `VER-2-4-3'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.3 - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.2/2.4.3/, s/242/243/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. - - * builds/unix/configure.raw (version_info): Set to 12:1:6. - -2010-10-03 Werner Lemberg <wl@gnu.org> - - Avoid `configure' issues with symbolic links. - Based on a patch from Alexander Stohr <Alexander.Stohr@gmx.de>. - - * configure: Compare directories using `ls -id'. - Check existence of `reference' subdirectory before creating it. - -2010-10-02 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #31088 (sort of). - - * src/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64 - function entries. - -2010-10-02 Werner Lemberg <wl@gnu.org> - - [smooth] Fix splitting of cubics for negative values. - - Reported by Róbert Márki <gsmiko@gmail.com>; see - https://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html. - - * src/smooth/ftgrays.c (gray_render_cubic): Fix thinko. - -2010-10-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Fix Savannah bug #31040. - - * src/truetype/ttinterp.c (free_buffer_in_size): Remove. - (TT_RunIns): Updated. - -2010-09-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [sfnt] Make error message filling NULL names less verbose. - - * src/sfnt/ttpost.c (load_format_20): Showing 1 summary message - when we fill `post' names by NULL, instead of per-entry message. - -2010-09-20 Graham Asher <graham.asher@btinternet.com> - David Bevan <david.bevan@pb.com> - - [smooth] Fix and improve spline flattening. - - This fixes the flattening of cubic, S-shaped curves and speeds up - the handling of both the conic and cubic arcs. - - See the discussions on the freetype-devel mailing list in late - August and September 2010 for details. - - * src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): New macro. - (TWorker): Remove `conic_level' and `cubic_level' elements. - (gray_render_conic): Simplify algorithm. - (gray_render_cubic): New algorithm; details are given in the code - comments. - (gray_convert_glyph): Remove heuristics. - -2010-09-19 Werner Lemberg <wl@gnu.org> - - Minor fixes. - - * src/cff/cffload.c (cff_charset_compute_cids): `charset->sids[i]' - is `FT_UShort'. - (cff_index_access_element): Don't use additions in comparison. - * src/sfnt/ttpost.c (load_format_20): Make `post_limit' of type - `FT_Long'. - Don't use additions in comparison. - Improve tracing messages. - (load_format_25, load_post_names): Make `post_limit' of type - `FT_Long'. - -2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cff] Truncate the element length at the end of the stream. - See Savannah bug #30975. - - * src/cff/cffload.c (cff_index_access_element): `off2', the offset - to the next element is truncated at the end of the stream to prevent - invalid I/O. As `off1', the offset to the requested element has - been checked by `FT_STREAM_SEEK', `off2' should be checked - similarly. - -2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cff] Ignore CID > 0xFFFFU. - See Savannah bug #30975. - - * src/cff/cffload.c (cff_charset_compute_cids): Ignore CID if - greater than 0xFFFFU. CFF font spec does not mention maximum CID in - the font, but PostScript and PDF spec define that maximum CID is - 0xFFFFU. - -2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cff] Make trace message in` cff_charset_load' verbose. - See Savannah bug #30975. - - * src/cff/cffload.c (cff_charset_load): Report the original `nleft' - and truncated `nleft'. - -2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cff] Correct `max_cid' from CID array length to max CID. - See Savannah bug #30975. - - * src/cff/cffload.c (cff_charset_compute_cids): Don't increment - max_cid after detecting max CID. The array CFF_Charset->cids is - allocated by max_cid + 1. - (cff_charset_cid_to_gindex): Permit CID is less than or equal to - CFF_Charset->max_cid. - * src/cff/cffobjs.c (cff_face_init): FT_Face->num_glyphs is - calculated as CFF_Charset->max_cid + 1. - -2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Sanitize the broken offsets in `loca'. - See Savannah bug #31040. - - * src/truetype/ttpload.c (tt_face_get_location): If `pos1', the - offset to the requested entry in `glyf' exceeds the end of the - table, return offset=0, length=0. If `pos2', the offset to the next - entry in `glyf' exceeds the end of the table, truncate the entry - length at the end of `glyf' table. - -2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [sfnt] Prevent overrunning in `post' table parser. - See Savannah bug #31040. - - * src/sfnt/ttpost.c (load_post_names): Get the length of `post' - table and pass the limit of `post' table to `load_format_20' and - `load_format_25'. - (load_format_20): Stop the parsing when we reached at the limit of - `post' table. If more glyph names are required, they are filled by - NULL names. - -2010-09-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Don't duplicate size->twilight structure to be freed. - See Savannah bug #31040 for detail. - - * src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate - FT_GlyphZoneRec size->twilight to be freed. If duplicated, - `FT_FREE' erases the duplicated pointers only and leave original - pointers. They can cause the double-free crash when the burst - errors occur in TrueType interpreter and `free_buffer_in_size' is - invoked repeatedly. - -2010-09-15 Werner Lemberg <wl@gnu.org> - - Make bytecode debugging with FontForge work again. - - * src/truetype/ttinterp.c (TT_RunIns): Don't call - `free_buffer_in_size' in case of error if a debugger is active. - -2010-09-14 Werner Lemberg <wl@gnu.org> - - Improve tracing messages. - - * src/truetype/ttinterp.c (TT_RunIns): Improve wording of tracing - message. - * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Add - tracing message. - * src/truetype/ttgload.c (tt_loader_init): Add tracing message. - * src/cache/ftcsbits.c (ftc_snode_load): Emit tracing message if - glyph doesn't fit into a small bitmap container. - -2010-09-13 Werner Lemberg <wl@gnu.org> - - Fix minor issues reported by <muktha.narayan@wipro.com>. - - * src/autofit/aflatin.c (af_latin_compute_stem_width): Remove - redundant conditional check. - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Ditto. - * src/cff/cffload.c (cff_encoding_load): Remove conditional check - which always evaluates to `true'. - * src/pshinter/pshalgo.c (ps_glyph_interpolate_strong_points): - Ditto. - * src/truetype/ttinterp.c (Ins_IUP): Ditto. - * src/cid/cidgload.c (cid_slot_load_glyph): Don't check for NULL if - value is already dereferenced. - * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix check of `face'. - -2010-08-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Ignore the environmental setting of LIBTOOL. - Patch is suggested by Adrian Bunk, to prevent unexpected - reflection of environmental LIBTOOL. See: - https://savannah.nongnu.org/patch/?7290 - - * builds/unix/unix-cc.in: LIBTOOL is unconditionally set to - $(FT_LIBTOOL_DIR)/libtool. FT_LIBTOOL_DIR is set to $(BUILD_DIR) - by default. - * configure: When configured for the building out of source tee, - FT_LIBTOOL_DIR is set to $(OBJ_DIR). - -2010-08-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Decrease the trace level catching the interpreter error. - - * src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level - showing the error when the interpreter returns with an error, - from` FT_TRACE7' to `FT_TRACE1'. - -2010-08-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Prevent bytecode reuse after the interpretation error. - - * src/truetype/ttinterp.c (free_buffer_in_size): New function to - free the buffer allocated during the interpretation of this glyph. - (TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if - an error occurs in the bytecode interpretation. The interpretation - of invalid bytecode may break the function definitions and referring - them in later interpretation is danger. By unsetting these flags, - `fpgm' and `prep' tables are executed again in next interpretation. - - This fixes Savannah bug #30798, reported by Robert Święcki. - -2010-08-29 Werner Lemberg <wl@gnu.org> - - [ftraster] Pacify compiler. - - * src/raster/ftraster.c (ft_black_new) [_STANDALONE_]: `memory' is - not used. - -2010-08-29 Werner Lemberg <wl@gnu.org> - - [cff] Allow SIDs >= 65000. - - * src/cff/cffload.c (cff_charset_load): Fix change from 2009-03-20: - The threshold for SIDs is not applicable here. I misinterpreted the - `SID values 65000 and above are available for implementation use' - sentence in the CFF specification. - - Problem reported by Ivan Ninčić <inincic@pdftron.com>. - -2010-08-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Force hinting when the font lacks its familyname. - - In Type42 or Type11 font embedded in PostScript & PDF, TrueType sfnt - stream may lack `name' table because they are not required. Hinting - for nameless fonts is safer for PDFs including embedded Chinese - fonts. Written by David Bevan, see: - - https://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html - https://lists.freedesktop.org/archives/poppler/2010-August/006310.html - - * src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by - nameless font is given, TRUE is returned to enable hinting. - -2010-08-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Register yet another tricky TrueType font. - - * src/truetype/ttobjs.c (tt_check_trickyness): Add `HuaTianKaiTi?', - a Kaishu typeface paired with `HuaTianSongTi?' by Huatian - Information Industry. - -2010-08-17 Teijo Kinnunen <Teijo.Kinnunen@nuance.com> - - [cache] Fix Savannah bug #30788. - - * src/cache/ftccache.c (FTC_Cache_Clear): Check `cache->buckets' for - NULL too. - -2010-08-10 Werner Lemberg <wl@gnu.org> - - Try to fix Savannah bug #30717 (and probably #30719 too). - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another - overflow test for `width' and `height'. - -2010-08-06 Werner Lemberg <wl@gnu.org> - - * Version 2.4.2 released. - ========================= - - - Tag sources with `VER-2-4-2'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.2 - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.1/2.4.2/, s/241/242/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. - - * builds/unix/configure.raw (version_info): Set to 12:0:6. - -2010-08-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix Savannah bug #30648. - - * src/base/ftobjs.c (FT_Done_Library): Specify the order of font - drivers during the face closing process. Type42 faces should be - closed before TrueType faces, because a Type42 face refers to - another internal TrueType face which is created from sfnt[] array on - the memory. - -2010-08-06 Yuriy Kaminskiy <yumkam@mail.ru> - - [raster] Fix valgrind warning. - - * src/raster/ftraster.c (Decompose_Curve) <default>: Access point[0] - only if we don't hit `limit'. - -2010-08-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix Savannah bug #30658. - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Check that the total - length of collected POST segments does not overrun the allocated - buffer. - -2010-08-06 Yuriy Kaminskiy <yumkam@mail.ru> - - Fix conditional usage of FT_MulFix_i386. - With -ansi flag, gcc does not define `i386', only `__i386__'. - - * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: - s/i386/__i386__/. - -2010-08-05 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #30657. - - * src/truetype/ttinterp.c (BOUNDSL): New macro. - Change `BOUNDS' to `BOUNDSL' where appropriate. - - * src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of - `cvtSize'. - -2010-08-05 Werner Lemberg <wl@gnu.org> - - [type42] Fix Savannah bug #30656. - - * src/type42/t42parse.c (t42_parse_sfnts): Protect against negative - string_size. - Fix comparison. - -2010-08-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cff] Don't use any values in decoder after parsing error. - - * src/cff/cffgload.c (cff_slot_load): Skip the evaluations - of the values in decoder, if `cff_decoder_parse_charstrings' - returns any error. - -2010-08-04 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #30644. - - * src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison. - -2010-08-04 Werner Lemberg <wl@gnu.org> - - `make devel' fails if FT_CONFIG_OPTION_OLD_INTERNALS is set. - - * devel/ftoption.h: Synchronize with - include/freetype/config/ftoption.h. - -2010-08-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cff] Improve stack overflow test. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Check stack - after execution of operations too. - -2010-07-18 Werner Lemberg <wl@gnu.org> - - Add reference counters and to FT_Library and FT_Face objects. - - * include/freetype/freetype.h (FT_Reference_Face): New function. - * include/freetype/ftmodapi.h (FT_Reference_Library): New function. - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec, - FT_LibraryRec): New field `refcount'. - - * src/base/ftobjs.c (FT_Open_Face, FT_New_Library): Handle - `refcount'. - (FT_Reference_Face, FT_Reference_Library): Implement new functions. - (FT_Done_Face, FT_Done_Library): Handle `refcount'. - - * docs/CHANGES: Updated. - -2010-07-18 Werner Lemberg <wl@gnu.org> - - * Version 2.4.1 released. - ========================= - - - Tag sources with `VER-2-4-1'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.1. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.0/2.4.1/, s/240/241/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. - - * builds/unix/configure.raw (version_info): Set to 11:1:5. - -2010-07-17 Werner Lemberg <wl@gnu.org> - - [cff] Final try to fix `hintmask' and `cntrmask' limit check. - - Problem reported by Tobias Wolf <towolf@gmail.com>. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_hintmask>: Sigh. I'm apparently too silly to fix this - correctly in less than three tries. - -2010-07-12 Werner Lemberg <wl@gnu.org> - - * Version 2.4.0 released. - ========================= - - - Tag sources with `VER-2-4-0'. - - * docs/CHANGES: Updated. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.4.0. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.3.12/2.4.0/, s/2312/240/. - - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 4. - (FREETYPE_PATCH): Set to 0. - - * builds/unix/configure.raw (version_info): Set to 11:0:5. - -2010-07-12 Werner Lemberg <wl@gnu.org> - - Remove C++ warnings. - - */*: Initialize pointers where necessary to make g++ happy. - -2010-07-12 malc <av1474@comtv.ru> - Richard Henderson <rth@redhat.com> - - Fix type-punning issues with C++. - - * include/freetype/internal/ftmemory.h (FT_ASSIGNP) [__cplusplus]: - Emulate a `typeof' operator with an inline template which uses - `static_cast'. - -2010-07-11 Werner Lemberg <wl@gnu.org> - - Fix C++ compilation issue. - - * src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Fix - type of `dot' variable. - -2010-07-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix another case reported in Savannah bug #30373. - Permit a face for Type1, Type42 and CFF without charmap, - patch by Tor Andersson. - - * src/type1/t1objs.c (T1_Face_Init): Reset the error if it - is FT_Err_No_Unicode_Glyph_Name. - * src/type42/t42objs.c (T42_Face_Init): Ditto. - * src/cff/cffobjs.c (cff_face_init): Ditto. - -2010-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Use defined macros to set {platform,encoding}_id. - - * src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to - set charmap.{platform,encoding}_id. - * src/pcf/pcfdrivr.c: Ditto. - * src/winfonts/winfnt.c: Ditto. - * src/type1/t1objs.c: Ditto. - * src/type42/t42objs.c: Ditto. - * src/cff/cffobjs.c: Ditto. - * src/pfr/pfrobjs.c: Ditto. - -2010-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix Savannah bug #30373. - Too serious check of errors by `FT_CMap_New' since 2010-07-04 - is fixed. Reported by Tor Andersson. - - * include/freetype/fterrdef.h - (PSnames_Err_No_Unicode_Glyph_Name): New error code to - indicate the Unicode charmap synthesis failed because - no Unicode glyph name is found. - - * src/psnames/psmodule.c (ps_unicodes_init): Return - PSnames_Err_No_Unicode_Glyph_Name when no Unicode glyph name - is found in the font. - * src/cff/cffcmap.c (cff_cmap_unicode_init): Return - CFF_Err_No_Unicode_Glyph_Name when no SID is available. - - * src/type1/t1objs.c (T1_Face_Init): Proceed if `FT_CMap_New' - is failed by the lack of Unicode glyph name. - * src/type42/t42objs.c (T42_Face_Init): Ditto. - * src/cff/cffobjs.c (cff_face_init): Ditto. - -2010-07-09 Ken Sharp <ken.sharp@artifex.com> - - Make ftraster.c compile in stand-alone mode with MSVC compiler. - - * src/raster/ftmisc.h (FT_Int64) [_WIN32, _WIN64]: Fix typedef - since there is no `inttypes.h' for MSVC. - -2010-07-08 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #30361. - - * src/truetype/ttinterp.c (Ins_IUP): Fix bounds check. - -2010-07-06 Werner Lemberg <wl@gnu.org> - - Pacify compiler. - - * src/cff/cffload.c (cff_index_get_pointers): Initialize - `new_bytes'. - -2010-07-05 Eugene A. Shatokhin <spectre@ispras.ru> - - Fix Savannah bug #27648. - - * src/base/ftobjs.c (ft_remove_renderer, FT_Add_Module): Call - `raster_done' only if we have an outline glyph format. - -2010-07-05 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #30030. - - * builds/win32/*/freetype.vcproj: Add ftxf86.c. - -2010-07-05 Werner Lemberg <wl@gnu.org> - - [cff] Next try to fix `hintmask' and `cntrmask' limit check. - - Problem reported by malc <av1474@comtv.ru>. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_hintmask>: It is possible that there is just a single byte - after the `hintmask' or `cntrmask', e.g., a `return' instruction. - -2010-07-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Restrict the number of the charmaps in a rogue-compatible mode. - Fix for Savannah bug #30059. - - * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Replace `16' the - minimum character code passed by a legacy rogue client by... - * include/freetype/config/ftoption.h (FT_MAX_CHARMAP_CACHEABLE): - This. It is undefined when FT_CONFIG_OPTION_OLD_INTERNALS is - undefined (thus the rogue client compatibility is not required). - - * src/cff/cffobjs.c (cff_face_init): Abort the automatic - selection or synthesis of Unicode cmap subtable when the charmap - index exceeds FT_MAX_CHARMAP_CACHEABLE. - * src/sfnt/ttcmap.c (tt_face_build_cmaps): Issue error message - when the charmap index exceeds FT_MAX_CHARMAP_CACHEABLE. - - * src/base/ftobjs.c (find_unicode_charmap): When Unicode charmap - is found after FT_MAX_CHARMAP_CACHEABLE, ignore it and search - earlier one. - (find_variant_selector_charmap): When UVS charmap is found after - FT_MAX_CHARMAP_CACHEABLE, ignore it and search earlier one. - (FT_Select_Charmap): When a charmap matching with requested - encoding but after FT_MAX_CHARMAP_CACHEABLE, ignore and search - earlier one. - (FT_Set_Charmap): When a charmap matching with requested - charmap but after FT_MAX_CHARMAP_CACHEABLE, ignore and search - earlier one. - (FT_Get_Charmap_Index): When a requested charmap is found - after FT_MAX_CHARMAP_CACHEABLE, return the inverted charmap - index. - -2010-07-04 Werner Lemberg <wl@gnu.org> - - TrueType hinting is no longer patented. - - * include/freetype/config/ftoption.h, devel/ftoption.h - (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define. - (TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine. - - * docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated. - * docs/TRUETYPE, docs/PATENTS: Removed. - -2010-07-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Check error value by `FT_CMap_New'. - - * src/cff/cffobjs.c (cff_face_init): Check error value by - `FT_CMap_New'. - * src/pfr/pfrobjs.c (pfr_face_init): Ditto. - * src/type1/t1objs.c (T1_Face_Init): Ditto. - * src/type42/t42objs.c (T42_Face_Init): Ditto. - -2010-07-03 Werner Lemberg <wl@gnu.org> - - Make ftgrays.c compile stand-alone again. - - * src/smooth/ftgrays.c [_STANDALONE_]: Include `stddef.h'. - (FT_INT_MAX, FT_PtrDist)[_STANDALONE_]: Define. - -2010-07-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Additional fix for Savannah bug #30306. - - * src/base/ftobjs.c (Mac_Read_POST_Resource): If the type of the - POST fragment is 0, the segment is completely ignored. The declared - length of the segment is not cared at all. According to Adobe - Technical Note 5040, type 0 segment is a comment only and should not - be loaded for the interpreter. Reported by Robert Święcki. - -2010-07-01 Werner Lemberg <wl@gnu.org> - - [truetype] Protect against code range underflow. - - * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow - negative IP values. - -2010-07-01 Werner Lemberg <wl@gnu.org> - - [truetype] Add rudimentary tracing for bytecode instructions. - - * src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New - array. - (TT_RunIns): Trace opcodes. - -2010-06-30 Werner Lemberg <wl@gnu.org> - - [smooth] Fix Savannah bug #30263. - - * src/smooth/ftgrays.c (gray_render_span): Use cast to `unsigned - int' to avoid integer overflow. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use smaller - threshold values for `width' and `height'. This is not directly - related to the bug fix but makes sense anyway. - -2010-07-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Initial fix for Savannah bug #30306. - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Check `rlen', the - length of fragment declared in the POST fragment header, and prevent - an underflow in length calculation. Some fonts set the length to - zero in spite of the existence of a following 16bit `type'. - Reported by Robert Święcki. - -2010-07-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Additional fix for Savannah bug #30248 and #30249. - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Check the buffer size - during gathering PFB fragments embedded in LaserWriter PS font for - Macintosh. Reported by Robert Święcki. - -2010-06-30 Alexei Podtelezhnikov <apodtele@gmail.com> - - Minor optimizations by avoiding divisions. - - * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): - Replace divisions with multiplication in comparisons. - -2010-06-29 Werner Lemberg <wl@gnu.org> - - Fix minor tracing issues. - - * src/cff/cffgload.c, src/truetype/ttgload.c: Adjust tracing levels. - -2010-06-27 Werner Lemberg <wl@gnu.org> - - [cff] Really fix `hintmask' and `cntrmask' limit check. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_hintmask>: Fix thinko and handle tracing also. - -2010-06-27 Werner Lemberg <wl@gnu.org> - - Fix valgrind warning. - - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Initialize - `result' array. - -2010-06-27 Werner Lemberg <wl@gnu.org> - - [cff] Fix memory leak. - - * src/cff/cffgload.c (cff_operator_seac): Free charstrings even in - case of errors. - -2010-06-27 Werner Lemberg <wl@gnu.org> - - [cff] Protect against invalid `hintmask' and `cntrmask' operators. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_hintmask>: Ensure that we don't exceed `limit' while parsing - the bit masks of the `hintmask' and `cntrmask' operators. - -2010-06-26 Werner Lemberg <wl@gnu.org> - - Fix PFR change 2010-06-24. - - * src/pfr/pfrgload.c (pfr_glyph_load_simple): Really protect against - invalid indices. - -2010-06-26 Werner Lemberg <wl@gnu.org> - - Improve PFR tracing messages. - - * src/pfr/pfrgload.c (pfr_glyph_load_rec): Emit tracing messages for - simple and compound glyph offsets. - -2010-06-26 Werner Lemberg <wl@gnu.org> - - Fix last PFR change. - - * src/pfr/pfrobjs.c (pfr_face_init): Fix rejection logic. - -2010-06-26 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #30262. - - * src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth' - arbitrarily to 100 to avoid stack exhaustion. - -2010-06-26 Werner Lemberg <wl@gnu.org> - - Add some memory checks (mainly for debugging). - - * src/base/ftstream.c (FT_Stream_EnterFrame): Exit with error - if the frame size is larger than the stream size. - - * src/base/ftsystem.c (ft_ansi_stream_io): Exit with error if - seeking a position larger than the stream size. - -2010-06-25 Werner Lemberg <wl@gnu.org> - - [pfr] Fix Savannah bug #30261. - - * src/pfr/pfrobjs.c (pfr_face_init): Reject fonts which contain - neither outline nor bitmap glyphs. - -2010-06-25 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #30254. - - * src/cff/cffload.c (cff_index_get_pointers): Do sanity check for - first offset also. - -2010-06-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Initial fix for Savannah bug #30248 and #30249. - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Check the error during - reading a PFB fragment embedded in LaserWriter PS font for Macintosh. - Reported by Robert Święcki. - -2010-06-24 Werner Lemberg <wl@gnu.org> - - [pcf] Fix Savannah bug #30247. - - * src/pcf/pcfread.c (pcf_get_metrics): Disallow (invalid) fonts with - zero metrics. - -2010-06-24 Graham Asher <graham.asher@btinternet.com> - - * src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm. - The previous version was too aggressive, as demonstrated in - https://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html. - -2010-06-24 Werner Lemberg <wl@gnu.org> - - */*: Use module specific error names where appropriate. - -2010-06-24 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #30236. - - * src/sfnt/ttcmap.c (tt_face_build_cmaps): Improve check for pointer - to `cmap_table'. - -2010-06-24 Werner Lemberg <wl@gnu.org> - - [pfr] Fix Savannah bug #30235. - - * src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against - invalid indices if there aren't any coordinates for indexing. - -2010-06-24 Werner Lemberg <wl@gnu.org> - - [bdf]: Font properties are optional. - - * src/bdf/bdflib.c (_bdf_readstream): Use special error code to - indicate a redo operation. - (_bdf_parse_start): Handle `CHARS' keyword here too and pass current - input line to `_bdf_parse_glyph'. - -2010-06-23 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #30220. - - * include/freetype/fterrdef.h - (BDF_Err_Missing_Fontboundingbox_Field): New error code. - - * src/bdf/bdflib.c (_bdf_parse_start): Check for missing - `FONTBOUNDINGBOX' field. - Avoid memory leak if there are multiple `FONT' lines (which is - invalid but doesn't hurt). - -2010-06-21 Werner Lemberg <wl@gnu.org> - - [pfr] Fix Savannah bug #30168. - - * src/pfr/pfrgload.c (pfr_glyph_load_compound): Limit the number of - subglyphs to avoid endless recursion. - -2010-06-20 Werner Lemberg <wl@gnu.org> - - [psaux] Fix Savannah bug #30145. - - * src/psaux/psobjs.c (t1_builder_add_contour): Protect against - `outline == NULL' which might happen in invalid fonts. - -2010-06-19 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #30135. - - * src/bdf/bdflib.c (_bdf_list_join): Don't modify value in static - string `empty'. - (_bdf_parse_glyph): Avoid memory leak in case of error. - -2010-06-15 Werner Lemberg <wl@gnu.org> - - [autofit] Fix Savannah bug #30108. - - * src/autofit/afglobal.c (af_face_globals_compute_script_coverage): - Properly mask AF_DIGIT bit in comparison. - -2010-06-11 Werner Lemberg <wl@gnu.org> - - [pshinter] Fix Savannah bug #30106. - - Point numbers for FreeType's implementation of hinting masks are - collected before the final number of points of a glyph has been - determined; in particular, the code for handling the `endchar' - opcode can reduce the number of points. - - * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Assure that - `end_point' is not larger than `glyph->num_points'. - -2010-06-11 Werner Lemberg <wl@gnu.org> - - [cff]: Improve debugging output. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_hintmask>: Implement it. - -2010-06-10 Graham Asher <graham.asher@btinternet.com> - - ftgrays: Speed up rendering of small cubic splines. - - * src/smooth/ftgrays.c (gray_render_cubic): Implement new, - simplified algorithm to find out whether the spline can be replaced - with two straight lines. See this thread for more: - - https://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html - -2010-06-09 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #30082. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_callothersubr>: Protect against stack underflow. - -2010-06-08 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #30053. - - * src/cff/cffparse.c (cff_parse_real): Handle border case where - `fraction_length' has value 10. - -2010-06-07 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #30052. - This bug has been introduced with commit 2415cbf3. - - * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect - against endless loop in case of corrupted font header data. - -2010-05-26 Werner Lemberg <wl@gnu.org> - - Remove unused variable. - Found by Graham. - - * src/autofit/afhints.c (af_glyph_hints_reload): Remove unused - variable `first' in first block. - -2010-05-22 Werner Lemberg <wl@gnu.org> - - Fix various memory problems found by linuxtesting.org. - - * src/base/ftgxval.c (FT_TrueTypeGX_Free, FT_ClassicKern_Free), - src/base/ftotval.c (FT_OpenType_Free), src/base/ftpfr.c - (ft_pfr_check): Check `face'. - - * src/base/ftobjs.c (FT_Get_Charmap_Index): Check `charmap' and - `charmap->face'. - (FT_Render_Glyph): Check `slot->face'. - (FT_Get_SubGlyph_Info): Check `glyph->subglyphs'. - -2010-05-22 Werner Lemberg <wl@gnu.org> - - autofit: Remove dead code. - Suggested by Graham. - - * src/autofit/afhints.c (af_glyph_hints_compute_inflections): - Removed. - (af_glyph_hints_reload): Remove third argument. - Update all callers. - -2010-05-21 Bram Tassyns <bramt@enfocus.be> - - [cff] Fix Savannah bug #27987. - - * src/cff/cffobjs.c (remove_subset_prefix): New function. - (cff_face_init): Use it to adjust `cffface->family_name'. - -2010-05-20 Werner Lemberg <wl@gnu.org> - - TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'. - - Acroread does the same. - - * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Call - `Update_Max' to adjust size of instructions array if necessary and - add a rough safety check. - - (load_truetype_glyph): Save `loader->byte_len' before recursive - call. - - * src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max): - Declare it as FT_LOCAL. - -2010-05-18 Hongbo Ni <hongbo@njstar.com> - - Apply Savannah patch #7196. - - * src/cff/cffgload.c (cff_slot_load): Prevent crash if CFF subfont - index is out of range. - -2010-05-11 Werner Lemberg <wl@gnu.org> - - * docs/formats.txt: Give pointer to PCF documentation. - Information provided by Alan Coopersmith - <alan.coopersmith@oracle.com>. - -2010-05-10 Ken Sharp <ken.sharp@artifex.com> - - [psaux] Fix Savannah bug #29846. - - Previously we discovered fonts which used `setcurrentpoint' to set - the initial point of a contour to 0,0. This caused FreeType to - raise an error, because the `setcurrentpoint' operator is only - supposed to be used with the results from an OtherSubr subroutine. - - This was fixed by simply ignoring the error and carrying on. - - Now we have found a font which uses setcurrentpoint to actually - establish a non-zero point for a contour during the course of a - glyph program. FWIW, these files may be produced by an application - called `Intaglio' on the Mac, when converting TrueType fonts to - Type 1. - - The fix allows the new invalid behaviour, the old invalid behaviour - and real proper usage of the operator to work the same way as Adobe - interpreters apparently do. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make - `setcurrentpoint' use the top two elements of the stack to establish - unconditionally the current x and y coordinates. - - Make the `flex' subroutine handling (OtherSubr 0) put the current - x,y coordinates onto the stack, instead of two dummy uninitialised - values. - -2010-04-14 Ken Sharp <ken.sharp@artifex.com> - - [psaux] Fix Savannah bug #29444. - - * src/psaux/psobjs.c (t1_builder_start_point): Accept (invalid) - `lineto' immediately after `hsbw', in accordance with Acrobat, GS, - and others. - -2010-04-14 Michał Cichoń <thedmd@artifexmundi.com> - - [psaux] Fix Savannah bug #27999. - - * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): Only remove - selected entry, not all. - -2010-04-06 Jonathan Kew <jfkthame@gmail.com> - - [truetype] Add overflow check to `fvar' table. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis and instance - count. - -2010-04-05 Ken Sharp <ken.sharp@artifex.com> - - [raster] Fix Savannah bug #29335. - - * src/raster/ftraster.c (Line_Up): Use slow multiplication to - prevent overflow. This shouldn't have any serious impact on speed, - however. - -2010-04-05 Werner Lemberg <wl@gnu.org> - - Add new function `FT_Library_SetLcdFilterWeights'. - - This is based on code written by Lifter - <https://unixforum.org/index.php?showuser=11691>. It fixes - FreeDesktop bug #27386. - - * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New - function. - - * include/freetype/ftlcdfil.h: Updated. - - * docs/CHANGES: Updated. - -2010-04-01 John Tytgat <John.Tytgat@esko.com> - - [truetype] Fix Savannah bug #29404. - - * src/truetype/ttgload.c: Revert change 2752bd1a (check on bit 1 - of `head' table of TrueType fonts). - -2010-03-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix `multi build' for Tytgat's CFF driver improvement. - - * src/base/cffload.h (cff_index_get_name): Added. - -2010-03-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Remove duplicated inclusion of `FT_OUTLINE_H' in ftobjs.c. - - * src/base/ftobjs.c: Remove 2nd inclusion of `FT_OUTLINE_H'. - -2010-03-11 Chris Liddell <chris.liddell@artifex.com> - - [raster] Fix Savannah bug #27442. - - * src/raster/ftraster.c (ft_black_reset): Fix `buffer_size'. - -2010-03-09 Werner Lemberg <wl@gnu.org> - - [cff] Remove unused variable. - Reported by Graham. - - * src/cff/cffparse.c (cff_parse_real): Remove `rest'. - -2010-03-02 John Tytgat <John.Tytgat@esko.com> - - [cff] Improve CFF string (especially glyphname) lookup performance. - - We do this by avoiding memory allocation and file I/O. This is - Savannah patch #7104. - - * src/cff/cfftypes.h: Include PS cmaps service and - FT_INTERNAL_POSTSCRIPT_HINTS_H. - (CFF_SubFontRec): Remove `num_local_subrs'. - (CFF_FontRec): Add `num_strings', `strings', and `string_pool' - fields. - Remove `string_index' and `num_global_subrs' fields. - Use real types instead of `void' for `pshinter' and `psnames' fields. - - * src/cff/cffload.c: Don't include PS cmaps service. - (cff_index_get_pointers): Add `pool' parameter which allows inserting - an extra NUL character for each String INDEX entry. - (cff_index_get_name): Make it a local function. - (cff_index_get_string): New function. - (cff_subfont_load): Updated. - (cff_font_load): Initialize `num_strings', `strings', and - `string_pool' fields in the `CFF_FontRec' structure. - (cff_index_get_sid_string): Use `cff_index_get_string' instead of - `cff_index_get_name'. - (cff_font_done): Updated. - - * src/cff/cffload.h: Don't include PS cmaps service. - (cff_index_get_string): Added. - (cff_index_get_sid_string): Updated. - - * src/cff/cffobjs.c: Don't include PS cmaps service and - FT_INTERNAL_POSTSCRIPT_HINTS_H. - (cff_size_get_globals_funcs, cff_slot_init): Updated. - (cff_face_init): Follow `cff_index_get_name', - `cff_index_get_string', and `cff_index_get_sid_string' changes. - - * src/cff/cffcmap.c (cff_sid_free_glyph_name): Removed. - (cff_sid_to_glyph_name): Use `cff_index_get_cid_string'. - (cff_cmap_unicode_init): Updated. - - * src/cff/cffdrivr.c: Don't include PS cmap service. - (cff_get_glyph_name): Avoid unnecessary lookup for POSTSCRIPT_CMAPS - service. - (cff_get_glyph_name, cff_ps_get_font_info, cff_get_ros): Follow API - `cff_index_get_sid_string' change. - (cff_get_name_index): Use `cff_index_get_string' instead of - `cff_index_get_name'. - - * src/cff/cffgload.c: Don't include FT_INTERNAL_POSTSCRIPT_HINTS_H. - (cff_decoder_init, cff_decoder_prepare): Updated. - -2010-02-27 Werner Lemberg <wl@gnu.org> - - Simplify code. - Suggested by Behdad. - - * src/base/ftobjs.c (FT_Get_First_Char): Don't use a loop since we - call FT_Get_Next_Char anyway if necessary. - -2010-02-26 Behdad Esfahbod <behdad@behdad.org> - - Improve handling of invalid glyph indices in char->index functions. - - * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Use a - loop. - -2010-02-18 Chris Liddell <chris.liddell@artifex.com> - - [truetype] Fix Savannah bug #28905. - - Initialize phantom points before calling the incremental interface - to update glyph metrics. - - * src/truetype/ttgload.c (tt_get_metrics_incr_overrides) - [FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from... - (tt_get_metrics): This. - Updated. - (load_truetype_glyph): Use tt_get_metrics_incr_overrides. - ----------------------------------------------------------------------------- - -Copyright (C) 2010-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.25 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.25 deleted file mode 100644 index 5d0371c498f..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.25 +++ /dev/null @@ -1,5161 +0,0 @@ -2014-12-30 Werner Lemberg <wl@gnu.org> - - * Version 2.5.5 released. - ========================= - - - Tag sources with `VER-2-5-5'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.5.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.5.4/2.5.5/, s/254/255/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. - - * builds/unix/configure.raw (version_info): Set to 17:4:11. - * CMakeLists.txt (VERSION_PATCH): Set to 5. - * docs/CHANGES: Updated. - - * builds/toplevel.mk (dist): Fix typos. - -2014-12-24 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Formatting and nanooptimizations. - - * src/base/ftcalc.c, - * src/base/fttrigon.c: Revise sign restoration. - -2014-12-13 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08. - -2014-12-11 Werner Lemberg <wl@gnu.org> - - * builds/toplevel.mk (dist): Use older POSIX standard for `tar'. - - Apparently, BSD tar isn't capable yet of handling POSIX-1.2001 - (contrary to GNU tar), so force the POSIX-1.1988 format. - - Problem reported by Stephen Fisher <sfisher@SDF.ORG>. - -2014-12-11 Werner Lemberg <wl@gnu.org> - - * src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size. - -2014-12-11 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check. - - Problem reported by Dennis Felsing <dennis@felsin9.de>. - -2014-12-11 Werner Lemberg <wl@gnu.org> - - * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'. - - Problem reported by Dennis Felsing <dennis@felsin9.de>. - -2014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [gxvalid] Fix a naming convention conflicting with ftvalid. - - See previous changeset for otvalid. - - * src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace - `valid' by `gxvalid'. - * src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c, - gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c, - gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c, - gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c, - gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if - it is typed as GXV_Validator. - -2014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [otvalid] Fix a naming convention conflicting with ftvalid. - - Some prototypes in ftvalid.h use `valid' for the variables - typed as FT_Validator. Their implementations in src/base/ - ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar. - - Some macros in otvcommn.h assume the exist of the variable - `valid' typed as OTV_Validator in the caller. - - Mixing these two conventions cause invalid pointer conversion - and unexpected SEGV in longjmp. To prevent it, all variables - typed as OTV_Validator are renamed to `otvalid'. - - * src/otvalid/otvcommn.h: Replace `valid' by `otvalid'. - * src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c, - otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid' - if it is typed as OTV_Validator. - -2014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros. - - Original patch is designed by Werner Lemberg. Extra part - for otvalid and gxvalid are added by suzuki toshiya, see - discussion: - https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html - https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html - - * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_(). - * src/gxvalid/gxvcommn.h: Ditto. - * src/otvalid/otvcommn.h: Ditto. - -2014-12-08 Werner Lemberg <wl@gnu.org> - - [pcf] Fix Savannah bug #43774. - - Work around `features' of X11's `pcfWriteFont' and `pcfReadFont' - functions. Since the PCF format doesn't have an official - specification, we have to exactly follow these functions' behaviour. - - The problem was unveiled with a patch from 2014-11-06, fixing issue - #43547. - - * src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last - element. Instead, assign real size. - -2014-12-07 Werner Lemberg <wl@gnu.org> - - Work around a bug in Borland's C++ compiler. - - See - - http://qc.embarcadero.com/wc/qcmain.aspx?d=118998 - - for Borland's bug tracker entry. - - Reported by Yuliana Zigangirova <zigangirova@inbox.ru>, - https://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html. - - * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c - (gray_TWorker_): Move `ft_jmp_buf' field to be the first element. - -2014-12-07 Werner Lemberg <wl@gnu.org> - - */*: Decorate hex constants with `U' and `L' where appropriate. - -2014-12-07 Werner Lemberg <wl@gnu.org> - - [truetype] Prevent memory leak for buggy fonts. - - * src/truetype/ttobjs.c (tt_size_done): Unconditionally call - `tt_size_done_bytecode'. - -2014-12-06 Werner Lemberg <wl@gnu.org> - - * Version 2.5.4 released. - ========================= - - - Tag sources with `VER-2-5-4'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.5.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.5.3/2.5.4/, s/253/254/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. - - * builds/unix/configure.raw (version_info): Set to 17:3:11. - * CMakeLists.txt (VERSION_PATCH): Set to 4. - * docs/CHANGES: Updated. - -2014-12-04 Werner Lemberg <wl@gnu.org> - - docs/CHANGES: Updated, formatted. - -2014-12-04 Dave Arnold <darnold@adobe.com> - - [cff] Modify an FT_ASSERT. - - * src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah - bug #43661, the test font `...aspartam.otf' still triggers an - FT_ASSERT. Since hintmap still works with count==0, ... - (cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to - suppress the assert. - -2014-12-04 Dave Arnold <darnold@adobe.com> - - [cff] Fix Savannah bug #43661. - - * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM, - cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after - hintmask is constructed. - - * src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to - avoid reading past end of hintmask. - -2014-12-03 Werner Lemberg <wl@gnu.org> - - docs/CHANGES: Updated. - -2014-12-03 Werner Lemberg <wl@gnu.org> - - [autofit] Better fix for conversion specifiers in debug messages. - - Using `%ld' for pointer differences causes warnings on 32bit - platforms. The correct type would be (the relatively new) `%td', - however, this is missing on some important platforms. - - This patch improves the change from 2014-11-28. - - * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast. Our - pointer differences are always sufficiently small. - (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, - af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'. - -2014-12-03 Werner Lemberg <wl@gnu.org> - - FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality. - - All public FreeType enumeration and flag values are uppercase... - - * include/tttables.h (FT_Sfnt_Tag): Implement it. For backward - compatibility, retain the old values as macros. - - * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c - (get_sfnt_table): Updated. - -2014-12-02 Werner Lemberg <wl@gnu.org> - - * include/*: Improve structure of documentation. - - . Add and update many `<Order>' tags. - . Apply various documentation fixes. - . Remove details to deprecated (or never implemented) data. - -2014-12-02 Werner Lemberg <wl@gnu.org> - - [docmaker] Always handle `<Order>' section elements. - - Previously, those elements were handled only for sections present in - a `<Sections>' chapter element. - - * src/tools/docmaker/content.py (ContentProcessor::finish): - Implement it. - -2014-12-02 Werner Lemberg <wl@gnu.org> - - [docmaker] Properly handle empty rows in Synopsis. - - * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit - ` ' for empty fields. - -2014-12-02 Werner Lemberg <wl@gnu.org> - - [docmaker] Thinko. - - * src/tools/docmaker/content.py (DocBlock::get_markup_words_all): - Emit `/empty/' string for first element also. - -2014-12-02 Werner Lemberg <wl@gnu.org> - - [docmaker] Honour empty lines in `<Order>' section element. - - This greatly improves the readability of the `Synopsis' links. - - * src/tools/docmaker/content.py (DocBlock::get_markup_words_all): - Insert string `/empty/' between items. - - * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it - robust against nonexistent keys. - - * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit - empty <td> elements for `/empty/'. - -2014-12-02 Werner Lemberg <wl@gnu.org> - - [docmaker] Ensure Python 3 compatibility. - - * src/tools/docmaker/content.py (ContentProcessor::set_section, - ContentProcessor::finish): Replace `has_key' function with `in' - keyword. - - * src/tools/docmaker/formatter.py (Formatter::__init__): Replace - sorting function with a key generator. - (Formatter::add_identifier): Replace `has_key' function with `in' - keyword. - - * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote): - Replace `has_key' function with `in' keyword. - (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use - integer division. - s/<>/>/. - - * src/tools/docmaker/utils.py: Import `itertools'. - (index_sort): Replaced by... - (index_key): ... this new key generator (doing exactly the same). - -2014-11-29 Werner Lemberg <wl@gnu.org> - - [docmaker] Don't output a block multiple times. - - This bug was hidden by not processing all lines of `<Order>' blocks. - - * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter - out field names. - -2014-11-29 Werner Lemberg <wl@gnu.org> - - [docmaker] Use field values as HTML link targets where possible. - - * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url): - Accept second, optional argument to specify a name. - (HtmlFormatter::html_source_quote): Link to field ID if possible. - (HtmlFormatter::print_html_field_list): Emit `id' attribute. - -2014-11-29 Werner Lemberg <wl@gnu.org> - - [docmaker] Allow empty lines in `<Order>' blocks. - - Before this patch, the suggested order of entries stopped at the - first empty line. - - Obviously, nobody noticed that this problem caused a much reduced - set of links in the `Synopsis' sections; in particular, the - `<Order>' blocks contain a lot of entries that wouldn't be listed - otherwise... - - * src/tools/docmaker/content.py (DocBlock::get_markup_words_all): - New function to iterate over all items. - (DocSection::process): Use it. - -2014-11-29 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp. - - After the single asterisk there must be no other immediately following - asterisk. - -2014-11-29 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing. - -2014-11-29 Werner Lemberg <wl@gnu.org> - - [docmaker] Improve HTML code for table of contents. - - * src/tools/docmaker/tohtml.py: Introduce a new table class `toc', - together with proper CSS. - -2014-11-29 Werner Lemberg <wl@gnu.org> - - [docmaker] Provide higher-level markup and simplify HTML. - - * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>' - elements, use CSS descendants (of class `section') to format the - data. - - Also remove redundant <p> and <br> elements, replacing them with - proper CSS. - - Globally reduce page width to 75%. - - (block_header): Rename <div> class to `section'. - -2014-11-29 Werner Lemberg <wl@gnu.org> - - [docmaker] Add `top' links after blocks. - - * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it. - -2014-11-29 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: Improve CSS for fields. - - Make fields align horizontally relative to full line width. - -2014-11-29 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: Fix index and TOC templates. - - This thinko was introduced 2014-11-27. - -2014-11-28 Werner Lemberg <wl@gnu.org> - - [docmaker] Format field lists with CSS. - - This also simplifies the inserted HTML code. - - * src/tools/docmaker/tohtml.py - (HtmlFormatter::print_html_field_list): Do it. - -2014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix compiler warning to the comparison between signed and - unsigned variable. - - * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison - between `ypos + ysize' and FT_INT_{MAX,MIN}. - -2014-11-28 Werner Lemberg <wl@gnu.org> - - [docmaker] Replace empty `<td>' with CSS. - - * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do - it. - -2014-11-28 Werner Lemberg <wl@gnu.org> - - [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'. - - * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'. - (source_*): Use `<div>'. - (HtmlFormatter::block_enter): s/<h4>/<h3>/. - -2014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix compiler warning to conversion specifiers in debug messages. - - * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length - modifier to dump long integers. - (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: Use more CSS for index. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - [docmaker] Replace `name' attribute of `<a>' with `id'. - - * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes. - - For `Index' and `TOC' links, we now simply use the `text-align' CSS - property of `<td>' to enforce flush-left and flush-right, - eliminating the hack with an empty, full-width `<td>' element - inbetween. - - The change also enforces the same (smaller) size for all index and - TOC links. - -2014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(), - cf2font.c could not find it under `make multi' build. - -2014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove - unrequired negative value check for `width' and `height'. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: More HTML table refactoring. - - Replace some `<table>' tags with `<div>' to simplify structure. - - Move `bgcolor' attribute to CSS. - - Replace most `width' attributes with CSS. The remaining instances - (providing a similar effect as LaTeX's `\hfill' command) are removed - in a later patch. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: Replace <font> with CSS. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: Center <table> with CSS. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags. - - This starts a series of commits into the direction of generating - valid HTML 5 code, especially using much more CSS. - -2014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Prevent too negative values (< FT_INT_MIN) in bitmap metrics, - suggested by Alexei. - - * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too - negative values in `xpos' and `ypos + ysize'. - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent - too negative values in `x_left' and `y_top'. Either negative - values in `width' and `height' are checked. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - [docmaker] Produce better HTML code. - - * src/tools/docmaker/tohtml.py: Always use double quotes for - attribute values. - (source_footer): Close `td' and `tr' groups. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - Use better way to disable creation of .pyc files for `make refdoc'. - - Python 2.6 was released in 2008... - - * builds/freetype.mk (refdoc): Use python's `-B' option. - - * builds/detect.mk (std_setup, dos_setup): Mention required python - version for `refdoc' target. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/sources.py (re_bold, re_italic): Use - non-grouping parentheses. - * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): - Updated. - -2014-11-27 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning. - - Introduced in previous change. Reported by Alexei. - -2014-11-26 Werner Lemberg <wl@gnu.org> - - * src/*: Add checks for parameters of API functions where missing. - - `API functions' are functions tagged with `FT_EXPORT_DEF'. - - Besides trivial fixes, the following changes are included, too. - - * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set - error code if no service is available. - - * src/base/ftinit.c (FT_Done_FreeType): Change return value for - invalid `library' parameter to `Invalid_Library_Handle'. - - * src/base/ftobjs.c (FT_New_Size): Change return value for invalid - `asize' parameter to `Invalid_Argument'. - - * src/base/ftoutln.c (FT_Outline_Copy): Change return value for - invalid `source' and `target' parameters to `Invalid_Outline'. - (FT_Outline_Done_Internal): Change return value for invalid - `outline' parameter to `Invalid_Outline'. - -2014-11-26 Werner Lemberg <wl@gnu.org> - - * src/cache/ftcbasic.c: Use single calls to `FT_TRACE'. - -2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Additional - overflow check in the summation of POST fragment lengths, - suggested by Mateusz Jurczyk <mjurczyk@google.com>. - -2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments - and fold too long tracing messages. - -2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix Savannah bug #43540. - - * src/base/ftmac.c (parse_fond): Prevent a buffer overrun - caused by a font including too many (> 63) strings to store - names[] table. - -2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long - variables to read the lengths in POST fragments. Suggested by - Mateusz Jurczyk <mjurczyk@google.com>. - -2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix Savannah bug #43539. - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow - by a broken POST table in resource-fork. - -2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix Savannah bug #43538. - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow - by a broken POST table in resource-fork. - -2014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - * src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak - by a broken POST table in resource-fork. Return after freeing - the buffered POST table when it is found to be broken. - -2014-11-25 Werner Lemberg <wl@gnu.org> - - */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate. - -2014-11-25 Werner Lemberg <wl@gnu.org> - - */*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate. - -2014-11-25 Werner Lemberg <wl@gnu.org> - - */*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate. - -2014-11-25 Werner Lemberg <wl@gnu.org> - - */*: s/Invalid_Argument/Invalid_Outline/ where appropriate. - -2014-11-25 Werner Lemberg <wl@gnu.org> - - */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate. - -2014-11-24 Werner Lemberg <wl@gnu.org> - - [Savannah bug #43682] Adjust some renderer callbacks. - - * src/raster/ftraster.c (ft_black_set_mode): Change return type to - `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype. - - * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function - for orthogonality. - (ft_grays_raster): Use it. - -2014-11-25 Werner Lemberg <wl@gnu.org> - - [Savannah bug #43682] Properly handle missing return errors. - - The functions in this patch *do* return non-trivial errors that must - be taken care of. - - * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c - (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render), - src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>, - src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode - (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c - (load_truetype_glyph <subglyph loop>, tt_loader_init, - TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend), - src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it. - -2014-11-25 Werner Lemberg <wl@gnu.org> - - [Savannah bug #43682] Add/remove `void' casts to some functions. - - We use a cast to indicate that we intentionally ignore a function's - return value. However, this doesn't apply to API functions where - errors can only happen for trivially invalid input. - - * src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder), - src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c - (cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning), - src/type1/t1load.c (parse_encoding), src/type42/t42parse.c - (t42_parse_encoding): Do it. - -2014-11-25 Werner Lemberg <wl@gnu.org> - - [Savannah bug #43682] Change some signatures to `void' return type. - - * include/internal/pshints.h (PSH_Globals_SetScaleFunc), - include/internal/sfnt.h (TT_Get_Metrics_Func), - src/pshinter/pshglob.c (psh_globals_set_scale), - src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c - (tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange, - TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context, - TT_Save_Context): Do it. - - * src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h, - src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c - (TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c - (tt_size_run_fpgm, tt_size_run_prep): Updated. - -2014-11-24 Werner Lemberg <wl@gnu.org> - - Remove all code related to FT_MAX_CHARMAP_CACHEABLE. - - This is no longer used. - - * src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c, - src/sfnt/ttcmap.c: Do it. - -2014-11-24 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #43680. - - This adds an additional constraint to make the fix from 2013-01-25 - really work. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>: - Check `p' before `num_glyphs'. - -2014-11-24 Werner Lemberg <wl@gnu.org> - - [truetype] Fix Savannah bug #43679. - - * src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of - `record_size'. - -2014-11-24 Jarkko Pöyry <jarkko.poyry@gmail.com> - - [cff, pfr, psaux, winfonts] Fix Savannah bug #43676. - - Don't cast cmap init function pointers to an incompatible type. - - Without this patch, the number of parameters between declaration and - the real signature differs. Calling such a function results in - undefined behavior. - - ISO/IEC 9899:TC3 (Committee Draft September 7, 2007) - 6.5.2.2 Function calls - 9 If the function is defined with a type that is not - compatible with the type (of the expression) pointed to by - the expression that denotes the called function, the - behavior is undefined. - - On certain platforms (c -> js with emscripten) this causes - termination of execution or invalid calls because in the emscripten - implementation, function pointers of different types are stored in - different pointer arrays. Incorrect pointer type here results in - indexing of an incorrect array. - - * src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init), - src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c - t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init, - t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix - signature. - -2014-11-24 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #43672. - - * src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for - minimum table length test. - -2014-11-24 Werner Lemberg <wl@gnu.org> - - [type1, type42] Another fix for Savannah bug #43655. - - * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c - (t42_parse_charstrings): Add another boundary testing. - -2014-11-24 Werner Lemberg <wl@gnu.org> - - [docmaker] Formatting, copyright, improved documentation. - - * src/tools/docmaker/*: No code changes besides trivial - modifications. - -2014-11-22 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #43660. - - * src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check - `_BDF_GLYPH_BITS'. - -2014-11-22 Werner Lemberg <wl@gnu.org> - - [type42] Allow only embedded TrueType fonts. - - This is a follow-up to Savannah bug #43659. - - * src/type42/t42objs.c (T42_Face_Init): Exclusively use the - `truetype' font driver for loading the font contained in the `sfnts' - array. - -2014-11-22 Werner Lemberg <wl@gnu.org> - - [type42] Fix Savannah bug #43659. - - * src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'. - - * src/type42/t42parse.c (t42_parse_sfnts): Always set - `face->ttf_size' directly. This ensures a correct stream size in - the call to `FT_Open_Face', which follows after parsing, even for - buggy input data. - Fix error messages. - -2014-11-22 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #43658. - - * src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle - return values of point allocation routines. - -2014-11-22 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #43656. - - * src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity - tests. - -2014-11-21 Werner Lemberg <wl@gnu.org> - - [type1, type42] Fix Savannah bug #43655. - - * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c - (t42_parse_charstrings): Fix boundary testing. - -2014-11-21 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics. - -2014-11-21 Werner Lemberg <wl@gnu.org> - - [ftlcdfil] Obey flow direction. - - * src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy): - Handle `up' flow. - -2014-11-21 Werner Lemberg <wl@gnu.org> - - * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve. - - This commit completes argument checks and adds support for different - flow directions. - -2014-11-21 Werner Lemberg <wl@gnu.org> - - * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve. - - This commit adds argument checks and support for different flow - directions. - -2014-11-20 Werner Lemberg <wl@gnu.org> - - * src/base/ftbitmap.c (FT_Bitmap_New): Check argument. - -2014-11-19 Werner Lemberg <wl@gnu.org> - - Change some fields in `FT_Bitmap' to unsigned type. - - This doesn't break ABI. - - * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays', - `pixel_mode', and `palette_mode' unsigned types. - - * src/base/ftbitmap.c: Updated. - (FT_Bitmap_Copy): Fix casts. - - * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c: - Updated. - -2014-11-19 Werner Lemberg <wl@gnu.org> - - Make `FT_Bitmap_Convert' correctly handle negative `pitch' values. - - * src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value - for the pitch while copying data. - Correctly set pitch sign in target bitmap. - -2014-11-19 Werner Lemberg <wl@gnu.org> - - Minor code improvement in `FT_Bitmap_Embolden'. - - * src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>: - Fix thinko. - -2014-11-19 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table. - -2014-11-19 Behdad Esfahbod <behdad@behdad.org> - - Avoid compiler warnings on x86-64 for `FT_MulFix'. - - `FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h', - but several inline implementations of it in `ftcalc.h' take - `FT_Int32' arguments. This is causing compiler warnings on x86-64: - If parameters of type `FT_Fixed' (= `FT_Long') are passed to the - inline implementation of this function, integer values are truncated - from 64bit to 32bit. - - * include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add - casts. - -2014-11-15 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #43597. - - * src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large - bitmaps. - -2014-11-12 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #43591. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition - and multiplication overflow. - -2014-11-12 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #43590. - - * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): - Protect against addition overflow. - -2014-11-12 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #43589. - - * src/sfnt/sfobjs.c (woff_open_font): Protect against addition - overflow. - -2014-11-12 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #43588. - - * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate, - tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect - against overflow in additions and multiplications. - -2014-11-10 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] CORDIC improvements. - - The scaling between the hypotenuse and its CORDIC approximation is - based on regression analysis. The smaller padding for `theta' is - justified by its maximum error of less than 6. - - * src/base/fttrigon.c (ft_trig_downscale): Borrow code from - ./ftcalc.c (ft_multo64), change linear intercept. - (ft_trig_pseudo_polarize): Decrease `theta' padding. - -2014-11-09 Werner Lemberg <wl@gnu.org> - - * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections. - - One more place to check whether `radius' is zero. - - Problem reported by Marco Wertz <marco.wertz@gmx.de>. - -2014-11-07 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #43535. - - * src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one - character more than `strncmp'. - s/ft_strncmp/_bdf_strncmp/ everywhere. - -2014-11-06 Werner Lemberg <wl@gnu.org> - - [pcf] Fix Savannah bug #43548. - - * src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row - and column values. - -2014-11-06 Werner Lemberg <wl@gnu.org> - - [pcf] Fix Savannah bug #43547. - - * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset' - values. - -2014-11-06 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak. - -2014-11-03 Infinality <infinality@infinality.net> - - * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated. - - The previous commit deteriorates rendering of DejaVu and similar - fonts; this gets compensated with this rule. - -2014-11-03 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting. - - Before this patch, it was impossible to ever call DELTAP[123] in - subpixel hinting mode as described in the ClearType whitepaper; it - only worked if in `compatibility mode'. However, compatibility mode - essentially disables SHPIX, completely ruining hinting of - ttfautohint output, for example. - - We now follow the whitepaper more closely so that DELTAP[123] - instructions for touched points in the non-subpixel direction are - executed. - -2014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Improve code readability. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code. - -2014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Reduce outline translations during rendering. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin - virtually by modifying cbox, actually translate outline if cumulative - shift is not zero. - -2014-10-30 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Fix Savannah bug #35604 (cont'd). - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and - casts that became unnecessary after the variable type upgrades. - -2014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Improve code readability. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code. - -2014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com> - - Unify hypotenuse approximations. - - * include/internal/ftcalc.h (FT_HYPOT): Move macro from here... - * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'. - * src/smooth/ftgrays.c (gray_render_cubic): Use it here. - -2014-10-25 Werner Lemberg <wl@gnu.org> - - [cff] Test valid darkening parameter macros in `ftoption.h'. - - We no longer need an otherwise unused typedef that can cause a gcc - warning. - Problem reported by Alexei. - - * src/cff/cffobjs.c (cff_driver_init): Use - `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly. - (SET_DARKENING_PARAMETERS): Removed. - Compile time tests are now ... - - * devel/ftoption.h, include/config/ftoption.h: ... here. - -2014-10-25 Alexei Podtelezhnikov <apodtele@gmail.com> - - Improve flat corner definition. - - * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean - distance with the alpha max plus beta min algorithm. - * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab - metric. - -2014-10-23 David Weiß <David.Weiss@ptvgroup.com> - - [build] Improve property file for vc2010. - - User-defined properties should be empty by default to prevent linker - failures. - - * builds/windows/vc2010/freetype.user.props, - builds/windows/vc2010/freetype.vcxproj: - s/OptionsDirectory/UserOptionDirectory/. - Comment out all user options. - -2014-10-23 Werner Lemberg <wl@gnu.org> - - [cff] Work around bug in preprocessor of MSVC 2010. - - We have been hit by - - https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr - - * devel/ftoption.h, include/config/ftoption.h: Replace - `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros - `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'. - - * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed. We no - longer need double expansion. - (SET_DARKENING_PARAMETERS_0): Renamed to ... - (SET_DARKENING_PARAMETERS): ... this. - Update call. - -2014-10-20 Werner Lemberg <wl@gnu.org> - - [sbit] Minor fixes. - - * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]: - Accept overlay format also, but emit warning message in that case. - (tt_sbit_decoder_load_metrics): Add missing newline to error - message. - (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS - 7.1) to the list of unsupported formats. - -2014-10-19 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Clean up bytecode rounding. - - Zero distance does not have to be treated specially if you follow - specifications and check the sign as the very last step of rounding. - - * src/truetype/ttinterp.c (Round_None, Round_To_Grid, - Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use - macros when available, do not check for non-zero distance. - (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase - if sign changed. - -2014-10-18 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Unwrap engine compensation settings. - - * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated. - -2014-10-18 David Weiß <David.Weiss@ptvgroup.com> - - [build] Add property file to vc2010 project. - - This simplifies custom build configurations, especially for - automated build environments. - - * builds/windows/vc2010/freetype.user.props: New configuration file. - - * builds/windows/vc2010/freetype.vcxproj: Include - `freetype.user.props' and use its data fields. - - * builds/windows/vc2010/index.html: Updated. - -2014-10-18 Werner Lemberg <wl@gnu.org> - - [autofit] Add blue-zone support for Telugu. - - This essentially moves the Telugu script from the `Indic' hinter to - the `Latin' hinter. - - Note that this is a first shot and quite certainly needs - refinements. - - * src/autofit/afblue.dat: Add blue zone data for Telugu. - - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Telugu standard characters and move - data out of AF_CONFIG_OPTION_INDIC block. - - * src/autofit/afranges.c: Move Telugu data out of - AF_CONFIG_OPTION_INDIC block. - - * src/autofit/afstyles.h: Update Telugu data; in particular, use - AF_WRITING_SYSTEM_LATIN. - -2014-10-18 David Wimsey <david@wimsey.us> - - [cmake] Add iOS build support. - From Savannah patch #8497. - - * builds/cmake/iOS.cmake: New file. Universal binaries are built - with both 32 and 64 bit arm architectures. - - * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS - toolchain. Possible values are `OS' to build on iOS, or - `SIMULATOR' to build on APPLE. - -2014-10-16 Behdad Esfahbod <behdad@behdad.org> - Werner Lemberg <wl@gnu.org> - - [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro. - - * devel/ftoption.h, include/config/ftoption.h - (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro. - - * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS, - SET_DARKENING_PARAMETERS_0): New macros. - (cff_driver_init): Use new macros. - -2014-10-14 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Limit delta shift range. - - The valid range for delta shift is zero through six. Negative values - are invalid according to - - https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift - - * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned. - * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift' - is out of range. - (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'. - -2014-10-16 Werner Lemberg <wl@gnu.org> - - A better fix for Savannah bug #43392. - Suggested by Doug Felt <dougfelt@gmail.com>. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set - `vertAdvance' to zero... - - * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default - value for `vertAdvance' based on `linearVertAdvance' in case - `vertAdvance' is zero. Note that the previous computed ad-hoc value - for `linearVertAdvance' was apparently not tested in a real-life - situation. - -2014-10-14 David Weiß <David.Weiss@ptvgroup.com> - - [build] Better optimization settings for vc2010 solution file. - - * builds/windows/vc2010/freetype.sln, - builds/windows/vc2010/freetype.vcxproj: Updated. - -2014-10-14 Werner Lemberg <wl@gnu.org> - - [autofit] Adjust Devanagari character range. - - * src/autofit/afranges.c (af_deva_uniranges): Omit characters that - are common to all other Indic scripts. - -2014-10-12 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #43392. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let - vertical metrics uninitialized. - -2014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Small bbox correction. - - * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox - instead of initial point that could be `off' in conic outlines. - -2014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Fix Savannah bug #43356. - - * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case - of implicit `to'. - (BBox_Line_To): New emitter that does not update bbox. - -2014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Introduce and use new macro `FT_UPDATE_BBOX' - - * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro. - (FT_Outline_Get_BBox): Use it here. - -2014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Significant optimization of `ft_div64by32' - - We shift as many bits as we can into the high register, perform - 32-bit division with modulo there, then work through the remaining - bits with long division. This optimization is especially noticeable - for smaller dividends that barely use the high register. - - * src/base/ftcalc.c (ft_div64by32): Updated. - -2014-10-02 Dave Arnold <darnold@adobe.com> - - [cff] Fix Savannah bug #43271. - - * src/cff/cf2font.c (cf2_computeDarkening): Change overflow - detection to use logarithms and clamp `scaledStem'. - -2014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftcalc.c: Remove miscellaneous type casts. - -2014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Use more common `FT_MSB' implementation with masks. - - * src/base/ftcalc.c (FT_MSB): Updated. - -2014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Clean up. - - * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used - code. - -2014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Avoid unnecessary long division. - - This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or - lack thereof are predicted accurately. - - * src/base/ftcalc.c (ft_div64by32): Improve readability. - (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division - when multiplication stayed within 32 bits. - -2014-09-24 Werner Lemberg <wl@gnu.org> - - [autofit] Minor clean-ups. - - * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values. - - * src/autofit/afhints.c (af_glyph_hints_dump_points, - af_glyph_hints_align_strong_points): Updated. - - * src/autofit/aflatin.c (af_latin_hints_link_segments, - af_latin_hints_compute_segments), src/autofit/afcjk.c - (af_cjk_hints_link_segments), src/autofit/aflatin2.c - (af_latin2_hints_link_segments, af_latin2_hints_compute_segments): - There are no longer fake segments since more than 10 years... - -2014-09-22 Werner Lemberg <wl@gnu.org> - - [autofit] Minor code streamlining. - - * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant - initialization. - -2014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftcalc.c: Harmonize code. - -2014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Tighten the overflow check in `FT_MulDiv'. - - * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated. - -2014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com> - - Fix Savannah bug #43153. - - * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against - overflow in `divider'. - -2014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Tighten the overflow check in `FT_DivFix'. - - This fixes a 13-year old bug. The original overflow check should have - been updated when rounding was introduced into this function - (c2cd00443b). - - * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated. - * include/freetype.h (FT_DivFix): Updated documentation. - -2014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Tighten the overflow check in `FT_MulFix'. - - * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated. - -2014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Shortcut ppem calculations for square pixels. - - * src/truetype/ttinterp.h (TT_ExecContextRec): New field - `cur_ppem_func' with a function pointer. - * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func' - depending on the pixel geometry to either... - (Current_Ppem_Stretched): ... this for stretched pixels. - (Current_Ppem): ... or this for square pixels. - (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'. - -2014-08-31 Behdad Esfahbod <behdad@behdad.org> - - Don't use `register' keyword. Fixes compiler warnings. - - * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it. - * src/gzip/inftrees.c (huft_build): Ditto. - * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto. - -2014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Optimize DELTAP and DELTAC. - - * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem - calculations outside of the loop. - -2014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com> - - Fix Savannah bug #43033. - - * include/config/ftconfig.h, builds/unix/ftconfig.in, - builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when - 64-bit type is `long'. - -2014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Small optimization of `FT_MulFix'. - - * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct - 32-bit calculations. - -2014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Use unsigned calculation in `FT_MulDiv'. - - * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range. - -2014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Remove truncation in `FT_DivFix'. - - * src/base/ftcalc.c (FT_DivFix): Updated. - -2014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com> - - Minor refactoring. - - * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated. - -2014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com> - - Turn FT_MSB into a macro when using gcc builtins. - - * src/base/ftcalc.c, include/internal/ftcalc.h: Updated. - -2014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'. - - * src/base/ftbbox.c (BBox_Cubic_Check): Update. - (update_cubic_max): Replace with... - (cubic_peak): ... this, which now handles upscaling. - -2014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Handle collapsed outlines to avoid undefined FT_MSB. - - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update. - -2014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Restore FT_MulFix inlining. - - * include/freetype.h (FT_MulFix): Unconditionally defined. - - * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here... - - * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here, - which conditionally replaces the function with an inline version - through the macro. - -2014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor. - -2014-07-26 Werner Lemberg <wl@gnu.org> - - [cff] Fix typo. - - * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct - offsets in third quadrant. - - Reported by maks <maksqwe1@ukr.net>. - -2014-07-17 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #42788. - - * src/pfr/pfrobjs.c: Include `ftcalc.h'. - -2014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com> - - Replace `ft_highpow2' function. - - * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of - `ft_highpow2'. - - * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove - it. - -2014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins. - -2014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Move assembler code back in the source file. - - FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b. - - * include/config/ftconfig.h, builds/unix/ftconfig.in, - builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here... - - * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here. - -2014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Further clean up color bitmap conversion. - - * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop - using FT_MulFix and FT_DivFix since all calculations fit into 32 bits. - -2014-07-13 Werner Lemberg <wl@gnu.org> - - [truetype] Improve handling of buggy `prep' tables. - - In case of an error in the `prep' table, no longer try to execute it - again and again. This makes FreeType handle endless loops in buggy - fonts much faster. - - * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready' - and `cvt_ready' are now negative if not initialized yet, otherwise - they indicate the error code of the last run. - - * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep, - tt_size_done_bytecode, tt_size_init_bytecode, - tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset): - Updated. - - * src/truetype/ttgload.c (tt_loader_init): Updated. - * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm' - and `prep' only if we are in the `glyf' table. - -2014-07-12 Werner Lemberg <wl@gnu.org> - - * builds/vms/ftconfig.h: Synchronize. - Problem reported by Alexei. - -2014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Clean up bitmap conversion. - - * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use - appropriate FT_DivFix and remove superfluous upscaling. - -2014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Small optimization of the ancient code. - - * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the - condition for direct 32-bit calculations. - -2014-06-27 Werner Lemberg <wl@gnu.org> - - Fix Apple standard glyph names. - - * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with - `tools/glnames.py' - - Problem reported by Adam Twardoch <adam@fontlab.com>. - -2014-06-17 Werner Lemberg <wl@gnu.org> - - Partially revert commit from 2014-06-13. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move - declaration of `p_first' and `p_last' out of the loop. - -2014-06-17 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/. - - This simplifies cross-compiling. - -2014-06-13 Werner Lemberg <wl@gnu.org> - - Fix more compiler warnings. - Reported by Wojciech Mamrak <wmamrak@gmail.com>. - - * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): - Make integer constant unsigned. - - * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) - <TT_SBIT_TABLE_TYPE_SBIX>: Fix types. - (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper - casts. - -2014-06-13 Werner Lemberg <wl@gnu.org> - - Fix compiler warnings. - Reported by Wojciech Mamrak <wmamrak@gmail.com>. - - * src/autofit/afglobal.c (af_face_globals_compute_style_coverage), - src/autofit/afmodule.c (af_property_set): Fix `signed' vs. - `unsigned' issues. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler - happy. - - * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements - for `fir'. - Fix `signed' vs. `unsigned' issues. - - * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused. - (WRITE_USHORT, WRITE_ULONG): Add proper casts. - - * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts. - - * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1' - and `B2'. - -2014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com> - - [cmake] Add option to build OS X framework. - - * CMakeLists.txt: Update accordingly. - - * builds/mac/freetype-Info.plist: New file. - -2014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com> - - * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'. - -2014-05-11 Werner Lemberg <wl@gnu.org> - - [autofit] Fix variable initializations. - - * src/autofit/afhints.c (af_glyph_hints_reload): Assign default - values to `in_dir' and `out_dir' for all points. - -2014-05-11 Werner Lemberg <wl@gnu.org> - - [autofit] Fix crash with font `CabinSketch-Bold.ttf'. - - Problem reported by Ralf S. Engelschall <rse@engelschall.com>. - - * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for - finding first non-near point. - Properly initialize non-near point deltas. - -2014-05-01 Werner Lemberg <wl@gnu.org> - - [autofit] Add blue-zone support for Devanagari. - - This essentially moves the Devanagari script from the `Indic' hinter - to the `Latin' hinter. Thanks to Girish Dalvi - <girish.dalvi@gmail.com> for guidance with blue zone characters! - - * src/autofit/afblue.dat: Add blue zone data for Devanagari. - - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Devanagari standard characters and - move data out of AF_CONFIG_OPTION_INDIC block. - - * src/autofit/afranges.c: Move Devanagari data out of - AF_CONFIG_OPTION_INDIC block. - Move U+20B9, (new) Rupee sign, from Latin to Devanagari. - - * src/autofit/afstyles.h: Update Devanagari data; in particular, use - AF_WRITING_SYSTEM_LATIN. - -2014-05-01 Werner Lemberg <wl@gnu.org> - - [autofit] Fix handling of neutral blue zones in stems. - - * src/autofit/afhints.h (AF_Edge_Flags): New value - `AF_EDGE_NEUTRAL'. - - * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace - neutral blue zones with AF_EDGE_NEUTRAL. - (af_latin_hint_edges): Skip neutral blue zones if necessary. - -2014-04-28 Werner Lemberg <wl@gnu.org> - - [autofit] Introduce neutral blue zones to the latin module. - - Such blue zones match either the top or the bottom of a contour. We - need them for scripts where accent-like elements directly touch the - base character (for example, some vowel signs in Devanagari, cf. - U+0913 or U+0914). - - * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New - property. - - * src/autofit/afblue.h: Regenerated. - - * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro. - (AF_LATIN_BLUE_NEUTRAL): New enumeration value. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues, - af_latin_hints_compute_blue_edges): Handle neutral blue zones. - -2014-04-25 Werner Lemberg <wl@gnu.org> - - * src/autofit/hbshim.c: Partially revert commit from 2014-04-17. - - Using input glyph coverage data is simply wrong. - - Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and - Mantas Mikulėnas <grawity@gmail.com>. - -2014-04-23 Werner Lemberg <wl@gnu.org> - - * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode. - - This spot has been missed while introducing support for various - drop-out modes years ago (including no drop-out mode, which this - commit fixes). - - Problem reported by Patrick Thomas <pthomas505@gmail.com>. - -2014-04-22 Werner Lemberg <wl@gnu.org> - - * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/. - -2014-04-20 Werner Lemberg <wl@gnu.org> - - [autofit] Fix Savannah bug #42148. - - The adaptation of the cjk auto-hinter module to blue stringsets in - 2013-08-25 had three severe bugs. Mea culpa. - - 1. Contrary to the latin auto-hinter, characters for reference and - overshoot values of a blue zone are specified separately. Due to - the screwed-up change it didn't work at all. - - 2. A boolean comparison was erroneously replaced with a cast, - causing invalid results with the `^' operator later on. The - visual artifact caused by this problem is the topic of the bug - report. - - 3. Two flag values were inverted, causing incorrect assignment of - reference and overshoot values. - - * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new - syntax to have both reference and overshoot characters in a single - string. This is error #1. - Add extensive comments. - - * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no - longer used. - (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values. - This is error #3. - - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1. - Use character `|' to separate characters for reference and overshoot - values. - Improve tracing messages, synchronizing them with the latin - auto-hinter. - (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'. - This is error #2. - (af_cjk_align_linked_edge): Add tracing message. - - * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer - used. - -2014-04-17 Werner Lemberg <wl@gnu.org> - - [autofit] More coverage fixes for complex scripts. - - * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage - of GSUB lookups into output coverage. Otherwise, ligatures are not - handled properly. - Don't check blue zone characters for default coverage. - -2014-04-17 Werner Lemberg <wl@gnu.org> - - Make `FT_Get_SubGlyph_Info' actually work. - - * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok - if there is no error. - -2014-04-15 Werner Lemberg <wl@gnu.org> - - [afblue.pl]: Minor improvements. - - * src/tools/afblue.pl: Allow whitespace before comments. - Ignore whitespace in strings. - -2014-04-14 Werner Lemberg <wl@gnu.org> - - [autofit] Improve coverage handling. - - * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs - appearing in the GPOS table if we are processing the default - coverage. - -2014-04-13 David Weber <weber.aulendorf@googlemail.com> - - [smooth] Fix stand-alone compilation. - - * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define. - -2014-04-12 Werner Lemberg <wl@gnu.org> - - [autofit] Redesign the recognition algorithm of strong points. - - In particular, local extrema without horizontal or vertical segments - are better recognized: - - + A + D - \ / - \ / - \ / - \ / - \ + C - \ / - B +/ - - If the distances AB and CD are large, point B wasn't previously - detected as an extremum since the `ft_corner_is_flat' function - `swallowed' BC regardless of its direction, tagging point B as weak. - The next iteration started at B and made `ft_corner_is_flat' swallow - point C, tagging it as weak also, et voilà. - - To improve that, another pass gets now performed before calling - `ft_corner_is_flat' to improve the `topology' of an outline: A - sequence of non-horizontal or non-vertical vectors that point into - the same quadrant are handled as a single, large vector. - - Additionally, distances of near points are now accumulated, which - makes the auto-hinter handle them as if they were prepended to the - next non-near vector. - - This generally improves the auto-hinter's rendering results. - - * src/autofit/afhints.c (af_glyph_hints_reload): Implement it. - - * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag - `AF_FLAG_NEAR'. - -2014-04-05 Werner Lemberg <wl@gnu.org> - - [autofit] Improve scoring algorithm for identifying stems. - - Problem reported by Karsten Lücke <karsten.luecke@kltf.de>. - - The new algorithm takes care of the width of stems: If the distance - between two segments is larger than the largest stem width, the - demerits quickly increase for larger distances. This improves - hinting of slanted fonts (especially if the inner parts of serifs - have non-horizontal `shoulders'), avoiding false stem links. - - * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest - stem width (if available) to compute better demerits for distances - between stems. - (af_latin_hints_detect_features): Pass stem width array and array - size. - (af_latin_metrics_init_widths): Updated to use original algorithm. - (af_latin_hints_apply): Updated to use new algorithm. - - * src/autofit/aflatin.h: Updated. - * src/autofit/afcjk.c: Updated. - -2014-04-03 Werner Lemberg <wl@gnu.org> - - Don't require `gzip' module for `sfnt'. - - Reported by Preet <prismatic.project@gmail.com>. - - * src/sfnt/sfobjs.c (woff_open_font): Guard use of - FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB. - -2014-03-27 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #38235. - - Work around a bug in pkg-config version 0.28 and earlier: If a - variable value gets surrounded by doublequotes (in particular values - for the `prefix' variable), the prefix override mechanism fails. - - * builds/unix/freetype2.in: Don't use doublequotes. - * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory - names with backslashes. - -2014-03-24 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #41946. - - Based on a patch from Marek Kašík <mkasik@redhat.com>. - - * builds/unix/configure.raw (LIBS_CONFIG): Remove. - * builds/unix/freetype-config.in (libs): Hard-code value. - * builds/unix/unix-def.in: Updated. - -2014-03-22 Werner Lemberg <wl@gnu.org> - - Another revert for the change from 2014-03-18. - - Problem reported by Nikolaus Waxweiler <madigens@gmail.com>. - - * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol - gets always exported. - -2014-03-20 Werner Lemberg <wl@gnu.org> - - CMakeLists.txt: Another fix for include directories. - - Problem reported by Taylor Holberton <taylorcholberton@gmail.com>. - -2014-03-19 Werner Lemberg <wl@gnu.org> - - CMakeLists.txt: Fix include directories. - - Problem reported by Taylor Holberton <taylorcholberton@gmail.com>. - -2014-03-19 Werner Lemberg <wl@gnu.org> - - Partially revert last commit. - - Found by Alexei. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing - those variables is plain wrong, since we are in a loop. - -2014-03-18 Sean McBride <sean@rogue-research.com> - Werner Lemberg <wl@gnu.org> - - Fix clang warnings. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize - some variables. - - * src/base/ftcalc.c (FT_MulFix): Only use code if - `FT_MULFIX_INLINED' is not defined. - - * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c - (ftc_basic_image_family_class, ftc_basic_image_cache_class, - ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class), - src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c - (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c - (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make - function static. - - * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant - code. - -2014-03-17 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #41869. - - This works around a problem with HarfBuzz (<= 0.9.26), which doesn't - validate glyph indices returned by - `hb_ot_layout_lookup_collect_glyphs'. - - * src/autofit/hbshim.c (af_get_coverage): Guard `idx'. - - * docs/CHANGES: Updated. - -2014-03-14 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.raw: Don't show error messages of `which'. - -2014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com> - - Fix cppcheck 1.64 warning. - - * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer - dereference in case of error. - -2014-03-09 Sean McBride <sean@rogue-research.com> - - * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning. - -2014-03-06 Werner Lemberg <wl@gnu.org> - - * Version 2.5.3 released. - ========================= - - - Tag sources with `VER-2-5-3'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.5.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.5.2/2.5.3/, s/252/253/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. - - * builds/unix/configure.raw (version_info): Set to 17:2:11. - * CMakeLists.txt (VERSION_PATCH): Set to 3. - * docs/CHANGES: Updated. - -2014-03-06 Werner Lemberg <wl@gnu.org> - - Fixes for compilation with C++. - - * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'. - (af_get_coverage): Updated. - (COVERAGE): Add cast. - -2014-03-06 Sean McBride <sean@rogue-research.com> - - Remove more clang analyzer warnings. - - * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c - (TT_Load_Glyph): Remove dead stores. - -2014-03-05 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.raw: Simplify. - -2014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Fix a bug in configure in library dependency setting - Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652. - - * builds/unix/configure.raw: Use `x"${xxx}" != xno' style. - -2014-03-04 Werner Lemberg <wl@gnu.org> - - Minor fix for `make devel'. - - * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use - pkg-config for bzip2 since not all GNU/Linux distributions have - `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include - normally). - -2014-03-04 Sean McBride <sean@rogue-research.com> - - Fix several clang static analyzer dead store warnings. - - * src/autofit/afhints.c (af_glyph_hints_reload, - af_glyph_hints_align_weak_points): Remove unnecessary assignments. - - * src/bdf/bdflib.c (bdf_font_load): Ditto. - - * src/pshinter/pshalgo.c (psh_glyph_compute_extrema, - psh_glyph_interpolate_other_points): Ditto. - - * src/type1/t1load.c (T1_Set_MM_Blend): Ditto. - -2014-03-03 Werner Lemberg <wl@gnu.org> - - Rewrite library option handling in `configure'. - - o Introduce `auto' value for `--with-XXX' library options; this is - now the default. - - o First use `pkg-config' for library detection, then fall back to - other tests. - - * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png, - --with-harfbuzz): Rewrite. - Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf' - variables to collect data for `freetype2.pc' and `freetype-config'. - (FT2_EXTRA_LIBS): Renamed to ... - (ft2_extra_libs): This since it gets no longer substituted. - (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG): - New output variables, replacing `XXX_PKG' and `LIBXXX'. - Add notice at the end of `configure' showing the library - configuration. - - * builds/unix/freetype-config.in (--static): New command line - option. - (libs): Updated. - (staticlibs): New variable, to be used if `--static' is given. - * docs/freetype-config.1: Document `--static'. - - * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated. - -2014-03-01 Werner Lemberg <wl@gnu.org> - - Avoid `long long' warnings with older gcc compilers. - Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. - - * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for - versions < 4.6. This is especially needed for Max OS X since this - OS runs a gcc variant (or emulation) based on version 4.2.1. - -2014-03-01 Werner Lemberg <wl@gnu.org> - - * docs/INSTALL.CROSS: Revised and updated. - -2014-03-01 Werner Lemberg <wl@gnu.org> - - Make `make clean' remove `freetype2.pc'. - - This is a generated file at build time, not configure time. - - * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ... - (CLEAN): This variable. - -2014-03-01 Werner Lemberg <wl@gnu.org> - - Use pkg-config for detecting libpng and libbz2 also. - - * builds/unix/configure.raw (HAVE_PKG): New variable. - Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/. - Search for libpng using `pkg-config'. - Fix definition of `LIBHARFBUZZ' variable. - * builds/unix/freetype-config.in ($libs): Updated. - * builds/unix/freetype2.in: Add `URL' field. - Update `Requires.private' and `Libs.private'. - * builds/unix/unix-def.in: Updated. - -2014-03-01 Werner Lemberg <wl@gnu.org> - - Add configure support for HarfBuzz. - - * builds/unix/pkg.m4: New file. - * builds/unix/configure.raw: Search for libharfbuzz using - `pkg-config'. - Add `--without-harfbuzz' option. - * builds/unix/freetype-config.in, builds/unix/freetype2.in, - builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle - HarfBuzz. - - * docs/INSTALL.UNIX: Document interdependency of FreeType with - HarfBuzz. - -2014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com> - - [cff] Math simplifications. - - * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'. - * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division. - -2014-02-28 Dave Arnold <darnold@adobe.com> - - [cff] Fix Savannah bug #41697, part 2. - - * src/cff/cf2ft.c (cf2_initLocalRegionBuffer, - cf2_initGlobalRegionBuffer): It is possible for a charstring to call - a subroutine if no subroutines exist. This is an error but should - not trigger an assert. Split the assert to account for this. - -2014-02-28 Dave Arnold <darnold@adobe.com> - - [cff] Fix Savannah bug #41697, part 1. - - * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is - invalid. In this case, it is not safe to use the length of - `hStemHintArray'; the exception has already been recorded in - `hintMask'. - -2014-02-26 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #41696. - - * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate, - tt_cmap4_validate, tt_cmap14_validate): Fix limit tests. - -2014-02-26 Werner Lemberg <wl@gnu.org> - - [winfnt] Fix Savannah bug #41694. - - * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset. - -2014-02-26 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #41693. - - * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array. - -2014-02-26 Werner Lemberg <wl@gnu.org> - - [bdf] Fix Savannah bug #41692. - - bdflib puts data from the input stream into a buffer in chunks of - 1024 bytes. The data itself gets then parsed line by line, simply - increasing the current pointer into the buffer; if the search for - the final newline character exceeds the buffer size, more data gets - read. - - However, in case the current line's end is very near to the buffer - end, and the keyword to compare with is longer than the current - line's length, an out-of-bounds read might happen since `memcmp' - doesn't stop properly at the string end. - - * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons - stop at string ends. - -2014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [autofit] Fix `make multi' compilation. - - * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'. - -2014-02-19 Werner Lemberg <wl@gnu.org> - Simon Bünzli <zeniko@gmail.com> - - Fix Savannah bug #32902. - - Patch taken from - - https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87 - - with slight modifications. - - * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to - handle fonts that incorrectly use \r at the beginning of an eexec - block. - -2014-02-19 Simon Bünzli <zeniko@gmail.com> - - Fix Savannah bug #41590. - - * src/type1/t1load.c (parse_encoding): Protect against invalid - number. - -2014-02-12 Dave Arnold <darnold@adobe.com> - - [cff] Optimize by using `FT_MulDiv'. - Suggested by Alexei. - - * src/cff/cf2font.c (cf2_computeDarkening): Do it. - -2014-02-12 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #41465. - - * builds/unix/unix-def.in (CLEAN): Add `freetype-config'. - (DISTCLEAN): Remove `freetype-config'. - -2014-02-08 Sean McBride <sean@rogue-research.com> - - Fix clang static analyzer and compiler warnings. - - * src/autofit/afhints.c (af_glyph_hints_align_weak_points), - src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>, - src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c - (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style), - src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c - (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load), - src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c - (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next, - tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead - code. - - * src/autofit/afmodule.c (af_property_get_face_globals, - af_property_set, af_property_get), src/base/ftbitmap.c - (ft_gray_for_premultiplied_srgb_bgra): Make functions static. - - * src/base/ftobjs.c (ft_remove_renderer): Protect against - library == NULL. - (ft_property_do): Make function static. - - * src/base/ftrfork.c: Include `ftbase.h'. - - * src/sfnt/ttsbit.c (tt_face_load_sbix_image) - [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c - (T1_Compute_Max_Advance): Avoid compiler warning. - - * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of - variable. - -2014-02-08 Werner Lemberg <wl@gnu.org> - - Fix Windows build directories. - - The build target is now `windows' instead of `win32'. - - Problem reported by Nickolas George <darknova.clan@gmail.com>. - - * builds/modules.mk: Don't use `win32' and `win16' (!) but - `windows'. - - * builds/windows/detect.mk, builds/windows/win32-def.mk: - s/win32/windows/. - -2014-02-08 Eugen Sawin <esawin@mozilla.com> - - Fix Savannah bug #41507. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) - [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling. - -2014-02-08 Dave Arnold <darnold@adobe.com> - - [cff] Fix minor performance bug. - - * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone - calculations are now cached and not recomputed on each glyph. - -2014-02-05 Werner Lemberg <wl@gnu.org> - - Fix problems with perl 5.8.8 as distributed with current MinGW. - - * src/tools/afblue.pl: Work-around for Perl bug #63402. - (string_re): Avoid `possessive quantifiers', which have been - introduced in Perl version 5.10. - -2014-02-04 Werner Lemberg <wl@gnu.org> - - Fix compilation with MinGW. - - Right now, compilation out of the box with latest MinGW is broken - due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode, - cf. - - https://sourceforge.net/p/mingw/bugs/2024/ - https://sourceforge.net/p/mingw/bugs/2046/ - - * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW. - -2014-02-04 Werner Lemberg <wl@gnu.org> - - [autofit] Minor fix. - - * src/autofit/afcjk.c (af_cjk_metrics_init_widths), - src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling - of alternative standard characters. - This also fixes a compilation warning in non-debug mode. - -2014-02-03 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #41363. - - * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into - parameter check. - (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if - we are scaling the outline. - (cf2_getPpemY): Remove problematic assertion. - -2014-01-26 Werner Lemberg <wl@gnu.org> - - [autofit] Introduce two more slots for standard characters. - - This is useful for OpenType features like `c2sc' (caps to small - caps) that don't have lowercase letters by definition, or other - features that mainly operate on numerals. - - * src/autofit/afscript.h: Add more standard characters. - - * src/autofit/aftypes.h: Update use of `SCRIPT' macro. - (AF_ScriptClassRec): Add members to hold two more standard - characters. - (AF_DEFINE_SCRIPT_CLASS): Updated. - - * src/autofit/afglobal.c, src/autofit/afglobal.h, - * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c: - Update use of `SCRIPT' macro. - - * src/autofit/afcjk.c (af_cjk_metrics_init_widths), - src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more - standard characters. - -2014-01-24 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #41320. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues) - <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'. - -2014-01-23 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #41310. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>: - Don't check metrics, which this format doesn't have. - This is another correction to the commit from 2013-11-21. - -2014-01-23 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #41309. - - * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result - of `T1_ToFixedArray'. - - * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with - `t1_parse_font_matrix'. - - * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with - `t1_parse_font_matrix'. - (t42_parse_encoding): Synchronize with `t1_parse_encoding'. - - * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>, - <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'. - -2014-01-22 Werner Lemberg <wl@gnu.org> - - * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks. - -2014-01-16 Werner Lemberg <wl@gnu.org> - - [autofit] Improve tracing of style coverages. - - * include/internal/fttrace.h: Add `afglobal' for tracing style - coverages. - - * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H. - (FT_COMPONENT): Define. - (af_face_globals_compute_style_coverage): Trace `gstyles' array - data. - -2014-01-09 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #41158. - - * builds/unix/install.mk (install): Create man page directory. - -2014-01-08 Chongyu Zhu <lembacon@gmail.com> - - [arm] Fix Savannah bug #41138, part 2. - - * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h - (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix - preprocessor conditionals for `add.w'. - -2014-01-08 Werner Lemberg <wl@gnu.org> - - [autofit] Fix Savannah bug #41138, part 1. - - * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary - enumeration names for generated `#else'. - - * src/autofit/afblue.h: Regenerated. - -2014-01-06 Werner Lemberg <wl@gnu.org> - - Add manual page for `freetype-config'. - Contributed by Nis Martensen <nis.martensen@web.de>. - - * docs/freetype-config.1: New file. - - * builds/unix/unix-def.in (mandir): Define. - * builds/unix/install.mk (install, uninstall): Handle manpage. - -2014-01-05 Werner Lemberg <wl@gnu.org> - - [autofit] Minor fixes for `afblue.pl'. - - * src/tools/afblue.pl (aux_name): Don't use `reverse'. - <Handling #endif>: Use proper indentation for generated `#else'. - - * src/autofit/afblue.h: Regenerated. - -2014-01-04 Werner Lemberg <wl@gnu.org> - - [autofit] Fix Indic scripts. - - Split the single, incorrect Indic entry into separate scripts so - that the covered ranges are the same: Bengali, Devanagari, Gujarati, - Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese, - Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove - entries for Meetei Mayek and Sharada – the Unicode ranges were - incorrect (and nobody has complained about that), fonts are scarce - for those scripts, and the Indic auto-hinter support is rudimentary - anyways. - - * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and - AF_CONFIG_OPTION_CJK. - - * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro. - Use it, together with AF_CONFIG_OPTION_INDIC and - AF_CONFIG_OPTION_CJK, to update. - - * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated. - [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed. - Sort entries by tags. - -2014-01-03 Werner Lemberg <wl@gnu.org> - - [autofit] Thinko. - - * src/autofit/hbshim.c (af_get_char_index): Similar to - `af_get_coverage', reject glyphs which are not substituted. - -2014-01-03 Werner Lemberg <wl@gnu.org> - - [autofit] Fix handling of default coverages. - - With this commit, the implementation of coverage handling is - completed. - - * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to - do. - Reject coverages which don't contain appropriate glyphs for blue - zones. - -2014-01-03 Werner Lemberg <wl@gnu.org> - - [autofit] Fix handling of default coverages. - - * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): - First handle non-default coverages, then the default coverage of the - default script, and finally the other default coverages. - -2014-01-03 Werner Lemberg <wl@gnu.org> - - [autofit] Fix scaling of HarfBuzz shaping. - - * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM. - -2014-01-03 Werner Lemberg <wl@gnu.org> - - [autofit] Better ftgrid support. - - * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add - parameters `is_blue' and `blue_offset'. - -2014-01-01 Werner Lemberg <wl@gnu.org> - - [autofit] Remove some styles. - - * src/autofit/afcover.h: Remove coverages for alternative fractions, - denominators, numerators, and fractions. - - * src/autofit/afstyles.h (META_STYLE_LATIN): Updated. - -2014-01-01 Werner Lemberg <wl@gnu.org> - - [autofit] Add more styles. - - * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New - auxiliary macros; use them to define styles for Cyrillic, Greek, and - Latin. - - * src/autofit/afcover.h: Remove coverage for oldstyle figures. - Since those digits are used in combination with ordinary letters, it - makes no sense to handle them separately. - - * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit - `options' parameter to 4 bits. - -2014-01-01 Werner Lemberg <wl@gnu.org> - - [autofit] Fix style assignments to glyphs. - - * src/autofit/hbshim.c (af_get_coverage) - [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also - so that we can skip glyphs that have both GSUB and GPOS data. - -2014-01-01 Werner Lemberg <wl@gnu.org> - - * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/. - -2014-01-01 Werner Lemberg <wl@gnu.org> - - [autofit] Implement and use `af_get_char_index' with HarfBuzz. - - * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]: - Redefine to construct HarfBuzz features. - (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use - `y_offset' to adjust `best_y'. - -2013-12-31 Werner Lemberg <wl@gnu.org> - - [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i. - -2013-12-31 Werner Lemberg <wl@gnu.org> - - [autofit] Fix interface of `af_get_char_index'. - - * src/autofit/hbshim.c (af_get_char_index): Return error value. - Add argument for y offset (to be used in a yet-to-come patch). - - * src/autofit/hbshim.h, src/autofit/afcjk.c, - src/autofit/aflatin.c: Updated. - -2013-12-30 Werner Lemberg <wl@gnu.org> - - [autofit] Don't combine multiple features into one set. - - Combining them, as originally envisioned, would lead to much more - complicated code, as investigations have shown meanwhile. The major - drawback is that we run out of available style slots much earlier. - However, this is only a theoretical issue since we don't support a - large number of scripts currently. - - * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with - a single-element `COVERAGE' macro, sort the elements by the feature - tags, and add entry for `ruby'. - - * src/autofit/aftypes.h: Updated. - * src/autofit/hbshim.c: Updated. - -2013-12-28 Werner Lemberg <wl@gnu.org> - - [autofit] Code shuffling to reduce use of cpp macros. - - * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): - Call `af_get_coverage' unconditionally. - - * src/autofit/autofit.c: Include `hbshim.c' unconditionally. - - * src/autofit/hbshim.c (af_get_coverage) - [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function. - - * src/autofit/hbshim.h: Provide function declarations - unconditionally. - -2013-12-28 Werner Lemberg <wl@gnu.org> - - [autofit] Add wrapper function for `FT_Get_Char_Index'. - - Yet-to-come changes will provide HarfBuzz functionality for the new - function. - - * src/autofit/hbshim.c (af_get_char_index): New function. - * src/autofit/hbshim.h: Updated. - - * 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. - -2013-12-28 Werner Lemberg <wl@gnu.org> - - [autofit] Use `global' HarfBuzz font object. - - We now use `hb_font' instead of `hb_face' since yet-to-come changes - need this. - - * src/autofit/afglobal.h: Include `hbshim.h'. - (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member - `hb_font'. - - * src/autofit/afglobal.c (af_face_globals_new) - [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'. - (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy - `hb_font'. - - * src/autofit/hbshim.h: Include HarfBuzz headers. - - * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz - headers. - (af_get_coverage): Updated. - -2013-12-27 Werner Lemberg <wl@gnu.org> - - [autofit] Handle `DFLT' OpenType script for coverages. - - * include/ftautoh.h: Document new `default-script' property. - - * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for - type of first parameter. - (script_tags): Add one more element. - (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag. - - * src/autofit/hbshim.h: Updated. - - * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): - Updated. - - * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro. - - * src/autofit/afmodule.h (AF_ModuleRec): New `default_script' - member. - - * src/autofit/afmodule.c (af_property_set, af_property_get): Handle - `default-script' property. - (af_autofitter_init): Updated. - -2013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [ftrfork] Fix the face order difference between POSIX and Carbon. - - The fragmented resources in Suitcase and .dfont should be reordered - when `POST' resource for Type1 is being restored, but reordering of - sfnt resources induces the different face order. Now the ordering - is restricted to `POST' resource only, to prevent the different - order issue (e.g. the face index in the fontconfig cache generated - with Carbon framework is incompatible with that by FreeType 2 - without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung. - - https://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html - https://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html - - * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch - `sort_by_res_id' to control the fragmented resource ordering. - * include/internal/ftrfork.h: Declare new switch. - * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST' - resource, and disable the sorting for `sfnt' resource. - -2013-12-25 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #40997. - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to - adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already - be set. - * src/cff/cffobjs.c (cff_face_init): Ditto. - * src/cid/cidobjs.c (cid_face_init): Ditto. - * src/pcf/pcfread.c (pcf_load_font): Ditto. - * src/pfr/pfrobjs.c (pfr_face_init): Ditto. - * src/type1/t1objs.c (T1_Face_Init): Ditto. - * src/type42/t42objs.c (T42_Face_Init): Ditto. - * src/winfonts/winfnt.c (FNT_Face_Init): Ditto. - -2013-12-21 Werner Lemberg <wl@gnu.org> - - [autofit] Introduce `coverages'. - - Coverages are the interface to the HarfBuzz library to access - OpenType features for handling glyphs not addressable by the cmap. - - Right now, compilation of HarfBuzz is only added to the development - build. A solution for standard build mode will be delayed until - HarfBuzz gets split into two libraries to avoid mutual dependencies - between FreeType and HarfBuzz. - - Note that this is only a first step in handling coverages, basically - providing the framework only. Code for handling selected OpenType - features (this is, actually using the data in `afcover.h') will - follow. - - * devel/ftoption.h, include/config/ftoption.h - (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro. - - * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h: - New files. - - * src/autofit/afscript.h: Add HarfBuzz script name tags. - - * src/autofit/afstyles.h: Add default coverage enumeration values. - - * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros. - (AF_Coverage): New enumeration (generated by `afcover.h'). - (AF_StyleClassRec): New member `coverage'. - (AF_DEFINE_STYLE_CLASS): Updated. - - * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage - data. - - * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros. - (AF_SCRIPT_FALLBACK): Renamed to ... - (AF_STYLE_FALLBACK): ... this. - - * src/autofit/afglobal.c: Include `hbshim.c'. - Update use of `SCRIPT' and `STYLE' macros. - (af_face_globals_compute_style_coverage) - [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'. - Update. - - * src/autofit/afmodule.h (AF_ModuleRec): - s/fallback_script/fallback_style/. - - * src/autofit/afmodule.c (af_property_set): Adapt handling of - `fallback-script' property to set a fallback style. - (af_property_get, af_autofitter_init): Updated. - - * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros. - - * src/autofit/afranges.h: Update use of `SCRIPT' macro. - - * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include - `hbshim.c'. - - * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'. - (AUTOF_DRV_H): Add `afcover.h'. - - * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for - all libraries needed by FreeType. - -2013-12-21 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #40975 (sort of). - - * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType - behave the same as the Windows TrueType engine for the invalid case. - -2013-12-21 Werner Lemberg <wl@gnu.org> - - [autofit] Make PIC mode work actually. - - * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the - enumeration values automatically generated by including `afscript.h' - and friends. - - * src/autofit/afpic.c (autofit_module_class_pic_init): Updated. - -2013-12-21 Werner Lemberg <wl@gnu.org> - - Fix PIC linking. - - * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix - generated function name. - - * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename - to ... - (FT_Init_Table_ft_raccess_guess_table): ... this so that the - function name correctly corresponds to what the macro framework - expects. - - * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so - that PIC functions are compiled also. - -2013-12-21 Werner Lemberg <wl@gnu.org> - - [base] Add missing dependencies to Makefile. - - * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'. - (BASE_H): Add `basepic.h'. - -2013-12-20 Werner Lemberg <wl@gnu.org> - - [autofit] Fix PIC compilation. - - * src/autofit/afcjk.c (af_cjk_metrics_init_widths), - src/autofit/aflatin.c (af_latin_metrics_init_widths) - [FT_CONFIG_OPTION_PIC]: Declare `globals'. - - * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and - AF_DEFINE_STYLE_CLASS. - - * src/autofit/afpic.c: Include `afglobal.h'. - (autofit_module_class_pic_init): Typo. - - * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS, - AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro - parameter and structure member. - -2013-12-20 Werner Lemberg <wl@gnu.org> - - [autofit] Introduce `styles'. - - This is the new top-level structure for handling glyph input data; - scripts are now defined separately. - - * src/autofit/aftypes.h (SCRIPT): Updated. - (AF_ScriptClassRec): Move `blue_stringset' and `writing_system' - members to ... - (AF_Style_ClassRec): ... this new structure. - (AF_Style): New enumeration. - (AF_StyleMetricsRec): Replace `script' enumeration with - `style_class' pointer. - (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated. - (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros. - - * src/autofit/afstyles.h: New file, using data from `afscript.h'. - * src/autofit/afscript.h: Updated. - - * src/autofit/afcjk.c (af_cjk_metrics_init_widths, - af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated. - - * src/autofit/afglobal.c (SCRIPT): Updated. - (STYLE): Redefine macro to load `afstyles.h'. - (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with... - (af_style_names): ... this array. - (af_face_globals_compute_script_coverage): Renamed to... - (af_face_globals_compute_style_coverage): ... this. - Updated. - (af_face_globals_new, af_face_globals_free, - af_face_globals_get_metrics): Updated. - - * src/autofit/afglobal.h (SCRIPT): Updated. - (STYLE): Redefine macro to load `afstyles.h'. - (AF_SCRIPT_FALLBACK): Update definition. This will get more - refinements with later on. - (AF_SCRIPT_UNASSIGNED): Replace with... - (AF_STYLE_UNASSIGNED): ... this macro. - (AF_FaceGlobalsRec): Updated. - - * src/autofit/aflatin.c (af_latin_metrics_init_widths, - af_latin_metrics_init_blues, af_latin_metrics_scale_dim, - af_latin_hint_edges): Updated. - - * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated. - (af_ltn2_uniranges): Removed. - - * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): - Updated. - - * src/autofit/afpic.c (autofit_module_class_pic_init): Updated. - * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro. - (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec' - members. - - * src/autofit/afranges.h: Updated. - - * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'. - -2013-12-19 Werner Lemberg <wl@gnu.org> - - [autofit] Factor scripts and uniranges out of writing system files. - - * src/autofit/afranges.c, src/autofit/afranges.h: New files. - - * src/autofit/afscript.h: Extend `SCRIPT' macro with more - parameters, taking data from the writing system files. - - * src/autofit/aftypes.h: Updated. - - * src/autofit/afglobal.c: Include `afranges.h'. - Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS. - * src/autofit/afglobal.c: Include `afranges.h'. - Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS. - - * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated. - * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated. - * src/autofit/afindic.c, src/autofit/afindic.h: Updated. - * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated. - * src/autofit/aflatin2.c, src/autofit/aflatin2.h: Updated. - - * src/autofit/afpic.c: Updated. - - * src/autofit/autofit.c: Include `afranges.c'. - * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'. - -2013-12-18 Werner Lemberg <wl@gnu.org> - - [autofit] More code orthogonality. - - * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class' - pointer to an `AF_ScriptClass' structure with `script' index of type - `AF_Script'. - Move some code around. - - * src/autofit/afcjk.c: Include `afpic.h'. - (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues, - af_cjk_hint_edges): Updated. - - * src/autofit/aflatin.c: Include `afpic.h'. - (af_latin_metrics_init_widths, af_latin_metrics_init_blues, - af_latin_metrics_scale_dim, af_latin_hint_edges): Updated. - - * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated. - - * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): - Updated. - -2013-12-18 Werner Lemberg <wl@gnu.org> - - [autofit] s/ScriptMetrics/StyleMetrics/. - -2013-12-18 Werner Lemberg <wl@gnu.org> - - [autofit] s/script_{metrics,hints}/style_{metrics,hints}/ - -2013-12-18 Werner Lemberg <wl@gnu.org> - - [autofit] s/gscripts/gstyles/. - -2013-12-18 Werner Lemberg <wl@gnu.org> - - [autofit] s/glyph_scripts/glyph_styles/. - - This is the first commit of a series to create a new top-level - structure (a `style') for handling scripts, writing_systems, and - soon-to-be-added coverages. - -2013-12-17 Werner Lemberg <wl@gnu.org> - - [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate. - -2013-12-11 Infinality <infinality@infinality.net> - - [truetype] Simplify logic of rendering modes. - - This patch unifies the subpixel and non-subpixel cases. - - * src/truetype/ttinterp.h (TT_ExecContextRec): Remove - `grayscale_hinting'; all code should refer to `grayscale' instead. - Remove unused `native_hinting' member. - Rename `subpixel_hinting' member to `subpixel. - - * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated. - (tt_loader_init): Updated. - - * src/truetype/ttinterp.c (Ins_GETINFO): Simplify. - Updated. - -2013-12-11 Werner Lemberg <wl@gnu.org> - - [documentation] Add section how to include FreeType header files. - Problem reported by David Kastrup <dak@gnu.org>. - - Surprisingly, a description how to do that was completely missing in - the API reference. - - * include/freetype.h, include/ftchapters.h: New documentation - section `header_inclusion'. - -2013-12-10 Werner Lemberg <wl@gnu.org> - - [autofit] s/DFLT/NONE/, s/dflt/none/. - -2013-12-10 Werner Lemberg <wl@gnu.org> - - [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/. - -2013-12-10 Werner Lemberg <wl@gnu.org> - - [truetype] Fix scaling of vertical phantom points. - - * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and - pp4.x also. - -2013-12-10 Werner Lemberg <wl@gnu.org> - - [truetype] Fix positioning of composite glyphs. - Problem reported by Nigel Tao <nigeltao@golang.org>. - - * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts - the glyph (component) by a fractional value computed from the LSB - phantom point. This is wrong, since the horizontal phantom points - get rounded horizontally later on. - -2013-12-08 Werner Lemberg <wl@gnu.org> - - * Version 2.5.2 released. - ========================= - - - Tag sources with `VER-2-5-2'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.5.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.5.1/2.5.2/, s/251/252/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. - - * builds/unix/configure.raw (version_info): Set to 17:1:11. - * CMakeLists.txt (VERSION_PATCH): Set to 2. - * docs/CHANGES: Updated. - -2013-12-07 Werner Lemberg <wl@gnu.org> - - [truetype] Next round in phantom point handling. - - Greg Hitchcock provided very interesting insights into the - complicated history of the horizontal positions of the TSB and BSB - phantom points. - - * src/truetype/ttgload.c (TT_LOADER_SET_PP) - [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and - `grayscale_hinting' flags as conditionals for the x position of TSB - and BSB. - -2013-12-05 Werner Lemberg <wl@gnu.org> - - * builds/freetype.mk (FT_CC): Removed. Unused. - -2013-12-04 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix handling of embedded bitmap strikes. - - This corrects the commit from 2013-11-21. Problem reported by - Andrey Panov <panov@canopus.iacp.dvo.ru>. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to - detect excessive bytes for bit-aligned bitmaps. - -2013-12-03 Werner Lemberg <wl@gnu.org> - - [truetype] Remove dead code. - - Reported by Nigel Tao <nigeltao@golang.org>. - - * include/internal/tttypes.h (TT_LoaderRec): Remove unused - `preserve_pps' field. - * src/truetype/ttgload.c (TT_Hint_Glyph): Updated. - -2013-12-03 Werner Lemberg <wl@gnu.org> - - [truetype] Fix phantom point handling. - - This is a further improvement to the changes from 2013-11-06. - - * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points - are rounded horizontally, vertical ones are rounded vertically. - (TT_LOADER_SET_PP): The horizontal position of vertical phantom - points in pre-ClearType mode is zero, as shown in the OpenType - specification. - -2013-12-02 Werner Lemberg <wl@gnu.org> - - [truetype] Fix change from 2013-11-20. - - Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to - `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a - `IS_HINTED' clause. - Also remove redundant check using `maxSizeOfInstructions' – in - simple glyphs, the bytecode data comes before the outline data, and - a validity test for this is already present. - -2013-11-27 Werner Lemberg <wl@gnu.org> - - [autofit] Fix use of dumping functions in `ftgrid' demo program. - - * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro. - (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, - af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to - handle output to stdout. - Use AF_DUMP. - (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, - af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed. - -2013-11-25 Werner Lemberg <wl@gnu.org> - - * Version 2.5.1 released. - ========================= - - - Tag sources with `VER-2-5-1'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.5.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.5.0/2.5.1/, s/250/251/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. - - * builds/unix/configure.raw (version_info): Set to 17:0:11. - * CMakeLists.txt (VERSION_PATCH): Set to 1. - * docs/CHANGES, docs/release: Updated. - -2013-11-23 Werner Lemberg <wl@gnu.org> - - [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'. - - * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS, - TRICK_NAMES_COUNT): Updated. - (trick_names): Add family name for the two fonts. - -2013-11-23 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo. - -2013-11-21 Werner Lemberg <wl@gnu.org> - - [sfnt] Typo. - - Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. - - * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width' - value if the font lacks an `OS/2' table. - -2013-11-21 Werner Lemberg <wl@gnu.org> - - [sfnt] Improve handling of buggy embedded bitmap strikes. - - We are now able to successfully load `AppleMyoungJo.ttf'. - Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph - format. - -2013-11-20 Werner Lemberg <wl@gnu.org> - - [truetype] Don't trust `maxp's `maxSizeOfInstructions'. - - Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see - - https://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html - - for details. - - * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep' - tables also for setting `autohint'. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from - `TT_Process_Composite_Glyph' for handling unreliable values of - `maxSizeOfInstructions'. - -2013-11-16 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix `OS/2' table version 5 support. - - We now follow the `official' announcement from Microsoft (on the - OpenType mailing list, which unfortunately hasn't a public archive). - - * include/freetype/tttables.h (TT_OS2): - s/usLowerPointSize/usLowerOpticalPointSize/, - s/usUpperPointSize/usUpperOpticalPointSize/. - - * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct - default values. - -2013-11-13 Werner Lemberg <wl@gnu.org> - - * builds/unix/ft2unix.h: Remove. No longer necessary. - - * builds/unix/install.mk (install): Updated. - -2013-11-13 Werner Lemberg <wl@gnu.org> - - Simplify header file hierarchy. - - This large patch changes the header file directory layout from - `include/freetype/...' to `include/...', effectively removing one - level. Since the file `ft2build.h' is also located in `include' - (and it stays there even after installation), all FreeType header - files are now in a single directory. - - Applications that use (a) `freetype-config' or FreeType's - `pkg-config' file to get the include directory for the compiler, and - (b) the documented way for header inclusion like - - #include <ft2build.h> - #include FT_FREETYPE_H - ... - - don't need any change to the source code. - - * include/freetype/*: Move up to... - * include/*: ... this directory. - - * builds/amiga/include/freetype/*: Move up to... - * builds/amiga/include/*: ... this directory. - - */*: Essentially do `s@/freetype/@/@' where appropriate. - - * CMakeLists.txt: Simplify. - * builds/unix/freetype-config.in, builds/unix/freetype2.in: For - `--cflags', return a single directory. - * builds/unix/install.mk (install): No longer try to remove `cache' - and `internal' subdirectories; instead, remove the `freetype' - subdirectory. - -2013-11-12 Werner Lemberg <wl@gnu.org> - - [truetype] Fix last `truetype' commit. - - * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position. - Return error value. - (load_truetype_glyph): Updated. - -2013-11-10 Werner Lemberg <wl@gnu.org> - - * docs/CMAKE: New dummy file. - -2013-11-08 Dave Arnold <darnold@adobe.com> - - [cff] Fix for hints that touch. - - * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for - finding index value of insertion point. - -2013-11-06 Werner Lemberg <wl@gnu.org> - - [truetype] Fix handling of phantom points in composite glyphs. - Problem reported by Nigel Tao <nigeltao@golang.org>. - - This is a follow-up commit to the previous one. - - * src/truetype/ttgload.c (load_truetype_glyph): Call - `tt_get_metrics' after loading the glyph header. - -2013-11-06 Werner Lemberg <wl@gnu.org> - - [truetype] Improve emulation of vertical metrics. - - This commit also improves the start values of vertical phantom - points. Kudos to Greg Hitchcock for help. - - * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass - `yMax' value. Replace code with fixed Microsoft definition. - (tt_get_metrics): Updated. - (TT_LOADER_SET_PP): Add explanation how to initialize phantom - points, taken from both the OpenType specification and private - communication with Greg (which will eventually be added to the - standard). - Fix horizontal position of `pp3' and `pp4'. - - * src/truetype/ttgload.h: Updated. - - * src/truetype/ttdriver.c (tt_get_advances): Updated. - - * docs/CHANGES: Updated. - -2013-11-05 Werner Lemberg <wl@gnu.org> - - * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/. - PlatformToolSet version 110 is for VC2012. - - Problem reported (with solution) by Dave Arnold <darnold@adobe.com>. - -2013-11-05 Werner Lemberg <wl@gnu.org> - - [truetype] Correctly reset point tags for glyph components. - Problem reported by Nigel Tao <nigeltao@golang.org>. - - * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop. - -2013-11-02 Werner Lemberg <wl@gnu.org> - - [truetype] Fix GETINFO opcode handling of subpixel hinting bits. - - * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to - get info on subpixel hinting. - - * docs/CHANGES: Updated. - -2013-11-02 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #40451. - - Simply apply the patch from the bug report. - - * builds/unix/ftconfig.in, builds/vms/ftconfig.h, - include/freetype/config/ftconfig.h: The used #pragma directives only - work with gcc versions 4.6 and higher. - -2013-11-01 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2013-11-01 Werner Lemberg <wl@gnu.org> - - [truetype] Minor code refactoring. - - Two benefits: The allocated FDEF (and IDEF) array gets slightly - smaller, and the `ttdebug' demo program has access to function - numbers without additional costs. - - Fortunately, no changes to FontForge are necessary – this is the - only external TrueType debugger I know of, but others may exist and - should check the code accordingly. - - * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and - `Cur_End' with a pointer to the corresponding `TT_DefRecord' - structure. - - * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF, - Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>): - Updated. - -2013-10-27 Werner Lemberg <wl@gnu.org> - - [sfnt] Implement support for `OS/2' table version 5. - - See - - http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism - - for the announcement. - - * include/freetype/tttables.h (TT_OS2): Add fields - `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns - this structure only as a pointer through `FT_Get_Sfnt_Table', there - shouldn't be any ABI problems. - - * src/sfnt/ttload.c (tt_face_load_os2): Implement it. - - * docs/CHANGES: Updated. - -2013-10-24 Werner Lemberg <wl@gnu.org> - - * README.git, docs/CHANGES, docs/INSTALL: Updated. - -2013-10-24 John Cary <cary@txcorp.com> - - Provide cmake support. - - * CMakeLists.txt: New file. - -2013-10-23 Kenneth Miller <kennethadammiller@yahoo.com> - Werner Lemberg <wl@gnu.org> - - Provide support for x64 builds in Visual C++ project files. - - * src/builds/win32: Renamed to... - * src/builds/windows: This. - - * src/builds/windows/vc2010/*: Updated to handle x64 target. - - * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where - appropriate. - -2013-10-22 Werner Lemberg <wl@gnu.org> - - * src/base/md5.c, src/base/md5.h: Updated to recent version. - - * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'. - - The canonical URL to get updates for this file is - - https://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/ - - as the author told me in private communication. - -2013-10-19 Werner Lemberg <wl@gnu.org> - - [autofit] s/SMALL_TOP/X_HEIGHT/. - - * src/autofit/afblue.dat: Updated. - - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/aflatin.c, src/autofit/aflatin.h, - src/autofit/aflatin2.c: Updated. - -2013-10-19 Werner Lemberg <wl@gnu.org> - - * src/autofit/afblue.dat: s/MINOR/DESCENDER/. - - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - -2013-10-16 Werner Lemberg <wl@gnu.org> - - [autofit] Add description strings to script entries. - - Currently, this is unused. - - * src/autofit/afscript.h: Do it. - * src/autofit/afglobal.c, src/autofit/afpic.c, - src/autofit/aftypes.h: Updated. - -2013-10-16 Werner Lemberg <wl@gnu.org> - - [autofit] Improve tracing message for extra light flag. - - * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it. - -2013-10-15 Chongyu Zhu <lembacon@gmail.com> - - [arm] Fix thumb2 inline assembly under LLVM. - - When using `ADD' with an immediate operand, the instruction is - actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the - immediate operand cannot exceed 4095. It will fail to compile with - LLVM. - - However, in GCC, due to some legacy compatibility considerations, - `ADD.W' will be automatically emitted when the immediate operand is - larger than 4095. - - * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h - (FT_MulFix_arm) [__GNUC__]: Support clang compiler. - - * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto. - -2013-10-12 Werner Lemberg <wl@gnu.org> - - [autofit] Improve tracing of `latin' hinter. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue - zone types. - (af_latin_metrics_scale_dim): Report scaling changes due to x height - alignment. - Report scaled stroke width and blue zone values. - -2013-10-03 Dave Arnold <darnold@adobe.com> - - * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero. - - Note that the old code avoided using a region of the piecewise - linear function where the slope was zero. The recovery was to use a - different section of the function, which produced a different, - incorrect amount of darkening. - -2013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us> - - * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'. - -2013-10-02 Dave Arnold <darnold@adobe.com> - - * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount. - - This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect - is to use a previous darkening amount when producing an unhinted, - unscaled outline. This can cause autohint samples in ftgrid and - ftview to be based on darkened CFF outlines instead of unhinted, - undarkened ones. - -2013-09-29 Dave Arnold <darnold@adobe.com> - - Fix Savannah bug #39295. - - The bug was caused by switching to the initial hintmap (the one in - effect when `moveto' executes) just before drawing the final element - in the charstring. This ensured that the path was closed (in both - Character Space and Device Space). But if the final element was a - curve and if the final hintmap was different enough from the initial - one, then the curve was visibly distorted. - - The first part of the fix is to draw the final curve using the final - hintmap as specified by the charstring. This corrects the - distortion but does not ensure closing in Device Space. It may - require the rasterizer to automatically generate an extra closing - line. Depending on the hintmap differences, this line could be from - zero to a couple pixels in length. - - The second part of the fix covers the case where the charstring - subpath is closed with an explicit line. We now modify that line's - end point to avoid the distortion. - - Some glyphs in the bug report font (TexGyreHeros-Regular) that show - the change are: - - 25ppem S (98) - 24ppem eight (52) - 25.5ppem p (85) - - Curves at the *end* of a subpath are no longer distorted. However, - some of these glyphs have bad hint substitutions in the middle of a - subpath, and these are not affected. - - The patch has been tested with a set of 106 fonts that shipped with - Adobe Creative Suite 4, together with 756 Open Source CFF fonts from - Google Fonts. There are 1.5 million glyphs, of which some 20k are - changed with the fix. A sampling of a few hundred of these changes - have been examined more closely, and the changes look good (or at - least acceptable). - - * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing' - to indicate that we synthesize a closepath line. - - * src/cff/cf2hints.c (cf2_glyphpath_init): Updated. - (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for - `lineto' operator) and adjust hint zone. - For synthesized closing lines, use end point in first hint zone. - (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In - particular, shift the detection of zero-length lines from character - space to device space. - (cf2_glyphpath_closeOpenPath): Remove assertion. - Updated. - -2013-09-25 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays. - -2013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [bdf, pcf] Refuse non-zero face_index. - - Suggested by Akira Tagoh, see - - https://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument' - error if the font could be opened but non-zero `face_index' is - given. - * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto. - - * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED - macro for `face_index' because it is validated later. - -2013-09-23 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #40090. - - * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit - 306f8c5d (from 2013-08-25) affecting this function. - -2013-09-22 Werner Lemberg <wl@gnu.org> - - [autofit] Disunify Cyrillic and Greek handling from Latin. - - * src/autofit/afscript.h: Add Cyrillic and Greek. - - * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK, - AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic. - (AF_BLUE_STRINGSET_LATN): Fix typo. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New - arrays. - (af_grek_script_class, af_cyrl_script_class): New scripts. - * src/autofit/aflatin.h: Updated. - -2013-09-20 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2013-09-20 Behdad Esfahbod <behdad@behdad.org> - - Fix vertical size of emboldened glyphs. - - Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709 - - * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY' - also. - -2013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation - algorithm description. - -2013-09-11 Werner Lemberg <wl@gnu.org> - - [autofit] Improve Hebrew rendering. - - This change introduces a new blue zone property - `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short - top segments. - - * src/autofit/afblue.dat: Fix Hebrew blue strings. - Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP. - - * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro. - - * src/autofit/afblue.c, src/autofit/afblue.h: Updated. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle - `AF_LATIN_IS_LONG_BLUE'. - - * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro. - -2013-08-28 Behdad Esfahbod <behdad@google.com> - - [sfnt] Fix frame access while reading WOFF table directory. - - * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame - while reading the directory entries for the whole loop. - -2013-08-29 Werner Lemberg <wl@gnu.org> - Behdad Esfahbod <behdad@google.com> - - Implement support for WOFF containers. - - We simply synthesize a SFNT from the WOFF, create a memory stream - for the new data, and load the SFNT as usual. - - Does NOT add any API to access WOFF metadata or private blocks. - - * include/freetype/internal/tttypes.h (WOFF_HeaderRec, - WOFF_TableRec): New structures. - - * include/freetype/tttags.h (TTAG_wOFF): New macro. - - * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling - `open_face'. - - * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include - `FT_GZIP_H'. - (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for - writing to a stream. - (sfnt_stream_close, compare_offsets, woff_open_font): New functions. - (sfnt_open_font): Handle `TTAG_wOFF'. - (sfnt_init_face): Set `stream' after calling `sfnt_open_font'. - - * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling - `sfnt->init_face'. - - * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an - argument so that a changed stream survives. - Update callers. - -2013-08-28 Werner Lemberg <wl@gnu.org> - - [gzip] New function `FT_Gzip_Uncompress'. - - This is modeled after zlib's `uncompress' function. We need this - for WOFF support. - - * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress): - New function. - - * src/gzip/rules.mk: Rewrite to better reflect dependencies. - -2013-08-28 Werner Lemberg <wl@gnu.org> - - [autofit] Fix `make multi' compilation. - - * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include - `afblue.h' but `aftypes.h'. - * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'. - -2013-08-28 Werner Lemberg <wl@gnu.org> - - [autofit] Fix C++ compilation. - - * src/autofit/afglobal.c (af_face_globals_get_metrics), - src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c - (af_deva_script_class): Use proper casts. - -2013-08-27 Behdad Esfahbod <behdad@google.com> - - * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos. - -2013-08-27 Behdad Esfahbod <behdad@google.com> - - FT_Open_Face: Improve external stream handling. - - If the font's `clazz->init_face' function wants to swap to new - stream, handling of whether original stream was external could - result to either memory leak or double free. Mark externality into - face flags before calling `init_face' such that the clazz can handle - external streams properly. - - * src/base/ftobjs.c (FT_Open_Face): Move code to set - FT_FACE_FLAG_EXTERNAL_STREAM to... - (open_face): This function. - -2013-08-27 Werner Lemberg <wl@gnu.org> - - Remove `FT_SqrtFixed' function. - - It's no longer used. - - * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it. - -2013-08-27 Werner Lemberg <wl@gnu.org> - - [autofit] While tracing, report script names instead of ID values. - - * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]: - New array. - * src/autofit/afglobal.h: Updated. - - * src/autofit/afcjk.c (af_cjk_metrics_init_widths, - af_cjk_hint_edges): Use `af_script_names'. - * src/autofit/aflatin.c (af_latin_metrics_init_widths, - af_latin_hint_edges): Ditto. - -2013-08-26 Werner Lemberg <wl@gnu.org> - - [autofit] Report used script while hinting a glyph. - - * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c - (af_latin_hint_edges): Implement it. - -2013-08-26 Werner Lemberg <wl@gnu.org> - - [autofit] Add support for Hebrew script. - - * src/autofit/afblue.dat: Add blue strings for Hebrew. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/aflatin.c (af_hebr_uniranges): New array. - (af_hebr_script_class): New script. - * src/autofit/aflatin.h, src/autofit/afscript.h: Updated. - -2013-08-26 Werner Lemberg <wl@gnu.org> - - [autofit] Improve tracing messages. - - * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script - ID in tracing message. - (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner - loop. - Improve tracing messages. - (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable - `num_actions' to count hinting actions. - Improve tracing messages. - - * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention - script ID in tracing message. - (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing - messages. - -2013-08-26 Werner Lemberg <wl@gnu.org> - - Better tracing of loaded glyphs. - - Previously, the loading of a glyph was traced at level 4, if at all. - With this change, all font loading routines emit a tracing message - at level 1, making it easier to select tracing output (for example - using F2_DEBUG="any:1 afhints:7 aflatin:7"). - - * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message. - * src/cff/cffdrivr.c (cff_glyph_load): Ditto. - * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing - messages. - * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing - message. - * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto. - * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message. - * src/truetype/ttgload.c (TT_Load_Glyph): Ditto. - * src/type1/t1gload.c (T1_Load_Glyph): Ditto. - * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto. - * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto. - -2013-08-26 Werner Lemberg <wl@gnu.org> - - [autofit] Fix script selection. - - * src/autofit/afglobal.c (af_face_globals_get_metrics): Use - `AF_SCRIPT_DFLT', not value 0. - Simplify code. - - * src/autofit/afscript.h: Sort by script name. - -2013-08-26 Werner Lemberg <wl@gnu.org> - - [autofit] Make `dummy' hinter work as expected. - - * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling - information. - (af_dummy_hints_apply): Scale the glyphs. - -2013-08-25 Werner Lemberg <wl@gnu.org> - - [autofit] Make `cjk' module use blue stringsets. - - * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed. - (af_cjk_hani_blue_chars): Removed. - (AF_CJK_BLUE_TYPE_*): Removed. - (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with - AF_BLUE_STRING_MAX_LEN. - Change loops to use offsets (in file `afblue.h') into the new arrays - `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c'). - Instead of three dimensions (as used in the old blue string array) - we now use properties to do the same, saving one loop nesting level. - - * src/autofit/afcjk.h: Remove old enumeration values superseded by - the new data in `afblue.h'. - (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE, - AF_CJK_IS_RIGHT_BLUE): New macros, to be used in - `af_cjk_metrics_init_blues'. - (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value. - (AF_CJK_BLUE_IS_TOP): Renamed to... - (AF_CJK_BLUE_TOP): This. - (AF_CJK_MAX_BLUES): Remove. - (AF_CJKAxisRec): Updated. - -2013-08-25 Werner Lemberg <wl@gnu.org> - - [autofit] Typo. - - * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use - cast. - -2013-08-25 Werner Lemberg <wl@gnu.org> - - [autofit] Synchronize `cjk' with `latin' module (and vice versa). - - * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing - messages. - (af_cjk_metrics_init_blues): Don't pass blue string array as - argument but use the global array directly. - Use `outline' directly. - Update and add tracing messages. - (af_cjk_metrics_init): Simplify code. - (af_cjk_metrics_scale_dim): Improve tracing message. - (af_cjk_metrics_scale): Synchronize. - - * src/autofit/aflatin.c (af_latin_metrics_init_widths, - af_latin_metrics_init_blues): Improve and add tracing messages. - -2013-08-25 Werner Lemberg <wl@gnu.org> - - [autofit] Make `latin' module use blue stringsets. - - * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed. - (af_latin_blue_chars): Removed. - (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS - with AF_BLUE_STRING_MAX_LEN. - Change loops to use offsets (in file `afblue.h') into the new arrays - `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c'). - Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro. - - * src/autofit/aflatin.h: Remove old enumeration values superseded by - the new data in `afblue.h'. - (AF_LATIN_IS_TOP_BLUE): Updated definition. - (AF_LATIN_IS_SMALL_TOP_BLUE): New macro. - (AF_LATIN_MAX_BLUES): Remove. - (AF_LatinAxisRec): Updated. - -2013-08-25 Werner Lemberg <wl@gnu.org> - - [autofit] Add blue stringsets. - - * src/autofit/aftypes.h: Include `afblue.h'. - (AF_ScriptClassRec): Add `blue_stringset' field. - (AF_DEFINE_SCRIPT_CLASS): Updated. - - * src/autofit/autofit.c: Include `afblue.c'. - - * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c - (af_dflt_script_class), src/autofit/afindic.c - (af_deva_script_class), src/autofit/aflatin.c - (af_latn_script_class), src/autofit/aflatin2.c - (af_ltn2_script_class): Updated. - - * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'. - -2013-08-25 Werner Lemberg <wl@gnu.org> - - [autofit] Introduce data file for blue strings. - - The idea is to have a central file which gets processed by a Perl - script to create proper `.c' and `.h' files using templates. There - are two other reasons to do that: - - . The data file should be easily readable. We use UTF-8 encoding - which then gets converted to single bytes. - - . Since the number of supported scripts will increase soon, the - current usage of blue string arrays is a waste of space. Using - the Perl script it is possible to imitate jagged arrays, - defining enumeration constants as offsets into the arrays. - - This commit only adds files without changing any functionality. - - * src/autofit/afblue.dat: New data file. - * src/tools/afblue.pl: New Perl script for processing `afblue.dat'. - - * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files - for... - * src/autofit/afblue.c, src/autofit/afblue.c: New source files. - To avoid a dependency on Perl, we add them too. - -2013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Enable new algorithm for `BBox_Cubic_Check'. - - * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove - the old one. - Improve comments. - -2013-08-18 Werner Lemberg <wl@gnu.org> - - * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit. - -2013-08-18 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #39804. - - * builds/unix/configure.raw (LIBPNG): Define and export. - * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle - libpng. - -2013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Clean up BBox_Conic_Check. - - * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for - extremum at the segment ends, which are already within the bbox. - Slightly modify calculations. - -2013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Finish experimental (disabled) BBox_Cubic_Check implementation. - - * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve - accuracy and avoid overflows. - -2013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Refactor experimental (disabled) BBox_Cubic_Check. - - * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search - as the mirror image of the maximum search implemented here... - (update_max): New function. - -2013-08-06 John Tytgat <John.Tytgat@esko.com> - - Fix Savannah bug #39702. - - * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset - != 0'; this stronger test is mandated by the CFF specification. - Fix test for INDEX structures which have one or more empty entries - at the end. - -2013-08-05 Werner Lemberg <wl@gnu.org> - - Fix gcc pragmas, part 2. - - * src/truetype/ttinterp.c (TT_MulFix14_long_long, - TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been - introduced with gcc version 4.6. - -2013-08-05 Werner Lemberg <wl@gnu.org> - - Fix gcc pragmas. - - * src/truetype/ttinterp.c (TT_MulFix14_long_long, - TT_DotFix14_long_long): Older gcc versions don't accept diagnostic - pragmas within a function body. - -2013-08-05 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #39700. - - * builds/unix/ftconfig.h: Synchronize with - `include/freetype/config/ftconfig.h'. - - * builds/vms/ftconfig.h: Ditto. - Make the differences to the master `ftconfig.h' file as small as - possible for easier maintenance. - -2013-08-05 Werner Lemberg <wl@gnu.org> - - [autofit] Improve handling of `near' points. - - Points which are very near to each other are now marked as such. - The `weak' flag is then computed by using the `in' vector of the - first and the `out' vector of the last point of a group of near - points. - - For example, this fixes the rendering of glyph `Oslash' in - `Roboto-Thin.ttf'. - - * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'. - - * src/autofit/afhints.c (af_glyph_hints_reload): Introduce - the heuristic value `near_limit' to decide whether the current point - is near to the previous one, then set `AF_FLAG_NEAR' accordingly. - Store good `in' vector (of last non-near point) in - `last_good_in_{x,y}' and use it as an argument to - `ft_corner_is_flat' if necessary. - -2013-08-02 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftcffdrv.h: Improve documentation. - This is based on blog entries from David Lemon and Dave Arnold (both - from Adobe) with kind permission. Dave also helped in - proof-reading. - -2013-08-02 Werner Lemberg <wl@gnu.org> - - [autofit] Move declaration of scripts into separate file. - - This has the benefit that we don't need to duplicate the data at - different places. - - * src/autofit/afscript.h: New file. - - * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define - the enumeration values. - - * src/autofit/afglobal.c: Include `afscript.h' to get the script - specific header files. - (af_script_classes): Include `afscript.h' to fill this array. - - * src/autofit/afpic.c: Include `afscript.h' to get the script - specific header files. - (autofit_module_class_pic_init): Include `afscript.h' for - initialization. - * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT, - AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead. - - * src/autofit/rules.mk (AUTOF_DRV_H): Updated. - -2013-08-02 Werner Lemberg <wl@gnu.org> - - [autofit] Move declaration of writing systems into separate file. - - This has the benefit that we don't need to duplicate the data at - different places. - - * src/autofit/afwrtsys.h: New file. - - * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to - define the enumeration values. - - * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing - system specific header files. - Include `afpic.h'. - (af_writing_system_classes): Include `afwrtsys.h' to fill this - array. - - * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing - system specific header files. - (autofit_module_class_pic_init): Include `afwrtsys.h' for - initialization. - * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT, - AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use - `AF_WRITING_SYSTEM_MAX' instead. - -2013-08-02 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix compilation with g++. - - * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use - cast. - (Load_SBit_Png): Pacify compiler. - -2013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - Werner Lemberg <wl@gnu.org> - - [autofit] Fix `make multi'. - - * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY, - FT_LOCAL_ARRAY_DEF): New macros. - - * src/autofit/afglobal.c (af_writing_system_classes, - af_script_classes): Use FT_LOCAL_ARRAY_DEF. - * src/autofit/afglobal.h: Declare `af_writing_system_classes' and - `af_script_classes'. - * src/autofit/afloader.c: Include `afpic.h'. - -2013-08-01 Werner Lemberg <wl@gnu.org> - - Another round of cppcheck nitpicks. - - The call was (from the top-level of the FreeType tree): - - cppcheck --force \ - --enable=all \ - -I /usr/include \ - -I /usr/local/include \ - -I /usr/lib/gcc/i586-suse-linux/4.7/include \ - -I include \ - -I include/freetype \ - -I include/freetype/config \ - -I include/freetype/internal \ - -DFT2_BUILD_LIBRARY \ - . &> cppcheck.log - - using cppcheck git commit f7e93f99. - - Note that cppcheck still can't handle `#include FOO' (with `FOO' a - macro). - - */* Improve variable scopes. - */* Remove redundant initializations which get overwritten. - - * src/gxvalid/*: Comment out redundant code or guard it with - FT_DEBUG_LEVEL_TRACE. - -2013-07-30 Werner Lemberg <wl@gnu.org> - - [autofit] Introduce `writing systems'. - - This patch adds a new top level to the auto-hinter's script class - hierarchy. It defines `writing systems' which can contain multiple - scripts. - - For example, the `latin' writing system (in file `aflatin.c') is - able to support scripts like Latin, Cyrillic, Armenian, etc., which - can be handled similarly. - - Scripts are now named using four-letter OpenType tags. - - * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members - to... - (AF_WritingSystemClassRec): This new structure. It holds pointers - to functions which can be shared among related scripts. - (AF_WritingSystem): New enumeration. - (AF_Script): Revised values using four-letter tags. - (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro. - (AF_DEFINE_SCRIPT_CLASS): Updated. - - * src/autofit/afglobal.c (af_writing_system_classes): New global, - constant array. - (af_script_classes): Updated. - (af_face_globals_free): Updated. - Remove assertion. - (af_face_globals_get_metrics): Updated. - - * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK) - [!AF_CONFIG_OPTION_CJK]: Handle this case. - - * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): - Updated. - - * src/autofit/afpic.c (autofit_module_class_pic_init): Updated; - initialize structures for both writing systems and scripts. - * src/autofit/afpic.h: Updated. - (AF_WRITING_SYSTEM_CLASSES_GET): New macro. - - * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing - system. - (af_cjk_uniranges): Renamed to... - (af_hani_uniranges): This. - (af_cjk_script_class): Reduced and renamed to... - (af_hani_script_class): This. - * src/autofit/afcjk.h: Updated. - - * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing - system. - (af_dummy_script_class): Reduced and renamed to... - (af_dflt_script_class): This. - * src/autofit/afdummy.h: Updated. - - * src/autofit/afindic.c (af_indic_writing_system_class): New writing - system. - (af_indic_uniranges): Renamed to... - (af_deva_uniranges): This. - (af_indic_script_class): Reduced and renamed to... - (af_deva_script_class): This. - * src/autofit/afcjk.h: Updated. - - * src/autofit/aflatin.c (af_latin_writing_system_class): New writing - system. - (af_latin_uniranges): Renamed to... - (af_latn_uniranges): This. - (af_latin_script_class): Reduced and renamed to... - (af_latn_script_class): This. - * src/autofit/aflatin.h: Updated. - - * src/autofit/aflatin2.c (af_latin2_writing_system_class): New - writing system. - (af_latin2_uniranges): Renamed to... - (af_ltn2_uniranges): This. - Synchronize ranges with `latin'. - (af_latin2_script_class): Reduced and renamed to... - (af_ltn2_script_class): This. - * src/autofit/aflatin2.h: Updated. - -2013-07-30 Werner Lemberg <wl@gnu.org> - - [autofit] Variable renaming. - - * src/autofit/aftypes.h (AF_ScriptMetricsRec): - s/clazz/script_class/. - Update all users. - -2013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - Ignore libpng-config under cross-building configuration, - because it will return the flags for the hosting environment. - - * builds/unix/configure.raw: Ignore libpng-config when - `cross_compiling' == yes. - -2013-07-30 Behdad Esfahbod <behdad@google.com> - - Prevent division by zero by a transparent color. - - * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): - Return 0 immediately, when alpha channel is zero. - -2013-07-25 Behdad Esfahbod <behdad@google.com> - - Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR. - - Also disambiguate Google's color bitmap tables. - - * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR): - New macros. - - * include/freetype/internal/tttypes.h (TT_SbitTableType): Add - TT_SBIT_TABLE_TYPE_CBLC. - - * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR. - - * src/sfnt/ttsbit.c (tt_face_load_sbit, - tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle - TT_SBIT_TABLE_TYPE_CBLC. - -2013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [sfnt] Fix for `make multi' target. - - * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF(). - -2013-07-20 Werner Lemberg <wl@gnu.org> - - * docs/INSTALL.GNU: Updated. - -2013-07-20 Behdad Esfahbod <behdad@google.com> - - [sfnt] Fix `sbix' table version handling. - - * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]: - USHORT version numbers are to be considered as `minor'. - -2013-07-19 Werner Lemberg <wl@gnu.org> - - [autofit] Fix segment classification for blue zones. - - The old code (essentially unchanged since the very beginning) - incorrectly handled this configuration - - x -o- x - / \ - / \ - / \ - o o - - as flat and this - - o o - / / - x| x| - | | - o---------------o - - as round. (`o' and `x' are on and off points, respectively). - - This is a major change which should improve the rendering results - enormously for many TrueType fonts, especially in the range approx. - 20-40ppem, fixing the appearance of many overshoots. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the - first and last points of the segment, not the points right before - and after. - -2013-07-19 Behdad Esfahbod <behdad@google.com> - - [sfnt] `sbix' fix-ups. - - * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps - are rendered scaled and then the `glyf' outline rendered on top. We - don't support that yet, so just ignore the `glyf' outline and - advertise it as a bitmap-only font. - - * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) - [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units. - (tt_face_load_sbix_image): Typo. - -2013-07-18 Behdad Esfahbod <behdad@google.com> - - [sfnt] Add support for Apple's `sbix' color bitmap table. - - * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen - fields to FT_Short and FT_UShort, respectively. - (TT_SbitTableType): New enumeration. - (TT_FaceRec): Add `sbit_table_type' field. - - * include/freetype/tttags.h (TTAG_sbix): New macro. - - * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic - FT_GlyphSlot argument instead FT_Bitmap. - Add flag to control map and metrics handling. - Update all users. - - * src/sfnt/ttsbit.c: Include `ttmtx.h'. - (tt_face_load_eblc): Renamed to... - (tt_face_load_sbit): This. - Handle `sbix' bitmaps. - (tt_face_free_eblc): Renamed to... - (tt_face_load_sbit): This. - Updated. - (tt_face_load_strike_metrics): Handle `sbix' bitmaps. - (tt_face_load_sbix_image): New function. - (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image, - tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned, - tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png, - tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass - and handle load flags. - (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better - handle formats 17-19. - Move color to grayscale conversion to... - (tt_face_load_sbit_image): Here. - Handle `sbix' bitmaps. - - * src/sfnt/pngshim.h: Updated. - * src/sfnt/ttsbit.h: Updated. - * src/sfnt/sfdriver.c: Updated. - -2013-07-18 Werner Lemberg <wl@gnu.org> - - [sfnt] Ignore invalid magic number in `head' or `bhed'. - - Other font engines seem to ignore it also. Problem reported by - Hin-Tak Leung <htl10@users.sourceforge.net>. - - * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if - we have an invalid magic number. - -2013-07-16 Werner Lemberg <wl@gnu.org> - - [smooth] Fix segfault caused by previous commit. - - * src/smooth/ftgrays.c (gray_set_cell): Always compute - `ras.invalid'. - -2013-07-16 David Turner <digit@google.com> - - [smooth] Improve performance. - - Provide a work-around for an ARM-specific performance bug in GCC. - This speeds up the rasterizer by more than 5%. - - Also slightly optimize `set_gray_cell' and `gray_record_cell' (which - also improves performance on other platforms by a tiny bit (<1%). - - * src/smooth/ftgrays.c (FT_DIV_MOD): New macro. - Use it where appropriate. - - (gray_record_cell, gray_set_cell, gray_move_to, - gray_convert_glyph_inner): Streamline condition handling. - -2013-07-16 David Turner <digit@google.com> - - [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14. - - This patch provides slightly optimized versions for ARM, x86, and - x86_64 CPUs if built with GCC. - - Also remove some dead code. - - * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long, - TT_DotFix14_long_long): New functions. - -2013-07-16 David Turner <digit@google.com> - - Optimize FT_MulFix for x86_64 GCC builds. - - This patch provides an optimized `FT_MulFix' implementation for - x86_64 machines when FreeType is built with GCC, or compatible - compilers like Clang. - - Example: - bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf - - Before: - - Load 4.863 us/op - Load_Advances (Normal) 4.816 us/op - Load_Advances (Fast) 0.028 us/op - Render 2.753 us/op - Get_Glyph 0.463 us/op - Get_CBox 0.077 us/op - Get_Char_Index 0.023 us/op - Iterate CMap 13.898 us/op - New_Face 12.368 us/op - Embolden 0.028 us/op - Get_BBox 0.302 us/op - - After: - - Load 4.617 us/op - Load_Advances (Normal) 4.645 us/op - Load_Advances (Fast) 0.027 us/op - Render 2.789 us/op - Get_Glyph 0.460 us/op - Get_CBox 0.077 us/op - Get_Char_Index 0.024 us/op - Iterate CMap 13.403 us/op - New_Face 12.278 us/op - Embolden 0.028 us/op - Get_BBox 0.301 us/op - - * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h - (FT_MulFix_x86_64): New function. - -2013-07-16 David Turner <digit@google.com> - - Speed up ARMv7 support. - - When building for ARMv7 with thumb2 instructions, the optimized - `FT_MulFix_arm' assembly routine was not being used. - - The reason for this is in the `ftconfig.h' header, namely: - - - The assembly routine uses the `smull' instruction which is not - available when generating Thumb-1 machine code. It is available - in Thumb-2 mode, though. - - - The header was written a long time ago before Thumb-2 became - widely popular (e.g. with Android). So it simply doesn't use the - assembly routine if the `__thumb__' built-in macro is defined. - - - When compiling in Thumb-2 mode, the compiler will define both - `__thumb__' and `__thumb2__'. - - By checking for `(__thumb2__ || !__thumb__)', we ensure that the - assembly routine is only avoided when generating Thumb-1 code. - - Given that this is performance-sensitive function, this improves - `ftbench' as follows on a Galaxy Nexus: - - Before (us/op) After (us/op) - - - loading Arial.ttf glyphs at 14 ppem [1] - - Load 34.285 33.098 - - - same operation with the light auto-hinter [2] - - Load 31.317 29.590 - - - same operation without hinting [3] - - Load 6.143 5.376 - - - loading Arial.ttf advances at 14 ppem [4] - - Load_Advances (normal) 34.216 33.016 - Load_Advances (fast) 0.176 0.176 - - [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf - [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf - [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf - [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf - - * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h - (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7. - -2013-06-28 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2013-06-27 Werner Lemberg <wl@gnu.org> - - * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard. - -2013-06-25 Werner Lemberg <wl@gnu.org> - - [cff] Add darkening limit to `darkening-parameters'. - - * src/cff/cffdrivr.c (cff_property_set): Add check. - -2013-06-25 Werner Lemberg <wl@gnu.org> - - [cff] Add `darkening-parameters' property. - - * include/freetype/ftcffdrv.h: Document it. - - * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle - `darkening-parameters' property. - - * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array. - - * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams' - argument and use it. - Update all callers. - - * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy - `darken_params' values. - - * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array. - - * src/cff/cffobjs.c (cff_driver_init): Set default values for - `darken_params'. - -2013-06-25 Werner Lemberg <wl@gnu.org> - - [docmaker] Code shuffling. - - * src/tools/docmaker/tohtml.py (re_url): Move regexp... - * src/tools/docmaker/sources.py: ... to this file. - -2013-06-25 Werner Lemberg <wl@gnu.org> - - [docmaker] Remove unused functions. - - * src/tools/docmaker/content.py (DocMarkup.get_start, - DocBlock.get_markup_name): Removed. - * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code, - HtmlFormatter.make_html_words): Removed. - -2013-06-25 Werner Lemberg <wl@gnu.org> - - * builds/freetype.mk (dll): Remove target. - - Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>. - -2013-06-25 Werner Lemberg <wl@gnu.org> - - [docmaker] Recognise URLs. - - * src/tools/docmaker/tohtml.py (re_url): New regular expression. - (make_html_para): Use it. - -2013-06-19 Werner Lemberg <wl@gnu.org> - - * Version 2.5.0.1 released. - =========================== - - - Tag sources with `VER-2-5-0-1'. - - * include/freetype/config/ftoption.h: Undefine - CFF_CONFIG_OPTION_OLD_ENGINE. - * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE. - -2013-06-19 Werner Lemberg <wl@gnu.org> - - * builds/unix/install.mk (install): Don't create `cache' directory. - - Found by Peter Breitenlohner <peb@mppmu.mpg.de>. - -2013-06-19 Werner Lemberg <wl@gnu.org> - - * Version 2.5.0 released. - ========================= - - - Tag sources with `VER-2-5-0'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.5.0. - - * README, Jamfile (RefDoc), - builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, - builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, - builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, - builds/win32/visualc/freetype.dsp, - builds/win32/visualc/freetype.vcproj, - builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, - builds/win32/visualce/freetype.vcproj, - builds/win32/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.4.12/2.5.0/, s/2412/250/. - - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5. - (FREETYPE_PATCH): Set to 0. - - * builds/unix/configure.raw (version_info): Set to 16:2:10. - - * src/base/ftobjs.c (FT_Open_Face): Pacify compiler. - * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto. - -2013-06-18 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #39269. - - * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in - case of reallocation failures. - -2013-06-18 Andrew Church <achurch+savannah@achurch.org> - - Fix Savannah bug #39266. - - If memory allocations fail at certain points while opening a font, - FreeType can either crash due to a NULL dereference or leak memory. - - * include/freetype/internal/ftobjs.c (FT_Face_InternalRec, - FT_LibraryRec): Make `refcount' a signed integer. If, for example, - FT_Open_Face() fails in a memory allocation before the face's - reference count is set to 1, a subsequent `FT_Done_Library' call - would otherwise loop over `FT_Done_Face' 2^32 times before freeing - the face. - - * src/base/ftobjs.c (open_face): Initialize `stream' and friends - earlier. - (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL. - (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid. - -2013-06-14 Werner Lemberg <wl@gnu.org> - - * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC. - -2013-06-06 Dave Arnold <darnold@adobe.com> - Werner Lemberg <wl@gnu.org> - - [cff] Add code to Adobe's engine to handle ppem > 2000. - - * src/cff/cffgload.c (cff_slot_load): If we get - FT_Err_Glyph_Too_Big, retry unhinted and scale up later on. - -2013-06-12 Werner Lemberg <wl@gnu.org> - - Another try on pragmas. - - * include/freetype/internal/ftdebug.h: Move pragmas to... - * include/freetype/internal/internal.h: ... this file since it gets - included by all source files. - * include/freetype/internal/ftserv.h: Remove pragma which has no - effect. - -2013-06-12 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127. - - This partially undoes commit 3f6e0e0c. - -2013-06-12 Werner Lemberg <wl@gnu.org> - - More compiler warning fixes. - - */*: Use cast to `FT_Bool' (or `Bool') where appropriate. - -2013-06-10 Werner Lemberg <wl@gnu.org> - - [truetype] Improve handling of broken sbit advance widths. - - * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled) - `linearHoriAdvance' if the sbit's `horiAdvance' value is zero. - - Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem. - -2013-06-10 Werner Lemberg <wl@gnu.org> - - [sfnt] Improve embedded bitmap tracing. - - * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding - bitmap strike match to... - (FT_Match_Size): This function. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics, - tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned, - tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png, - tt_sbit_decoder_load_image): Decorate with tracing messages. - -2013-06-10 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #39160. - - * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too - for the degenerate case. - -2013-06-09 David Turner <digit@google.com> - - * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush. - - This code, present since eight(!) years in the unused `CACHE' - branch, has been forgotten to apply to the master branch. It's - really amazing that noone has ever complained since - `FTC_Manager_Reset' is pretty useless without flushing the cache. - -2013-06-07 Werner Lemberg <wl@gnu.org> - - Add and improve pragmas for MSVC compiler. - - * include/freetype/internal/ftdebug.h: Remove pragmas. - * include/freetype/internal/ftserv.h: Use push and pop for pragmas. - * include/freetype/internal/ftvalid.h: Handle warning C4324. - * src/base/ftobjs.c: Use push and pop for pragmas. - * src/gzip/ftgzip.c: Handle warning C4244. - -2013-06-07 Werner Lemberg <wl@gnu.org> - - [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/. - - * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it. - -2013-06-06 Dave Arnold <darnold@adobe.com> - - [cff] Add early exit feature for width-only calls. - - This is for `FT_Get_Advance'. - - There are 7 places where the spec says the width can be defined: - - hstem/hstemhm - vstem/vstemhm - cntrmask/hintmask - hmoveto - vmoveto - rmoveto - endchar - - * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls, - if possible. - - (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>, - <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>, - <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls. - -2013-06-06 Werner Lemberg <wl@gnu.org> - - Next round of compiler fixes. - - * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init): - Add proper cast. - - * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix - cast. - * include/freetype/internal/ftstream.h: Decorate stream and frame - macros with `FT_Long' and `FT_ULong' as appropriate. - - * src/base/ftrfork.c (raccess_guess_darwin_hfsplus, - raccess_guess_darwin_newvfs): Use cast. - - * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast. - - * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast. - * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto. - - * src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use cast. - * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto. - * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto. - - * src/cid/cidparse.c (cid_parser_new): Use cast. - - * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast. - - * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type. - - * src/raster/ftraster.c (ft_black_reset): Use cast. - - * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast. - (ALL_POINTS): Fix cast. - - * src/type1/t1driver.c (t1_ps_get_font_value): Add casts. - * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast. - -2013-06-05 Dave Arnold <darnold@adobe.com> - - Fix more MSVC Win32 compiler warnings. - - * src/base/ftobjs.c: Fix typo in MS pragma. - - * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property): - `lineno' is only used in debug mode. - - * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in - debug mode. - -2013-06-05 Werner Lemberg <wl@gnu.org> - - Fix compiler warnings. - - * include/freetype/internal/ftmemory.h: Decorate memory allocation - macros with `FT_Long' where appropriate. - Remove duplicate of FT_MEM_QRENEW_ARRAY definition. - - * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use - cast. - - * src/base/ftobjs.c: Add warning disabling pragma for MSVC while - including `md5.c'. - - * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add - cast. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts. - (tt_sbit_decoder_load_bitmap): Beautification. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize - variables (earlier). - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants - where appropriate. - - * src/type1/t1load.c (T1_Get_MM_Var): Ditto. - -2013-06-04 Werner Lemberg <wl@gnu.org> - - * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'. - - Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>. - -2013-06-04 Werner Lemberg <wl@gnu.org> - - Apply fixes for cppcheck nitpicks. - - https://cppcheck.sourceforge.net/ - - The call was (from the top-level of the FreeType tree): - - cppcheck --force \ - --enable=all \ - -I include \ - -I include/freetype/ \ - -I include/freetype/config/ \ - -I include/freetype/internal/ \ - . &> cppcheck.log - - Note that the current version heavily chokes on FreeType, delivering - many wrong results. I will report those issues to the cppcheck team - so that a newer version gives improved results hopefully. - - */* Improve variable scopes. - */* Remove redundant initializations which get overwritten. - - * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable): - Remove unused variable. - - * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero. - - * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate): - Remove functionless code. - - * src/tools/ftrandom.c (main): Fix memory leak. - -2013-06-03 Werner Lemberg <wl@gnu.org> - - Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option. - - This controls whether the old FreeType CFF engine gets compiled into - FreeType. It is now disabled by default. - - * devel/ftoption.h, include/freetype/config/ftoption.h - (CFF_CONFIG_OPTION_OLD_ENGINE): New macro. - - * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c - (CFF_Operator, cff_argument_counts, cff_builder_add_point, - cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load), - src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use - CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code. - - * docs/CHANGES: Updated. - -2013-06-02 Werner Lemberg <wl@gnu.org> - - Fix PNG library handling. - - * builds/unix/configure.raw: Don't use LIBPNG_LIBS but - LIBPNG_LDFLAGS. - -2013-05-23 Behdad Esfahbod <behdad@google.com> - - Add support for color embedded bitmaps (eg. color emoji). - - A new load flag, FT_LOAD_COLOR, makes FreeType load color - embedded-bitmaps, following this draft specification - - https://color-emoji.googlecode.com/git/specification/v1.html - - which defines two new SFNT tables, `CBDT' and `CBLC' (named and - modeled after `EBDT' and `EBLC', respectively). The color bitmaps - are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA - pre-multiplied sRGB images. If PNG support is available, PNG color - images as defined in the same proposed specification are supported - also. - - Note that color bitmaps are converted to grayscale if client didn't - ask for color. - - * builds/unix/configure.raw: Search for libpng. - Add `--without-png' option. - - * devel/ftoption.h, include/freetype/config/ftoption.h - (FT_CONFIG_OPTION_USE_PNG): New macro. - - * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag. - - * include/freetype/ftimage.h (FT_Pixel_Mode): Add - `FT_PIXEL_MODE_BGRA'. - - * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags. - - * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated. - (ft_gray_for_premultiplied_srgb_bgra): New function. - (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA. - - * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files. - - * src/sfnt/sfnt.c: Include `pngshim.c'. - - * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h' - (tt_face_load_eblc): Load `CBLC'. - (tt_sbit_decoder_init): Load `CBDT'. - (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between - color and grayscale bitmaps. - Set `num_grays'. This is used by `ftview' to choose the blending - algorithm. - (tt_sbit_decoder_load_byte_aligned, - tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound, - tt_sbit_decoder_load_image): Pass load flag. - s/write/pwrite/. - Don't call `tt_sbit_decoder_alloc_bitmap'. - Updated. - (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function. - (tt_sbit_decoder_load_bitmap): Pass load flag. - Handle new glyph formats 17, 18, and 19. - Call `tt_sbit_decoder_alloc_bitmap'. - Flatten color bitmaps if necessary. - (tt_face_load_sbit_image): Updated. - - * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'. - - * docs/CHANGES: Updated. - -2013-05-24 Guenter <info@gknw.net> - - Apply Savannah patch #8055. - - Make `apinames' create an import file for NetWare. - - * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2. - (OutputFormat): Add `OUTPUT_NETWARE_IMP'. - (names_dump): Handle it. - (usage): Updated. - (main): Handle new command line flag `-wN'. - -2013-05-23 Behdad Esfahbod <behdad@behdad.org> - - Compilation fix. - - * src/truetype/ttinterp.c (TT_RunIns) - [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work. - -2013-05-22 Infinality <infinality@infinality.net> - - [truetype] Formatting and an additional subpixel tweak. - - * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix. - * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): - Revert previous modification for Verdana clones. - -2013-05-22 Infinality <infinality@infinality.net> - - [truetype] Adjust subpixel zp2 moves and tweak rules. - - These modifications fix thin diagonal stems in some legacy fonts. - - * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro. - (Move_Zp2_Point): Don't always disable x moves for subpixel rendering. - (Ins_SHP): Disable x moves here for subpixel rendering. - (Ins_SHPIX): Only disable x moves in compatibility mode. - Split out zp2 move reversals and reorder conditional respectively. - - * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight. - Only adjust Verdana clones for 17 ppem. - (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New. - (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'. - -2013-05-20 Infinality <infinality@infinality.net> - - [truetype] Simplify and improve subpixel function detection. - - Some small enhancements have allowed the removal of many macros and - the simplification of existing rules in `ttsubpix.c'. - - * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX, - SPH_TWEAK_ALLOW_X_MOVE_ZP2, - SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES, - SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed. - (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro. - - * src/truetype/ttsubpix.c: Updated affected rules. - - * src/truetype/ttinterp.c (Direct_Move_X): Updated. - (INS_FDEF): Add additional function detection. - (INS_ENDF): Set runtime flag. - (Ins_CALL): Skip the call under certain conditions. - Remove bad code. - (Ins_LOOPCALL): Skip the call under certain conditions. - Remove bad code. - (Move_Zp2_Point): Updated. - (Ins_SHPIX): Updated. - Skip the move under some situations. - (Ins_MIAP): Improve conditions. - (Ins_MIRP): Updated. - (Ins_DELTAP): Skip move under certain conditions. - Simplify conditions. - (TT_RunIns): Updated. - Add code to handle new function detection. - Trace messages. - -2013-05-17 Werner Lemberg <wl@gnu.org> - - Update more FT_Err_XXX macros using FT_ERR and FT_THROW; - - * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c, - builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it. - -2013-05-15 Werner Lemberg <wl@gnu.org> - - [truetype] Add `interpreter-version' property. - - This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable - at runtime. - - * include/freetype/ftttdrv.h: New file. - - * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New - macro. - - * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H. - (tt_property_set, tt_property_get): Fill templates. - - * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version' - member. - Remove unused `extension_component' member. - - * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H. - (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph, - compute_glyph_metrics, tt_loader_init): Use `interpreter_version'. - - * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H. - (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag. - Update all affected functions to use it. - Use TT_INTERPRETER_VERSION_XXX where appropriate. - - * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H. - (tt_driver_init): Initialize `interpreter_version'. - - * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H. - Use TT_INTERPRETER_VERSION_XXX where appropriate. - -2013-05-13 Werner Lemberg <wl@gnu.org> - - [truetype] Avoid empty source file. - - * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: - Provide dummy typedef. - -2013-05-13 Werner Lemberg <wl@gnu.org> - - * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable. - - Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>. - -2013-05-13 Brian Nixon <bnixon@yahoo.com> - - Fix Savannah bug #38970. - - * src/base/ftdebug.c, builds/win32/ftdebug.c, - builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c - (ft_debug_init): Don't read past the environment variable FT2_DEBUG. - -2013-05-12 Werner Lemberg <wl@gnu.org> - - [truetype] Add framework for TrueType properties. - - * src/truetype/ttdriver.c: Include FT_SERVICE_PROPERTIES_H. - (tt_property_set, tt_property_get): New functions, still empty. - Define `tt_service_properties' service. - Update `tt_services'. - - * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H. - (TT_SERVICE_PROPERTIES_GET): New macro. - (TTModulePIC): Add `tt_service_properties'. - -2013-05-12 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #38967. - - * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast. - -2013-05-12 Werner Lemberg <wl@gnu.org> - - Introduce unsigned 64bit type (if available). - - * include/freetype/config/ftconfig.h: Define FT_UINT64 if available. - [FT_LONG64]: Provide FT_UInt64. - - * builds/unix/ftconfig.in: Synchronized. - -2013-05-12 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #38968. - - * include/freetype/ftmodapi.h: Add `FT_EXPORT' to - FT_Property_{Set,Get}. - * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to - FT_Property_{Set,Get}. - -2013-05-10 Werner Lemberg <wl@gnu.org> - - [sfnt] Clean up bitmap code. - - * src/sfnt/ttsbit.c: Deleted. - * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'. - * rules.mk (SFNT_DRV_H): Updated. - -2013-05-10 Werner Lemberg <wl@gnu.org> - - */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code. - ----------------------------------------------------------------------------- - -Copyright (C) 2013-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.26 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.26 deleted file mode 100644 index eb87803b139..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.26 +++ /dev/null @@ -1,5711 +0,0 @@ -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> - - * src/truetype/ttgload.c (load_truetype_glyph) - [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix crash for composite glyphs - having a depth greater than 1. - -2015-08-03 Werner Lemberg <wl@gnu.org> - - Fix typo in clang bug from 2015-07-31 (#45678). - - * src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Fix inequality. - -2015-08-02 Werner Lemberg <wl@gnu.org> - - * CMakeLists.txt: Improve shared library support. - - Based on a patch from John Cary <cary@txcorp.com>. - -2015-08-02 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype-config.in (enable_shared): Remove. Unused. - -2015-08-02 Werner Lemberg <wl@gnu.org> - - Fix more invalid left-shifts. - - * src/pfr/pfrgload.c (pfr_glyph_load_compound): Use multiplication, - not left-shift. - - * src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar, - tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Use multiplication, - not left-shift. - -2015-07-31 Werner Lemberg <wl@gnu.org> - - Fix some bugs found by clang's `-fsanitize=undefined' (#45661). - - * src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Only accept - positive values from header. - Check overflow. - - * src/base/ftoutln.c (SCALED): Correctly handle left-shift of - negative values. - - * src/bdf/bdf.h (_bdf_glyph_modified, _bdf_set_glyph_modified, - _bdf_clear_glyph_modified): Use unsigned long constant. - - * src/bdf/bdfdrivr.c (BDF_Size_Select, BDF_Glyph_Load): Don't - left-shift values that can be negative. - - * src/pcf/pcfdrivr.c (PCF_Size_Select, PCF_Glyph_Load): Don't - left-shift values that can be negative. - - * src/raster/ftraster.c (SCALED): Correctly handle left-shift of - negative values. - - * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Don't left-shift - values that can be negative. - - * src/truetype/ttgload.c (TT_Load_Composite_Glyph, - compute_glyph_metrics, load_sbit_image): Don't left-shift values - that can be negative. - -2015-07-31 Werner Lemberg <wl@gnu.org> - - Define FT_LONG_MAX. - - * include/freetype/config/ftstdlib.h (FT_LONG_MAX): New macro. - * src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use it. - -2015-07-28 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftcalc.c (FT_Vector_NormLen): Clarify. - -2015-07-27 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftcalc.c (FT_Vector_NormLen): Explicate type conversions. - -2015-07-26 Matthias Clasen <matthias.clasen@gmail.com> - - [cff] Don't use `hmtx' table for LSB (#45520). - - * src/cff/cffgload.c (cff_slot_load): Use `htmx' table for advance - width only. Bug introduced 2015-04-10. - -2015-07-09 Werner Lemberg <wl@gnu.org> - - Better support of user-supplied C++ namespaces. - - See - - https://lists.nongnu.org/archive/html/freetype-devel/2015-07/msg00008.html - - for a rationale. - - * src/autofit/afpic.h, src/base/basepic.h, src/cff/cffpic.h, - src/pshinter/pshpic.h, src/psnames/pspic.h, src/raster/rastpic.h, - src/sfnt/sfntpic.h, src/smooth/ftspic.h, src/truetype/ttpic.h - (FT_BEGIN_HEADER, FT_END_HEADER): Move macro calls to not enclose - header files that contain FT_{BEGIN,END}_HEADER macros by - themselves. - - * src/autofit/aftypes.h [FT_DEBUG_AUTOFIT]: Include - FT_CONFIG_STANDARD_LIBRARY_H earlier. - - * src/truetype/ttpic.h: Include FT_INTERNAL_PIC_H. - -2015-07-07 Werner Lemberg <wl@gnu.org> - - [sfnt] Make `tt_face_get_name' member of the SFNT interface. - - * include/freetype/internal/sfnt.h (TT_Get_Name_Func): New - prototype. - (SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): New member `get_name'. - - * src/sfnt/sfdriver.c (sfnt_interface): Updated. - - * src/sfnt/sfobjs.c (tt_face_get_name): Tag it with `LOCAL_DEF'. - * src/sfnt/sfobjs.h: Add prototype for it. - -2015-06-30 Werner Lemberg <wl@gnu.org> - - Fix some clang compiler warnings. - - * src/base/ftoutln.c (FT_Outline_EmboldenXY), src/cff/cf2intrp.c - (cf2_interpT2CharString), src/truetype/ttgload.c - (load_truetype_glyph), src/truetype/ttgxvar.c (tt_handle_deltas), - src/truetype/ttinterp.c (Ins_INSTCTRL): Fix signedness issues. - -2015-06-29 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Speed up bytecode interpreter. - - * src/truetype/ttinterp.c (Normalize): Use `FT_Vector_NormLen'. - -2015-06-29 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Speed up emboldening. - - * src/base/ftoutln.c (FT_Outline_EmboldenXY): Use - `FT_Vector_NormLen'. - -2015-06-29 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Implement fast vector normalization. - - The function uses Newton's iterations instead of dividing vector - components by its length, which needs a square root. This is, - literally, a bit less accurate but a lot faster. - - * src/base/ftcalc.c (FT_Vector_NormLen): New function. - -2015-06-28 Werner Lemberg <wl@gnu.org> - - * CMakeLists.txt: Always create `ftconfig.h'. - - For non-UNIX builds, the file stays unmodified. However, it's - better to have the main configuration files at the same place - regardless of the OS. - -2015-06-28 Werner Lemberg <wl@gnu.org> - - * CMakeLists.txt: Improve MSVC support (#43737). - -2015-06-28 Werner Lemberg <wl@gnu.org> - - [cmake] Check for libraries and create `ftoption.h'. - - * builds/FindHarfBuzz.cmake: New file, taken from - - https://trac.webkit.org/browser/trunk/Source/cmake/FindHarfBuzz.cmake - - * CMakeLists.Txt: Add path to local cmake modules. - Find dependencies for zlib, bzip2, libpng, and harfbuzz. - Create `ftoption.h' file. - Set up include and linker stuff for libraries. - -2015-06-28 Werner Lemberg <wl@gnu.org> - - * CMakeLists.txt: Fix creation of `ftconfig.h'. - Check for UNIX header files using `check_include_file'. - Set up correct header include directories. - -2015-06-28 Werner Lemberg <wl@gnu.org> - - * CMakeLists.txt: Disallow in-source builds. - -2015-06-27 Werner Lemberg <wl@gnu.org> - - * src/tools/docmaker/utils.py (check_output): Add missing `\n'. - -2015-06-26 Werner Lemberg <wl@gnu.org> - - * CMakeLists.txt: Select platform-dependent `ftdebug.c'. - -2015-06-25 Werner Lemberg <wl@gnu.org> - - * CMakeLists.txt: Use cmake functions for generating `ftconfig.h'. - Additionally, do this for UNIX only. - -2015-06-25 Werner Lemberg <wl@gnu.org> - - * CMakeLists.txt (BASE_SRCS): Use `ftbase.c' and `psnames.c'. - -2015-06-25 Werner Lemberg <wl@gnu.org> - - Another adjustment to header locations. - - This change is a result of a discussion thread on freetype-devel - - https://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00041.html - - Re-introduce the `freetype2' subdirectory for all FreeType header - files after installation, and rename the `freetype2' subdirectory in - the git repository to `freetype'. - - * include/freetype2: Renamed to... - * include/freetype: This. - - * CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS, - PRIVATE_HEADERS): Updated. - Update creation of `ftconfig.h'. - Install generated `ftconfig.h'. - - * Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated. - - * builds/amiga/include/config/ftconfig.h, builds/freetype.mk - (PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work), - builds/unix/freetype2.in: Updated. - - * builds/unix/freetype-config.in: Updated. - * builds/unix/configure.raw: Don't check for `rmdir'. - * builds/unix/unix-def.in (DELDIR): Use `rm -rf', which is portable - according to the autoconf info manual. - * builds/unix/install.mk (install, uninstall, - distclean_project_unix): Update and simplify. - - * builds/wince/*, builds/windows/*: Updated. - - * devel/ft2build.h, include/ft2build.h: Updated. - - * include/freetype2/config/ftheader.h, - include/freetype2/internal/ftserv.h, - include/freetype2/internal/internal.h: Update all header file - macros. - - * src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated. - - * docs/*: Updated. - -2015-06-24 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/bdf/bdflib.c (_bdf_parse_start): Disallow 0 bpp. - -2015-06-24 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/bdf/bdflib.c (_bdf_parse_start): Simplify bpp parsing. - -2015-06-23 Werner Lemberg <wl@gnu.org> - - s/TYPEOF/FT_TYPEOF/ (#45376). - - * builds/unix/ftconfig.in, builds/vms/ftconfig.in, - include/freetype2/config/ftconfig.h, - include/freetype2/internal/ftobjs.h, src/autofit/afwarp.h: Do it. - -2015-06-22 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #45097. - - We no longer `pollute' the namespace of possible header file names; - instead we move `ft2build.h' up by one level so that it gets - installed in the default include directory (e.g., - /usr/local/include). After this commit, only `ft2build.h' stays in - the compiler's include path. - - No visible changes for the user who follows the standard FreeType - header inclusion rules. - - * include/*: Move to ... - * include/freetype2/*: This directory, except `ft2build.h'. - - * CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS, - PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated. - - * builds/amiga/include/config/ftconfig.h, builds/freetype.mk - (PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work), - builds/unix/install.mk (install, uninstall), - builds/unix/freetype2.in: Updated. - - * builds/unix/freetype-config.in: Updated. - Emit -I directory only if it is not `/usr/include'. - - * builds/wince/*, builds/windows/*: Updated. - - * devel/ft2build.h, include/ft2build.h: Updated. - - * include/freetype2/config/ftheader.h, - include/freetype2/internal/ftserv.h, - include/freetype2/internal/internal.h: Update all header file - macros. - - * src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated. - -2015-06-21 Werner Lemberg <wl@gnu.org> - - Make Jam support work again. - - This is just very basic stuff and just a little bit tested on - GNU/Linux only. I won't delve into this since I'm not a Jam user. - - * Jamfile: Call `HDRMACRO' for `ftserv.h' also. - (DEFINES): Replace with... - (CCFLAGS): ... this. - - * src/Jamfile: Don't call `HDRMACRO' for `internal.h'; this is - already handled in the top-level Jamfile. - - * src/autofit/Jamfile (DEFINES): Replace with... - (CCFLAGS): ... this. - (_sources): Add missing files. - - * src/cache/Jamfile: Don't call `HDRMACRO' for `ftcache.h'; it no - longer contains macro header definitions. - - * src/base/Jamfile, src/cff/Jamfile, src/sfnt/Jamfile, - src/truetype/Jamfile (_sources): Add missing files. - -2015-06-16 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #45326. - - * src/sfnt/sfntpic.h (SFNT_SERVICES_GET): Remove duplicate - definitions. - -2015-06-07 Werner Lemberg <wl@gnu.org> - - * Version 2.6 released. - ======================= - - - Tag sources with `VER-2-6'. - - * docs/VERSION.DLL: Update documentation and bump version number to - 2.6. - - * 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.5.5/2.6/, s/255/26/. - - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 6. - (FREETYPE_PATCH): Set to 0. - - * builds/unix/configure.raw (version_info): Set to 18:0:12. - * CMakeLists.txt (VERSION_MINOR): Set to 6. - (VERSION_PATCH): Set to 0. - - * src/autofit/afmodule.c [!FT_MAKE_OPTION_SINGLE_OBJECT]: Add - declarations for dumping functions. - - * src/truetype/ttinterp.c (TT_New_Context): Pacify compiler. - - * builds/toplevel.mk: Use `freetype.mk's code to compute the version - string. - Don't include a zero patch level in version string. - * builds/freetype.mk: Remove code for computing the version string. - -2015-06-06 Ashish Azad <ashish.azad@samsung.com> - - Fix Savannah bug #45260. - - * src/pfr/pfrdrivr.c (pfr_get_kerning): Fix typo. - -2015-06-03 Werner Lemberg <wl@gnu.org> - - [truetype] Fix memory leak. - - Problem reported by Grissiom <chaos.proton@gmail.com>; in - - https://lists.nongnu.org/archive/html/freetype/2015-05/msg00013.html - - there is an example code to trigger the bug. - - * src/truetype/ttobjs.c (tt_size_init_bytecode): Free old `size' - data before allocating again. Bug most probably introduced four - years ago in version 2.4.3. - -2015-06-02 Werner Lemberg <wl@gnu.org> - - [raster] Add more tracing. - - * src/raster/ftraster.c (FT_TRACE7) [_STANDALONE_]: Define. - (Vertical_Sweep_Span, Vertical_Sweep_Drop, Horizontal_Sweep_Span, - Horizontal_Sweep_Drop, Render_Glyph): Add tracing calls. - -2015-06-01 Werner Lemberg <wl@gnu.org> - - [truetype] While tracing opcodes, show code position and stack. - - * src/truetype/ttinterp.c: Change all existing TRACE7 calls to - TRACE6. - (opcode_name): Add string lengths. - (TT_RunIns): Implement display of code position and stack. - -2015-05-31 Werner Lemberg <wl@gnu.org> - - [truetype] In GX, make private point numbers work correctly. - - This is completely missing in Apple's documentation: If a `gvar' - tuple uses private point numbers (this is, deltas are specified for - some points only), the uncovered points must be interpolated for - this tuple similar to the IUP bytecode instruction. Examples that - need this functionality are glyphs `Oslash' and `Q' in Skia.ttf. - - * src/truetype/ttgxvar.c (tt_delta_shift, tt_delta_interpolate, - tt_handle_deltas): New functions. - (TT_Vary_Get_Glyph_Deltas): Renamed to... - (TT_Vary_Apply_Glyph_Deltas): ... this; it directly processes the - points and does no longer return an array of deltas. - Add tracing information. - Call `tt_handle_deltas' to interpolate missing deltas. - Also fix a minor memory leak in case of error. - - * src/truetype/ttgxvar.h: Updated. - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Updated. - -2015-05-31 Werner Lemberg <wl@gnu.org> - - [truetype] In GX, make intermediate tuplets work at extrema. - - * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix range condition. - -2015-05-31 Werner Lemberg <wl@gnu.org> - - [truetype] Add tracing information to GX code. - - * src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar, - ft_var_apply_tuple, TT_Get_MM_Var, TT_Set_MM_Blend, - TT_Set_Var_Design, tt_face_vary_cvt): Do it. - -2015-05-28 Werner Lemberg <wl@gnu.org> - - * src/tools/apinames.c (names_dump): Fix invalid reference. - - Problem reported by Guzman Mosqueda, Jose R - <jose.r.guzman.mosqueda@intel.com>. - -2015-05-24 Werner Lemberg <wl@gnu.org> - - [truetype] Fix commit from 2015-05-22. - - * src/truetype/ttgload.c, src/truetype/ttinterp.c: Guard new code - with `TT_CONFIG_OPTION_SUBPIXEL_HINTING'. - - Problem reported by Nikolaus Waxweiler <madigens@gmail.com>. - -2015-05-23 Werner Lemberg <wl@gnu.org> - - [truetype] Fix return values of GETINFO bytecode instruction. - - * src/truetype/ttinterp.h (TT_ExecContextRec): New fields - `vertical_lcd' and `gray_cleartype'. - - * src/truetype/ttgload.c (tt_loader_init): Initialize new fields. - Change `symmetrical smoothing' to TRUE, since FreeType produces - exactly this. - - * src/truetype/ttinterp.c (Ins_GETINFO): Fix selector/return bit - values for symmetrical smoothing, namely 11/18. - Handle bits for vertical LCD subpixels (8/15) and Gray ClearType - (12/19). - -2015-05-23 Werner Lemberg <wl@gnu.org> - - [truetype] Minor. - - * src/truetype/ttinterp.h (TT_ExecContext): - s/subpixel/subpixel_hinting. - - * src/truetype/ttgload.c, src/truetype/ttgload.h: Updated. - -2015-05-22 Werner Lemberg <wl@gnu.org> - - [truetype] Support selector index 3 of the INSTCTRL instruction. - - This flag activates `native ClearType hinting', disabling backward - compatibility mode as described in Greg Hitchcocks whitepaper. In - other words, it enables unrestricted functionality of all TrueType - instructions in ClearType. - - * src/truetype/ttgload.c (tt_get_metrics): Call `sph_set_tweaks' - unconditionally. - (tt_loader_init): Unset `ignore_x_mode' flag if bit 2 of - `GS.instruct_control' is active. - - * src/truetype/ttinterp.c (Ins_INSTCTRL): Handle selector index 3. - (Ins_GETINFO): Updated. - - * docs/CHANGES: Document it. - -2015-05-20 Werner Lemberg <wl@gnu.org> - - [truetype] Minor. - - * src/truetype/ttinterp.h (SetSuperRound): Fix type of `GridPeriod' - argument. - -2015-05-17 Werner Lemberg <wl@gnu.org> - - [truetype] Fix loading of composite glyphs. - - * src/truetype/ttgload.c (TT_Load_Composite_Glyph): If the - ARGS_ARE_XY_VALUES flag is not set, handle argument values as - unsigned. I trust `ttx' (which has exactly such code) that it does - the right thing here... - - The reason that noone has ever noticed this bug is probably the fact - that point-aligned subglyphs are rare, as are subglyphs with a - number of points in the range [128;255], which is quite large (or - even in the range [32768;65535], which is extremely unlikely). - -2015-05-12 Chris Liddell <chris.liddell@artifex.com> - - [cff] Make the `*curveto' operators more tolerant. - - * src/cff/cf2intrp.c (cf2_interpT2CharString): The opcodes - `vvcurveto', `hhcurveto', `vhcurveto', and `hvcurveto' all iterate, - pulling values off the stack until the stack is exhausted. - Implicitly the stack must be a multiple (or for subtly different - behaviour) a multiple plus a specific number of extra values deep. - If that's not the case, enforce it (as the old code did). - -2015-05-12 Chris Liddell <chris.liddell@artifex.com> - - [cff] fix incremental interface with new cff code. - - * src/cff/cf2ft.c (cf2_getSeacComponent): When using the incremental - interface to retrieve glyph data for a SEAC, it be left to the - incremental interface callback to apply the encoding to raw - character index (as it was in the previous code). - -2015-04-29 Alexei Podtelezhnikov <apodtele@gmail.com> - - [autofit] Speed up IUP. - - * src/autofit/afhints.c (af_iup_interp): Separate trivial snapping to - the same position from true interpolation, use `scale' to reduce - divisions. - -2015-04-28 Werner Lemberg <wl@gnu.org> - - [cff] Use `name' table for PS name if we have a SFNT-CFF. - - This follows the OpenType 1.7 specification. See - - https://tug.org/pipermail/tex-live/2015-April/036634.html - - for a discussion. - - * src/cff/cffdrivr.c (cff_get_ps_name): Use the `sfnt' service if we - have an SFNT. - -2015-04-27 Alexei Podtelezhnikov <apodtele@gmail.com> - - [truetype] Speed up IUP. - - * src/truetype/ttinterp.c (_iup_worker_interpolate): Separate trivial - snapping to the same position from true interpolation. - -2015-04-21 Werner Lemberg <wl@gnu.org> - - [autofit] By default, enable warping code but switch off warping. - - Suggested by Behdad. - - * include/config/ftoption.h: Define AF_CONFIG_OPTION_USE_WARPER. - - * src/autofit/afmodule.c (af_autofitter_init): Initialize `warping' - with `false'. - -2015-04-21 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated. - -2015-04-21 Werner Lemberg <wl@gnu.org> - - [autofit] Introduce `warping' property. - - This code replaces the debugging hook from the previous commit with - a better, more generic solution. - - * include/ftautoh.h: Document it. - - * src/autofit/afmodule.h (AF_ModuleRec) - [AF_CONFIG_OPTION_USE_WARPER]: Add `warping' field. - - * src/autofit/afmodule.c (_af_debug_disable_warper): Remove. - (af_property_set, af_property_get, af_autofitter_init) - [AF_CONFIG_OPTION_USE_WARPER]: Handle `warping' option. - - * src/autofit/afhints.h (AF_HINTS_DO_WARP): Remove use of the no - longer existing `_af_debug_disable_warper'. - - * src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c - (af_latin_hints_init), src/autofit/aflatin2.c (af_latin2_hints_init) - [AF_CONFIG_OPTION_USE_WARPER]: Add `AF_SCALER_FLAG_NO_WARPER' to the - scaler flags if warping is off. - - * src/autofit/aftypes.h: Updated. - -2015-04-16 Werner Lemberg <wl@gnu.org> - - [autofit] Add debugging hook to disable warper. - - * src/autofit/afmodule.c (_af_debug_disable_warper) - [FT_DEBUG_AUTOFIT]: New global variable. - - * src/autofit/aftypes.h: Updated. - (AF_SCALER_FLAG_NO_WARPER): New macro (not actively used yet). - - * src/autofit/afhints.h (AF_HINTS_DO_WARP): New macro. - - * src/autofit/aflatin.c (af_latin_hints_apply) - [AF_CONFIG_OPTION_USE_WARPER]: Use `AF_HINTS_DO_WARP' to control use - of warper. - - * src/autofit/afcjk.c (af_cjk_hints_init, af_cjk_hints_apply) - [AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'. - - * src/autofit/aflatin2.c (af_latin2_hints_apply) - [AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'. - -2015-04-10 Werner Lemberg <wl@gnu.org> - - [cff] Update advance width handling to OpenType 1.7. - - Problem reported by Behdad. - - * src/cff/cffdrivr.c (cff_get_advances): Handle SFNT case - separately. - - * src/cff/cffgload.c (cff_slot_load): Use advance width and side - bearing values from `hmtx' table if present. - -2015-04-03 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/autofit/afhints.c (af_glyph_hints_reload): Use do-while loop. - -2015-04-02 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/autofit/aflatin.c (af_latin_hint_edges): Reduce logic. - -2015-04-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - [autofit] Finish the thought. - - * src/autofit/afhints.c (af_direction_compute): make sure the long arm - is never negative so that its `FT_ABS' is not necessary. - -2015-04-01 Werner Lemberg <wl@gnu.org> - - [autofit] Call dumper functions for tracing. - - * src/autofit/afcjk.c (af_cjk_hints_apply): Remove dead code. - * src/autofit/afhints.c (af_glyph_hints_dump_points): Minor - improvement. - * src/autofit/afmodule.c (af_autofitter_load_glyph): Implement it. - -2015-04-01 Werner Lemberg <wl@gnu.org> - - [autofit] Make debugging stuff work again. - - The interface to ftgrid was broken in the series of commits starting - with - - [autofit] Allocate AF_Loader on the stack instead of AF_Module. - - from 2015-01-14. - - * src/autofit/afmodule.c (_af_debug_hints_rec) [FT_DEBUG_AUTOFIT]: - Use a global AF_GlyphHintsRec object for debugging. - (af_autofitter_done, af_autofitter_load_glyph): Updated. - - * src/autofit/afloader.c (af_loader_init, af_loader_done): Updated. - -2015-04-01 Werner Lemberg <wl@gnu.org> - - * src/autofit/afhints.c (af_glyph_hints_done): Fix minor thinko. - -2015-03-29 Werner Lemberg <wl@gnu.org> - - [cff] Fix Savannah bug #44629. - - * src/cff/cf2font.h (CF2_MAX_SUBR), src/cff/cffgload.h - (CFF_MAX_SUBRS_CALLS): Set to 16. - -2015-03-29 Werner Lemberg <wl@gnu.org> - - [type1, truetype] Make the MM API more flexible w.r.t. `num_coords'. - - This commit allows `num_coords' to be larger or smaller than the - number of available axes while selecting a design instance, either - ignoring excess data or using defaults if data is missing. - - * src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design): - Implement it. - - * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design, - T1_Set_Var_Design): Ditto. - -2015-03-29 Werner Lemberg <wl@gnu.org> - - [type1] Minor. - - * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Use - FT_THROW. - (T1_Set_Var_Design): Use T1_MAX_MM_AXIS and FT_THROW. - -2015-03-27 Werner Lemberg <wl@gnu.org> - - [cff] Trace charstring nesting levels. - - * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLGSUBR, - cf2_cmdCALLSUBR, cf2_cmdRETURN>: Implement it. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings) - <cff_op_callsubr, cff_op_callgsubr, cff_op_return>: Ditto. - -2015-03-21 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Optimize `FT_Angle_Diff'. - - Under normal circumstances we are usually close to the desired range - of angle values, so that the remainder is not really necessary. - - * src/base/fttrigon.c (FT_Angle_Diff): Use loops instead of remainder. - - * src/autofit/aftypes.h (AF_ANGLE_DIFF): Ditto in the unused macro. - -2015-03-21 Werner Lemberg <wl@gnu.org> - - [truetype] Improve `gvar' handling. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Correctly handle - single-element runs. Cf. glyph `Q' in Skia.ttf with weights larger - than the default. - -2015-03-20 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/fttrigon.c (FT_Vector_Rotate): Minor refactoring. - -2015-03-17 Alexei Podtelezhnikov <apodtele@gmail.com> - - Fix Savannah bug #44412 (part 2). - - * src/base/fttrigon.c (FT_Sin, FT_Cos, FT_Tan): Call `FT_Vector_Unit'. - -2015-03-11 Werner Lemberg <wl@gnu.org> - - [autofit] Add support for Arabic script. - - Thanks to Titus Nemeth <tn@tntypography.eu> for guidance! - - * src/autofit/afblue.dat: Add blue zone data for Arabic. - - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Arabic standard characters. - - * src/autofit/afranges.c: Add Arabic data. - - * src/autofit/afstyles.h: Add Arabic data. - - * docs/CHANGES: Document it. - -2015-03-11 Werner Lemberg <wl@gnu.org> - - Rename `svxf86nm.h' to `svfntfmt.h'; update related symbols. - - * include/internal/ftserv.h (FT_SERVICE_XFREE86_NAME_H): Renamed - to... - (FT_SERVICE_FONT_FORMAT_H): This. - - * include/internal/services/svfntfmt.h (FT_XF86_FORMAT_*): Renamed - to ... - (FT_FONT_FORMAT_*): This. - - src/base/ftfntfmt.c, src/bdf/bdfdrivr.c, src/cff/cffdrivr.c, - src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, - src/truetype/ttdriver.c, src/type1/t1driver.c, - src/type42/t42drivr.c, src/winfonts/winfnt.c: Updated. - -2015-03-11 Werner Lemberg <wl@gnu.org> - - [base] Rename `FT_XFREE86_H' to `FT_FONT_FORMATS_H'. - - * include/config/ftheader.h: Implement it. - * src/base/ftfntfmt.c, docs/CHANGES: Updated. - -2015-03-11 Werner Lemberg <wl@gnu.org> - - [base] Rename `FT_Get_X11_Font_Format' to `FT_Get_Font_Format'. - - * include/ftfntfmt.h, src/base/ftfntfmt.c: Implement it. - - * docs/CHANGES: Updated. - -2015-03-11 Werner Lemberg <wl@gnu.org> - - Fix automatic copyright updating. - - * src/tools/update-copyright: Make scanning of `no-copyright' - actually work. - - * src/tools/no-copyright: Don't include README in general. - -2015-03-11 Werner Lemberg <wl@gnu.org> - - Rename `ftxf86.[ch]' to `ftfntfmt.[ch]'. - - CMakeLists.txt, builds/amiga/makefile, builds/amiga/makefile.os4, - builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt, - builds/mac/FreeType.m68k_far.make.txt, - builds/mac/FreeType.ppc_carbon.make.txt, - builds/mac/FreeType.ppc_classic.make.txt, builds/symbian/bld.inf, - builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj, - builds/wince/vc2008-ce/freetype.vcproj, - builds/windows/vc2005/freetype.vcproj, - builds/windows/vc2008/freetype.vcproj, - builds/windows/vc2010/freetype.vcxproj, - builds/windows/vc2010/freetype.vcxproj.filters, - builds/windows/visualc/freetype.dsp, - builds/windows/visualc/freetype.vcproj, - builds/windows/visualce/freetype.dsp, - builds/windows/visualce/freetype.vcproj, docs/INSTALL.ANY, - include/config/ftheader.h, include/ftfntfmt.h, modules.cfg, - src/base/ftfntfmt.c, vms_make.com: Updated. - -2015-03-10 Alexei Podtelezhnikov <apodtele@gmail.com> - - Fix Savannah bug #44412 (part 1). - - * src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns. - -2015-03-10 Werner Lemberg <wl@gnu.org> - - [base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'. - - * include/ftbitmap.h, src/base/ftbitmap.c: Implement it. - Update all callers. - - * docs/CHANGES: Updated. - -2015-03-06 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning. - - Found by Alexei. - -2015-03-05 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftstroke.c: Simplify. - -2015-03-04 Werner Lemberg <wl@gnu.org> - - [truetype] Some fixes and code refactoring in `ttgxvar.c'. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix return value - of `point_cnt' if two bytes are read. - Use a more vertical coding style. - (ft_var_readpackeddeltas): Use FT_UInt for `delta_cnt' parameter. - Use a more vertical coding style. - -2015-03-03 Werner Lemberg <wl@gnu.org> - - [autofit] Fix Savannah bug #44241. - - * src/autofit/aflatin.c (af_latin_metrics_init_blues): Reject glyphs - with less than 3 points. - -2015-03-02 Werner Lemberg <wl@gnu.org> - - Simplify `TYPEOF' macro. - - No need for two arguments. - - * include/config/ftconfig.h, builds/unix/ftconfig.in, - builds/vms/ftconfig.h (TYPEOF): Updated. - - * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR), - src/autofit/afwarp.h (AF_WARPER_FLOOR): Updated. - -2015-03-01 Werner Lemberg <wl@gnu.org> - - Various compiler warning fixes for `make multi'. - - * src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges), - src/autofit/aflatin.c (af_latin_hint_compute_blue_edges, - af_latin_hint_edges), src/autofit/aflatin2.c - (af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare - as `static'. - - * src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH): - Removed. Unused. - * src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H. - * src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed. Unused. - - * src/cff/cf2intrp.c: Include `cf2intrp.h'. - * src/cff/cffdrivr.c (PAIR_TAG): Removed. Unused. - - * src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed. Unused. - - * src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'. - - * src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX): - Removed. Unused. - - * src/raster/ftraster.c (Render_Glyph): Declare as `static'. - - * src/sfnt/ttpost.c (load_format_20): Fix signedness warning. - - * src/truetype/ttdriver.c (PAIR_TAG): Removed. Unused. - * src/truetype/ttsubpix.c (is_member_of_family_class, - is_member_of_style_class): Declare as `static'. - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare - as `static'. - * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as - `static'. - (T1_FIELD_COUNT): Removed. Unused. - * src/type1/t1parse.h (T1_Done_Table): Removed. Unused. - - * src/type42/t42parse.c (T1_Done_Table): Removed. Unused. - -2015-02-25 Werner Lemberg <wl@gnu.org> - - [psaux] Signedness fixes. - - * include/internal/psaux.h, src/psaux/afmparse.c, - src/psaux/afmparse.h, src/psaux/psconv.c, src/psaux/psobjs.c, - src/psaux/t1cmap.c, src/psaux/t1decode.c: Apply. - -2015-02-25 Werner Lemberg <wl@gnu.org> - - [otvalid] Signedness fixes. - - * src/otvalid/otvcommn.c, src/otvalid/otvgdef.c, - src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvmath.c: - Apply. - -2015-02-25 Werner Lemberg <wl@gnu.org> - - * src/bzip2/ftbzip2.c (ft_bzip2_alloc): Signedness fix. - -2015-02-25 Werner Lemberg <wl@gnu.org> - - [lzw] Signedness fixes. - - * src/lzw/ftzopen.c, src/lzw/ftzopen.h: Apply. - -2015-02-25 Werner Lemberg <wl@gnu.org> - - [gxvalid] Signedness fixes. - - * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c, - src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c, - src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c, - src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c, - src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c, - src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c, - src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply. - -2015-02-25 Werner Lemberg <wl@gnu.org> - - [cache] Signedness fixes. - - * src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c, - src/cache/ftcmanag.c, src/cache/ftcsbits.c: Apply. - -2015-02-25 Werner Lemberg <wl@gnu.org> - - Change dimension fields in `FTC_ImageTypeRec' to unsigned type. - - This doesn't break ABI. - - * include/ftcache.h (FTC_ImageTypeRec): Use unsigned types for - `width' and `height'. - - * docs/CHANGES: Document it. - -2015-02-25 Werner Lemberg <wl@gnu.org> - - [cache] Don't use `labs'. - - This is the only place in FreeType where this function was used. - - * include/config/ftstdlib.h (ft_labs): Remove. - - * src/cache/ftcimage.c (ftc_inode_weight): Replace `ft_labs' with - `FT_ABS'. - -2015-02-23 Werner Lemberg <wl@gnu.org> - - [cache] Replace `FT_PtrDist' with `FT_Offset'. - - * src/cache/ftccache.h (FTC_NodeRec): `FT_Offset' (a.k.a. `size_t') - is a better choice for `hash' to hold a pointer than `FT_PtrDist' - (a.k.a. `ptrdiff_t'), especially since the latter is signed, - causing zillions of signedness warnings. [Note that `hash' was of - type `FT_UInt32' before the change to `FT_PtrDist'.] - Update all users. - - * src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c, - src/cache/ftcglyph.c, src/cache/ftcglyph.h: Updated. - -2015-02-23 Werner Lemberg <wl@gnu.org> - - [smooth, raster] Re-enable standalone compilation. - - * src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX) - [_STANDALONE_]: Define macros. - - * src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS, - FT_HYPOT) [_STANDALONE_]: Define macros. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - [smooth] Signedness fixes. - - * src/smooth/ftgrays.c, src/smooth/ftsmooth.c: Apply. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - * src/raster/ftraster.c: Use the file's typedefs everywhere. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttpost.c (load_format_20): Fix error tracing message. - - Bug introduced 6 commits earlier. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - [pshinter] Fix thinko. - - * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Correctly - check `count'. - Bug introduced two commits earlier. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - [raster] Signedness fixes. - - * src/raster/ftraster.c, src/raster/ftrend1.c: Apply. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - [pshinter] Signedness fixes. - - * src/pshinter/pshalgo.c, src/pshinter/pshglob.c, - src/pshinter/pshrec.c: Apply. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - [pshinter] Use macros for (unsigned) flags, not enumerations. - - * src/pshinter/pshalgo.h (PSH_Hint_Flags): Replace with macros. - Updated. - * src/pshinter/pshrec.h (PS_Hint_Flags): Replace with macros. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - * src/pshinter/pshrec.c: Simplify. - (ps_hints_open, ps_hints_stem): Remove switch statement. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - [sfnt] Signedness fixes. - - * src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c, - src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c, - src/sfnt/ttsbit.c: Apply. - * src/sfnt/sfdriver.c: Apply. - (sfnt_get_ps_name): Simplify. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - [bdf] Signedness fixes. - - * src/bdf/bdf.h, src/bdf/bdfdrivr.c, src/bdf/bdfdrivr.h, - src/bdf/bdflib.c: Apply. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - * src/bdf/bdflib.c (_bdf_atous): New function. - (_bdf_parse_glyphs, _bdf_parse_start): Use it. - -2015-02-22 Werner Lemberg <wl@gnu.org> - - [pcf] Signedness fixes. - - * src/pcf/pcf.h, src/pcf/pcfdrivr.c: Apply. - * src/pcf/pcfread.c: Apply. - (pcf_get_encodings): Ignore invalid negative encoding offsets. - -2015-02-21 Werner Lemberg <wl@gnu.org> - - * src/winfonts/winfnt.c: Signedness fixes. - -2015-02-21 Werner Lemberg <wl@gnu.org> - - [type42] Signedness fixes. - - * src/type42/t42parse.c, src/type42/t42parse.h, - src/type42/t42types.h: Apply. - -2015-02-21 Werner Lemberg <wl@gnu.org> - - [pfr] Signedness fixes. - - * src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c, - src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c, - src/pfr/pfrtypes.h: Apply. - -2015-02-21 Werner Lemberg <wl@gnu.org> - - [cff] Minor signedness fixes related to last commit. - - * src/cff/cf2ft.c, src/cff/cf2intrp.c, src/cff/cffgload.c: Apply. - -2015-02-20 Werner Lemberg <wl@gnu.org> - - [cff] Thinkos in bias handling. - - Only the final result is always positive. - - Bug introduced three commits earlier. - - * src/cff/cffgload.c, src/cff/cffgload.h: Apply. - -2015-02-20 Werner Lemberg <wl@gnu.org> - - [cid] Fix signedness issues and emit some better error codes. - - * src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c, - src/cid/cidparse.h: Apply. - * src/cid/cidload.c: Apply. - (parse_fd_array): Reject negative values for number of dictionaries. - * src/cid/cidparse.c: Apply. - (cid_parser_new): Reject negative values for hex data length. - -2015-02-20 Werner Lemberg <wl@gnu.org> - - [cff] Signedness fixes for new engine. - - * src/cff/cf2arrst.c, src/cff/cf2fixed.h, src/cff/cf2ft.c, - src/cff/cf2ft.h, src/cff/cf2hints.c, src/cff/cf2intrp.c: Apply. - -2015-02-20 Werner Lemberg <wl@gnu.org> - - [cff] Signedness fixes for basic infrastructure and old engine. - - * include/internal/pshints.h, src/cff/cffdrivr.c, - src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffload.c, - src/cff/cffobjs.c, src/cff/cffparse.c, src/pshinter/pshrec.c: Apply. - -2015-02-19 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Ignore `countSizePairs'. - - This is hard-coded to value 2 in `fvar' version 1.0 (and no newer - version exists), but some fonts set it incorrectly. - - Problem reported by Adam Twardoch <adam@fontlab.com>. - -2015-02-19 Werner Lemberg <wl@gnu.org> - - [cff] Emit better error code for invalid private dict size. - - * src/cff/cffparse.c (cff_parse_private_dict): Reject negative - values for size and offset. - -2015-02-19 Werner Lemberg <wl@gnu.org> - - [autofit] Fix signedness issues. - - * src/autofit/afangles.c, src/autofit/afcjk.c, - src/autofit/afglobal.c, src/autofit/afhints.c, - src/autofit/aflatin.c, src/autofit/aflatin2.c, src/autofit/afwarp.c, - src/autofit/hbshim.c: Apply. - -2015-02-19 Werner Lemberg <wl@gnu.org> - - [autofit] Use macros for (unsigned) flags, not enumerations. - - This harmonizes with other code in FreeType (and reduces the number - of necessary casts to avoid compiler warnings). - - * src/autofit/afblue.hin: Make flag macros unsigned. - * src/autofit/afblue.h: Regenerated. - - * src/autofit/afcjk.h: Replace flag enumeration with macros. - * src/autofit/afcjk.c: Updated. - - * src/autofit/afhints.h (AF_Flags, AF_Edge_Flags): Replace with - macros. - * src/autofit/afhints.c: Updated. - - * src/autofit/aflatin.h: Replace flag enumerations with macros. - * src/autofit/aflatin.c, src/autofit/aflatin2.c: Updated. - - * src/autofit/aftypes.h (AF_ScalerFlags): Replace with macros. - -2015-02-18 Werner Lemberg <wl@gnu.org> - - [type1] Fix signedness issues. - - * include/internal/psaux.h, include/internal/t1types.h, - src/psaux/psobjs.c, src/psaux/psobjs.h, src/psaux/t1decode.c, - src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1parse.c: Apply. - -2015-02-18 Werner Lemberg <wl@gnu.org> - - [psaux, type1] Fix minor AFM issues. - - * include/internal/t1types.h (AFM_KernPairRec): Make indices - unsigned. - Update users. - (AFM_FontInfoRec): Make element counters unsigned. - Update users. - * src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned - int. - - * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs): - Reject negative values for number of kerning elements. - - * src/type1/t1afm.c, src/tools/test_afm.c: Updated. - -2015-02-18 Werner Lemberg <wl@gnu.org> - - Don't use `FT_PtrDist' for lengths. - - Use FT_UInt instead. - - * include/internal/psaux.h (PS_Table_FuncsRec, PS_TableRec, - T1_DecoderRec): Do it. - - * include/internal/t1types.h (T1_FontRec): Ditto. - - * src/cid/cidload.c (cid_parse_dict): Updated. - * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto. - * src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto. - * src/type1/t1load.c (parse_blend_axis_types, parse_encoding, - parse_charstrings, parse_dict): Ditto. - * src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings, - t42_parse_dict): Ditto. - -2015-02-18 Werner Lemberg <wl@gnu.org> - - * src/type1/t1driver.c (t1_ps_get_font_value): Clean up. - This handles negative values better, avoiding many casts. - -2015-02-17 Werner Lemberg <wl@gnu.org> - - [base] Fix Savannah bug #44284. - - * src/base/ftcalc.c (FT_MulFix): Typos. - -2015-02-17 Werner Lemberg <wl@gnu.org> - - [truetype] Finish compiler warning fixes for signedness issues. - - * src/truetype/ttgxvar.c, src/truetype/ttsubpix.c, - src/truetype/ttsubpix.h: Apply. - -2015-02-17 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttsubpix.c: Adding missing `static' keywords. - -2015-02-17 Werner Lemberg <wl@gnu.org> - - [truetype] More signedness fixes. - - * include/internal/tttypes.h, src/truetype/ttinterp.h, - src/truetype/ttobjs.h, src/truetype/ttinterp.c, - src/truetype/ttobjs.c: Apply. - -2015-02-17 Werner Lemberg <wl@gnu.org> - - [truetype] Various signedness fixes. - - * include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply. - - * src/truetype/ttgload.c: Apply. - (TT_Get_VMetrics): Protect against invalid ascenders and descenders - while constructing advance height. - -2015-02-16 Werner Lemberg <wl@gnu.org> - - [base] Finish compiler warning fixes for signedness issues. - - * src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c: - Apply. - -2015-02-16 Werner Lemberg <wl@gnu.org> - - * include/tttables.h (TT_OS2): `fsType' must be FT_UShort. - -2015-02-16 Werner Lemberg <wl@gnu.org> - - More minor signedness warning fixes. - - * src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c, - src/base/ftutil.c: Apply. - -2015-02-16 Werner Lemberg <wl@gnu.org> - - Next round of minor compiler warning fixes. - - * include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member - type to `FT_Long'. - (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword. - - * include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'. - - * src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c: - Signedness fixes. - -2015-02-16 Werner Lemberg <wl@gnu.org> - - Various minor signedness fixes. - - * include/ftadvanc.h, include/internal/ftobjs.h, - src/base/ftgloadr.c, src/base/ftobjs.c: Apply. - -2015-02-16 Werner Lemberg <wl@gnu.org> - - New `TYPEOF' macro. - - This helps suppress signedness warnings, avoiding issues with - implicit conversion changes. - - * include/config/ftconfig.h, builds/unix/ftconfig.in, - builds/vms/ftconfig.h (TYPEOF): Define. - - * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR), - src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it. - -2015-02-16 Werner Lemberg <wl@gnu.org> - - * src/base/ftsystem.c: Use casts in standard C function wrappers. - (ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it. - -2015-02-16 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #44261. - - * builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the - environment also while calling the configure script. - -2015-02-16 Werner Lemberg <wl@gnu.org> - - * include/internal/ftmemory.h: Add some `FT_Offset' casts. - (FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY, - FT_MEM_MOVE): Do it. - -2015-02-15 Werner Lemberg <wl@gnu.org> - - [base] Clean up signedness issues in `ftdbgmem.c'. - - Also fix other minor issues. - - * src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types - with FT_Long for consistency. - (ft_mem_primes): Change type to `FT_Int'. - (ft_mem_closest_prime, ft_mem_table_set): Updated. - - (ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free, - ft_mem_debug_realloc): Use `static' keyword and fix signedness - warnings where necessary. - - (ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy, - ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types - and add or remove casts to avoid signedness warnings. - -2015-02-15 Werner Lemberg <wl@gnu.org> - - [base] Clean up signedness in arithmetic functions. - - This makes the code more readable and reduces compiler warnings. - - * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix, - FT_DivFix): Convert input parameters to unsigned, do the - computation, then convert the result back to signed. - (ft_corner_orientation): Fix casts. - -2015-02-07 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Savannah bug #44184. - - * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No - longer reject `htmx' and `vmtx' tables with invalid length but - sanitize them. - -2015-02-06 Jon Anderson <jon@websupergoo.com> - - [truetype] Fix regression in the incremental glyph loader. - - * src/truetype/ttgload.c (load_truetype_glyph): For incremental - fonts, the glyph index may be greater than the number of glyphs - indicated, so guard the check with a preprocessor conditional. - -2015-02-06 Werner Lemberg <wl@gnu.org> - - [autofit] Fix potential memory leak. - - While this doesn't show up with FreeType, exactly the same code - leaks with ttfautohint's modified auto-hinter code (which gets used - in a slightly different way). - - It certainly doesn't harm since it is similar to already existing - checks in the code for embedded arrays. - - * src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours' - and `max_points' for all cases. - -2015-01-31 Werner Lemberg <wl@gnu.org> - - [autofit] Add support for Thai script. - - Thanks to Ben Mitchell <ben@rosettatype.com> for guidance with blue - zone characters! - - * src/autofit/afblue.dat: Add blue zone data for Thai. - - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Thai standard characters. - - * src/autofit/afranges.c: Add Thai data. - - * src/autofit/afstyles.h: Add Thai data. - -2015-01-23 Behdad Esfahbod <behdad@behdad.org> - - [raster] Handle `FT_RASTER_FLAG_AA' correctly. - - This fixes a breakage caused by the commit `[raster] Remove - 5-level gray AA mode from monochrome rasterizer.'. - - Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de>. - - * src/raster/ftraster.c (ft_black_render): Handle - `FT_RASTER_FLAG_AA'. - - * src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode - remnants. - -2015-01-18 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_New_Library): Fix compiler warning. - -2015-01-18 Chris Liddell <chris.liddell@artifex.com> - - [raster] Fix Savannah bug #44022. - - Add fallback for glyphs with degenerate bounding boxes. - - If a glyph has only one very narrow feature, the bbox can end up - with either the width or height of the bbox being 0, in which case - no raster memory is allocated and no attempt is made to render the - glyph. This is less than ideal when the drop-out compensation in - the rendering code would actually result in the glyph being - rendered. - - This problem can be observed with the `I' glyph (gid 47) in the - Autodesk RomanS TrueType font. - - * src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either - dimension is zero to explicitly round up/down (instead of simply - round). - -2015-01-17 Werner Lemberg <wl@gnu.org> - - Add some tools to handle yearly copyright notice updates. - - We are now following the GNU guidelines: A new release automatically - means that the copyright year of all affected files gets updated; it - is no longer used to track years of modification changes. - - * src/tools/update-copyright-year: New Perl script. - * src/tools/update-copyright: New shell script that calls - `update-copyright-year' on all files. - * src/tools/no-copyright: Exceptions that should not be handled by - `update-copyright' - -2015-01-14 Werner Lemberg <wl@gnu.org> - - * docs/CHANGES: Updated, using a description from Behdad. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - * src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [autofit] Add embedded array of segments and edges. - - Avoids multiple mallocs per typical glyphs. - - With this and recent changes to avoid mallocs, the thread-safe - stack-based loader is now as fast as the previous model that had one - cached singleton. - - * src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED): - New macros. - (AF_AxisHintsRec): Add two arrays for segments and edges. - - * src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate - data if number of segments exceeds given threshold value. - (af_axis_hints_new_edge): Only allocate data if number of edges - exceeds given threshold value. - (af_glyph_hints_done): Updated. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [autofit] Add embedded arrays for points and contours. - - This avoids at least two malloc calls for typical glyphs. - - * src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED): - New macros. - (AF_GlyphHintsRec): Add two arrays for contours and points. - - * src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done): - Updated. - (af_glyph_hints_reload): Only allocate data if number of contours or - points exceeds given threshold values. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [autofit] Allocate hints object on the stack. - - This avoids one malloc per load. - - * src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to - `AF_GlyphHints'. - Update prototype. - - * src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints' - parameter instead of `FT_Memory'. - (af_loader_done): Directly reset `load_hints'. - (af_loader_load_g): Updated. - - * src/autofit/afmodule.c (af_autofitter_load_glyph): Use local - `hints' object. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [autofit] Reuse slot glyph loader. - - No need to create a new glyph loader; we can reuse the one from - `slot->internal->loader'. It's hard to tell why it was written that - way originally, but new code looks sound and correct to me, and - avoids lots of allocations. - - * src/autofit/afloader.c (af_loader_init): Change return type to - `void'. - Don't call `FT_GlyphLoader_New'. - (af_loader_reset): Don't call `FT_GlyphLoader_Rewind'. - (af_loader_load_g): Update code to use `internal->loader', which - doesn't need copying of data. - - * src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member. - Update prototype. - - * src/autofit/afmodule.c (af_autofitter_load_glyph): Updated. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [autofit] Remove (unused) support for composite glyphs. - - We never have to deal with composite glyphs in the autohinter, as - those will be loaded into FORMAT_OUTLINE by the recursed - `FT_Load_Glyph' function. - - In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply - FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies - FT_LOAD_NO_HINTING: - - /* resolve load flags dependencies */ - - if ( load_flags & FT_LOAD_NO_RECURSE ) - load_flags |= FT_LOAD_NO_SCALE | - FT_LOAD_IGNORE_TRANSFORM; - - if ( load_flags & FT_LOAD_NO_SCALE ) - { - load_flags |= FT_LOAD_NO_HINTING | - FT_LOAD_NO_BITMAP; - - load_flags &= ~FT_LOAD_RENDER; - } - - and as such the auto-hinter is never called. Thus, the recursion in - `af_loader_load_g' never actually happens. So remove the depth - counter as well. - - * src/autofit/afloader.c (af_loader_load_g): Remove `depth' - parameter. - <FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code. - (af_loader_load_glyph): Updated. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [raster] Fix uninitialized memory access. - - Apparently `ras.cProfile' might be uninitialized. This will be the - case if `ras.top == ras.cProfile->offset', as can be seen in - `End_Profile'. The overshoot code introduced in a change `Fix B/W - rasterization of subglyphs with different drop-out modes.' (from - 2009-06-18) violated this, accessing `ras.cProfile->flags' - unconditionally just before calling `End_Profile' (which then - detected that `cProfile' is uninitialized and didn't touch it). - - This was harmless, and was not detected by valgrind before because - the objects were allocated on the `raster_pool', which was always - initialized. With recent change to allocate raster buffers on the - stack, valgrind now reported this invalid access. - - * src/raster/ftraster.c (Convert_Glyph): Don't access an - uninitialized `cProfile'. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [smooth] Fix uninitialized memory access. - - Looks like `ras.span_y' could always be used without initialization. - This was never detected by valgrind before because the library-wide - `raster_pool' was used for the worker object and `raster_pool' was - originally zero'ed. But subsequent reuses of it were using `span_y' - uninitialized. With the recent change to not use `render_pool' and - allocate worker and buffer on the stack, valgrind now detects this - uninitialized access. - - * src/smooth/ftgrays.c (gray_raster_render): Initialize - `ras.span_y'. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [base] Don't initialize unused `driver->glyph_loader'. - - * src/base/ftobjs.c (Destroy_Driver): Don't call - `FT_GlyphLoader_Done'. - (FT_Add_Module): Don't call `FT_GlyphLoader_New'. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [base] Don't allocate `library->raster_pool' anymore. - - It's unused after the following commits: - - [raster] Allocate render pool for mono rasterizer on the stack. - [raster] Remove 5-level gray AA mode from monochrome rasterizer. - - The value of FT_RENDER_POOL_SIZE still serves the purpose it used to - serve, which is, to adjust the pool size. But the pool is now - allocated on the stack on demand. - - * src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [base] Do not reorder library->renderers upon use. - - Instead of keeping `library->renderers' in a MRU order, just leave - it as-is. The MRU machinery wasn't thread-safe. - - With this patch, rasterizing glyphs from different faces from - different threads doesn't fail choosing rasterizer - (FT_Err_Cannot_Render_Glyph). - - Easiest to see that crash was to add a `printf' (or otherwise let - thread yield in FT_Throw with debugging enabled). - - * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c - (FT_Outline_Render): Don't call `FT_Set_Renderer'. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [raster] Allocate render pool for mono rasterizer on the stack. - - Instead of using the `render_pool' member of `FT_Library' that is - provided down to the rasterizer, completely ignore that and allocate - needed objects on the stack instead. - - With this patch, rasterizing glyphs from different faces from - different threads doesn't crash in the monochrome rasterizer. - - * src/raster/ftraster.c (black_TRaster): Remove `buffer', - `buffer_size', and `worker' members. - - (ft_black_render): Create `buffer' locally. - (ft_black_reset): Updated. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [raster] Remove 5-level gray AA mode from monochrome rasterizer. - - It was off by default and couldn't be turned on at runtime. And the - smooth rasterizer superseded it over ten years ago. No point in - keeping. Comments suggested that it was there for compatibility - with FreeType 1. - - 550 lines down. - - * src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING, - RASTER_GRAY_LINES): Remove macros and all associated code. - - (black_TWorker): Remove `gray_min_x' and `gray_max_x'. - (black_TRaster): Remove `grays' and `gray_width'. - - (Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop, - ft_black_render): Updated. - - * src/raster/ftrend1.c (ft_raster1_render): Simplify code. - (ft_raster5_renderer_class): Removed. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [smooth] Allocate render pool for smooth rasterizer on the stack. - - Instead of using the `render_pool' member of `FT_Library' that is - provided down to the rasterizer, completely ignore that and allocate - needed objects on the stack instead. - - With this patch, rasterizing glyphs from different faces from - different threads doesn't crash in the smooth rasterizer. - - Bugs: - - https://bugzilla.redhat.com/show_bug.cgi?id=678397 - https://bugzilla.redhat.com/show_bug.cgi?id=1004315 - https://bugzilla.redhat.com/show_bug.cgi?id=1165471 - https://bugs.freedesktop.org/show_bug.cgi?id=69034 - - * src/smooth/ftgrays.c (gray_TRaster): Remove `buffer', - `buffer_size', `band_size', and `worker' members. - - (gray_raster_render): Create `buffer', `buffer_size', and - `band_size' locally. - (gray_raster_reset): Updated. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver. - - Previously the code had stipulation for using a per-TT_Size exec - context if `size->debug' was true. But there was no way that - `size->debug' could *ever* be true. As such, the code was always - using the singleton `TT_ExecContext' that was stored in `TT_Driver'. - This was, clearly, not threadsafe. - - With this patch, loading glyphs from different faces from different - threads doesn't crash in the bytecode loader code. - - * src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member. - (TT_DriverRec): Remove `context' member. - - * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove - `TT_ExecContext' code related to a global `TT_Driver' object. - - (tt_driver_done): Don't remove `TT_ExecContext' object here but ... - (tt_size_done_bytecode): ... here. - - (tt_driver_init): Don't create `TT_ExecContext' object here but ... - (tt_size_init_bytecode): ... here, only on demand. - - * src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug - code. - (TT_New_Context): Remove `TT_ExecContext' code related to a global - `TT_Driver' object. - - * src/truetype/ttinterp.h: Updated. - - * src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - [autofit] Allocate AF_Loader on the stack instead of AF_Module. - - Stop sharing a global `AF_Loader'. Allocate one on the stack during - glyph load. - - Right now this results in about 25% slowdown, to be fixed in a - following commit. - - With this patch loading glyphs from different faces from different - threads doesn't immediately crash in the autohinting loader code. - - Bugs: - - https://bugzilla.redhat.com/show_bug.cgi?id=1164941 - - * src/autofit/afloader.c (af_loader_init): Pass - `AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments. - (af_loader_reset, af_loader_load_glyph): Also pass `loader' as - argument. - (af_loader_done): Use `AF_Loader' instead of `AF_Module' as - argument. - - * src/autofit/afmodule.c (af_autofitter_init): Don't call - `af_loader_init'. - (af_autofitter_done): Don't call `af_loader_done'. - (af_autofitter_load_glyph): Use a local `AF_Loader' object. - - * src/autofit/afloader.h: Include `afmodule.h'. - Update prototypes. - Move typedef for `AF_Module' to... - - * src/autofit/afmodule.h: ... this place. - No longer include `afloader.h'. - -2015-01-14 Behdad Esfahbod <behdad@behdad.org> - - * src/type42/t42objs.h (T42_DriverRec): Remove unused member. - -2015-01-12 Werner Lemberg <wl@gnu.org> - - Fix Savannah bug #43976. - - Assure that FreeType's internal include directories are found before - `CPPFLAGS' (which might be set by the user in the environment), and - `CPPFLAGS' before `CFLAGS'. - - * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'. - (FT_COMPILE): Make this a special variable for compiling only the - files handled in `freetype.mk'. - (.c.$O): Removed, unused. - - * src/*/rules.mk (*_COMPILE): Fix order of include directories. - -2015-01-11 Werner Lemberg <wl@gnu.org> - - [truetype] Prettifying. - - * src/truetype/ttinterp.c (project, dualproj, fast_project, - fast_dualproj): Rename to... - (PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this. - -2015-01-11 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify. - - Based on a patch from Behdad. - -2015-01-11 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call. - -2015-01-11 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Normalize): Remove unused argument. - -2015-01-11 Werner Lemberg <wl@gnu.org> - - [truetype] More macro expansions. - - * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by - expansion. - -2015-01-11 Werner Lemberg <wl@gnu.org> - - [truetype] More macro expansions. - - * src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion, - adjusting function calls where necessary. - (FT_UNUSED_ARG): Removed, no longer needed. - -2015-01-10 Werner Lemberg <wl@gnu.org> - - [truetype] More macro expansions. - - Based on a patch from Behdad. - - * src/truetype/ttinterp.c (DO_*): Expand macros into corresponding - `Ins_*' functions. - (TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls. - (ARRAY_BOUND_ERROR): Remove second definition, which is no longer - needed. - (Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with... - (Ins_SxyTCA): New function. - -2015-01-10 Werner Lemberg <wl@gnu.org> - - [truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH. - - Behdad suggested this code simplification, and nobody objected... - - * include/config/ftoption.h, devel/ftoption.h - (TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove. - - * src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]: - Remove related code. - (ARRAY_BOUND_ERROR): Use do-while loop. - -2015-01-10 Werner Lemberg <wl@gnu.org> - - [truetype] More macro expansions. - - * src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_, - EXEC_ARG): Remove by replacing with expansion. - -2015-01-10 Werner Lemberg <wl@gnu.org> - - [truetype] More macro expansions. - - Based on a patch from Behdad. - - * src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize, - SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move, - CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem, - CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt, - CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round, - COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing - with expansion. - - (Cur_Func_project, CUR_Func_dualproj, CUR_fast_project, - CUR_fast_dualproj): Replace with macros `project', `dualproj', - `fast_project', `fast_dualproj'. - -2015-01-10 Werner Lemberg <wl@gnu.org> - - [truetype] More macro expansions. - - * src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing - with expansion. - -2015-01-10 Werner Lemberg <wl@gnu.org> - - [truetype] Remove code for static TrueType interpreter. - - This is a follow-up patch. - - * src/truetype/ttinterp.c, src/truetype/ttinterp.h - [TT_CONFIG_OPTION_STATIC_INTERPRETER, - TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code. - -2015-01-10 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (CUR): Remove by replacing with expansion. - - This starts a series of patches that simplifies the code of the - bytecode interpreter. - - ----------------------------------------------------------------------------- - -Copyright (C) 2015-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.27 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.27 deleted file mode 100644 index c5fb1f9a6df..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.27 +++ /dev/null @@ -1,2106 +0,0 @@ -2016-12-30 Werner Lemberg <wl@gnu.org> - - * Version 2.7.1 released. - ========================= - - - Tag sources with `VER-2-7-1'. - - * docs/VERSION.TXT: Add entry for version 2.7.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.7/2.7.1/, s/27/271/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. - - * builds/unix/configure.raw (version_info): Set to 19:0:13. - * CMakeLists.txt (VERSION_PATCH): Set to 1. - -2016-12-30 Werner Lemberg <wl@gnu.org> - - [ftfuzzer] Replace `rand' with an xorshift algorithm. - - * src/tools/ftfuzzer/ftfuzzer.cc: Don't include `stdlib.h'. - (Random): Implement and use a 32bit `xorshift' algorithm. - -2016-12-30 Werner Lemberg <wl@gnu.org> - - [ftfuzzer] Restrict number of tested bitmap strikes. - - Malformed fonts often have large values for the number of bitmap - strikes, and FreeType doesn't check the validity of all bitmap - strikes in advance. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=353 - - * src/tools/ftfuzzer/ftfuzzer.cc: Include `stdlib.h' for `rand'. - (Random): Small class to provide n randomly selected numbers - (without repetition) out of the value set [1,N]. - (LLVMFuzzerTestOneInput): Use it to test only up to 10 bitmap - strikes. - -2016-12-29 Werner Lemberg <wl@gnu.org> - - [truetype] Variation font API stability issues. - - Make some functions work before a call to `TT_Set_MM_Blend'. - - * src/truetype/ttgxvar.c (tt_hadvance_adjust): Exit immediately if - we don't blend. - (TT_Get_MM_Blend, TT_Get_Var_Design): Return default values if we - don't blend. - -2016-12-29 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis data. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=348 - -2016-12-29 Werner Lemberg <wl@gnu.org> - - [truetype] Tracing fixes. - - * src/truetype/ttgxvar.c (tt_hadvance_adjust): Emit correct - information. - (TT_Set_Var_Design): Fix typo. - (TT_Get_Var_Design): Fix typos. - -2016-12-29 Werner Lemberg <wl@gnu.org> - - */*: Use `0.5f' for tracing 16.16 numbers. - -2016-12-29 Werner Lemberg <wl@gnu.org> - - [pcf] Protect against gzip bombs. - - Fix suggested by Kostya; reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=345 - - * src/pcf/pcfread.c (pcf_read_TOC): Limit number of TOC entries to - 1024. - -2016-12-28 Werner Lemberg <wl@gnu.org> - - [psnames] Only declare, not define, data in `pstables.h' (#49949). - - Pdfium includes `pstables.h' a second time; moving the definition - from `pstables.h' to `psmodule.c' saves more than 60kByte data - segment space for this case. - - * src/tools/glnames.py (StringTable::dump, - StringTable::dump_sublist, dump_encoding, dump_array): Emit - additional code to only define tables if `DEFINE_PS_TABLES' is set. - - * src/psnames/pstables.h: Regenerated. - * src/psnames/psmodule.c (DEFINE_PS_TABLES): Define. - -2016-12-28 Werner Lemberg <wl@gnu.org> - - [cff] Catch `blend' op in non-variant fonts. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=334 - - * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdBLEND>: Don't - allow `blend' op for non-variant fonts. - -2016-12-28 Werner Lemberg <wl@gnu.org> - - [cff] Better check of number of blends. - - * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdBLEND>, - src/cff/cffparse.c (cff_parse_blend): Compare number of blends with - stack size. - -2016-12-27 Werner Lemberg <wl@gnu.org> - - Documentation updates. - - * docs/CHANGES: Add missing information. - - * docs/formats.txt: Rewritten and updated. - -2016-12-27 Werner Lemberg <wl@gnu.org> - - [truetype, type1] Implement `FT_Get_Var_Design_Coordinates'. - - * src/truetype/ttgxvar.c (TT_Get_Var_Design): Implement. - (TT_Set_Var_Design): Fix tracing. - - * src/type1/t1load.c (T1_Get_Var_Design): Implement. - -2016-12-24 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttpload.c (tt_face_load_hdmx): Ignore `version'. - - Problem reported by 張俊芝 <418092625@qq.com>. - -2016-12-24 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttsbit.c (tt_face_load_sbit): Allow more version values. - - Some fonts seem to have the `version' field in the wrong byte order. - - Problem reported by 張俊芝 <418092625@qq.com>. - -2016-12-24 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttpload.c (tt_face_load_loca): Sanitize table length. - - This trivial fix allows us to accept more fonts. - - Problem reported by 張俊芝 <418092625@qq.com>. - -2016-12-24 Werner Lemberg <wl@gnu.org> - - * src/sfnt/sfobjs.c (sfnt_init_face): Fix tracing. - -2016-12-22 Werner Lemberg <wl@gnu.org> - - * CMakeLists.txt: Make it work with cmake 2.8.11.2 (#49909). - -2016-12-22 Werner Lemberg <wl@gnu.org> - - Ensure used preprocessor symbols are defined (#49790). - - * builds/unix/ftconfig.in, builds/vms/ftconfig.h, - include/freetype/config/ftconfig.h: Check `__GNUC__', `__IBMC__', - and `__SUNPRO_C' correctly. - -2016-12-22 Werner Lemberg <wl@gnu.org> - - * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Check `count'. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=308 - -2016-12-22 Werner Lemberg <wl@gnu.org> - - [cff] Protect against invalid `vsindex' and `blend' values. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=305 - - * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdVSINDEX, - cf2_cmdBLEND>: Implement it. - -2016-12-22 Werner Lemberg <wl@gnu.org> - - [ftfuzzer] Always use Adobe CFF engine. - - * src/tools/ftfuzzer/ftfuzzer.cc (FT_Global::FT_Global): Implement - it. - -2016-12-21 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko. - - I should really stop coding late in the evening... - - Thanks again to Ben for checking. - -2016-12-21 Werner Lemberg <wl@gnu.org> - - [autofit] Support variation fonts. - - (This ChangeLog entry was added later on.) - - * src/autofit/afglobal.c (af_face_globals_free): Remove useless - code. - - * src/base/ftmm.c (FT_Set_MM_Design_Coordinates, - * FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates, - FT_Set_Var_Blend_Coordinates): Finalize - auto-hinter data to enforce recomputation. Note that this is a - brute-force method which should be improved. - -2016-12-21 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Thinko. - - Don't apply deltas twice for non-phantom points. - - Spotted by Ben Wagner. - -2016-12-21 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Another try for #49829. - - * src/cff/cffdrivr.c: Don't include - `FT_SERVICE_METRICS_VARIATIONS_H'. - (cff_get_advances): Use `ttface->variation_support'. - - * src/truetype/ttdriver.c (tt_get_advances): Use - `ttface->variation_support'. - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Use `ttface->variation_support'. - -2016-12-21 Werner Lemberg <wl@gnu.org> - - [truetype, sfnt] Introduce font variation flags to `TT_Face'. - - * include/freetype/internal/tttypes.h (TT_FACE_FLAG_VAR_XXX): - New macros describing available functionality of various OpenType - tables related to font variation. - (TT_Face): New fields `variation_support' and `mvar_support', - replacing and extending `use_fvar'. - - * src/sfnt/sfobjs.c (sfnt_init_face, sfnt_load_face): Use - `variation_support'. - - * src/truetype/ttgxvar.c (ft_var_load_hvar): Set `variation_support' - field. - (TT_Vary_Apply_Glyph_Deltas): Updated. - -2016-12-21 Werner Lemberg <wl@gnu.org> - - [base] Improve sanity check for Mac resources (#49888). - - * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Abort if `rlen' is not - positive. - -2016-12-20 Werner Lemberg <wl@gnu.org> - - [base] More sanity checks for Mac resources. - - We use - - https://github.com/kreativekorp/ksfl/wiki/Macintosh-Resource-File-Format - - and - - https://developer.apple.com/legacy/library/documentation/mac/pdf/MoreMacintoshToolbox.pdf#page=151 - - as references. - - * include/freetype/internal/ftrfork.h (FT_RFork_Ref): Use FT_Short - for `res_id'. - - * src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Extract map length - and use it to improve sanity checks. - Follow the specification more closely;in particular, all data types - are signed, not unsigned. - (FT_Raccess_Get_DataOffsets): Follow the specification more closely; - in particular, all data types are signed, not unsigned. - Add some sanity checks. - -2016-12-20 Werner Lemberg <wl@gnu.org> - - [truetype] Improve logic for getting fast advance widths. - - * src/cff/cffdrivr.c (cff_get_advances), src/truetype/ttdriver.c - (tt_get_advances): Use `is_default_instance' for test; this gets - recomputed after changing blend coordinates. - -2016-12-20 Ben Wagner <bungeman@google.com> - Werner Lemberg <wl@gnu.org> - - [truetype] Fix linear metrics of GX variation fonts (#49829). - - When asking for an unhinted non-default variations, - `linearVertAdvance' is currently the value from the `hmtx' table - instead of the actual value after applying the variation. `HVAR' - support fixes this, but fonts will exist without that table and will - need sane fallback. - - Problem also reported as - - https://bugs.chromium.org/p/skia/issues/detail?id=5917 - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Implement linear advance adjustments if `HVAR' - or `VVAR' tables are missing. - -2016-12-20 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Fast advance width retrieval for fonts with HVAR. - - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - - * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Don't handle MM. - - * src/cff/cffdrivr.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (cff_get_advances): Test for HVAR and VVAR. - - * src/truetype/ttdriver.c (tt_get_advances): Test for HVAR and VVAR. - -2016-12-18 Werner Lemberg <wl@gnu.org> - - [base] Fix invalid mac font recursion. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=304 - - * src/base/ftobjs.c (FT_Open_Face): Code moved to... - (ft_open_face_internal): ... this function. - Add a parameter to control whether we try special Mac font handling - in case of failure. - (FT_Open_Face, FT_New_Face, FT_New_Memory_Face, - open_face_from_buffer): Use `ft_open_face_internal'. - -2016-12-18 Werner Lemberg <wl@gnu.org> - - * src/cff/cffobjs.c (cff_face_init): Make named instances work. - -2016-12-18 Werner Lemberg <wl@gnu.org> - - [truetype, cff] Extend `get_var_blend' function of MM service. - - In particular, we need access to named instance data. - - * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func): - Add argument for `FT_MM_Var'. - - * src/cff/cffload.c (cff_get_var_blend): Updated. - * src/cff/cffload.h: Updated. - - * src/cff/cf2ft.c (cf2_getNormalizedVector): Updated. - - * src/truetype/ttgxvar.c (tt_get_var_blend): Updated. - Accept value `NULL' for arguments. - * src/truetype/ttgxvar.h: Updated. - -2016-12-18 Werner Lemberg <wl@gnu.org> - - [sfnt] Handle `fvar' with zero axes as a non-MM font. - - This is better behaviour than exiting with an error. - - * include/freetype/internal/tttypes.h (TT_Face): Add `use_fvar' - field. - - * src/sfnt/sfobjs.c (sfnt_init_face): Compute `use_fvar', also - updating the validation code. - Use `use_fvar' to compute FT_FACE_FLAG_MULTIPLE_MASTERS. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Remove `fvar' validation - code. - -2016-12-18 Werner Lemberg <wl@gnu.org> - - Minor GX code shuffling. - - * include/freetype/internal/tttypes.h (TT_Face): Move - `is_default_instance' into TT_CONFIG_OPTION_GX_VAR_SUPPORT - block. - - * src/sfnt/sfobjs.c (sfnt_init_face): Updated. - * src/truetype/ttgload.c (IS_DEFAULT_INSTANCE): New macro. - (TT_Load_Glyph): Use it. - -2016-12-18 Werner Lemberg <wl@gnu.org> - - [cff] Better handling of non-CFF font formats. - - * src/cff/cffload.c (cff_font_load): Pure CFFs don't have a - signature, so return `FT_Err_Unknown_File_Format' more often. - -2016-12-17 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (cff_build_blend_vector): Remove redundant code. - -2016-12-17 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttobjs.c (tt_face_init): Simplify conditional code. - -2016-12-17 Werner Lemberg <wl@gnu.org> - - [sfnt, truetype] Various sanitizing fixes. - - * src/sfnt/sfobjs.c (sfnt_init_face): If the axis count in `fvar' is - zero, set `num_instances' to zero. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Handle `fvar' table with - zero axes as invalid. - - * src/truetype/ttobjs.c (tt_face_init): Improve logic of loading - `loca', `cvt', `fpgm', and `prep' table. - -2016-12-17 Werner Lemberg <wl@gnu.org> - - Improve tracing of `FT_Open_Face'. - - * src/base/ftobjs.c (FT_Open_Face): Return info on number of - available faces and numbered instances, or the indices of the - requested face and numbered instance. - - * src/sfnt/sfobjs. (sfnt_open_font): Trace number of subfonts. - -2016-12-17 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (cff_load_private_dict): Always init `blend'. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=295 - -2016-12-16 Werner Lemberg <wl@gnu.org> - - [truetype] Fix `cvar' sanity test. - - Reported by Dave Arnold. - - * src/truetype/ttgxvar.c (tt_face_vary_cvt): Use tuple count mask. - -2016-12-16 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Remove compiler warnings; fix `make multi'. - - * src/cff/cf2font.h: Include `cffload.h'. - - * src/cff/cffload.c: Include FT_MULTIPLE_MASTERS_H and - FT_SERVICE_MULTIPLE_MASTERS_H. - (cff_vstore_load): Eliminate `vsSize'. - (cff_load_private_dict): Tag as `FT_LOCAL_DEF'. - - * src/cff/cffload.h: Include `cffobjs.h'. - Provide declaration for `cff_load_private_dict'. - - * src/truetype/ttgxvar.c (ft_var_load_hvar): Eliminate - `minorVersion' and `map_offset'. - -2016-12-16 Werner Lemberg <wl@gnu.org> - - [cff] Fix heap buffer overflow (#49858). - - * src/cff/cffparse.c (cff_parser_run): Add one more stack size - check. - -2016-12-15 Werner Lemberg <wl@gnu.org> - - Fix clang warnings. - - * src/cff/cffload.c (cff_blend_doBlend): Add cast. - (cff_subfont_load): Set `error' correctly. - - * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo. - -2016-12-15 Dave Arnold <darnold@adobe.com> - Werner Lemberg <wl@gnu.org> - - [cff] Implement CFF2 support (2/2). - - The font variation code. All parts dependent on the GX code in the - `truetype' module are guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - In other words, you can still compile the `cff' module without - defining TT_CONFIG_OPTION_GX_VAR_SUPPORT (which brings you CFF2 - support without font variation). - - * src/cff/cf2font.c (cf2_font_setup): Add support for font - variation. - * src/cff/cf2font.h (CF2_Font): Add fields for variation data. - - * src/cff/cf2ft.c (cf2_free_instance): Free blend data. - (cf2_getVStore, cf2_getNormalizedVector): New functions. - * src/cff/cf2ft.h: Updated. - - * src/cff/cf2intrp.c: Include `cffload.h'. - (cf2_cmdRESERVED_15, cf2_cmdRESERVED_16): Replace with... - (cf2_cmdVSINDEX, cf2_cmdBLEND): ... this new enum values. - (cf2_doBlend): New function. - (cf2_interpT2CharString): Handle `vsindex' and `blend' opcodes. - - * src/cff/cffload.c (FT_fdot14ToFixed): New macro. - (cff_vstore_done, cff_vstore_load): New functions. - (cff_blend_clear, cff_blend_doBlend, cff_blend_build_vector, - cff_blend_check_vector): New functions. - (cff_load_private_dict): Add arguments for blend vector. - Handle blend data. - (cff_subfont_load, cff_subfont_done): Updated. - (cff_font_load): Handle CFF2 variation store data. - (cff_font_done): Updated. - * src/cff/cffload.h: Include `cffparse.h'. - Updated. - - * src/cff/cffobjs.c (cff_face_done): Updated. - - * src/cff/cffparse.c: Include `cffload.h'. - (cff_parse_num): Handle internal value 255. - (cff_parse_vsindex, cff_parse_blend): New functions. - (CFF_FIELD_BLEND): New macro. - (cff_parser_run): Updated. - * src/cff/cffparse.h (cff_kind_blend): New enum value. - - * src/cff/cfftoken.h: Handle `vstore', `vsindex', and `blend' - dictionary values. - - * src/cff/cfftypes.h (CFF_VarData, CFF_AxisCoords, CFF_VarRegion, - CFF_VStore, CFF_Blend): New structures. - (CFF_FontRecDict): Add `vstore_offset' field. - (CFF_Private): Add `vsindex' field. - (CFF_SubFont): Add fields for blend data. - (CFF_Font): Add `vstore' field. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): `CFF2' is equal to `gvar', - since glyph variation data is directly embedded. - (TT_Set_MM_Blend): Don't load `gvar' table for CFF2 fonts. - -2016-12-15 Dave Arnold <darnold@adobe.com> - Werner Lemberg <wl@gnu.org> - - [cff] Implement CFF2 support (1/2). - - This commit does not contain the blend code for font variation - support, which follows in another commit. - - You should ignore whitespace while inspecting this commit. - - * include/freetype/internal/tttypes.h (TT_Face): Add `isCFF2' - member. - - * src/cff/cf2font.h (CF2_Font): Add `isCFF2' member. - - * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Handle `isCFF2' - flag. - (cf2_getMaxstack): New function. - * src/cff/cf2ft.h: Updated. - - * src/cff/cf2intrp.c (cf2_escRESERVED_38): New enum. - (cf2_interpT2CharString): Handle CFF2 differences. - Add tracing message for errors. - - * src/cff/cffdrivr.c (cff_get_glyph_name, cff_get_name_index): - Update for CFF2. - - * src/cff/cffload.c (FT_FIXED_ONE): New macro. - (cff_index_init, cff_index_load_offsets, cff_index_access_element, - cff_index_get_name, cff_ft_select_get, cff_load_private_dict, - cff_subfont_load, cff_font_load): Handle CFF2. - * src/cff/cffload.h: Updated. - - * src/cff/cffobjs.c (cff_face_init): Handle CFF2. - - * src/cff/cffparse.c (cff_parse_maxstack): New function. - (CFFCODE_TOPDICT, CFFCODE_PRIVATE): Removed - * src/cff/cffparse.h (CFF2_MAX_STACK, CFF2_DEFAULT_STACK): New - macros. - (CFF2_CODE_TOPDICT, CFF2_CODE_FONTDICT, CFF2_CODE_PRIVATE): New - macros. - - * src/cff/cfftoken.h: Add fields for CFF2 dictionaries (but no blend - stuff). - - * src/cff/cfftypes.h (CFF_Index): Add `hdr_size' field. - (CFF_FontRecDict): Add `maxstack' field. - (CFF_Private): Add `subfont' field. - (CFF_Font): Add `top_dict_length' and `cff2' fields. - - * src/sfnt/sfobjs.c (sfnt_load_face): Handle `CFF2' table. - -2016-12-15 Werner Lemberg <wl@gnu.org> - Dave Arnold <darnold@adobe.com> - - [truetype] Provide HVAR advance width variation as a service. - - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - - * src/truetype/ttdriver.c (tt_service_metrics_variations): Updated. - - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Prevent - double adjustment of advance width. - - * src/sfnt/ttmtx.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (tt_face_get_metrics): Apply metrics variations. - -2016-12-15 Dave Arnold <darnold@adobe.com> - Werner Lemberg <wl@gnu.org> - - [truetype] Provide function to apply `HVAR' advance width variation. - - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - - * src/truetype/ttgxvar.c (tt_hadvance_adjust): New function. - * src/truetype/ttgxvar.h: Updated. - -2016-12-15 Dave Arnold <darnold@adobe.com> - Werner Lemberg <wl@gnu.org> - - [truetype] Add `HVAR' table parsing. - - Note that this is not complete yet; it only handles advance width - variation. - - Activation of the code follows in another commit. - - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - - * include/freetype/ftmm.h (FT_Var_Named_Style): Add `psid' member. - - * src/truetype/ttgxvar.h (GX_HVarData, GX_AxisCoords, GX_HVarRegion, - GX_HVStore, GX_WidthMap): New auxiliary structures for... - (GX_HVarTable): ... HVAR main structure. - (GX_BlendRec): Add data for HVAR loading. - - * src/truetype/ttgxvar.c (FT_FIXED_ONE, FT_fdot14ToFixed, - FT_intToFixed, FT_fixedToInt): New macros. - (ft_var_load_hvar): New function. - (TT_Get_MM_Var): Updated. - (tt_done_blend): Deallocate HVAR data. - -2016-12-15 Dave Arnold <darnold@adobe.com> - - [cff] Extend number parsing. - - The forthcoming CFF2 support needs a dynamic parsing limit. - - * src/cff/cffparse.c (cff_parse_num, do_fixed, cff_parse_fixed, - cff_parse_fixed_scaled, cff_parse_fixed_dynamic): Add argument for - parser. - (cff_parse_font_matrix, cff_parse_font_bbox, cff_parse_private_dict, - cff_parse_multiple_master, cff_parse_cid_ros, cff_parser_run): Updated. - - * src/cff/cffparse.h (cff_parse_num): Export locally. - -2016-12-15 Dave Arnold <darnold@adobe.com> - - [cff] Implement dynamic stack size for Adobe engine. - - This also adds `cf2_stack_setReal' and `cf2_stack_pop', needed for - the forthcoming CFF2 support. - - * src/cff/cf2stack.c (cf2_stack_init): Add argument for stack size. - (cf2_stack_free): Deallocate stack. - (cf2_stack_count, cf2_stack_pushInt, cf2_stack_pushFixed, - cf2_stack_popInt, cf2_stack_popFixed, cf2_stack_getReal, - cf2_stack_clear): Updated. - (cf2_stack_setReal, cf2_stack_pop): New functions. - - * src/cff/cf2stack.h (CF2_Stack): Add `stackSize' member. - Update function declarations. - - * src/cff/cf2intrp.c (cf2_interpT2CharString): Updated. - - * src/cff/cffparse.c (cff_parser_init): Add parameter for stack - size; return error code. - (cff_parser_done): New function. - (cff_parser_run): Updated. - - * src/cff/cffparse.h (CFF_Parser): Add `stackSize' member and make - `stack' a pointer. - Update function declarations. - - * src/cff/cffload.c (cff_load_private_dict, cff_subfont_load): - Updated. - -2016-12-15 Dave Arnold <darnold@adobe.com> - Werner Lemberg <wl@gnu.org> - - [cff] Code shuffling. - - * src/cff/cfftypes.h (CFF_Font): Add `library' and `base_offset' - fields. - - * src/cff/cffload.c (cff_subfont_load): Change last argument to - `CFF_Font' - Split off parsing of private dictionary into... - (cff_load_private_dict): ...this new function. - (cff_font_load): Updated. - -2016-12-14 Werner Lemberg <wl@gnu.org> - - [sfnt, truetype] Add framework for Metrics Variations service. - - No effect yet; service functions will be implemented later on. - - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - - * include/freetype/internal/services/svmetric.h: New file. - - * include/freetype/internal/ftserv.h - (FT_SERVICE_METRICS_VARIATIONS_H): New macro. - - * include/freetype/internal/tttypes.h (TT_Face): New field `var'. - - * src/sfnt/sfobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (sfnt_init_face): Initialize `face->var'. - - * src/truetype/ttdriver.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (tt_service_metrics_variations): New service. - (tt_services): Updated. - - * src/truetype/ttpic.h: Updated. - -2016-12-14 Werner Lemberg <wl@gnu.org> - - [cff] Add Multiple Masters service. - - The code simply uses the MM functions from the `truetype' module. - - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - - * include/freetype/internal/tttypes.h (TT_Face): New field `mm'. - - * src/cff/cffdrivr.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. - (cff_set_mm_blend, cff_get_mm_blend, cff_get_mm_var, - cff_set_var_design, cff_get_var_design): New functions. - (cff_service_multi_masters): New service. - (cff_services): Updated. - - * src/cff/cffload.c (cff_get_var_blend, cff_done_blend): New - functions. - * src/cff/cffload.h: Updated. - - * src/cff/cffpic.h (CFF_SERVICE_MULTI_MASTERS_GET): New macro. - - * src/sfnt/sfobjs.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. - (sfnt_init_face): Initialize `face->mm'. - -2016-12-14 Werner Lemberg <wl@gnu.org> - - Extend functionality of `ft_module_get_service'. - - It can now differentiate between local and global searches. - - * src/base/ftobjs.c (ft_module_get_service): Add `global' argument. - (FT_Get_TrueType_Engine_Type): Updated. - - * src/cff/cffdrivr.c (cff_get_ps_name, cff_get_cmap_info): Updated. - - * include/freetype/internal/ftobjs.h: Updated. - * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE): - Updated. - -2016-12-14 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (tt_get_var_blend): Fix compiler warning. - -2016-12-14 Dave Arnold <darnold@adobe.com> - Werner Lemberg <wl@gnu.org> - - [sfnt, cff] Minor preparations. - - * include/freetype/tttags.h (TTAG_CFF2, TTAG_HVAR, TTAG_MVAR, - TTAG_VVAR): New SFNT table tags. - - * src/cff/cf2fixed.h (CF2_FIXED_ONE, CF2_FIXED_EPSILON): Add cast. - -2016-12-10 Werner Lemberg <wl@gnu.org> - - [truetype, type1] Add `get_var_blend' to MM service. - - For internal use; we want to share code between the forthcoming CFF2 - support and TrueType. - - * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func): - New typedef. - (MultiMasters): Add `get_var_blend'. - (FT_Service_MultiMasters): Updated. - - * src/truetype/ttgxvar.c (tt_get_var_blend): New function. - * src/truetype/ttgxvar.h: Updated. - - * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. - * src/type1/t1driver.c (t1_service_multi_masters): Updated. - -2016-12-10 Werner Lemberg <wl@gnu.org> - - [truetype, type1] Add `done_blend' to MM service. - - For internal use; we want to share code between the forthcoming CFF2 - support and TrueType. - - * include/freetype/internal/services/svmm.h (FT_Done_Blend_Func): - New typedef. - (MultiMasters): Add `done_blend'. - (FT_Service_MultiMasters): Updated. - - * src/truetype/ttgxvar.c (tt_done_blend): Use `TT_Face' as argument. - * src/truetype/ttgxvar.h: Updated. - - * src/truetype/ttobjs.c (TT_Face_Done): Updated. - - * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Updated. - * src/type1/t1driver.c (t1_service_multi_masters): Updated. - -2016-12-09 Werner Lemberg <wl@gnu.org> - - [sfnt] Revert change from 2016-12-08. - - I missed the functionality of `ft_module_get_service', which makes - the change unnecessary. - -2016-12-08 Werner Lemberg <wl@gnu.org> - - Add framework to support services with 8 functions. - - We will need this for CFF variation font support. - - * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC8): - New macro. - -2016-12-08 Werner Lemberg <wl@gnu.org> - - [sfnt] Add `get_glyph_name' and `get_name_index' to SFNT interface. - - CFF2 fonts will need access to those two functions. - - * include/freetype/internal/sfnt.h: Include FT_SERVICE_GLYPH_DICT_H. - (SFNT_Interface): Add `get_glyph_name' and `get_name_index' members. - (FT_DEFINE_SFNT_INTERFACE): Updated. - - * src/sfnt/sfdriver.c (sfnt_get_glyph_name, sfnt_get_name_index): - Fix signatures to exactly correspond to the glyph dict service - function typedefs. - (sfnt_interface): Updated. - -2016-12-06 Dave Arnold <darnold@adobe.com> - - Add `FT_Get_Var_Design_Coordinates' function. - - Note that the low-level functions aren't implemented yet. - - * include/freetype/ftmm.h: Declare. - - * include/freetype/internal/services/svmm.h - (FT_Get_Var_Design_Func): New typedef. - (MultiMasters): New MM service function `get_var_design'. - (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. - Update all callers. - - * src/base/ftmm.c (FT_Get_Var_Design_Coordinates): Implement. - - * src/truetype/ttdriver.c: Updated. - - * src/truetype/ttgxvar.c (TT_Get_Var_Design): New dummy function to - handle `get_var_design' service. - * src/truetype/ttgxvar.h: Updated. - - * src/type1/t1driver.c: Updated. - - * src/type1/t1load.c (T1_Get_Var_Design): New dump function to - handle `get_var_design' service. - * src/type1/t1load.h: Updated. - -2016-12-06 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_subrs): Fix memory leak. - - The `subrs' keyword might erroneously occur multiple times. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=231 - -2016-12-01 Werner Lemberg <wl@gnu.org> - - [gzip] Improve building with external zlib (#49673). - - Building FreeType with external zlib 1.2.8 makes msvc 14 stop with - the following error. - - ftgzip.c - zlib-1.2.8\zlib.h(86): error C2061: - syntax error: identifier 'z_const' - zlib-1.2.8\zlib.h(94): error C2054: - expected '(' to follow 'z_const' - zlib-1.2.8\zlib.h(94): error C2085: - 'msg': not in formal parameter list - ... - zlib-1.2.8\zlib.h(877): fatal error C1003: - error count exceeds 100; stopping compilation - - The error happens because FreeType keeps an own copy of zlib-1.1.4 - under `src/gzip'. When building `src/gzip/ftgzip.c' with - FT_CONFIG_OPTION_SYSTEM_ZLIB defined, it uses - - #include <zlib.h> - - which correctly finds an external `zlib.h', but `zlib.h' itself has - a line - - #include "zconf.h" - - which makes Visual Studio 2015 find `src/gzip/zconf.h' while - compiling the files in `src/gzip'. - - * src/gzip/zconf.h: Rename to... - * src/gzip/ftzconf.h: ... this. - * src/gzip/zlib.h, src/gzip/rules.mk (GZIP_DRV_SRCS): Updated. - -2016-12-01 Oleksandr Chekhovskyi <oleksandr.chekhovskyi@gmail.com> - - [autofit] Fix Emscripten crash (patch #9180). - - Function calls through pointers must use a matching signature to - work on Emscripten, since such calls are dispatched through lookup - tables grouped by signature. - - * src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Fix - typedef. - -2016-11-29 Werner Lemberg <wl@gnu.org> - - [smooth] Revert previous commit. Already fixed with 6ca54c64. - -2016-11-29 Werner Lemberg <wl@gnu.org> - - [smooth] Avoid conditional jump on uninitialized value (#49711). - - * src/smooth/ftgrays.c (gray_raster_render): Initialize `worker'. - -2016-11-27 Nikolaus Waxweiler <madigens@gmail.com> - - [autofit] Code shuffling. - - Also improve some comments and remove unused code. - - No functional change. - - * src/autofit/afloader.c (af_loader_load_g): Merged with... - (af_loader_load_glyph): ...this function. - Split off emboldening code into... - (af_loader_embolden_glyph_in_slot): ... this function. - -2016-11-17 Werner Lemberg <wl@gnu.org> - - Better support of LLP64 systems with gcc (and clang). - - * builds/unix/configure.raw: Call `AC_TYPE_LONG_LONG_INT'. - - * builds/unix/ftconfig.in (FT_LONG64): Enable for LLP64 systems (and - suppress warnings) even without `FT_CONFIG_OPTION_FORCE_INT64'. - -2016-11-10 Werner Lemberg <wl@gnu.org> - - Fix `lcd_weights' array size. - - * include/freetype/internal/ftobjs.h (FT_LibraryRec): Do it. - - Reported by Nikolaus. - -2016-11-06 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (FT_Render_Glyph_Internal): Fix tracing. - -2016-11-06 Werner Lemberg <wl@gnu.org> - - [sfnt] Improve FT_LOAD_BITMAP_METRICS_ONLY for `sbix' format. - - It's unavoidable to call the PNG engine, but to get the metrics it - is sufficient to read the PNG image's header only. - - * src/sfnt/pngshim.c (Load_SBit_Png): Add argument to control the - allocation of the glyph slot. - * src/sfnt/pngshim.h: Updated. - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_png, - tt_face_load_sbix_image, tt_face_load_sbit_image): Updated. - -2016-11-06 Werner Lemberg <wl@gnu.org> - - [sfnt] Speed up `sbix' lookup. - - This also fixes a bug introduced in 2016-10-01 which prevents - display of embedded bitmap fonts that use the `sbix' format. - - * src/sfnt/ttsbit.c (tt_face_load_sbit): Store `sbix' size and - offset also in `ebdt_size' and `ebdt_start', respectively. This - makes the test for an embedded bitmap data table succeed for this - format. - - (tt_face_load_strike_metrics) <TT_SBIT_TABLE_TYPE_SBIX>: Use - `ebdt_size' and `ebdt_start' - (tt_face_load_sbix_image): Ditto. - -2016-11-06 Seigo Nonaka <nona@google.com> - Werner Lemberg <wl@gnu.org> - - Introduce a way of quickly retrieving (embedded) bitmap metrics. - - `FT_Load_Glyph' doesn't generate a bitmap for a non-bitmap glyph - until the user calls `FT_Render_Glyph'. However, it always - allocates memory for bitmaps and copies or decodes the contents of a - bitmap glyph, which can be quite slow for PNG data. - - * include/freetype/freetype.h (FT_LOAD_BITMAP_METRICS_ONLY): New - macro. - - * src/base/ftobjs.c (FT_Load_Glyph): Unset FT_LOAD_RENDER if - FT_LOAD_BITMAP_METRICS_ONLY is used. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_alloc_bitmap, - tt_sbit_decoder_load_bitmap): Add argument to control allocation of - the glyph slot. - (tt_sbit_decoder_load_image, tt_sbit_decoder_load_compound, - tt_face_load_sbit_image): Updated. - - * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Quickly exit if - `FT_LOAD_BITMAP_METRICS_ONLY' is set. - - * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h (pfr_slot_load_bitmap): Add - argument to control allocation of the glyph slot. - * src/pfr/pfrobjs (pfr_slot_load): Updated. - - * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto. - - * docs/CHANGES: Updated. - -2016-11-06 Werner Lemberg <wl@gnu.org> - - Synchronize with gnulib (#49448). - - * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in, - builds/vms/ftconfig.h (FT_TYPEOF): Update code to use definition in - current version of `intprops.h'. - Other minor synchronization to reduce code differences between the - three files. - -2016-11-03 Behdad Esfahbod <behdad@behdad.org> - - [truetype] Clamp variation requests to valid range. - - This is required by OpenType 1.8; it also avoids rounding surprises. - - * src/truetype/ttgxvar.c (TT_Set_Var_Design): Clamp design coordinates - outside of the allowed range to always stay within the range instead - of producing an error. - -2016-10-29 Werner Lemberg <wl@gnu.org> - - [truetype] Remove clang warnings. - - * src/truetype/ttinterp.h (TT_ExecContextRec): Using `FT_ULong' for - loop counter handling. - - * src/truetype/ttinterp.c: Updated. - (Ins_SCANTYPE): Use signed constant. - (TT_RunIns): Ensure `num_twilight_points' is 16bit. - -2016-10-27 Werner Lemberg <wl@gnu.org> - - [truetype] Fix commit from 2014-11-24. - - Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. - - * src/truetype/ttpload.c (tt_face_load_hdmx): Fix file checking - logic. - -2016-10-26 Werner Lemberg <wl@gnu.org> - - Add `FT_Get_{MM,Var}_Blend_Coordinates' functions. - - * include/freetype/ftmm.h: Declare. - - * include/freetype/internal/services/svmm.h (FT_Get_MM_Blend_Func): - New typedef. - (MultiMasters): New MM service function `get_mm_blend'. - (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. - Update all callers. - - * src/base/ftmm.c (FT_Get_MM_Blend_Coordinates, - FT_Get_Var_Blend_Coordinates): Implement. - - * src/truetype/ttdriver.c: Updated. - - * src/truetype/ttgxvar.c (TT_Get_MM_Blend): New function to handle - `get_mm_blend' service. - * src/truetype/ttgxvar.h: Updated. - - * src/type1/t1driver.c: Updated. - - * src/type1/t1load.c (T1_Get_MM_Blend): New function to handle - `get_mm_blend' service. - * src/type1/t1load.h: Updated. - - * docs/CHANGES: Document. - -2016-10-26 Werner Lemberg <wl@gnu.org> - - * src/type1/t1load.c (parse_subrs): Fix limit check. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=81 - -2016-10-25 Alexei Podtelezhnikov <apodtele@gmail.com> - - [cff] Correct cmap format reporting (#24819). - - * src/cff/cffdrivr.c (cff_get_cmap_info): Throw an error on synthetic - charmap instead of guessing its format and language. - -2016-10-22 Werner Lemberg <wl@gnu.org> - - [truetype] Fix SCANTYPE instruction (#49394). - - * src/truetype/ttinterp.c (Ins_SCANTYPE): Only use lower 16bits. - -2016-10-22 Werner Lemberg <wl@gnu.org> - - [sfnt] Improve handling of invalid post 2.5 tables [#49393]. - - * src/sfnt/ttpost.c (load_format_25): We need at least a single - table entry. - -2016-10-14 Werner Lemberg <wl@gnu.org> - - [truetype] Fix handling of `cvar' table data. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53 - - * src/truetype/ttgxvar.c (tt_face_vary_cvt): Ignore invalid CVT - indices. - -2016-10-11 Werner Lemberg <wl@gnu.org> - - [psaux] Fix handling of invalid flex subrs. - - Problem reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52 - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - <op_callothersubr>: Set `flex_state' after error checking. - -2016-10-11 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (tt_done_blend): Fix deallocation. - -2016-10-08 Werner Lemberg <wl@gnu.org> - - * src/cid/cidload.c (cid_face_open): Properly propagate `error'. - -2016-10-08 Werner Lemberg <wl@gnu.org> - - [cid] Fix parsing of subr offsets. - - Bug introduced 2016-05-16. - - * src/cid/cidparse.c (cid_parser_new): Fix off-by-one error. - -2016-10-01 Werner Lemberg <wl@gnu.org> - - [sfnt] Disable bitmap strikes if we don't have a bitmap data table. - - * src/sfnt/ttsbit.c (tt_face_load_sbit): Check whether we have - a bitmap data table. - -2016-10-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Remove impossibility. - - * src/smooth/ftgrays.c (TWorker): Rearrange fields. - (gray_convert_glyph): Remove impossible condition and clean up. - -2016-09-29 Werner Lemberg <wl@gnu.org> - - [pcf] Enrich family name with foundry name and glyph width info. - - This is a very old patch from openSuSE (from 2006, submitted to - FreeType in 2011) that I forgot to apply. - - https://build.opensuse.org/package/view_file/openSUSE:Factory/freetype2/freetype2-bitmap-foundry.patch - - Prepend the foundry name plus a space to the family name. There are - many fonts just called `Fixed' which look completely different, and - which have nothing to do with each other. When selecting `Fixed' in - KDE or Gnome one gets results that appear rather random, the style - changes often if one changes the size and one cannot select some - fonts at all. - - We also check whether we have `wide' characters; all put together, - we get family names like `Sony Fixed' or `Misc Fixed Wide'. - - * src/pcf/pcfread.c (pcf_load_font): Implement it. - - * docs/CHANGES: Document it. - -2016-09-29 Werner Lemberg <wl@gnu.org> - - [ftfuzzer] Speed up. - - * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Don't - check for embedded bitmaps if we have a non-default instance. - -2016-09-29 Werner Lemberg <wl@gnu.org> - - [truetype] Disallow bitmap strikes for non-default instances. - - Also speed up access of default instances if GX variations are - active. - - * include/freetype/internal/tttypes.h (TT_FaceRec): Add - `is_default_instance' member. - - * src/sfnt/sfobjs.c (sfnt_init_face): Initialize - `is_default_instance'. - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Add test for default instance. - (TT_Load_Glyph): Load embedded bitmaps for default instance only. - - * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Compute - `is_default_instance'. - -2016-09-29 Werner Lemberg <wl@gnu.org> - - [truetype] Clean up `TT_Face' structure. - - * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused - fields `horz_metrics' and `vert_metrics'. - Update documentation. - - * src/sfnt/sfobjs.c (sfnt_done_face): Updated. - -2016-09-28 Werner Lemberg <wl@gnu.org> - - More FT_ZERO usage. - - * src/gxvalid/gxvcommn.c (gxv_ClassTable_validate): - s/ft_memset/FT_MEM_ZERO/. - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): - s/ft_memset/FT_ARRAY_ZERO/. - - * src/raster/ftraster.c (FT_ZERO): Define. - (ft_black_new): Use it. - * src/raster/ftrend1.c (ft_raster1_get_cbox): - s/FT_MEM_ZERO/FT_ZERO/. - - * src/smooth/ftgrays.c (FT_ZERO): Define. - (gray_raster_new): Use it. - * src/smooth/ftsmooth.c (ft_smooth_get_cbox): - s/FT_MEM_ZERO/FT_ZERO/. - -2016-09-28 Werner Lemberg <wl@gnu.org> - - */*: s/FT_MEM_ZERO/FT_ZERO/ where appropriate. - -2016-09-27 Werner Lemberg <wl@gnu.org> - - [truetype] Trace number of executed opcodes. - - * src/truetype/ttinterp.c (TT_RunIns): Implement it. - -2016-09-27 Werner Lemberg <wl@gnu.org> - - [truetype] Speed up `TT_Load_Glyph'. - - This avoids additional calls to `tt_face_lookup_table' for the - `glyf' table, which can be expensive. - - * include/freetype/internal/tttypes.h (TT_LoaderRec): Move - `glyf_offset' field to ... - (TT_FaceRec): ... this structure. - * src/truetype/ttgload.c (load_truetype_glyph): Updated. - (tt_loader_init): Move initialization of `glyf_offset' to ... - * src/truetype/ttpload.c (tt_face_load_loca): ... this function. - -2016-09-27 Werner Lemberg <wl@gnu.org> - - [truetype] Introduce dynamic limits for some bytecode opcodes. - - This speeds up FreeType's handling of malformed fonts. - - * src/truetype/ttinterp.c (TT_RunIns): Set up limits for the number - of twilight points, the total number of negative jumps, and the - total number of loops in LOOPCALL opcodes. The values are based on - the number of points and entries in the CVT table. - (Ins_JMPR): Test negative jump counter. - (Ins_LOOPCALL): Test loopcall counter. - - * src/truetype/ttinterp.h (TT_ExecContext): Updated. - - * docs/CHANGES: Updated. - -2016-09-25 Werner Lemberg <wl@gnu.org> - - [truetype] Sanitize only last entry of `loca' table. - - Without this patch, a loca sequence like `0 100000 0 100000 ...', - where value 100000 is larger than the `glyf' table size, makes - FreeType handle the whole `glyf' table as a single glyph again and - again, which is certainly invalid (and can be very slow, too). - - * src/truetype/ttpload.c (tt_face_get_location): Implement. - Improve tracing messages. - -2016-09-25 Werner Lemberg <wl@gnu.org> - - * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Fix typo. - -2016-09-24 Werner Lemberg <wl@gnu.org> - - [autofit] Tracing fixes. - - * src/autofit/afmodule.c (af_autofitter_load_glyph): Call dumping - functions only if we actually do tracing. - -2016-09-22 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Reduce divisions in the line renderer. - - We don't need some divisions if a line segments stays within a single - row or a single column of pixels. - - * src/smooth/ftgrays.c (gray_render_line) [FT_LONG64]: Make divisions - conditional. - -2016-09-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftgrays.c (gray_sweep): Remove check for empty table. - -2016-09-14 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Another tiny speed-up. - - * src/smooth/ftgrays.c (gray_find_cell): Merge into... - (gray_record_cell): ... this function. - -2016-09-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftgrays.c (gray_{find,set}_cell): Remove dubious code. - -2016-09-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Fix valgrind warning and reoptimize. - - The algorithm calls `gray_set_cell' at the start of each new contour - or when the contours cross the cell boundaries. Double-checking for - that is wasteful. - - * src/smooth/ftgrays.c (gray_set_cell): Remove check for a new cell. - (gray_convert_glyph): Remove initialization introduced by 44b172e88. - -2016-09-10 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix previous commit. - - Problems reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40 - - We now map the strike index right before accessing the physical - data, not earlier. - - * src/sfnt/sfobjs.c (sfnt_load_face): Set `face->sbit_strike_map' - after creating the map so that... - - * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): ... this function - can be used before and after setting up `sbit_strike_map'. - (tt_face_set_sbit_strike): Revert change. - (tt_sbit_decoder_init, tt_face_load_sbix_image): Map strike index. - - * src/truetype/ttdriver.c (tt_size_select): Revert change. - -2016-09-09 Werner Lemberg <wl@gnu.org> - - [ftfuzzer] Minor improvements. - - * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Ignore - invalid strikes. - Use better values for call to `FT_Set_Char_Size'. - -2016-09-09 Werner Lemberg <wl@gnu.org> - - [sfnt] Don't provide (completely) broken strike data. - - FreeType tries to sanitize strike header data; we now reject - completely broken ones. - - * include/freetype/internal/tttypes.h (TT_FaceRec): New - `sbit_strike_map' array pointer. - - * src/base/ftobjs.c (FT_Match_Size): Reject matches where either - width or height would be zero. - Add tracing message in case of error. - - * src/sfnt/sfobjs.c (sfnt_load_face): Populate `sbit_strike_map', - only using (more or less) valid strike header data for - FT_Face's `available_sizes' array. - (sfnt_done_face): Updated. - - * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use - `sbit_strike_map'. - (tt_face_load_strike_metrics): Improve tracing. - - * src/truetype/ttdriver.c (tt_size_select): Use `sbit_strike_map'. - -2016-09-08 Werner Lemberg <wl@gnu.org> - - * Version 2.7 released. - ======================= - - - Tag sources with `VER-2-7'. - - * docs/VERSION.TXT: Add entry for version 2.7. - - * 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.5/2.7/, s/265/27/. - - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 7. - (FREETYPE_PATCH): Set to 0. - - * builds/unix/configure.raw (version_info): Set to 18:6:12. - * CMakeLists.txt (VERSION_MINOR): Set to 7. - (VERSION_PATCH): Set to 0. - - * docs/CHANGES: Updated. - -2016-09-08 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c: Include `ttgxvar.h'. - - This fixes the `multi' build. - -2016-09-08 Werner Lemberg <wl@gnu.org> - - [autofit] Another improvement to Armenian support. - - Suggested by Hrant H Papazian <hpapazian@gmail.com>. - - * src/autofit/afscript.h: Use better suited characters to derive - default stem widths. - -2016-09-07 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftgrays.c (gray_hline): Micro-optimize. - -2016-09-06 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Operate in absolute bitmap coordinates. - - Simpler bitmap addressing improves performance by 1.5%. - - * src/smooth/ftgrays.c (gray_TWorker): Remove count fields. - (gray_dump_cells, gray_find_cell, gray_set_cell, gray_hline, - gray_sweep, gray_convert_glyph, gray_raster_render): Updated. - -2016-09-06 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Improve contour start (take 2). - - * src/smooth/ftgrays.c (gray_move_to): Call `gray_set_cell' directly - instead of... - (gray_start_cell): ... this function, which is removed. - (gray_convert_glyph): Make initial y-coordinate invalid. - -2016-09-06 Werner Lemberg <wl@gnu.org> - - [type1] MM fonts support exactly zero named instances (#48748). - - * src/type1/t1load.c (T1_Get_MM_Var): Set `num_namedstyles' to zero. - -2016-09-06 Jonathan Kew <jfkthame@gmail.com> - - [cff] Fix uninitialized memory. - - Problem reported as - - https://bugzilla.mozilla.org/show_bug.cgi?id=1270288 - - * src/cff/cf2intrp.c (cf2_interpT2CharString): Initialize `storage' - array to handle a `get' opcode without a previous `put'. - -2016-09-05 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftgrays.c (gray_move_to, gray_start_cell): Revert. - -2016-09-05 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Improve contour start. - - * src/smooth/ftgrays.c (gray_move_to): Call `gray_set_cell' directly - instead of... - (gray_start_cell): ... this function, which is removed. - -2016-09-05 Werner Lemberg <wl@gnu.org> - - [cff] Fix memory initialization. - - * src/cff/cf2stack.c (cf2_stack_init): Use `FT_NEW'. The `Q' - variants of FreeType's memory allocation macros don't do zeroing. - -2016-09-05 Werner Lemberg <wl@gnu.org> - - [ftrandom] Minor improvements. - - * src/tools/ftrandom/ftrandom.c (_XOPEN_SOURCE): New macro, set to - 500. - - * src/tools/ftrandom/Makefile (CFLAGS): Split off include - directories to ... - (INCLUDES): ... this new variable. - (LDFLAGS): New variable. - (ftrandom.o, ftrandom): Updated. - -2016-09-05 Werner Lemberg <wl@gnu.org> - - [autofit] Improve Armenian support. - - Thanks to Hrant H Papazian <hpapazian@gmail.com> for help. - - * src/autofit/afblue.dat (AF_BLUE_STRING_ARMENIAN_*): Improve - selection of characters. - - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - -2016-09-04 Werner Lemberg <wl@gnu.org> - - [ftrandom] Improve Makefile. - - It now supports both a normal build (`./configure && make') and a - development build (`make devel'). - - * src/tools/ftrandom/Makefile (VPATH): Set it so that - `libfreetype.a' gets searched in both `objs' (for the development - build) and `objs/.libs' (for a normal build which uses libtool). - (LIBS): Add missing libraries. - (ftrandom.o): New rule. - (ftrandom): Use automatic variables. - -2016-09-03 Werner Lemberg <wl@gnu.org> - - [truetype] More fixes for handling of GX deltas. - - Problems reported by Bob Taylor <Bob.Taylor@monotype.com>. - - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix rough - sanity test for glyph variation array header size. - Always set stream position before reading packed x and y deltas. - Fix thinko w.r.t. `localpoints' array. - -2016-09-03 Werner Lemberg <wl@gnu.org> - - [ftrandom] Various fixes. - - * src/tools/ftrandom/ftrandom.c (GOOD_FONTS_DIR): Provide better - default. - (error_fraction): Make it of type `double' to work as advertized – - this was completely broken. - Update all related code. - (error_count, fcnt): Make it unsigned to fix compiler warnings. - Update all related code. - (fontlist): Change `len' member to `long' to fix compiler warnings. - (FT_MoveTo, FT_LineTo, FT_ConicTo, FT_CubicTo, abort_test): Tag - unused variables. - (TestFace, FindFonts, copyfont, do_test): Fix compiler warnings. - (ExecuteTest): Ditto. - Call `FT_Done_FreeType'. - (getErrorCnt): Replace `ceil' with an ordinary cast to `unsigned - int'. - (usage): Improve output. - (main): Fix compiler warnings. - - * src/tools/ftrandom/README: Updated. - -2016-09-03 Werner Lemberg <wl@gnu.org> - - [base] Avoid negative bitmap strike dimensions (#48985). - - * src/base/ftobjs.c (FT_Open_Face): Check whether negation was - actually successful. For example, this can fail for value - -32768 if the type is `signed short'. If there are problems, - disable the strike. - -2016-09-03 Werner Lemberg <wl@gnu.org> - - [cff] Avoid null pointer passed to FT_MEM_COPY (#48984). - - * src/cff/cffload.c (cff_index_get_name): Check `byte_len'. - -2016-09-02 Werner Lemberg <wl@gnu.org> - - [unix] Enable 64bit support in file system access (#48962). - - * builds/unix/configure.raw: Call `AC_SYS_LARGEFILE'. - -2016-09-02 Werner Lemberg <wl@gnu.org> - - [sfnt] Avoid left shift of negative value (#48980). - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bit_aligned): Use unsigned - constant. - -2016-09-02 Werner Lemberg <wl@gnu.org> - - * src/smooth/ftgrays.c (gray_hline): Fix clang compiler warnings. - -2016-09-02 Werner Lemberg <wl@gnu.org> - - Some preparations for the next release. - - * include/freetype/config/ftoption.h - (TT_CONFIG_OPTION_SUBPIXEL_HINTING): Enable. - - * docs/CHANGES: Updated. - -2016-09-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Simplify span rendering more. - - It turns out that there is significant cost associated with `FT_Span' - creation and calls to `gray_render_span' because it happens so - frequently. This removes these steps from our internal use but leaves - it alone for `FT_RASTER_FLAG_DIRECT" to preserve API. The speed gain - is about 5%. - - * src/smooth/ftgrays.c (gray_render_span): Removed. The code is - migrated to... - (gray_hline): ... here. - -2016-08-30 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Streamline pixmap drawing a bit more. - - Zero coverage is unlikely (1 out of 256) to warrant checking. This - gives 0.5% speed improvement in rendering simple glyphs. - - * src/smooth/ftgrays.c (gray_hline, gray_render_span): Remove checks. - -2016-08-29 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Streamline pixmap drawing. - - This gives 2% speed improvement in rendering simple glyphs. - - * src/smooth/ftgrays.c (TPixmap): Reduced pixmap descriptor with a - pointer to its bottom-left and pitch to be used in... - (gray_TWorker): ... here. - (gray_render_span): Move pixmap flow check from here... - (gray_raster_render): .. to here. - -2016-08-27 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Reduce stack of band boundaries. - - * src/smooth/ftgrays.c (gray_TBand): Removed. - (gray_convert_glyph): Updated to stack band boundaries concisely. - -2016-08-26 Werner Lemberg <wl@gnu.org> - - * src/cid/cidload.c (cid_face_open): Improve handling of `SDBytes'. - -2016-08-26 Werner Lemberg <wl@gnu.org> - - [cid] Fix commit from 2016-05-16. - - * src/cid/cidparse.c (cid_parser_new): Fix off-by-one errors. - -2016-08-26 Werner Lemberg <wl@gnu.org> - - [sfnt] Cache offset and size to bitmap data table. - - This commit avoids `EBDT' and friends being looked up again and - again while loading a single embedded bitmap. - - * include/freetype/internal/tttypes.h (TT_FaceRec) - [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New fields `ebdt_start' and - `ebdt_size'. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Move table lookup to ... - (tt_face_load_sbit): ... this function; also store the table size - and offset. - -2016-08-26 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftgrays.c (gray_raster_render): Minor tweaks. - -2016-08-26 Werner Lemberg <wl@gnu.org> - - [type1] Fix heap buffer overflow. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36 - - * src/type1/t1load.c (parse_charstrings): Reject fonts that don't - contain glyph names. - -2016-08-25 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix previous commit (#48901). - - * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Thinkos. - -2016-08-25 Werner Lemberg <wl@gnu.org> - - [sfnt] Speed up handling of invalid format 4 cmaps. - - * src/sfnt/ttcmap.c (tt_cmap4_next, tt_cmap4_char_map_binary): Add - tests for `num_glyph' from `tt_cmap4_char_map_linear'. - -2016-08-25 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftdriver.h: Remove unused typedefs. - -2016-08-22 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Simplify span rendering. - - This removes unnecessary complexity of span merging and buffering. - Instead, the spans are rendered as they come, speeding up the - rendering by about 5% as a result. - - * src/smooth/ftgrays.c [FT_MAX_GRAY_SPANS]: Macro removed. - (gray_TWorker): Remove span buffer and related fields. - (gray_sweep, gray_hline): Updated. - - * include/freetype/ftimage.h: Remove documentation note about - `FT_MAX_GRAY_SPANS', which was never in `ftoption.h' and is now gone. - -2016-08-16 Werner Lemberg <wl@gnu.org> - - [truetype] Fix `MPS' instruction. - - According to Greg Hitchcock, MPS in DWrite really returns the point - size. - - * src/truetype/ttobjs.h (TT_SizeRec): Add `point_size' member. - - * src/truetype/ttdriver.c (tt_size_request): Set `point_size'. - - * src/truetype/ttinterp.h (TT_ExecContextRec): Add `pointSize' - member. - - * src/truetype/ttinterp.c (TT_Load_Context): Updated. - (Ins_MPS): Fix instruction. - -2016-08-16 Werner Lemberg <wl@gnu.org> - - [lzw] Optimize last commit. - - * src/lzw/ftzopen.c (ft_lzwstate_get_code): Move check into - conditional clause. - -2016-08-16 Werner Lemberg <wl@gnu.org> - - [lzw] Avoid invalid left shift. - - Reported as - - https://bugzilla.mozilla.org/show_bug.cgi?id=1295366 - - * src/lzw/ftzopen.c (ft_lzwstate_get_code): Limit `num_bits'. - -2016-08-16 Werner Lemberg <wl@gnu.org> - - [lzw] Avoid buffer overrun. - - Reported as - - https://bugzilla.mozilla.org/show_bug.cgi?id=1273283 - - * src/lzw/ftzopen.c (ft_lzwstate_refill): Ensure `buf_size' doesn't - underflow. - -2016-08-16 Werner Lemberg <wl@gnu.org> - - [truetype] Fix compiler warning. - - * src/truetype/ttgload.c (load_truetype_glyph): Add cast. - -2016-08-13 Werner Lemberg <wl@gnu.org> - - [winfonts] Avoid zero bitmap width and height. - - Reported as - - https://bugzilla.mozilla.org/show_bug.cgi?id=1272173 - - * src/winfonts/winfnt.c (FNT_Face_Init): Check zero pixel height. - (FNT_Load_Glyph): Check for zero pitch. - -2016-08-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/truetype/ttinterp.c (Pop_Push_Count): Revert changes. - -2016-08-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/truetype/ttinterp.c (TT_RunIns): Minor and formatting. - -2016-08-11 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/truetype/ttinterp.c (Pop_Push_Count): Fix some entries. - -2016-08-10 Peter Klotz <Peter.Klotz@ith-icoserve.com> - - * src/smooth/ftgrays.c (gray_hline): Fix uninitialized access. - -2016-08-10 Werner Lemberg <wl@gnu.org> - - [sfnt] Use correct type for `italicAngle' field (#48732). - - * src/sfnt/ttload.c (tt_face_load_post): Fix types. - -2016-08-06 Jon Spencer <jon@jonspencer.ca> - - [sfnt] Fix `FT_Get_Advance' for bitmap strikes. - - `FT_Get_Advance' returns 0 for bitmap fonts. It first gets the - advance value from the font table and then scales it by the - `font->size->metrics->x_scale' field. But `FT_Select_Size' doesn't - set that value for bitmap fonts and the advance gets scaled to zero. - - Taken from - - https://github.com/behdad/harfbuzz/issues/252 - - * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) - <TT_SBIT_TABLE_TYPE_EBLC>: Set scale values. - -2016-08-06 Behdad Esfahbod <behdad@behdad.org> - - [truetype] Fix GX variation handling of composites. - - * src/truetype/ttgload.c (load_truetype_glyph) - [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check `ARGS_ARE_XY_VALUES' flag. - -2016-08-05 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Minor refactoring. - - * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line): - Updated. - -2016-07-29 Werner Lemberg <wl@gnu.org> - - [sfnt, truetype] Don't abort on invalid `maxComponentDepth'. - - Since 2016-05-16 we detect infinite recursion directly. - - * src/sfnt/ttload.c (tt_face_load_maxp): Don't adjust - `maxComponentDepth'. - * src/truetype/ttgload.c (load_truetype_glyph): Don't abort if - `maxComponentDepth' is not valid. Instead, simply adjust its value - and emit a tracing message. - -2016-07-26 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Minor. - - No functional change. - -2016-07-22 Hin-Tak Leung <htl10@users.sourceforge.net> - - [truetype] Record the end of IDEFs. - - To match the logic in FDEF. The value of the end is only used for - bound-checking in `Ins_JMPR', so it may not have been obvious that - it was not recorded. Tested (as part of Font Validator 2.0) all the - fonts on Fedora and did not see any change. - - * src/truetype/ttinterp.c (Ins_IDEF): Updated. - -2016-07-19 Werner Lemberg <wl@gnu.org> - - [truetype] Sanitizer fix, second try. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix boundary - tests and use only one slot more. - -2016-07-19 Werner Lemberg <wl@gnu.org> - - [truetype] Sanitizer fix. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Increase array - to fix nested loops. - -2016-07-18 Werner Lemberg <wl@gnu.org> - - [truetype] Make GETDATA work only for GX fonts. - - * src/truetype/ttinterp.c (opcode_name): Updated. - (Ins_GETDATA): Only define for `TT_CONFIG_OPTION_GX_VAR_SUPPORT'. - (TT_RunIns): Updated. - -2016-07-17 Werner Lemberg <wl@gnu.org> - - [truetype] Add support for Apple's - - GETDATA[], opcode 0x92 - - bytecode instruction. It always returns 17, and we have absolutely - no idea what it is good for... - - * src/truetype/ttinterp.c (Pop_Push_Count, opcode_name): Updated. - (Ins_GETDATA): New function. - (TT_RunIns): Add it. - -2016-07-16 Werner Lemberg <wl@gnu.org> - - [truetype] Add bytecode support for GX variation fonts. - - This commit implements undocumented (but confirmed) stuff from - Apple's old bytecode engine. - - GETVARIATION[], opcode 0x91 - This opcode pushes normalized variation coordinates for all axes - onto the stack (in 2.14 format). Coordinate of first axis gets - pushed first. - - GETINFO[], selector bit 3 - If GX variation support is enabled, bit 10 of the result is set - to 1. - - * src/truetype/ttinterp.c: Include FT_MULTIPLE_MASTERS_H. - (opcode_name) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated. - (Ins_GETINFO) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Handle selector - bit 3, checking support for variation glyph hinting. - (Ins_GETVARIATION) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New function - to implement opcode 0x91. - (TT_RunIns) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Handle opcode 0x91. - -2016-07-16 Werner Lemberg <wl@gnu.org> - - [truetype] Fix GETINFO bytecode instruction. - - * src/truetype/ttinterp.c (Ins_GETINFO): Fix return value for - stretching information. - -2016-07-16 Behdad Esfahbod <behdad@behdad.org> - - [truetype] Make all glyphs in `Zycon' GX font work. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix boundary - tests. - -2016-07-16 Werner Lemberg <wl@gnu.org> - - [truetype] Fix GX delta tracing. - - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Trace - relative point movements. - -2016-07-16 Behdad Esfahbod <behdad@behdad.org> - - [truetype] More fixes for GX. - - This finally fixes the rendering of the cyclist and the lizard in - the `Zycon' font. - - * src/truetype/ttgxvar.c (ft_var_readpackedpoints): `first' point - index is always cumulative. - - (tt_handle_deltas): Rename to... - (tt_interpolate_deltas): ... This. - Add new parameter for output point array. - Update caller. - - (TT_Vary_Apply_Glyph_Deltas): Add `points_out' array; it now holds - the intermediate results of `tt_interpolate_deltas' that are to be - added to `outline->points'. - -2016-07-15 Werner Lemberg <wl@gnu.org> - - * src/autofit/aflatin.c (af_latin_hints_compute_segments): Thinko. - - `max_pos' is always larger than `min_pos' so `FT_ABS' is not needed. - - Reported by Alexei. - -2016-07-16 Nikolaus Waxweiler <madigens@gmail.com> - - * src/truetype/ttinterp.c (Ins_MIRP): Fix copy-and-paste error. - - Problem reported by Hin-Tak Leung. - -2016-07-15 Werner Lemberg <wl@gnu.org> - - [autofit] Update and improve segment and edge tracing. - - * src/autofit/afhints.c (af_glyph_hints_dump_segments): Trace - `delta' also. - Don't show first point of segment as a replacement for `pos'; this - is (a) misleading, since the difference to `pos' can be almost - arbitrarily large in corner cases, and (b) it is better to have all - segment data in font units instead of a single value given in output - space coordinates. - Improve layout. - (af_glyph_hints_dump_edges): Show px->units and units->px conversion - values for convenience. - Improve layout. - -2016-07-15 Werner Lemberg <wl@gnu.org> - - [autofit] For edges, reject segments wider than 1px (#41334). - - * src/autofit/afhints.h (AF_SegmentRec): New member `delta'. - - * src/autofit/aflatin.c (af_latin_hints_compute_segments): Compute - `delta'. - (af_latin_hints_compute_edges): Reject segments with a delta larger - than 0.5px. - -2016-07-14 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FT_IS_NAMED_INSTANCE): New macro. - -2016-07-14 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix `face_index' value in `FT_Face' for named instances. - - * src/sfnt/sfobjs.c (sfnt_init_face): Don't strip off higher 16bits. - -2016-07-14 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix tracing. - -2016-07-14 Behdad Esfahbod <behdad@behdad.org> - - [truetype] Fix gxvar delta interpolation. - - The coordinates of the base font should be used for interpolation - purposes, NOT the current points (i.e., the result of accumulation - of previous deltas). - - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Initialize - `points_org' before looping over all tuples. - - ----------------------------------------------------------------------------- - -Copyright (C) 2016-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.28 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.28 deleted file mode 100644 index d7cc2e01220..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.28 +++ /dev/null @@ -1,3136 +0,0 @@ -2017-09-16 Werner Lemberg <wl@gnu.org> - - * Version 2.8.1 released. - ========================= - - - Tag sources with `VER-2-8-1'. - - * docs/VERSION.TXT: Add entry for version 2.8.1. - * docs/CHANGES: Updated. - - * 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.8/2.8.1/, s/28/281/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. - - * builds/unix/configure.raw (version_info): Set to 21:0:15. - * CMakeLists.txt (VERSION_PATCH): Set to 1. - -2017-09-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [sfnt] lowest gcc for vectors (e1d0249e) is changed to 4.7. - - __builtin_shuffle() was introduced in gcc-4.7. The lowest - gcc to enable vector operation is delayed from 4.6 to 4.7. - - * src/sfnt/pngshim.c (premultiply_data): Fix cpp-macro to - enable the vector operation, to change the lowest gcc version - from 4.6 to 4.7. - -2017-09-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [cache] Fix a possible overflow by signed integer comparison. - - Improve the code by 5d3ff05615dda6d1325ed612381a17a0df04c975 , - issues are found by Behdad Esfahbod and Werner Lemberg. - - * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Replace - a subtraction to check higher bit by a bit operation, - and cpp-conditionalize for appropriate systems. Add better - documentation to the comment. - (FTC_ImageCache_LookupScaler): Ditto. - (FTC_SBitCache_Lookup): Ditto. - (FTC_SBitCache_LookupScaler): Ditto. - -2017-09-13 Werner Lemberg <wl@gnu.org> - - [autofit] Really fix #41334 (#52000). - - * src/autofit/aflatin.c (af_latin_hints_compute_segments): Set - `segment->delta' everywhere. - -2017-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [autofit, sfnt] Fix for `make multi'. - - * src/autofit/afshaper.c: Include FT_ADVANCE_H, to use - FT_Get_Advance() in it. - * src/sfnt/ttcmap.c: Include FT_SERVICE_POSTSCRIPT_CMAPS_H - to use PS_Unicodes in it, also include `ttpost.h' to use - tt_face_get_ps_name() in it. - -2017-09-11 Azzuro <azzuro@team-mediaportal.com> - - [build] Improve builds with different MS Visual Studio versions. - - * builds/windows/vc2010/freetype.vcxproj: Switch platform toolset - according to the Visual Studio version. - -2017-09-11 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttkern.c (tt_face_load_kern): Reject format 2 tables. - - Reported by Behdad. - -2017-09-09 Werner Lemberg <wl@gnu.org> - - [autofit] Improve communication with ftgrid. - - * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): - Provide values in font units. - -2017-09-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [base] Remove a check for resource ID in the resource fork driver. - - LastResort.dfont has a marginal resource ID 0xFFFF for sfnt - resource. Inside Macintosh: More Macintosh Toolbox, `Resource IDs' - (1-46), tells that some IDs are reserved and should not be used. - FreeType2 just uses resource ID to sort the fragmented resource. - To accept the marginal fonts, the checking is removed. - - * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Remove res_id - validity check, fix a trace message format. - -2017-09-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [sfnt, truetype] Register the tags for marginal fonts. - - The first 32bit of standard TrueType variants is 0x00010000, - `OTTO', `ttcf', `true' or `typ1'. 2 marginal dfonts on legacy Mac - OS X, Keyboard.dfont and LastResort.dfont, have the sfnt resources - starting 0xA5 followed by `kbd' or `lst'. Considering the following - data could be parsed as conventional TrueType fonts, the header - checking is updated to allow these tags. It seems that recent Mac - OS X has already switched to normal TTF for these fonts. - - See the discussion at - http://u88.n24.queensu.ca/exiftool/forum/index.php?topic=3931.0 - - * include/freetype/tttags.h (TTAG_0xA5kbd, TTAG_0xA5lst): New header - tags for Keyboard.dfont and LastResort.dfont. - * src/sfnt/sfobjs.c (sfnt_open_font): Accept the sfnt resource - starts with TTAG_0xA5kbd or TTAG_0xA5lst. - * src/truetype/ttobjs.c (tt_face_init): Accept the face with the - format tag is TTAG_0xA5kbd or TTAG_0xA5lst. - -2017-09-05 Werner Lemberg <wl@gnu.org> - - Fix multiple calls of `FT_Bitmap_Convert'. - - The documentation of `FT_Bitmap_Convert' says that multiple calls do - proper reallocation of the target FT_Bitmap object. However, this - failed for the sequence - - non-empty bitmap - empty bitmap - non-empty bitmap - - Reason was that `FT_Bitmap_Convert' only reallocated the bitmap - buffer if it became too small; it didn't make the buffer smaller. - For an empty bitmap following a non-empty one, only the buffer - dimension got set to zero, without deallocation. If the next call - was a non-empty buffer again, an assertion in `ft_mem_qrealloc' was - triggered. - - * src/base/ftbitmap.c (FT_Bitmap_Convert): Always reallocate target - buffer to the correct size. - - * docs/CHANGES: Document it. - -2017-09-05 Werner Lemberg <wl@gnu.org> - - [bdf] Fix size and resolution handling. - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `SIZE' values if - `POINT_SIZE', `RESOLUTION_X', or `RESOLUTION_Y' properties are - missing. - - * docs/CHANGES: Document it. - -2017-08-25 Alexei Podtelezhnikov <apodtele@gmail.com> - - Swap `ALLOC_MULT' arguments (#51833). - - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Updated. - * src/winfonts/winfnt.c (FNT_Load_Glyph): Updated. - * src/raster/ftrend1.c (ft_raster1_render): Updated. - -2017-08-23 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix clang compilation (#51788). - - * src/sfnt/pngshim.c (premultiply_data): Use vectors instead of - scalars. - (vector_shuffle): New macro to take care of a different built-in - function name on clang. - -2017-08-22 Werner Lemberg <wl@gnu.org> - - [base] Don't zero out allocated memory twice (#51816). - - Patch applied from bug report. - - * src/base/ftutil.c (ft_mem_qrealloc): Use low-level allocation to - avoid unnecessary overhead. - -2017-08-22 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflow. - - Changes triggered by - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3107 - - * src/truetype/ttinterp.c (Ins_MDRP, Ins_MIRP, Ins_ALIGNPTS): Use - NEG_LONG. - -2017-08-17 Alexei Podtelezhnikov <apodtele@gmail.com> - - [sfnt] Avoid synthetic unicode for symbol fonts with PUA. - - Reported as - - https://bugs.chromium.org/p/chromium/issues/detail?id=754574 - - * src/sfnt/sfobjs.c (sfnt_load_face): Check for FT_ENCODING_MS_SYMBOL. - -2017-08-16 Werner Lemberg <wl@gnu.org> - - * src/sfnt/pngshim.c (premultiply_data): Fix compiler warnings. - -2017-08-15 Behdad Esfahbod <behdad@behdad.org> - - [sfnt] Speed up PNG image loading. - - This reduces the overhead of `premultiply_data' by 60%. - - * src/sfnt/pngshim.c (premultiply_data): Provide code which uses - gcc's (and clang's) `vector_byte' attribute to process 4 pixels at a - time. - -2017-08-11 Werner Lemberg <wl@gnu.org> - - [sfnt, truetype] Improve handling of missing sbits. - - Requested by Behdad. - - Modern bitmap-only SFNTs like `NotoColorEmoji.ttf' don't contain - entries in the bitmap strike(s) for empty glyphs. Instead, they - rely that a space glyph gets created from the font's metrics data. - This commit makes FreeType behave accordingly. - - * include/freetype/fterrdef.h (FT_Err_Missing_Bitmap): New error - code. - - * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image): Change error codes - to make a distinction between a missing bitmap in a composite and a - simple missing bitmap. - - * src/truetype/ttgload.c (TT_Load_Glyph): For a missing bitmap (in a - bitmap-only font), synthesize an empty bitmap glyph if metrics are - available. - -2017-08-10 Werner Lemberg <wl@gnu.org> - - [base] Minor API improvement for default variation axis setting. - - * src/base/ftmm.c (FT_Set_MM_Design_Coordinates, - FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates, - FT_Set_Var_Blend_Coordinates): Allow coords==NULL if num_coords==0. - - * docs/CHANGES: Updated. - -2017-08-08 Werner Lemberg <wl@gnu.org> - - [psnames] Really fix issue #49949. - - We now use a separate preprocessor macro to handle both definition - and declaration of the glyph name arrays. - - * src/psnames/psmodule.c (DEFINE_PS_TABLE_DATA): New macro. - - * src/tools/glnames.py (StringTable::dump, - StringTable::dump_sublist): Use `DEFINE_PS_TABLE_DATA'. - (dump_encoding): Ditto. - (main): Use `wb' mode for writing the output file, which works on - Windows also. - - * src/psnames/pstables.h: Regenerated. - -2017-08-08 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Harmony LCD rendering. - - This is a new technology for LCD-optimized rendering. It capitalizes - on the fact that each color channel grid is shifted by a third of a - pixel. Therefore it is logical to render 3 separate monochrome - bitmaps shifting the outline by 1/3 pixel, and then combine them. - Importantly, the resulting output does not require additional LCD - filtering. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic) - [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Implement new LCD-optimized - rendering. - - * include/freetype/ftlcdfil.h, include/freetype/freetype.h, - include/freetype/config/ftoption.h, devel/ftoption.h: Updated - documentation. - -2017-08-08 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Clean up. - -2017-08-08 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/sfnt/ttpost.c (format): Use otspec-compliant versions. - -2017-08-05 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflow. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2868 - - * src/truetype/ttinterp.c (Ins_ALIGNRP): Use NEG_LONG. - -2017-08-05 Werner Lemberg <wl@gnu.org> - - [base, truetype] New function `FT_Get_Var_Axis_Flags'. - - The reserved `flags' field got a value in OpenType version 1.8.2; - unfortunately, the public `FT_Var_Axis' structure misses the - corresponding element. Since we can't add a new field, we add an - access function. - - * src/base/ftmm.c (FT_Get_Var_Axis_Flags): New function. - - * include/freetype/ftmm.h (FT_VAR_AXIS_FLAG_HIDDEN): New macro. - Updated. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Increase allocated memory - of `mmvar' to hold axis flags. - Fill the axis flags array. - - * docs/CHANGES: Updated. - -2017-08-03 Nikolaus Waxweiler <madigens@gmail.com> - - [truetype] Fix metrics of B/W hinting in v40 mode. - - Phantom points are now saved outside v40 backwards compatibility - mode. This fixes the jumping glyphs when switching between v35 and - v40 monochrome mode. - - * src/truetype/ttgload.c (TT_Hint_Glyph): Fix inversed bool logic. - -2017-08-03 Nikolaus Waxweiler <madigens@gmail.com> - - [truetype] Do not set any ClearType flags in v40 monochrome mode. - - This fixes weird behavior of instructions that resulted in rendering - differences between v35 and v40 in monochrome mode, e.g., in - `timesbi.ttf'. - - * src/truetype/ttinterp.c (Ins_GETINFO) - [TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL]: Check - `subpixel_hinting_lean'. - -2017-08-01 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix thinko. - -2017-08-01 Behdad Esfahbod <behdad@behdad.org> - - [truetype] Fix loading of named instances. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Preserve file position - while loading the `avar' table. - -2017-08-01 Werner Lemberg <wl@gnu.org> - - [sfnt, truetype] Minor adjustments for OpenType 1.8.2. - - * src/sfnt/sfobjs.c (sfnt_load_face): The units per EM value has now - (tighter) limits. - - * src/truetype/ttgload.c (load_truetype_glyph): The new OpenType - version explicitly allows all negative values for the number of - contours if we have a composite glyph (this is for better backwards - compatibility I guess), but it still recommends value -1. - -2017-07-26 Werner Lemberg <wl@gnu.org> - - [cff] Integer overflow. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2738 - - * src/cff/cf2hints.c (cf2_glyphpath_computeOffset, - cf2_glyphpath_curveTo): Use ADD_INT32. - -2017-07-13 Werner Lemberg <wl@gnu.org> - - [base] Fix memory leak. - - Reported as - - https://bugs.chromium.org/p/chromium/issues/detail?id=738362 - - * src/base/ftglyph.c (FT_Get_Glyph): Do proper deallocation in case - of error. - -2017-07-12 Werner Lemberg <wl@gnu.org> - - [base] Integer overflow. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2573 - - * src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Use - FT_PIX_CEIL_LONG and FT_PIX_ROUND_LONG. - -2017-07-12 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttpload.c (tt_face_get_location): Off-by-one typo. - - Also improve tracing message. - - Problem reported as - - https://bugs.chromium.org/p/chromium/issues/detail?id=738919 - -2017-07-07 Werner Lemberg <wl@gnu.org> - - [cff] Integer overflow. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2517 - - * src/cff/cf2blues.c (cf2_blues_capture): Use SUB_INT32. - -2017-07-05 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttcmap.c (tt_cmap_unicode_class_rec): Fix warning. - -2017-07-05 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (FT_Stream_SeekSet): Fix warning (#51395). - -2017-07-04 Werner Lemberg <wl@gnu.org> - - [truetype] Prevent address overflow (#51365). - - * src/truetype/ttgxvar.c (FT_Stream_SeekSet): Add guard. - -2017-07-03 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftlcdfil.c (ft_lcd_filter_fir): Improve code. - -2017-07-03 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflow. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2455 - - * src/truetype/ttinterp.c (Ins_SCFS): Use SUB_LONG. - -2017-07-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/sfnt/sfobjs.c (sfnt_load_face): Ignore No_Unicode_Glyph_Name. - -2017-06-28 Ben Wagner <bungeman@google.com> - - Avoid Microsoft compiler warnings (#51331). - - While clang's sanitizer recommends a cast to unsigned for safe - negation (to handle -INT_MIN), both MSVC and Visualc emit warning - C4146 if an unsigned value gets negated. - - * include/freetype/internal/ftcalc.h (NEG_LONG, NEG_INT32), - src/base/ftcalc.c (FT_MOVE_SIGN): Replace negation with a - subtraction. - -2017-06-27 Werner Lemberg <wl@gnu.org> - - * src/cff/cffparse.c (do_fixed): Fix typo. - - Spotted by chris <chris@gcjd.org>. - -2017-06-27 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2384 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2391 - - * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix): Use - NEG_LONG. - - * src/truetype/ttinterp.c (Ins_SxVTL): Use NEG_LONG. - -2017-06-24 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2364 - - * src/truetype/ttinterp.c (Ins_ISECT): Use NEG_LONG. - -2017-06-22 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2323 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2328 - - * src/cff/cf2blues.c (cf2_blues_capture): Use ADD_INT32 and - SUB_INT32. - - * src/truetype/ttinterp.c (Ins_SDPVTL): Use SUB_LONG and NEG_LONG. - -2017-06-21 Alexei Podtelezhnikov <apodtele@gmail.com> - - [sfnt] Synthesize a Unicode charmap if one is missing. - - * src/sfnt/ttcmap.h (tt_cmap_unicode_class_rec): Declare it. - * src/sfnt/ttcmap.c (tt_get_glyph_name, tt_cmap_unicode_init, - tt_cmap_unicode_done, tt_cmap_unicode_char_index, - tt_cmap_unicode_char_next, tt_cmap_unicode_class_rec): Implement - synthetic Unicode charmap class. - (tt_get_cmap_info): Make sure the callback is available. - - * src/sfnt/sfobjs.c (sfnt_load_face) - [FT_CONFIG_OPTION_POSTSCRIPT_NAMES]: If Unicode charmap is missing, - synthesize one. - - * include/freetype/config/ftoption.h: Document it. - * devel/ftoption.h: Ditto. - -2017-06-20 Tony Theodore <tonyt@logyst.com> - - Fix pkg-config in freetype-config for cross-compiling (#51274). - - * builds/unix/unix-def.in (PKG_CONFIG): New variable. - (freetype-config): Use it in sed expression. - - * builds/unix/freetype-config.in: s/pkg-config/%PKG_CONFIG%/. - -2017-06-20 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2300 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2313 - - * src/cff/cf2hints.c (cf2_hintmap_adjustHints): Use ADD_INT32. - - * src/truetype/ttinterp.c (Ins_ABS): Avoid FT_ABS. - -2017-06-17 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base, smooth] LCD filtering cleanups. - - * src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy): - Clean up, start filtering from the bottom-left origin. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Updated. - -2017-06-16 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2270 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2276 - - * src/truetype/ttinterp.c (Ins_MDRP, _iup_worker_interpolate): Use - ADD_LONG and SUB_LONG. - -2017-06-15 Werner Lemberg <wl@gnu.org> - - [bdf, cff] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2244 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2261 - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Replace calls to FT_ABS with - direct code to avoid value negation. - - * src/cff/cf2blues.c (cf2_blues_capture): Use SUB_INT32 and - ADD_INT32. - -2017-06-13 Werner Lemberg <wl@gnu.org> - - * src/winfonts/winfnt.c (FNT_Face_Init): Don't set active encoding. - - FreeType only sets a default active encoding for Unicode. - -2017-06-13 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2216 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2218 - - * src/cff/cf2fixed.h (cf2_fixedAbs): Use NEG_INT32. - - * src/truetype/ttinterp.c (Ins_IP): Use SUB_LONG. - -2017-06-11 Werner Lemberg <wl@gnu.org> - - [cff] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2200 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2210 - - * src/cff/cf2hints.c (cf2_hintmap_insertHint): Use SUB_INT32 and - ADD_INT32. - - * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO>: Use - ADD_INT32. - -2017-06-10 Werner Lemberg <wl@gnu.org> - - [truetype] Fix TT_Set_Var_Design. - - Reported by Nikolaus Waxweiler <madigens@gmail.com>. - - * src/truetype/ttgxvar.c (TT_Set_Var_Design): Correctly handle the - case where we have less input coordinates than axes. - -2017-06-10 Werner Lemberg <wl@gnu.org> - - * src/base/ftcalc.c (FT_DivFix): Fix embarrassing typo. - - Bug introduced 2017-05-28. - -2017-06-09 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2144 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2151 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2153 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2173 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2186 - - * src/cff/cf2blues.c (cf2_blues_init): Use SUB_INT32. - - * src/truetype/ttinterp.c (Round_None, Round_To_Grid, - Round_To_Half_Grid, Round_Down_To_Grid, Round_Up_To_Grid, - Round_To_Double_Grid, Round_Super, Round_Super_45): Use ADD_LONG, - SUB_LONG, NEG_LONG, FT_PIX_ROUND_LONG, FT_PIX_CEIL_LONG, - FT_PAD_ROUND_LONG - (Ins_SxVTL, Ins_MIRP): Use SUB_LONG. - (_iup_worker_shift): Use SUB_LONG and ADD_LONG. - -2017-06-09 Werner Lemberg <wl@gnu.org> - - Provide more macros for flooring, ceiling, and rounding. - - These versions don't produce run-time errors due to integer - overflow. - - * include/freetype/internal/ftobjs.h: Include FT_INTERNAL_CALC_H. - (FT_PAD_ROUND_LONG, FT_PAD_CEIL_LONG, FT_PIX_ROUND_LONG, - FT_PIX_CEIL_LONG): New macros. - (FT_PAD_ROUND_INT32, FT_PAD_CEIL_INT32, FT_PIX_ROUND_INT32, - FT_PIX_CEIL_INT32): New macros. - -2017-06-09 Werner Lemberg <wl@gnu.org> - - Remove unused macros. - - * include/freetype/internal/ftcalc.h (ADD_INT, SUB_INT, MUL_INT, - NEG_INT): Deleted. - -2017-06-09 Werner Lemberg <wl@gnu.org> - - */*: Remove `OVERFLOW_' prefix. - - This increases readability. - -2017-06-07 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2133 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2137 - - * src/cff/cf2hints.c (cf2_hint_init): Use OVERFLOW_SUB_INT32. - - * src/truetype/ttinterp.c (PROJECT, DUALPROJ): Use - OVERFLOW_SUB_LONG. - -2017-06-06 Werner Lemberg <wl@gnu.org> - - [cff] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2109 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2110 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2122 - - * src/cff/cf2blues.c (cf2_blues_init): Use OVERFLOW_SUB_INT32. - - * src/cff/cf2hints.c (cf2_hintmap_map): Synchronize if-else - branches. - -2017-06-05 Werner Lemberg <wl@gnu.org> - - [cff] Integer overflow. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2089 - - * src/cff/cffload.c (cff_blend_doBlend): User OVERFLOW_ADD_INT32. - -2017-06-04 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2075 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2088 - - * src/cff/cf2font.c (cf2_font_setup): Use OVERFLOW_MUL_INT32. - - * src/truetype/ttinterp.c (Ins_ISECT): Use OVERFLOW_MUL_LONG, - OVERFLOW_ADD_LONG, and OVERFLOW_SUB_LONG. - -2017-06-03 Werner Lemberg <wl@gnu.org> - - [base, cff, truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2060 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2062 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2063 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2068 - - * src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Use - OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG. - - * src/cff/cf2blues.c (cf2_blues_capture), src/cff/cf2hints.c - (cf2_hintmap_adjustHints): Use OVERFLOW_SUB_INT32. - - * src/truetype/ttgload.c (compute_glyph_metrics): User - OVERFLOW_SUB_LONG. - - * src/truetype/ttinterp.c (Direct_Move, Direct_Move_Orig, - Direct_Move_X, Direct_Move_Y, Direct_Move_Orig_X, - Direct_Move_Orig_Y, Move_Zp2_Point, Ins_MSIRP): Use - OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG. - -2017-06-03 Werner Lemberg <wl@gnu.org> - - * builds/unix/freetype-config.in: Fix pkg-config test (#51162). - - Patch directly taken from bug report. - -2017-06-03 Werner Lemberg <wl@gnu.org> - - [bdf] Synchronize sanity checks with pcf driver. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2054 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2058 - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Check font ascent and descent. - Check AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, RESOLUTION_X, and - RESOLUTION_Y properties. - -2017-06-03 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2047 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2057 - - * src/cff/cf2hints.c (cf2_hintmap_map): Use OVERFLOW_SUB_INT32. - - * src/truetype/ttinterp.c (Ins_ADD): Use OVERFLOW_ADD_LONG. - (Ins_SUB): Use OVERFLOW_SUB_LONG. - (Ins_NEG): Use NEG_LONG. - -2017-06-03 Werner Lemberg <wl@gnu.org> - - ftcalc.h: Avoid left-shift of negative numbers. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2055 - - * include/freetype/internal/ftcalc.h (INT_TO_F26DOT6, - INT_TO_F2DOT14, INT_TO_FIXED, F2DOT14_TO_FIXED): Use multiplication. - -2017-06-02 Werner Lemberg <wl@gnu.org> - - [cff] Even more integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2046 - - * src/cff/cf2intrp.c (cf2_doStems, cf2_interpT2CharString): Use - OVERFLOW_ADD_INT32. - -2017-06-02 Werner Lemberg <wl@gnu.org> - - [cff] More integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2032 - - * src/cff/cf2blues.c (cf2_blues_init): Use OVERFLOW_SUB_INT32. - -2017-06-02 Werner Lemberg <wl@gnu.org> - - [bdf] Don't left-shift negative numbers. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2031 - - * src/bdf/bdfdrivr.c (BDF_Face_Init): Use multiplication. - -2017-06-02 Werner Lemberg <wl@gnu.org> - - [bdf] Fix integer scanning routines. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2029 - - * src/bdf/bdflib.c (_bdf_atoul, _bdf_atol, _bdf_atous, _bdf_atos): - Stop scanning if result would overflow. - -2017-06-02 Werner Lemberg <wl@gnu.org> - - [cff] Fix integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2027 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=2028 - - * src/cff/cf2hints.c (cf2_hintmap_insertHint), src/cff/cf2intrp.c - (cf2_doFlex): Use OVERFLOW_ADD_INT32 and OVERFLOW_SUB_INT32. - -2017-06-01 Werner Lemberg <wl@gnu.org> - - [smooth] Some 32bit integer overflow run-time errors. - - * src/smooth/ftgrays.c [STANDALONE] (OVERFLOW_ADD_LONG, - OVERFLOW_SUB_LONG, OVERFLOW_MUL_LONG, NEG_LONG): New macros. - [!STANDALONE]: Include FT_INTERNAL_CALC_H. - (gray_render_cubic): Use those macros where appropriate. - -2017-06-01 Werner Lemberg <wl@gnu.org> - - * src/base/ftglyph.c (FT_Get_Glyph): Check `slot->advance'. - -2017-06-01 Werner Lemberg <wl@gnu.org> - - [psaux] 32bit integer overflow tun-time errors (#46149). - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Use - OVERFLOW_ADD_LONG and OVERFLOW_SUB_LONG where appropriate. - -2017-06-01 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter again. - - Problem reported by Marek Kašík <mkasik@redhat.com>. - - The problematic font that exceeds the old limit is Padauk-Bold, - version 3.002, containing bytecode generated by a buggy version of - ttfautohint. - -2017-05-31 Werner Lemberg <wl@gnu.org> - - [cff] 32bit integer overflow run-time errors 2/2 (#46149). - - This commit handles the new engine. - - * include/freetype/internal/ftcalc.h (OVERFLOW_ADD_INT32, - OVERFLOW_SUB_INT32, OVERFLOW_MUL_INT32, NEG_INT, NEG_LONG, - NEG_INT32): New macros. - - * src/cff/cf2ft.c (cf2_getScaleAndHintFlag): Use OVERFLOW_ADD_INT32. - - * src/cff/cf2hints.c (cf2_getWindingMomentum, cf2_hint_init, - cf2_hintmap_map, cf2_glyphpath_hintPoint, - cf2_glyphpath_computeIntersection, cf2_glyphpath_computeOffset, - cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): Use - OVERFLOW_ADD_INT32, OVERFLOW_SUB_INT32, OVERFLOW_MUL_INT32, and - NEG_INT32 where appropriate. - - * src/cff/cf2intrp.c (cf2_doFlex, cf2_doBlend, - cf2_interpT2CharString): Ditto. - Also add some other code where needed to avoid overflow. - -2017-05-30 Werner Lemberg <wl@gnu.org> - - [cff] 32bit integer overflow run-time errors 1/2 (#46149). - - This commit handles the old engine. - - * src/cff/cffgload.c: Include FT_INTERNAL_CALC_H. - (cff_decoder_parse_charstrings): Use OVERFLOW_ADD_LONG and - OVERFLOW_SUB_LONG where needed. - - * src/cff/cffparse.c: Include FT_INTERNAL_CALC_H. - (power_ten_limits): New static array. - (do_fixed): Use it to prevent multiplication overflow. - (cff_parser_run): Use OVERFLOW_ADD_LONG. - -2017-05-30 Werner Lemberg <wl@gnu.org> - - [psaux] Correctly handle sequences of multiple number signs. - - * src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed): Return zero - if we encounter more than a single sign. - -2017-05-29 Werner Lemberg <wl@gnu.org> - - [pcf] 32bit integer overflow run-time errors (#46149). - - * src/pcf/pcfread.c (pcf_get_accel): Add sanity checks for - `fontAscent' and `fontDescent'. - (pcf_load_font): Add sanity checks for global height. - Add sanity checks for AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, - RESOLUTION_X, and RESOLUTION_Y properties. - -2017-05-29 Werner Lemberg <wl@gnu.org> - - Handle some integer overflow run-time errors (#46149, #48979). - - This commit (mainly for 32bit CPUs) is the first of a series of - similar commits to handle known integer overflows. Basically, all - of them are harmless, since they affect rendering of glyphs only, - not posing security threats. It is expected that fuzzying will show - up more overflows, to be fixed in due course. - - The idea is to mark places where overflows can occur, using macros - that simply cast to unsigned integers, because overflow arithmetic - is well defined in this case. Doing so suppresses run-time errors - of sanitizers without adding computational overhead. - - * include/freetype/internal/ftcalc.h (OVERFLOW_ADD_INT, - OVERFLOW_SUB_INT, OVERFLOW_MUL_INT, OVERFLOW_ADD_LONG, - OVERFLOW_SUB_LONG, OVERFLOW_MUL_LONG): New macros. - - * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_Matrix_Multiply, - FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled, - ft_corner_orientation): Use new macros. - - * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use new macros. - -2017-05-28 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/ftcalc.h (FLOAT_TO_FIXED): Remove. - - This macro is not used. - -2017-05-28 Werner Lemberg <wl@gnu.org> - - [cff] s/cf2_floatToFixed/cf2_doubleToFixed/. - - The new name better describes what the macro actually does; - additionally, we don't need a trailing `f' for literals (there was - only a single such instance in the code, but this caused a clang - warning because the macro itself uses `double' literals). - - * src/cff/cf2blues.c, src/cff/cf2blues.h, src/cff/cf2fixed.h, - src/cff/cf2font.c, src/cff/cf2hints.c: Updated. - -2017-05-28 Werner Lemberg <wl@gnu.org> - - Fix negation of INT_MIN and LONG_MIN (#46149). - - * src/base/ftcalc.c (FT_MOVE_SIGN): Add argument to pass unsigned - value, to be used as the result. - (FT_MulDiv, FT_MulDiv_No_Round, FT_DivFix, FT_MulFix, - FT_Vector_NormLen): Updated. - -2017-05-27 Werner Lemberg <wl@gnu.org> - - [truetype] Fix handling of design coordinates (#51127). - - * src/truetype/ttgxvar.c (tt_set_mm_blend): Compute all design - coordinates if we have to create the `blends->coord' array. - (TT_Get_MM_Blend, TT_Get_Var_Design): Select default instance - coordinates if no instance is selected yet. - -2017-05-24 Werner Lemberg <wl@gnu.org> - - [bdf, pcf] Support ISO646.1991-IRV character encoding (aka ASCII). - - Problem reported by Marek Kašík <mkasik@redhat.com>, cf. - - https://bugzilla.redhat.com/show_bug.cgi?id=1451795 - - * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdrivr.c - (PCF_Face_Init): Implement it. - -2017-05-20 Nikolaus Waxweiler <madigens@gmail.com> - - [truetype] Always use interpreter v35 for B/W rendering (#51051). - - * src/truetype/ttgload.c (tt_loader_init) - [TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL]: Adjust - `subpixel_hinting_lean', `grayscale_cleartype', and - `vertical_lcd_lean' accordingly. - - * src/truetype/ttinterp.c (Ins_GETINFO): Updated. - (TT_RunIns): Update `backward_compatibility' flag. - -2017-05-20 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Implement minimal dynamic padding for LCD filtering. - - Extra bitmap padding for LCD filtering depends on the filter. The - default 5-tap filter needs 2 extra subpixels. The light 3-tap filter - needs only 1 extra subpixel. This space could be already available - due to rounding. In order to optimize the padding, we now expand - CBox for the given filter weights before rounding. - - This change breaks current Skia (and Firefox). - - * include/freetype/internal/ftobjs.h (FT_LibraryRec) - [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Remove `lcd_extra' field. - - * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights, - FT_Library_SetLcdFilter): Remove `lcd_extra' initializations. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Implement dymanic - LCD padding. - -2017-05-15 Werner Lemberg <wl@gnu.org> - - [sfnt] Return proper scaling values for SBIX bitmaps. - - Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. - - * src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Implement it. - -2017-05-15 Werner Lemberg <wl@gnu.org> - - [truetype] Fix error handling for embedded bitmaps. - - Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. - - * src/truetype/ttgload.c (TT_Load_Glyph) - [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Handle error if font is not - scalable. - -2017-05-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - [autofit] Make autohint warping NORMAL option. - - This moves warping option from LIGHT to NORMAL mode. This makes LIGHT - truly void of hinting in x-direction, with left side bearing never - changed and right side bearing only altered by advance rounding. - Therefore, LIGHT is now ready to return fractional advance. As a - NORMAL option, warping substitutes normal hinting. - - * src/autofit/afcjk.c (af_cjk_hints_apply): Updated. - * src/autofit/aflatin.c (af_latin_hints_apply): Updated. - * src/autofit/aflatin2.c (af_latin2_hints_apply): Updated. - - * src/autofit/afloader.c (af_loader_load_glyph): Handle warping - phantom points as normal. - -2017-05-14 Werner Lemberg <wl@gnu.org> - - Remove remnants of raster pool. - - * include/freetype/internal/ftobjs.h (FT_LibraryRec): Remove - `raster_pool' and `raster_pool_size' fields. - - * src/base/ftobjs.c (FT_New_Library), src/raster/ftrend1.c - (ft_raster1_init), src/smooth/ftsmooth.c (ft_smooth_init): Updated. - -2017-05-13 Werner Lemberg <wl@gnu.org> - - * Version 2.8 released. - ======================= - - - Tag sources with `VER-2-8'. - - * docs/VERSION.TXT: Add entry for version 2.8. - * docs/CHANGES: Updated. - - * 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.7.1/2.8/, s/271/28/. - - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 8. - (FREETYPE_PATCH): Set to 0. - - * builds/unix/configure.raw (version_info): Set to 20:0:14. - * CMakeLists.txt (VERSION_MINOR): Set to 8. - (VERSION_PATCH): Set to 0. - -2017-05-12 Hin-Tak Leung <htl10@users.sourceforge.net> - - Fix `FT_UINT_TO_POINTER' macro for Windows. - - * builds/unix/ftconfig.in, builds/vms/ftconfig.h, - include/freetype/config/ftconfig.h (FT_UINT_TO_POINTER) [_WIN64]: - Fix definition. - -2017-05-11 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Chakma script. - - * src/autofit/afblue.dat: Add blue zone data for Chakma. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Chakma standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Chakma data. - -2017-05-10 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Kayah Li script. - - * src/autofit/afblue.dat: Add blue zone data for Kayah Li. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Kayah Li standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Kayah Li data. - -2017-05-10 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Bamum script. - - * src/autofit/afblue.dat: Add blue zone data for Bamum. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Bamum standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Bamum data. - -2017-05-10 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Saurashtra script. - - * src/autofit/afblue.dat: Add blue zone data for Saurashtra. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Saurashtra standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Saurashtra - data. - -2017-05-10 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Buhid script. - - * src/autofit/afblue.dat: Add blue zone data for Buhid. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Buhid standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Buhid data. - -2017-05-08 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Shavian script. - - * src/autofit/afblue.dat: Add blue zone data for Shavian. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Shavian standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Shavian data. - -2017-05-08 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Vai script. - - * src/autofit/afblue.dat: Add blue zone data for Vai. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Vai standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Vai data. - -2017-05-08 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Osmanya script. - - * src/autofit/afblue.dat: Add blue zone data for Osmanya. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Osmanya standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Osmanya data. - -2017-05-08 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Coptic script. - - * src/autofit/afblue.dat: Add blue zone data for Coptic. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Coptic standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Coptic data. - -2017-05-08 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Carian script. - - * src/autofit/afblue.dat: Add blue zone data for Carian. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Carian standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Carian data. - -2017-05-07 Werner Lemberg <wl@gnu.org> - - [truetype] Add tricky font `DFGirl-W6-WIN-BF' (from Dynalab). - - Reported by Roy Tam <roytam@gmail.com>. - - * src/truetype/ttobjs.c (tt_check_trickyness_family): Implement it. - -2017-05-07 Roy Tam <roytam@gmail.com> - Werner Lemberg <wl@gnu.org> - - [truetype] More tricky fonts (mainly from Dynalab). - - * src/truetype/ttobjs.c (tt_check_trickyness_family, - tt_check_trickyness_sfnt_ids): Add them. - -2017-05-07 Werner Lemberg <wl@gnu.org> - - [truetype] Add tricky font `DLCHayMedium' (from Dynalab). - - Reported by Roy Tam <roytam@gmail.com>. - - * src/truetype/ttobjs.c (tt_check_trickyness_family): Implement it. - -2017-05-03 Werner Lemberg <wl@gnu.org> - - */*: s/backwards compatibility/backward compatibility/. - -2017-05-03 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Unified Canadian Syllabics script. - - * src/autofit/afblue.dat: Add blue zone data for Unified Canadian - Syllabics. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Unified Canadian Syllabics standard - character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Unified - Canadian Syllabics data. - -2017-05-03 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org> - - [autofit] Add blue-zone support for Sundanese script. - - This essentially moves the Sundanese script from the `Indic' hinter - to the `Latin' hinter. - - * src/autofit/afblue.dat: Add blue zone data for Sundanese. - - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Sundanese standard character and move - data out of AF_CONFIG_OPTION_INDIC block. - - * src/autofit/afranges.c: Move Sundanese data out of - AF_CONFIG_OPTION_INDIC block. - - * src/autofit/afstyles.h: Update Sundanese data; in particular, use - AF_WRITING_SYSTEM_LATIN. - -2017-05-03 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Avestan script. - - * src/autofit/afblue.dat: Add blue zone data for Avestan. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Avestan standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Avestan data. - -2017-05-02 Behdad Esfahbod <behdad@behdad.org> - - [truetype] Make `IUP' gvar deltas do the same as Apple (#50832). - - When points are not touched by gvar interpolation deltas, FreeType - gave a slightly different result than Apple's CoreText. - - The OpenType working group will update the specification to document - the following behaviour: If the two points with deltas to the `left' - and `right' of the untouched point have the same coordinate, then - the inferred delta for the untouched point should be zero. - - * src/truetype/ttgxvar.c (tt_delta_interpolate): Implement new - behaviour. - -2017-05-02 Werner Lemberg <wl@gnu.org> - - [autofit] Remove `slight' auto-hint mode again. - - A poll on freetype-devel favoured changes directly applied to - `light'. - - * include/freetype/freetype.h (FT_LOAD_TARGET_SLIGHT, - FT_RENDER_MODE_SLIGHT): Removed. - - * src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c - (af_latin_hints_init), src/autofit/aflatin2.c - (af_latin2_hints_init): Revert change from 2017-04-22. - - * src/autofit/afloader.c (af_loader_load_glyph) Remove references to - FT_RENDER_MODE_SLIGHT. - [AF_CONFIG_OPTION_TT_SIZE_METRICS]: Enable TrueType-like metrics - unconditionally. - - * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Revert change from - 2017-04-22. - - * src/base/ftobjs.c (FT_Load_Glyph): Revert change from 2017-04-22. - - * src/pshinter/pshalgo.c (ps_hints_apply): Revert change from - 2017-04-22. - - * src/smooth/ftsmooth.c (ft_smooth_render): Revert change from - 2017-04-22. - - * docs/CHANGES: Updated. - -2017-04-30 Werner Lemberg <wl@gnu.org> - - [autofit] Fix metrics computation. - - Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de> and - Nikolaus Waxweiler <madigens@gmail.com>. - - * src/base/ftobjs.c (FT_Request_Size): Trigger recomputation of - auto-hinter metrics. Without this change, multiple size changing - calls for a single face fail. - -2017-04-29 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttdriver.c (tt_size_request): Properly check `error'. - - Reported by Earnestly <zibeon@googlemail.com> in - - https://lists.nongnu.org/archive/html/freetype/2017-04/msg00031.html - -2017-04-27 Werner Lemberg <wl@gnu.org> - - Introduce AF_CONFIG_OPTION_TT_SIZE_METRICS configuration option. - - * include/freetype/config/ftoption.h - (AF_CONFIG_OPTION_TT_SIZE_METRICS): New option, commented out by - default. - - * src/autofit/afloader.c (af_loader_load_glyph): Use - AF_CONFIG_OPTION_TT_SIZE_METRICS to guard the corresponding code. - -2017-04-26 Werner Lemberg <wl@gnu.org> - - * include/freetype/freetype.h (FT_Render_Mode): Fix order. - - This retains backward compatibility. - - Noted by Alexei. - -2017-04-22 Werner Lemberg <wl@gnu.org> - - [truetype] Do linear scaling for FT_LOAD_NO_HINTING (#50470). - - * src/truetype/ttobjs.h (TT_SizeRec): Add field `hinted_metrics' to - hold hinted metrics. - Make `metrics' a pointer so that `tt_glyph_load' can easily switch - between metrics. - - * src/truetype/ttdriver.c (tt_size_request): Updated. - (tt_glyph_load): Use top-level metrics if FT_LOAD_NO_HINTING is - used. - - * src/truetype/ttgload.c (TT_Hint_Glyph, TT_Process_Simple_Glyph, - TT_Process_Composite_Component, load_truetype_glyph, - compute_glyph_metrics, TT_Load_Glyph): Updated. - - * src/truetype/ttinterp.c (TT_Load_Context): Updated. - - * src/truetype/ttobjs.c (tt_size_reset): Updated. - - * src/truetype/ttsubpix.c (sph_set_tweaks): Updated. - -2017-04-22 Werner Lemberg <wl@gnu.org> - - Add new `slight' auto-hinting mode. - - This mode uses fractional advance widths and doesn't scale glyphs - horizontally, only applying vertical scaling and hinting. - - At the same time, the behaviour of the `light' auto-hinter gets - restored for backward compatibility: Both vertical and horizontal - scaling is again based on rounded metrics values (this was changed - in a commit from 2017-03-30 as a side effect). To be more precise, - the behaviour is restored for TrueType fonts only; for other font - formats like Type 1, this is a new feature of the `light' hinting - mode. - - * include/freetype/freetype.h (FT_LOAD_TARGET_SLIGHT): New macro. - (FT_RENDER_MODE_SLIGHT): New render mode. - - * include/freetype/internal/ftobjs.h (FT_Size_InternalRec): Add - `autohint_mode' and `autohint_metrics' fields. - - * src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c - (af_latin_hints_init), src/autofit/aflatin2 (af_latin2_hints_init): - Updated. - - * src/autofit/afloader.c (af_loader_embolden_glyph_in_slot): Use - `autohint_metrics'. - (af_loader_load_glyph): s/internal/slot_internal/. - Initialize `autohint_metrics' and `autohint_mode' depending on - current auto-hint mode. - Use `autohint_metrics'. - Updated. - - * src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Updated. - - * src/base/ftobjs.c (FT_Load_Glyph): Updated. - (FT_New_Size): Allocate `internal' object. - - * src/pshinter/pshalgo.c (ps_hints_apply): Updated. - - * src/smooth/ftsmooth.c (ft_smooth_render): Updated. - -2017-04-22 Werner Lemberg <wl@gnu.org> - - Introduce `FT_Size_InternalRec' structure. - - We are going to extend this later on. - - * include/freetype/internal/ftobjs.h (FT_Size_InternalRec): New - structure with a single field `module_data'. - - * src/base/ftobjs.c (FT_New_Size): Allocate `internal' field of - `FT_Size' structure. - - * src/cff/cffgload.c (cff_builder_init, cff_decoder_prepare): Use - `size->internal->module_data' instead of `size->internal'. - - * src/cff/cffobjs.c (cff_size_done): Deallocate `module_data'. - (cff_size_init, cff_size_select, cff_size_request): Use - `size->internal->module_data' instead of `size->internal'. - - * src/cif/cidobjs.c (cid_size_done, cid_size_init, - cid_size_request): Use `size->internal->module_data' instead of - `size->internal'. - - * src/psaux/psobjs.c (t1_builder_ini): Use - `size->internal->module_data' instead of `size->internal'. - - * src/type1/t1objs.c (T1_Size_Done, T1_Size_Init, T1_Size_Request): - Use `size->internal->module_data' instead of `size->internal'. - -2017-04-21 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftsmooth.h: Remove unused guards and declaration. - -2017-04-16 Hin-Tak Leung <htl10@users.sourceforge.net> - - Fix tracing messages. - - * src/base/ftobjs.c (FT_Face_GetCharVariantIndex, - FT_Face_GetCharVariantIsDefault, FT_Face_GetVariantsOfChar): Print - correct function name. - -2017-04-08 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Old Turkic script. - - * src/autofit/afblue.dat: Add blue zone data for Old Turkic. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Old Turkic standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Old Turkic data. - -2017-04-08 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Gothic script. - - * src/autofit/afblue.dat: Add blue zone data for Gothic. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Gothic standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Gothic data. - -2017-04-08 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Cypriot script. - - * src/autofit/afblue.dat: Add blue zone data for Cypriot. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Cypriot standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Cypriot data. - -2017-04-08 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Deseret script. - - * src/autofit/afblue.dat: Add blue zone data for Deseret. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Deseret standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Deseret data. - -2017-04-07 Werner Lemberg <wl@gnu.org> - - [autofit] Fix invalid character range description (#50745). - - Also reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1034 - - * src/autofit/afranges.c (af_glag_nonbase_uniranges): Fix typo in - recent commit. - -2017-04-07 Werner Lemberg <wl@gnu.org> - - [ftfuzzer] Fix clang warnings. - - * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Add - casts. - -2017-04-06 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Lisu script. - - * src/autofit/afblue.dat: Add blue zone data for Lisu. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Lisu standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Lisu data. - -2017-04-06 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Osage script. - - * src/autofit/afblue.dat: Add blue zone data for Osage. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Osage standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Osage data. - -2017-04-06 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Glagolitic script. - - * src/autofit/afblue.dat: Add blue zone data for Glagolitic. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Glagolitic standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Glagolitic data. - -2017-04-06 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Tai Viet script. - - * src/autofit/afblue.dat: Add blue zone data for Tai Viet. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Tai Viet standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Tai Viet data. - -2017-04-06 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for Tifinagh script. - - * src/autofit/afblue.dat: Add blue zone data for Tifinagh. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Tifinagh standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Tifinagh data. - -2017-04-06 Sascha Brawer <sascha@google.com> - Werner Lemberg <wl@gnu.org - - [autofit] Add support for N'Ko script. - - * src/autofit/afblue.dat: Add blue zone data for N'Ko. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add N'Ko standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add N'Ko data. - -2017-04-06 Sascha Brawer <sascha@google.com> - - [autofit] Add support for Adlam script. - - * src/autofit/afblue.dat: Add blue zone data for Adlam. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Adlam standard characters. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Adlam data. - -2017-04-06 Sascha Brawer <sascha@google.com> - - [autofit] Add support for Ol Chiki script. - - * src/autofit/afblue.dat: Add blue zone data for Ol Chiki. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Ol Chiki standard character. - - * src/autofit/afranges.c, src/autofit/afstyles.h: Add Ol Chiki data. - -2017-04-03 Werner Lemberg <wl@gnu.org> - - [truetype] Avoid reexecution of `fpgm' and `prep' in case of error. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=981 - - * include/freetype/fterrdef.h (FT_Err_DEF_In_Glyf_Bytecode): New - error code. - - * src/truetype/ttinterp.c (Ins_FDEF, Ins_IDEF): Prohibit execution - of these two opcodes in `glyf' bytecode. - (TT_RunIns): Don't enforce reexecution of `fpgm' and `prep' bytecode - in case of error since function tables can no longer be modified - (due to the changes in `Ins_FDEF' and `Ins_IDEF'). This change can - enormously speed up handling of broken fonts. - -2017-04-02 Alexei Podtelezhnikov <apodtele@gmail.com> - - [autofit] Disable metrics adjustment for `FT_LOAD_TARGET_LCD'. - - * src/autofit/aflatin.c (af_latin_hints_init): Updated. - * src/autofit/aflatin2.c (af_latin2_hints_init): Ditto. - -2017-04-01 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgload.c: Include FT_CONFIG_CONFIG_H. - - Otherwise FT_UINT_TO_POINTER might not be defined. - - Problem reported by Alexei. - -2017-03-31 Alexei Podtelezhnikov <apodtele@gmail.com> - - [autofit] Disable stem adjustment for `FT_LOAD_TARGET_LCD'. - - * include/freetype/freetype.h (FT_LOAD_TARGET_LCD): Document it. - * src/autofit/afcjk.c (af_cjk_hints_init): Updated. - * src/autofit/aflatin.c (af_latin_hints_init): Ditto. - * src/autofit/aflatin2.c (af_latin2_hints_init): Ditto. - -2017-03-31 Werner Lemberg <wl@gnu.org> - - * src/cff/cffload.c (cff_font_load): Improve fix from 2017-01-04. - - Allow CFFs containing a single font to have an empty font name. - - Problem reported by 張俊芝 <418092625@qq.com> in - - https://lists.nongnu.org/archive/html/freetype-devel/2017-03/msg00074.html - -2017-03-30 Werner Lemberg <wl@gnu.org> - - * src/cff/cffparse.h (CFF2_DEFAULT_STACK): Set to 513 also. - - Requested by Dave Arnold. - -2017-03-30 Werner Lemberg <wl@gnu.org> - - [truetype] Fix HVAR and VVAR handling (#50678). - - * src/truetype/ttgxvar.c (tt_hvadvance_adjust): Handle - glyph indices larger than `mapCount' as described in the - specification. - -2017-03-30 Werner Lemberg <wl@gnu.org> - - [truetype] Allow linear scaling for unhinted rendering (#50470). - - * src/truetype/ttdriver.c (tt_size_request): Revert change from - 2011-07-16; the intended metrics fix seems now to be implemented in - a different way, making the patch unnecessary. Note that this - change was usually patched out by all major GNU/Linux distributions - due to heavy side effects. - - * src/truetype/ttgload.c (compute_glyph_metrics, TT_Load_Glyph): - Refer to the metrics of the `TT_Size' object. - -2017-03-29 Werner Lemberg <wl@gnu.org> - - [truetype] Fix thinko related to PS name of default named instance. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): `strid' and `psid' are - name ID values, not indices into the array of name entries. - -2017-03-27 Werner Lemberg <wl@gnu.org> - - [cid, truetype] Don't use `index' as a variable name. - - At least on FreeBSD there is a global declaration of `index' in file - `/usr/include/strings.h'. - - * src/cff/cf2intrp.c, src/truetype/ttgload.c: s/index/idx/ where - appropriate. - -2017-03-27 Wojciech Mamrak <wmamrak@gmail.com> - - [sfnt] Minor improvement for handling kern tables. - - * src/sfnt/ttkern.c (tt_face_load_kern): Don't check for - cross-stream kerning tables since we reject format 2 tables later - on anyways. - Modify code for limit test... - (tt_face_get_kerning): ... to avoid a limit test here. - -2017-03-27 Werner Lemberg <wl@gnu.org> - - [pcf] Fix compiler warnings. - - Reported by Alexander Hedges <ahedges@student.ethz.ch>. - - * src/pcf/pcfdrivr.c (pcf_property_set, pcf_property_get): Tag - `property_name' with `FT_UNUSED' where necessary. - -2017-03-26 Werner Lemberg <wl@gnu.org> - - * src/psaux/psobjs.c (t1_builder_close_contour): Add safety guard. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=941 - -2017-03-23 Werner Lemberg <wl@gnu.org> - - [psaux] Better protect `flex' handling. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=935 - - * src/psaux/t1decode.c (t1_decoder_parse_charstrings) - <callothersubr>: Since there is not a single flex operator but a - series of subroutine calls, malformed fonts can call arbitrary other - operators after the start of a flex, possibly adding points. For - this reason we have to check the available number of points before - inserting a point. - -2017-03-23 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix check for default named instance. - - * src/sfnt/sfobjs.c (sfnt_init_face): A `fixed' number needs four - bytes, not two... - -2017-03-23 Werner Lemberg <wl@gnu.org> - - Make MM fonts work (again). - - * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, - FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Ignore - return value of `ft_face_get_mvar_service'; instead, check whether a - service is actually returned. - -2017-03-20 Werner Lemberg <wl@gnu.org> - - [truetype] Some variable renamings. - - Too much local variables holding different structures were called - `metrics'. - - * src/truetype/ttdriver.c (tt_size_select): s/metrics/size_metrics/. - - * src/truetype/ttgload.c (tt_get_metrics_incr_overrides, - compute_glyph_metrics): s/metrics/incr_metrics/. - (load_sbit_image): s/metrics/sbit_metrics/. - - * src/truetype/ttobjs.c (tt_size_run_fpgm): s/metrics/size_metrics/. - (tt_size_init_bytecode): s/metrics/tt_metrics/. - (tt_size_reset): s/metrics/size_metrics/. - -2017-03-20 Werner Lemberg <wl@gnu.org> - - [sfnt] Don't add instances to non-variation fonts. - - * src/sfnt/sfobjs.c (sfnt_init_face): Fix it. - -2017-03-20 Werner Lemberg <wl@gnu.org> - - * src/cff/cffgload.c (cff_builder_init): Add safety guard (#50578). - -2017-03-18 Werner Lemberg <wl@gnu.org> - - Introduce FT_UINT_TO_POINTER macro (#50560). - - We have to make a separate case for Windows 64's LLP64 data model. - - * builds/unix/ftconfig.in, builds/vms/ftconfig.h, - include/freetype/config/ftconfig.h (FT_UINT_TO_POINTER): New macro. - - * src/truetype/ttgload.c (load_truetype_glyph): Use it. - -2017-03-18 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#50573). - - The problematic font that exceeds the old limit is Lato-Regular, - version 2.007, containing bytecode generated by a buggy version of - ttfautohint. - -2017-03-18 Werner Lemberg <wl@gnu.org> - - [truetype] Another limitation for bytecode loop count maximum. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=900 - - * src/truetype/ttinterp.c (TT_RunIns): Limit `loopcall_counter_max' - by number of glyphs also. - -2017-03-18 Werner Lemberg <wl@gnu.org> - - [ftfuzzer] Minor improvement. - - * src/tools/ftfuzzer/ftfuzzer.cc: Don't set intermediate axis if - bitmap strikes are active. - -2017-03-18 Werner Lemberg <wl@gnu.org> - - Improve `make multi'. - - * src/autofit/aflatin2.c: Guard file with FT_OPTION_AUTOFIT2. - - * src/base/ftmac.c: Guard more parts of the file with FT_MACINTOSH. - - * src/psaux/afmparse.c: Guard file with T1_CONFIG_OPTION_NO_AFM. - - * src/sfnt/pngshim.c: Guard file with - TT_CONFIG_OPTION_EMBEDDED_BITMAPS also. - - * src/sfnt/ttbdf.c: Avoid empty source file. - * src/sfnt/ttpost.c: Guard file with - TT_CONFIG_OPTION_POSTSCRIPT_NAMES. - * src/sfnt/ttsbit.c: Guard file with - TT_CONFIG_OPTION_EMBEDDED_BITMAPS. - - * src/truetype/ttgxvar.c, src/truetype/ttinterp.c: Avoid empty - source file. - - * src/truetype/ttsubpix.c: Guard file with - TT_USE_BYTECODE_INTERPRETER also. - - * src/type1/t1afm.c: Guard file with T1_CONFIG_OPTION_NO_AFM. - - * src/autofit/autofit.c, src/base/ftbase.c, src/cache/ftcache.c, - src/cff/cff.c, src/cid/type1cid.c, src/gxvalid/gxvalid.c, - src/pcf/pcf.c, src/pfr/pfr.c, src/psaux/psaux.c, - src/pshinter/pshinter.c, src/psnames/psnames.c, src/raster/raster.c, - src/sfnt/sfnt.c, src/smooth/smooth.c, src/truetype/truetype.c, - src/type1/type1.c, src/type42/type42.c: Remove conditionals; sort - entries. - -2017-03-17 Werner Lemberg <wl@gnu.org> - - Fixes for conditional compilation. - - * src/autofit/afcjk.c, src/autofit/afindic.c: Include `afcjk.h' - earlier. - - * src/sfnt/sfobjs.c (sfnt_init_face): Put `memory' variable into - TT_CONFIG_OPTION_GX_VAR_SUPPORT block. - (sfnt_done_face): Protect some code with - TT_CONFIG_OPTION_GX_VAR_SUPPORT. - - * src/sfnt/ttsbit.c (tt_face_load_sbix_image): Remove compiler - warning. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Put `tmp' variable - into TT_USE_BYTECODE_INTERPRETER block. - - (tt_loader_init): Put `error' variable into - TT_USE_BYTECODE_INTERPRETER block. - -2017-03-17 Werner Lemberg <wl@gnu.org> - - Fix preprocessor warning. - - * devel/ftoption.h, include/freetype/config/ftoption.h: Test whether - TT_CONFIG_OPTION_SUBPIXEL_HINTING is defined before checking its - value. - -2017-03-17 Werner Lemberg <wl@gnu.org> - - `make multi' fixes; compiler warnings. - - * src/base/ftsnames.c: Include FT_INTERNAL_DEBUG_H. - - * src/cff/cffobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include - FT_MULTIPLE_MASTERS_H and FT_SERVICE_MULTIPLE_MASTERS_H. - - * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include - FT_MULTIPLE_MASTERS_H and FT_SERVICE_MULTIPLE_MASTERS_H. - (get_win_string, get_apple_string): Initialize `result'. - -2017-03-17 Dave Arnold <darnold@adobe.com> - - [cff] Fix potential bugs in default NDV for CFF2. - - * src/cff/cffload.c (cff_blend_build_vector): Explicitly build blend - vector when `lenNDV' is zero; don't rely on zero-init. - Save `lenNDV' as part of cache key even when `lenNDV' is zero. - -2017-03-17 Dave Arnold <darnold@adobe.com> - - [cff] Fix CFF2 stack allocation. - - * src/cff/cffparse.c (cff_parser_init) add 1 for operator. - -2017-03-16 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (tt_done_blend): Free `vvar_table'. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=883 - -2017-03-15 Werner Lemberg <wl@gnu.org> - - Remove clang compiler warnings (#50548). - - * include/freetype/internal/tttypes.h (TT_FaceRec): Make - `var_postscript_prefix_len' unsigned. - - * src/autofit/afwarp.c (af_warper_compute_line_best): Remove - redundant assignment. - - * src/cff/cffload.c (cff_subfont_load): Add casts. - - * src/cff/cffparse.c (cff_parse_blend): Remove redundant assignment. - - * src/sfnt/sfdriver.c (fmix32, murmur_hash_3_128): Add `static' - keyword. - Add casts. - (fixed2float): Add cast. - (sfnt_get_var_ps_name): Make `p' always initialized. - Add casts. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Add casts. - -2017-03-15 Werner Lemberg <wl@gnu.org> - - [ftfuzzer] Limit number of tested faces and instances. - - This is inspired by the discussion in and analysis of - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=859 - - * src/tools/ftfuzzer/ftfuzzer.cc (LLVMFuzzerTestOneInput): Use only - up to 20 face indices. - Use only up to 20 instance indices. - -2017-03-15 Werner Lemberg <wl@gnu.org> - - * src/tools/ftfuzzer/ftfuzzer.cc: Improve readability; formatting. - -2017-03-14 Werner Lemberg <wl@gnu.org> - - [sfnt] Implement PS names for font instances [3/3]. - - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - - * include/freetype/internal/tttypes.h (TT_FaceRec): New fields - `var_postscript_prefix' and `var_postscript_prefix_len'. - - * src/sfnt/sfdriver.c: Include FT_TRUETYPE_IDS_H. - (sfnt_is_alphanumeric): New wrapperfunction for `ft_isalnum'. - (get_win_string, get_apple_string): Remove `const' from return - value. - (MAX_VALUE_DESCRIPTOR_LEN, MAX_PS_NAME_LEN): New macros. - (hexdigits): New array. - (sfnt_get_var_ps_name): New function, implementing Adobe TechNote - 5902 to construct a PS name for a variation font instance. - (sfnt_get_ps_name): Call `sfnt_get_var_ps_name' for font instances. - - * src/sfnt/sfobjs.c (sfnt_done_face): Updated. - - * src/truetype/ttgxvar.c (tt_set_mm_blend): Reset - `face->postscript_name' to trigger recalculation for new instance - parameters. - -2017-03-14 Werner Lemberg <wl@gnu.org> - - [sfnt] Implement PS names for font instances [2/3]. - - * src/sfnt/sfdriver.c (fix2float) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: - New function to find the shortest representation of a 16.16 - fractional number. - -2017-03-14 Werner Lemberg <wl@gnu.org> - - [sfnt] Implement PS names for font instances [1/3]. - - Add 128bit MurmurHash 3 function. - - Everything is guarded with TT_CONFIG_OPTION_GX_VAR_SUPPORT. - - * src/sfnt/sfdriver.c (ROTL32): New macro. - (fmix32, murmur_hash_3_128): New functions. - -2017-03-13 Werner Lemberg <wl@gnu.org> - - [truetype] Ignore invalid MVAR tags. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=838 - - * src/truetype/ttgxvar.c (ft_var_load_mvar): Ignore value and emit - warning for invalid tags. - (tt_apply_mvar): Ignore invalid tags. - -2017-03-12 Werner Lemberg <wl@gnu.org> - - [truetype] Store and use design coordinates also. - - * include/freetype/internal/services/svmm.h (FT_Get_Var_Blend_Func): - Add `normalizedcoords' argument. - - * src/truetype/ttgxvar.h (GX_BlendRec): Add `coords' field to store - the design coordinates of the current instance. - Updated. - - * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Move functionality to... - (tt_set_mm_blend): ... New function. - Convert data in `normalizedcoords' array to `coords' array on - demand. - (TT_Set_Var_Design): Store argument data in `coords' array. - (TT_Get_Var_Design): Get data from `coords' array. - (tt_get_var_blend): Updated. - (tt_done_blend): Updated. - - * src/cff/cffload.c, src/cff/cffload.h (cff_get_var_blend): Updated. - - * src/cff/cf2ft.c (cf2_getNormalizedVector): Updated. - - * src/cff/cffobjs.c (cff_face_init): Updated. - -2017-03-12 Werner Lemberg <wl@gnu.org> - - src/truetype/ttgxvar.[ch]: s/avar_checked/avar_loaded/. - -2017-03-08 Werner Lemberg <wl@gnu.org> - - [sfnt] Another fix for buggy variation fonts. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=759 - - * src/sfnt/sfobjs.c (sfnt_init_face): While setting number of - instances to zero for `CFF' fonts table, ensure that there is no - `CFF2' present also (which gets priority). - -2017-03-07 Werner Lemberg <wl@gnu.org> - - [sfnt] Improve handling for buggy variation fonts. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=738 - - * src/sfnt/sfobjs.c (sfnt_init_face): While setting number of - instances to zero for `CFF' fonts table, ensure that there is no - `glyf' table present also (which gets priority). - -2017-03-06 Werner Lemberg <wl@gnu.org> - - [sfnt, truetype] Always provide default instance. - - As documented in the OpenType specification, an entry for the - default instance may be omitted in the named instance table. In - particular this means that even if there is no named instance table - in the font we actually do have a named instance, namely the default - instance. - - For consistency, we always want the default instance in our list of - named instances. If it is missing, we try to synthesize it. - - * src/sfnt/sfobjs.c (sfnt_init_face): Check whether the default - instance is in the table of named instances. Otherwise adjust - number of instances. - - * src/truetype/ttgxvar.c: Include FT_TRUETYPE_IDS_H. - (TT_Get_MM_Var): Use `face->root.style_flags' as the number of named - instances. - Sythesize a named instance entry if necessary. - (tt_done_blend): Free `normalized_stylecoords'. - -2017-03-05 Werner Lemberg <wl@gnu.org> - - [sfnt] Remove redundant code. - - * src/sfnt/sfobjs.c (sfnt_init_face): Remove second test for - `num_instances', which will always succeed. - -2017-03-04 Werner Lemberg <wl@gnu.org> - - [sfnt] Add `get_name_id' service. - - * include/freetype/internal/sfnt.h (TT_Get_Name_ID_Func): New - typedef. - (SFNT_Interface): Add `get_name_id' field. - (FT_DEFINE_SFNT_INTERFACE): Updated. - - * src/sfnt/sfdriver.c (search_name_id): Rename to... - (sfnt_get_name_id): ... this. - (sfnt_get_ps_name, sfnt_interface): Updated. - -2017-03-04 Werner Lemberg <wl@gnu.org> - - [truetype] Make `TT_Set_MM_Blend' set named instance index. - - * src/truetype/ttgxvar.h (GX_Blend): New array - `normalized_stylecoords'. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Allocate and fill - `normalized_stylecoords'. - (TT_Set_MM_Blend): Check instance tuple and adjust `face_index' - accordingly. - -2017-03-02 Werner Lemberg <wl@gnu.org> - - [truetype] Split off designer/normalized conversion routines. - - * src/truetype/ttgxvar.c (TT_Set_Var_Design): Split off conversion - code designer->normalized coordinates to... - (ft_var_to_normalized): ... New function. - (TT_Get_Var_Design): Split off conversion code normalized->designer - coordinates to... - (ft_var_to_design): ... New function. - -2017-02-28 Werner Lemberg <wl@gnu.org> - - [sfnt] Further generalize `sfnt_get_ps_name'; report invalid data. - - * src/sfnt/sfdriver.c (sfnt_ps_map): New array. - (sfnt_is_postscript): New function. - (char_type_func): New typedef. - (get_win_string, get_apple_string): Add argument to specify - character checking function. - Add argument whether argument checking failures should be reported. - Update callers. - (search_name_id): Fix return value. - -2017-02-23 Werner Lemberg <wl@gnu.org> - - [sfnt] Split off another bit of `sfnt_get_ps_name'. - - * src/sfnt/sfdriver.c (sfnt_get_ps_name): Split off some - functionality into... - (search_name_id): ... New function. - -2017-02-23 Werner Lemberg <wl@gnu.org> - - [sfnt] Modularize `sfnt_get_ps_name'. - - * src/sfnt/sfdriver.c (sfnt_get_ps_name): Split off some - functionality into... - (IS_WIN, IS_APPLE): ... New macros. - (get_win_string, get_apple_string): ... New functions. - -2017-02-23 Werner Lemberg <wl@gnu.org> - - [truetype] Minor improvement. - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph, - load_truetype_glyph): Remove unnecessary tests. - -2017-02-23 Werner Lemberg <wl@gnu.org> - - * include/freetype/internal/tttypes.h (TT_Face): s/isCFF2/is_cff2/. - - For orthogonality with other structure field names. - - Update all users. - -2017-02-22 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftgrays.c (gray_hline): Improve code. - -2017-02-20 Dominik Röttsches <drott@google.com> - - Fix some `ttnameid.h' entries (#50313). - - * include/freetype/ttnameid.h: - s/TT_MS_LANGID_SPANISH_INTERNATIONAL_SORT/TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT/, - s/TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIA/TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN/. - -2017-02-20 Werner Lemberg <wl@gnu.org> - - [cff] Finish support for `random' operator. - - * src/cff/cfftypes.h (CFF_SubFontRec): Add `random' field. - - * src/cff/cffobjs.c: Updated. - (cff_driver_init): Initialize random seed value. - - * src/cff/cffload.c (cff_random): New function. - (cff_subfont_load): Add `face' argument. - Update all callers. - Initialize random number generator with a proper seed value. - (cff_font_load): Add `face' argument. - Update all callers. - - * src/cff/cffload.h: Updated. - - * src/cff/cf2intrp.c (CF2_FIXME): Removed. - (cf2_interpT2CharString) <cf2_escRANDOM>: Implement opcode. - - * src/cff/cffgload.c (cff_decoder_parse_charstrings): Don't - initialize random seed value. - <cff_op_random>: Use new random seed framework. - -2017-02-20 Werner Lemberg <wl@gnu.org> - - [cff] Sanitize `initialRandomSeed'. - - * src/cff/cffload.c (cff_load_private_dict): Make - `initial_random_seed' value always positive. - -2017-02-20 Werner Lemberg <wl@gnu.org> - - [cff] Introduce `random-seed' property (2/2). - - * src/base/ftobjs.c: Include `FT_CFF_DRIVER_H'. - (open_face): Initialize `face->internal->random_seed'. - (FT_Face_Properties): Handle `FT_PARAM_TAG_RANDOM_SEED'. - - * src/cff/cffdrivr.c (cff_property_set): Handle `random-seed' - property. - -2017-02-20 Werner Lemberg <wl@gnu.org> - - [cff] Introduce `random-seed' property (1/2). - - We need this for support of the `random' operator. - - * include/freetype/ftcffdrv.h (FT_PARAM_TAG_RANDOM_SEED): New macro. - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New - field `random_seed'. - - * src/cff/cffobjs.h (CFF_DriverRec): New field `random_seed'. - -2017-02-17 Werner Lemberg <wl@gnu.org> - - Remove clang warnings. - - * src/autofit/aflatin.c (af_latin_sort_blue): Add missing `static' - keyword. - - * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, - FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): - Initialize some variables. - -2017-02-16 Nikolaus Waxweiler <madigens@gmail.com> - Werner Lemberg <wl@gnu.org> - - Add face property for stem darkening. - - * include/freetype/ftautoh.h (FT_PARAM_TAG_STEM_DARKENING): New - macro. - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add - `no_stem_darkening' field. - - * src/autofit/afloader.c (af_loader_load_glyph), - src/autofit/afmodule.c (af_property_set): Updated. - - * src/base/ftobjs.c: Include FT_AUTOHINTER_H. - (ft_open_face_internal): Updated. - (FT_Face_Properties): Handle FT_PARAM_TAG_STEM_DARKENING. - - * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Updated. - - * src/cff/cffdrivr.c (cff_property_set): Updated. - -2017-02-16 Nikolaus Waxweiler <madigens@gmail.com> - Werner Lemberg <wl@gnu.org> - - Add face property for LCD filter weights. - - * include/freetype/ftlcdfil.h (FT_PARAM_TAG_LCD_FILTER_WEIGHTS, - FT_LCD_FILTER_FIVE_TAPS): New macros. - (FT_LcdFiveTapFilter): New typedef. - - * include/freetype/ftobjs.h (FT_Face_InternalRec) - [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add `lcd_weights' field. - (FT_Bitmap_LcdFilterFunc): Change third argument to weights array. - (ft_lcd_filter_fir): New prototype. - (FT_LibraryRec): Updated. - - * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Renamed to... - (ft_lcd_filter_fir): ... this base function. - Updated. - (_ft_lcd_filter_legacy): Updated. - (FT_Library_SetLcdFilterWeights, FT_Library_SetLcdFilter): Updated. - - * src/base/ftobjs.c (ft_open_face_internal): Updated. - (FT_Face_Properties): Handle FT_PARAM_TAG_LCD_FILTER_WEIGHTS. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic) - [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Handle LCD weights from - `FT_Face_Internal'. - -2017-02-14 Nikolaus Waxweiler <madigens@gmail.com> - Werner Lemberg <wl@gnu.org> - - Add new function `FT_Face_Properties'. - - This commit provides the framework, to be filled with something - useful in the next commits. - - * include/freetype/freetype.h (FT_Face_Properties): Declare. - - * src/base/ftobjs.c (FT_Face_Properties): New function. - -2017-02-13 Werner Lemberg <wl@gnu.org> - - [autofit] Prevent overlapping blue zones. - - Problem reported as - - https://github.com/google/fonts/issues/632 - - The font in question (Nunito) has values 705 and 713 for the - reference and overshoot values, respectively, of the first blue - zone. Blue zone 2, however, has value 710 for both the reference - and overshoot. At 12ppem, reference and overshoot of blue zone 0 - becomes 8px, while blue zone 2 becomes 9px. - - A peculiarity of this font is that the tops of isolated vertical - stems like `N' have a slight overshoot also. The auto-hinter tries - to find the nearest blue zone using the *original* coordinates. For - vertical stems, this is value 713. For normal horizontal tops like - in character `E', this is value 710. Since value 713 is mapped to - 8px but value 710 to 9px, `N' and similar characters are one pixel - higher than `E', which looks very bad. - - This commit sanitizes blue zones to avoid such a behaviour. - - * src/autofit/aflatin.c (af_latin_sort_blue): New function. - (af_latin_metrics_init_blues): Sort blue values and remove overlaps. - -2017-02-12 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftgrays.c (gray_sweep): Improve code. - -2017-02-06 Werner Lemberg <wl@gnu.org> - - [truetype] Implement `VVAR' table support. - - * src/truetype/ttgxvar.h (GX_HVarTable): Renamed to... - (GX_HVVarTable): ...This. - (GX_Blend): Add fields for `VVAR' table handling. - Other minor updates. - - * src/truetype/ttgxvar.c (ft_var_load_hvar): Renamed to... - (ft_var_load_hvvar): ...This. - Handle VVAR loading also (controlled by an additional parameter). - (tt_hadvance_adjust): Renamed to... - (tt_hvadvance_adjust): ...This. - Handle application of advance height also (controlled by an - additional parameter). - (tt_hadvance_adjust, tt_vadvance_adjust): Wrappers for - `tt_hvadvance_adjust'. - - * src/truetype/ttdriver.c (tt_service_metrics_variations): Updated. - -2017-02-05 Werner Lemberg <wl@gnu.org> - - [autofit] Use better blue zone characters for lowercase latin. - - The number of lowercase characters for computing the top flat blue - zone value was too small (in most cases only `x' and `z'). If one - of the two characters has a large serif, say, it can happen that - FreeType must select between two different values, having a 50% - chance to use the wrong one. As a result, rendering at larger PPEM - values could yield uneven lowercase glyph heights. - - Problem reported by Christoph Koeberlin <christoph@koe.berlin>. - - * src/autofit/afblue.dat (AF_BLUE_STRING_LATIN_SMALL): Replaced - with... - (AF_BLUE_STRING_LATIN_SMALL_TOP, AF_BLUE_STRING_LATIN_SMALL_BOTTOM): - ... New, extended sets. - (AF_BLUE_STRINGSET_LATN): Updated. - - * src/autofit/afblue.c, scr/autofit/afblue.h: Regenerated. - -2017-02-04 Werner Lemberg <wl@gnu.org> - - Make `freetype-config' a wrapper of `pkg-config' if possible. - - Based on ideas taken from - - https://pkgs.fedoraproject.org/cgit/rpms/freetype.git/tree/freetype-multilib.patch - https://pkgs.fedoraproject.org/cgit/rpms/freetype.git/tree/freetype-2.5.3-freetype-config-prefix.patch - - * builds/unix/freetype-config.in: Rewritten. Use `pkg-config' to - set output variables if program is available. - - * docs/CHANGES, docs/freetype-config.1: Updated. - -2017-02-04 Werner Lemberg <wl@gnu.org> - - * builds/unix/unix-def.in (freetype-config): Fix permissions. - -2017-02-03 Werner Lemberg <wl@gnu.org> - - * src/autofit/afglobal.c (af_face_globals_free): Erase useless code. - -2017-02-03 Werner Lemberg <wl@gnu.org> - - * include/freetype/ftgasp.h (FT_GASP_SYMMETRIC_GRIDFIT): Fix value. - - Reported by Behdad. - -2017-02-02 Werner Lemberg <wl@gnu.org> - - [truetype] Fix MVAR post-action handling. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=509 - - * src/truetype/ttobjs.c (tt_size_reset): Do nothing for CFF2. This - is important to make `tt_size_reset_iterator' (called in - `tt_apply_mvar') always work. - -2017-02-02 Werner Lemberg <wl@gnu.org> - - Make compilation with FT_CONFIG_OPTION_PIC work again. - - All code committed here is guarded with `FT_CONFIG_OPTION_PIC'. - - * include/freetype/internal/services/svmetric.h - (FT_DEFINE_SERVICE_METRICSVARIATIONSREC): Remove trailing semicolon. - - * src/autofit/aflatin.c (af_latin_hints_compute_edges, - af_latin_hint_edges): Provide `globals' variable. - - * src/autofit/afloader.c (af_loader_load_glyph): Remove shadowing - variable. - - * src/autofit/afmodule.c (AF_SCRIPT_CLASSES_GET, - AF_STYLE_CLASSES_GET): Redefine. - - * src/autofit/aftypes.h (AF_DEFINE_WRITING_SYSTEM_CLASS): Fix typo. - - * src/cff/cffparse.c (CFF_FIELD_BLEND): Provide it. - - * src/cff/cffpic.h (CffModulePIC): Fix typo. - -2017-01-31 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftgrays.c (gray_render_scanline): Improve code. - -2017-01-31 Werner Lemberg <wl@gnu.org> - - [cff] Provide metrics variation service interface (#50196). - - Only now I've got an OTF with an HVAR table for testing... - - The code in `ftmm.c' uses `FT_FACE_LOOKUP_SERVICE' to get the - metrics variations interface. However, this didn't work with - `FT_FACE_FIND_GLOBAL_SERVICE' used in `sfnt_init_face'. - - * src/cff/cffdrivr.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (cff_hadvance_adjust, cff_metrics_adjust): Wrapper functions for - metric service functions from the `truetype' module. - (cff_service_metrics_variations): New service. - (cff_services): Updated. - - * src/cff/cffpic.h (CFF_SERVICE_METRICS_VAR_GET): New macro. - [FT_CONFIG_OPTION_PIC]: Synchronize code. - - * src/sfnt/sfobjs.c (sfnt_init_face): Replace call to - FT_FACE_FIND_GLOBAL_SERVICE with `ft_module_get_service' to always - load the service from the `truetype' module. - -2017-01-31 Werner Lemberg <wl@gnu.org> - - Add framework to support services with 9 functions. - - * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC9): - New macro. - -2017-01-31 Werner Lemberg <wl@gnu.org> - - [base] Fix error handing in MM functions. - - * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, - FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): - Implement it. - -2017-01-31 Werner Lemberg <wl@gnu.org> - - [truetype] Fix sanity check for `gvar' table (#50184). - - * src/truetype/ttgxvar.c (ft_var_load_gvar): There might be missing - variation data for some glyphs. - -2017-01-31 Werner Lemberg <wl@gnu.org> - - [autofit] Avoid uninitialized jumps (#50191). - - * src/autofit/afcjk.c (af_cjk_metrics_check_digits), - src/autofit/aflatin.c (af_latin_metrics_check_digits): Initialize - `advance'. - -2017-01-27 Werner Lemberg <wl@gnu.org> - - s/GB2312/PRC/. - - * include/freetype/freetype.h (FT_ENCODING_PRC): New enum value. - (FT_ENCODING_GB2312): Deprecated. - - * include/freetype/ttnameid.h (TT_MS_ID_PRC): New macro. - (TT_MS_ID_GB2312): Deprecated. - - * src/sfnt/sfobjs.c (sfnt_find_encoding): Updated. - - * docs/CHANGES: Updated. - -2017-01-26 Werner Lemberg <wl@gnu.org> - - [base] Add `FT_Get_Sfnt_LangTag' function. - - * include/freetype/ftsnames.h (FT_SfntLangTag): New structure. - (FT_Get_Sfnt_LangTag): New declaration. - - * src/base/ftsnames.c (FT_Get_Sfnt_LangTag): New function. - - * docs/CHANGES: Updated. - -2017-01-26 Werner Lemberg <wl@gnu.org> - - [sfnt] Support `name' table format 1. - - * include/freetype/internal/tttypes.h (TT_LangTagRec): New - structure. - (TT_NameTableRec): Add fields `numLangTagRecords' and `langTags'. - - * src/sfnt/ttload.c (tt_face_load_name): Add support for language - tags. - Reduce array size of name strings in case of invalid entries. - (tt_face_free_name): Updated. - - * docs/CHANGES: Updated. - -2017-01-25 Werner Lemberg <wl@gnu.org> - - [sfnt] s/TT_NameEntry/TT_Name/. - - * include/freetype/internal/tttypes.h (TT_NameEntryRec): Renamed - to... - (TT_NameRec): This. - (TT_NameTableRec): Updated. - - * src/base/ftsnames.c (FT_Get_Sfnt_Name): Updated. - - * src/sfnt/sfdriver.c (sfnt_get_ps_name): Updated. - - * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, - tt_name_entry_ascii_from_other): Renamed to... - (tt_name_ascii_from_utf16, tt_name_entry_ascii_from_other): This, - respectively. - (TT_NameEntry_ConvertFunc): Renamed to... - (TT_Name_ConvertFunc): This. - (tt_face_get_name): Updated. - - * src/sfnt/ttload.c (tt_face_load_name, tt_face_free_name): - Updated. - -2017-01-24 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix Postscript name service for symbol fonts. - - * src/sfnt/sfdriver.c (sfnt_get_ps_name): Accept PID/EID=3/0 - entries also. - -2017-01-24 Werner Lemberg <wl@gnu.org> - - [truetype] For OpenType 1.7: s/preferred/typographic/ (sub)family. - - * include/freetype/ftsnames.h - (FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY, - FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY): New macros. - (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY, - FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Deprecated. - - * include/freetype/ttnameid.h (TT_NAME_ID_TYPOGRAPHIC_FAMILY, - TT_NAME_ID_TYPOGRAPHIC_SUBFAMILY): New macros. - (TT_NAME_ID_PREFERRED_FAMILY, TT_NAME_ID_PREFERRED_SUBFAMILY): - Deprecated. - - * src/sfnt/sfobjs.c (sfnt_load_face): Updated. - - * docs/CHANGES: Updated. - -2017-01-23 Werner Lemberg <wl@gnu.org> - - [base] Add `FT_Set_Default_Properties' (#49187). - - * include/freetype/ftmodapi.h: Add declaration. - - * src/base/ftinit.c (ft_set_default_properties): Renamed to... - (FT_Set_Default_Properties): ... this. - (FT_Init_FreeType): Updated. - - * docs/CHANGES: Updated. - -2017-01-23 Werner Lemberg <wl@gnu.org> - - [truetype] Minor updates for OpenType 1.8.1. - - * src/truetype/ttgxvar.h (GX_MVarTable): `axisCount' has been - removed from the specification; it is now reserved. - - * src/truetype/ttgxvar.c (ft_var_load_mvar): Updated. - (GX_FVar_Head): Remove `countSizePairs'; the corresponding data - field in the `MVAR' table is now reserved. - (fvar_fields): Updated. - -2017-01-23 Werner Lemberg <wl@gnu.org> - - [truetype] Avoid segfault for invalid variation data. - - * src/truetype/ttgxvar.c (ft_var_load_item_variation_store): Assure - `itemCount' is not zero. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=441 - -2017-01-20 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (TT_RunIns): Adjust loop detector limits. - -2017-01-17 Werner Lemberg <wl@gnu.org> - - * include/freetype/ttnameid.h: Updated to OpenType 1.8.1. - - (TT_APPLE_ID_FULL_UNICODE): New macro. - - (TT_MS_LANGID_BOSNIAN_BOSNIA_HERZ_CYRILLIC, - TT_MS_LANGID_UPPER_SORBIAN_GERMANY, - TT_MS_LANGID_LOWER_SORBIAN_GERMANY, TT_MS_LANGID_IRISH_IRELAND, - TT_MS_LANGID_INUKTITUT_CANADA_LATIN, TT_MS_LANGID_BASHKIR_RUSSIA, - TT_MS_LANGID_LUXEMBOURGISH_LUXEMBOURG, - TT_MS_LANGID_GREENLANDIC_GREENLAND, TT_MS_LANGID_MAPUDUNGUN_CHILE, - TT_MS_LANGID_MOHAWK_MOHAWK, TT_MS_LANGID_BRETON_FRANCE, - TT_MS_LANGID_OCCITAN_FRANCE, TT_MS_LANGID_CORSICAN_FRANCE, - TT_MS_LANGID_ALSATIAN_FRANCE, TT_MS_LANGID_YAKUT_RUSSIA, - TT_MS_LANGID_KICHE_GUATEMALA, TT_MS_LANGID_KINYARWANDA_RWANDA, - TT_MS_LANGID_WOLOF_SENEGAL, TT_MS_LANGID_DARI_AFGHANISTAN): New - macros. - - (TT_MS_LANGID_SERBIAN_BOSNIA_HERZ_CYRILLIC): Fix value. - - (TT_MS_LANGID_GERMAN_LIECHTENSTEIN, TT_MS_LANGID_CATALAN_CATALAN, - TT_MS_LANGID_CHINESE_MACAO, TT_MS_LANGID_SPANISH_SPAIN_MODERN_SORT, - TT_MS_LANGID_KOREAN_KOREA, TT_MS_LANGID_ROMANSH_SWITZERLAND, - TT_MS_LANGID_SLOVENIAN_SLOVENIA, TT_MS_LANGID_BASQUE_BASQUE, - TT_MS_LANGID_SETSWANA_SOUTH_AFRICA, - TT_MS_LANGID_ISIXHOSA_SOUTH_AFRICA, - TT_MS_LANGID_ISIZULU_SOUTH_AFRICA, TT_MS_LANGID_KAZAKH_KAZAKHSTAN, - TT_MS_LANGID_KYRGYZ_KYRGYZSTAN, TT_MS_LANGID_KISWAHILI_KENYA, - TT_MS_LANGID_TATAR_RUSSIA, TT_MS_LANGID_ODIA_INDIA, - TT_MS_LANGID_MONGOLIAN_PRC, TT_MS_LANGID_TIBETAN_PRC, - TT_MS_LANGID_WELSH_UNITED_KINGDOM, TT_MS_LANGID_GALICIAN_GALICIAN, - TT_MS_LANGID_SINHALA_SRI_LANKA, TT_MS_LANGID_TAMAZIGHT_ALGERIA, - TT_MS_LANGID_SESOTHO_SA_LEBOA_SOUTH_AFRICA, TT_MS_LANGID_YI_PRC, - TT_MS_LANGID_UIGHUR_PRC): New aliases. - - Remove commented out code. - - (TT_NAME_ID_LIGHT_BACKGROUND, TT_NAME_ID_DARK_BACKGROUND, - TT_NAME_ID_VARIATIONS_PREFIX): New macros. - - (HAVE_LIMIT_ON_IDENTS): Remove macro (which was useless since many - years), use guarded long macros by default and define short versions - as aliases for the long ones. - -2017-01-15 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (tt_apply_var): Handle underline parameters - also. - -2017-01-11 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (ft_open_face_internal): Improve tracing. - -2017-01-11 Werner Lemberg <wl@gnu.org> - - [truetype] Actually use metrics variation service. - - * src/base/ftmm.c: Include FT_SERVICE_METRICS_VARIATIONS_H. - (ft_face_get_mvar_service): New auxiliary function to look up - metrics variation service. - (FT_Set_Var_Design_Coordinates, FT_Set_MM_Blend_Coordinates, - FT_Set_Var_Blend_Coordinates): Call metrics variation service. - - * src/truetype/ttobjs.c (tt_face_init): Use metrics variations for - named instances. - -2017-01-11 Werner Lemberg <wl@gnu.org> - - [truetype] Provide metrics variation service. - - * include/freetype/internal/services/svmetric.h - (FT_Metrics_Adjust_Func): Reduce number of necessary parameters. - - * src/truetype/ttgxvar.c: Include FT_LIST_H. - (tt_size_reset_iterator): New auxiliary function for... - (tt_apply_var): New function. - - * src/truetype/ttgxvar.h: Updated. - - * src/truetype/ttdriver.c (tt_service_metrics_variations): Add - `tt_apply_mvar'. - - * include/freetype/internal/ftserv.h (FT_ServiceCache): Add metrics - variation service. - -2017-01-11 Werner Lemberg <wl@gnu.org> - - [truetype] Parse `MVAR' table. - - * src/truetype/ttgxvar.h (MVAR_TAG_XXX): New macros for MVAR tags. - (GX_Value, GX_MVarTable): New structures. - (GX_Blend): Add it. - - * src/truetype/ttgxvar.c (GX_VALUE_SIZE, GX_VALUE_CASE, - GX_GASP_CASE): New macros. - (ft_var_get_value_pointer): New auxiliary function to get a pointer - to a value from various SFNT tables already stored in `TT_Face'. - (ft_var_load_mvar): New function. - (TT_Get_MM_Var): Call it. - (tt_done_blend): Updated. - -2017-01-11 Werner Lemberg <wl@gnu.org> - - [truetype] More preparations for MVAR support. - - * src/truetype/ttobjs.c (tt_size_reset): Add argument to make - function only recompute ascender, descender, and height. - - * src/truetype/ttobjs.h: Updated. - - * src/truetype/ttdriver.c (tt_size_select, tt_size_request): - Updated. - -2017-01-09 Werner Lemberg <wl@gnu.org> - - [pcf] Disable long family names by default. - - * include/freetype/config/ftoption.h - (PCF_CONFIG_OPTION_LONG_FAMILY_NAMES): Comment out. - -2017-01-09 Werner Lemberg <wl@gnu.org> - - [pcf] Make long family names configurable. - - The change from 2016-09-29 was too radical (except for people using - the openSuSE GNU/Linux distribution). To ameliorate the situation, - PCF_CONFIG_OPTION_LONG_FAMILY_NAMES gets introduced which controls - the feature; if set, a new PCF property option - `no-long-family-names' can be used to switch this feature off. - - * include/freetype/config/ftoption.h, devel/ftoption.h - (PCF_CONFIG_OPTION_LONG_FAMILY_NAMES): New option. - - * include/freetype/ftpcfdrv.h: New header file (only containing - comments currently, used for building the documentation). - - * include/freetype/config/ftheader.h (FT_PCF_DRIVER_H): New macro. - - * src/pcf/pcf.h (PCF_Driver): Add `no_long_family_names' field. - - * src/pcf/pcfdrivr.c: Include FT_SERVICE_PROPERTIES_H and - FT_PCF_DRIVER_H. - (pcf_property_set, pcf_property_get): New functions. - (pcf_service_properties): New service. - (pcf_services): Updated. - (pcf_driver_init) [PCF_CONFIG_OPTION_LONG_FAMILY_NAMES]: Handle - `no_long_family_names'. - - * src/pcf/pcfread.c (pcf_load_font): Handle `no_long_family_names' - and PCF_CONFIG_OPTION_LONG_FAMILY_NAMES. - - * docs/CHANGES: Updated. - -2017-01-09 Werner Lemberg <wl@gnu.org> - - [pcf] Introduce a driver structure. - - To be filled later on with something useful. - - * src/pcf/pcf.h (PCF_Driver): New structure. - - * src/pcf/pcfdrivr.c (pcf_driver_init, pcf_driver_done): New dummy - functions. - (pcf_driver_class): Updated. - -2017-01-08 Werner Lemberg <wl@gnu.org> - - [truetype] Again some GX code shuffling. - - We need this later on for MVAR also. - - * src/truetype/ttgxvar.c (tt_hadvance_adjust): Split off computing - an item store variation delta into... - (ft_var_get_item_delta): ...new function. - -2017-01-08 Werner Lemberg <wl@gnu.org> - - [truetype] Adjust font variation flags for MVAR. - - * include/freetype/internal/tttypes.h (TT_FACE_FLAG_VAR_XXX): - Remove all flags related to MVAR; replace it with... - (TT_FACE_FLAG_VAR_MVAR): ...this new macro. - (TT_Face): Remove `mvar_support' field (which was still unused). - -2017-01-06 Werner Lemberg <wl@gnu.org> - - [truetype] More GX code shuffling. - - We need this later on for MVAR also. - - * src/truetype/ttgxvar.c (tt_done_blend): Split off handling of item - variation store into... - (ft_var_done_item_variation_store): ...new function. - -2017-01-06 Werner Lemberg <wl@gnu.org> - - [truetype] More generalization of GX stuff. - - We need this later on for MVAR also. - - * src/truetype/ttgxvar.c (ft_var_load_delta_set_index_mapping): Add - parameters for delta-set index mapping and item variation store. - (ft_var_load_item_variation_store): Add parameter for item variation - store. - s/hvarData/varData/. - Move allocation of `hvar_table' to... - (ft_var_load_hvar): ...this function. - Updated. - -2017-01-06 Werner Lemberg <wl@gnu.org> - - [truetype] Some GX structure renames for generalization. - - We need this later on for MVAR also. - - * src/truetype/ttgxvar.h (GX_HVarData): Renamed to... - (GX_ItemVarData): ...this. - (GX_HVarRegion): Renamed to... - (GX_VarRegion): ...this. - (GX_HVStore): Renamed to... - (GX_ItemVarStore): ...this. - (GX_WidthMap): Renamed to... - (GX_DeltaSetIdxMap): ...this. - - (GX_HVarTable): Updated. - - * src/truetype/ttgxvar.c: Updated. - -2017-01-06 Werner Lemberg <wl@gnu.org> - - [truetype] Code shuffling. - - * src/truetype/ttgxvar.c (ft_var_load_hvar): Split off loading of - item variation store and delta set index mapping into... - (ft_var_load_item_variation_store, - ft_var_load_delta_set_index_mapping): ...new functions. - -2017-01-06 Werner Lemberg <wl@gnu.org> - - [truetype] Add HVAR access without advance width map. - - * src/truetype/ttgxvar.c (ft_var_load_hvar): Handle case where - `offsetToAdvanceWidthMapping' is zero. - (tt_hadvance_adjust): Implement direct deltaSet access by glyph - index. - -2017-01-06 Werner Lemberg <wl@gnu.org> - - [pcf] Revise driver. - - This commit improves tracing and handling of malformed fonts. In - particular, the changes to `pcf_get_properties' fix - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=379 - - * src/pcf/pcfread.c (tableNames): Use long names for better - readability. - (pcf_read_TOC): Allow at most 9 tables. - (pcf_get_properties): Allow at most 256 properties. - Limit strings array length to 256 * (65536 + 1) bytes. - Better tracing. - (pcf_get_metric): Trace metric data. - (pcf_get_metrics): Allow at most 65536 metrics. - Fix comparison of `metrics->ascent' and `metrics->descent' to avoid - potential overflow. - Better tracing. - (pcf_get_bitmaps): Allow at most 65536 bitmaps. - Better tracing. - (pcf_get_encodings, pcf_get_accel): Better tracing. - - * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Don't trace `format' details. - These are now shown by `pcf_get_bitmaps'. - -2017-01-04 Werner Lemberg <wl@gnu.org> - - * src/pcf/pcfdrivr.c (PCF_Face_Init): Trace compression format. - -2017-01-04 Werner Lemberg <wl@gnu.org> - - [cff] More consistency checks for pure CFFs. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=378 - - * src/cff/cffload.c (cff_font_load): Check element number and size - of Name and Top DICT indices. - -2017-01-04 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Minor tracing improvement. - - * src/cff/cffobjs.c (cff_face_init), src/truetype/ttobjs.c - (tt_face_init): Indent first tracing message from SFNT driver. - -2017-01-03 Werner Lemberg <wl@gnu.org> - - [truetype] Various minor fixes. - - * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check instruction - size only if we do native hinting. - (TT_Load_Glyph): Trace returned error code. - - * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Trace - returned error code. - (tt_size_ready_bytecode): Don't run `prep' table if `fpgm' table is - invalid. - -2017-01-03 Werner Lemberg <wl@gnu.org> - - [sfnt] Don't fail if PCLT, EBLC (and similar tables) are invalid. - - These tables are optional. - - * src/sfnt/sfobjs.c (sfnt_load_face): Implement it. - -2017-01-03 Werner Lemberg <wl@gnu.org> - - * src/cff/cffparse.c (cff_parse_num): Simplify. - -2017-01-03 Werner Lemberg <wl@gnu.org> - - Various fixes for clang's undefined behaviour sanitizer. - - * src/cff/cffload.c (FT_fdot14ToFixed): Fix casting. - (cff_blend_doBlend): Don't left-shift negative numbers. - Handle 5-byte numbers byte by byte to avoid alignment issues. - - * src/cff/cffparse.c (cff_parse_num): Handle 5-byte numbers byte by - byte to avoid alignment issues. - - * src/cid/cidload (cid_read_subrs): Do nothing if we don't have any - subrs. - - * src/psaux/t1decode.c (t1_decode_parse_charstring): Fix tracing. - - * src/tools/glnames.py (main): Put `DEFINE_PSTABLES' guard around - definition of `ft_get_adobe_glyph_index'. - - * src/psnames/pstables.h: Regenerated. - - * src/psnames/psmodule.c: Include `pstables.h' twice to get both - declaration and definition. - - * src/truetype/ttgxvar.c (FT_fdot14ToFixed, FT_intToFixed): Fix - casting. - -2017-01-01 Werner Lemberg <wl@gnu.org> - - [cff] Handle multiple `blend' operators in a row correctly. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=368 - - * src/cff/cffload.c (cff_blend_doBlend): Adjust `parser->stack' - pointers into `subFont->blend_stack' after reallocation. - -2017-01-01 Werner Lemberg <wl@gnu.org> - - [sfnt] Return correct number of named instances for TTCs. - - Without this patch, requesting information for face index N returned - the data for face index N+1 (or index 0). - - * src/sfnt/sfobjs.c (sfnt_init_face): Correctly adjust `face_index' - for negative `face_instance_index' values. - -2016-12-31 Werner Lemberg <wl@gnu.org> - - */*: Use hex numbers for errors in tracing messages. - -2016-12-31 Werner Lemberg <wl@gnu.org> - - [truetype] Check axis count in HVAR table. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=362 - - * src/truetype/ttgxvar.c (ft_var_load_hvar): Check axis count. - (ft_var_load_avar): Fix tracing message. - - ----------------------------------------------------------------------------- - -Copyright (C) 2016-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: diff --git a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.29 b/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.29 deleted file mode 100644 index e668b4f00b4..00000000000 --- a/Build/source/libs/freetype2/freetype-src/docs/oldlogs/ChangeLog.29 +++ /dev/null @@ -1,2352 +0,0 @@ -2018-05-01 Werner Lemberg <wl@gnu.org> - - * Version 2.9.1 released. - ========================= - - - Tag sources with `VER-2-9-1'. - - * docs/VERSION.TXT: Add entry for version 2.9.1. - * docs/CHANGES: Updated. - - * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, - src/base/ftver.rc, builds/windows/vc2005/index.html, - builds/windows/vc2008/freetype.vcproj, - builds/windows/vc2008/index.html, - builds/windows/vc2010/freetype.vcxproj, - builds/windows/vc2010/index.html, - builds/windows/visualc/freetype.dsp, - builds/windows/visualc/freetype.vcproj, - builds/windows/visualc/index.html, - builds/windows/visualce/freetype.dsp, - builds/windows/visualce/freetype.vcproj, - builds/windows/visualce/index.html, - builds/wince/vc2005-ce/freetype.vcproj, - builds/wince/vc2005-ce/index.html, - builds/wince/vc2008-ce/freetype.vcproj, - builds/wince/vc2008-ce/index.html: s/2.9/2.9.1/, s/29/291/. - - * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. - - * builds/unix/configure.raw (version_info): Set to 22:1:16. - * CMakeLists.txt (VERSION_PATCH): Set to 1. - - * include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER. - -2018-04-26 Werner Lemberg <wl@gnu.org> - - Another fix for handling invalid format 2 cmaps. - - Sigh. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8003 - - * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid - an endless loop. - -2018-04-24 Ben Wagner <bungeman@google.com> - - [base] Avoid undefined behaviour in lcd filtering code (#53727). - - * src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy): - Ensure `height > 0'. - -2018-04-22 Werner Lemberg <wl@gnu.org> - - * src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing. - -2018-04-22 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Fix bitmap emboldening. - - Bug introduced after release 2.8. - - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use - `FT_QALLOC_MULT', which doesn't zero out the buffer. Adjust the - bitmap copying code to take care of this fact. - -2018-04-22 Werner Lemberg <wl@gnu.org> - - Another fix for handling invalid format 2 cmaps. - - The previous commit was incomplete. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7928 - - * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid - an endless loop. - -2018-04-19 Werner Lemberg <wl@gnu.org - - [autofit] Add support for Georgian Mtavruli characters. - - This will be part of the forthcoming Unicode 11.0. - - * src/autofit/afblue.dat: Add blue zone data for Mtavruli. - * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. - - * src/autofit/afscript.h: Add Mtavruli standard character. - -2018-04-18 Werner Lemberg <wl@gnu.org> - - Fix handling of invalid format 2 cmaps. - - The problem was introduced after the last release. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7828 - - * src/sfnt/ttcmap.c (tt_cmap2_char_next): Avoid endless loop. - -2018-04-17 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflow issues. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7739 - - * src/truetype/ttinterp.c (Ins_CEILING): Use FT_PIX_CEIL_LONG. - -2018-04-16 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflow issues. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7718 - - * src/truetype/ttinterp.c (Ins_MIRP): Use ADD_LONG. - -2018-04-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - [build] Use `info' function of make 3.81. - - * configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU, - docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements. - - * builds/detect.mk (std_setup): Replace `echo' with `info'. - (dos_setup): Removed. - * builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk, - builds/windows/detect.mk, builds/os2/detect.mk: Updated. - * builds/newline: No longer needed. - -2018-04-15 Werner Lemberg <wl@gnu.org> - - [truetype]: Limit `SLOOP' bytecode argument to 16 bits. - - This fixes - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7707 - - * src/truetype/ttinterp.c (Ins_SLOOP): Do it. - -2018-04-14 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflow issues. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7652 - - * src/truetype/ttinterp.c (Ins_MDAP): Use SUB_LONG. - -2018-04-14 Werner Lemberg <wl@gnu.org> - - [autofit] Update to Unicode 11.0.0. - - But no support new scripts (volunteers welcomed). - - * src/autofit/afranges.c (af_arab_nonbase_uniranges, - af_beng_nonbase_uniranges, af_cakm_nonbase_uniranges, - af_deva_nonbase_uniranges, af_geor_uniranges, - af_gujr_nonbase_uniranges, af_mlym_nonbase_uniranges, - af_nkoo_nonbase_uniranges, af_telu_nonbase_uniranges, - af_hani_uniranges): Add new data. - -2018-04-10 Nikolaus Waxweiler <madigens@gmail.com> - - * CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive - modernization measures. - - This brings up the minimum required CMake version to 2.8.12. - - The installation paths follow the GNU defaults now, e.g. installing on a - 64 bit host will place binaries into the lib64/ folder on e.g. Fedora. - - Symbols are hidden by default (e.g. `-fvisibility=hidden' on GCC). - - CMake will no longer look for a C++ compiler. - - Library and .so version now match the Autotools build. - - Comments in the build file and informational messages now use platform - agnostic example commands. - - ftoption.h and ftconfig.h are written directly without a redundant `-new' - copy. - - External dependencies are expressed as option()s and will turn up as such - in cmake-gui. - - Internal: Properties such as dependencies and include directories are now - privately set on the freetype library instead of globally. - - The CPack definitions have been cleaned up, the `make dist' has been - removed. Source packages generated with CPack don't contain Autotools - files and aren't used by the maintainers anyway. - - On Windows, src/base/ftver.rc is compiled to decorate the library with - version and copyright information. - - A pkg-config file is now generated and installed. - -2018-04-09 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflow issues. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7453 - - * src/truetype/ttinterp.c (Round_Super, Round_Super_45): Use - ADD_LONG and SUB_LONG. - -2018-04-06 Alexei Podtelezhnikov <apodtele@gmail.com> - - [windows, wince] Clean up legacy project files. - - * builds/wince/vc2005-ce/freetype.vcproj, - builds/wince/vc2008-ce/freetype.vcproj, - builds/windows/vc2005/freetype.vcproj, - builds/windows/vc2008/freetype.vcproj, - builds/windows/visualce/freetype.vcproj, - builds/windows/visualce/freetype.dsp, - builds/windows/visualc/freetype.vcproj, - builds/windows/visualc/freetype.dsp: Remove per-file compile flags. - -2018-04-04 Werner Lemberg <wl@gnu.org> - - [cff, type1] Sanitize `BlueFuzz' and `BlueShift'. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7371 - - * src/cff/cffload.c (cff_load_private_dict): Sanitize - `priv->blue_shift' and `priv->blue_fuzz' to avoid overflows later - on. - - * src/type1/t1load.c (T1_Open_Face): Ditto. - -2018-04-04 Ben Wagner <bungeman@google.com> - - * src/truetype/ttobjs.c (trick_names): Add 3 tricky fonts (#53554), - `DFHei-Md-HK-BF', `DFKaiShu-Md-HK-BF' and `DFMing-Bd-HK-BF'. - (tt_check_trickyness_sfnt_ids): Add checksums for 3 tricky fonts - in above. - -2018-04-01 Werner Lemberg <wl@gnu.org> - - * builds/toplevel.mk (work): Use $(SEP). - - This fixes the `make refdoc' using Cygwin: $(CAT) is `type' on this - platform, and this program only understands backslashes in paths. - - Reported by Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>. - -2018-03-30 Werner Lemberg <wl@gnu.org> - - [truetype] Fix memory leak (only if tracing is on). - - * src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix - it. - -2018-03-23 Ben Wagner <bungeman@google.com> - - [sfnt] Correctly handle missing bitmaps in sbix format (#53404). - - * src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value. - -2018-03-23 Ben Wagner <bungeman@google.com> - - [truetype] Fix advance of empty glyphs in bitmap fonts (#53393). - - * src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics - for empty bitmaps. - -2018-03-22 Werner Lemberg <wl@gnu.org> - - Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415). - - builds/amiga/makefile, builds/amiga/makefile.os4, - builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt, - builds/mac/FreeType.m68k_far.make.txt, - builds/mac/FreeType.ppc_carbon.make.txt, - builds/mac/FreeType.ppc_classic.make.txt, - builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj, - builds/wince/vc2008-ce/freetype.vcproj, - builds/windows/vc2005/freetype.vcproj, - builds/windows/vc2008/freetype.vcproj, - builds/windows/vc2010/freetype.vcxproj, - builds/windows/vc2010/freetype.vcxproj.filters, - builds/windows/visualc/freetype.dsp, - builds/windows/visualc/freetype.vcproj, - builds/windows/visualce/freetype.dsp, - builds/windows/visualce/freetype.vcproj, vms_make.com: Do it. - -2018-03-13 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric - overflow. - -2018-03-13 Werner Lemberg <wl@gnu.org> - - Fix cmap format 2 handling (#53320). - - The patch introduced for #52646 was not correct. - - * src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition. - -2018-03-10 Nikolaus Waxweiler <madigens@gmail.com> - - * CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05. - -2018-03-09 Chun-wei Fan <fanc999@yahoo.com.tw> - - * CMakeLists.txt [win32]: Allow MSVC DLL builds (#53287). - - Do not limit DLL builds to MinGW, since we already have - `__declspec(dllexport)' directives in `ftconfig.h'. - Also suppress more warnings for POSIX functions. - -2018-03-08 Hugh McMaster <hugh.mcmaster@outlook.com> - - Make installation of `freetype-config' optional (#53093). - - * builds/unix/configure.raw: Add option `--enable-freetype-config' - and set `INSTALL_FT2_CONFIG'. - * builds/unix/unix-def.in (INSTALL_FT2_CONFIG): Define. - * builds/unix/install.mk (install): Handle it. - -2018-03-05 Werner Lemberg <wl@gnu.org> - - Make `ftlcdfil.c' part of the `base' module. - - `ftobjs.c' needs `ft_lcd_padding'. - - Problem reported by duhuanpeng <548708880@qq.com>. - - * modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'. - - * src/base/ftbase.c: Include `ftlcdfil.c'. - * src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'. - * src/base/Jamfile (_sources): Adjusted. - - * docs/INSTALL.ANY: Updated. - -2018-03-05 Werner Lemberg <wl@gnu.org> - - Make `ftfntfmt.c' part of the `base' module. - - `ftobjs.c' needs `FT_Get_Font_Format'. - - Problem reported by duhuanpeng <548708880@qq.com>. - - * modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'. - - * src/base/ftbase.c: Include `ftfntfmt.c'. - * src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'. - * src/base/Jamfile (_sources): Adjusted. - - * docs/INSTALL.ANY: Updated. - -2018-03-01 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments. - -2018-02-23 Werner Lemberg <wl@gnu.org> - - * builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer. - - Problem reported by Alan Coopersmith <alan.coopersmith@oracle.com>. - -2018-02-17 Werner Lemberg <wl@gnu.org> - - [sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154). - -2018-02-06 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflow issues. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6027 - - * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIAP, Ins_MIRP): Use - SUB_LONG; avoid FT_ABS. - -2018-02-04 Alexei Podtelezhnikov <apodtele@gmail.com> - - [unix] Use -fvisibility=hidden. - - It is now widely recommended that ELF shared libraries hide symbols - except those with explicit __attribute__((visibility("default"))). - This is supported by all major compilers and should rather be an - option in libtool. - - * builds/unix/configure.raw: Add -fvisibility=hidden to CFLAGS. - * builds/unix/ftconfig.in, builds/vms/ftconfig.h, - include/freetype/config/ftconfig.h (FT_EXPORT): Use visibility - attribute. - -2018-01-27 Werner Lemberg <wl@gnu.org> - - [truetype] Better protection against invalid VF data. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739 - - Bug introduced in commit 08cd62deedefe217f2ea50e392923ce8b5bc7ac7. - - * src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize - `normalizedcoords'. - -2018-01-27 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736 - -2018-01-27 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (tt_set_mm_blend): Minor. - -2018-01-27 Werner Lemberg <wl@gnu.org> - - [truetype] Better trace VF instances. - - * src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number - of coordinates. - (TT_Get_MM_Var): Trace instance indices names. - (TT_Set_Var_Design): Updated. - -2018-01-27 Werner Lemberg <wl@gnu.org> - - [truetype] Beautify tracing of VF axis records. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a - table-like manner. - -2018-01-26 Ben Wagner <bungeman@google.com> - - [truetype] Fix multiple calls of `FT_Get_MM_Var' (#52955). - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Set - `face->blend->num_axis' in case we have to initialize the - `face->blend'. - -2018-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> - - [apinames] Anonymous version map for GNU linker. - - * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3. - (OutputFormat): Add `OUTPUT_GNU_VERMAP'. - (names_dump): Handle it. - (usage): Updated. - (main): Handle new command line flag `-wL'. - -2018-01-21 Alexei Podtelezhnikov <apodtele@gmail.com> - - [unix] Call libtool to clean up. - - * builds/unix/install.mk (clean_project_unix, distclean_project_unix): - Use libtool. - * builds/freetype.mk: Minor. - -2018-01-18 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftver.rc: Fix mingw-w64 compilation. - -2018-01-18 Alexei Podtelezhnikov <apodtele@gmail.com> - - [build] Enable VERSIONINFO resource for Cygwin/MinGW. - - * builds/unix/configure.raw: Check for resource compiler. - * builds/unix/unix-cc.in: Conditionally set up resource compiler. - * builds/freetype.mk: Add conditional rule for `ftver.rc'. - * src/base/ftver.rc: Copyright notice and year update. - -2018-01-18 Alexei Podtelezhnikov <apodtele@gmail.com> - - [build] Move VERSIONINFO resource. - - * builds/windows/vc2010/freetype.vcxproj: Updated. - * builds/windows/ftver.rc: Move file from here... - * src/base/ftver.rc: ... to here. - -2018-01-12 Alexei Podtelezhnikov <apodtele@gmail.com> - - [build] Expand dllexport/dllimport to Cygwin/MinGW. - - * include/freetype/config/ftconfig.h: Respect DLL_EXPORT, - s/_MSC_VER/_WIN32/. - * builds/unix/ftconfig.in: Replicate here. - * builds/vms/ftconfig.h: Replicate here. - -2018-01-12 Alexei Podtelezhnikov <apodtele@gmail.com> - - [build] Improve and document MSVC build. - - * include/freetype/config/ftconfig.h: Guard dllexport/dllimport - attributes with _DLL and FT2_DLLIMPORT. - * builds/windows/vc2010/index.html: Update documentation. - -2018-01-10 Steve Robinson <ssrobins@gmail.com> - - * CMakeLists.txt [win32]: Suppress warnings for POSIX functions. - -2018-01-10 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Correctly handle Flex features (#52846). - - * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO, - cf2_cmdHMOVETO>: Do not move if doing Flex. - -2018-01-09 Alexei Podtelezhnikov <apodtele@gmail.com> - - * builds/windows/vc2010/freetype.sln: Synchronize with the project. - -2018-01-08 Werner Lemberg <wl@gnu.org> - - * Version 2.9 released. - ======================= - - - Tag sources with `VER-2-9'. - - * docs/VERSION.TXT: Add entry for version 2.9. - - * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, - builds/windows/vc2005/index.html, - builds/windows/vc2008/freetype.vcproj, - builds/windows/vc2008/index.html, - builds/windows/vc2010/freetype.vcxproj, - builds/windows/vc2010/index.html, - builds/windows/visualc/freetype.dsp, - builds/windows/visualc/freetype.vcproj, - builds/windows/visualc/index.html, - builds/windows/visualce/freetype.dsp, - builds/windows/visualce/freetype.vcproj, - builds/windows/visualce/index.html, - builds/windows/ftver.rc, - builds/wince/vc2005-ce/freetype.vcproj, - builds/wince/vc2005-ce/index.html, - builds/wince/vc2008-ce/freetype.vcproj, - builds/wince/vc2008-ce/index.html: s/2.8.1/2.9/, s/281/29/. - - * include/freetype/freetype.h (FREETYPE_MINOR): Set to 9. - (FREETYPE_PATCH): Set to 0. - - * builds/unix/configure.raw (version_info): Set to 22:0:16. - * CMakeLists.txt (VERSION_PATCH): Set to 0. - -2018-01-07 Werner Lemberg <wl@gnu.org> - - Add check for librt, needed for `ftbench' (#52824). - - * builds/unix/configure.raw (LIB_CLOCK_GETTIME): Define; this will - hold `-lrt' if necessary. - - * builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable. - -2018-01-07 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Fix Type 1 glyphs with too many stem hints. - - According to the CFF specification, charstrings can have up to 96 stem - hints. Due to hint replacement routines in Type 1 charstrings, some - glyphs are rejected by the Adobe engine, which implements the above - limit. This fix turns off hinting for such glyphs. - - * src/psaux/pshints.c (cf2_hintmap_build): Reset the error from calling - `cf2_hintmask_setAll' on a problematic Type 1 charstring and turn off - hinting. - -2018-01-06 Werner Lemberg <wl@gnu.org> - - Add `FT_Done_MM_Var'. - - This is necessary in case the application's memory routines differ - from FreeType. A typical example is a Python application on Windows - that calls FreeType compiled as a DLL via the `ctypes' interface. - - * include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare - and define. - - * docs/CHANGES: Updated. - -2018-01-03 Werner Lemberg <wl@gnu.org> - - [truetype] Round offsets of glyph components only if hinting is on. - - * src/truetype/ttgload.c (TT_Process_Composite_Component): Implement - it. - -2018-01-03 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code. - - This is a better fix than the previous commit, which is now - reverted. - -2018-01-03 Alexei Podtelezhnikov <apodtele@gmail.com> - - Move internal LCD-related declarations. - - * include/freetype/ftlcdfil.h (ft_lcd_padding, ft_lcd_filter_fir): - Move from here... - * include/freetype/internal/ftobjs.h: ... to here. - -2018-01-03 Alexei Podtelezhnikov <apodtele@gmail.com> - - * include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF) - [_MSC_VER]: Limit Visual C++ attributes. - -2018-01-03 Werner Lemberg <wl@gnu.org> - - [truetype] Make blend/design coordinate round-tripping work. - - Behdad reported that setting blend coordinates, then getting design - coordinates did incorrectly return the default instance's - coordinates. - - * src/truetype/ttgxvar.c (tt_set_mm_blend): Fix it. - -2017-12-31 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix endless loop. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4838 - -2017-12-31 Werner Lemberg <wl@gnu.org> - - Synchronize other Windows project files. - - * builds/windows/*: Add missing files. - -2017-12-31 Werner Lemberg <wl@gnu.org> - - Update Visual C 2010 project files. - - Problem reported by Hin-Tak. - - * builds/windows/vc2010/freetype.vcxproj: Add files `ftbdf.c' and - `ftcid.c'. - Sort entries. - * builds/windows/vc2010/freetype.vcxproj.filter: Ditto. - Fix members of `FT_MODULE' group. - -2017-12-30 Werner Lemberg <wl@gnu.org> - - * builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file. - -2017-12-28 Werner Lemberg <wl@gnu.org> - - * builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file. - - Reported by Nikolaus. - -2017-12-27 Werner Lemberg <wl@gnu.org> - - Fix compiler warnings. - - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and - `new_pitch' unsigned. - - * src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H. - -2017-12-27 Werner Lemberg <wl@gnu.org> - - Fixes for `make multi'. - - * include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'. - (ps_property_get): Harmonize declaration with corresponding - function typedef. - - * include/freety[e/internal/fttrace.h: Add `trace_psprops'. - - * src/base/ftpsprop.c: Include necessary header files. - (FT_COMPONENT): Define. - (ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'. - (ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'. - Harmonize declaration with corresponding function typedef. - -2017-12-27 Werner Lemberg <wl@gnu.org> - - Provide support for intra-module callback functions. - - This is needed especially for `make multi' with C++. - - * include/freetype/config/ftconfig.h (FT_BASE_CALLBACK, - FT_BASE_CALLBACK_DEF): New macros. - -2017-12-25 Ewald Hew <ewaldhew@gmail.com> - - Move PostScript drivers' property handlers to `base'. - - This reduces the amount of duplicated code across PostScript - drivers. - - * src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c - ({cff,cid,t1}_property_{get,set}): Moved to... - * include/freetype/internal/ftpsprop.h: ...this new file. - (ps_property_{get,set}): New functions to replace moved ones. - - * src/base/ftpsprop.c: New file that implements above functions. - - * include/freetype/internal/internal.h - (FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro. - - * src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c: - Updated. - - * src/base/Jamfile, src/base/rules.mk (BASE_SRC), src/base/ftbase.c: - Updated. - -2017-12-20 Werner Lemberg <wl@gnu.org> - - Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new. - - We exit early if the current design or blend coordinates are - identical to the new ones. - - * src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design): - Implement it, returning internal error code -1 if there will be no - variation change. - - * src/type1/t1load.c (t1_set_mm_blend): Ditto. - - * src/base/ftmm.c (FT_Set_Var_Design_Coordinates, - FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated. - -2017-12-18 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix charmap type 2 iterator (#52646). - - The subsetted demo font of the report that exhibits the bug has a - very unusual type 2 cmap for Unicode(!): It contains only two - sub-headers, one for one-byte characters (covering the range 0x20 to - 0xFA), and a second one for higher byte 0x01 (just for character - code U+0131). - - Before this commit, the iterator wasn't able to correctly handle a - sub-header for higher byte 0x01. - - * src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix character increment - for outer loop. - -2017-12-18 Matthias Clasen <matthias.clasen@gmail.com> - - [truetype] Fix clamping, minor tracing code beautification. - - * src/truetype/ttgxvar.c (ft_var_to_normalized): Trace number of - design coordinates. - Use clamped value. - -2017-12-18 Werner Lemberg <wl@gnu.org> - - * src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff. - -2017-12-18 Werner Lemberg <wl@gnu.org> - - * src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688). - -2017-12-18 Werner Lemberg <wl@gnu.org> - - [truetype] Fix previous commit. - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle - unhinted phantom points, which must be properly scaled. - -2017-12-18 Werner Lemberg <wl@gnu.org> - - [truetype] Don't apply HVAR and VVAR deltas twice (#52683). - - * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Always adjust - `pp1' to `pp4', except if we have an HVAR and/or VVAR table. - - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Handle - alternative code branch identically w.r.t. presence of an HVAR - and/or VVAR table. - -2017-12-17 Jonathan Kew <jfkthame@gmail.com> - - [truetype] Correctly handle variation font phantom points (#52683). - - * src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix phantom - point indices. - -2017-12-17 Jonathan Kew <jfkthame@gmail.com> - - Fix incorrect advance width scaling (#52683). - - * src/base/ftadvance.c (FT_Get_Advances): Always respect the - FT_LOAD_NO_SCALE flag if present. - -2017-12-16 Alexei Podtelezhnikov <apodtele@gmail.com> - - * builds/windows/vc2010/freetype.vcxproj: AfterBuild copy. - * objs/.gitignore: Ignore almost everything. - -2017-12-11 Werner Lemberg <wl@gnu.org> - - Fix compiler warning (#52640). - - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused - variable. - -2017-12-08 Azzuro <azzuro@team-mediaportal.com> - - * builds/windows/vc2010/freetype.vcxproj: Adjust output directory. - - This allows builds with different configurations in parallel. - -2017-12-08 Werner Lemberg <wl@gnu.org> - - Fix `make setup dos', second try (#52622). - - * builds/detect.mk (dos_setup): Don't use literal `>' character at - all. Mixing the different escaping rules from make, dos, and - windows is too fragile. - -2017-12-08 Werner Lemberg <wl@gnu.org> - - [docmaker] Fix code section parsing. - - Stuff like - - { - <bla> - } - - confused the parser, which incorrectly treated `<bla>' as a markup - tag. - - * src/tools/docmaker/content.py (ContentProcessor::process_content): - Apply `re_markup_tags' only outside of code sections. - -2017-12-08 Werner Lemberg <wl@gnu.org> - - New `ftdriver.h' file, covering all driver modules. - - This reduces redundancy and increases synergy; it also reduces the - number of header files. - - * include/freetype/config/ftheader.h (FT_DRIVER_H): New macro. - (FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H, - FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to - FT_DRIVER_H. - - * include/freetype/ftautoh.h, include/freetype/ftcffdrv.h, - include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h, - include/freetype/ftttdrv.h: Replaced with... - * include/freetype/ftdriver.h: ...this new file. - (FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to... - (FT_HINTING_ADOBE): ... this new macro. - (FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to... - (FT_HINTING_FREETYPE): ... this new macro. - - * src/*/*: Updated accordingly. - -2017-12-08 Werner Lemberg <wl@gnu.org> - - Move `ftdriver.h' to `ftdrv.h'. - - * include/freetype/internal/ftdriver.h: Renamed to... - * include/freetype/internal/ftdrv.h: ... this name. - - * include/freetype/internal/internal.h (FT_INTERNAL_DRIVER_H): - Updated. - -2017-12-08 Werner Lemberg <wl@gnu.org> - - Fix access to uninitalized memory (#52613). - - Also reported as - - https://bugs.chromium.org/p/chromium/issues/detail?id=791317 - - * src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the - bitmap size needs a larger bitmap buffer, assure that the new memory - areas are initialized also. - -2017-12-08 Werner Lemberg <wl@gnu.org> - - Fix `make setup dos' (#52622). - - * builds/detect.mk (dos_setup): Properly escape literal `>' - character. - -2017-12-07 Werner Lemberg <wl@gnu.org> - - Fix C++ compilation. - - * src/psaux/psauxmod.h: Use FT_CALLBACK_TABLE macro where necessary. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix warning. - -2017-12-07 Werner Lemberg <wl@gnu.org> - - Fix `make multi'. - - * include/freetype/internal/fttrace.h: Remove unused tracing macros. - s/pshalgo2/pshalgo/. - Add `trace_cffdecode'. - * src/pshinter/pshalgo.c (FT_COMPONENT): Updated. - - * src/cff/cffload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. - * src/cff/cffobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H and - FT_SERVICE_CFF_TABLE_LOAD_H. - - * src/cid/cidriver.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H. - - * src/psaux/cffdecode.c: Include FT_FREETYPE_H and - FT_INTERNAL_DEBUG_H. - (FT_COMPONENT): Define. - * src/psaux/cffdecode.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H. - * src/psaux/psauxmod.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H. - Declare `cff_builder_funcs' and `ps_builder_funcs'. - * src/psaux/psft.c: Include `psobjs.h' and `cffdecode.h'. - * src/psaux/psobjs.c : Include `psauxmod.h'. - -2017-12-07 Werner Lemberg <wl@gnu.org> - - * include/freetype/config/ftheader.h: Some clean-up. - - This commit removes documentation of deprecated macros and does some - minor streamlining. - -2017-12-06 Werner Lemberg <wl@gnu.org> - - * builds/symbian/bld.inf: Updated. - -2017-12-06 Werner Lemberg <wl@gnu.org> - - New header file `ftparams.h' that collects all parameter tags. - - * include/freetype/config/ftheader.h (FT_PARAMETER_TAGS_H): New - macro. - (FT_TRUETYPE_UNPATENTED_H, FT_UNPATENTED_HINTING_H): Define it to - `ftparams.h'. - - * include/freetype/ftautoh.h, include/freetype/ftcffdrv.h, - include/freetype/ftincrem.h, include/freetype/ftlcdfil.h, - include/freetype/ftsnames.h, include/freetype/ftt1drv.h: Include - FT_PARAMETER_TAGS_H. - Move FT_PARAM_TAG_XXX definitions to... - * include/freetype/ftparams.h: ...this new file. - - * include/freetype/ttunpat.h: Remove. No longer needed. - -2017-12-05 Werner Lemberg <wl@gnu.org> - - Improve tracing messages by using singular and plural forms. - - * src/*/*.c: Implement it. - -2017-12-04 Werner Lemberg <wl@gnu.org> - - [truetype] Allow shared points in `cvar' table (#52532). - - * src/truetype/ttgxvar.c (tt_face_vary_cvt): Implement it by copying - and adjusting the corresponding code from - `TT_Vary_Apply_Glyph_Deltas'. - -2017-11-28 Werner Lemberg <wl@gnu.org> - - [truetype] Improving tracing of composite glyphs. - - * src/truetype/ttgload.c (TT_Load_Composite_Glyph) - [FT_DEBUG_LEVEL_TRACE]: Show composite glyph information. - -2017-11-27 Werner Lemberg <wl@gnu.org> - - [type1] Allow (again) `/Encoding' with >256 elements (#52464). - - In version 2.6.1, this has been disallowed to better reject - malformed fonts; however, this restriction was too strong. This - time, we only take the first 256 elements into account, since - encoding arrays are always accessed with a 8bit integer, according - to the PostScript Language Reference. - - * src/type1/t1load.c (parse_encoding): Implement it. - -2017-11-27 Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> - - Fix last commit (#52522). - - * builds/freetype.mk: Set `FT_OPTION_H' and `FTOPTION_FLAG' - properly if we have `ftoption.h' in `BUILD_DIR'. - -2017-11-24 Werner Lemberg <wl@gnu.org> - - [unix] Install a massaged `ftoption.h' file (#51780). - - * builds/unix/configure.raw (ftoption_set, ftoption_unset): New - auxiliary functions to construct... - (FTOPTION_H_SED): ... this new variable. - Apply it as a sed argument while copying `ftoption.h' to the - `builds/unix' directory (using `AC_CONFIG_FILES'). - Simplify code of test that checks cpp's computation of bit length - (the test previously created an empty `ftoption.h' file and deleted - it immediately afterwards); without this change, it can happen on my - GNU/Linux box that `configure's execution of `config.status' doesn't - create `ftoption.h' (no idea why this happens). - - * builds/unix/install.mk (install): Install - `builds/unix/ftoption.h'. - - * builds/unix/unix-def.in (DISTCLEAN): Updated. - - * builds/unix/.gitignore: Updated. - -2017-11-23 Tor Andersson <tor.andersson@artifex.com> - - Silence unused function warnings (#52465). - - Some static function declarations cause unused function warnings if - certain config options are turned off via `ftoption.h'. - - * src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h, - src/truetype/ttgxvar.h: Add #ifdef guards around these sections. - -2017-11-22 Ewald Hew <ewaldhew@gmail.com> - - * src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4377 - -2017-11-22 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Fix CFF advance widths. (#52466) - - Glyph advance widths were being written to the new `PS_Decoder' but not - saved to the underlying format specific decoder. This caused pure CFF - fonts to have bad advance width. - - * include/freetype/internal/psaux.h (PS_Decoder): Change `glyph_width' - field to pointer. - Remove unused fields. - * src/psaux/psobjs.c (ps_decoder_init): Change `glyph_width' from copy - to reference. - Remove unused. - * src/psaux/psft.c (cf2_setGlyphWidth): Update code. - -2017-11-15 Vlad Tsyrklevich <vtsyrklevich@google.com> - - * include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type. - -2017-11-14 Nikolaus Waxweiler <madigens@gmail.com> - - Use Adobe hinting engine for `light' hinting of both CFF and Type 1. - - Since Ewald Hew factored the Adobe hinting engine out of the CFF - driver code, we can now use it on Type 1 (and CID) font formats, as - both have the same hinting philosophy. - - This change activates the Adobe hinter when in LIGHT mode, and - therefore always unless explicitly asking for the auto-hinter. This - makes LIGHT behavior consistent with CFF fonts. As of this commit, - the hinting engine table looks as follows. - - LIGHT NORMAL - ------------------------- - TrueType Auto v40 - CFF Adobe Adobe - Type 1 Adobe Adobe - -2017-11-10 Yuri Levchenko <yuri_levchenko@boolat.com> - - * CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option. - -2017-11-06 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/base/ftobjs.c (FT_Load_Glyph): Relocate condition. - -2017-11-06 Alexei Podtelezhnikov <apodtele@gmail.com> - - * src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables. - -2017-11-03 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251) - - The interpreter in Type 1 mode rewinds the charstring after collecting - all hints for building the initial hintmap (commit d52dd7f). However, - some charstrings use `endchar' in a final subroutine call, rewinding to - the start of that subroutine, and only a small section of the actual - glyph is drawn. - - * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdENDCHAR>: - Ensure we are on the top level charstring before rewinding. - -2017-11-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> - - [truetype] Add more tricky fonts. - - See the report by Yang Yinsen. - https://lists.gnu.org/archive/html/freetype-devel/2017-11/msg00000.html - - * src/truetype/ttobjs.c (trick_names): Add `DFGothic-EB', - `DFGyoSho-Lt', `DFHSGothic-W5', `DFHSMincho-W3' and `DFHSMincho-W7'. - (tt_check_trickyness_sfnt_ids): Add checksums for DFGothic-EB, - DFGyoSho-Lt, DFHSGothic-W5, DFHSMincho-W3 and DFHSMincho-W7. Also - add checksums for DLCLiShu and DLCHayBold which their family names - were already listed but their checksums were previously unknown. - -2017-11-01 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Fix complex rendering at high ppem. - - We used to split large glyphs into horizontal bands and continue - bisecting them still horizontally if that was not enough. This is - guaranteed to fail when a single scanline cannot fit into the - rendering memory pool. Now we bisect the bands vertically so that - the smallest unit is a column of the band height, which is guranteed - to fit into memory. - - * src/smooth/ftgrays.c (gray_convert_glyph): Implement it. - -2017-10-20 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth] Improve complex rendering at high ppem. - - At large sizes almost but not exactly horizontal segments can quickly - drain the rendering pool. This patch at least avoids filling the pool - with trivial cells. Beyond this, we can only increase the pool size. - - Reported, analyzed, and tested by Colin Fahey. - - * src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells. - -2017-10-20 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Improve tracing in FT_Load_Glyph, FT_*_Size. - - * src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with - function name, glyph index, and load flags. - (FT_Select_Metrics, FT_Request_Metrics): Remove all tracing. - (FT_Select_Size, FT_Request_Size): Improve tracing. - -2017-10-18 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Improve tracing in FT_Render_Glyph. - - * src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage - calculations and downgrade Netpbm dump to bitmap:7. - -2017-10-15 Ewald Hew <ewaldhew@gmail.com> - - [cff] Fix segfault on missing `psaux' (#52218) - - * src/cff/cffload.c (cff_done_blend): Add a check for possible nullptr. - - * modules.cfg: Update dependency list. - -2017-10-15 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base, cff] Fix MSVC warnings. - - * src/base/ftobjs.c (FT_New_Library): C4702: unreachable code. - (ft_glyphslot_preset_bitmap): C4244: possible loss of data. - * src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data. - Turn `sum' into unsigned. - -2017-10-14 Alexei Podtelezhnikov <apodtele@gmail.com> - - [base] Netpbm image tracing. - - * src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size. - (FT_Render_Glyph_Internal): Trace bitmap in Netpbm format. - - * src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing. - -2017-10-14 Alexei Podtelezhnikov <apodtele@gmail.com> - - * builds/windows/ftdebug.c (FT_Message): Print to stderr. - * builds/wince/ftdebug.c (FT_Message): Ditto. - -2017-10-14 Behdad Esfahbod <behdad@behdad.org> - - [afshaper] Delay creating `hb_set' objects until needed. - - In runs on Noto Naskh Arabic, this results in 89 sets created - instead of 340 before. Makes auto-hinter setup with HarfBuzz - enabled 20% to 30% faster. - - * src/autofit/afshaper.c (af_shaper_get_coverage): Implement it. - -2017-10-12 Ewald Hew <ewaldhew@gmail.com> - - [type1, cid] Add hinting engine switch. - - Implement property service in `type1' and `cid' drivers to allow - switching between FreeType or Adobe hinting engine when both are - available. - - * src/cid/cidriver.c (cid_property_{set,get}, cid_services), - src/type1/t1driver.c (t1_property_{set,get}, t1_services): Add - Properties service. - - * src/cid/cidobjs.c (cid_driver_init), src/type1/t1objs.c - (T1_Driver_Init): Add default property values. - -2017-10-12 Ewald Hew <ewaldhew@gmail.com> - - Add T1_CONFIG_OPTION_OLD_ENGINE configuration option. - - This controls whether the old Type 1 engine gets compiled into FreeType. - It is disabled by default. - - * devel/ftoption.h, include/freetype/config/ftoption.h - (T1_CONFIG_OPTION_OLD_ENGINE): New macro. - - * include/freetype/internal/psaux.h (PS_Decoder): Remove unused field. - * include/freetype/internal/psaux.h, src/cid/cidgload.c - (cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c - (ps_builder_add_point), src/psaux/t1decode.c - (t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph, - t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h, - src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround - relevant code with macro. - Minor code changes. - -2017-10-12 Ewald Hew <ewaldhew@gmail.com> - - Extract width parsing from Type 1 parser. - - Duplicate the fast advance width calculations from the old parser. - This is to facilitate adding options for compiling out the old parser. - - * src/psaux/t1decode.{c,h} (t1_decoder_parse_metrics): New function. - * include/freetype/internal/psaux.h (T1_Decoder_Funcs): New entry - `parse_metrics'. - * src/psaux/psauxmod.c: Set the new entry. - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String), - src/cid/cidgload.c (cid_load_glyph): Separate - conditional for selecting engine. - -2017-10-09 Werner Lemberg <wl@gnu.org> - - * src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow. - - Reported as - - https://bugs.chromium.org/p/chromium/issues/detail?id=772775 - -2017-10-08 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579 - -2017-10-07 Werner Lemberg <wl@gnu.org> - - [sfnt] Adjust behaviour of PS font names for variation fonts. - - * src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Use a named instance's - PS name only if no variation is applied. - -2017-10-07 Werner Lemberg <wl@gnu.org> - - [cff, truetype] Adjust behaviour of named instances. - - This commit completely separates the interaction between named - instances and variation functions. In particular, resetting the - variation returns to the current named instance (if set) and not to - the base font. - - As a side effect, variation functions no longer change the named - instance index. - - * src/cff/cffobjs.c (cff_face_init): Use MM service's `set_instance' - function. - Also apply `MVAR' table to named instances. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Add cast. - (tt_set_mm_blend): No longer check whether requested variation - coincides with a named instance. - (TT_Set_Var_Design): Use current named instance for default - coordinates. - * src/truetype/ttobjs.c (tt_face_init): Use `TT_Set_Named_Instance'. - -2017-10-07 Werner Lemberg <wl@gnu.org> - - Make `FT_Set_Named_Instance' work. - - * src/cff/cffdrivr.c (cff_set_instance): New function. - (cff_service_multi_masters): Register it. - - * src/truetype/ttgxvar.c (TT_Set_Named_Instance): New function. - * src/truetype/ttgxvar.h: Updated. - * src/truetype/ttdriver.c (tt_service_gx_multi_masters): Register - it. - - * src/type1/t1load.c (T1_Reset_MM_Blend): New function. - * src/type1/t1load.h: Updated. - * src/type1/t1driver.c (t1_service_multi_masters): Register it. - -2017-10-07 Werner Lemberg <wl@gnu.org> - - Make `FT_FACE_FLAG_VARIATION' work. - - * include/freetype/internal/tttypes.h (TT_Face): Remove - `is_default_instance'; this can be replaced with a combination of - `FT_IS_VARIATION' and `FT_IS_INSTANCE'. - - * src/cff/cffdrivr.c (cff_get_advances): Updated. - - * src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/sfobjs.c - (sfnt_init_face): Updated. - - * src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c - (TT_Process_Simple_Glyph, load_truetype_glyph, IS_DEFAULT_INSTANCE), - src/truetype/ttgxvar.c (tt_set_mm_blend): Updated. - * src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design): - Handle `FT_FACE_FLAG_VARIATION'. - - * src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Handle - `FT_FACE_FLAG_VARIATION'. - -2017-10-07 Werner Lemberg <wl@gnu.org> - - New function `FT_Set_Named_Instance'. - - No effect yet. - - * src/base/ftmm.c (FT_Set_Named_Instance): New function. - - * include/freetype/ftmm.h: Updated. - -2017-10-07 Werner Lemberg <wl@gnu.org> - - Add macros for checking whether a font variation is active. - - * include/freetype/freetype.h (FT_FACE_FLAG_VARIATION, - FT_IS_VARIATION): New macros. - No effect yet. - -2017-10-07 Werner Lemberg <wl@gnu.org> - - Add framework for setting named instance in MM service. - - * include/freetype/internal/services/svmm.h (FT_Set_Instance_Func): - New function typedef. - (MultiMasters): Add `set_instance' member. - (FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated. - - * src/cff/cffdrivr.c (cff_service_multi_masters), - src/truetype/ttdriver (tt_service_gx_multi_masters), - src/type1/t1driver.c (t1_service_multi_masters): Updated. - -2017-10-07 Werner Lemberg <wl@gnu.org> - - [type1] Minor code shuffling. - - * src/type1/t1load.c (T1_Set_MM_Blend): Make it a wrapper of... - (t1_set_mm_blend): ...this new function. - (T1_Set_MM_Design): Use `t1_set_mm_blend'. - -2017-10-05 Werner Lemberg <wl@gnu.org> - - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer - overflow. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539 - -2017-10-05 Werner Lemberg <wl@gnu.org> - - Fix compiler warnings. - - * src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies - on numeric overflow. - Add cast. - - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable - types, add cast. - -2017-10-04 John Tytgat <John.Tytgat@esko.com> - - [cff] Add support for `FSType'. - - * include/freetype/internal/cfftypes.h (CFF_FontRec): Add - `font_extra' entry. - - * src/cff/cffdrivr.c (cff_ps_get_font_extra): New function to - retrieve FSType info from the embedded PostScript data. - (cff_service_ps_info): Register function. - - * src/cff/cffload.c (cff_font_done): Free `font_extra'. - -2017-09-30 Alexei Podtelezhnikov <apodtele@gmail.com> - - Signedness fixes in bitmap presetting. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514. - - * src/raster/ftrend1.c (ft_raster1_render): Explicitly signed height. - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned - subtraction. - -2017-09-29 Alexei Podtelezhnikov <apodtele@gmail.com> - - Bitmap metrics presetting [2/2]. - - * src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when - appropriate but `FT_Render_Glyph' is not called. - * include/freetype/freetype.h (FT_GlyphSlotRec): Document the change. - -2017-09-28 Alexei Podtelezhnikov <apodtele@gmail.com> - - [smooth, raster] Miscellaneous cleanups. - - * src/raster/ftrend1.c (ft_raster1_render): Clean up the exit. - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce - translations and clean up the exit. - (ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'. - -2017-09-28 Ben Wagner <bungeman@google.com> - - [truetype] Really, really fix #52082. - - * src/truetype/ttinterp.c (Ins_MDRP): Correct conditional. - -2017-09-28 Werner Lemberg <wl@gnu.org> - - * src/psaux/psintrp.c (cf2_doStems): Fix integer overflow. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3510 - -2017-09-28 Ewald Hew <ewaldhew@gmail.com> - - * src/cid/cidgload.c (cid_slot_load_glyph): Fix memory leak. - - Reported as - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3489 - -2017-09-28 Alexei Podtelezhnikov <apodtele@gmail.com> - - Bitmap metrics presetting [1/2]. - - This mainly just extracts the code for presetting the bitmap metrics - from the monochrome, grayscale, and LCD renderers into a separate - function. - - * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that - calculates prospective bitmap metrics for the given rendering mode. - * include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap): - Declare it. - - * src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds - padding to CBox taking into account pecularities of LCD rendering. - * include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it. - - * src/raster/ftrend1.c (ft_raster1_render): Reworked to use - `ft_glyphslot_preset_bitmap'. - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto. - (ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting - is moved to `ft_glyphslot_preset_bitmap'. - -2017-09-28 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Fix compiler warning. - - * src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing - code. - -2017-09-27 Werner Lemberg <wl@gnu.org> - - * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning. - -2017-09-25 Werner Lemberg <wl@gnu.org> - - [psaux] Fix compiler warnings. - - * src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant - test. - - * src/psaux/psintrp.c (cf2_interpT2CharString) - <cf2_escCALLOTHERSUBR>: Add casts. - - * src/psaux/psobjs.c (ps_decoder_init): Add cast. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Minor fixes. - - * include/freetype/internal/psaux.h, src/psaux/psobjs.{c,h}: - Rearrange `ps_builder_init' arguments to conventional order. - - * src/psaux/psft.c (cf2_decoder_parse_charstrings): Add a check and - notice for `SubFont' in Type 1 mode. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Move `psdecode' into `psobjs'. - - As the former only contains a single procedure, move it into - `psobjs' for simplicity. Also change the parameter order to the - conventional one. - - * src/psaux/psdecode.c (ps_decoder_init): Moved to... - * src/psaux/psobjs.c: ...Here. - * src/psaux/psdecode.h, src/psaux/psobjs.h: Ditto. - - * include/freetype/internal/psaux.h (PSAux_ServiceRec): Update - `ps_decoder_init' function signature. - - * src/cff/cffgload.c, src/cid/cidgload.c, src/type1/t1gload.c: - Update calls. - - * src/psaux/psaux.c, src/psaux/psauxmod.c: Update includes. - - * src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRV_SRC): - Update file references. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Fix Type 1 hinting. - - Type 1 hinting breaks sometimes when mid-charstring hints should - have been in the initial hintmap. This fix adds a preprocessing - pass that reads all hints and builds the correct initial hintmap - first, before proceeding to build the glyph outline. - - * src/psaux/psintrp.c (cf2_interpT2CharString): New - `initial_map_ready' boolean flag. - Ignore outline commands and hint changes on first pass. - <cf2_cmdENDCHAR>: Add section to build hintmap and rewind. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Add tracing for hints. - - * src/psaux/pshints.c (cf2_hintmap_dump): New function. - (cf2_hintmap_insertHint): Trace incoming and inserted hints. - (cf2_hintmap_build): Dump hintmap before and after hint adjustment. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Minor fixes. - - * src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop - results. - s/font->decoder/decoder/ where necessary. - <cf2_cmdHSTEM, cf2_cmdVSTEM, cf2_escHSTEM3, cf2_escVSTEM3>: Use - offset parameter in `cf2_doStems' instead of doing correction for - left-sidebearing. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [cid] Use the new engine. - - * src/cid/cidgload.c: Update includes. - (cid_load_glyph, cid_slot_load_glyph): Implement changes to glyph - loading code as with `type1' module. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [cid] Add Adobe engine configuration. - - This is similar to what was done in the `type1' module. - - * src/cid/cidriver.c (t1cid_driver_class): Update declaration. - * src/cid/cidobjs.c: Include FT_TYPE1_DRIVER_H. - (cid_driver_init): Update code. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Change subfont synthesis for CID fonts. - - Change `t1_make_subfont' to take in the Private dict record as an - argument. This is because Type 1 and CID font records in FreeType - have this in different places. - - * src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to - `FT_Face' so that CID is also accepted. - Take `PS_Private' as an argument and let caller figure out where the - Private dict actually is. - Update references. - - * include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update - declaration. - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update - call. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [type1] Switch to Adobe engine. - - * src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (seac). - - This concludes the changes needed to add Type 1 support. - - * src/psaux/psintrp.c: Update includes. - (cf2_interpT2CharString) <cf2_escSEAC>: Implement this similarly to - implied seac for CFF. - - * src/psaux/t1decode.c (t1_lookup_glyph_by_stdcharcode_ps): New - function to look up the glyph index. - - * src/psaux/psft.c (cf2_getT1SeacComponent, - cf2_freeT1SeacComponent): New functions to get the charstrings for - seac components. - - * src/psaux/t1decode.h, src/psaux/psft.h: Update declarations. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (flex in callothersubr). - - * src/psaux/psintrp.c (cf2_interpT2CharString) - <cf2_escCALLOTHERSUBR>: Fix Flex feature handling (OtherSubrs 0, 1, - 2). - <cf2_cmdRMOVETO>: Do not actually move the `glyphPath' while doing - flex. This is to avoid closing the current contour. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (callothersubr). - - * src/psaux/psintrp.c (cf2_interpT2CharString) - <cf2_escCALLOTHERSUBR>: Copy code from - `t1_decoder_parse_charstrings' (in `t1decode.c'). - OtherSubr 3 (change hints) should reset the hintmask, so that the - new hints are applied. - Fix function calls and stack access. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (pop). - - * src/psaux/psintrp.c (cf2_interpT2CharString): Change how unhandled - OtherSubr results are stored. Implement the PostScript stack using - an array. - <cf2_escPOP>: Ensure that the stack is not cleared after getting - `OtherSubr' results. - Fix stack access. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (callsubr). - - * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>: - Type 1 mode. - - * src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (div, four-byte numbers). - - * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escDIV>: Add - Type 1 mode. Type 1 requires large integers to be followed by - `div'; cf. `Adobe Type 1 Font Format', section 6.2. - <op == 255>: Push Type 1 four-byte numbers as `Int' always. This is - to ensure `div' and `callsubr' get values they can use. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (hints). - - * src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM, - cf2_cmdVSTEM>: Add correction for left sidebearing in Type 1 mode. - Allow adding hints mid-charstring. - <cf2_escVSTEM3, cf2_escHSTEM3>: Translate into equivalent commands - for three normal stem hints. This requires some recalculation of - stem positions. - Correction for left sidebearing. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (hsbw, sbw). - - * src/psaux/psintrp.c (cf2_doStems): `hsbw' or `sbw' must be the - first operation in a Type 1 charstring. - (cf2_interpT2CharString): Remove unused variables. - <cf2_cmdHMOVETO, cf2_cmdVMOVETO, cf2_cmdRMOVETO>: `hsbw' or `sbw' - must be the first operation in a Type 1 charstring. - <cf2_cmdHSBW, cf2_escSBW>: Fix data access and add correction for - left sidebearing. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (setcurrentpoint). - - * src/psaux/psintrp.c (cf2_interpT2CharString) - <cf2_escSETCURRENTPT>: Fix stack access. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Extend Adobe interpreter (closepath). - - * src/psaux/psintrp.c (cf2_interpT2CharString) <c2f_cmdCLOSEPATH>: - Use the right builder function. We can use the `haveWidth' boolean - already present, instead of implementing `parse_state'. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Add Type 1 operations to Adobe CFF interpreter. - - The following Type 1 specific ops have been added (copied from - `t1decode'): - - closepath - vstem3 - hstem3 - seac - sbw - callothersubr - pop - setcurrentpoint - hsbw - - The following require a Type 1 mode, because of differences in - specification: - - hstem - vstem - vmoveto - callsubr - div - rmoveto - hmoveto - Numbers - - The subsequent commits will implement these changes and adapt - accesses of data and objects to the new interpreter. - - NOTE: Will not compile in the meantime! - - * src/psaux/psintrp.c: Add opcodes to enum. - (cf2_interpT2CharString): Copy relevant code over from - `t1_decoder_parse_charstrings' (in `t1decode.c'). - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [type1] Fixes for rendering. - - The Type 1 advance width calculation passes null for glyph slot, - etc, which can cause null pointer access in the new interpreter. - Fall back to the old one for now. - - Fix the large glyph retry code and ensure hinting and scaling flags - are set properly. - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add a - check for metrics_only. - Set the `force_scaling' flag. - (T1_Parse_Glyph): Updated. - (T1_Load_Glyph): Add `hinting' and `scaled' flags. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Add missing objects (2/2). - - Synthesize a `SubFont' object for Type 1 fonts. This is used in the - interpreter to access Private dict data, which are stored in - different places for Type 1 and CFF. This allows the same data to - be used in either mode. - - * src/psaux/psobjs.c (t1_make_subfont): New procedure to copy - required values to a dummy `CFF_SubFont' object. This is similar to - `cff_make_private_dict'. - * src/psaux/psobjs.h: Add the new declaration. - - * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Ditto. - Add this to the PSAux Service for future use with CID fonts. - - * src/type1/t1gload.c: Include FT_INTERNAL_CFF_TYPES_H. - (T1_Parse_Glyph_And_Get_Char_String): Add the call. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Add missing objects for Type 1 (1/2). - - Move `CF2_Font' instance to `PS_Decoder'. This is the context for - the interpreter and since it is currently stored in `CFF_Font', is - unavailable in Type 1 mode. - - * include/freetype/internal/psaux.h (T1_Decoder, PS_Decoder): New - `cf2_instance' field. - - * src/psaux/psdecode.c (ps_decoder_init): Copy `cf2_instance' to - `PS_Decoder'. - - * src/psaux/t1decode.c (t1_decoder_done): Add finalization code. - - * src/psaux/psft.c (cf2_decoder_parse_charstrings): Update accesses. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - Allow `type1' module to use the Adobe engine. - - Add the callback and some conditionals to switch between the two - engines. - - * include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Change - function declarations. - * src/psaux/psauxmod.c (T1_Decoder_FuncsRec): Register the - callbacks. - - * src/psaux/psobjs.c (ps_builder_add_point): Add conditionals for - number conversion. - - * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add code - to choose which renderer to use. - - * src/cid/cidgload.c (cid_load_glyph): Update call. - * src/base/ftobjs.c, src/psaux/psobjs.c, src/type1/t1gload.c: Update - includes. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [type1] Add Adobe engine configuration. - - Use the previously changed PS_Driver in type1 module to store - hinting engine configuration. - - * include/freetype/ftt1drv.h: New file. - Duplicate and rename config options from CFF. - * include/freetype/config/ftheader.h (FT_TYPE1_DRIVER_H): New macro. - - * src/type1/t1driver.c (t1_driver_class): Update declaration. - * src/type1/t1objs.c: Include FT_TYPE1_DRIVER_H. - (T1_Driver_Init): Update code. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [cff] Move and rename `CFF_Driver'. - - This is so that we can use the same hinting engine parameters for - Type 1. - - * include/freetype/internal/cffotypes.h (CFF_Driver): Rename and - move to... - * include/freetype/internal/psaux.h (PS_Driver): ...here. - - * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffload.c, - src/cff/cffobjs.c, src/cff/cffobjs.h, src/psaux/psft.c, - src/psaux/psobjs.c: Update references. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux, type1] Reorganize object fields. - - Make some fields more generic, so that we can access them the same - way regardless of Type 1 or CFF. - - * include/freetype/internal/psaux.h (PS_Builder): Change `TT_Face' - to `FT_Face'. - Remove unused fields. - - * src/psaux/psft.c: Update all accesses of `PS_Builder.face'. - Add some asserts to guard against casting `T1_Face' as `TT_Face'. - - * src/type1/t1objs.h (T1_GlyphSlot): Reorder fields to follow - `CFF_GlyphSlot', so that we can pretend they are the same in the - interpreter. - - * src/psaux/psobjs.c (ps_builder_init, ps_builder_add_point): - Updated with above changes. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Prepare for Type 1 mode. - - Add some checks for Type 1 data passing through. - - * src/psaux/psfont.h (CF2_Font): Add `isT1' flag. - * src/psaux/psfont.c (cf2_font_setup): Skip the variations and blend - code which is not applicable for Type 1. - - * src/psaux/psft.c (cf2_decoder_parse_charstrings): Avoid accessing - `decoder->cff' in Type 1 mode. - Copy `is_t1' flag to `CF2_Font'. - -2017-09-25 Ewald Hew <ewaldhew@gmail.com> - - [psaux, cff] Use the new objects. - - * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Fix - switching between new and old engines. - - * src/cff/cffgload.c, src/cff/cffparse.c: Update calls. - - * src/psaux/psblues.c, src/psaux/psfont.c, src/psaux/psfont.h, - src/psaux/psft.c, src/psaux/psft.h, src/psaux/psintrp.c: Update all - to use new objects. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Objects for new interpreter (part 2). - - Make the new objects copy over values. They are essentially wrapper - types for the different decoders/builders. - - * include/freetype/internal/psaux.h: Update declarations. - (PS_Builder): Add `is_t1' flag. - (PS_Decoder_{Get,Free}_Glyph_Callback): Renamed to... - (CFF_Decoder_{Get,Free}_Glyph_Callback: ... this. - (PS_Decoder): Updated. - Add `t1_parse_callback' member. - (PSAux_ServiceRec): Add `ps_decoder_init' member. - - * src/psaux/psdecode.h, src/psaux/psobjs.h: Update declarations. - - * src/psaux/psdecode.c, src/psaux/psobjs.c: Implement copy with two - modes. - - * src/psaux/psauxmod.c: Add builder and decoder functions to `PSAux' - service. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Add objects for new interpreter. - - Introduce `PS_Decoder' and `PS_Builder' which include all fields - from either Type 1 or CFF decoders/builders. - - * include/freetype/internal/psaux.h (PS_Builder, PS_Decoder): New - structs. - - * src/psaux/psobjs.c, src/psaux/psobjs.h: Add `PS_Builder' - functions. - - * src/psaux/psdecode.c, src/psaux/psdecode.h: New files to hold - `PS_Decoder' initialization functions. - - * src/psaux/psaux.c, src/psaux/Jamfile (_sources), - src/psaux/rules.mk (PSAUX_DRV_SRC): Updated. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Rename files. - - Replace the `cf2' file name prefix with `ps' as the Adobe engine - will be used for both PostScript Types 1 and 2 (CFF) instead of just - CFF. - - s/cf2/ps/ for all following. - - * src/psaux/cf2*: Rename files. - * src/psaux/*: Update includes. - - * src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRC_SRC, - PSAUX_DRV_H): Update file references. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux] Minor fix. - - Use `MultiMasters' service in `psaux' instead of a call to `cff'. - The project builds if CFF_CONFIG_OPTION_OLD_ENGINE is not defined. - - * src/psaux/cf2ft.c: Update includes. - (cf2_getNormalizedVector): Use `mm->get_var_blend' instead of - `cff_get_var_blend'. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux, cff] Move `cff_random' into `psaux' service. - - NOTE: Does not compile! - - Minor fix to allow both `cff' and `psaux' to use `cff_random'. - - * src/cff/cffload.c (cff_random): Move to... - * src/psaux/psobjs.c: Here. - * src/cff/cffload.h: Move corresponding declaration to - `src/psaux/psobjs.h'. - - * include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the - function here... - * src/psaux/psauxmod.c: And here. - - * src/cff/cffload.c, src/psaux/cf2intrp.c: Update code. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [cff] Move struct declarations to `freetype/internal'. - - NOTE: Does not compile! - - This is so that the CFF functions moved to `psaux' can access the - same structs that they need. - - * src/cff/cfftypes.h: Moved to... - * include/freetype/internal/cfftypes.h: ...Here. - - * src/cff/cffobjs.h: Moved the struct declarations to... - * include/freetype/internal/cffotypes.h: ... this new file. - - * include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H, - FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros. - - * src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c, - src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c, - src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h, - include/freetype/internal/psaux.h, - include/freetype/internal/services/svcfftl.h: Update includes. - - * src/cff/rules.mk (CFF_DRV_H): Updated. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux, cff] Add new service for inter-module calls. - - NOTE: Does not compile! - - This is to allow CFF functions moved to `psaux' to call functions - declared in `src/cff/cffload.h'. - - * include/freetype/internal/services/svcfftl.h: New file, setting up - a `CFFLoad' service. - - * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC10, - FT_DEFINE_SERVICEDESCREC): New macros. - (FT_SERVICE_CFF_TABLE_LOAD_H): New macro. - - * src/cff/cffdrivr.c, src/cff/cffpic.h: Register the new service. - - * src/cff/cfftypes.h (CFF_FontRec), src/psaux/cf2font.h - (CF2_FontRec): Add service interface. - - * src/cff/cffobjs.c, src/psaux/cf2font.c, src/psaux/cf2ft.c, - src/psaux/cf2intrp.c, src/psaux/cffdecode.c: Use the new service. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux, cff] Add callbacks for inter-module calls. - - NOTE: Does not compile! - - * include/freetype/internal/psaux.h: Add function pointer - declarations. - - * src/psaux/cffdecode.c (cff_decoder_init): Update to take in - callbacks. - * src/psaux/cffdecode.h: Ditto. - - * src/cff/cffgload.c (cff_compute_max_advance, cff_slot_load): - Update calls to pass in callbacks. - * src/psaux/cf2ft.c, src/psaux/cffdecode.c: Use them. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux, cff] Create new `PSAux' service interface entries. - - NOTE: Does not compile! - - * include/freetype/internal/psaux.h: Include - FT_INTERNAL_TRUETYPE_TYPES_H. - (CFF_Builder_FuncsRec, CFF_Decocer_FuncsRec): New function tables. - (CFF_Builder): Updated. - Fix for forward declaration. - (PSAux_ServiceRec): New field `cff_decoder_funcs'. - - * src/psaux/psauxmod.c (cff_builder_funcs, cff_decoder_funcs): New - function tables. - (PSAux_Interface): Updated. - - * include/freetype/internal/tttypes.h (TT_FaceRec): Add `psaux' - service interface. - - * src/cff/cffgload.c, src/cff/cffobjs.c, src/cff/cffparse.c: Update - function calls to use psaux service. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux, cff] Move CFF builder components into `psaux' module. - - NOTE: Does not compile! - - * src/cff/cffgload.c - (cff_builder_{init,done,add_point,add_point1,add_contour,start_point,close_contour}, - cff_check_points): Move to... - * src/psaux/psobjs.c: Here. - - * src/cff/cffgload.h: Move corresponding declarations to - `src/psaux/psobjs.h'. - - * src/cff/cffgload.h (CFF_Builder): Move struct declaration to... - * include/freetype/internal/psaux.h: Here. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux, cff] Move CFF decoder components into `psaux' module. - - NOTE: Does not compile! - - * src/cff/cffgload.c (CFF_Operator, - CFF_COUNT_{CHECK_WIDTH,EXACT,CLEAR_STACK}, cff_argument_counts, - cff_operator_seac, cff_compute_bias, - cff_lookup_glyph_by_stdcharcode, - cff_decoder_{parse_charstrings,init,prepare}): Move to... - * src/psaux/cffdecode.c: This new file. - - * src/cff/cffgload.h: Move corresponding declarations to... - * src/psaux/cffdecode.h: This new file. - - * src/cff/cffgload.h (CFF_MAX_{OPERANDS,SUBRS_CALLS,TRANS_ELEMENTS}, - CFF_Decoder_Zone, CFF_Decoder): Move declarations to... - * include/freetype/internal/psaux.h: Here. - - * src/psaux/cf2ft.h: Update include. - - * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Update with - the new file. - -2017-09-24 Ewald Hew <ewaldhew@gmail.com> - - [psaux, cff] Move Adobe's engine components into `psaux' module. - - This is the first patch of a sequence to move the Type 2 charstring - processing capability from the `cff' module to the `psaux' module. - - NOTE: Does not compile! - - * src/cff/cf2*: Move these files to... - * src/psaux/cf2*: Here. - - * src/cff/Jamfile (_sources), src/cff/rules.mk (CFF_DRV_SRC, - CFF_DRV_H), src/cff/cff.c, src/cff/cffgload.c: Remove file - references. - - * src/psaux/Jamfile (_sources), src/psaux/rules.mk, src/psaux/psaux.c - (PSAUX_DRV_SRC, PSAUX_DRV_H): Add file references. - -2017-09-24 Alexei Podtelezhnikov <apodtele@gmail.com> - - Tweak per-face LCD filtering controls. - - Thing are simpler with a NULL-function pointer. - - * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New - pointer to the filter function. - (FT_LibraryRec): Remove unused `lcd_filter'. - (FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir): Move from here... - * include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc, - ft_lcd_filter_fir): ... to here. - - * src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the - per-face filter. - (FT_Face_Properties): Set it. - * src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify. - - * src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter): - Minor. - -2017-09-24 Jonathan Kew <jfkthame@gmail.com> - - [sfnt] Fix `premultiply_data' (#52092). - - * src/sfnt/pngshim.c (premultiply_data): Don't use vector extension - if we have less than 16 bytes of data. - -2017-09-24 Werner Lemberg <wl@gnu.org> - - [otvalid] Fix handling of ValueRecords. - - For GPOS pair positioning format 1 the description of ValueRecords - in the OpenType specification (1.8.2, from today) is wrong – the - offset has to be taken from the parent structure; in this case the - `PairSet' table. - - * src/otvalid/otvgpos.c (otv_PairSet_validate): Set `extra3'. - (otv_PairPos_validate): Adjust. - -2017-09-23 Werner Lemberg <wl@gnu.org> - - [otvalid] Handle `GSUB' and `GPOS' v1.1 tables. - - * src/otvalid/otvgsub.c (otv_GSUB_validate), src/otvalid/otvgpos.c - (otv_GPOS_validate): Implement it. - -2017-09-23 Werner Lemberg <wl@gnu.org> - - [otvalid] Update common table handling to OpenType 1.8.2. - - * src/otvalid/otvcommn.c (otv_Device_validate): Handle - VariationIndex subtable. - (otv_Lookup_validate): Handle MarkFilteringSet. - -2017-09-23 Alexei Podtelezhnikov <apodtele@gmail.com> - - [build] Windows-style DLL versioning. - - * build/windows/ftver.rc: New VERSIONINFO resource. - * build/windows/vc2010/freetype.vcxproj: Further improvements. - -2017-09-23 Ben Wagner <bungeman@google.com> - - [truetype] Really fix #52082. - - * src/truetype/ttinterp.c (Ins_MDRP): Correct conditional. - -2017-09-23 Werner Lemberg <wl@gnu.org> - - [otvalid] Handle `GDEF' v1.2 and v1.3 tables. - - No validation of variation stuff yet. - - * src/otvalid/otvgdef.c (otv_MarkGlyphSets_validate): New function. - (otv_GDEF_validate): Implement it. - -2017-09-22 Werner Lemberg <wl@gnu.org> - - [otvalid] Handle `BASE' v1.1 table. - - No validation of variation stuff yet. - - * src/otvalid/otvbase.c (otv_BASE_validate): Implement it. - -2017-09-22 Werner Lemberg <wl@gnu.org> - - [otvalid] Macros for 32bit offset support. - - * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE32, - OTV_OPTIONAL_OFFSET32, OTV_SIZE_CHECK32): New macros. - -2017-09-21 Alexei Podtelezhnikov <apodtele@gmail.com> - - [build] Simplify Visual C++ 2010 project. - - * build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded - configurations and tweak. - -2017-09-21 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflow (#52082). - - * src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS. - -2017-09-21 Werner Lemberg <wl@gnu.org> - - [sfnt] Fix postscript name for default instance of variation fonts. - - Problem reported by Behdad. - - * src/sfnt/sfdriver.c (sfnt_get_ps_name): Test - `is_default_instance'. - -2017-09-21 Werner Lemberg <wl@gnu.org> - - [truetype] Fix `mmvar' array pointers, part 2. - - The previous commit was incomplete. - - * src/truetype/ttgxvar.c: Properly initialize sub-array offsets for - `master' also. - -2017-09-21 Werner Lemberg <wl@gnu.org> - - [truetype] Fix `mmvar' array pointers. - - Without this change, clang's AddressSanitizer reports many runtime - errors due to misaligned addresses. - - * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use multiples of pointer - size for sub-array offsets into `mmvar'. - -2017-09-20 Werner Lemberg <wl@gnu.org> - - [truetype] Integer overflows. - - Changes triggered by - - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3429 - - * src/truetype/ttinterp.c (Ins_SHPIX, Ins_DELTAP): Use NEG_LONG. - (Ins_MIAP): Use SUB_LONG. - -2017-09-19 Alexei Podtelezhnikov <apodtele@gmail.com> - - [build] Fix DLL builds in Visual C++ project. - - * build/windows/vc2010/freetype.vcxproj: Use DynamicLibrary in Debug - and Release configurations. - * include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF) - [_DLL]: Use Visual C++ extensions. - -2017-09-19 John Tytgat <John.Tytgat@esko.com> - - [cff] Fix family name logic of pure CFF fontdata (#52056). - - 1. If `FamilyName' is present in the CFF font, use this for - FT_Face's `family_name'. - 2. Otherwise, use the face name and chop off any subset prefix. - 3. If at this point FT_Face's `family_name' is set, use this - together with the full name to determine the style. - 4. Otherwise, use `CIDFontName' as FT_Face's `family_name'. - 5. If we don't have a valid style, use "Regular". - - Previously, FT_Face's `family_name' entry for pure CFF fontdata - nearly always was the fontname itself, instead of the `FamilyName' - entry in the CFF font (assuming there is one). - - * src/cff/cffobjs.c (cff_face_init) [pure_cff]: Implement it. - -2017-09-18 Alexei Podtelezhnikov <apodtele@gmail.com> - - [build] Declutter Visual C++ 2010-2017 project. - - * build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02) - optimization for Release configuration throughout the project. - - ----------------------------------------------------------------------------- - -Copyright (C) 2017-2021 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, modified, -and distributed under the terms of the FreeType project license, -LICENSE.TXT. By continuing to use, modify, or distribute this file you -indicate that you have read the license and understand and accept it -fully. - - -Local Variables: -version-control: never -coding: utf-8 -End: |