-2007-07-02 Werner Lemberg <wl@gnu.org>
+2010-11-28 Werner Lemberg <wl@gnu.org>
-
- * Version 2.3.5 released.
+ * Version 2.4.4 released.
=========================
- Tag sources with `VER-2-3-5'.
+ Tag sources with `VER-2-4-4'.
+
+ * docs/CHANGES: Updated.
- * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
- version number to 2.3.5.
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.4.4
- * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
+ * 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/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.
+ 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/.
- * 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>
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
- * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
- assertion.
- (ps_parser_to_bytes): Fix error message.
+ * builds/unix/configure.raw (version_info): Set to 12:2:6.
- * 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.
+2010-11-28 Alexei Podtelezhnikov <apodtele@gmail.com>
-2007-06-18 Werner Lemberg <wl@gnu.org>
+ [ftsmooth]: Minor code simplification.
- * 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/smooth/ftgrays (gray_render_cubic): Do only one comparison
+ instead of two.
- * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
- 2007-06-06.
+2010-11-26 Johnson Y. Yan <yinsen_yan@foxitsoftware.com>
-2007-06-17 Werner Lemberg <wl@gnu.org>
+ [truetype] Better multi-threading support.
- * src/tools/ftrandom.c (font_size): New global variable.
- (TestFace): Use it.
- (main): Handle new option `--size' to set `font_size'.
- (Usage): Updated.
+ * src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone
+ references.
- * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
- invalid font.
- (FNT_Load_Glyph): Protect against invalid bitmap width.
+2010-11-23 John Tytgat <John.Tytgat@esko.com>
-2007-06-16 David Turner <david@freetype.org>
+ * 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).
- * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
- Prevent integer overflows when rendering very large outlines.
+2010-11-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
- well-formedness of the contours array when loading a glyph.
+ [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/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.
+ * 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.
-2007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
+2010-11-18 Werner Lemberg <wl@gnu.org>
- * 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.
+ [truetype] Fix `loca' handling for inconsistent number of glyphs.
+ Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
- * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
- loading bitmap .fon files in PE format.
+ * src/truetype/ttpload.c (tt_face_load_loca): While sanitizing,
+ handle case where `loca' is the last table in the font.
-2007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
+2010-11-18 Werner Lemberg <wl@gnu.org>
- * builds/win32/ftdebug.c: Unify debug level handling with other
- platforms.
+ [sfnt] Ignore all errors while loading `OS/2' table.
+ Suggested by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
-2007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
+ * src/sfnt/sfobjs.c (sfnt_load_face): Do it.
- * builds/win32/ftdebug.c (FT_Message): Send debug output to the
- console as well as to the debugger.
+2010-11-18 Johnson Y. Yan <yinsen_yan@foxitsoftware.com>
-2007-06-14 Werner Lemberg <wl@gnu.org>
+ [type1] Fix matrix normalization.
- * 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.
+ * src/type1/t1load.c (parse_font_matrix): Handle sign of scaling
+ factor.
-2007-06-11 David Turner <david@freetype.org>
+2010-11-18 Werner Lemberg <wl@gnu.org>
- * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
- incorrect segment linking computation. This was the root cause of
- Savannah bug #19565.
+ [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'.
- * 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.
+2010-11-17 Werner Lemberg <wl@gnu.org>
- * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
- (disabled currently).
+ [sfnt] While tracing, output table checksums also.
- * 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/sfnt/ttload.c (tt_face_load_font_dir): Do it.
- * src/autofit/afhints.h: Updated.
- (AF_SORT_SEGMENTS): New macro (disabled).
- (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
+2010-11-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
- argument to pass option flags for handling scripts.
- * src/autofit/afglobal.h: Updated.
+ [UVS] Fix find_variant_selector_charmap(), Savannah bug #31545.
- * src/autofit/afcjk.c: Updated.
- * src/autofit/aflatin.c: Updated.
- (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
+ 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.
- (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/base/ftobjs.c (Fix find_variant_selector_charmap):
+ Returns UVS cmap correctly.
- * src/autofit/afloader.c: Updated.
+2010-11-01 Alexei Podtelezhnikov <apodtele@gmail.com>
-2007-06-11 Werner Lemberg <wl@gnu.org>
+ [ftsmooth] Improve rendering.
- * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
+ * 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
-2007-06-10 David Turner <david@freetype.org>
+ http://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html
- * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
- the TrueType glyph loader.
+ and later mails in this thread.
- * include/freetype/config/ftoption.h: Clarify documentation
- regarding unpatented hinting.
+2010-10-28 Werner Lemberg <wl@gnu.org>
+ [ftraster] Minor fixes.
- Add new `FT_Face_CheckTrueTypePatents' API.
+ Reported by Tom Bishop <wenlin@wenlin.com>.
- * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
- declaration.
+ * src/raster/ftraster.c (ULong): Remove unused typedef.
+ (TWorker): Remove unused variable `precision_mask'.
- * include/freetype/internal/services/svttglyf.h,
- src/base/ftpatent.c: New files.
+2010-10-28 Werner Lemberg <wl@gnu.org>
- * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
- New macro.
+ [ftraster] Fix rendering.
- * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
- `ttpload.h'.
- (tt_service_truetype_glyf): New service structure.
- (tt_services): Register it.
+ Problem reported by Tom Bishop <wenlin@wenlin.com>; see
+ thread starting with
- * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
- `ftpatent.c'.
+ http://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html
-2007-06-08 Werner Lemberg <wl@gnu.org>
+ * src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv
+ since the involved multiplication exceeds 32 bits.
- * 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).
+2010-10-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ Revert a change of `_idx' type in FTC_CACHE_LOOKUP_CMP().
- * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
- [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
+ * 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.
-2007-06-07 Werner Lemberg <wl@gnu.org>
+2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
- tt_sbit_decoder_load_image): Protect against integer overflows.
+ [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/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
- for `x_control' and `y_control'.
+ * 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.
-2007-06-06 Werner Lemberg <wl@gnu.org>
+ * src/cache/ftccache.h (FTC_NodeRec): The type of the
+ member `hash' is changed from FT_UInt32 to FT_PtrDist.
- * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
+ * 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>
- * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
- FreeType error.
+ [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.
- * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
- `font_count'.
+ For the history of these macros, see the investigation:
+ http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html
+2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
+ 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/cff/cffgload.c (cff_decoder_prepare): Change return type to
- `FT_Error'.
- Check `fd_index'.
- (cff_slot_load): Updated.
- * src/cff/cffgload.h: Updated.
+ * 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.
-2007-06-05 Werner Lemberg <wl@gnu.org>
+2010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * 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.
+ Replace "%lx" for memory address by "%p", LLP64 platforms.
- * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
+ 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.
- * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
+2010-10-15 Alexei Podtelezhnikov <apodtele@gmail.com>
+ Fix thinko in spline flattening.
- * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
- in case of parsing error.
- (ps_parser_load_field): Updated.
+ FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL.
- * src/type1/t1load.c (parse_font_matrix): Updated.
+ * src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and
+ replace it everywhere with ONE_PIXEL/8.
-2007-06-04 Werner Lemberg <wl@gnu.org>
+2010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
+ [raccess] Skip unrequired resource access rules by Darwin VFS.
- * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
+ 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:
+ http://trac.macports.org/ticket/18859
-2007-06-03 Werner Lemberg <wl@gnu.org>
+ * 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.
- * src/tools/ftrandom/*: Add the `ftrandom' test program written by
- George Williams (with some modifications).
+2010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-06-03 Werner Lemberg <wl@gnu.org>
+ [raccess] Grouping resource access rules based on Darwin VFS.
- * 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.
+ 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.
-2007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
+ * 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.
- * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
+2010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-06-02 Werner Lemberg <wl@gnu.org>
+ Prevent to open a FT_Stream for zero-sized file on non-Unix.
- * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
- FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
+ 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/bdf/bdflib.c (bdf_load_font): Use them.
+ * 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.
- * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
+2010-10-12 Werner Lemberg <wl@gnu.org>
-2007-06-01 Werner Lemberg <wl@gnu.org>
+ Fix Savannah bug #31310.
- * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
- (FTC_CMapCache_Lookup): Remove unused code.
+ * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
+ invalid `runcnt' values.
-2007-06-01 Sean McBride <sean@rogue-research.com>
+2010-10-08 Chris Liddell <chris.liddell@artifex.com>
- * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
- unused.
+ Fix Savannah bug #31275.
-2007-06-01 Werner Lemberg <wl@gnu.org>
+ * src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H.
- * 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.
+2010-10-06 Werner Lemberg <wl@gnu.org>
- * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
- LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
+ [truetype] Improve error handling of `SHZ' bytecode instruction.
+ Problem reported by Chris Evans <scarybeasts@gmail.com>.
-2007-05-30 Werner Lemberg <wl@gnu.org>
+ * src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'.
- * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
- against too small binary data strings.
+2010-10-05 Werner Lemberg <wl@gnu.org>
- * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
+ Fix Savannah bug #31253.
+ Patch submitted by an anonymous reporter.
-2007-05-28 David Turner <david@freetype.org>
+ * configure: Use `awk' instead of `sed' to manipulate output of `ls
+ -id'.
- * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
- transformation. This significantly reduces the loading time of CFF
- glyphs.
+2010-10-03 Werner Lemberg <wl@gnu.org>
- * docs/CHANGES: Updated.
+ * Version 2.4.3 released.
+ =========================
- * 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>
+ Tag sources with `VER-2-4-3'.
* 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.
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.4.3
- * 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.
+ * 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/.
-2007-05-16 Werner Lemberg <wl@gnu.org>
+ * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
- * 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.
+ * builds/unix/configure.raw (version_info): Set to 12:1:6.
-2007-05-15 David Turner <david@freetype.org>
+2010-10-03 Werner Lemberg <wl@gnu.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>.
+ Avoid `configure' issues with symbolic links.
+ Based on a patch from Alexander Stohr <Alexander.Stohr@gmx.de>.
-2007-05-15 Graham Asher <graham.asher@btinternet.com>
+ * configure: Compare directories using `ls -id'.
+ Check existence of `reference' subdirectory before creating it.
- * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
- variable.
- * src/autofit/afloader.c (af_loader_load_g): Ditto.
+2010-10-02 Werner Lemberg <wl@gnu.org>
- * 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.
+ Fix Savannah bug #31088 (sort of).
- * 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/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64
+ function entries.
- * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
- Use `|' operator instead of `^' to set it.
- Update all users.
+2010-10-02 Werner Lemberg <wl@gnu.org>
- * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
- * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
+ [smooth] Fix splitting of cubics for negative values.
- * 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.
+ Reported by Róbert Márki <gsmiko@gmail.com>; see
+ http://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html.
-2007-05-13 Derek Clegg <dclegg@apple.com>
+ * src/smooth/ftgrays.c (gray_render_cubic): Fix thinko.
- * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
- if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
+2010-10-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-05-11 David Turner <david@freetype.org>
+ Fix Savannah bug #31040.
- * 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/ttinterp.c (free_buffer_in_size): Remove.
+ (TT_RunIns): Updated.
- * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
- `size->cvt_ready'. Reported by Boris Letocha.
+2010-09-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-05-09 Graham Asher <graham.asher@btinternet.com>
+ [sfnt] Make error message filling NULL names less verbose.
- * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
- (af_latin_metrics_scale_dim): Fix compiler warnings.
+ * src/sfnt/ttpost.c (load_format_20): Showing 1 summary message
+ when we fill `post' names by NULL, instead of per-entry message.
-2007-05-06 Werner Lemberg <wl@gnu.org>
+2010-09-20 Graham Asher <graham.asher@btinternet.com>
+ David Bevan <david.bevan@pb.com>
- * builds/win32/visualce/freetype.sln: Removed, as requested by
- Vincent.
+ [smooth] Fix and improve spline flattening.
-2007-05-04 Vincent RICHOMME <richom.v@free.fr>
+ This fixes the flattening of cubic, S-shaped curves and speeds up
+ the handling of both the conic and cubic arcs.
- * builds/win32/visualce/*: Add Visual C++ project files for Pocket
- PC targets.
+ See the discussions on the freetype-devel mailing list in late
+ August and September 2010 for details.
- * docs/CHANGES: Document them.
+ * 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.
-2007-05-04 <harry@kdevelop.org>
+2010-09-19 Werner Lemberg <wl@gnu.org>
- * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
- mmap (which might happen on some RTOS). From Savannah patch #5909.
+ Minor fixes.
-2007-05-03 Werner Lemberg <wl@gnu.org>
+ * 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'.
- * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
- * include/freetype/freetype.h (FT_Set_Char_Size): Update
- documentation.
+2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-04-28 Victor Stinner <victor.stinner@inl.fr>
+ [cff] Truncate the element length at the end of the stream.
+ See Savannah bug #30975.
- * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
- `cmap'.
+ * 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.
-2007-04-27 Werner Lemberg <wl@gnu.org>
+2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * 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.
+ [cff] Ignore CID > 0xFFFFU.
+ See Savannah bug #30975.
-2007-04-26 Werner Lemberg <wl@gnu.org>
+ * 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.
- * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
- zero in case of error. This fixes Savannah bug #19689.
+2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
+ [cff] Make trace message in cff_charset_load() verbose.
+ See Savannah bug #30975.
- * src/truetype/ttobjs.c: Fix a typo that created a speed regression
- in the TrueType bytecode loader.
+ * src/cff/cffload.c (cff_charset_load): Report the original `nleft'
+ and truncated `nleft'.
-2007-04-10 Martin Horak <horakm@centrum.cz>
+2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
- Ignore `hhea' table. This fixes Savannah bug #19261.
+ [cff] Correct `max_cid' from CID array length to max CID.
+ See Savannah bug #30975.
-2007-04-09 Werner Lemberg <wl@gnu.org>
+ * 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>
- * Version 2.3.4 released.
- =========================
+ [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.
- Tag sources with `VER-2-3-4'.
+2010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
- version number to 2.3.4.
+ [sfnt] Prevent overrunning in `post' table parser.
+ See Savannah bug #31040.
- * 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/.
+ * 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.
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
+2010-09-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * builds/unix/configure.raw (version_info): Set to 9:15:3.
+ [truetype] Don't duplicate size->twilight structure to be freed.
+ See Savannah bug #31040 for detail.
-2007-04-09 Martin Horak <horakm@centrum.cz>
+ * 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.
- * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
- memory stream to avoid a crash with the incremental memory
- interface (Savannah bug #19260).
+2010-09-15 Werner Lemberg <wl@gnu.org>
-2007-04-06 David Turner <david@freetype.org>
+ Make bytecode debugging with FontForge work again.
- * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
- (Savannah bug #19536).
+ * src/truetype/ttinterp.c (TT_RunIns): Don't call
+ `free_buffer_in_size' in case of error if a debugger is active.
-2007-04-04 Werner Lemberg <wl@gnu.org>
+2010-09-14 Werner Lemberg <wl@gnu.org>
+ Improve tracing messages.
- * Version 2.3.3 released.
- =========================
-
-
- Tag sources with `VER-2-3-3'.
+ * 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.
- * docs/CHANGES: Mention CVE-2007-1351.
+2010-09-13 Werner Lemberg <wl@gnu.org>
-2007-04-03 David Turner <david@freetype.org>
+ Fix minor issues reported by <muktha.narayan@wipro.com>.
- * 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.
+ * 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'.
-2007-04-02 David Turner <david@freetype.org>
+2010-08-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- Add special code to detect `extra-light' fonts and do not snap their
- stem widths too much to avoid bizarre hinting effects.
+ Ignore the environmental setting of LIBTOOL.
+ Patch is suggested by Adrian Bunk, to prevent unexpected
+ reflection of environmental LIBTOOL. See:
+ http://savannah.nongnu.org/patch/?7290
- * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
- `extra_light' members.
+ * 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).
- * 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'.
+2010-08-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-03-28 David Turner <david@freetype.org>
+ [truetype] Decrease the trace level catching the interpreter error.
- * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
- padding.
+ * 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().
-2007-03-28 Werner Lemberg <wl@gnu.org>
+2010-08-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * 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.
+ [truetype] Prevent bytecode reuse after the interpretation error.
- * 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/.
+ * 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.
- * docs/CHANGES: Mention ftdiff.
+ This fixes Savannah bug #30798, reported by Robert Święcki.
-2007-03-26 David Turner <david@freetype.org>
+2010-08-29 Werner Lemberg <wl@gnu.org>
- * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
- corresponding code.
- (Ins_MD): Last regression fix.
+ [ftraster] Pacify compiler.
- * 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/raster/ftraster.c (ft_black_new) [_STANDALONE_]: `memory' is
+ not used.
- * 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.
+2010-08-29 Werner Lemberg <wl@gnu.org>
- * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
- documentation and bump version number to 2.3.3.
+ [cff] Allow SIDs >= 65000.
- * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
+ * 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.
- * builds/unix/configure.raw (version_info): Set to 9:14:3.
+ Problem reported by Ivan Ninčić <inincic@pdftron.com>.
-2007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+2010-08-28 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.
+ Force hinting when the font lacks its familyname.
-2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ 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:
- * 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
+ http://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html
+ http://lists.freedesktop.org/archives/poppler/2010-August/006310.html
-2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ * src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by
+ nameless font is given, TRUE is returned to enable hinting.
- * 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
+2010-08-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ Register yet another tricky TrueType font.
- * 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.
+ * src/truetype/ttobjs.c (tt_check_trickyness): Add `HuaTianKaiTi?',
+ a Kaishu typeface paired with `HuaTianSongTi?' by Huatian
+ Information Industry.
-2007-03-18 David Turner <david@freetype.org>
+2010-08-17 Teijo Kinnunen <Teijo.Kinnunen@nuance.com>
- * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
- fix; testing still needed.
+ Fix Savannah bug #30788.
- * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
+ * src/cache/ftccache.c (FTC_Cache_Clear): Check `cache->buckets' for
+ NULL too.
-2007-03-17 David Turner <david@freetype.org>
+2010-08-10 Werner Lemberg <wl@gnu.org>
- * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
- (undocumented) twilight zone special case.
+ Try to fix Savannah bug #30717 (and probably #30719 too).
-2007-03-09 Werner Lemberg <wl@gnu.org>
+ * 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.3.2 released.
+ * Version 2.4.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/.
+ Tag sources with `VER-2-4-2'.
-2007-03-08 David Turner <david@freetype.org>
+ * docs/CHANGES: Updated.
- * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.4.2
- * builds/unix/configure.raw (version_info): Set to 9:13: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.1/2.4.2/, s/241/242/.
* 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.
+ * builds/unix/configure.raw (version_info): Set to 12:0:6.
-2007-02-16 Werner Lemberg <wl@gnu.org>
+2010-08-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
- * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
+ Fix Savannah bug #30648.
-2007-02-14 David Turner <david@freetype.org>
+ * 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.
- It seems that the following changes fix most of the known
- interpreter problems with my fonts, but more testing is needed,
- though.
+2010-08-06 Yuriy Kaminskiy <yumkam@mail.ru>
- * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
- (TT_MulFix14): Rewrite.
- (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
- (Ins_MIRP): Ditto.
+ [raster] Fix valgrind warning.
-2007-02-12 Werner Lemberg <wl@gnu.org>
+ * src/raster/ftraster.c (Decompose_Curve) <default>: Access point[0]
+ only if we don't hit `limit'.
- * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
- warnings.
+2010-08-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
- (bdf_interpret_style): Ditto.
+ Fix Savannah bug #30658.
-2007-02-12 David Turner <david@freetype.org>
+ * src/base/ftobjs.c (Mac_Read_POST_Resource): Check that the total
+ length of collected POST segments does not overrun the allocated
+ buffer.
- 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.
+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__'.
- * 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.
+ * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in:
+ s/i386/__i386__/.
- * 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).
+2010-08-05 Werner Lemberg <wl@gnu.org>
+ Fix Savannah bug #30657.
- 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/truetype/ttinterp.c (BOUNDSL): New macro.
+ Change `BOUNDS' to `BOUNDSL' where appropriate.
- * 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.
+ * src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of
+ `cvtSize'.
- * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
+2010-08-05 Werner Lemberg <wl@gnu.org>
-2007-02-11 Werner Lemberg <wl@gnu.org>
+ Fix Savannah bug #30656.
- * src/autofit/afloader.c (af_loader_load_g): Don't change width for
- non-spacing glyphs.
+ * src/type42/t42parse.c (t42_parse_sfnts): Protect against negative
+ string_size.
+ Fix comparison.
-2007-02-07 Tom Parker <palfrey@tevp.net>
+2010-08-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
- pointer.
+ [cff] Don't use any values in decoder after parsing error.
-2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ * src/cff/cffgload.c (cff_slot_load): Skip the evaluations
+ of the values in decoder, if cff_decoder_parse_charstrings()
+ returns any error.
- * 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.
+2010-08-04 Werner Lemberg <wl@gnu.org>
- * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
- to avoid warning in building FreeType.
- * builds/mac/ftmac.c: Ditto.
+ Fix Savannah bug #30644.
-2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ * src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison.
- * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
- `--with-fsspec' etc. Replace #include "ftmac.c" with
- #include <ftmac.c>.
+2010-08-04 Werner Lemberg <wl@gnu.org>
-2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ `make devel' fails if FT_CONFIG_OPTION_OLD_INTERNALS is set.
- * 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>
+ * devel/ftoption.h: Synchronize with
+ include/freetype/config/ftoption.h.
- * 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.
+2010-08-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ [cff] Improve stack overflow test.
- * builds/unix/configure.raw: Check whether Mac OS X system headers
- can be built under ANSI C mode.
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings): Check stack
+ after execution of operations too.
- * 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.
+2010-07-18 Werner Lemberg <wl@gnu.org>
-2007-02-01 Werner Lemberg <wl@gnu.org>
+ Add reference counters and to FT_Library and FT_Face objects.
- * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
- Explain why applications shouldn't use it. Found by Alexei.
+ * include/freetype/freetype.h (FT_Reference_Face): New function.
+ * include/freetype/ftmodapi.h (FT_Rererence_Library): New function.
-2007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
+ * include/freetype/internal/ftobjs.h (FT_Face_InternalRec,
+ FT_LibraryRec): New field `refcount'.
- * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
- message.
+ * 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'.
- * src/gxvalid/gxvmort1.c
- (gxv_mort_subtable_type1_substTable_validate): Fix debugging
- message.
-
-2007-01-31 Werner Lemberg <wl@gnu.org>
+ * docs/CHANGES: Updated.
+2010-07-18 Werner Lemberg <wl@gnu.org>
- * Version 2.3.1 released.
+ * Version 2.4.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/.
+ Tag sources with `VER-2-4-1'.
- * vms_make.com: Add `ftgasp'.
+ * docs/CHANGES: Updated.
-2007-01-30 David Turner <david@freetype.org>
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.4.1.
- Tag sources with VER-2-3-1 to prepare release.
+ * 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.
- * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
- s/2.3.0/2.3.1/.
+ * builds/unix/configure.raw (version_info): Set to 11:1:5.
- * builds/unix/configure.raw (version_info): Set to 9:12:3.
+2010-07-17 Werner Lemberg <wl@gnu.org>
+ [cff] Final try to fix `hintmask' and `cntrmask' limit check.
- * 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.
+ Problem reported by Tobias Wolf <towolf@gmail.com>.
* 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.
-
+ <cff_op_hintmask>: Sigh. I'm apparently too silly to fix this
+ correctly in less than three tries.
- Fix and enable the warper to improve `light' hinting mode. This is
- not necessarily a final version, but it seems to work well.
+2010-07-12 Werner Lemberg <wl@gnu.org>
- * 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.
+ * Version 2.4.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.
+ Tag sources with `VER-2-4-0'.
-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: Updated.
- * docs/CHANGES, docs/INSTALL.MAC: Improvements.
+ * docs/VERSION.DLL: Update documentation and bump version number to
+ 2.4.0.
-2007-01-13 Werner Lemberg <wl@gnu.org>
+ * 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/.
- * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
- versions up to 0x3FF without complaining.
+ * include/freetype/freetype.h (FREETYPE_MINOR): Set to 4.
+ (FREETYPE_PATCH): Set to 0.
-2007-01-13 Derek Clegg <dclegg@apple.com>
+ * builds/unix/configure.raw (version_info): Set to 11:0:5.
- Add FT_Get_PS_Font_Info interface to CFF driver.
+2010-07-12 Werner Lemberg <wl@gnu.org>
- * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
- (CFF_FontRec): Add `font_info' field.
+ Remove C++ warnings.
- * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
- (cff_font_done): Free font->font_info if necessary.
+ */*: Initialize pointers where necessary to make g++ happy.
- * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
- (cff_service_ps_info): Register cff_ps_get_font_info.
+2010-07-12 malc <av1474@comtv.ru>
+ Richard Henderson <rth@redhat.com>
-2007-01-13 Werner Lemberg <wl@gnu.org>
+ Fix type-punning issues with C++.
- * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
- with C++ compiler.
+ * include/freetype/internal/ftmemory.h (FT_ASSIGNP) [__cplusplus]:
+ Emulate a `typeof' operator with an inline template which uses
+ `static_cast'.
- * src/autofit/afhints.c (af_glyph_hints_dump_segments,
- af_glyph_hints_dump_edges): Ditto.
+2010-07-11 Werner Lemberg <wl@gnu.org>
- * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
- `modules.cfg').
+ Fix C++ compilation issue.
- * src/sfnt/ttsbit0.h: Remove.
+ * src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Fix
+ type of `dot' variable.
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
+2010-07-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-01-12 David Turner <david@freetype.org>
+ Fix another case reported in Savannah bug #30373.
+ Permit a face for Type1, Type42 and CFF without charmap,
+ patch by Tor Andersson.
- * 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/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.
- * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
- compilation warning.
+2010-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-01-12 Werner Lemberg <wl@gnu.org>
+ Use defined macros to set {platform,encoding}_id.
- * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
- `automake' CVS module from sources.redhat.com.
+ * src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to
+ set charmap.{platfom,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.
-2007-01-11 Werner Lemberg <wl@gnu.org>
+2010-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/type1/t1load.c (is_space): Removed.
- (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
- (parse_charstrings): Use IS_PS_TOKEN.
+ 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.
- * autogen.sh: Avoid bash specific syntax.
+ * 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.
-2007-01-11 David Turner <david@freetype.org>
+ * 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.
- * docs/CHANGES: Small update.
+2010-07-09 Ken Sharp <ken.sharp@artifex.com>
- * builds/unix/configure.raw (version_info): Set to 9:11:3.
+ Make ftraster.c compile in stand-alone mode with MSVC compiler.
- * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
- crash with some Mac OS X .dfont files. Submitted by Masatake
- Yamato.
+ * src/raster/ftmisc.h (FT_Int64) [_WIN32, _WIN64]: Fix typedef
+ since there is no `inttypes.h' for MSVC.
- * 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.
+2010-07-08 Werner Lemberg <wl@gnu.org>
-2007-01-10 David Turner <david@freetype.org>
+ Fix Savannah bug #30361.
- * all-sources: Tag all sources with VER-2-3-0-RC1 and
- VER-2-3-0.
+ * src/truetype/ttinterp.c (Ins_IUP): Fix bounds check.
- * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
- builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
- version number to 2.3.0.
+2010-07-06 Werner Lemberg <wl@gnu.org>
- * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
- (FREETYPE_PATCH): Set to 0.
+ Pacify compiler.
- * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
- include/freetype/ftlcdfil.h: Update reference documentation with
- GASP support and LCD filtering sections.
+ * src/cff/cffload.c (cff_index_get_pointers): Initialize
+ `new_bytes'.
- * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
- which created an endless loop with some malformed font files.
+2010-07-05 Eugene A. Shatokhin <spectre@ispras.ru>
-2007-01-10 Derek Clegg <dclegg@apple.com>
+ Fix Savannah bug #27648.
- * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
- values.
+ * src/base/ftobjs.c (ft_remove_renderer, FT_Add_Module): Call
+ `raster_done' only if we have an outline glyph format.
-2007-01-08 David Turner <david@freetype.org>
+2010-07-05 Werner Lemberg <wl@gnu.org>
- * docs/CHANGES: Updated.
+ Fix Savannah bug #30030.
- * 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.
+ * builds/win32/*/freetype.vcproj: Add ftxf86.c.
- * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
- `gasp' table, in order to avoid potential problems with later
- versions.
+2010-07-05 Werner Lemberg <wl@gnu.org>
- * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
- <freetype/ftgasp.h>.
+ [cff] Next try to fix `hintmask' and `cntrmask' limit check.
- * 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.
+ Problem reported by malc <av1474@comtv.ru>.
-2007-01-07 Werner Lemberg <wl@gnu.org>
+ * 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.
- * src/cid/cidparse.c (cid_parser_new): Improve error message for
- Type 11 fonts.
- Scan for `/sfnts' token.
+ * include/freetype/config/ftoption.h, devel/ftoption.h
+ (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define.
+ (TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine.
-2007-01-07 Werner Lemberg <wl@gnu.org>
+ * docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated.
+ * docs/TRUETYPE, docs/PATENTS: Removed.
- * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
+2010-07-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2007-01-06 Werner Lemberg <wl@gnu.org>
+ Check error value by `FT_CMap_New'.
- * src/cff/cffload.c (cff_index_init): Remove unused variable.
- (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
+ * src/cff/cffobjs.c (cff_face_init): Check error value by
+ `FT_CMap_New'.
+ * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
+ * src/type1/t1jobjs.c (T1_Face_Init): Ditto.
+ * src/type42/t42jobjs.c (T42_Face_Init): Ditto.
-2007-01-04 David Turner <david@freetype.org>
+2010-07-03 Werner Lemberg <wl@gnu.org>
- * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
- correctly. This fixes Savannah bug #17876.
+ Make ftgrays.c compile stand-alone again.
+ * src/smooth/ftgrays.c [_STANDALONE_]: Include `stddef.h'.
+ (FT_INT_MAX, FT_PtrDist)[_STANDALONE_]: Define.
- Do not allocate interpreter-specific tables in memory if we are not
- going to load glyphs with the bytecode interpreter anyway.
+2010-07-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * 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.
+ 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.
- * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
+2010-07-01 Werner Lemberg <wl@gnu.org>
+ [truetype] Protect against code range underflow.
- 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/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow
+ negative IP values.
- * 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'.
+2010-07-01 Werner Lemberg <wl@gnu.org>
- * 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.
+ [truetype] Add rudimentary tracing for bytecode instructions.
- * src/cff/cffgload.c (cff_slot_load): Updated.
+ * src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New
+ array.
+ (TT_RunIns): Trace opcodes.
-2007-01-04 David Turner <david@freetype.org>
+2010-06-30 Werner Lemberg <wl@gnu.org>
- * docs/INSTALL.UNIX: Simplify some parts, add reference to
- autogen.sh and pointer to README.CVS.
+ Fix Savannah bug #30263.
- * README.CVS: Add common problem description and solution
- when running autogen.sh.
+ * src/smooth/ftgrays.c (gray_render_span): Use cast to `unsigned
+ int' to avoid integer overflow.
- * docs/INSTALL: Add reference to MacOS X.
+ * 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.
- * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
+2010-07-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * docs/TODO: Remove obsolete items.
+ Initial fix for Savannah bug #30306.
- * 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/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.
- * src/smooth/ftgrays.c (TRaster): Replaced with...
- (TWorker): This.
- Remove `memory'.
- (TRaster): New structure.
+2010-07-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- (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.
+ Additional fix for Savannah bug #30248 and #30249.
- * 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/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.
- * 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.
+2010-06-30 Alexei Podtelezhnikov <apodtele@gmail.com>
- * 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.
+ Minor optimizations by avoiding divisions.
-2007-01-02 Werner Lemberg <wl@gnu.org>
+ * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning):
+ Replace divisions with multiplication in comparisons.
- * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
- Remove compiler warning.
+2010-06-29 Werner Lemberg <wl@gnu.org>
-2007-01-02 David Turner <david@freetype.org>
+ Fix minor tracing issues.
- * src/sfnt/sfobjs.c: Add documentation comment.
+ * src/cff/cffgload.c, src/truetype/ttgload.c: Adjust tracing levels.
-2006-12-31 Masatake YAMATO <jet@gyve.org>
+2010-06-27 Werner Lemberg <wl@gnu.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'.
+ [cff] Really fix `hintmask' and `cntrmask' limit check.
-2006-12-22 David Turner <david@freetype.org>
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+ <cff_op_hintmask>: Fix thinko and handle tracing also.
- * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
- warnings.
+2010-06-27 Werner Lemberg <wl@gnu.org>
- * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
- to avoid deprecation warnings with Visual C++ 8.
+ Fix valgrind warning.
-2006-12-16 Anders Kaseorg <anders@kaseorg.com>
+ * src/base/ftoutln.c (FT_Outline_Get_Orientation): Initialize
+ `result' array.
- * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
- [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
+2010-06-27 Werner Lemberg <wl@gnu.org>
-2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ [cff] Fix memory leak.
- * 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
+ * src/cff/cffgload.c (cff_operator_seac): Free charstrings even in
+ case of errors.
-2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+2010-06-27 Werner Lemberg <wl@gnu.org>
- * 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.
+ [cff] Protect against invalid `hintmask' and `cntrmask' operators.
-2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ * 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.
- * 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.
+2010-06-26 Werner Lemberg <wl@gnu.org>
-2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ Fix PFR change 2010-06-24.
- * 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.
+ * src/pfr/pfrgload.c (pfr_glyph_load_simple): Really protect against
+ invalid indices.
-2006-12-10 Werner Lemberg <wl@gnu.org>
+2010-06-26 Werner Lemberg <wl@gnu.org>
- * builds/toplevel.mk (version): Protect against `distclean' target.
+ Improve PFR tracing messages.
-2006-12-09 Werner Lemberg <wl@gnu.org>
+ * src/pfr/pfrgload.c (pfr_glyph_load_rec): Emit tracing messages for
+ simple and compound glyph offsets.
- * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
- or `type'.
+2010-06-26 Werner Lemberg <wl@gnu.org>
- * builds/freetype.mk (version): Extracted from freetype.h, using
- GNU make's built-in string functions.
- (refdoc): Use $(version) instead of static version number.
+ Fix last PFR change.
-2006-12-08 Werner Lemberg <wl@gnu.org>
+ * src/pfr/pfrobjs.c (pfr_face_init): Fix rejection logic.
- * builds/toplevel.mk (dist): Extract version number from freetype.h.
+2010-06-26 Werner Lemberg <wl@gnu.org>
-2006-12-08 Vladimir Volovich <vvv@vsu.ru>
+ Fix Savannah bug #30262.
- * src/tools/apinames (State): Remove final comma in structure -- xlc
- v5 under AIX 4.3 doesn't like this.
+ * src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth'
+ arbitrarily to 100 to avoid stack exhaustion.
-2006-12-07 David Turner <david@freetype.org>
+2010-06-26 Werner Lemberg <wl@gnu.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).
+ Add some memory checks (mainly for debugging).
-2006-12-03 Werner Lemberg <wl@gnu.org>
+ * src/base/ftstream.c (FT_Stream_EnterFrame): Exit with error
+ if the frame size is larger than the stream size.
- * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
+ * src/base/ftsystem.c (ft_ansi_stream_io): Exit with error if
+ seeking a position larger than the stream size.
-2006-12-01 Werner Lemberg <wl@gnu.org>
+2010-06-25 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.
+ Fix Savannah bug #30261.
+ * src/pfr/pfrobjs.c (pfr_face_init): Reject fonts which contain
+ neither outline nor bitmap glyphs.
- * include/freetype/ftxf86.h: Fix and extend comment so that it
- appears in the documentation.
+2010-06-25 Werner Lemberg <wl@gnu.org>
- * include/freetype/ftchapters.h: Add `font_format' section.
+ Fix Savannah bug #30254.
+ * src/cff/cffload.c (cff_index_get_pointers): Do sanity check for
+ first offset also.
- * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
- to TOC in index page.
+2010-06-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
-2006-11-28 David Turner <david@freetype.org>
+ Initial fix for Savannah bug #30248 and #30249.
- * 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/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.
- * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
+2010-06-24 Werner Lemberg <wl@gnu.org>
- * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
- ones instead.
+ Fix Savannah bug #30247.
- * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
- variable.
+ * src/pcf/pcfread.c (pcf_get_metrics): Disallow (invalid) fonts with
+ zero metrics.
-2006-11-26 Pierre Hanser <hanser@club-internet.fr>
+2010-06-24 Graham Asher <graham.asher@btinternet.com>
- * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
+ * src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm.
+ The previous version was too aggressive, as demonstrated in
+ http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html.
-2006-11-25 David Turner <david@freetype.org>
+2010-06-24 Werner Lemberg <wl@gnu.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.
+ */*: Use module specific error names where appropriate.
-2006-11-23 David Turner <david@freetype.org>
+2010-06-24 Werner Lemberg <wl@gnu.org>
- * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
- src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
+ Fix Savannah bug #30236.
- * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
- Emit more sensible information.
+ * src/sfnt/ttcmap.c (tt_face_build_cmaps): Improve check for pointer
+ to `cmap_table'.
- * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
+2010-06-24 Werner Lemberg <wl@gnu.org>
- * 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.
+ Fix Savannah bug #30235.
-2006-11-22 Werner Lemberg <wl@gnu.org>
+ * src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against
+ invalid indices if there aren't any coordinates for indexing.
- Fix Savannah bug #15553.
+2010-06-24 Werner Lemberg <wl@gnu.org>
- * 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'.
+ [bdf]: Font properties are optional.
-2006-11-18 Werner Lemberg <wl@gnu.org>
+ * 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'.
- 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.
+2010-06-23 Werner Lemberg <wl@gnu.org>
- * 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'.
+ Fix Savannah bug #30220.
-2006-11-13 David Turner <david@freetype.org>
+ * include/freetype/fterrdef.h
+ (BDF_Err_Missing_Fontboundingbox_Field): New error code.
- * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
- `enhancements' are still too buggy for general use.
+ * 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).
- * 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.
+2010-06-21 Werner Lemberg <wl@gnu.org>
- * include/freetype/ftlcdfil.h: Update documentation.
+ Fix Savannah bug #30168.
-2006-11-10 David Turner <david@freetype.org>
+ * src/pfr/pfrgload.c (pfr_glyph_load_compound): Limit the number of
+ subglyphs to avoid endless recursion.
- * 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).
+2010-06-20 Werner Lemberg <wl@gnu.org>
- * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
- second parameter to an enum type.
+ Fix Savannah bug #30145.
- * 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.
+ * src/psaux/psobjs.c (t1_builder_add_contour): Protect against
+ `outline == NULL' which might happen in invalid fonts.
- * 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.
+2010-06-19 Werner Lemberg <wl@gnu.org>
- * src/smooth/ftsmooth.c (ft_smooth_render_generic)
- [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
- Other minor improvements.
+ Fix Savannah bug #30135.
- * 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.
+ * 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.
-2006-11-09 David Turner <david@freetype.org>
+2010-06-15 Werner Lemberg <wl@gnu.org>
- * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
- typo which created a variable-used-before-initialized bug.
+ Fix Savannah bug #30108.
-2006-11-07 Zhe Su <james.su@gmail.com>
+ * src/autofit/afglobal.c (af_face_globals_compute_script_coverage):
+ Properly mask AF_DIGIT bit in comparison.
- * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
- also.
+2010-06-11 Werner Lemberg <wl@gnu.org>
-2006-11-03 Werner Lemberg <wl@gnu.org>
+ Fix Savannah bug #30106.
- * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
+ 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.
-2006-11-02 David Turner <david@freetype.org>
+ * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Assure that
+ `end_point' is not larger than `glyph->num_points'.
- Add a few tweaks to better handle serif fonts.
- Add more debugging messages.
+2010-06-11 Werner Lemberg <wl@gnu.org>
- * 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.
+ [cff]: Improve debugging output.
- * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
- _af_debug_disable_blue_hints, and _af_debug_hints variables.
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+ <cff_op_hintmask>: Implement it.
- * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
- Update external declarations.
- (af_corner_orientation, af_corner_is_flat): Replaced by...
+2010-06-10 Graham Asher <graham.asher@btinternet.com>
- * include/freetype/internal/ftcalc.h (ft_corner_orientation,
- ft_corner_is_flat): These declarations.
+ ftgrays: Speed up rendering of small cubic splines.
- * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
- Comment out. Replaced by...
+ * 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:
- * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
- These functions. Update all callers.
- (FT_Add64) [!FT_LONG64]: Simplify.
+ http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html
- * 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.
+2010-06-09 Werner Lemberg <wl@gnu.org>
- * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
+ Fix Savannah bug #30082.
- * src/autofit/afloader.c (af_loader_init, af_loader_done)
- [AF_DEBUG]: Set _af_debug_hints.
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings)
+ <cff_op_callothersubr>: Protect against stack underflow.
+2010-06-08 Werner Lemberg <wl@gnu.org>
- * 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.
+ Fix Savannah bug #30053.
+ * src/cff/cffparse.c (cff_parse_real): Handle border case where
+ `fraction_length' has value 10.
- * src/gzip/inftrees.c (huft_build): Remove compiler warning.
+2010-06-07 Werner Lemberg <wl@gnu.org>
-2006-10-24 Werner Lemberg <wl@gnu.org>
+ Fix Savannah bug #30052.
+ This bug has been introduced with commit 2415cbf3.
- * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
+ * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect
+ against endless loop in case of corrupted font header data.
- * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
- as argument.
+2010-05-26 Werner Lemberg <wl@gnu.org>
-2006-10-23 Zhe Su <zsu@novell.com>
+ Remove unused variable.
+ Found by Graham.
- * 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.
+ * src/autofit/afhints.c (af_glyph_hints_reload): Remove unused
+ variable `first' in first block.
-2006-10-23 David Turner <david@freetype.org>
+2010-05-22 Werner Lemberg <wl@gnu.org>
- Speed up the CFF font loader. With some large CFF fonts,
- FT_Open_Face is now more than three times faster.
+ Fix various memory problems found by linuxtesting.org.
- * 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/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/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
- with FT_NEXT_XXX.
+ * 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>
- Speed up the Postscript hinter, with more than 100% speed increase
- on my machine.
+ autofit: Remove dead code.
+ Suggested by Graham.
- * 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.
+ * src/autofit/afhints.c (af_glyph_hints_compute_inflections):
+ Removed.
+ (af_glyph_hints_reload): Remove third argument.
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>
+2010-05-21 Bram Tassyns <bramt@enfocus.be>
- * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
- `error' with FT_Err_Ok.
+ Fix Savannah bug #27987.
-2006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ * src/cff/cffobjs.c (remove_subset_prefix): New function.
+ (cff_face_init): Use it to adjust `cffface->family_name'.
- * docs/INSTALL.CROSS: New document file for cross-building.
+2010-05-20 Werner Lemberg <wl@gnu.org>
- * 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.
+ TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'.
- * 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.
+ Acroread does the same.
- * builds/exports.mk (APINAMES_EXE): Change the extension for
- apinames from the suffix for target (E) to that for building host
- (E_BUILD).
+ * 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.
-2006-10-12 Werner Lemberg <wl@gnu.org>
+ (load_truetype_glyph): Save `loader->byte_len' before recursive
+ call.
- * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
- * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
- which reference those files.
+ * src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max):
+ Declare it as FT_LOCAL.
-2006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+2010-05-18 Hongbo Ni <hongbo@njstar.com>
- * 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.
+ Apply Savannah patch #7196.
- * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
+ * src/cff/cffgload.c (cff_slot_load): Prevent crash if CFF subfont
+ index is out of range.
- * builds/unix/freetype-config.in: Ditto.
+2010-05-11 Werner Lemberg <wl@gnu.org>
-2006-10-11 Werner Lemberg <wl@gnu.org>
+ * docs/formats.txt: Give pointer to PCF documentation.
+ Information provided by Alan Coopersmith
+ <alan.coopersmith@oracle.com>.
- * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
- development.
+2010-05-10 Ken Sharp <ken.sharp@artifex.com>
-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.
+ Fix Savannah bug #29846.
- * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
- auto-hinting shall be used or not.
+ 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.
- * src/truetype/ttobjs.c (tt_face_init): Ditto.
+ This was fixed by simply ignoring the error and carrying on.
-2006-09-30 Werner Lemberg <wl@gnu.org>
+ 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.
- * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
- in use).
+ 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/base/ftbase.c: Include `ftlcdfil.c'.
+ (t1_decoder_parse_charstrings): Make `setcurrentpoint' use the top
+ two elements of the stack to establish unconditionally the current x
+ and y coordinates.
-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.
+ 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>
- 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.
+ Fix Savannah bug #29444.
- * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
+ * src/psaux/psobjs.c (t1_builder_start_point): Accept (invalid)
+ `lineto' immediately after `hsbw', in accordance with Acrobat, GS,
+ and others.
- * 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'.
+2010-04-14 Michał Cichoń <thedmd@artifexmundi.com>
- * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
- `hmul' and `vmul'.
+ Fix Savannah bug #27999.
- 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'.
+ * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): Only remove
+ selected entry, not all.
- * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
- pointing to <freetype/ftlcdfil.h>.
+2010-04-06 Jonathan Kew <jfkthame@gmail.com>
- * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
- vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
+ Add overflow check to `fvar' table.
- * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
+ * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis and instance
+ count.
-2006-09-26 David Bustin
+2010-04-05 Ken Sharp <ken.sharp@artifex.com>
- * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
- correctly. Reported as Savannah bug #17843.
+ Fix Savannah bug #29335.
-2006-09-26 David Turner <david@freetype.org>
+ * src/raster/ftraster.c (Line_Up): Use slow multiplication to
+ prevent overflow. This shouldn't have any serious impact on speed,
+ however.
- * 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.
+2010-04-05 Werner Lemberg <wl@gnu.org>
- * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
- _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
+ Add new function `FT_Library_SetLcdFilterWeights'.
- * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
+ This is based on code written by Lifter
+ <http://unixforum.org/index.php?showuser=11691>. It fixes
+ FreeDesktop bug #27386.
- * 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/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New
+ function.
- * 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.
+ * include/freetype/ftlcdfil.h: Updated.
* 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>
+2010-04-01 John Tytgat <John.Tytgat@esko.com>
- * 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.
+ Fix Savannah bug #29404.
- * 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/.
+ * src/truetype/ttgload.c: Revert change 2752bd1a (check on bit 1
+ of `head' table of TrueType fonts).
- * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
- member `force_autohint'.
+2010-03-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
+ Fix `multi build' for Tytgat's CFF driver improvement.
- * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
- against a list of font names which need the bytecode interpreter.
+ * src/base/cffload.h (cff_index_get_name): Added.
-2006-08-27 Jens Claudius <jens.claudius@yahoo.com>
+2010-03-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
- Fix miscellaneous compiler warnings.
+ Remove duplicated inclusion of `FT_OUTLINE_H' in ftobjs.c.
- * freetype2/include/freetype/internal/ftobjs.h: Close comment with
- `*/' to avoid `/* in comment' compiler warning.
+ * src/base/ftobjs.c: Remove 2nd inclusion of `FT_OUTLINE_H'.
- * 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.
+2010-03-11 Chris Liddell <chris.liddell@artifex.com>
- * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
- volatileness of argument to ft_longjmp. Spotted by Werner
- `Putzfrau' Lemberg.
+ Fix Savannah bug #27442.
- * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
- variable `lineno'.
+ * src/raster/ftraster.c (ft_black_reset): Fix `buffer_size'.
- * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
- variable `error' as volatile.
+2010-03-09 Werner Lemberg <wl@gnu.org>
-2006-08-27 Werner Lemberg <wl@gnu.org>
+ Remove unused variable.
+ Reported by Graham.
- * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
- Reported by Jens.
+ * src/cff/cffparse.c (cff_parse_real): Remove `rest'.
-2006-08-22 Jens Claudius <jens.claudius@yahoo.com>
+2010-03-02 John Tytgat <John.Tytgat@esko.com>
- Fix for previous commit, which caused many compiler warnings/errors
- about addresses of volatile objects passed as function arguments as
- non-volatile pointers.
+ Improve CFF string (especially glyphname) lookup performance.
- * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
- typedef a pointer to a volatile object.
+ We do this by avoiding memory allocation and file I/O. This is
+ Savannah patch #7104.
- * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
- argument `table' a pointer to a volatile object.
+ * 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.
- * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
- argument `table' a pointer to a volatile object.
+ * src/cff/cffload.c: Don't include PS cmaps service.
+ (cff_index_get_pointers): Add `pool' parameter which allows to
+ insert 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.
-2006-08-18 Jens Claudius <jens.claudius@yahoo.com>
+ * src/cff/cffload.h: Don't include PS cmaps service.
+ (cff_index_get_string): Added.
+ (cff_index_get_sid_string): Updated.
- * 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'.
+ * 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.
- * 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.
+ * 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/psaux/t1cmap.c (t1_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/psnames/psmodule.c (ps_unicodes_init): Add variable for
- PS_FreeGlyphNameFunc and use it.
+ * 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>
-2006-06-04 David Turner <david@freetype.org>
+ Simplify code.
+ Suggested by Behdad.
- * 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/base/ftobjs.c (FT_Get_First_Char): Don't use a loop since we
+ call FT_Get_Next_Char anyway if necessary.
- * 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.
+2010-02-26 Behdad Esfahbod <behdad@behdad.org>
-2006-05-25 Werner Lemberg <wl@gnu.org>
+ Improve handling of invalid glyph indices in char->index functions.
- * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
- `-no-undefined'. Reported by Christian Biesinger.
+ * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Use a
+ loop.
-2006-05-19 Brian Weed <bw@imaginengine.com>
+2010-02-18 Chris Liddell <chris.liddell@artifex.com>
- * builds/win32/visualc/freetype.dsp: Release libraries no longer
- have debug information, and debug libraries use `C7 compatible'
- debug info.
+ Fix Savannah bug #28905.
-2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+ Initialize phantom points before calling the incremental interface
+ to update glyph metrics.
- 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.
+ * 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 2006, 2007 by
+Copyright 2010 by
David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used, modified,