2005-02-14 Werner Lemberg * src/cff/cffcmap.c (cff_cmap_unicode_init): Don't try to build a cmap for a CID-keyed font which doesn't have SIDs. 2005-02-13 Werner Lemberg * src/type1/t1load.c (read_binary_data): Return more meaningful value. (parse_encoding, parse_subrs, parse_charstrings, parse_dict): Check parser error value after call to T1_Skip_PS_Token (where necessary). * src/type1/t1parse.c (T1_Get_Private_Dict): Check parser error value after call to T1_Skip_PS_Token. * src/cid/cidparse.c (cid_parser_new): Check parser error value after call to cid_parser_skip_PS_token. * src/type42/t42parse.c (t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings, t42_parse_dict): Check parser error value after call to T1_Skip_PS_Token (where necessary). * src/psaux/psobjc.c (skip_string, ps_parser_skip_PS_token, ps_tobytes): Add error messages. 2005-02-12 Werner Lemberg * configure: Output more variables to the created Makefile so that it can be used for ft2demos also (if the FT2DEMOS variable is defined). 2005-02-10 David Turner * src/pfr/pfrgload.c (pfr_glyph_load): Fix an unbounded growing dynamic array when loading a glyph from a PFR font (Savannah bug #11921). * src/base/ftbitmap.c (FT_Bitmap_Convert): Small improvements to the conversion function (mainly stupid optimization). * src/base/Jamfile: Adding ftbitmap.c to the list of compiled files. 2005-02-10 Werner Lemberg * builds/unix/freetype-config.in: Add new flag `--ftversion' to return the FreeType version. Suggested by George Williams . * docs/CHANGES: Updated. 2005-02-09 Werner Lemberg * src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case of error. Reported by YAMANO-UCHI Hidetoshi . 2005-02-08 Werner Lemberg * src/psaux/t1decode.c (t1_decoder_parse_charstrings) : Accept `T1_Parse_Have_Moveto' state also which can happen in empty glyphs. Reported by Ian Brown (Savannah bug #11856). 2005-02-04 Werner Lemberg * src/otlayout/*: Removed. Obsolete. 2004-12-28 Werner Lemberg * builds/unix/ltmain.sh: Regenerated with `libtoolize --force --copy' from libtool 1.5.10. * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from automake 1.9.4. * builds/unix/configure: Regenerated with autoconf 2.59b. * builds/unix/config.guess, builds/unix/config.sub: Updated from `config' CVS module at subversions.gnu.org. * builds/unix/install-sh: Updated from `texinfo' CVS module at subversions.gnu.org. * builds/unix/ftsystem.c (FT_Stream_Open): Add proper cast for ft_alloc. Fix compiler warning. 2004-12-27 Dirck Blaskey * src/cff/cffobjs.c (cff_face_init): Improve computation of FT_STYLE_BOLD_FLAG. 2004-12-27 Werner Lemberg * src/cff/cffobjs.c (cff_face_init): A CFF within an SFNT can have only a single font. This is undocumented but has been verified on the opentype list. 2004-12-26 Werner Lemberg * Jamfile (FT2_COMPONENTS): Add `otvalid'. 2004-12-25 Werner Lemberg * src/base/ftbitmap.c (FT_Bitmap_Convert): Fix compiler warning. 2004-12-15 Werner Lemberg * vms_make.com: Add ftbitmap.obj. 2004-12-14 Werner Lemberg * src/base/ftbitmap.c, include/freetype/ftbitmap.h: New files for handling various bitmap formats. * include/freetype/config/ftheader.h (FT_BITMAP_H): New macro. * src/base/rules.mk (BASE_EXT_SRC): Add ftbitmap.c. * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Don't convert bitmaps to 8bpp but return them as-is. * docs/CHANGES: Mention new bitmap API. * include/freetype/ftchapter.s: Updated. 2004-12-11 Robert Clark * src/base/ftobjs.c (FT_Get_Kerning): Make kerning amount dependent on ppem by scaling down for ppem < 25, then do normal rounding. This gives slightly better results than rounding towards zero. 2004-12-09 Werner Lemberg * src/base/ftobjs.c (FT_Get_Kerning): Always round towards zero for FT_KERNING_DEFAULT. This greatly enhances the kerning for small ppem values. 2004-12-08 Werner Lemberg * src/base/ftobjs.c (ft_glyphslot_clear): Reset `lsb_delta' and `rsb_delta'. 2004-12-05 Werner Lemberg * builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h. 2004-12-03 Antoine Leca * include/freetype/ttnameid.h: Updated to latest specifications from Microsoft. 2004-11-26 Jouk Jansen * vms_make.com: Include ftbbox.c. Fix `ccopt'. Handle `otvalid' module. Update `vmslib.dat' default values. Fixes to `libs.opt'. 2004-11-23 Anders Kaseorg * src/base/ftoutln.c (FT_OrientationExtremumRec, ft_orientation_extremum_compute): Removed. (FT_Outline_Get_Orientation): Rewritten, simplified. * src/autohint/ahglyph.c: Include FT_OUTLINE_H. (ah_test_extremum, ah_get_orientation): Removed. (ah_outline_load): Use FT_Outline_Get_Orientation. * src/base/ftsynth.c (ft_test_extrama, ft_get_orientation): Removed. (FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation. 2004-11-23 Fernando Papa * src/truetype/ttinterp.h: Fix typo. 2004-11-22 Antoine Leca * builds/win32/detect.mk: Corrected logic that detects Windows NT to use the previous change even if win32 is forced. Corrected detection of win32 on Win9X. * builds/dos/detect.mk: Added same correction as for win32 about COPY on Windows NT. Detection of plain DOS 7.x. 2004-11-22 Werner Lemberg * builds/detect.mk: Undo change from 2004-11-20. * builds/win32/detect.mk: If the `OS' environment variable contains `Windows_NT', use `cmd.exe /c copy' for copying files. 2004-11-20 Werner Lemberg * builds/detect.mk (dos_setup): Use `cmd.exe' for copying $(CONFIG_MK) to force lowercase file name under Windows. 2004-11-19 Werner Lemberg Fix a serious bug in the TT hinter. * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift points vertically before hinting. * docs/CHANGES: Updated. * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, FTC_GCache_Lookup): A new try to fix comparison with zero. 2004-11-16 Werner Lemberg * builds/unix/configure.ac: Add `-fno-strict-aliasing' if gcc is used. * builds/unix/configure: Regenerated. * builds/unix/config.guess, builds/unix/config.sub: Updated from `config' CVS module at subversions.gnu.org. 2004-11-16 Dr. Martin P.J. Zinser * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily, FTC_GCache_Lookup): Fix comparison with zero. * docs/INSTALL.VMS: Updated. * vms_make.com: Updated. All `descrip.mms' files are now created automatically. * src/*/descrip.mms: Removed. 2004-11-16 Owen Taylor * builds/unix/freetype-config.in: Supress -L$libdir for /usr/lib64 as well as /usr/lib. (Reported by Dan Winship - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139199) 2004-11-11 Werner Lemberg * src/cff/cffdrivr.c (cff_service_ps_info): Updated. * src/cid/cidriver.c (cid_service_ps_info): Updated. * src/type42/t42drivr.c (t42_ps_get_font_private): New function. (t42_service_ps_info): Updated. * src/type42/t42parse.c (t42_parse_dict): Remove compiler warning. 2004-11-11 David Bevan Add new function FT_Get_PS_Font_Private(). * include/freetype/internal/services/svpsinfo.h (PS_GetFontPrivateFunc): New service function. * include/freetype/t1tables.h, src/base/fttype1.c (FT_Get_PS_Font_Private): New function. * src/type1/t1driver.c (t1_ps_get_font_private): New function. (t1_service_ps_info): Updated. 2004-10-13 Werner Lemberg * include/freetype/config/ftstdlib.h: Include `stddef.h'. (ft_ptrdiff_t): Define. * include/freetype/fttypes.h (FT_PtrDist): Use `ft_ptrdiff_t'. * src/cid/cidload.c (cid_parse_dict), src/type1/t1load.c (parse_dict): Fix compiler warning. 2004-10-11 Joshua Neal * src/sfnt/ttcmap.c (tt_face_build_cmaps): Check for pointer overflow. * src/sfnt/ttload.c (tt_face_load_hdmx): Protect against bad input. Don't use FT_QNEW_ARRAY but FT_NEW_ARRAY to make deallocation work in case of failure. * src/sfnt/ttsbit.c (Load_SBit_Range): Check range intervals. (tt_face_load_sbit_strikes): Allocate `strike_sbit_ranges' after frame test. * src/truetype/ttgload.c (TTLoad_Simple_Glyph): Add assertion for `flag'. 2004-10-09 Werner Lemberg * docs/CHANGES: Updated. 2004-10-09 Boris Letocha Fix handling of NPUSHW if skipped in data stream. * src/truetype/ttinterp.c (opcode_length): Set value for NPUSHW to -2. (SkipCode, TT_RunIns): Use opcode_length value for computation of bytes to be skipped. 2004-09-10 Jouk Jansen * vms_make.com: Updated. 2004-09-09 Werner Lemberg Adding OpenType validation module. The code is based on the (unfinished) `otlayout' module but has been heavily modified to make it much more compact. * src/otvalid/*: New module. * include/freetype/ftotval.h, src/base/ftotval.c, include/freetype/internal/services/svotval.h: New files. * include/freetype/config/ftmodule.h: Add otv_module_class. * include/freetype/config/ftheader.h (FT_OPENTYPE_VALIDATE_H): New macro. * include/freetype/internal/ftserv.h (FT_SERVICE_OPENTYPE_VALIDATE_H): New macro. * include/freetype/internal/fttrace.h (otvmodule, otvcommon, otvbase, otvgdef, otvgpos, otvgsub, otvjstf): New trace components. * include/freetype/ftchapters.h: Updated. * src/base/Jamfile (Library), src/base/descrip.mms (OBJS), src/base/rules.mk (BASE_EXT_SRC): Updated. * docs/CHANGES: Updated. 2004-09-08 Werner Lemberg * src/tools/docmaker/sources.py (re_source_block_format2) : Use lookahead assertion to not match `*/'. This removes spurious insertions of `/' in the HTML output. 2004-09-07 Werner Lemberg * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Fix call to FT_NEW_ARRAY. 2004-09-04 Werner Lemberg * include/freetype/internal/ftobjs.h: Don't include FT_CONFIG_STANDARD_LIBRARY_H. (FT_Validator, FT_ValidationLevel, FT_ValidatorRec, FT_VALIDATOR, ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID, FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT, FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to... * include/freetype/internal/ftvalid.h: New file. Make FT_INVALID return module-specific error codes. * include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New macro. * include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if FT_KEEP_ERR_PREFIX isn't defined. * src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H. * src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but FT_INTERNAL_VALIDATE_H. * src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but FT_INTERNAL_VALIDATE_H. Include sferrors.h before FT_INTERNAL_VALIDATE_H. s/FT_Err_Ok/SFNT_Err_Ok/. * src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX. * src/type1/t1afm.c: Include t1errors.h. 2004-09-03 Werner Lemberg * src/base/ftdebug.c (ft_debug_init): Highest debug level is 7, not 6. * docs/DEBUG: Updated. 2004-08-30 Werner Lemberg * include/freetype/tttags.h (TTAG_BASE, TTAG_GDEF, TTAG_GPOS, TTAG_JSTF): New tags. * include/freetype/fttypes.h (FT_Bytes, FT_Tag): New typedefs. (FT_Int): Add `signed'. 2004-08-29 Werner Lemberg * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): Add argument to pass number of lookups. Update all callers. Don't call otl_lookup_list_validate but otl_lookup_validate. (otl_gpos_validate): Call otl_lookup_list_validate instead of otl_gpos_subtable_validate. * src/otlayout/otlgpos.h: Updated. * src/otlayout/otljstf.c (otl_jstf_max_validate): Add argument to pass number of lookups. Update all callers. * src/cff/cffparse.c (cff_parse_real): s/exp/exponent/ to avoid compiler warning. * src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Renamed to... * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: This. * src/sfnt/Jamfile, src/sfnt/rules.mk, src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c: Updated. * builds/compiler/gcc-dev.mk (CFLAGS): Don't add `-Wnested-externs' if compiler is g++ (v3.3.3 emits a warning otherwise). 2004-08-28 Werner Lemberg * src/otlayout/otlgpos.c (otl_value_length): Return number of bytes, not number of 16bit entities. (otl_gpos_lookup2_validate): Check class definition tables for format 2. Fix loop for format 2. (otl_liga_mark2_validate): Fix offset for otl_anchor_validate. 2004-08-27 Werner Lemberg * src/base/ftmac.c: Don't include truetype/ttobjs.h. Don't include type1/t1objs.h. (FT_New_Face_From_FSSpec) [!__MWERKS__]: Remove compiler warnings. 2004-08-27 Mathieu Malaterre * src/base/ftmac.c: Handle OS_INLINE for xlc compiler also. 2004-08-27 Werner Lemberg * src/otlayout/otlayout.h: Add copyright. (OTL_INVALID_OFFSET): Removed. * src/otlayout/otlgdef.h: Include otlayout.h. Comment out inclusion of otltable.h. * src/otlayout/otlgpos.c (otl_gpos_lookup4_validate): Fix call to otl_base_array_validate. (otl_liga_mark2_validate): Fix `for' loop. * src/otlayout/otlgsub.c (otl_ligature_validate): Check `glyph_id', not components array. * src/otlcommn.c (otl_lookup_get_count, otl_feature_get_count): Comment out. (otl_lookup_list_get_count, otl_feature_list_get_count): Activate. (otl_feature_list_validate, otl_gsubgpos_get_lookup_count): s/otl_lookup_get_count/otl_lookup_list_get_count/. (otl_script_list_validate): s/otl_feature_get_count/otl_feature_list_get_count/. (otl_script_validate): Call otl_lang_validate for default language. * src/otlayout/otlcommn.h: Updated. 2004-08-16 Werner Lemberg * src/otlayout/otlgpos.c (otl_gpos_lookup1_validate, otl_gpos_lookup2_validate, otl_gpos_lookup3_validate, otl_gpos_lookup4_validate, otl_gpos_lookup5_validate, otl_gpos_lookup6_validate, otl_gpos_lookup9_validate, otl_gpos_validate): Update function arguments. (otl_gpos_lookup7_validate, otl_gpos_lookup8_validate): Update function arguments. Handle NULL offsets correctly. Check sequence and lookup indices for format 3. (otl_pos_rule_validate, otl_chain_pos_rule_validate): Add argument to pass lookup count. Check sequence and glyph indices. (otl_gpos_subtable_validate): Update function arguments. Update callers. * src/otlayout/otlgpos.h: Updated. * src/otlayout/otlgsub.c (otl_gsub_lookup1_validate, otl_gsub_lookup3_validate, otl_gsub_lookup8_validate): Update function arguments. Add glyph index checks. (otl_sequence_validate, otl_alternate_set_validate, otl_ligature_validate): Add argument to pass glyph count. Update callers. Add glyph index check. (otl_gsub_lookup2_validate, otl_gsub_lookup4_validate): Update function arguments. (otl_ligature_set_validate): Add argument to pass glyph count. Update caller. (otl_sub_class_rule_validate, otl_sub_class_rule_set_validate): Removed. (otl_sub_rule_validate, otl_chain_sub_rule_validate): Add argument to pass lookup count. Update callers. Add lookup index check. (otl_sub_rule_set_validate, otl_chain_sub_rule_set_validate): Add argument to pass lookup count. Update callers. (otl_gsub_lookup5_validate): Update function arguments. Handle NULL offsets correctly. Don't call otl_sub_class_rule_set_validate but otl_sub_rule_set_validate. Check sequence and lookup indices for format 3. (otl_gsub_lookup6_validate): Update function arguments. Handle NULL offsets correctly. Check sequence and lookup indices for format 3. (otl_gsub_lookup7_validate, otl_gsub_validate): Update function arguments. * src/otlayout/otlgsub.h: Updated. * src/otlayout/otlbase.c (otl_base_validate): Handle NULL offsets correctly. * src/otlayout/otlcommn.c (otl_class_definition_validate): Fix compiler warning. (otl_coverage_get_first, otl_coverage_get_last): New functions. (otl_lookup_validate): Add arguments to pass lookup and glyph counts. Update callers. (otl_lookup_list_validate): Add argument to pass glyph count. Update callers. * src/otlayout/otlcommn.h: Updated. * src/otlayout/otljstf.c (otl_jstf_extender_validate, otl_jstf_max_validate, otl_jstf_script_validate, otl_jstf_priority_validate, otl_jstf_lang_validate): Add parameter to validate glyph indices. Update callers. (otl_jstf_validate): Add parameter which specifies number of glyphs in font. * src/otlayout/otljstf.h: Updated. 2004-08-15 Werner Lemberg * src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter to handle possible NULL values properly. Update all callers. 2004-08-15 Werner Lemberg * src/otlayout/gpos.c: Rename counting variables to be more meaningful. Add copyright. (otl_liga_attach_validate): Renamed to... (otl_liga_mark2_validate): This. Update all callers. (otl_mark2_array_validate): Removed. (otl_gpos_lookup6_validate): Call otl_liga_mark2_validate, not otl_mark2_array_validate. (otl_pos_class_set_validate, otl_pos_class_rule_validate): Removed. (otl_gpos_lookup7_validate): Complete code for format 2. (otl_chain_pos_class_rule_validate, otl_chaim_pos_class_set_validate): Removed. (otl_gpos_lookup8_validate): Don't call otl_chain_pos_class_set_validate but otl_chain_pos_rule_set_validate. Simplify some code. * src/otlayout/otlgpos.h: Add copyright. 2004-08-14 Werner Lemberg * src/otlayout/otljstf.c (otl_jstf_gsub_mods_validate): Removed. (otl_jstf_gpos_mods_validate): Renamed to... (otl_jstf_gsubgpos_mods_validate): This. Test whether lookup_count is zero. (otl_jstf_priority_validate): Use otl_jstf_gsubgpos_mods_validate. (otl_jstf_validate): Initialize gsub_lookup_count and gpos_lookup_count if gsub or gpos is zero. * src/otlayout/otlgsub.c: Rename counting variables to be more meaningful. Add copyright. (otl_gsub_lookup1_validate): Simplify code. (otl_gsub_lookup2_validate, otl_gsub_lookup3_validate, otl_gsub_lookup4_validate, otl_gsub_lookup7_validate): Remove unused variables. (otl_gsub_lookup5_validate): Remove unused variable. Fix call to otl_sub_rule_set_validate and otl_sub_class_rule_set_validate. (otl_chain_sub_class_rule_validate, otl_chain_sub_class_set_validate): Removed. (otl_gsub_lookup6_validate): Remove unused variable. Fix call to otl_chain_sub_rule_set_validate. (otl_gsub_lookup7_validate): Handle lookup type 8 also. (otl_gsub_lookup8_validate: New function. (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Commented out. (otl_gsub_validate_funcs): Add otl_gsub_lookup7_validate and otl_gsub_lookup8_validate. (otl_gsub_validate): Updated. * src/otlayout/otlgsub.h: Add copyright. * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h (otl_coverage_get_index): Comment out. 2004-08-13 Werner Lemberg * src/otlayout/otlcommn.c (otl_gsubgpos_get_lookup_count): New function. * src/otlayout/otlcommn.h: Updated. * src/otlayout/otlbase.c: Rename counting variables to be more meaningful. Add copyright message. * src/otlayout/otlbase.h: Add copyright message. * src/otlayout/otlgdef.c: Rename counting variables to be more meaningful. Add copyright message. Use OTL_CHECK everywhere. (otl_caret_value_validate): Remove unused variable. (otl_gdef_validate): All tables are optional. * src/otlayout/otlgdef.h: Add copyright message. * src/otlayout/otljstf.c: Rename counting variables to be more meaningful. Add copyright message. (otl_jstf_gsub_mods_validate, otl_jstf_gpos_mods_validate): Add parameter to pass lookup count. Update all callers. Check lookup array. (otl_jstf_max_validate): s/otl_gpos_subtable_check/otl_gpos_subtable_validate/. (otl_jstf_priority_validate, otl_jstf_lang_validate, otl_jstf_script_validate): Add two parameters to pass lookup counts. Update all callers. (otl_jstf_validate): Add two parameters to pass GPOS and GSUB table offsets; use otl_gsubgpos_get_lookup_count to convert extract lookup counts. Fix typo. * src/otlayout/otljstf.h: Updated. Add copyright message. * src/otlayout/otlgpos.c (otl_gpos_subtable_validate): New function. (otl_gpos_validate): Use it. * src/otlayout/otlgpos.h: Updated. 2004-08-13 Werner Lemberg * src/otlayout/otcommn.c: Use OTL_CHECK everywhere. (otl_coverage_validate): Initialize `p', s/count/num_glyphs/. s/start_cover/start_coverage/. (otl_coverage_get_index): Return OTL_Long, not OTL_Int. Remove unused variables. (otl_class_definition_validate): s/count/num_glyphs/. Remove unused variables. (otl_class_definition_get_value, otl_device_table_get_start, otl_device_table_get_end, otl_device_table_get_delta, otl_lookup_get_table, otl_lookup_list_get_count, otl_lookup_list_get_lookup, otl_lookup_list_get_table, otl_feature_get_lookups, otl_feature_list_get_count, otl_feature_list_get_feature, otl_lang_get_count, otl_lang_get_req_feature, otl_lang_get_features): Commented out temporarily until we really need it. (otl_lookup_validate): Removed. (otl_lookup_table_validate): Renamed to ... (otl_lookup_validate): This. Update callers. (otl_lookup_list_validate): Remove already commented out definition and move the other definition up. (otl_feature_validate): Add parameter to pass number of lookups. Update callers. Check lookup indices. (otl_feature_list_validate): Add parameter to pass lookup table. Update callers. (otl_lang_validate): Add parameter to pass number of features. Update callers. Handle req_feature and check feature indices. (otl_script_validate): Add parameter to pass number of features. Update callers. (otl_script_list_validate): Add parameter to pass feature table. Update callers. * src/otlayout/otcommn.h: s/LOCALDEF/LOCAL/. Comment out the same functions as in otcommn.c. (otl_script_list_get_script): Removed. * src/otlayout/otlgsub.c (otl_gsub_lookup1_apply): Change `index' to type OTL_Long. (otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Change `index' to type OTL_Long. Fix test. (otl_gsub_validate): Fix order of validation. * src/otlayout/otlgpos.c (otl_gpos_validate): Fix order of validation. 2004-08-12 Werner Lemberg Make otlayout module compile (without actually working). * src/otlayout/*: s/OTL_Valid/OTL_Validator/. s/NULL/0/. * src/otlayout/otlayout.h: Fix various typos. (OTL_Bool): New typedef. (OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword. (OTL_Err_InvalidArgument): Removed. (OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values. (OTL_MAKE_TAG): Add missing parenthesis. (OTL_INVALID_DATA): Use OTL_Err_InvalidData. (OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize. (OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros. * src/otlayout/otlgpos.c: s/FT_/OTL_/. s/OTL_Short/OTL_Int16/. (otl_gpos_pairset_validate): Add return type. (otl_base_array_validate): Fix call to otl_anchor_validate. (otl_liga_array_validate): Fix call to otl_liga_attach_validate. (otl_gpos_lookup5_validate): Fix typos. (otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate. (otl_gpos_lookup7_validate): Comment out unfinished code. Fix typos. * src/otlayout/otlgsub.c: Add forward declaration for otl_gsub_validate_funcs. (otl_gsub_lookup1_apply, otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Fix call to otl_parser_check_property. s/otl_coverage_lookup/otl_coverage_get_index/. (otl_ligature_validate): Add missing variable declaration. (otl_sub_rule_validate): Fix typo. (otl_sub_class_rule_validate): Add missing variable declaration. Fix typo. (otl_gsub_lookup5_validate): Fix typo. (otl_gsub_lookup6_validate): Fix call to otl_chain_sub_class_set_validate. (otl_gsub_validate_funcs): Don't use `const'. * src/otlayout/otlcommn.c (otl_class_definition_get_value, otl_device_table_validate, otl_device_table_get_delta, otl_lookup_validate, otl_script_validate): Add missing variable declarations. (otl_lookup_list_validate): Comment out first definition. (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. (otl_feature_list_validate): s/otl_feature_table_validate/otl_feature_validate/. (otl_script_list_validate): s/otl_script_table_validate/otl_script_validate/. * src/otlayout/otlcommn.h: Comment out first declaration. (otl_lookup_list_foreach, otl_feature_list_foreach): Comment out. * src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to otl_device_table_validate. (otl_base_scsript_validate): Add missing variable declarations. (otl_base_script_list_validate): Fix call to otl_base_script_validate. (otl_axis_table_validate): Fix calls to otl_base_tag_list_validate and otl_base_script_list_validate. (otl_base_validate): Fix calls to otl_axis_table_validate. * src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to otl_attach_point_validate. (otl_caret_value_validate): Add missing variable declaration. Fix call to otl_device_table_validate. (otl_ligature_glyph_validate): Fix call to otl_caret_value_validate. (otl_ligature_caret_list_validate): Fix call to otl_ligature_glyph_validate. (otl_gdef_validate): Fix calls to otl_class_definition_validate, otl_attach_list_validate, otl_ligature_caret_list_validate, and otl_class_definition_validate. * src/otlayout/otltable.h (otl_table_validate, otl_table_init, otl_table_set_script): Comment out. * src/otlayout/otlparse.h (OTL_ParserRec): s/OTL_Alternate/OTL_GSUB_Alternate/. (OTL_ParseError): Add OTL_Err_Parser_Memory and OTL_Err_Parser_Internal. (otl_parser_error): Fix typo. (otl_parser_check_property): Remove third argument. * src/otlayout/otlparse.c (otl_string_ensure): s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/. (OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index, otl_parser_replace_1, otl_parser_replace_n): Fix typos. (OTL_PARSER_UNCOVERED): Removed. (otl_parser_check_property): Remove third argument. * src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing variable declaration. * src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo. 2004-08-11 Danny * src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close to NULL. This allows custom close functions to delete the FT_STREAM object. 2004-08-11 Werner Lemberg Add API to get information about SFNT tables. * include/freetype/internal/services/svsfnt.h (FT_SFNT_Table_Info_Func): New typedef. (SFNT_Table): Add it. * src/base/ftobjs (FT_Sfnt_Table_Info): New function. * include/freetype/tttables.h: Updated. * src/sfnt/sfdriver.c (sfnt_table_info): New function. (sfnt_service_sfnt_table): Add it. * docs/CHANGES: Updated. * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. * builds/unix/configure.ac (version_info): Set to 9:8:3. * builds/unix/configure: Updated. * builds/win32/visualc/index.html, builds/win32/visualc/freetype.dsp, builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/. * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): s/2.1.9/2.1.10/. * docs/CHANGES, docs/VERSION.DLL: Updated. 2004-08-11 Detlef Würkner * src/base/ftrfork.c (FT_Raccess_Guess) [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_FORK]: Remove compiler warnings. 2004-08-06 Adam Piotrowski * src/pfr/pfrload.c (pfr_sort_kerning_pairs): Single-byte adjustments are unsigned, not signed. 2004-08-05 David Turner `Activate' gray-scale specifing hinting within the TrueType bytecode interpreter. This is an experimental feature which should probably be made optional. * src/truetype/ttgload.c (TT_Process_Simple_Glyph, load_truetype_glyph): Move the code to set the pedantic_hinting flag to... (TT_Load_Glyph): Here. Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'. * src/truetyep/ttinterp.c (Ins_GETINFO): Return MS rasterizer version 1.7. Return rotation and stretching info only if glyph is rotated or stretched, respectively. Handle grayscale info. * src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale' member. 2004-08-02 George Williams * src/base/ftobjs.c (FT_Attach_File): Initialize `open.stream'. 2004-08-01 Werner Lemberg * docs/CHANGES: Updated. 2004-08-01 George Williams FreeType now can read kerning values from PFM files. * src/type1/t1afm.c (T1_Done_AFM): Renamed to... (T1_Done_Metrics): This. Update all callers. (T1_Read_AFM): Make it static. Don't enter and leave a frame. (LITTLE_ENDIAN_USHORT, LITTLE_ENDIAN_UINT): New macros. (T1_Read_PFM): New function. (T1_Read_Metrics): New higher-level function to be used instead of T1Read_AFM. Update all callers. 2004-07-31 Werner Lemberg * src/pcf/pcfread (pcf_load_font), src/bdf/bdfdrivr.c (BDF_Face_Init), src/truetype/ttgxvar (TT_Get_MM_Var, tt_face_vary_cvt): Fix compiler warnings. 2004-07-26 Søren Sandmann * src/pcf/pcfread.c (pcf_interpret_style): Always allocate memory for face->style_name. * src/pcf/pcfdrivr.c (PCF_Face_Done): Free `style_name'. 2004-07-26 Darren J Longhorn * include/freetype/config/ftconfig.h (FT_SIZEOF_LONG): Recognize five-byte `long' (which is avoided then). 2004-07-25 Detlef Würkner * src/pcf/pcfdrivr.c (PCF_Set_Pixel_Size): Compare heights, not ppem values. (PCF_Set_Point_Size): Don't call PCF_Set_Pixel_Size but provide own code to compare ppem values. * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Compare heights, not ppem values. (BDF_Set_Point_Size): Don't call BDF_Set_Pixel_Size but provide own code to compare ppem values. 2004-07-25 Kornfeld Eliyahu Peter * src/sfnt/sfobjs.c (sfnt_load_face): Handle TT_NAME_ID_PREFERRED_FAMILY and TT_NAME_ID_PREFERRED_SUBFAMILY. 2004-07-24 Derek B. Noonburg * src/cff/cffload.c (cff_font_load): Always create inverse mapping. Even if the charstring count is the same as the CID count, it is still possible that the font uses a different CID -> GID mapping. 2004-07-23 Werner Lemberg * src/truetype/ttobjs.c (tt_face_init): Accept 0x00020000 format tag found in some Arphic fonts made for Chinese version of Windows 3.1. 2004-07-17 David Turner Fixed a dangling pointer bug in the cache code that happened in very rare cases, i.e., when a new family object was destroyed by an out-of-memory condition during a glyph node initialization. The function FTC_Cache_Lookup would flush the cache and restart the lookup with a bad pointer. * include/freetype/cache/ftcglyph.h (FTC_FAMILY_TREE): New macro. (FTC_GCACHE_LOOKUP_CMP): Use it. Handle reference count in `num_nodes' correctly. * src/cache/ftcglyph.c (FTC_GNode_UnselectFamily): Use FTC_FAMILY_FREE. (FTC_GCache_Lookup): Handle reference count in `num_nodes' correctly. * src/cache/ftcmanag.c (FTC_Manager_FlushN): Fixed a cache flushing bug. * src/truetype/ttinterp.c (Normalize): Fixed a bug that caused long and unnecessary delays while normalizing huge vectors. 2004-07-15 Werner Lemberg * docs/CHANGES: Updated. * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix compiler warning. 2004-07-15 David Turner * src/base/ftstroke.c (FT_Stroker_ParseOutline): Single points are not stroked, preventing a bug with pala.ttf and other fonts. * include/freetype/ftstroke.h: Updating documentation comments. 2004-07-13 Werner Lemberg * src/base/ftstroke.c (ft_stroke_border_reverse): Removed. Unused. 2004-07-12 David Turner * src/base/ftstroke.c (ft_stroke_border_close): Add second parameter to indicate reversion of points. Update all callers. (ft_stroke_border_reverse): Fix initialization of `point1' and `tag1'. * src/cache/ftcsbits.c (ftc_snode_load): Fixing advance computation for transformed glyphs. 2004-07-11 David Turner Fix bugs that prevented the stroker to correctly generate stroked paths from closed paths, i.e., nearly all glyphs in vectorial fonts. The code is still _very_ buggy though; treat with special care. * src/base/ftstroke.c (FT_STROKE_TAG_BEGIN_END): New macro. (ft_stroke_border_reverse): New function. (ft_stroker_inside): Remove local variable `sigma'; use different threshold. (ft_stroker_add_reverse_left): Switch begin/end tags if necessary. (FT_Stroker_EndSubPath): Call ft_stroker_inside and ft_stroke_border_reverse. 2004-06-26 Peter Kovar * src/truetype/ttgload.c (load_truetype_glyph): Fix typo. 2004-06-25 Werner Lemberg * src/type1/t1afm.c (afm_atoindex): Fix boundary test. Reported by Dirck Blaskey. 2004-06-24 David Turner * Version 2.1.9 released. ========================= * src/truetype/ttgload.c, src/truetype/ttxgvar.c: Removing compiler warnings. 2004-06-23 Werner Lemberg * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare FT_QAlloc_Debug and FT_QRealloc_Debug. * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages. (FT_QRealloc): Call FT_QAlloc if original pointer is NULL. Fix error message. 2004-06-23 David Turner * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug, FT_QRealloc_Debug): New functions that perform allocation without zero-ing out the corresponding blocks. * include/freetype/internal/ftmemory.h (FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY, FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY, FT_QRENEW_ARRAY): New macros. * src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC. * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use FT_QNEW_ARRAY. * src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY. * src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics, tt_face_load_gasp): Use FT_QNEW_ARRAY. (tt_face_load_kern): Use FT_QNEW_ARRAY. Small optimization in the kerning table verifier; this speeds up TrueType face opening by about 7%. (tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC. * include/freetype/config/ftmodule.h: Changed the order of modules, putting TrueType and Type 1 first. This dramatically improves the performance of face open/close operations. For example, putting the TrueType driver first in the list results in a 5x speedup when opening `Vera.ttf'. The very problem is that both the PCF and BDF drivers do a lot more than necessary to detect that they cannot handle a font file. 2004-06-22 Werner Lemberg * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties, pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve debugging messages. * src/pcf/pcfdrivr.c (FT_COMPOMENT): Move up. (PCF_Face_Init): Simplify code. * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'. * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start), src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/. * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs. Set `default_glyph'. (BDF_Glyph_Load): Use `default_glyph' for undefined glyph. * docs/CHANGES: Updated. 2004-06-21 Werner Lemberg * docs/CHANGES: Updated. 2004-06-21 David Turner * src/truetype/ttgload.c (TT_Process_Simple_Glyph, load_truetype_glyph): Don't access (unrounded) `TT_Size.root.metrics' but (rounded) `TT_Size.metrics'. This fixes a scaling bug that caused incorrect rendering when the bytecode interpreter was enabled. 2004-06-14 Huw D M Davies * src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem based on pixel_width and pixel_height. (FNT_Size_Set_Pixels): Updated. 2004-06-14 Werner Lemberg * src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h. Reported by Hyvärinen Jyrki Juhani. 2004-06-11 Werner Lemberg * docs/CHANGES: Updated. 2004-06-10 David Turner * src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c, src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed. Obsolete. * src/raster/ftraster.c (Alignment, PAlignment): New union to fix problems with 64bit systems. (AlignProfileSize): Use it. 2004-06-08 David Turner * include/freetype/freetype.h (FT_GlyphMetrics): Move `lsb_delta' and `rsb_delta' elements to... (FT_GlyphSlotRec): Here to retain binary compatibility with older FreeType versions. Update all users. * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning. * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization of slot->metrics.width and slot->metrics.height when loading a Windows FNT glyph. Thanks to Huw Davies. * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change return type to FT_Bool. * src/cache/ftbasic.c (ftc_basic_family_compare): Change return type to FT_Bool. * src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make the former call the latter, not vice versa. (FTC_Cache_Done, ftc_cache_done): Ditto. * src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make the former call the latter, not vice versa. (FTC_GCache_Init, ftc_gcache_init): Ditto. (FTC_GCache_Done, ftc_gcache_done): Ditto. * src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the former call the latter, not vice versa. (FTC_INode_Weight, ftc_inode_weight): Ditto. * src/cache/ftcmanag.c (ftc_size_node_compare, ftc_size_node_compare_faceid, ftc_face_node_compare): Change return type to FT_Bool. * src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the former call the latter, not vice versa. (FTC_SNode_Weight, ftc_snode_weight): Ditto. (FTC_SNode_Compare, ftc_snode_compare): Ditto. * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache sub-system. 2004-06-05 Werner Lemberg * src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and `rsb_delta' in slot->metrics and tune side bearings slightly. 2004-06-04 Werner Lemberg * docs/CHANGES: Updated. 2004-06-04 David Chester Improve inter-letter spacing for autohinted glyphs. * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements `lsb_delta' and `rsb_delta'. * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and `rsb_delta' in slot->metrics and tune side bearings slightly. 2004-06-04 David Turner * src/autofit/*: Important fixes to the auto-fitter. The output now seems to be 100% equivalent to the auto-hinter, while being about 2% faster (which proves that script-specific algorithm selection isn't a performance problem). To test it, change `autohint' to `autofit' in and recompile. A few more testing is needed before making this the official auto-hinting module. 2004-06-02 Werner Lemberg * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler warnings. 2004-06-01 Werner Lemberg * src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English name record for the Apple platform is preferred to a non-English entry for the Microsoft platform. Problem reported by HANDA Ken'ichi. 2004-05-19 George Williams * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New auxiliary functions. (T1_Get_MM_Var): Provide axis tags. Use mm_axis_unmap and mm_weights_unmap to provide default values for design and normalized axis coordinates. * include/freetype/t1tables.h (PS_DesignMapRec): Change type of `design_points' to FT_Long. Update all users. 2004-05-17 Werner Lemberg * src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases. Reported by Mikey Anbary . 2004-05-15 Werner Lemberg * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name. 2004-05-15 George Williams * src/sfnt/ttload.c (tt_face_load_max_profile): Always set face->root.num_glyphs. 2004-05-14 Masatake YAMATO George Williams * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly. 2004-05-14 Werner Lemberg * src/cache/ftcbasic.c (ftc_basic_family_compare, ftc_basic_family_init, ftc_basic_family_get_count, ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, ftc_basic_gnode_compare_faceid): Adjust parameters and return types to prototypes given in header files from include/freetype/cache. Use casts to proper types locally. (ftc_basic_image_family_class, ftc_basic_image_cache_class, ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove casts. * src/cache/ftccback.h: Adjust parameters and return types to prototypes given in header files from include/freetype/cache. * src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new, ftc_inode_weight): Adjust parameters and return types to prototypes given in header files from include/freetype/cache. Use casts to proper types locally. * src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new, ftc_snode_weight, ftc_snode_compare): Adjust parameters and return types to prototypes given in header files from include/freetype/cache. Use casts to proper types locally. * src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new, ftc_cmap_node_weight, ftc_cmap_node_compare, ftc_cmap_node_remove_faceid): Adjust parameters and return types to prototypes given in header files from include/freetype/cache. Use casts to proper types locally. (ftc_cmap_cache_class): Remove casts. * src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): Adjust parameters and return types to prototypes given in header files from include/freetype/cache. Use casts to proper types locally. * src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare, ftc_size_node_init, ftc_size_node_reset, ftc_size_node_compare_faceid, ftc_face_node_init, ftc_face_node_done, ftc_face_node_compare: Adjust parameters and return types to prototypes given in header files from include/freetype/cache. Use casts to proper types locally. (ftc_size_list_class, ftc_face_list_class): Remove casts. 2004-05-13 Werner Lemberg * src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done): Use FT_Module as parameter and do a cast to FT_AutoHinter locally. (autohint_module_class): Remove casts. * src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy, ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init, ft_outline_glyph_done, ft_outline_glyph_copy, ft_outline_glyph_transform, ft_outline_glyph_bbox, ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast to FT_XXXGlyph locally. Use FT_CALLBACK_DEF throughout. (ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts. * src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done, bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter and do a cast to BDF_CMap locally. (bdf_cmap_class): Remove casts. 2004-05-12 Werner Lemberg * src/cff/cffgload.h (CFF_Builder): Remove `error'. * src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace `Memory_Error' with `Fail' und update all users. 2004-05-11 Werner Lemberg * include/freetype/internal/psaux.h (T1_ParseState): New enumeration. (T1_BuilderRec): Replace `path_begun' with `parse_state'. Remove `error'. * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace `Memory_Error' with `Fail' and update all users. Don't use `builder->error'. Replace `path_begun' with `parse_state' and check parsing states. * src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point): Replace `path_begun' with `parse_state' and check parsing states. 2004-05-10 George Williams * src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case of error -- `avar' is optional so we can't rely on tt_done_blend being called automatically. 2004-05-09 George Williams * src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix error handling. 2004-05-07 Werner Lemberg * src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init, pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done, pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are typecast to the proper PFR_XXX types within the function. Update code accordingly. * src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance, pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX arguments which are typecast to the proper PFR_XXX types within the function. Update code accordingly. Use FT_CALLBACK_DEF throughout. (pfr_metrics_service_rec, pfr_driver_class): Remove casts. 2004-05-06 Masatake YAMATO * src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM. (*): Rename local variable OffsetToData to offsetToData. 2004-05-06 Werner Lemberg * src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access root fields directly. * src/cff/cffdrivr.c (Load_Glyph): Access root fields directly. * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current frame before calling TT_Vary_Get_Glyph_Deltas. * src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for consistency. (pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index, pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which are typecast to the proper PCF_XXX types within the function. Update code accordingly. (pcf_cmap_class): Remove casts. (PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use PCF_XXX but FT_XXX arguments which are typecast to the proper PCF_XXX types within the function. Update code accordingly. Use FT_CALLBACK_DEF throughout. (PCF_Set_Point_Size): New wrapper function. (PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF. (pcf_driver_class): Remove casts. 2004-05-04 Steve Hartwell * src/truetype/ttobjs.c (tt_driver_done): Fix typo. 2004-05-04 Werner Lemberg * src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init, BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which are typecast to the proper BDF_XXX types within the function. Update code accordingly. Use FT_CALLBACK_DEF throughout. (BDF_Set_Point_Size): New wrapper function. (bdf_driver_class): Remove casts. * src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface): Don't use CFF_XXX but FT_XXX arguments which are typecast to the proper CFF_XXX types within the function. Update code accordingly. Use FT_CALLBACK_DEF throughout. (cff_driver_class): Remove casts. * src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init, cff_face_init, cff_face_done, cff_driver_init, cff_driver_done): Don't use CFF_XXX but FT_XXX arguments which are typecast to the proper CFF_XXX types within the function. Update code accordingly. (cff_point_size_reset): New wrapper function. * src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done, cid_slot_init, cid_size_done, cid_size_init, cid_size_reset, cid_face_done, cid_face_init, cid_driver_init, cid_driver_done): Don't use CID_XXX but FT_XXX arguments which are typecast to the proper CID_XXX types within the function. Update code accordingly. (cid_point_size_reset): New wrapper function. * src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph): Don't use CID_XXX but FT_XXX arguments which are typecast to the proper CID_XXX types within the function. Update code accordingly. * src/cid/cidriver.c (cid_get_interface): Don't use CID_XXX but FT_XXX arguments which are typecast to the proper CID_XXX types within the function. Update code accordingly. Use FT_CALLBACK_DEF. (t1cid_driver_class): Remove casts. * src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF. * src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local variables (this is done later). (ft_var_load_avar): Fix call to FT_FRAME_ENTER. (TT_Get_MM_Var): Fix size for `fvar_fields'. (TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables correctly. * src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if current size is zero. 2004-05-03 Steve Hartwell * src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init, tt_face_done, tt_size_init, tt_size_done, tt_driver_init, tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are typecast to the proper TT_XXX types within the function. Update code accordingly. * src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes, Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but FT_XXX arguments which are typecast to the proper TT_XXX types within the function. Update code accordingly. (tt_driver_class): Remove casts. 2004-05-02 Werner Lemberg * src/sfnt/ttload.c (tt_face_free_names): Check that `table->names' is not NULL. Reported by Gordon Childs . 2004-04-29 Werner Lemberg * docs/formats.txt: Add more information on PFR format. 2004-04-28 Werner Lemberg * docs/formats.txt: New file. * docs/CHANGES: Updated. 2004-04-28 Masatake YAMATO * include/freetype/internal/tttypes.h (GX_BlendRec_) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo. * src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo. 2004-04-27 Masatake YAMATO * src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF for function declarations. 2004-04-25 George Williams * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo. 2004-04-25 Werner Lemberg * src/truetype/Jamfile, docs/CHANGES: Updated. 2004-04-24 Werner Lemberg * src/pcf/pcfdrivr.c: Revert change from 2004-04-17. * src/pcf/pcfutil.c: Use FT_LOCAL_DEF. * src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H. Use FT_BEGIN_HEADER and FT_END_HEADER. Use FT_LOCAL. 2004-04-24 George Williams Add support for Apple's distortable font technology (in GX fonts). * devel/ftoption.h, include/freetype/config/ftoption.h (TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro. * include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style, FT_MM_Var): New structures. (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, FT_Set_Var_Blend_Coordinates): New function declarations. * include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func, FT_Set_Var_Design_Func): New typedefs. Update MultiMasters service. * include/freetype/internal/tttypes.h [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H. (GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef. (TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend' and `blend'. * include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New macros. * include/freetype/internal/fttrace.h: Add `ttgxvar'. * src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates, FT_Set_Var_Blend_Coordinates): New functions. * src/sfnt/sfobjs.c (sfnt_load_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS flag for GX var fonts. * src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files. * src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include ttgxvar.c. * src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h. (tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New service. (tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated. * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include ttgxvar.h. (TT_Process_Simple_Glyph, load_truetype_glyph) [TT_CONFIG_OPTION_GX_VAR_SUPPORT] :Support GX var fonts. * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include ttgxvar.h. (tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call tt_done_blend. * src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include ttgxvar.h. (tt_face_load_cvt) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call tt_face_vary_cvt. * src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c. * src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var and T1_Set_Var_Design. * src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros. (T1_Get_MM_Var, T1_Set_Var_Design): New functions. * src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New function declarations. 2004-04-23 Werner Lemberg * include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename declaration and move to... * include/freetype/freetype.h (FT_Get_Charmap_Index): Here. (FREETYPE_PATCH): Set to 9. * src/base/ftobjs.c (FT_Get_Charmap_Index): New function. * builds/unix/configure.ac (version_info): Set to 9:7:3. * builds/unix/configure: Updated. * builds/win32/visualc/index.html, builds/win32/visualc/freetype.dsp, builds/win32/visualc/freetype.vcproj: s/218/219/. * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): s/2.1.8/2.1.9/. * docs/CHANGES, docs/VERSION.DLL: Updated. 2004-04-21 Werner Lemberg * src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c (ps_parser_load_field): Use FT_CHAR_BIT. 2004-04-21 David Turner * Version 2.1.8 released. ========================= * src/cff/cffobjs.c (cff_face_init): Fix a small memory leak. * src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c (af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name): Remove compiler warnings. * src/autofit/aftypes.h: Undefine AF_DEBUG. * src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf, pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c (ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict, t42_service_ps_font_name): Decorate data arrays with `const' to avoid populating the `.data' segment. * src/lzw/Jamfile: New file. 2004-04-20 Werner Lemberg * src/psaux/psobjs.c (T1Radix): Renamed to... (ps_radix): This. Update current cursor position. * docs/CHANGES: Updated. 2004-04-18 Werner Lemberg * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph), src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to FT_UInt. From Lex Warners. 2004-04-17 Chisato Yamauchi * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change from 2004-03-19. * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'. * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with `static'. Remove unused function `RepadBitmap'. * src/pcf/pcfdrivr.c: Don't include pcfutil.h. 2004-04-16 Werner Lemberg * builds/unix/freetype-config.in (usage): Fix and improve usage information. 2004-04-15 Werner Lemberg * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define FT_CHAR_BIT. * src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if glyph is vertically distorted or mirrored. * src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly for embedded bitmaps. * docs/CHANGES: Updated. 2004-04-15 bytesoftware * include/freetype/config/ftconfig.h, src/base/ftstream.c (FT_Stream_ReadFields): More fixes using FT_CHAR_BIT. 2004-04-14 Werner Lemberg * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro. 2004-04-14 Alex Strelnikov * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case of error. 2004-04-14 Werner Lemberg * src/base/ftmac.c [__GNUC__]: Define OS_INLINE. * builds/unix/configure.ac: Don't try to remove `-ansi' compilation switch on the Mac. * builds/unix/ltmain.sh: Regenerated with `libtoolize --force --copy' from libtool 1.5.6. * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from automake 1.8a. * builds/unix/configure: Regenerated with autoconf 2.59a. 2004-04-13 Werner Lemberg * include/freetype/config/ftconfig.h: Use CHAR_BIT to define size of FT_SIZEOF_xxx. 2004-04-12 Chisato Yamauchi * include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func, TT_Load_SBit_Metrics_Func): New typedefs. (SFNT_Interface): Add find_sbit_image and load_sbit_metrics. * src/sfnt/sfdriver.c (sfnt_interface): Updated. * src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New declarations. * src/sfnt/ttsbit.c (find_sbit_image): Renamed to... (tt_find_sbit_image): This. Updated all callers. (load_sbit_metrics): Renamed to... (tt_load_sbit_metrics): This. Updated all callers. 2004-04-12 Werner Lemberg * configure: Accept makepp also. * builds/unix/detect.mk: Use proper path to unix-def.mk. * builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove. * builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define. Use BUILD_DIR. * docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update documentation on makepp. 2004-04-11 Werner Lemberg * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h. 2004-04-10 Werner Lemberg * src/lzw/ftlzw.c: Include zopen.h dependent on FT_CONFIG_OPTION_USE_LZW. * src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings. 2004-04-02 Werner Lemberg * builds/unix/ltmain.sh: Regenerated with `libtoolize --force --copy' from libtool 1.5.2. * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from automake 1.8a. * builds/unix/configure: Regenerated with autoconf 2.59a. 2004-04-01 Werner Lemberg * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of AC_COMPILE_IFELSE. * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from automake 1.8a. * builds/unix/configure: Regenerated with autoconf 2.59a. * 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/freetype.mk (refdoc): Updated. 2004-03-31 Werner Lemberg Handle broken FNT files which don't have a trailing NULL byte in the face name string. * src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'. * src/winfonts/winfnt.c (fnt_font_done): Free font->family_name. (FNT_Face_Init): Append a final zero byte to the font face name. 2004-03-30 Werner Lemberg * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from 2004-03-19. 2004-03-27 Werner Lemberg * src/base/descrip.mms (OBJS): Add ftbbox.obj. 2004-03-26 George Williams Add vertical phantom points. * include/freetype/internal/tttypes.h (TT_LoaderRec): Add `top_bearing', `vadvance', `pp3, and `pp4'. * src/autofit/afloader.c (af_loader_load_g): Handle two more points. * src/autohint/ahhint.c (ah_hinter_load): Handle two more points. * src/truetype/ttgload.c (Get_VMetrics): New function. (TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more points. (load_truetype_glyph): Use Get_VMetrics. Handle two more points. (compute_glyph_metrics): Thanks to vertical phantom points we now can always compute `advance_height' and `top_bearing'. * src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom points. * src/autohint/ahglyph.c (ah_outline_load): Fix allocation of `news'. 2004-03-21 Werner Lemberg * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing. 2004-03-20 Steve Hartwell * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL value for `selection' as `select all'. 2004-03-19 Steve Hartwell * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index values > 0 if loading non-TTC fonts. * src/base/ftmac.c (open_face_from_buffer): Set positive face_index to zero before calling FT_Open_Face. * docs/CHANGES: Updated. 2004-03-04 Werner Lemberg * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp, builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h: Add LZW module. * Jamfile.in: Removed. * docs/CHANGES: Updated. * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/, s/ABS/FT_ABS/. Updated all callers. * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c (PCF_Face_Init): Use FT_ERROR_BASE. 2004-03-04 Albert Chin Add support for PCF fonts compressed with LZW (extension .pcf.Z, created with `compress'). * include/freetype/config/ftoption.h, devel/ftoption.h (FT_CONFIG_OPTION_USE_LZW): New macro. * include/freetype/ftlzw.h: New file. * include/freetype/config/ftheader.h (FT_LZW_H): New macro for ftlzw.h. * src/lzw/*: New files. * src/pcf/pcfdrivr.c: Include FT_LZW_H. (PCF_Face_Init): Try LZW also. * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate. Beautify. 2004-03-03 Werner Lemberg * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code. 2004-03-02 Werner Lemberg Add embedded bitmap support to CFF driver. * src/cff/cffobjs.h (CFF_SizeRec): New structure. * src/cff/cffgload.c (cff_builder_init): Updated. (cff_slot_load): Updated. [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit. * src/cff/cffobjs.c (sbit_size_reset) [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function. (cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated. (cff_size_reset): Updated. [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset. * src/cff/cffdrivr.c (Load_Glyph): Updated. (cff_driver_class): Use CFF_SizeRec. * docs/CHANGES: Updated. 2004-03-01 Werner Lemberg * src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use FT_RoundFix but FT_PIX_ROUND. (psh_blues_snap_stem): Don't use blue_shift but blue_threshold. * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro. (psh_glyph_find_string_points): Use PSH_STRONG_THRESHOLD_MAXIMUM. (psh_glyph_find_blue_points): New function. Needed for fonts like p052003l.pfb (URW Palladio L Roman) which have flex curves at the base line within blue zones, but the flex curves aren't covered by hints. (ps_hints_apply): Use psh_glyph_find_blue_points. 2004-02-27 Garrick Meeker * builds/unix/configure.ac: Fix compiler flags for `--with-old-mac-fonts'. * builds/unix/configure: Regenerated. * src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/. (FT_New_Face_From_Resource): New function. (FT_New_Face): Use FT_New_Face_From_Resource. (FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource. [__MWERKS__]: Don't include FSp_fopen.h. 2004-02-26 Werner Lemberg * src/pshinter/pshglob.c (psh_globals_new): Fix value of `dim->stdw.count'. Don't assign default values to blue scale and blue shift. 2004-02-25 Werner Lemberg * docs/CHANGES: Updated. 2004-02-25 Garrick Meeker Steve Hartwell Improve MacOS fond support. Provide a new API `FT_New_Face_From_FSSpec' similar to `FT_New_Face'. * src/base/ftmac.c [__MWERKS__]: Include FSp_fpopen.h. STREAM_FILE [__MWERKS__]: New macro. (ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions. (file_spec_from_path) [__MWERKS__]: Updated #if statement. (get_file_type, make_lwfn_spec): Use `const' for argument. (is_dfont) [TARGET_API_MAC_CARBON]: Removed. (count_face_sfnt, count_faces): New functions. (parse_fond): Do some range checking. (read_lwfn): Change type of second argument. No longer call FSpOpenResFile. (OpenFileAsResource): New function. (FT_New_Face_From_LWFN): Use `const' for second argument. Use OpenFileAsResource. (FT_New_Face_From_Suitcase): Change type of second argument. No longer call FSpOpenResFile. Loop over all resource indices. (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed. (FT_GetFile_From_Mac_Name): Use `const' for first argument. (ResourceForkSize): Removed. (FT_New_Face): Updated to use new functions. (FT_New_Face_From_FSSpec): New function. * include/freetype/ftmac.h: Updated. 2004-02-24 Malcolm Taylor * src/autohint/ahhint.c (ah_hinter_load) : Handle case where outline->num_vedges is zero while computing hinted metrics. 2004-02-24 Gordon Childs * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value for `count'. 2004-02-24 Werner Lemberg * include/freetype/t1tables.h (PS_PrivateRec): Add `expansion_factor'. * src/pshinter/pshglob (psh_blues_scale_zones): Fix computation of blues->no_overshoots -- `blues_scale' is stored with a magnification of 1000, and `scale' returns fractional pixels. * src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift', `blue_fuzz', `expansion_factor', and `blue_scale' according to the Type 1 specification. * src/type1/t1tokens.h: Handle `ExpansionFactor'. * docs/CHANGES: Updated. 2004-02-24 Masatake YAMATO Provide generic access to MacOS resource forks. * src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New files. * src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H. (Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments `resource_listoffset' and `resource_data' and adapt code accordingly. These values are calculated outside of the function now. Add new argument `offsets'. (IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and `FT_Raccess_Get_DataOffsets'. (load_face_in_embedded_rfork): New function. (load_mac_face): Use load_face_in_embedded_rfork. (ft_input_stream_new): Renamed to... (FT_Stream_New): This. Use FT_BASE_DEF. Updated all callers. (ft_input_stream_free): Renamed to... (FT_Stream_Free): This. Use FT_BASE_DEF. Updated all callers. * src/base/ftbase.c: Include ftrfork.c. * src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated. * include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H): New macro. * include/freetype/internal/fttrace.h: Added `rfork' as a new trace definition. * include/freetype/internal/ftstream.h: Declare FT_Stream_New and FT_Stream_Free. * include/freetype/config/ftoption.h, devel/ftoption.h (FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option. * include/freetype/config/ftstdlib.h (ft_strrchr): New macro. 2004-02-23 Werner Lemberg * docs/CHANGES: Updated. * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H. 2004-02-23 Masatake YAMATO Provide a simple API to control FreeType's tracing levels. * include/freetype/internal/ftdebug.h (FT_Trace_Get_Count, FT_Trace_Get_Name): New declarations. * src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New functions. 2004-02-23 David Turner * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave bugs have been fixed. The auto-fitter works, doesn't crash, but still produces unexpected results... 2004-02-21 Werner Lemberg * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold the accepted shift for strong points in fractional pixels (which is a heuristic value). (psh_glyph_find_strong_points): Compute threshold for psh_hint_table_find_strong_points. (psh_hint_table_find_strong_point): Add parameter to pass threshold. 2004-02-20 Werner Lemberg * src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call ps_mask_table_alloc but ps_mask_table_last. (ps_hints_t2mask): Use correct position and number for vertical and horizontal hinter mask bits. * docs/CHANGES: Updated. 2004-02-19 Werner Lemberg * src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling. * src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning. 2004-02-18 Werner Lemberg * include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly. * src/base/ftglyph.c (ft_bitmap_glyph_class, ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF. * src/smooth/ftsmooth.c (ft_smooth_render): Handle FT_RENDER_MODE_LIGHT. 2004-02-17 Werner Lemberg Fix callback functions in cache module. * src/cache/ftccback.h: New file for callback declarations. * src/cache/ftcbasic.c (ftc_basic_family_compare, ftc_basic_family_init, ftc_basic_family_get_count, ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph, ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF. (ftc_basic_image_family_class, ftc_basic_image_cache_class, ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Use FT_CALLBACK_TABLE_DEF and local wrapper functions. * src/cache/ftccache.c: Include ftccback.h. (ftc_cache_init, ftc_cache_done): New wrapper functions which use FT_LOCAL_DEF. * src/cache/ftccmap.c: Include ftccback.h. (ftc_cmap_cache_class): Use local wrapper functions. * src/cache/ftcglyph.c: Include ftccback.h. (ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper functions which use FT_LOCAL_DEF. * src/cache/ftcimage.c: Include ftccback.h. (ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper functions which use FT_LOCAL_DEF. * src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class): Use FT_CALLBACK_TABLE_DEF. * src/cache;/ftcsbits.c: Include ftccback.h. (ftc_snode_free, ftc_snode_new, ftc_snode_weight, ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF. * src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h. 2004-02-17 Masatake YAMATO * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo (FT_EXPORT_DEF -> FT_EXPORT). * include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto. 2004-02-15 Werner Lemberg * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo. 2004-02-14 Masatake YAMATO * builds/unix/ftsystem.c: Include errno.h. (ft_close_stream): Renamed to... (ft_close_stream_by_munmap): This. (ft_close_stream_by_free): New function. (FT_Stream_Open): Use fallback method if mmap fails. Use proper function for closing the stream. 2004-02-14 Werner Lemberg * src/type1/t1load.c (parse_dict): Initialize `start_binary'. 2004-02-13 Robert Etheridge * src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c (T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation of underline_position and underline_thickness. 2004-02-12 Werner Lemberg * src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if ppem values don't change. Suggested by Graham Asher. 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/truetype/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