2004-02-11 Werner Lemberg * src/cid/cidload.c (cid_face_open): Always allocate face->cid_stream so that we can deallocate it safely. 2004-02-10 Werner Lemberg Make the PS parser more tolerant w.r.t. non-standard font data. In general, an error is only reported in case of a syntax error; a wrong type is now simply ignored (if possible). To be independent of the order of various MM-specific keywords, the parse_shared_dict routine has been removed -- the PS parser is now capable to skip this data. It no longer fails on parsing e.g. dup /WeightVector exch def Since the token following /WeightVector isn't `[' (starting an array) it is simply ignored. * include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a new internal error value. * src/type1/t1load.c (parse_blend_axis_types, parse_blend_design_positions, parse_blend_design_map): Return T1_Err_Ignore if no proper array is following the keyword. (parse_weight_vector): Use T1_ToTokenArray, initializing `blend' structure, if necessary. Return T1_Err_Ignore if no proper array is following the keyword. (parse_shared_dict): Removed. (parse_encoding): Set parser->root.error to return T1_Err_Ignore if no result can be obtained. Check for errors before accessing `elements' array. (t1_keywords): Remove /shareddict. (parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore. Set keyword_flag only in case of success. Check error code if skipping an unrecognized token. (T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend if blend commands haven't set up a proper MM font. * src/psaux/psobjs.c (ps_parser_load_field_table): Remove special code for synthetic fonts. Return PSaux_Err_Ignore if no proper value has been found. 2004-02-09 Werner Lemberg * src/cff/cffgload.c (cff_decoder_parse_charstrings) : Preserve glyph width before calling cff_operator_seac. 2004-02-09 Martin Muskens * src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special first argument for `hintmask' and `cntrmask' operators also. 2004-02-08 Werner Lemberg * builds/unix/configure.in: Call AC_SUBST for `enable_shared', `hardcode_libdir_flag_spec', and `wl'. * builds/unix/configure: Regenerated. * builds/unix/freetype-config.in: Make --prefix and --exec-prefix actually work. Report a proper --rpath (or -R) value for --libs argument if a shared library has been built. * docs/CHANGES: Updated. 2004-02-07 Keith Packard * src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix computation of various vertical and horizontal metric values. * src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font): Ditto. 2004-02-07 Werner Lemberg * builds/win32/visualc/index.html, builds/win32/visualc/freetype.dsp, builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated. 2004-02-07 Vitaliy Pasternak * builds/win32/visualc/freetype.sln, builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003. 2004-02-03 Werner Lemberg * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Initialize `node'. * src/type1/t1load.c (parse_dict): Initialize `have_integer'. 2004-02-02 Werner Lemberg * src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands outside of /Subrs or /CharStrings. This can happen if there is additional code manipulating those two arrays so that FreeType doesn't recognize them properly. (T1_Open_Face): Improve an error message. 2004-02-01 Werner Lemberg * src/type1/t1load.c (parse_charstrings): Exit immediately if there are no elements in /CharStrings. This is needed for fonts like Optima-Oblique which not only define /CharStrings but access it also. 2004-02-01 David Turner * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources. * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) : Provide macro version which doesn't use inline code. * include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP) : Ditto. Use FTC_MRULIST_LOOKUP_CMP. * include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New macro. (FTC_MRULIST_LOOKUP): Use it. * src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated. * src/cache/ftcbasic.c: Fix compiler warnings. * src/cache/ftcmanag.c (FTC_Manager_LookupSize, FTC_Manager_LookupFace) : Use FTC_MRULIST_LOOKUP_CMP. * src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after heavy testing). * Jamfile: Updating `refdoc' target, and adding `autohint' to the list of modules to build. Both the autohinter and autofitter will be built by default. But which one will be used is determined by the content of `ftmodule.h'. * src/autofit/*: Many updates, but the code is still buggy... 2004-01-31 Werner Lemberg * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of accent offset. Update code similarly to the seac support for Type 1 fonts. (cff_decoder_parse_charstrings) : Fix magnitude of accent offset. Don't hint glyphs twice if seac is emulated. : Assign correct point tags. * docs/CHANGES: Updated. 2004-01-30 Werner Lemberg * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not FT_MEM_COPY, for copying the private dict. * src/type1/t1load.c (parse_subrs): Assign number of subrs only in first run. (parse_charstrings): Parse /CharStrings in second run without assigning values. (parse_dict): Skip all /CharStrings arrays but the first. We need this for non-standard fonts like `Optima' which have different outlines depending on the resolution. Note that there is no guarantee that we get fitting /Subrs and /CharStrings arrays; this can only be done by a real PS interpreter. 2004-01-29 Antoine Leca * builds/win32/visualc/index.html: New file, giving detailed explanations about forcing CR+LF line endings for the VC++ project files. 2004-01-22 Garrick Meeker * src/cff/cffload.c (cff_subfont_load): Initialize `dict'. 2004-01-22 Werner Lemberg Add support for the hexadicimal representation of binary data started with `StartData' in CID-keyed Type 1 fonts. * include/freetype/internal/t1types.h (CID_FaceRec): Add new members `binary_data' and `cid_stream'. * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'. (cid_hex_to_binary): New auxiliary function. (cid_face_open): Add new argument `face_index' to return quickly if less than zero. Updated all callers. Call `cid_hex_to_binary', then open and assign memory stream to `face->cid_stream' if `parser->binary_length' is non-zero. * src/cid/cidload.h: Updated. * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and `cid_stream'. * src/cid/cidparse.c (cid_parser_new): Check arguments to `StartData' and set parser->binary_length accordingly. * src/cid/cidparse.h (CID_Parser): New member `binary_length'. * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'. * docs/CHANGES: Updated. 2004-01-21 Werner Lemberg include/freetype/config/ftstdlib.h (ft_atoi): Replaced with... (ft_atol): This. * src/base/ftdbgmem.c: s/atol/ft_atol/. * src/type42/t42drivr.c: s/ft_atoi/ft_atol/. 2004-01-20 Masatake YAMATO * include/freetype/ftcache.h: Delete duplicated definition of FTC_FaceID. * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap Info service function if the cmap comes from sfnt. Return 0 if the cmap is sythesized in cff module. 2004-01-20 David Turner * src/cache/ftcmanag.c (ftc_size_node_compare): Call FT_Activate_Size. 2004-01-20 Werner Lemberg * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one CR, LF, or CR/LF after `eexec'. 2004-01-18 David Turner * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler warning. * src/tools/docmaker/*: Updating beautifier tool. 2004-01-15 David Turner * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix infinite loop bug. * include/freetype/ftstroke.h: Include FT_GLYPH_H. (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New declarations. * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H. (FT_Outline_GetOutsideBorder): Inverse result. (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_GlyphStrokeBorder): New functions. (FT_Stroker_EndSubPath): Close path if needed. (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind. * include/freetype/cache/ftcmanag.h (FTC_ScalerRec, FTC_Manager_LookupSize): Moved to... * include/freetype/ftcache.h (FTC_ScalerRec, FTC_Manager_LookupSize): Here. * src/tools/docmaker/docbeauty.py: New file to beautify the documentation comments (e.g., to convert them to single block border mode). * src/tools/docmaker/docmaker.py (file_exists, make_file_list): Moved to... * src/tools/docmaker/utils.py (file_exists, make_file_list): Here. 2004-01-14 David Turner * include/freetype/internal/ftmemory.h (FT_ARRAY_COPY, FT_ARRAY_MOVE): New macros to make copying arrays easier. Updated all relevant code to use them. 2004-01-14 Werner Lemberg * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier. Use number of charstrings as argument to CFF_Load_FD_Select (as documented in the CFF specs). 2004-01-13 Graham Asher * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of `glyph->memory' up to free arrays properly in case of failure. 2004-01-10 Masatake YAMATO Make `FT_Get_CMap_Language_ID' work with CFF. Bug reported by Steve Hartwell . * src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H. (cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP. (cff_get_cmap_info): New function. (cff_service_get_cmap_info) New entry for cff_services. * src/sfnt/ttcmap0.c: Exit loop after a format match has been found. Suggested by Steve Hartwell . 2004-01-03 Masatake YAMATO * src/base/ftobjs.c (destroy_charmaps): New function. (destroy_face, open_face): Use `destroy_charmaps'. 2004-01-01 Werner Lemberg * docs/CHANGES: Updated. 2004-01-01 Michael Jansson * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of size->metrics.descender. 2003-12-31 Wolfgang Domröse * src/cff/cffgload.c (cff_decoder_parse_charstrings) [FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4. : Change type of dx and dy to FT_Pos and remove cast for accessing arguments. 2003-12-31 Werner Lemberg * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous change. It's not necessary. 2003-12-29 Smith Charles * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated flags set' correctly. 2003-12-29 Werner Lemberg * src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating `full' and `weight' properly. * src/cff/cffgload.c (cff_decoder_parse_charstrings) [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for tracing output. 2003-12-26 Werner Lemberg * include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func): Use FT_UInt for ppem values. * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for ppem values. * src/sfnt/ttsbit.h: Updated. * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values larger than -0FFFF. 2003-12-25 Werner Lemberg * src/base/fttrigon.c, src/base/ftgloadr.c: Inlude FT_INTERNAL_OBJECTS_H. * src/base/ftstroke.c (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with C++ compilers. * src/cache/ftcmru.c, include/freetype/cache/ftcmru.h: s/select/selection/ to avoid compiler warning. * src/cff/cffload.h: s/select/ftselect/ to avoid potential compiler warning. 2003-12-24 Werner Lemberg * src/cache/ftcsbits.c (FTC_SNode_Weight): s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/. 2003-12-24 David Turner * Fixed compilation problems in the cache sub-system. * Partial updates to src/autofit. * Jamfile (FT2_COMPONENTS): Add autofit module. 2003-12-23 Werner Lemberg * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle CID-keyed fonts. 2003-12-23 David Turner * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND, FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_CEIL): New macros. They are used to avoid compiler warnings with very pedantic compilers. Note that `(x) & -64' causes a warning if (x) is not signed. Use `(x) & ~63' instead! Updated all related code. Add support for extraction of `inside' and `outside' borders. * src/base/ftstroke.c (FT_StrokerBorder): New enumeration. (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder, FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions. (FT_StrokeBorderRec): New boolean member `valid'. (ft_stroke_border_get_counts): Updated. * include/freetype/ftstroke.h: Updated. 2003-12-22 Werner Lemberg * include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions to describe the `charset' field in FT_WinFNT_HeaderRec. * src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to FT_ENCODING_NONE except for FT_WinFNT_ID_MAC. * include/freetype/freetype.h (FT_Encoding): Improve comment, based on work by Detlef Würkner . * docs/CHANGES: Updated. 2003-12-22 David Turner * include/freetype/ftcache.h, include/freetype/cache/ftcmanag.h, include/freetype/cache/ftccache.h, include/freetype/cache/ftcmanag.h, include/freetype/cache/ftcmru.h (added), include/freetype/cache/ftlru.h (removed), include/freetype/cache/ftcsbits.h, include/freetype/cache/ftcimage.h, include/freetype/cache/ftcglyph.h, src/cache/ftcmru.c, src/cache/ftcmanag.c, src/cache/ftccache.c, src/cache/ftcglyph.c, src/cache/ftcimage.c, src/cache/ftcsbits.c, src/cache/ftccmap.c, src/cache/ftcbasic.c (added), src/cache/ftclru.c (removed): *Complete* rewrite of the cache sub-system to `solve' the following points: - all public APIs have been moved to FT_CACHE_H, everything under `include/freetype/cache' is only needed by client applications that want to implement their own caches - a new function named FTC_Manager_RemoveFaceID to deal with the uninstallation of FaceIDs - the image and sbit cache are now abstract classes, that can be extended much more easily by client applications - better performance in certain areas. Further optimizations to come shortly anyway... - the FTC_CMapCache_Lookup function has changed its signature, charmaps can now only be retrieved by index - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in private header for the moment) 2003-12-21 Werner Lemberg * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword is encountered. 2003-12-19 Werner Lemberg * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32. For example, the Japanese Hiragino font already contains 15 subfonts. * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for CID-keyed fonts. * devel/ftoption.h: Define FT_DEBUG_MEMORY. 2003-12-18 Werner Lemberg * include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro. * src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values. 2003-12-18 Werner Lemberg * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of `cid_count' to `FT_ULong'. * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids' array. * src/cff/cffload.c (cff_charset_done): Free `cids' array. (cff_font_load): Create cids array only for CID-keyed fonts which are subsetted. * src/cff/cffobjs.c (cff_face_init): Check the availability of the PSNames modules for non-pure CFFs also. Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't CID-keyed. * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h. 2003-12-17 Werner Lemberg * src/sfnt/sfobjs.c (sfnt_init_face): Don't set FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post' table. * docs/CHANGES: Updated. 2003-12-17 Masatake YAMATO Add new function FT_Get_CMap_Language_ID to extract the language ID for TrueType/sfnt fonts. * include/freetype/internal/services/svttcmap.h: New file. * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add svttcmap.h. * src/sfnt/sfdriver.c: Include ttcmap0.h. (tt_service_get_cmap_info): New service. (sfnt_services): Updated. * src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions. (tt_cmap*_class_rec): Add tt_cmap*_get_info members. (tt_get_cmap_info): New function. * src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H. (TT_CMap_ClassRec): New field `get_cmap_info'. (tt_get_cmap_info): New declaration. * src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H. (FT_Get_CMap_Language_ID): New function implementation. * include/freetype/tttables.h (FT_Get_CMap_Language_ID): New function declaration. 2003-12-16 Werner Lemberg * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete. * include/freetype/internal/sfnt.h (SFNT_Interface): Remove obsolete fields `load_charmap' and `free_charmap'. (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed. * src/sfnt/sfnt.c: Don't include ttcmap.c. * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c. * src/sfnt/ttload.c: Don't include ttcmap.h. * src/sfnt/sfdriver.c: Don't include ttcmap.h. (sfnt_interface): Updated. * include/freetype/internal/tttypes.h (TT_TableDirRec, TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec, TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6, TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func, TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed. Obsolete. * src/cff/cffobjs.h (CFF_CharMapRec): Removed. Obsolete. 2003-12-15 Werner Lemberg * docs/CHANGES: Updated. 2003-12-15 Wolfgang Domröse * builds/atari/*: New directory for building FreeType 2 on Atari with the PureC compiler. 2003-12-12 Wolfgang Domröse * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add cast. * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return value is either 0 or 1. 2003-12-12 Werner Lemberg * src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message. (cff_get_name_index): Return if no PSNames service is available. (cff_ps_has_glyph_names): Handle CID-keyed fonts correctly. * src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for CID-keyed fonts. This is the inverse mapping of `sids'. * src/cff/cffload.c (cff_charset_load): New argument `invert'. Initialize charset->cids if `invert' is set. (cff_font_load): In call to cff_charset_load, set `invert' to true for CID-keyed fonts. * src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID and map it to the real glyph index. * docs/CHANGES: Updated. 2003-12-11 Werner Lemberg * src/cff/cffobjs.c (cff_face_init): Don't set FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts. Don't construct a cmap for CID-keyed fonts. 2003-12-10 Werner Lemberg Use implementation specific SID value 0xFFFF to indicate that a dictionary element is missing. * src/cff/cffload.c (cff_subfont_load): Initialize all fields which hold SIDs to 0xFFFF. (cff_index_get_sid_string): Handle SID value 0xFFFF. Handle case where `psnames' is zero. (cff_font_load): Updated. Don't load encoding for CID-keyed CFFs. * src/cff/cffobjs.c (cff_face_init): Updated. Don't check for PSNames module if font is CID-keyed. Compute style name properly (using the same algorithm as in the CID driver). Fix computation of style flags. * src/cff/cfftoken.h: Comment out handling of base_font_name. Rename `postscript' field to `embedded_postscript' * src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name' and `postscript'. 2003-12-10 Detlef Würkner * src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone of the similar BDF function). (pcf_service_bdf): Use it. 2003-12-09 Werner Lemberg * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES only if a `post' table is present. 2003-12-09 George Williams * src/base/ftobjs.c (load_mac_face): Recent versions of Linux support Mac's HFS+ file system, thus enable code to read /rsrc on non-Macintosh platforms also. 2003-12-08 Werner Lemberg * include/freetype/internal/psaux.h (PS_TableRec): Change type of `lengths' to FT_PtrDist. (T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist. * include/freetype/internal/t1types.h (T1_FontRec): Change type of `subrs_len' and `charstrings_len' to FT_PtrDist. * src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk' variable with better solution. (IsMacResource): Remove unused variable `map_len'. Replace `junk' variable with better solution. (FT_Open_Face) [!FT_MACINTOSH]: Add conditional FT_CONFIG_OPTION_MAC_FONTS. 2003-12-08 Wolfgang Domröse * src/autohint/ahhint.c (ah_hinter_hint_edges, ah_hinter_align_strong_points): Add some casts. * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type of `pos' to FT_Long. * src/base/ftobjs.c (Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Change type of `len' to FT_Long. * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'. 2003-12-07 Werner Lemberg * docs/raster.txt: New file, taken from FreeType 1 and completely revised. 2003-12-04 Masatake YAMATO * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for t1_interface. t1_interface is used. 2003-11-27 David Turner * src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of 2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are the scaling values for outline units, not for metric units. 2003-11-25 Werner Lemberg * src/base/ftcalc.c, include/freetype/internal/ftcalc.h (FT_MulDiv_No_Round): Surround code with `#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'. 2003-11-23 Werner Lemberg * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and 64 bit version). * include/freetype/internal/ftcalc.h: Updated. * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro. (TT_INT64): Removed. (DO_DIV): Use TT_MULDIV_NO_ROUND. * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use metrics->x_scale and metrics->y_scale. 2003-11-22 Rogier van Dalen * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro. (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New functions. Similar to Direct_Move, Direct_Move_X, and Direct_Move_Y but without touching. (Compute_Funcs): Use new functions. (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45): Fix rounding of value zero. (DO_DIV): Don't use TT_MULDIV. (Ins_SHC): This instruction actually touches the points. (Ins_MSIRP): Fix undocumented behaviour. * src/truetype/ttinterp.h (TT_ExecContextRec): Updated. 2003-11-22 Werner Lemberg * docs/VERSION.DLL, docs/CHANGES: Updated. * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and metrics->y_scale really precise. (FT_Load_Glyph): Update computation of linearHoriAdvance and linearVertAdvance. * src/true/type/ttinterp.c (Update_Max): Use FT_REALLOC. 2003-11-22 David Turner * src/autofit/*: More updates. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. * builds/unix/configure.ac (version_info): Set to 9:6:3. * README: Updated. 2003-11-13 John A. Boyd Jr. * src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c (pcf_interpret_style): Replace spaces with dashes in properties SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing. 2003-11-11 Werner Lemberg * docs/CHANGES: Updated. 2003-11-11 John A. Boyd Jr. Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF fonts. * src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function. (BDF_Face_Init): Don't handle style properties but call bdf_interpret_style. * src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function. (pcf_load_font): Don't handle style properties but call pcf_interpret_style. 2003-11-07 Werner Lemberg * Version 2.1.7 released. ========================= * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. * builds/unix/ft2unix.h: Fix comments. * builds/unix/ftconfig.in: Synchronized with ANSI version. Use `#undef' in templates as recommended in the autoconf documentation. Since real `#undef' lines don't survive during configuration, use `/undef' instead; the postprocessing facility of the AC_CONFIG_HEADERS autoconf macro converts them to `#undef'. * builds/unix/install.mk (install): Install Unix version of `ftconfig.h'. * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro to include the correct `ftconfig.h' file. * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed. (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59. * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59. * builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of AC_CONFIG_HEADER to create ftconfig.h, and use second argument to replace `/undef' with `#undef'. Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap. Use AS_HELP_STRING in AC_ARG_WITH. Update syntax to autoconf 2.59. * builds/unix/ltmain.sh: Regenerated with `libtoolize --force --copy' from libtool 1.5. * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from automake 1.7.8. * builds/unix/configure: Regenerated with autoconf 2.59. * builds/unix/config.guess, builds/unix/config.sub: Updated from `config' CVS module at subversions.gnu.org * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from `texinfo' CVS module at subversions.gnu.org. * builds/vms/ftconfig.h: Synchronized with ANSI version. * docs/CUSTOMIZE: Fix documentation error. * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated. * builds/freetype.mk (refdoc): Updated --title. 2003-11-07 David Turner * Version 2.1.6 released. ========================= * install: Removed. Obsolete. 2003-11-04 Werner Lemberg * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H. (sfnt_service_sfnt_table): New service. (sfnt_services): Updated. * docs/license.txt: Reworded. 2003-11-03 Werner Lemberg * include/freetype/*: Add a guard to all public header files which load FT_FREETYPE_H to reject freetype.h from FreeType 1. 2003-11-02 Patrick Welche * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect first argument of AC_DEFUN with brackets to avoid possible expansion. 2003-11-02 Werner Lemberg * include/freetype/cache/ftcglyph.h: Don't include stddef.h. * include/freetype/freetype.h: Fix check for ft2build.h. 2003-11-01 Werner Lemberg * include/freetype/freetype.h: Check that ft2build.h has been loaded first. * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied patch. 2003-10-31 Detlef Würkner * src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Fix parameter order in calls to FT_FACE_FIND_SERVICE. 2003-10-31 Werner Lemberg * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed. Unused. * src/type42/t42drivr.c (t42_services): Updated. 2003-10-29 David Turner * include/freetype/internal/bdftypes.h: Removed. Obsolete. * src/base/ftbdf.c: Updated. * include/freetype/internal/cfftypes.h: Moved to... * src/cff/cfftypes.h: This place since no other module needs to know about those types. * include/freetype/internal/t42types.h: Moved to... * src/type42/t42types.h: This place since no other module needs to know about those types. * include/freetype/internal/services/svbdf.h: Include FT_BDF_H. * include/freetype/internal/services/svpsname.h: Renamed to... * include/freetype/internal/services/svpscmap.h: This. Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and `POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere. * include/freetype/internal/services/svpsinfo.h: New file, providing PostScript info service. * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H, FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and svpsinfo.h. * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H, FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed. * src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and FT_SERVICE_POSTSCRIPT_INFO_H. (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new POSTSCRIPT_INFO service. * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. (cff_ps_has_glyph_names): New function. (cff_service_ps_info): New service. (cff_services): Updated. * src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly. * src/cif/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. (cid_ps_get_font_info): New function. (cid_service_ps_info): New service. (cid_services): Updated. * src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. (t1_ps_get_font_info, t1_ps_has_glyph_names): New functions. (t1_service_ps_info): New service. (t1_services): Updated. * src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H. (t42_ps_get_font_info, t42_ps_has_glyph_names): New functions. (t42_service_ps_info): New service. * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H but t42types.h directly. * src/psnames/psmodule.c (psnames_interface, psnames_services): Renamed to... (pscmaps_interface, pscmaps_services): This. Updated all users. * src/gzip/infblock.c (inflate_blocks): Remove compiler warning. 2003-10-22 Werner Lemberg * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'. * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec' is real. * src/type42/t42parse.c (t42_parse_encoding): Improve boundary checking while parsing. * docs/CHANGES: Updated. 2003-10-21 Josselin Mouette * include/freetype/internal/t1types.h (T1_FontRec): `paint_type' and `stroke_width' aren't pointers. * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c (T1_Face_Done): Don't free `paint_type' and `stroke_width'. 2003-10-20 Graham Asher * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'. 2003-10-19 Werner Lemberg * src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from 2003-08-18 introduced a severe bug (FT_Render_Glyph was called twice under some circumstances, causing strange results). This is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'. * src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'. * src/psaux/psobjs.c (ps_tobytes): Initialize `n'. * src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'. 2003-10-16 Werner Lemberg Completely revised Type 42 parser. It now handles both fonts produced with ttftot42 (tested version 0.3.1) and TrueTypeToType42.ps (tested version May 2001; it is necessary to fix the broken header comment to be `%!PS-TrueTypeFont...'). * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth parameter to `FT_UInt'. * src/type42/t42objs.h: Updated. * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory' to FT_Bool. (T42_Loader): Change type of `num_chars' and `num_glyphs' to FT_UInt. Add `swap_table' element. * src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed, T1_ToCoordArray, T1_ToTokenArray): Removed. (T1_ToBytes): New macro. (t42_is_alpha, t42_hexval): Removed. (t42_is_space): Handle `\0'. (t42_parse_encoding): Updated to use new PostScript parser routines from psaux. Handle `/Encoding [ ... ]' also. (T42_Load_Status): New enumeration. (t42_parse_sfnts): Updated to use new PostScript parser routines from psaux. (t42_parse_charstrings): Updated to use new PostScript parser routines from psaux. Handle `/CharStrings << ... >>' also. Don't expect that /.notdef is the first element in dictionary. Copy code from type1 module to handle this. (t42_parse_dict): Updated to use new PostScript parser routines from psaux. Remove code for synthetic fonts (which can't occur in Type 42 fonts). (t42_loader_done): Release `swap_table'. * src/psaux/psobjs.c (skip_string): Increase `cur' properly. * src/type1/t1load.c (parse_charstrings): Make test for `.notdef' faster. 2003-10-15 Graham Asher * src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c (fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty, _num_bdf_properties), src/gzip/infutil.c (inflate_mask), src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td), src/gzip/inftrees.h (inflate_trees_fixed), srf/gzip/inftrees.c (inflate_trees_fixed): Decorate with more `const' to avoid writable global variables which are disallowed on ARM. 2003-10-08 Werner Lemberg * src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove code specially for synthetic fonts; this is handled elsewhere. (parse_encoding): Remove code specially for synthetic fonts; this is handled elsewhere. Improve boundary checking while parsing. (parse_dict): Improve boundary checking while parsing. Use ft_memcmp to simplify code. 2003-10-07 Werner Lemberg * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic fonts properly. (parse_charstrings): Copy correct number of characters into `name_table'. 2003-10-06 Werner Lemberg Heavy modification of the PS parser to handle comments and strings correctly. This doesn't slow down the loading of PS fonts significantly since charstrings aren't affected. * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to... (ft_isxdigit): This. Updated all callers. (ft_isdigit): New alias to `isdigit'. * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed `skip_alpha' to `skip_PS_token'. Add parameter to `to_bytes' and change some argument types. * src/psaux/psauxmod.c (ps_parser_funcs): Updated. * src/psaux/psobjs.c (ft_char_table): New array to map character codes (ASCII and EBCDIC) of digits to numbers. (OP): New auxiliary macro holding either `>=' or `<' depending on the character encoding. (skip_comment): New function. (skip_spaces): Use it. (skip_alpha): Removed. (skip_literal_string, skip_string): New functions. (ps_parser_skip_PS_token): New function. This is a better replacement of... (ps_parser_skip_alpha): Removed. (ps_parser_to_token, ps_parser_to_token_array): Updated. (T1Radix): Rewritten, using `ft_char_table'. (t1_toint): Renamed to... (ps_toint): This. Update all callers. Use `ft_char_table'. (ps_tobytes): Add parameter to handle delimiters and change some argument types. Use `ft_char_table'. (t1_tofixed): Renamed to... (ps_tofixed): This. Update all callers. Use `ft_char_table'. (t1_tocoordarray): Renamed and updated to... (ps_tocoordarray): This. Update all callers. (t1_tofixedarray): Renamed and updated to... (ps_tofixedarray): This. Update all callers. (t1_tobool): Renamed to... (ps_tobool): This. Update all callers. (ps_parser_load_field): Updated. (ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS' everywhere. (ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array, ps_parser_to_fixed_array): Skip spaces. Updated. (ps_parser_to_bytes): Add parameter to handle delimiters and change some argument types. Updated. * src/psaux/psobjs.h: Updated. * src/cid/cidload.c (cid_parse_dict): Updated. * src/cid/cidparse.c (cid_parser_new): Check whether the `StartData' token was really found. * src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed to... (cid_parser_skip_PS_token): This. * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean fields. (T1_Skip_Alpha): Replaced with... (T1_Skip_PS_Token): This new macro. * src/type1/t1parse.c (hexa_value): Removed. (T1_Get_Private_Dict): Use `ft_isxdigit' and `psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal encoding. After decrypting, replace the four random bytes at the beginning with whitespace. * src/type1/t1load.c (t1_allocate_blend): Use proper error values. (parser_blend_design_positions, parse_blend_design_map, parse_weight_vector): Updated. (is_space): Handle `\f' also. (is_name_char): Removed. (read_binary_data): Updated. (parse_encoding): Use `ft_isdigit'. Updated. (parse_subrs): Updated. (TABLE_EXTEND): New macro. (parse_charstrings): Updated. Provide a workaround for buggy fonts which have more entries in the /CharStrings dictionary then expected; the function now adds some slots and skips entries which still exceed the new limit. (parse_dict): Updated. Terminate on the token `closefile'. * src/type42/t42parse.c (T1_Skip_Alpha): Replaced with... (T1_Skip_PS_Token): This new macro. Updated all callers. (t42_parse_encoding): Use `ft_isdigit'. * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_OK if success. 2003-10-05 Werner Lemberg * include/freetype/ftmodule.h: Renamed to... * include/freetype/ftmodapi.h: This to avoid duplicate file names. * include/freetype/config/ftheader.h (FT_MODULE_H): Updated. 2003-10-04 Werner Lemberg * src/base/ftoutln.c (FT_OrientationExtremumRec, FT_Outline_Get_Orientation): Trivial typo fixes to make it compile. 2003-10-02 Markus F.X.J. Oberhumer * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset' has four bytes, not two. Fix all users. (fnt_font_load, FNT_Load_Glyph): Add more font validity tests. 2003-10-01 David Turner * src/autofit/*: Adding first source files of the new multi-script `auto-fitter'. * include/freetype/ftoutln.h (FT_Orientation): New enumeration. (FT_Outline_Get_Orientation): New declaration. * src/base/ftoutln.c (FT_OrientationExtremumRec): New structure. (ft_orientation_extremum_compute): New auxiliary function. (FT_Outline_Get_Orientation): New function to compute the fill orientation of a given glyph outline. * include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed trivial bug which could crash the font engine when a cached service pointer was retrieved. 2003-09-30 Werner Lemberg * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is found. * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE, IS_T1_SPACE): Removed. (PFB_Tag): Removed. (read_pfb_tag): Don't use PFB_Tag. * src/type42/t42parse.c (t42_is_space): Handle `\f' also. (t42_parse_encoding): Handle synthetic fonts. 2003-09-29 Werner Lemberg * include/freetype/internal/t1types.h: Don't include FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H. * src/truetype/ttobjs.c: Don't include FT_SERVICE_POSTSCRIPT_NAMES_H. 2003-09-29 David Turner Added new service to handle glyph name dictionaries, replacing the old internal header named `psnames.h' by `services/svpsname.h'. Note that this is different from `services/svpostnm.h' which only handles the retrieval of PostScript font names for a given face. (Should we merge these two services into a single header?) * include/freetype/internal/psnames.h: Removed. Most of its contents is moved to... * include/freetype/internal/services/svpsname.h: New file. * include/freetype/internal/services/svpostnm.h (FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with... (FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro. (PsName): Service named changed to... (PsFontName): This. Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere. * include/freetype/internal/internal.h (FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed. * include/freetype/internal/psaux.h: Include FT_SERVICE_POSTSCRIPT_NAMES_H. (T1_DecoderRec): Updated type of `psnames'. * include/freetype/internal/t1types.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. Include FT_INTERNAL_OBJECTS_H. * include/freetype/internal/t42types.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H. * include/freetype/internal/tttypes.h (TT_FaceRec): Updated. * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed order of parameters. All callers updated. (FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service globally, checking all modules. (FT_ServiceCacheRec): Updated. (FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing `svpsname.h'. * include/freetype/internal/ftobjs.h, src/base/ftobjs.c (ft_module_get_service): New function. * src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. (cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES service. * src/cff/cffcmap.c (cff_cmap_unicode_init): Updated. * src/cff/cffload.c, src/cff/cffload.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. (cff_index_get_sid_string): Updated. * src/cff/cffobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. (cff_face_init): Use new POSTSCRIPT_NAMES service. * src/cff/cffobjs.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. * src/cid/cidobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. (cid_face_init): Use new POSTSCRIPT_NAMES service. * src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H. * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use new POSTSCRIPT_NAMES service. * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode, t1_decode_init): Use new POSTSCRIPT_NAMES service. * src/psaux/t1cmap.h, src/psaux/t1decode.h: Dont' include FT_INTERNAL_POSTSCRIPT_NAMES_H. * src/psnames/psmodule.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. (ps_build_unicode_table): Renamed to... (ps_unicodes_init): This. (ps_lookup_unicode): Renamed to... (ps_unicodes_char_index): This. (ps_next_unicode): Renamed to... (ps_unicodes_char_next): This. (psnames_interface): Updated. (psnames_services): New services list. (psnames_get_service): New function. (psnames_module_class): Updated. * src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. (sfnt_init_face): Use new POSTSCRIPT_NAMES service. * src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. (tt_face_get_ps_name): Updated. * src/truetype/ttobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. * src/type1/t1driver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. * src/type1/t1objs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. (T1_Face_Init): Use new POSTSCRIPT_NAMES service. * src/type42/t42drivr.c (t42_get_ps_name): Renamed to... (t42_get_ps_font_name): This. (t42_service_ps_name): Renamed to... (t42_service_ps_font_name): This. (t42_services): Updated. * src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES service. * src/type42/t42objs.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H. * src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before testing its validity. Reported by Henry Maddocks . 2003-09-21 Werner Lemberg * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Fix compilation warning (s/pptr/Pptr/). * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H, FT_INTERNAL_FNT_TYPES_H): Removed. 2003-09-21 David Turner Migrating the PFR and WINFNT drivers to the new service-based internal API. * include/freetype/internal/fnttypes.h: Removed. Most of its data are moved to winfnt.h and... * include/freetype/internal/services/svwinfnt.h: New file. * include/freetype/internal/pfr.h: Removed. Most of its data are moved to... * include/freetype/internal/services/svpfr.h: New file. * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing pointer type argument. Updated all callers. Update macro names of services header files. * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code. * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of FT_INTERNAL_PFR_H. (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning, FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'. * src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of FT_INTERNAL_FNT_TYPES_H. (FT_Get_WinFNT_Header): Use service provided in `WINFNT'. * src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H. (pfr_service_bdf): Updated. (pfr_services): New services list. (pfr_get_service): New function. (pfr_driver_class): Updated. * src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H. (winfnt_get_header, winfnt_get_service): New functions. (winfnt_service_rec): New structure providing WINFNT services. (winfnt_services): New services list. (winfnt_driver_class): Updated. * src/winfonts/winfnt.h: Add most of the removed fnttypes.h data. * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo. * src/type1/t1driver.c (t1_service_ps_name): Fix typo. * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c, src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c, src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler warnings. 2003-09-19 David Bevan * src/type1/t1parse.c (pfb_tag_fields): Removed. (read_pfb_tag): Fix code so that it doesn't fail on end-of-file indicator (0x8003). * docs/CHANGES: Updated. 2003-09-16 Werner Lemberg * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE, FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type. Ugly, I know, but this is needed for compilation with C++ -- maybe someone knows a better solution? Updated all callers. * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove C++ compiler warnings. * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Fix order of arguments passed to FT_FACE_FIND_SERVICE. 2003-09-15 Werner Lemberg Avoid header files with identical names. * include/freetype/internal/services/bdf.h: Renamed to... * include/freetype/internal/services/svbdf.h: This. Add copyright notice. * include/freetype/internal/services/glyfdict.h: Renamed to... * include/freetype/internal/services/svgldict.h: This. Add copyright notice. * include/freetype/internal/services/multmast.h: Renamed to... * include/freetype/internal/services/svmm.h: This. Add copyright notice. Add FT_BEGIN_HEADER and FT_END_HEADER. * include/freetype/internal/services/sfnt.h: Renamed to... * include/freetype/internal/services/svsfnt.h: This. Add copyright notice. * include/freetype/internal/services/postname.h: Renamed to... * include/freetype/internal/services/svpostnm.h: This. Add copyright notice. * include/freetype/internal/services/xf86name.h: Renamed to... * include/freetype/internal/services/svxf86nm.h: This. Add copyright notice. * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and FT_END_HEADER. Add copyright notice. Update macro names of services header files. * builds/freetype.mk (SERVICES_DIR): New variable. (BASE_H): Add services header files. 2003-09-11 Werner Lemberg * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'. * src/cff/cffdrivr.c: Don't load headers twice. * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro. * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H. * src/cff/cffcmap.c: Include `cfferrs.h'. * src/pfr/pfrdrivr.c: Include `pfrerror.h'. * src/sfnt/sfdriver.c: Include `sferrors.h'. * src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'. 2003-09-11 David Turner Introducing the concept of `module services'. This is the first step towards a massive simplification of the engine's internals, in order to get rid of various numbers of hacks. Note that these changes will break source & binary compatibility for authors of external font drivers. * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT, FT_DUMMY_STMNT): New macros. * include/freetype/internal/ftserv.h: New file, containing the new structures and macros to provide `services'. * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H, FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H): Removed, obsolete. (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'. * include/freetype/internal/services/bdf.h, include/freetype/internal/services/glyfdict.h, include/freetype/internal/services/postname.h, include/freetype/internal/services/xf86name.h: New files. * include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func, FT_Set_MM_Blend_Func): Function pointers moved (in modified form) to... * include/freetype/internal/services/multmast.h: New file. * include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface' is now of type `FT_Module_Requester'. (SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers moved (in modified form) to... * include/freetype/internal/servies/sfnt.h: New file. * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function pointer moved (in modified form) to `services/sfnt.h'. * include/freetype/ftmodule.h (FT_Module_Interface): Make it a a typedef to `FT_Pointer'. * include/freetype/internal/tttypes.h (TT_FaceRec): Add `postscript_name'. * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove `postscript_name'. Add `services' element. (FT_LibraryRec): Remove `meta_class'. * src/base/ftbdf.c: Include FT_SERVICE_BDF_H. (test_font_type): Removed. (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services provided in `FT_SERVICE_ID_BDF'. * src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H. (ft_face_get_mm_service): New auxiliary function to get services from `FT_SERVICE_ID_MULTI_MASTERS'. (FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates, FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'. * src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and FT_SERVICE_GLYPH_DICT_H. (ft_service_list_lookup): New function to get a specific service. (destroy_face): Updated. (Mac_Read_POST_Resource): Simplify some code. (IsMacResource): Fix warnings. (FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in `FT_SERVICE_ID_GLYPH_DICT'. (FT_Get_Postscript_Name): Use service provided in `FT_SERVICE_ID_POSTSCRIPT_NAME'. (FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in `FT_SERVICE_ID_SFNT_TABLE'. * src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H. (FT_Get_X11_Font_Format): Use service provided in `FT_SERVICE_ID_XF86_NAME'. * src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and FT_SERVICE_XFREE86_NAME_H. (bdf_get_charset_id): New function. (bdf_service_bdf): New structure providing BDF services. (bdf_services): New services list. (bdf_driver_requester): Use `ft_service_list_lookup'. * src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and FT_SERVICE_GLYPH_DICT_H. (cff_service_glyph_dict): New structure providing CFF services. (cff_services): New services list. (cff_get_interface): Use `ft_service_list_lookup'. * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and FT_SERVICE_XFREE86_NAME_H. (cid_service_ps_name): New structure providing CID services. (cid_services): New services list. (cid_get_interface): Use `ft_service_list_lookup'. * src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and FT_SERVICE_XFREE86_NAME_H. (pcf_service_bdf): New structure providing PCF services. (pcf_services): New services list. (pcf_driver_requester): Use `ft_service_list_lookup'. * src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and FT_SERVICE_POSTSCRIPT_NAME_H. (get_sfnt_glyph_name): Renamed to... (sfnt_get_glyph_name): This. (get_sfnt_postscript_name): Renamed to... (sfnt_get_ps_name): This. Updated. (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures providing services. (sfnt_services): New services list. (sfnt_get_interface): Use `ft_service_list_lookup'. * src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H. (tt_services): New services list. (tt_get_interface): Use `ft_service_list_lookup'. * src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H, FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and FT_SERVICE_POSTSCRIPT_NAME_H. (t1_service_glyph_dict, t1_service_ps_name, t1_service_multi_masters): New structures providing Type 1 services. (t1_services): New services list. (Get_Interface): Use `ft_service_list_lookup'. * src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H, FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H. (t42_service_glyph_dict, t42_service_ps_name): New strucures providing Type 42 services. (t42_services): New services list. (T42_Get_Interface): Use `ft_service_list_lookup'. * README, docs/CHANGES: Updating version numbers for 2.1.6, and removing obsolete warnings in the documentation. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. * builds/unix/configure.ac (version_info): Set to 9:5:3. * builds/unix/configure: Regenerated. * include/freetype/internal/ftcore.h, include/freetype/internal/ftexcept.h, include/freetype/internal/fthash.h, include/freetype/internal/ftobject.h: Removed. Obsolete. 2003-09-09 David Turner Fixing PFR kerning support. The tables within the font file contain (charcode,charcode) kerning pairs, we need to convert them to (gindex,gindex). * src/base/ftpfr.c (ft_pfr_check): Fix serious typo. * src/pfr/prfload.c: Remove dead code. (pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs): New functions. (pfr_phy_font_done): Free `kern_pairs'. (pfr_phy_font_load): Call `pfr_sort_kerning_pairs'. * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction. * src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro. (PFR_KernPairRec): Make `kerning' an FT_Int. (PFR_PhyFontRec): New element `kern_pairs'. (PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and PFR_KERN_2BYTE_ADJ were erroneously reversed. * include/freetype/ftoption.h: Commenting out the macro TT_CONFIG_OPTION_BYTECODE_INTERPRETER. 2003-09-02 David Turner * Version 2.1.5 released. ========================= 2003-08-31 Manish Singh * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but FT_MEM_MOVE. 2003-08-30 Werner Lemberg * include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312, FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New enumerations of FT_Encoding. The FT_ENCODING_MS_* variants except FT_ENCODING_MS_SYMBOL are now deprecated. Updated all users. * docs/CHANGES: Document it. 2003-08-27 Werner Lemberg * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters for spacing. 2003-08-27 Mike FABIAN * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters for slant and weight. 2003-08-18 David Turner * include/freetype/config/ftoption.h: Disabling TrueType bytecode interpreter until the UNPATENTED_HINTING works as advertised. * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for setting `load_flags'. * Jamfile: Adding the `refdoc' target to the Jamfile in order to build the API Reference in `docs/reference' automatically. * include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of `italic_angle', `underline_position', and `underline_thickness' to their previous values (i.e., long, short, and ushort) in order to avoid breaking binary compatibility. * include/freetype/ttunpat.h: Fixing documentation comment. * include/freetype/config/ftoption.h, devel/ftoption.h (TT_CONFIG_OPTION_OPTION_COMPILE_UNPATENTED_HINTING): Replaced with... (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users. (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed. * include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed. (FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro. Use this with `FT_Set_Debug_Hook' to get the same effect as the removed TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING. * src/truetype/ttobjs.c (tt_face_init): Use `FT_DEBUG_HOOK_UNPATENTED_HINTING'. 2003-08-06 Werner Lemberg * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix previous change. 2003-08-05 Werner Lemberg * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply font matrix to advance width also. * docs/CHANGES: Updated. 2003-07-26 Werner Lemberg * builds/unix/configure.ac (version_info): Set to 9:4:3. * builds/unix/configure: Updated. * docs/CHANGES, docs/VERSION.DLL: Updated. * include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16 also breaks binary compatibility. Reintroduce an unsigned integer at the old position of `flags' called `reserved'. 2003-07-25 Werner Lemberg Make API reference valid HTML 4.01 transitional. * src/tools/docmaker/tohtml.py (html_header_1): Add doctype and charset. (html_header_2): Fix style elements and add some more. Fix syntax. (block_header, block_footer, description_header, description_footer, marker_header, marker_footer, source_header, source_footer, chapter_header): Don't use
...
but `align=center' table attribute. (chapter_inter, chapter_footer): Add
  • and use special