Share

The FreeType Project

File Release Notes and Changelog

Release Name: 2.3.6

Notes:
CHANGES BETWEEN 2.3.6 and 2.3.5

  I. IMPORTANT BUG FIXES

    - A  bunch of  potential security  problems have  been found.  All
      users should update.

    - Microsoft  Unicode  cmaps  in  TrueType  fonts  are  now  always
      preferred over Apple cmaps.  This is not a bug per se, but there
      exist some buggy  fonts created for MS which  have broken  Apple
      cmaps.  This affects  only the automatic  selection of FreeType;
      it's always possible to manually select an Apple Unicode cmap if
      desired.

    - Many bug fixes to the TrueType bytecode interpreter.

    - Improved Mac support.

    - Subsetted CID-keyed CFFs are now supported correctly.

    - CID-keyed CFFs with subfonts which are scaled in a  non-standard
      way are now handled correctly.

    - A call to FT_Open_Face with `face_index' < 0 crashed FreeType if
      the font was a Windows (bitmap) FNT/FON.


  II. IMPORTANT CHANGES

    - The new function `FT_Get_CID_Registry_Ordering_Supplement' gives
      access to  those fields in a CID-keyed font.  The code  has been
      contributed by Derek Clegg.

    - George Williams  contributed  code  to validate  the new  `MATH'
      OpenType  table (within  the `otvalid'  module).  The  `ftvalid'
      demo program has been extended accordingly.

    - An API for cmap 14 support  (for Unicode Variant Selectors, UVS)
      has been contributed by George Williams.

    - A new face flag FT_FACE_FLAG_CID_KEYED has been added,  together
      with a macro FT_IS_CID_KEYED which evaluates to 1 if the font is
      CID-keyed.


  III. MISCELLANEOUS

    - Build support for symbian has been contributed.

    - Better WGL4 glyph name support, contributed by Sergey Tolstov.

    - Debugging output of the  various FT_TRACEX macros is now sent to
      stderr.

    - The `ftview' demo program now provides artificial slanting too.

    - The `ftvalid' demo  program has a new  option `-f' to select the
      font index.


Changes: * Version 2.3.6 released. ========================= Tag sources with `VER-2-3-6'. * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump version number to 2.3.6. * README, Jamfile (RefDoc), builds/win32/visualc/index.html, builds/win32/visualc/freetype.dsp, builds/win32/visualc/freetype.vcproj, builds/win32/visualce/index.html, builds/win32/visualce/freetype.dsp, builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. * builds/unix/configure.raw (version_info): Set to 9:17:3. * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x' and `scale_y'. * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'. * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H. * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. 2008-06-10 Werner Lemberg <wl@gnu.org> * src/base/ftobjs.c (open_face): Check `clazz->init_face' and `clazz->done_face'. 2008-06-09 VaDiM <s_sliva@rambler.ru> Support debugging on WinCE. From Savannah patch #6536; this fixes bug #23497. * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro as a replacement for OutputDebugStringA (which WinCE doesn't have). Update all callers. (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have environment variables. 2008-06-09 Werner Lemberg <wl@gnu.org> * README.CVS: Updated. * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated for newer versions of autoconf and friends. 2008-06-08 Werner Lemberg <wl@gnu.org> * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and `private_len' unsigned. * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read it as such. (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned. * src/base/ftstream.c (FT_Stream_Skip): Reject negative values. * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis' for sane value. Fix typo. * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly. * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check `last_point'. * src/sfnt/ttload.c (tt_face_load_max_profile): Limit `maxTwilightPoints'. 2008-06-06 Werner Lemberg <wl@gnu.org> * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0' correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem. 2008-06-03 Werner Lemberg <wl@gnu.org> * include/freetype/ftcache.h (FTC_FaceID): Change type back to FT_Pointer. Reported by Ian Britten <britten@caris.com>. 2008-06-02 Werner Lemberg <wl@gnu.org> Emit header info for defined FreeType objects in reference. * src/tools/docmaker/content.py (re_header_macro): New regexp. (ContentProcessor::__init__): Initialize new dictionary `headers'. (DocBlock::__init__): Collect macro header definitions. * src/tools/docmaker/tohtml.py (header_location_header, header_location_footer): New strings. (HtmlFormatter::__init__): Pass `headers' dictionary. (HtmlFormatter::print_html_field): Don't emit paragraph tags. (HtmlFormatter::print_html_field_list): Emit empty paragraph. (HtmlFormatter::block_enter): Emit header info. 2008-06-01 Werner Lemberg <wl@gnu.org> * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H, FT_INCREMENTAL_H): Added. 2008-05-28 Werner Lemberg <wl@gnu.org> * src/tools/docmaker/sources.py (SourceBlock::__init__): While looking for markup tags, return immediately as soon a single one is found. 2008-05-28 Werner Lemberg <wl@gnu.org> * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses original, unscaled input values. Confirmed by Greg Hitchcock from Microsoft. 2008-05-27 Werner Lemberg <wl@gnu.org> * src/tools/docmaker/tohtml.py (block_footer_start, block_footer_middle): Beautify output. 2008-05-25 Werner Lemberg <wl@gnu.org> * src/raster/ftraster.c (fc_black_render): Return 0 when we are trying to render into a zero-width/height bitmap, not an error code. * src/truetype/ttgload.c (load_truetype_glyph): Move initialization of the graphics state for subglyphs to... (TT_Hint_Glyph): This function. Hinting instructions for a composite glyph apparently refer to the just hinted subglyphs, not the unhinted, unscaled outline. This seems to fix Savannah bugs #20973 and (at least partially) #23310. 2008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid `aface' is returned by FT_New_Face_From_FOND(). The patch was proposed by an anonymous reporter of Savannah bug #23204. 2008-05-18 Werner Lemberg <wl@gnu.org> * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after correction for pixel boundary. Without this patch, the effect can be cumulative under certain circumstances, making glyphs taller and taller after each call. This fixes Savannah bug #19976. 2008-05-18 Werner Lemberg <wl@gnu.org> * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr. This fixes Savannah bug #23280. * docs/CHANGES: Updated. 2008-05-18 David Turner <david@freetype.org> * src/psnames/psmodule.c (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets, ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make declarations non-global. * src/type1/t1load.c: Add missing comment. 2008-05-17 Sam Hocevar <samh> * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour glyphs correctly. Patch from Savannah bug #23277. 2008-05-16 Werner Lemberg <wl@gnu.org> * docs/CHANGES: Updated. 2008-05-16 Sergey Tolstov <stolstov@esri.com> Improve support for WGL4 encoded fonts. * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro. (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets): New arrays. (ps_check_wgl_name, ps_check_wgl_unicode): New functions. (ps_unicodes_init): Use them to add additional Unicode mappings. 2008-05-15 Werner Lemberg <wl@gnu.org> * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <op_closepath>: `closepath' without a path is a no-op, not an error (cf. the PS reference manual). Reported by Martin McBride. 2008-05-15 Werner Lemberg <wl@gnu.org> * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated. 2008-05-15 Werner Lemberg <wl@gnu.org> * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array which contains a single but empty entry. This is technically invalid (since it must end with `return'), but... Reported by Martin McBride. 2008-05-14 Werner Lemberg <wl@gnu.org> Finish fix of scaling bug of CID-keyed CFF subfonts. * include/freetype/internal/ftcalc.h, src/base/ftcalc.c (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New functions. * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to provide global hinting data for both the top-font and all subfonts (with proper scaling). * src/cff/cffobjs.c (cff_make_private_dict): New function, using code from `cff_size_init'. (cff_size_init, cff_size_done, cff_size_select, cff_size_request): Use CFF_Internal and handle subfonts. (cff_face_init): Handle top-dict and subfont matrices correctly; apply some heuristic in case of unlikely matrix concatenation results. This has been discussed with people from Adobe (thanks goes mainly to David Lemon) who confirm that the CFF specs are fuzzy and not correct. * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument. * src/cff/cffgload.c (cff_builder_init): Updated. (cff_decoder_prepare): Handle hints globals for subfonts. Update all callers. (cff_slot_load): Handling scaling of subfonts properly. * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function. (cff_parse_font_matrix): Use it. * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em' FT_ULong. * docs/CHANGES: Document it. 2008-05-13 Werner Lemberg <wl@gnu.org> * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init): Handle case `face_index < 0'. * docs/CHANGES: Document it. 2008-05-04 Werner Lemberg <wl@gnu.org> First steps to fix the scaling bug of CID-keyed CFF subfonts, reported by Ding Li on 2008/03/28 on freetype-devel. * src/base/cff/cffparse.c (power_tens): New array. (cff_parse_real): Rewritten to introduce a fourth parameter which returns the `scaling' of the real number so that we have no precision loss. This is not used yet. Update all callers. (cff_parse_fixed_thousand): Replace with... (cff_parse_fixed_scaled): This function. Update all callers. 2008-05-03 Werner Lemberg <wl@gnu.org> * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without transformation since it recursively calls FT_Load_Glyph. This fixes Savannah bug #23143. 2008-04-26 Werner Lemberg <wl@gnu.org> * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x' and `scale_y' as obsolete since they aren't used. * src/psaux/psobjs.c (t1_builder_init): Updated. * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as obsolete since they aren't used. * src/cff/cffgload.c (cff_builder_init): Updated. 2008-04-14 Werner Lemberg <wl@gnu.org> * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah bug #22909. 2008-04-13 Werner Lemberg <wl@gnu.org> * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if integer part is zero. 2008-04-01 Werner Lemberg <wl@gnu.org> Fix compilation with g++ 4.1 (with both `single' and `multi' targets). * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block which is crossed by a `goto'. * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype. 2008-03-31 Werner Lemberg <wl@gnu.org> Fix support for subsetted CID-keyed CFFs. * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED, FT_IS_CID_KEYED): New macros. * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the maximum CID value in CID-keyed CFFs. Handle FT_FACE_FLAG_CID_KEYED flag. * docs/CHANGES: Document it. Fix CFF font matrix calculation and improve precision. * src/cff/cffparse.c (cff_parse_real): Increase precision if integer part is zero. (cff_parse_font_matrix): Simplify computation of `units_per_em'; this prevents overflow also. Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts. * src/cid/cidriver.c: Include FT_SERVICE_CID_H. (cid_get_ros): New function. (cid_service_cid_info): New service structure. (cid_services): Register it. 2008-03-23 Werner Lemberg <wl@gnu.org> Adjustments for Visual C++ 8.0, as reported by Rainer Deyke. * builds/compiler/visualc.mk (CFLAGS): Remove /W5. (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE. 2008-03-21 Laurence Darby <ldarby> * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from Savannah bug #22675. 2008-03-13 Derek Clegg <dclegg@apple.com> * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop. Patch from Savannah bug #22541. 2008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp> * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant): Return correct value. (tt_cmap14_variant_chars): Fix check for `di'. 2008-02-29 Wermer Lemberg <wl@gnu.org> * docs/CHANGES: Updated. 2008-02-29 Wolf Add build support for symbian platform. From Savannah bug #22440. * builds/symbian/*: New files. 2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name synthesis. For any face of a specified FOND, always the name for the first face was used. Except of a FOND that refers multiple Type1 font files, wrong synthesized font names are not used at all, so this is an invisible bug. A few limit checks are added too. * builds/mac/ftmac.c: Ditto. 2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * builds/unix/configure.raw: Split compiler option to link Carbon frameworks to one option for CoreServices framework and another option for ApplicationServices framework. The split options can be managed by GNU libtool to avoid unrequired duplication when FreeType is linked with other applications. Suggested by Daniel Macks, Savannah bug #22366. 2008-02-18 Victor Stinner <victor.stinner@haypocalc.com> * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix from Savannah bug #22356. 2008-02-17 Jonathan Blow <jon@number-none.com> * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): Check for valid callback pointers. 2008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource handle by its value instead of ResError(), fix provided by Deron Kazmaier. According to the Resource Manager Reference, GetResource(), Get1Resource(), GetNamedResource(), Get1NamedResource() and RGetResource() set noErr but return NULL handle when they can not find the requested resource. These functions never return undefined values, so it is sufficient to check if the handle is not NULL. * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto. 2008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other inclusion styles. Now it always includes src/base/ftmac.c; builds/mac/ftmac.c is never included in any configuration. * builds/unix/configure.raw: Print warning if configure is executed with options to specify Carbon functionalities explicitly. * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not included automatically and manual replacement is required. 2008-02-11 Werner Lemberg <wl@gnu.org> * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk (dos_setup), builds/freetype.mk (clean_project_dos, distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan Murdoch. 2008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com> * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to mention intra-pixel algorithm. * include/freetype/freetype.h (FT_Render_Mode): Mention that FT_Library_SetLcdFilter can be used to reduce fringes. 2008-01-16 Werner Lemberg <wl@gnu.org> * src/raster/ftraster.c (ft_black_render): Check `outline' before using it. Reported by Allan Yang. 2008-01-12 Werner Lemberg <wl@gnu.org> * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove. 2008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com> * src/raster/ftraster.c (ft_black_init) [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation. 2008-01-10 Werner Lemberg <wl@gnu.org> * src/truetype/ttgload.c (load_truetype_glyph): Handle the case where the number of contours in a simple glyph is zero (and which does contain an entry in the `glyf' table). This fixes Savannah bug #21990. 2008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> Formatting suggested by Sean McBride. * builds/mac/ftmac.c: Formatting (tab expanded). * src/autofit/afindic.c: Ditto. * src/base/ftcid.c: Ditto. * src/base/ftmac.c: Ditto. 2007-12-30 Werner Lemberg <wl@gnu.org> * src/smooth/ftgrays.c (gray_raster_render): Check `outline' correctly. 2007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> Improvement of POSIX resource-fork accessor to load unsorted references in a resource. In HelveLTMM (resource-fork PostScript Type1 font bundled with Mac OS X since 10.3.x), the appearance order of PFB chunks is not sorted; sorting the chunks by reference IDs is required. * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure type to store a pair of reference ID and offset to the chunk. * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to sort FT_RFork_Ref by their reference IDs. (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is sorted by reference ID. 2007-12-14 Werner Lemberg <wl@gnu.org> * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten' division too early; otherwise the most significant digit(s) of the final result are lost as the value is truncated to an integer. This fixes Savannah bug #21794 (where the patch has been posted too). 2007-12-06 Fix <4d876b82@gmail.com> Pass options from one configure script to another as-is (not expanded). This is needed for options like --includedir='${prefix}/include'. * builds/unix/detect.mk, configure: Prevent argument expansion in call to the (real) `configure' script. 2007-12-06 Werner Lemberg <wl@gnu.org> * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if TT_USE_BYTECODE_INTERPRETER isn't defined. 2007-12-06 Werner Lemberg <wl@gnu.org> There exist CFFs which contain opcodes for the Type 1 operators `hsbw' and `closepath' which are both invalid in Type 2 charstrings. However, it doesn't harm to support them. * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and `cff_op_closepath.' (cff_argument_counts): Ditto. (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath) and 13 (hsbw) which are invalid in Type 2 charstrings. 2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to support new pathname syntax `..namedfork/rsrc' to access a resource fork on Mac OS X. The legacy syntax `/rsrc' does not work on case-sensitive HFS+. (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of buffer size to store a pathname. * include/freetype/internal/ftrfork.h: Increment the number of resource fork guessing rule. 2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * builds/unix/configure.raw: Improve the compile tests to search Carbon functions. * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16). 2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> The documents and comments for Mac OS X are improved by Sean McBride. * src/base/ftmac.c: Fix a comment. * include/freetype/ftmac.h: Ditto. * docs/INSTALL.MAC: Improve English and add comment on lowest system version specified by MACOSX_DEPLOYMENT_TARGET. 2007-12-04 Werner Lemberg <wl@gnu.org> * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to concatenate error codes. * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto. 2007-12-04 Graham Asher <graham.asher@btinternet.com> * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to concatenate error codes. 2007-12-04 Sean McBride <sean@rogue-research.com> * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler warning. 2007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is not working since 2.3.5. In FT_Open_New(), if FT_New_Stream() cannot mmap() the specified file and cannot seek to head of the specified file, it returns NULL stream and FT_Open_New() returns the error immediately. On MacOS, most legacy MacOS fonts fall into such a scenario because their data forks are zero-sized and cannot be sought. To proceed to guessing of resource fork fonts, the functions for legacy MacOS font must properly handle the NULL stream returned by FT_New_Stream(). * src/base/ftobjs.c (IsMacBinary): Return error FT_Err_Invalid_Stream_Operation immediately when NULL stream is passed. (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed to fallback. Originally, legacy MacOS font is tested in the cases of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty) or FT_Err_Unknown_File_Format (occurs when AppleSingle header or .dfont header is combined). Now the case of FT_Err_Cannot_Open_Stream is included. * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL, skip FT_Stream_Seek(), which seeks to the head of stream, and proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek() for a NULL stream causes a Bus error on Mac OS X. (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream immediately if passed stream is NULL. (raccess_guess_apple_single): Ditto. 2007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> Fix for Carbon incompatibilities since Mac OS X 10.5, proposed by Sean McBride. * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET. * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling Carbon functions from a forked process is classified as unsafe by Apple. All Carbon-dependent functions should be deprecated. * src/base/ftmac.c: Use essential header files <Carbon/Carbon.h> and <ApplicationServices/ApplicationServices.h> instead of all-in-one header file <CoreServices/CoreServices.h>. Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple genuine macro PATH_MAX. Add fallback macro for kATSOptionFlagsUnRestrictedScope which is not found in Mac OS X 10.0. Multi-character constants ('POST', 'sfnt' etc) are replaced by 64bit constants calculated by FT_MAKE_TAG() macro. For the index in the segment of resource fork, new portable type ResourceIndex is introduced for better compatibility. This type is since Mac OS X 10.5, so it is defined as short when built on older platforms. (FT_ATSFontGetFileReference): If build target is only the systems 10.5 and newer, it calls Apple genuine ATSFontGetFileReference(). (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5 and newer or 64bit platform, because legacy type FSSpec type is removed completely. (FT_New_Face_From_FSSpec): Ditto. 2007-11-01 Werner Lemberg <wl@gnu.org> * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This fixes Savannah bug #21485. 2007-10-29 Daniel Svoboda <dasvo@planeta@cz> * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver can handle the font at all, then check `face_index'. Otherwise, the driver might return the wrong error code. This fixes Savannah bug #21468. 2007-10-21 Werner Lemberg <wl@gnu.org> * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare support for bit 8 of the `fsSelection' field in the `OS/2' table. MS is already using this; hopefully, this becomes part of OpenType 1.5. Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22 (WWS_SUBFAMILY). 2007-10-20 Werner Lemberg <wl@gnu.org> * src/tools/docmaker/tohtml.py (html_header_2): Fix typo. Add `td.left' element to CSS. (toc_section_enter): Use it. 2007-10-18 David Turner <david@freetype.org> * include/freetype/freetype.h, src/base/ftobjs.c: Rename API functions related to cmap type 14 support to the `FT_Object_ActionName' scheme: FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant Update documentation accordingly. * src/sfnt/ttcmap.c: Stronger cmap 14 validation. Make the code a little more consistent with FreeType coding conventions and modify the cmap14 functions that returned a newly allocated array to use a persistent vector from the TT_CMap14 object instead. (TT_CMap14Rec): Provide array and auxiliary data for result. (tt_cmap14_done, tt_cmap14_ensure): New functions. (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant, tt_cmap14_char_var_index, tt_cmap14_variants, tt_cmap14_char_variants, tt_cmap14_def_char_count, tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved. 2007-10-15 George Williams <gww@silcom.com> Add support for cmap type 14. * devel/ftoption.h, include/freetype/config/ftoption.h (TT_CONFIG_CMAP_FORMAT_14): New macro. * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc, FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc, FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New support function prototypes. (FT_CMap_ClassRec): Add them. Update all users. * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New macro. * include/freetype/freetype.h (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API functions. * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary function. (FT_Set_Charmap): Disallow cmaps of type 14. (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API functions. * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros. (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info, tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant, tt_cmap14_char_var_index, tt_cmap14_char_var_isdefault, tt_cmap14_variants, tt_cmap14_char_variants, tt_cmap14_def_char_count, tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and structures for cmap 14 support. (tt_cmap_classes): Register tt_cmap14_class_rec. (tt_face_build_cmaps): One more error message. * docs/CHANGES: Mention cmap 14 support. 2007-10-01 Werner Lemberg <wl@gnu.org> * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4 charmap fails, do the loop again while searching a UCS-2 charmap. This favours MS charmaps over Apple ones. 2007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * src/base/ftmac.c: Introduction of abstract `short' data types, ResFileRefNum and ResID. These types were introduced for Copland, then backported to MPW. The variables exchanged with FileManager QuickDraw frameworks are redefined by these data types. Patch was proposed by Sean McBride. * builds/mac/ftmac.c: Ditto. 2007-08-18 Werner Lemberg <wl@gnu.org> * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found by Imran Yousaf. Fixes Savannah bug #20773. (otv_Lookup_validate): Correct handling of LookupType. Found by Imran Yousaf. Fixes Savannah bug #20782. 2007-08-17 George Williams <gww@silcom.com> * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of SingleSubstFormat1. 2007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by ${build-gcc} (unchecked) instead of by ${build}-gcc (checked). Found by Ryan Hill. 2007-08-11 George Williams <gww@silcom.com> * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h (otv_Coverage_validate): Add fourth argument to pass an expected count value. Update all users. Check glyph IDs. (otv_ClassDef_validate): Check `StartGlyph'. * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID checks. * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only 56 constants. (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate): Check glyph IDs. 2007-08-08 Werner Lemberg <wl@gnu.org> * src/otvalid/otvbase.c, src/otvalid/otvcommn.c, src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where appropriate. Reported by George. * include/freetype/internal/fttrace.h: Define `trace_otvmath'. * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c. * docs/CHANGES: Updated. 2007-08-08 George Williams <gww@silcom.com> Add `MATH' validating support to otvalid module. * include/freetype/tttags.h (TTAG_MATH): New macro. * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro. (FT_VALIDATE_OT): Updated. * src/otvalid/otmath.c: New file. * src/otvalid/otvalid.c: Include otvmath.c. * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table. 2007-08-04 Werner Lemberg <wl@gnu.org> * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL. Fixes Savannah bug #20686. 2007-08-03 Werner Lemberg <wl@gnu.org> * src/psnames/psmodule.c: Fix usage of FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher. 2007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> * src/base/ftmac.c (open_face_from_buffer): The argument `driver_name' is typed as `const char*' to match with the callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT. This is same with open_face_from_buffer in src/base/ftobjs.c. Found and fixed by Sean McBride. 2007-07-28 Werner Lemberg <wl@gnu.org> * src/raster/ftraster.c (count_table): Make it conditional. * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with a preprocessor statement. 2007-07-27 Werner Lemberg <wl@gnu.org> * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before first usage. From Savannah patch #6115. 2007-07-16 Werner Lemberg <wl@gnu.org> * docs/CHANGES: Updated. 2007-07-16 Derek Clegg <dclegg@apple.com> Add new service for getting the ROS from a CID font. * include/freetype/config/ftheader.h (FT_CID_H): New macro. * include/freetype/ftcid.h: New file. * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro. * include/freetype/internal/services/svcid.h: New file. * src/base/ftcid.c: New file. * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H. (cff_get_ros): New function. (cff_service_cid_info): New service structure. (cff_services): Register it. * src/cff/cffload.c (cff_font_done): Free registry and ordering. * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'. * modules.cfg (BASE_EXTENSIONS): Add ftcid.c. 2007-07-11 Derek Clegg <dclegg@apple.com> Add support for postscript name service to CFF driver. * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H. (cff_get_ps_name): New function. (cff_service_ps_name): New service structure. (cff_services): Register it. 2007-07-07 Werner Lemberg <wl@gnu.org> * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of `target'. Reported by Sean McBride. 2007-07-06 Werner Lemberg <wl@gnu.org> * src/pfr/pfrcmap.c: Include pfrerror.h. * src/autofit/afindic.c: Add some external declarations to pacify `make multi' compilation. * src/cid/cidgload.c (cid_load_glyph): Pacify compiler. * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP), src/autofit/aflatin.c (af_latin_hints_compute_edges), src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c (tt_face_get_metrics), src/base/ftobjs.c (open_face) [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler. * docs/release: Mention test compilation targets. 2007-07-04 Werner Lemberg <wl@gnu.org> * docs/PROBLEMS: Mention that some PS based fonts can't be handled correctly by FreeType. * src/truetype/ttgload.c (load_truetype_glyph): Always allow a recursion depth of 1. This was the maximum value in TrueType 1.0, and some older fonts don't set this field correctly. * src/gxvalid/gxvmort1.c (gxv_mort_subtable_type1_substTable_validate): Fix tracing message. 2007-07-03 Werner Lemberg <wl@gnu.org> * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize `round' to pacify compiler.