2003-09-19 David Bevan <dbevan@emtex.com> * src/type1/t1parse.c (pfb_tag_fields): Removed. (read_pfb_tag): Fix code so that it doesn't fail on end-of-file indicated (0x8003). 2003-09-16 Werner Lemberg <wl@gnu.org> * 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 <wl@gnu.org> 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 <wl@gnu.org> * 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 <david@freetype.org> 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 <david@freetype.org> 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-08-31 Manish Singh <yosh@gimp.org> * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but FT_MEM_MOVE. 2003-08-30 Werner Lemberg <wl@gnu.org> * 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 <wl@gnu.org> * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters for spacing. 2003-08-27 Mike FABIAN <mfabian@suse.de> * 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 <david@freetype.org> * 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 <wl@gnu.org> * 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 <wl@gnu.org> * 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 <wl@gnu.org> * 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 <wl@gnu.org> 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 <center>...</center> but `align=center' table attribute. (chapter_inter, chapter_footer): Add <li> and use special <ul> class. Use double quotes around table widths given in percent. (keyword_prefix, keyword_suffix): Don't change font colour directly but use a new <span> class. (section_synopsis_header, section_synopsis_footer): Don't change colour. (code_header, code_footer): Don't change font colour directly but use a special <pre> class. (print_html_field): <tr> gets the `valign' attribute, not <table>. (print_html_field_list): Ditto. (index_exit): Don't use <center>...</center> but `align=center' table attribute. (section_enter): Ditto. (toc_exit): Don't emit </table>. (block_enter): Use <h4><a>, not <a><h4>. (__init__): Fix tag order in self.html_footer. 2003-07-25 David Turner <david@freetype.org> This change reimplements fix from 2003-05-30 without breaking binary compatibility. * include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle', `is_fixed_pitch', `underline_position', `underline_thickness' are reverted to be normal values. * include/freetype/internal/psaux.h (T1_FieldType): Remove `T1_FIELD_TYPE_BOOL_P', `T1_FIELD_TYPE_INTEGER_P', `T1_FIELD_TYPE_FIXED_P', `T1_FIELD_TYPE_FIXED_1000_P'. (T1_FIELD_TYPE_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P, T1_FIELD_FIXED_1000_P): Removed. (T1_FIELD_TYPE_BOOL): Renamed to... (T1_FIELD_BOOL): New macro. Updated all callers. * src/type42/t42parse.c: `italic_angle', `is_fixed_pitch', `underline_position', `underline_thickness', `paint_type', `stroke_width' are reverted to be normal values. (T42_KEYWORD_COUNT): New macro. (t42_parse_dict): New array `keyword_flags' to mark that a value has already been assigned to a dictionary entry. * src/type42/t42objs.c (T42_Face_Init, T42_Face_Done): Updated. * src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch', `underline_position', `underline_thickness' are reverted to be normal values. * src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated. * src/psaux/psobjs.c (ps_parser_load_field): Updated. * src/type1/t1tokens.h: `italic_angle', `is_fixed_pitch', `underline_position', `underline_thickness', `paint_type', `stroke_width' are reverted to be normal values. * src/type1/t1objs.c (T1_Face_Done, T1_Face_Init): Updated. * src/type1/t1load.c (T1_FIELD_COUNT): New macro. (parse_dict): Add parameter for keyword flags. Record only first instance of a field. (T1_Open_Face): New array `keyword_flags'. 2003-07-24 Werner Lemberg <wl@gnu.org> * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. * builds/unix/configure.ac (version_info): Set to 10:0:3. * builds/unix/configure: Updated. * builds/freetype.mk (refdoc): Fix --title. * docs/CHANGES, docs/VERSION.DLL, README: Updated. * src/tools/docmaker/sources.py (re_crossref): Fix regular expression to handle trailing punctuation characters. * src/tools/docmaker/tohtml.py (make_html_word): Updated. * docs/release: New file. 2003-07-23 YAMANO-UCHI Hidetoshi <mer@din.or.jp> * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New member function `to_bytes'. * src/psaux/psauxmod.c (ps_parser_funcs): New member `ps_parser_to_bytes'. (psaux_module_class): Increase version to 0x20000L. * src/psaux/psobjs.c (IS_T1_LINESPACE): Add \f. (IS_T1_NULLSPACE): New macro. (IS_T1_SPACE): Add it. (skip_spaces, skip_alpha): New functions. (ps_parser_skip_spaces, ps_parser_skip_alpha): Use them. (ps_tobytes, ps_parser_to_bytes): New functions. 2003-07-07 Werner Lemberg <wl@gnu.org> * builds/freetype.mk (DOC_DIR): New variable. (refdoc): Use *_DIR variables. (distclean): Remove documentation files. * builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'. * configure: Set DOC_DIR variable. 2003-07-07 Patrik H