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 this 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, builds/unix/configure, builds/unix/configure.ac, docs/CHANGES, include/freetype/freetype.h: Updating version numbers for 2.1.6, and removing obsolete warnings in the documentation. * 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 is 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