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, 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 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