diff options
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 2457 |
1 files changed, 2457 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..cd5a4df --- /dev/null +++ b/ChangeLog @@ -0,0 +1,2457 @@ +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_metric_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/ftobjcs.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 on 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/ftbasic.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/ftbimap.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: + http://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: + http://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/ttobs.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/bfd/bfddrivr.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/cffdriver.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/cffdrvr.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_ofset'. + * 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. + http://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. + http://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 (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_Set_LcdFilter): 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: Optmize 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. + + * freetype2/include/freetype/internal/ftobjs.h: Close comment with + `*/' to avoid `/* in comment' compiler warning. + + * freetype2/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. + + * freetype2/src/base/ftobjs.c (t_validator_error): Cast away + volatileness of argument to ft_longjmp. Spotted by Werner + `Putzfrau' Lemberg. + + * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local + variable `lineno'. + + * freetype2/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. + + * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator + typedef a pointer to a volatile object. + + * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function + argument `table' a pointer to a volatile object. + + * freetype2/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> + + * freetype2/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'. + + * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function + parameter `face' and local variables `base', `gdef', `gpos', `gsub', + `jstf', and 'valid'. + + * freetype2/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 inadvertedly 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: + http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm. + + * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by + `ft_setjmp'. It reverts the change introduced on 2005-08-20. + + * freetype2/src/gxvalid/gxvmod.c: Ditto. + +2006-08-13 Jens Claudius <jens.claudius@yahoo.com> + + * freetype2/include/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. + + * freetype2/src/cid/cidload.c: (cid_field_records): Adjust + invocations of T1_FIELD_XXX. + + * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX. + + * freetype2/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. + * freetype2/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'). + + * freetype2/src/type1/t1tokens.h: Adjust invocations of + T1_FIELD_XXX. + + * freetype2/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'. + + * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec): + Remove field `face', add `len_buildchar'. + + * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add + field `buildchar'. + + * freetype2/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. + + * freetype2/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. + + * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field + `buildchar' of T1_FaceRec. + + * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field + `buildchar' of T1_FaceRec. + +2006-07-14 Jens Claudius <jens.claudius@yahoo.com> + + * freetype2/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 freetype2/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. + + * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New + fields `ndv_idx', `cdv_idx', and `len_buildchar'. + + * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields + `default_design_vector' and `num_default_design_vector'. + + * freetype2/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 freetype2/include/freetype/internal/psaux.h. + + * freetype2/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. + + * freetype2/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'. + + * freetype2/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'. + + * freetype2/src/type1/t1load.h (T1_LoaderRect): New field + `keywords_encountered'. + (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros. + + * freetype2/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 + http://lists.nongnu.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. + http://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/ftrfrk.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) + [FT_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_ConvEexecDecode): + 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 2006, 2007 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: |