michael@0: 2010-02-13 Werner Lemberg michael@0: michael@0: * Version 2.3.12 released. michael@0: ========================== michael@0: michael@0: michael@0: Tag sources with `VER-2-3-12'. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: * docs/VERSION.DLL: Update documentation and bump version number to michael@0: 2.3.12. michael@0: michael@0: * README, Jamfile (RefDoc), michael@0: builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, michael@0: builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, michael@0: builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, michael@0: builds/win32/visualce/freetype.vcproj, michael@0: builds/win32/visualce/index.html, michael@0: builds/wince/vc2005-ce/freetype.vcproj, michael@0: builds/wince/vc2005-ce/index.html, michael@0: builds/wince/vc2008-ce/freetype.vcproj, michael@0: builds/wince/vc2008-ce/index.html: s/2.3.11/2.3.12/, s/2311/2312/. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 10:0:4. michael@0: michael@0: 2010-02-12 suzuki toshiya michael@0: michael@0: Improve autotool version checking to work with beta releases. michael@0: michael@0: * autogen.sh (check_tool_version): Improve the extraction of version michael@0: number from "tool --version" output. Some beta releases of michael@0: autotools have extra strings before version number. michael@0: michael@0: 2010-02-12 suzuki toshiya michael@0: michael@0: Fix overallocating bug in FT_Outline_New_Internal(). michael@0: michael@0: * src/base/ftoutln.c (FT_Outline_New_Internal): The length of michael@0: FT_Outline->points[] should be numPoints, not 2 * numPoints. michael@0: Found by Paul Messmer, see michael@0: http://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html michael@0: michael@0: 2010-02-10 Ken Sharp michael@0: michael@0: Really fix Savannah bug #28678 (part 2). michael@0: michael@0: Since we consider `sbw' for the horizontal direction only, we still have michael@0: to synthesize vertical metrics if the user wants to use the vertical michael@0: writing direction. michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c michael@0: (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): michael@0: Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is michael@0: set. michael@0: michael@0: 2010-02-10 Ken Sharp michael@0: michael@0: Really fix Savannah bug #28678 (part 1). michael@0: michael@0: After long discussion, we now consider the character width vector michael@0: (wx,wy) returned by the `sbw' Type 1 operator as being part of *one* michael@0: direction only. For example, if you are using the horizontal michael@0: writing direction, you get the horizontal and vertical components of michael@0: the advance width for this direction. Note that OpenType and CFF fonts michael@0: don't have such a vertical component; instead, the GPOS table can be michael@0: used to generate two-dimensional advance widths (but this isn't michael@0: handled by FreeType). michael@0: michael@0: * include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add michael@0: `advance_v' field to hold the vertical component of the advance michael@0: value. michael@0: michael@0: * src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c michael@0: (cff_slot_load), src/type1/t1gload.c michael@0: (T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c michael@0: (cid_load_glyph): Use it. michael@0: michael@0: 2010-02-08 Werner Lemberg michael@0: michael@0: * devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define. michael@0: michael@0: 2010-02-04 suzuki toshiya michael@0: michael@0: Prevent NULL pointer dereference passed to FT_Module_Requester. michael@0: michael@0: * src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'. michael@0: * src/psnames/psmodule.c (psnames_get_interface): Ditto. michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'. michael@0: * src/truetype/ttdriver.c (tt_get_interface): Ditto. michael@0: michael@0: 2010-01-29 suzuki toshiya michael@0: michael@0: Fix memory leaks in previous patch. michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings michael@0: allocated for face->root.family_name and style_name. michael@0: michael@0: 2010-01-29 suzuki toshiya michael@0: michael@0: New parameters for FT_Open_Face() to ignore preferred family names. michael@0: michael@0: Preferred family names should be used for legacy systems that michael@0: can hold only a few faces (<= 4) for a family name. Suggested by michael@0: Andreas Heinrich. michael@0: http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html michael@0: michael@0: * include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY, michael@0: FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define. michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and michael@0: ignore preferred family and subfamily names if requested. michael@0: michael@0: 2010-01-27 Ken Sharp michael@0: michael@0: Fix Savannah bug #28678. michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c michael@0: (cid_load_glyph): Handle vertical metrics correctly. michael@0: michael@0: * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle michael@0: vertical metrics correctly. michael@0: (T1_Load_Glyph): Don't synthesize vertical metrics. michael@0: michael@0: 2010-01-14 Werner Lemberg michael@0: michael@0: Make FT_Set_Transform work if no renderer is available. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation michael@0: if no renderer is compiled into the library. michael@0: michael@0: 2010-01-14 Werner Lemberg michael@0: michael@0: Fix compilation warning. michael@0: michael@0: * src/base/ftbase.h: s/LOCAL_DEF/LOCAL/. michael@0: * src/base/ftobjc.s: Include ftbase.h conditionally. michael@0: michael@0: 2010-01-11 Kwang Yul Seo michael@0: michael@0: Provide inline assembly code for RVCT compiler. michael@0: This is Savannah patch #7059. michael@0: michael@0: * include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER, michael@0: FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define. michael@0: michael@0: 2010-01-08 Ken Sharp michael@0: michael@0: Fix Savannah bug #28521. michael@0: michael@0: Issue #28226 involved a work-around for a font which used the michael@0: `setcurrentpoint' operator in an invalid way; this operator is only michael@0: supposed to be used with the result of OtherSubrs, and the font used michael@0: it directly. The supplied patch removed the block of code which michael@0: checked this usage entirely. michael@0: michael@0: This turns out to be a Bad Thing. If `setcurrentpoint' is being michael@0: used correctly it should reset the flex flag in the decoder. If we michael@0: don't do this then the flag never gets reset and we omit any further michael@0: contours from the glyph (at least until we close the path or michael@0: similar). michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings) michael@0: : Handle `flex_state' correctly. michael@0: michael@0: 2010-01-05 Werner Lemberg michael@0: michael@0: Apply reports from clang static analyzer. michael@0: michael@0: * src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c michael@0: (FT_Stroker_ParseOutline), src/base/ftsynth.c michael@0: (FT_GlyphSlot_Embolden): Remove dead code. michael@0: michael@0: * src/base/ftpatent.c (_tt_check_patents_in_table): Initialize michael@0: `offset_i' and `length_i'. michael@0: michael@0: 2010-01-05 Ralph Giles michael@0: michael@0: Enable the incremental font interface by default. michael@0: michael@0: Ghostscript requires the incremental font interface for handling michael@0: some Postscript documents. It is moving to using FreeType as its michael@0: primary renderer; supporting this in the default build makes it michael@0: Ghostscript to be linked against the system FreeType when one is michael@0: available. michael@0: michael@0: * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL): michael@0: Uncomment. michael@0: michael@0: 2010-01-05 Werner Lemberg michael@0: michael@0: Fix Savannah bug #28395. michael@0: michael@0: * src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c michael@0: (T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface michael@0: is used. michael@0: michael@0: 2010-01-05 Ken Sharp michael@0: michael@0: Make Type 1 `seac' operator work with incremental interface. michael@0: This fixes Savannah bug #28480. michael@0: michael@0: * src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names' michael@0: if incremental interface is used. michael@0: michael@0: 2010-01-04 Ken Sharp michael@0: michael@0: Make incremental interface work with TrueType fonts. michael@0: This fixes Savannah bug #28478. michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Don't check michael@0: `glyf_offset' if incremental interface is used. michael@0: michael@0: 2009-12-31 Lars Abrahamsson michael@0: michael@0: Make compilation with FT_CONFIG_OPTION_PIC work again. michael@0: michael@0: * src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]: michael@0: Declare `library' for FT_BITMAP_GLYPH_CLASS_GET. michael@0: michael@0: * src/base/ftinit.c (ft_destroy_default_module_classes, michael@0: ft_create_default_module_classes): Use proper casts (needed for C++ michael@0: compilation). michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP. michael@0: michael@0: 2009-12-22 Marc Kleine-Budde michael@0: michael@0: Make freetype-config aware of $SYSROOT. michael@0: This is Savannah patch #7040. michael@0: michael@0: * builds/unix/freetype-config.in: Decorate with ${SYSROOT} where michael@0: appropriate. michael@0: michael@0: 2009-12-20 Werner Lemberg michael@0: michael@0: Fix compiler warning. michael@0: Reported by Sean. michael@0: michael@0: * src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty michael@0: source files; however, some compilers warn about an unused variable michael@0: declaration. This is now replaced with a typedef. michael@0: michael@0: 2009-12-18 Werner Lemberg michael@0: michael@0: Fix Savannah bug #28320. michael@0: michael@0: There exist corrupt, subsetted fonts (embedded in PDF files) which michael@0: contain a private dict that ends with an unterminated floating point michael@0: number (no operator following). We now ignore this error (as michael@0: acrobat does). michael@0: michael@0: * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for michael@0: unterminated floating point numbers. michael@0: michael@0: 2009-12-16 Werner Lemberg michael@0: michael@0: Really fix compiler warnings. michael@0: Reported by Sean. michael@0: michael@0: * src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS, michael@0: GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros. michael@0: michael@0: 2009-12-16 suzuki toshiya michael@0: michael@0: Improve configure.raw to copy some options from CFLAGS to LDFLAGS. michael@0: The linker of Mac OS X 10.6 is sensitive to the architecture. If michael@0: the architectures are specified explicitly for the C compiler, the michael@0: linker requires the architecture specifications too. michael@0: michael@0: * builds/unix/configure.raw: Replace `-isysroot' option parser by michael@0: more generic argument parser. michael@0: michael@0: 2009-12-15 Werner Lemberg michael@0: michael@0: Fix compiler warnings. michael@0: Reported by Sean. michael@0: michael@0: * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data michael@0: type. michael@0: michael@0: 2009-12-14 Ken Sharp michael@0: michael@0: Ignore invalid `setcurrentpoint' operations in Type 1 fonts. michael@0: This fixes Savannah bug #28226. michael@0: michael@0: At least two wild PostScript files of unknown provenance contain michael@0: Type 1 fonts, apparently converted from TrueType fonts in earlier michael@0: PDF versions of the files, which use the `setcurrentpoint' operator michael@0: inappropriately. michael@0: michael@0: FreeType currently throws an error in this case, but Ghostscript and michael@0: Adobe Distiller both accept the fonts and ignore the problem. This michael@0: commit #ifdefs out the check so PostScript interpreters using michael@0: FreeType can render these files. michael@0: michael@0: The specification says `setcurrentpoint' should only be used to set michael@0: the point after a `Subr' call, but these fonts use it to set the michael@0: initial point to (0,0). Unnecessarily so, as they correctly use an michael@0: `hsbw' operation which implicitly sets the initial point. michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings) michael@0: : Comment out code. michael@0: michael@0: 2009-12-14 Bram Tassyns michael@0: michael@0: Fix parsing of /CIDFontVersion. michael@0: This fixes Savannah bug #28287. michael@0: michael@0: * src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in michael@0: t1tables.h) is of type FT_Fixed. michael@0: michael@0: 2009-12-14 Werner Lemberg michael@0: michael@0: Trace glyph index in CID module. michael@0: Suggested in Savannah patch #7023. michael@0: michael@0: * src/cid/cidgload.c (cid_load_glyph): Add tracing message. michael@0: michael@0: 2009-12-03 Werner Lemberg michael@0: michael@0: Fix compiler warnings. michael@0: michael@0: * src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the michael@0: proper preprocessor conditional. michael@0: * src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc. michael@0: michael@0: 2009-11-25 John Tytgat michael@0: michael@0: Better handling of start of `eexec' section. michael@0: This fixes Savannah bug #28090. michael@0: michael@0: * src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace michael@0: characters before start of `eexec' section. michael@0: michael@0: 2009-11-20 Werner Lemberg michael@0: michael@0: Fix Savannah bug #27742. michael@0: michael@0: * src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by michael@0: zero, using a threshold for `theta'. michael@0: michael@0: 2009-11-20 Werner Lemberg michael@0: michael@0: Fix Savannah bug #28036. michael@0: michael@0: * src/type1/t1afm.c (t1_get_index): Fix comparison. michael@0: michael@0: 2009-11-16 Werner Lemberg michael@0: michael@0: Fix compiler warnings. michael@0: Reported by Kevin Blenkinsopp . michael@0: michael@0: * src/sfnt/ttload.c (check_table_dir): Use proper data type. michael@0: michael@0: 2009-11-15 Werner Lemberg michael@0: michael@0: Really fix FreeDesktop bug #21197. michael@0: This also fixes Savannah bug #28021. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metrics_check_digits), michael@0: src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop. michael@0: michael@0: 2009-11-15 Werner Lemberg michael@0: michael@0: Add tracing messages for advance values. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c michael@0: (TT_Get_HMetrics, TT_Get_VMetrics): Do it. michael@0: michael@0: 2009-11-08 Werner Lemberg michael@0: michael@0: Fix compiler warning. michael@0: Reported by Jeremy Manson . michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'. michael@0: michael@0: 2009-11-04 Werner Lemberg michael@0: michael@0: Remove compiler warning. michael@0: Reported by Sean McBride . michael@0: michael@0: * src/tools/apinames.c (read_header_file): Use a cast to michael@0: `int', as specified in the printf(3) man page. michael@0: michael@0: 2009-11-04 Werner Lemberg michael@0: michael@0: Fix Savannah bug #27921. michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c michael@0: (cid_face_init), src/type1/t1afm.c (T1_Read_Metrics), michael@0: src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant michael@0: values for rounding if the argument can be negative. michael@0: michael@0: 2009-11-03 Bram Tassyns michael@0: michael@0: Add basic support for Type1 charstrings in CFF. michael@0: This fixes Savannah bug #27922. michael@0: michael@0: * src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle michael@0: `seac', `sbw', and `setcurrentpoint' opcodes. michael@0: (cff_compute_bias): Add parameter to indicate the charstring type. michael@0: Update all callers. michael@0: (cff_operator_seac): Add parameter for side bearing. michael@0: (cff_decoder_parse_charstrings): Updated for more Type1 support. michael@0: michael@0: 2009-11-03 Werner Lemberg michael@0: michael@0: Return correct `linearHoriAdvance' value for embedded TT bitmaps too. michael@0: Reported by Jeremy Manson . michael@0: michael@0: src/truetype/ttgload.c (load_truetype_glyph): Add parameter to michael@0: quickly load the glyph header only. michael@0: Update all callers. michael@0: (tt_loader_init): Add parameter to quickly load the `glyf' table michael@0: only. michael@0: Update all callers. michael@0: (TT_Load_Glyph): Compute linear advance values for embedded bitmap michael@0: glyphs too. michael@0: michael@0: 2009-11-03 Werner Lemberg michael@0: michael@0: Improve code readability. michael@0: michael@0: * src/ttgload.c (load_truetype_glyph): Move metrics calculation michael@0: to... michael@0: (tt_get_metrics): This new function. michael@0: michael@0: 2009-10-26 Bram Tassyns michael@0: michael@0: Fix Savannah bug #27811. michael@0: michael@0: * src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix michael@0: signed/unsigned mismatch. michael@0: michael@0: 2009-10-19 Ning Dong michael@0: michael@0: Fix handling of `get' and `put' CFF instructions. michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings) : Appendix B of Adobe Technote #5177 limits the number of michael@0: elements for the `get' and `put' operators to 32. michael@0: * src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define. michael@0: (CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'. michael@0: michael@0: 2009-10-18 Werner Lemberg michael@0: michael@0: Fix handling of `dup' CFF instruction. michael@0: Problem and solution reported by Ning Dong . michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings) : michael@0: Increase `args' by 2, not 1. michael@0: michael@0: 2009-10-10 Werner Lemberg michael@0: michael@0: * Version 2.3.11 released. michael@0: ========================== michael@0: michael@0: michael@0: Tag sources with `VER-2-3-11'. michael@0: michael@0: * docs/VERSION.DLL: Update documentation and bump version number to michael@0: 2.3.11. michael@0: michael@0: * README, Jamfile (RefDoc), builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, michael@0: builds/win32/visualce/index.html, michael@0: builds/win32/visualce/freetype.dsp, michael@0: builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:22:3. michael@0: michael@0: 2009-10-10 Werner Lemberg michael@0: michael@0: * docs/CHANGES, docs/release: Updated. michael@0: michael@0: 2009-10-10 suzuki toshiya michael@0: michael@0: * src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops michael@0: truncation. Reported by Martin von Gagern and Peter Volkov. michael@0: https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256 michael@0: michael@0: 2009-10-06 Werner Lemberg michael@0: michael@0: * Version 2.3.10 released. michael@0: ========================== michael@0: michael@0: michael@0: Tag sources with `VER-2-3-10'. michael@0: michael@0: * builds/toplevel.mk (major, minor, patch): Fix regexp to allow more michael@0: than a single digit. michael@0: (dist): We now use git. michael@0: michael@0: * docs/VERSION.DLL: Update documentation and bump version number to michael@0: 2.3.10. michael@0: michael@0: * README, Jamfile (RefDoc), builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, michael@0: builds/win32/visualce/index.html, michael@0: builds/win32/visualce/freetype.dsp, michael@0: builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:21:3. michael@0: michael@0: 2009-10-06 Werner Lemberg michael@0: michael@0: Fix `make multi'. michael@0: michael@0: * src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define. michael@0: michael@0: * src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H. michael@0: michael@0: 2009-09-27 suzuki toshiya michael@0: michael@0: [cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582. michael@0: Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed. michael@0: Now these functions should be called with FTC_Node or FTC_MruNode michael@0: variable, and the caller should cast them to appropriate pointers to michael@0: concrete data. These tricky casts can GCC-4.4 optimizer (-O2) michael@0: confused and the crashing binaries are generated. michael@0: michael@0: * src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast. michael@0: Now the 4th argument `node' of this function should be typed as michael@0: FTC_MruNode. michael@0: michael@0: * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline michael@0: implementation, new temporal variable FTC_MruNode `_mrunode' to take michael@0: the pointer from FTC_MRULIST_LOOKUP_CMP(). For non-inline michael@0: implementation, tricky cast is dropped. michael@0: michael@0: * src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting michael@0: to FTC_SizeNode. michael@0: (FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode michael@0: `mrunode', and FTC_SIZE_NODE() is inserted. michael@0: (FTC_FACE_NODE): New macro casting to FTC_FaceNode. michael@0: (FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode michael@0: `mrunode', and FTC_FACE_NODE() is inserted. michael@0: michael@0: * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of michael@0: `node' from FTC_INode to FTC_Node. Extra casting macro FTC_NODE() michael@0: is dropped. michael@0: (FTC_ImageCache_LookupScaler): Ditto. michael@0: (FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to michael@0: FTC_Node. Extra casting macro FTC_NODE() is dropped. FTC_SNODE() michael@0: is inserted. michael@0: (FTC_SBitCache_LookupScaler): Ditto. michael@0: michael@0: * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of michael@0: `node' from FTC_CMapNode to FTC_Node. Extra casting macro michael@0: FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted. michael@0: michael@0: 2009-09-25 suzuki toshiya michael@0: michael@0: [cache, psaux, type1] Fix for multi build. michael@0: In multi build, some cpp functions are left as unresolved symbols. michael@0: michael@0: * src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1(). michael@0: michael@0: * src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for michael@0: FIXED_TO_INT(). michael@0: * src/type1/t1gload.c: Ditto. michael@0: * src/type1/t1objs.c: Ditto. michael@0: michael@0: 2009-09-25 suzuki toshiya michael@0: michael@0: [autofit] Fix for multi build. michael@0: michael@0: * src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use michael@0: FT_DECLARE_MODULE() macro in multi build. michael@0: michael@0: * src/autofit/aflatin.c: Include to handle michael@0: FT_ADVANCES_H correctly in multi build. michael@0: michael@0: 2009-09-24 suzuki toshiya michael@0: michael@0: [cache] Check the face filled by FTC_Manager_LookupFace(). michael@0: michael@0: * src/cache/ftcbasic.c (ftc_basic_family_get_count): Return michael@0: immediately if FTC_Manager_LookupFace() fills face by NULL. Such michael@0: case can occur when the code is optimized by GCC-4.2.x. michael@0: michael@0: 2009-09-23 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2009-09-12 Werner Lemberg michael@0: michael@0: [raster] Fix 5-levels grayscale output. michael@0: This was broken since version 2.3.0. michael@0: michael@0: * src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which michael@0: were then computed dynamically). michael@0: (Vertical_Gray_Sweep_Step): Updated. michael@0: michael@0: (ft_black_render): Initialize `worker->gray_lines' (problem found by michael@0: valgrind). michael@0: michael@0: (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just michael@0: comment out. michael@0: michael@0: 2009-09-12 suzuki toshiya michael@0: michael@0: Improve configure.raw for cross build. michael@0: michael@0: * builds/unix/configure.raw: Remove temporal files created by the michael@0: suffix checking for CC_BUILD. Set XX_ANSIFLAGS and XX_CFLAGS when michael@0: cross compiler is GCC. AC_PROG_CC checks whether the cross compiler michael@0: is GCC, its result is stored in GCC. michael@0: michael@0: 2009-09-12 suzuki toshiya michael@0: michael@0: [BDF] Modify hash API to take size_t value instead of void *. michael@0: michael@0: The hash API in BDF driver is designed to be generic, it takes michael@0: void * typed data. But BDF driver always gives an unsigned long michael@0: integer (the index to a property). To reduce non-essential michael@0: casts from unsigned long to void* and from void* to unsigned michael@0: long, the hash API is changed to take size_t integer. michael@0: The issue of incompatible cast between unsigned long and void* michael@0: on LLP64 platform is reported by NightStrike from MinGW-Win64 michael@0: project. See michael@0: http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html michael@0: michael@0: * src/bdf/bdf.h: The type of hashnode->data is changed from michael@0: void* to size_t. michael@0: michael@0: * src/bdf/bdflib.c (hash_insert): Get size_t data, instead of michael@0: void* data. michael@0: (bdf_create_property): Get the name length of new property by michael@0: size_t variable, with a cut-off at FT_ULONG_MAX. michael@0: (_bdf_set_default_spacing): Get the name length of the face by michael@0: size_t variable, with a cut-off at 256. michael@0: (bdf_get_property): Get the property id by size_t variable to michael@0: reduce the casts between 32-bit prop ID & hashnode->data during michael@0: simple copying. michael@0: (_bdf_add_property): Ditto. michael@0: (_bdf_parse_start): Calculate the index to the property array michael@0: by size_t variable. michael@0: (bdf_get_font_property): Drop a cast to unsigned long. michael@0: michael@0: 2009-09-10 suzuki toshiya michael@0: michael@0: [Win64] Improve the computation of random seed from stack address. michael@0: michael@0: On LLP64 platform, the conversion from pointer to FT_Fixed need michael@0: to drop higher 32-bit. Explict casts are required. Reported by michael@0: NightStrike from MinGW-w64 project. See michael@0: http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html michael@0: michael@0: * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly. michael@0: michael@0: * src/psaux/t1decode.c: Ditto. michael@0: michael@0: michael@0: 2009-09-03 Werner Lemberg michael@0: michael@0: [raster] Improvements for stand-alone mode. michael@0: michael@0: * src/raster/rules.mk: Don't handle ftmisc.h. It is needed for michael@0: stand-alone mode only. michael@0: michael@0: * src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func, michael@0: FT_Realloc_Func): Copy declarations from ftsystem.h. michael@0: michael@0: 2009-09-02 Bram Tassyns michael@0: michael@0: Improve vertical metrics calculation (Savannah bug #27364). michael@0: michael@0: The calculation of `vertBearingX' is not defined in the OTF font michael@0: spec so FreeType does a `best effort' attempt. However, this value michael@0: is defined in the PDF and PostScript specs, and that algorithm is michael@0: better than the one FreeType currently uses: michael@0: michael@0: FreeType: Use the middle of the bounding box as the X coordinate michael@0: of the vertical origin. michael@0: michael@0: Adobe PDF spec: Use the middle of the horizontal advance vector as michael@0: the X coordinate of the vertical origin. michael@0: michael@0: FreeType's algorithm goes wrong if you have a really small glyph michael@0: (like the full-width, circle-like dot at the end of the sentence, as michael@0: used in CJK scripts) with large bearings. With the FreeType michael@0: algorithm this dot gets centered on the baseline; with the PDF michael@0: algorithm it gets the correct location (in the top right). Note michael@0: that this is a serious issue, it's like printing the dot at the end michael@0: of a Roman sentence at the center of the textline instead of on the michael@0: baseline like it should. So i believe the PDF spec's algorithm michael@0: should be used in FreeType as well. michael@0: michael@0: The `vertBearingY' value for such small glyphs is also very strange michael@0: if no `vmtx' information is present, since the height of the bbox is michael@0: not representable for the height of the glyph visually (the michael@0: whitespace up to the baseline is part of the glyph). The fix also michael@0: includes some code for a better estimate of `vertBearingY'. michael@0: michael@0: * src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX' michael@0: is now calculated as described by the Adobe PDF Spec. Estimate for michael@0: `vertBearingY' now works better for small glyphs completely above or michael@0: below the baseline into account. michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now michael@0: calculated as described by the Adobe PDF Spec. Vertical metrics michael@0: information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS michael@0: was not defined. michael@0: michael@0: * src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is michael@0: now calculated as described by the Adobe PDF Spec. michael@0: michael@0: 2009-09-01 John Tytgat michael@0: michael@0: Fix custom cmap for empty Type 1 font (Savannah bug #27294). michael@0: michael@0: * include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update michael@0: comment to reflect revised code_last meaning. michael@0: * src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c michael@0: (T42_Open_Face): Assign max_char as highest character code + 1 and michael@0: use this for T1_EncodingRecRec_::code_last. michael@0: * src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised michael@0: T1_EncodingRecRec_::code_last meaning. michael@0: michael@0: 2009-08-25 Werner Lemberg michael@0: michael@0: Fix rendering of horizontally compressed CFFs. michael@0: Bug reported by Ivan Nincic . michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of michael@0: `font_matrix' also. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2009-08-03 suyu0925@gmail.com michael@0: michael@0: Don't call `ft_fseek' every time when executing `ft_fread'. michael@0: michael@0: * src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c michael@0: (ft_ansi_stream_io): Implement it. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Cast a charcode to 32-bit in cmap format 14 parser. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap14_char_var_index, michael@0: tt_cmap14_char_var_isdefault, tt_cmap14_char_variants, michael@0: tt_cmap14_variant_chars): Correct mismatches from michael@0: FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments michael@0: are replaced by FT_UInt32 arguments. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Cast a charcode to 32-bit in cmap format 12 parser. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap12_char_next): michael@0: Insert explicit cast from FT_UFast to FT_UInt32 michael@0: for return value. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: psaux: Fix a few casts to FT_Int32 value. michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings): michael@0: Fix a few casts setting `value' from FT_Long to FT_Int32, michael@0: because `value' is typed as FT_Int32 since 2009-06-22. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Fix a data type mismatching with its source. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the michael@0: type of `gindex' from FT_ULong to FT_UInt because michael@0: it is set by FT_UInt tt_cmap13_char_map_binary() or michael@0: TT_CMap13->cur_gindex. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Extend a few local variables to load 32-bit values. michael@0: michael@0: * src/sfnt/ttkern.c (tt_face_load_kern): Extend `count' michael@0: and `kern' to load 32-bit values. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pfr: Extend `num_aux' to take 32-bit value. michael@0: michael@0: * src/pfr/pfrload.c (pfr_phy_font_load): Extend michael@0: `num_aux' to load 32-bit value. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops. michael@0: michael@0: * src/pcf/pcfread.c (pcf_get_properties): Load `nprops' michael@0: as FT_ULong value from PCF file, but truncate it as michael@0: int to fit PCF_Face->nprops. The number of truncated michael@0: properties is shown in the trace message. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: gxvalid: Extend a few local variables to reduce the casts. michael@0: michael@0: * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate): michael@0: Extend `type' and `rest' to take FT_ULong values. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: gxvalid: Extend `settingTable' to take 32-bit offset. michael@0: michael@0: * src/gxvalid/gxvfeat.c (gxv_feat_name_validate): michael@0: Extend `settingTable' to take 32-bit offset. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: autofit: Cast FT_Long glyph_count to compare with FT_UInt GID. michael@0: michael@0: * src/autofit/afglobal.c (af_face_globals_is_digit, michael@0: af_face_globals_compute_script_coverage): Cast FT_Long michael@0: globals->glyph_count to FT_ULong, to compare with FT_UInt michael@0: gindex. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: smooth: Exclude 16-bit system in invalid pitch/height check. michael@0: michael@0: * src/smooth/ftsmooth.c (ft_smooth_render_generic): michael@0: pitch and height are typed as FT_UInt but checked to fit michael@0: 16-bit range, to avoid the overflows. On 16-bit system, michael@0: this checking inserts a conditional that never occurs. michael@0: michael@0: 2009-07-03 suzuki toshiya michael@0: michael@0: cff: Type large constants > 0x7FFF as long for 16-bit systems. michael@0: michael@0: * src/cff/cffload.c (cff_charset_load): Type large michael@0: constants > 0x7FFF as long, because normal constants michael@0: are typed signed integer that is less than 0x8000 on michael@0: 16-bit systems. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: base: Remove an unused variable. michael@0: michael@0: * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an michael@0: unused variable `library'. glyph->library is used. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cache: Check higher bits in flags for non ILP32 systems. michael@0: michael@0: 4 public functions ought to take FT_ULong flags, but take michael@0: FT_UInt flags. To keep binary compatibility, we drop higher michael@0: bits on non ILP32 platforms, michael@0: ILP64 systems: No drop occurs. michael@0: LP64 systems: Higher bits are not used. michael@0: 16-bit systems: Drop can occur. michael@0: See michael@0: http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html michael@0: These functions will be refined to take FT_ULong flags in michael@0: next bump with incompatible API change. michael@0: michael@0: * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): michael@0: Check `flags' in `type', the 2nd argument. michael@0: (FTC_SBitCache_Lookup): Ditto. michael@0: (FTC_ImageCache_LookupScaler): Check `load_flags', michael@0: the 3rd argument. michael@0: (FTC_SBitCache_LookupScaler): Ditto. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Ignore invalid GIDs in glyph name lookup. michael@0: michael@0: * include/freetype/internal/fttrace.h: michael@0: New trace module for sfdriver.c is added. michael@0: michael@0: * src/sfnt/sfdriver.c (sfnt_get_name_index): michael@0: Restrict glyph name lookup to FT_UInt GID. michael@0: Genuine TrueType can hold 16-bit glyphs. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pcf: Fix a comparison between FT_Long and FT_ULong. michael@0: michael@0: * src/pcf/pcfread.c (pcf_get_bitmaps): Return an error michael@0: if PCF_Face->nemetrics is negative. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: gxvalid: Guarantee `nFeatureFlags' size up to 32-bit. michael@0: michael@0: * src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate): michael@0: Extend the 3rd argument `nFeatureFlags' to FT_ULong. michael@0: * src/gxvalid/gxvmort.h: Ditto. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Insert explicit cast for LP64 system. michael@0: michael@0: * src/sfnt/ttkern.c (tt_face_load_kern): Insert michael@0: cast from unsigned long to FT_UInt32. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: gxvalid: Guarantee `just' table size upto 32-bit. michael@0: michael@0: * src/gxvalid/gxvjust.c (gxv_just_validate): michael@0: The type of `offset' is changed from FT_UInt to michael@0: FT_Offset, for 16-bit platforms. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: gxvalid: Guarantee `trak' table size upto 32-bit. michael@0: michael@0: * src/gxvalid/gxvtrak.c (gxv_trak_validate): michael@0: The type of `offset' is changed from FT_UInt to michael@0: FT_Offset, for 16-bit platforms. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: type1: Fix a data type mismatching with its source. michael@0: michael@0: * include/freetype/internal/t1types.h: The type of michael@0: T1_Face->buildchar is matched with T1_Decorder->top. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pfr: Fix a data type mismatching with its source. michael@0: michael@0: * src/pfr/pfrtypes.h: The type of PFR_KernItem->offset michael@0: is extended from FT_UInt32 to FT_Offset, because it is michael@0: calculated with the pointer difference, in michael@0: pfr_extra_item_load_kerning_pairs(). michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pfr: Fix a data type mismatching with its source. michael@0: michael@0: * src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset michael@0: is extended from FT_UInt32 to FT_Offset, because it is michael@0: calculated with the pointer difference in pfr_phy_font_load(). michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pfr: Fix a data type mismatching with its source. michael@0: michael@0: * src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset michael@0: is extended from FT_UInt32 to FT_Long, because it is michael@0: loaded by FT_STREAM_POS() in pfr_phy_font_load(). michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: smooth: Improve the format in debug message. michael@0: michael@0: * src/smooth/ftgrays.c (gray_dump_cells): Improve the michael@0: format specifications to dump variables. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Fix a data type mismatching with its source. michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): The type of michael@0: local `flags' is matched with FT_Face->face_flags. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: psaux: Fix a data type mismatching with its source. michael@0: michael@0: * include/freetype/internal/psaux.h: The type of michael@0: T1_DecorderRec.buildchar is matched with michael@0: T1_DecorderRec.top. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Extend TrueType GX packed deltas to FT_Offset. michael@0: michael@0: * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): michael@0: The type of 2nd argument `delta_cnt' is changed from michael@0: FT_Int to FT_Offset, because its source can be cvt michael@0: table size calculated from stream position. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Extend mmvar_len to hold size_t values. michael@0: michael@0: * src/truetype/ttgxvar.h: The type of michael@0: GX_BlendRec.mmvar_len is changed from FT_Int to michael@0: FT_Offset, because TT_Get_MM_Var() calculates it michael@0: by sizeof() results. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Check invalid function number in IDEF instruction. michael@0: michael@0: * src/truetype/ttinterp.c (Ins_IDEF): Check michael@0: if the operand fits to 8-bit opcode limitation. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Check invalid function number in FDEF instruction. michael@0: michael@0: * src/truetype/ttinterp.c (Ins_FDEF): Check michael@0: if the operand fits 16-bit function number. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Truncate the deltas of composite glyph at 16-bit values. michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): michael@0: Insert cast from FT_Long (deltas[i].{x,y}) to michael@0: FT_Int16 in the summation of deltas[] for composite michael@0: glyphs. Because deltas[i] is typed as FT_Pos, michael@0: its component x, y are typed as FT_Long, but michael@0: their sources are always FT_Int16 when they are michael@0: loaded by ft_var_readpackeddeltas(). However, michael@0: the limitation about the summed deltas is unclear. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Truncate the instructions upto 16-bit per a glyph. michael@0: michael@0: * src/truetype/ttgload.c (TT_Hint_Glyph): Truncate michael@0: the instructions upto 16-bit length per a glyph. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Cast the numerical operands to 32-bit for LP64 systems. michael@0: michael@0: * src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP, michael@0: Ins_MIRP): Insert cast from long (args[], the michael@0: operands passed to TrueType operator) to FT_Int32 michael@0: (the argument of TT_MulFix14()). michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Cast the project vector to 32-bit for LP64 system. michael@0: michael@0: * src/truetype/ttinterp.c (Project, DualProject): michael@0: Insert casts from FT_Pos (the arguments `dx', `dy') michael@0: to FT_UInt32 (the argument to TT_DotFix14()). michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Cast the scaling params to 32-bit for LP64 system. michael@0: michael@0: * src/truetype/ttgload.c (TT_Process_Composite_Component): michael@0: Insert casts from long (return value of FT_MulFix()) to michael@0: FT_Int32 (the argument to FT_SqrtFixed()). michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Cast a character code to FT_UInt32 for LP64 system. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary, michael@0: tt_cmap14_variants, tt_cmap14_char_variants, michael@0: tt_cmap14_def_char_count, tt_cmap14_get_def_chars, michael@0: tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars) michael@0: Insert casts when FT_UInt32 variable is loaded by michael@0: TT_NEXT_{UINT24|ULONG}. Because most of them are michael@0: compared with FT_UInt32 values in public API, replacing michael@0: FT_UFast is not recommended. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Cast a character code to FT_UInt32 for LP64 system. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next): michael@0: Insert the casts from unsigned long constant to michael@0: FT_UInt32. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF. michael@0: michael@0: * include/freetype/internal/tttypes.h: The type michael@0: of TT_BDF->string_size is extended from FT_UInt32 michael@0: to FT_ULong, because BDF specification does not michael@0: restrict the length of string. michael@0: * src/sfnt/ttbdf.c: The scratch variable `strings' michael@0: to load TT_BDF->string_size is matched with michael@0: TT_BDF->string_size. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: psaux: Handle the string length by FT_Offset variables. michael@0: michael@0: * src/psaux/afmparse.c (afm_parser_next_key, michael@0: afm_tokenize, afm_parse_track_kern, michael@0: afm_parse_kern_pairs, afm_parse_kern_data, michael@0: afm_parser_skip_section, afm_parser_parse): michael@0: The length of key is handled by FT_Offset, michael@0: instead of FT_UInt. Although the length of michael@0: PostScript strings or name object is 16-bit, michael@0: AFM_STREAM_KEY_LEN() calculates the length michael@0: from the pointer difference. michael@0: michael@0: * src/psaux/afmparse.h (afm_parser_next_key): michael@0: Ditto. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pcf: Fix some data types mismatching with their sources. michael@0: michael@0: * src/pcf/pcfread.c (pcf_get_bitmaps): The types michael@0: of `nbitmaps', `i', `sizebitmaps' are matched with michael@0: the type of area FT_Bitmap.pitch * FT_Bitmap.rows. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pcf: Handle the string length by size_t variables. michael@0: michael@0: * src/pcf/pcfread.c (pcf_interpret_style): The types michael@0: of nn, len, lengths[4] are changed to size_t, because michael@0: they are loaded by (or compared with) ft_strlen(). michael@0: michael@0: * src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap, michael@0: FourByteSwap): The type of the 2nd argument `nbytes' michael@0: is changed to size_t, for similarity with ANSI C michael@0: string functions. michael@0: michael@0: * src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of michael@0: `bytes' is changed to FT_Offset, because it is passed michael@0: to FT_ALLOC(), via ft_glyphslot_alloc_bitmap(). At michael@0: least, using unsigned type is better. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pcf: Fix some data types mismatching with their sources. michael@0: michael@0: * src/pcf/pcfread.c (pcf_seek_to_table_type, michael@0: pcf_has_table_type): The type of 3rd argument michael@0: `ntables' is matched with PCF_Toc->count. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: otvalid: Truncate the glyph index to 16-bit. michael@0: michael@0: * src/otvalid/otvalid.c (otv_validate): Checks michael@0: face->num_glyphs does not exceed 16-bit limit, michael@0: pass FT_UInt num_glyphs to backend functions michael@0: otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate(). michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cache: Insert explict casts for LP64 systems. michael@0: michael@0: * src/cache/ftcbasic.c (FTC_ImageCache_Lookup, michael@0: FTC_SBitCache_Lookup): The type of FTC_ImageType->width michael@0: is FT_Int, so the cast to unsigned larger type FT_ULong michael@0: is introduced for the comparisons with 0x10000L for michael@0: LP64 platform. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cache: Fix some data types mismatching with their sources. michael@0: michael@0: * src/cache/ftccache.h: The type of return value michael@0: by FTC_Node_WeightFunc function is changed to michael@0: FT_Offset. The type of FTC_CacheClass->cache_size michael@0: is changed to FT_Offset, too. michael@0: michael@0: * src/cache/ftccback.h (ft_inode_weight, michael@0: ftc_snode_weight): Ditto. michael@0: michael@0: * src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto. michael@0: michael@0: * src/cache/ftcimage.c (ftc_inode_weight, michael@0: FTC_INode_Weight): Ditto. michael@0: michael@0: * src/cache/ftcsbits.c (ftc_snode_weight, michael@0: FTC_SNode_Weight): Ditto. michael@0: michael@0: * src/cache/ftcmru.h: The type of michael@0: FTC_MruListClass->node_size is changed to FT_Offset, michael@0: because it is passed to FT_ALLOC() to specify the michael@0: size of buffer. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: XXX_cmap_encoding_char_next() return FT_UInt32 values. michael@0: michael@0: * include/freetype/internal/services/svpscmap.h: michael@0: The size of the charcode value returned by michael@0: the function typed PS_Unicodes_CharNextFunc is michael@0: matched with its input charcode value. michael@0: michael@0: * src/cff/cffmap.c (cff_cmap_encoding_char_next, michael@0: cff_cmap_unicode_char_next): Ditto. michael@0: michael@0: * src/pfr/pfrmap.c (pfr_cmap_encoding_char_next): michael@0: Ditto. michael@0: michael@0: * src/psaux/t1cmap.c (t1_cmap_std_char_next, michael@0: t1_cmap_custom_char_next, t1_cmap_unicode_char_next): michael@0: Ditto. michael@0: michael@0: * src/psnames/psmodule.c (ps_unicodes_char_next): michael@0: Ditto. michael@0: michael@0: * src/winfonts/winfnt.c (fnt_cmap_char_next): michael@0: Ditto. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap0_char_next, michael@0: tt_cmap2_char_next, tt_cmap4_char_next, michael@0: tt_cmap6_char_next, tt_cmap10_char_next, michael@0: tt_cmap12_char_next, tt_cmap13_char_next): Ditto. michael@0: (tt_cmap14_char_variants): Handle base unicode michael@0: codepoint by FT_UInt32 variable to avoid overflow michael@0: on 16-bit platforms. michael@0: (tt_cmap14_ensure): The type of `num_results' is michael@0: extend to FT_UInt32, to cover unsigned 32-bit michael@0: `numVarSelectorRecords' in cmap14 table header. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: truetype: Extend TT_Face->num_locations for broken TTFs. michael@0: michael@0: * include/freetype/internal/tttypes.h: michael@0: TT_Face->num_locations are extended from FT_UInt michael@0: to FT_ULong, to stand with broken huge loca table. michael@0: Some people insists there are broken TTF including michael@0: the glyphs over 16-bit limitation, in PRC market. michael@0: * src/truetype/ttpload.c (tt_face_load_loca): michael@0: Remove unrequired 16-bit truncation for FT_UInt michael@0: TT_Face->num_locations. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: smooth: Fix some data types mismatching with their sources. michael@0: michael@0: * src/smooth/ftgrays.c: The type of `TCoord' is michael@0: matched to `TPos', because they are mixed in michael@0: gray_set_cell(). The type of TCell->x is extended michael@0: to `TPos', because gray_find_cell() sets it by michael@0: TWorker.ex. The type of TCell->cover is extended michael@0: to `TCoord', because gray_render_scanline() adds michael@0: TCoord value to it. The type of TWork.cover is matched michael@0: with TCell->cover. The types of michael@0: TWork.{max_cells,num_cells} are changed to FT_PtrDist, michael@0: because they are calculated from the memory addresses. michael@0: The type of TWork.ycount is changed to TPos, because michael@0: it is calculated from TPos variables. michael@0: (gray_find_cell): The type of `x' is matched with michael@0: its initial value ras.ex. michael@0: (gray_render_scanline): The types of `mod', `lift' michael@0: and `rem' are changed to TCoord, because their values michael@0: are set with explicit casts to TCoord. When ras.area michael@0: is updated by the differential values including michael@0: `delta', they are explicitly cast to TArea, because michael@0: the type of `delta' is not TArea but TCoord. michael@0: (gray_render_line): The type of `mod' is extended michael@0: from int to TCoord, because (TCoord)dy is added to mod. michael@0: (gray_hline): The argument `acount' is extended to michael@0: TCoord, to match with the parameters in the callers. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cff: Fix some data types mismatching with their sources. michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): The type of michael@0: `scaling' is matched with the scaling parameter michael@0: in FT_Matrix_Multiply_Scaled() and michael@0: FT_Vector_Transform_Scaled(). michael@0: michael@0: * src/cff/cffparse.c (cff_parse_real): The type of michael@0: `power_ten', `scaling', `exponent_add', michael@0: `integer_length', `fraction_length', michael@0: `new_fraction_length' and `shift' are matched with michael@0: the type of `exponent' to avoid unexpected truncation. michael@0: (cff_parse_fixed_scaled): The type of `scaling' is michael@0: matched with the `scaling' argument to michael@0: cff_parse_real(). michael@0: (cff_parse_fixed_dynamic): Ditto. michael@0: (cff_parse_font_matrix): The type of `scaling' is michael@0: matched with the `scaling' argument to michael@0: cff_parse_dynamic(). michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: autofit: Fix some data types mismatching with their sources. michael@0: michael@0: * src/autofit/afglobal.c: Correct the type of michael@0: AF_FaceGlobalsRec.glyph_count to match with michael@0: FT_Face->num_glyphs. michael@0: (af_face_globals_compute_script_coverage): michael@0: Insert explicit cast to compare michael@0: FT_Long AF_FaceGlobalsRec.glyph_count versus michael@0: FT_UInt gindex. The type of `nn' is changed michael@0: to scan glyph index upto AF_FaceGlobalsRec.glyph_count. michael@0: (af_face_globals_get_metrics): The type of `script_max' michael@0: is changed to cover size_t value. Insert explicit cast michael@0: to compare FT_Long AF_FaceGlobalsRec.glyph_count versus michael@0: FT_UInt gindex. michael@0: michael@0: * src/autofit/afhints.c (af_axis_hints_new_segment): michael@0: Insert explicit cast to calculate `big_max' from michael@0: integer and size_t values. michael@0: (af_axis_hints_new_edge): Ditto. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metrics_init_blues): michael@0: The type of `best_y' is matched to FT_Vector.y. michael@0: (af_latin_compute_stem_width): The type of `delta' is michael@0: matched to `dist' and `org_dist'. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: autofit: Count the size of the memory object by ptrdiff_t. michael@0: michael@0: * src/autofit/afcjk.c (af_cjk_hint_edges): The michael@0: number of edges `n_edges' should be counted by michael@0: FT_PtrDist variable instead of FT_Int. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_hint_edges): michael@0: Ditto. michael@0: michael@0: * src/autofit/aftypes.h: In AF_ScriptClassRec, michael@0: the size of metric `script_metrics_size' should michael@0: be counted by FT_Offset variable instead of FT_UInt. michael@0: michael@0: * src/autofit/afhints.c michael@0: (af_glyph_hints_align_strong_points): The cursors michael@0: for the edges `min', `max', `mid' in the memory michael@0: buffer should be typed FT_PtrDist. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: autofit: Fix for unused variable `first'. michael@0: michael@0: * src/autofit/afhints.c (af_glyph_hints_reload): Insert michael@0: FT_UNUSED() to hide the unused variable warning. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: Improve bitmap size or pixel variables for 16-bit systems. michael@0: michael@0: * include/freetype/config/ftstdlib.h: Introduce michael@0: FT_INT_MIN, to use in signed integer overflow in michael@0: 16-bit and 64-bit platforms. michael@0: michael@0: * include/freetype/internal/fttrace.h: Add a tracer michael@0: to ftsynth.c. michael@0: michael@0: * src/base/ftbitmap.c (FT_Bitmap_Embolden): Check michael@0: invalid strength causing integer overflow on 16-bit michael@0: platform. michael@0: michael@0: * src/base/ftcalc.c (ft_corner_orientation): Change michael@0: the internal calculation from FT_Int to FT_Long, to michael@0: avoid an overflow on 16-bit platforms. The caller of michael@0: this function should use only the sign of result, michael@0: so the cast to FT_Int is acceptable. michael@0: michael@0: * src/base/ftsynth.c: Introduce a tracer for synth module. michael@0: (FT_GlyphSlot_Embolden): Check invalid strength causing michael@0: integer overflow on 16-bit platform. michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index michael@0: in FT2 API is typed as FT_UInt, although BDF driver michael@0: can handle unsigned long glyph index internally. To michael@0: avoid integer overflow on 16-bit platform, too large michael@0: glyph index should be excluded. michael@0: (BDF_Glyph_Load): The glyph pitch in FT2 is typed as michael@0: FT_UInt, although BDF driver can handle unsigned long michael@0: glyph pitch internally. To avoid integer overflow on michael@0: 16-bit platform, too large glyph pitch should not be michael@0: returned. michael@0: michael@0: * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph michael@0: pitch in FT2 is typed as FT_UInt, although PFR font michael@0: format can include huge bitmap glyph with 24-bit pitch michael@0: (however, a glyph spends 16.7 pixel, it's not realistic). michael@0: To avoid integer overflow on 16-bit platform, huge michael@0: bitmap glyph should be excluded. michael@0: michael@0: * src/smooth/ftgrays.c (gray_hline): As FT_Span.x is michael@0: truncated to fit its type (16-bit short), FT_Span.y michael@0: should be truncated to fit its type (FT_Int). michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_ros): CFF specification michael@0: defines the supplement in ROS as a real number. michael@0: Truncate it to fit public FT2 API. michael@0: michael@0: * src/cff/cffparse.c (cff_parse_cid_ros): Warn the michael@0: supplement if it is truncated or rounded in cff_get_ros(). michael@0: michael@0: * src/cff/cfftypes.h: Change the type of internal variable michael@0: `supplement' from FT_Long to FT_ULong to fit the signedness michael@0: to the type in public API. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: psaux: Prevent invalid arguments to afm_parser_read_vals(). michael@0: michael@0: * src/psaux/afmparse.c (afm_parser_read_vals): Change michael@0: the type of `n' to prevent negative number how many michael@0: arguments should be parsed. michael@0: michael@0: * src/psaux/afmparse.h (afm_parser_read_vals): Ditto. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: base: Prevent some overflows on LP64 systems. michael@0: michael@0: * src/base/ftadvance.c (FT_Get_Advances): Cast the michael@0: unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32 michael@0: for LP64 platforms. michael@0: michael@0: * src/base/ftcalc.c (FT_Sqrt32): All internal variables michael@0: are changed to FT_UInt32 from FT_ULong. michael@0: (FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms. michael@0: This function is designed for 32-bit integer, although michael@0: their arguments and return value are FT_Long. michael@0: michael@0: * src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode' michael@0: is within unsigned 32-bit integer for LP64 platforms. michael@0: (FT_Face_GetCharVariantIndex): Check `charcode' and michael@0: `variantSelector' are within 32-bit integer for LP64 michael@0: platforms. michael@0: (FT_Face_GetCharsOfVariant): Check `variantSelector' is michael@0: within unsigned 32-bit integer for LP64 platforms. michael@0: michael@0: * src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed michael@0: variable `val' and unsigned long constant FT_TRIG_SCALE michael@0: are cast to FT_UInt32, when calculates FT_UInt32. michael@0: (FT_Vector_Rotate): The long constant 1L is cast to michael@0: FT_Int32 to calculate FT_Int32 `half'. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cff: Cast the long variables to 32-bit for LP64 systems. michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_advances): Insert michael@0: explicit cast to modify a 32-bit flag by unsigned michael@0: long constant. michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Ditto. michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings): michael@0: Replace the casts to FT_Long by the casts to FT_Int32 michael@0: for LP64 platforms. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pcf: Improve PCF_PropertyRec.value names on LP64 platforms. michael@0: michael@0: * src/pcf/pcf.h: In PCF_PropertyRec.value, the member michael@0: `integer' is replaced by `l', `cardinal' is replaced michael@0: by `ul', to fix the difference between the name and michael@0: the types on LP64 platforms. michael@0: michael@0: * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect michael@0: PCF_PropertyRec.value change, with appropriate casts michael@0: to FT_Int32/FT_UInt32. Their destinations michael@0: BDF_PropertyRec.{integer|cardinal} are public and michael@0: explicitly defined as FT_Int32/FT_UInt32. michael@0: michael@0: * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): michael@0: Reflect PCF_PropertyRec.value change. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: pcf: Fix some data types mismatching with their sources. michael@0: michael@0: * src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of michael@0: `code' is matched to PCF_Encoding->enc. michael@0: (pcf_cmap_char_next): The type of `charcode' is matched michael@0: to PCF_Encoding->enc. When *acharcode is set by charcode, michael@0: an overflow is checked and cast to unsigned 32-bit michael@0: integer. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: bdf: Improve bdf_property_t.value names for LP64 platforms. michael@0: michael@0: * src/bdf/bdf.h: In bdf_property_t.value, the member michael@0: `int32' is replaced by `l', `card32' is replaced by michael@0: `ul', to fix the difference between the name and the michael@0: types on LP64 platforms. michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect michael@0: bdf_property_t.value change. michael@0: (bdf_get_bdf_property): Reflect bdf_property_t.value michael@0: change, with appropriate casts to FT_Int32/FT_UInt32. michael@0: Their destinations BDF_PropertyRec.{integer|cardinal} michael@0: are public and explicitly defined as FT_Int32/FT_UInt32. michael@0: michael@0: * src/bdf/bdflib.c (_bdf_add_property): Reflect michael@0: bdf_property_t.value change. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: bdf: Fix some data types mismatching with their sources. michael@0: michael@0: * src/bdf/bdrdrivr.c (bdf_cmap_char_index): The type michael@0: of `code' is matched with BDF_encoding_el->enc. michael@0: (bdf_cmap_char_next): The type of `charcode' is michael@0: matched with BDF_encoding_el->enc. When *acharcode michael@0: is set by charcode, an overflow is checked and michael@0: cast to unsigned 32-bit integer. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: autofit: Improve Unicode range definitions. michael@0: michael@0: * src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro michael@0: to declare a range by two unsigned 32-bit integer, michael@0: to avoid 64-bit range definition on LP64 platforms. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_uniranges): Ditto. michael@0: michael@0: * src/autofit/aflatin2.c (af_latin2_uniranges): Ditto. michael@0: michael@0: * src/autofit/afindic.c (af_indic_uniranges): Ditto. michael@0: michael@0: * src/autofit/afcjk.c (af_cjk_uniranges): Declare michael@0: the ranges by AF_UNIRANGE_REC. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: smooth: Fix a data type mismatching with its source. michael@0: michael@0: * src/smooth/ftgrays.c (gray_sweep): The type of michael@0: `area' is matched with the 3rd argument `area' michael@0: of gray_hline(). michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: smooth: Fix a data type mismatching with its source. michael@0: michael@0: * src/smooth/ftgrays.c (gray_render_line): The type michael@0: of `area' is matched with TWorker.area. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cache: Disable the legacy compatibility if 16-bit system. michael@0: michael@0: * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude michael@0: the legacy behaviour from 16-bit platform, because the michael@0: current hack cannot detect the caller uses this function michael@0: via legacy convension. michael@0: (FTC_SBitCache_Lookup): Ditto. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cache: Check 32-bit glyph index on 16-bit systems. michael@0: michael@0: * src/cache/ftcbasic.c (ftc_basic_family_get_count): michael@0: Check overflow caused by the face including large michael@0: number of glyphs > 64k. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cache: Fix some data types mismatching with their sources. michael@0: michael@0: * src/cache/ftccache.c (ftc_cache_resize): The types of michael@0: `p', `mask', `count' are matched with FTC_Cache->{p,mask}. michael@0: (FTC_Cache_Clear): The type of `old_index' is matched to michael@0: FTC_Cache->{p,mask}. michael@0: michael@0: * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type michael@0: of `_idx' is matched with FTC_Cache->{p,mask}. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cache: Fix some data types mismatching with their sources. michael@0: michael@0: * src/cache/ftcsbits.c (ftc_snode_load): The types michael@0: of `xadvance' and `yadvance' are matched with michael@0: FT_GlyphSlot->advance.{x|y}. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cache: Cast NULL to a required function type explicitly. michael@0: michael@0: * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): michael@0: Insert explicit cast from NULL to function type. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly. michael@0: michael@0: * include/freetype/fttypes.h (FT_MAKE_TAG): michael@0: Cast the result to FT_Tag. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: psnames: Handle Unicode codepoints by FT_UInt32 variables. michael@0: michael@0: * src/psnames/psmodule.c (BASE_GLYPH): Cast the result michael@0: to unsigned 32-bit integer for LP64 platform. michael@0: (ps_unicode_value): Return the value by unsigned 32-bit michael@0: integer instead of unsigned long. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: psaux: Use size_t variable to pass the buffer size. michael@0: michael@0: * src/psaux/psaux.h (to_bytes): The type of `max_bytes' michael@0: (the argument to pass the buffer size) is changed to michael@0: size_t, to match with ANSI C string functions. michael@0: michael@0: * src/psaux/psconv.h (PS_Conv_StringDecode, michael@0: PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto. michael@0: michael@0: * src/psaux/psconv.c (PS_Conv_StringDecode, michael@0: PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto. michael@0: michael@0: * src/psaux/psobjs.h (ps_parser_to_bytes): Ditto. michael@0: michael@0: * src/psaux/psobjs.c (ps_parser_to_bytes): Ditto. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: type1: Use size_t variable to pass the string length. michael@0: michael@0: * psaux.h: The type of `len' (the argument to pass michael@0: the buffer size to the function in AFM_ParserRec) michael@0: is changed to size_t, to match with ANSI C string michael@0: functions. michael@0: michael@0: * t1afm.c (t1_get_index): Ditto. michael@0: michael@0: * test_afm.c (dummy_get_index): Ditto. michael@0: michael@0: * afmparse.c (afm_parser_read_vals): To call michael@0: AFM_ParserRec.get_index, the length of token michael@0: `len' is cast to size_t. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cid: Fix some data types mismatching with their sources. michael@0: michael@0: * src/cid/cidparse.c (cid_parser_new): The types of michael@0: `read_len' and `stream_len' are matched to michael@0: FT_Stream->size. Unrequired cast is removed. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cff: Fix for unused variable `rest'. michael@0: michael@0: * src/cff/cffparse.c (cff_parse_real): Insert michael@0: FT_UNUSED() to hide the unused variable warning. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: cff: Fix some data types mismatching with their sources. michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): The types of michael@0: `top_upm' and `sub_upm' are matched with michael@0: CFF_FontRecDict->units_per_em. michael@0: michael@0: * src/cff/cffobjs.c (cff_size_select): Ditto. michael@0: (cff_size_request): Ditto. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: bdf: Fix some data types mismatching with their sources. michael@0: michael@0: * bdflib.c (_bdf_list_ensure): The type of `num_items' michael@0: is matched with _bdf_list_t.used. Also the types of michael@0: `oldsize', `newsize', `bigsize' are matched too. michael@0: (_bdf_readstream): `cursor' is used as an offset to michael@0: the pointer, it should be typed as FT_Offset. Also michael@0: the types of `bytes', `start', `end', `avail' are matched. michael@0: michael@0: * bdfdrivr.c: The type of BDF_CMap->num_encodings is michael@0: matched with FT_CMap->clazz->size. michael@0: (bdf_cmap_char_index): The types of `min', `max', `mid' michael@0: are matched with BDF_CMap->num_encodings. The type of michael@0: `result' is matched with encoding->glyph. michael@0: (bdf_cmap_char_next): Ditto, the type of `code' is michael@0: matched with BDF_encoding_el.enc. michael@0: (bdf_interpret_style): The type of `lengths' is changed michael@0: to size_t, to take the value by ft_strlen(). Also the michael@0: types of `len', `nn', `mm' are matched. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: sfnt: Count the size of the memory object by ptrdiff_t. michael@0: michael@0: * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of michael@0: `peroperty_len' is changed from FT_UInt to FT_Offset, michael@0: to match with size_t, which is appropriate type for the michael@0: object in the memory buffer. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: lzw: Count the size of the memory object by ptrdiff_t. michael@0: michael@0: * src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total, michael@0: stack_size} are changed from FT_UInt to FT_Offset, to match michael@0: with size_t, which is appropriate type for the object in michael@0: the memory buffer. michael@0: michael@0: * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of michael@0: `old_size' and `new_size' are changed from FT_UInt to michael@0: FT_Offset, to match with size_t, which is appropriate type michael@0: for the object in the memory buffer. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: otvalid: Count the table size on memory by ptrdiff_t. michael@0: michael@0: * src/otvalid/otvgpos.c (otv_ValueRecord_validate): michael@0: Change the type of table size from FT_UInt to michael@0: FT_PtrDist because it is calculated by the memory michael@0: addresses. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset. michael@0: michael@0: * src/otvalid/otvgpos.c (otv_ExtensionPos_validate): michael@0: Extend ExtensionOffset from FT_UInt to FT_ULong, to michael@0: cover 32-bit offset on 16-bit platform. michael@0: michael@0: * src/otvalid/otvgsub.c (otv_ExtensionSubst_validate): michael@0: Ditto. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: ftobjs.c: Prevent an overflow in glyph index handling. michael@0: michael@0: * src/base/ftobjs.c (FT_Face_GetCharsOfVariant): michael@0: Improve the cast in comparison to avoid the truncation. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: Improve the variable types in raccess_make_file_name(). michael@0: michael@0: * src/base/ftrfork.c (raccess_make_file_name): michael@0: Change the type of cursor variable `tmp' to const char*, michael@0: to prevent the unexpected modification of original pathname. michael@0: (raccess_make_file_name): Change the type of new_length michael@0: to size_t. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: ftpatent.c: Fix for unused variable `error'. michael@0: michael@0: * src/base/ftpatent.c (_tt_check_patents_in_range): michael@0: Fix warning for unused variable `error'. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: type1: Check invalid string longer than PostScript limit. michael@0: michael@0: * src/type1/t1afm.c (t1_get_index): Check invalid string michael@0: which exceeds the limit of PostScript string/name objects. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default. michael@0: michael@0: * src/gzip/ftgzip.c (zcalloc, zcfree): Disable all michael@0: zcalloc() & zfree() by zlib in zutil.c, those in michael@0: ftgzip.c by FT2 are enabled by default. To use michael@0: zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC. michael@0: See discussion: michael@0: http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: gzip: Distinguish PureC from TurboC on MSDOS. michael@0: michael@0: * src/gzip/zutil.c (zcalloc, zcfree): Enable only for michael@0: MSDOS platform. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: gxvalid: Insert PureC pragma to allow unevaluated variables. michael@0: michael@0: * builds/atari/ATARI.H: Insert PureC pragma not to michael@0: warn against set-but-unevaluated variable in gxvalid michael@0: module. michael@0: michael@0: 2009-07-31 suzuki toshiya michael@0: michael@0: gxvalid: Pass the union by the pointer instead of the value. michael@0: michael@0: * src/gxvalid/gxvcommn.h: michael@0: - Declare new type `GXV_LookupValueCPtr'. michael@0: - Update the type of the 2nd argument to pass GXV_LookupValueDesc michael@0: data to the function prototyped as GXV_Lookup_Value_Validate_Func, michael@0: from GXV_LookupValueDesc to GXV_LookupValueCPtr. michael@0: - Likewise for the function prototyped as michael@0: GXV_Lookup_Fmt4_Transit_Func. michael@0: michael@0: - Declare new type `GXV_StateTable_GlyphOffsetCPtr'. michael@0: - Update the type of the 3rd argument to pass michael@0: GXV_StateTable_GlyphOffsetDesc data to the function prototyped michael@0: as GXV_StateTable_Entry_Validate_Func, from michael@0: GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr. michael@0: michael@0: - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'. michael@0: - Update the type of the 3rd argument to pass michael@0: GXV_XStateTable_GlyphOffsetDesc data to the function prototyped michael@0: as GXV_XStateTable_Entry_Validate_Func, michael@0: from GXV_XStateTable_GlyphOffsetDesc michael@0: to GXV_XStateTable_GlyphOffsetCPtr. michael@0: michael@0: * src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate, michael@0: gxv_XClassTable_lookupval_validate, michael@0: gxv_XClassTable_lookupfmt4_transit): michael@0: Update from GXV_LookupValueDesc to GXV_LookupValueCPtr. michael@0: michael@0: * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate, michael@0: gxv_bsln_LookupFmt4_transit): Ditto. michael@0: michael@0: * src/gxvalid/gxvjust.c michael@0: (gxv_just_pcTable_LookupValue_entry_validate, michael@0: gxv_just_classTable_entry_validate, michael@0: gxv_just_wdcTable_LookupValue_validate): Ditto. michael@0: michael@0: * src/gxvalid/gxvkern.c michael@0: (gxv_kern_subtable_fmt1_entry_validate): Ditto. michael@0: michael@0: * src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate, michael@0: gxv_lcar_LookupFmt4_transit): Ditto. michael@0: michael@0: * src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate, michael@0: gxv_opbd_LookupFmt4_transit): Ditto. michael@0: michael@0: * src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate, michael@0: gxv_prop_LookupFmt4_transit): Ditto. michael@0: michael@0: * src/gxvalid/gxvmort4.c michael@0: (gxv_mort_subtable_type4_lookupval_validate): Ditto. michael@0: michael@0: * src/gxvalid/gxvmort0.c michael@0: (gxv_mort_subtable_type0_entry_validate): Update michael@0: from GXV_StateTable_GlyphOffsetDesc michael@0: to GXV_StateTable_GlyphOffsetCPtr. michael@0: michael@0: * src/gxvalid/gxvmort1.c michael@0: (gxv_mort_subtable_type1_entry_validate): Ditto. michael@0: michael@0: * src/gxvalid/gxvmort2.c michael@0: (gxv_mort_subtable_type2_entry_validate): Ditto. michael@0: michael@0: * src/gxvalid/gxvmort5.c michael@0: (gxv_mort_subtable_type5_entry_validate): Ditto. michael@0: michael@0: * src/gxvalid/gxvmorx2.c michael@0: (gxv_morx_subtable_type2_entry_validate): Ditto. michael@0: michael@0: * src/gxvalid/gxvmorx5.c michael@0: (gxv_morx_subtable_type5_entry_validate): Ditto. michael@0: michael@0: * src/gxvalid/gxvmorx1.c michael@0: (gxv_morx_subtable_type1_entry_validate): Ditto. michael@0: (gxv_morx_subtable_type1_LookupValue_validate, michael@0: gxv_morx_subtable_type1_LookupFmt4_transit): michael@0: Update from GXV_LookupValueDesc to GXV_LookupValueCPtr. michael@0: michael@0: * src/gxvalid/gxvmorx0.c michael@0: (gxv_morx_subtable_type0_entry_validate): Update michael@0: from GXV_XStateTable_GlyphOffsetDesc michael@0: to GXV_XStateTable_GlyphOffsetCPtr. michael@0: michael@0: 2009-07-29 Fabrice Bellet michael@0: michael@0: Fix Redhat bugzilla #513582 and Savannah bug #26849. michael@0: michael@0: * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) : Fix michael@0: aliasing bug. michael@0: michael@0: 2009-07-19 Werner Lemberg michael@0: michael@0: Document recent library changes. michael@0: michael@0: * docs/CHANGES: Do it. michael@0: michael@0: 2009-07-17 Werner Lemberg michael@0: michael@0: Fix Savannah bug #23786. michael@0: michael@0: * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem michael@0: and y_ppem. Otherwise the `*_CVT_Stretched' functions in ttinterp.c michael@0: get never called. michael@0: An anonymous guy suggested this change on Savannah, and it seems to michael@0: be the right solution. michael@0: michael@0: 2009-07-15 Werner Lemberg michael@0: michael@0: * docs/release: Updated. michael@0: michael@0: 2009-07-15 Werner Lemberg michael@0: michael@0: README.CVS -> README.git michael@0: michael@0: * README.CVS: Renamed to... michael@0: * README.git: This. michael@0: Updated. michael@0: michael@0: 2009-07-15 suzuki toshiya michael@0: michael@0: Borland C++ compiler patch proposed by Mirco Babin. michael@0: http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html. michael@0: michael@0: * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}. michael@0: Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform michael@0: specific pathname syntax. michael@0: * builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS. michael@0: Define TE = `-e' separately (bcc32 cannot specify the pathname of michael@0: binary executable by T = `-o'). michael@0: Extend the large page size in linking freetype.lib. michael@0: Add extra CLEAN target to delete bcc specific temporary files. michael@0: * builds/compiler/bcc-dev.mk: Ditto. michael@0: michael@0: 2009-07-14 Werner Lemberg michael@0: michael@0: Fix Savannah bug #27026. michael@0: michael@0: * builds/win32/vc2005/freetype.sln: Use correct version number. michael@0: michael@0: 2009-07-12 suzuki toshiya michael@0: michael@0: Add a script to check the undefined and unused trace macros. michael@0: michael@0: * src/tools/chktrcmp.py: A script to check trace_XXXX macros michael@0: that are used in C source but undefined in fttrace.h, or michael@0: defined in fttrace.h but unused in C sources. See michael@0: http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html. michael@0: * docs/DEBUG: Mention on chktrcmp.py. michael@0: * docs/release: Ditto. michael@0: michael@0: 2009-07-09 Werner Lemberg michael@0: michael@0: [ftraster] Make it compile again with -D_STANDALONE_. michael@0: michael@0: * src/raster/ftraster.c [_STANDALONE_]: Define michael@0: FT_CONFIG_STANDARD_LIBRARY_H. michael@0: Include `string.h'. michael@0: Don't include `rastpic.h'. michael@0: Define FT_DEFINE_RASTER_FUNCS. michael@0: michael@0: 2009-07-09 suzuki toshiya michael@0: michael@0: smooth: Check glyph size by width/height, instead of pitch/height. michael@0: Suggested by der Mouse . michael@0: michael@0: * src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve michael@0: the check for too large glyph. Replace the pair of `pitch' and michael@0: `height' by the pair of `width' and `height'. `pitch' cannot michael@0: be greater than `height'. The required is checking the product michael@0: `pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for michael@0: the realistic case only. michael@0: michael@0: 2009-07-09 suzuki toshiya michael@0: michael@0: Register 2 missing trace components, t1afm and ttbdf. michael@0: michael@0: * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm ) michael@0: and FT_TRACE_DEF( ttbdf ). See michael@0: http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html michael@0: michael@0: 2009-07-09 suzuki toshiya michael@0: michael@0: Register a trace component for ftgloadr.c. michael@0: michael@0: * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ). michael@0: The macro `trace_gloader' was already used in the initial version michael@0: on 2002-02-24. michael@0: michael@0: 2009-07-08 suzuki toshiya michael@0: michael@0: Prevent the overflows by a glyph with too many points or contours. michael@0: The bug is reported by Boris Letocha . See michael@0: http://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html michael@0: http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html michael@0: michael@0: * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX, michael@0: FT_OUTLINE_POINTS_MAX): New macros to declare the maximum michael@0: values of FT_Outline.{n_contours,n_points}. michael@0: * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the michael@0: total numbers of points and contours cause no overflows in michael@0: FT_Outline.{n_contours,n_points}. michael@0: michael@0: * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P, michael@0: FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and michael@0: contours as unsigned long number, instead of signed int, to michael@0: prevent the overflows on 16-bit systems. michael@0: michael@0: 2009-07-05 Bram Tassyns michael@0: michael@0: Improve compatibility to Acroread. michael@0: This fixes Savannah bug #26944. michael@0: michael@0: * src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to michael@0: single CID mappings, make the lowest value win. michael@0: michael@0: 2009-06-28 suzuki toshiya michael@0: michael@0: ftpatent: Fix a bug by wrong usage of service->table_info(). michael@0: http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html michael@0: michael@0: * include/freetype/internal/services/svsfnt.h: Extend michael@0: FT_SFNT_TableInfoFunc() to take new argument to obtain the offset michael@0: to the specified table. michael@0: * src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the michael@0: table-offset to the caller function. michael@0: * src/base/ftpatent.c (_tt_check_patents_in_table): Use new michael@0: service->table_info(). michael@0: * src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new michael@0: service->table_info(). michael@0: michael@0: 2009-06-28 Werner Lemberg michael@0: michael@0: [psaux, cff] Protect against nested `seac' calls. michael@0: michael@0: * include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h michael@0: (CFF_Decoder): Add `seac' boolean variable. michael@0: michael@0: * src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c michael@0: (t1operator_seac): Use it. michael@0: michael@0: 2009-06-28 Werner Lemberg michael@0: michael@0: Thinko. michael@0: michael@0: * src/psaux/t1decode.c (t1operator_seac) michael@0: [FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental michael@0: interface. michael@0: michael@0: 2009-06-28 Werner Lemberg michael@0: michael@0: * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define. michael@0: michael@0: 2009-06-27 suzuki toshiya michael@0: michael@0: Add tools to preprocess the source files for AtariST PureC. michael@0: michael@0: * builds/atari/deflinejoiner.awk: New file to filter C source files michael@0: for broken C preprocessor of PureC compiler. michael@0: michael@0: * builds/atari/gen-purec-patch.sh: New file to generate a patch set michael@0: for PureC, by using deflinejoiner.awk. michael@0: michael@0: 2009-06-27 suzuki toshiya michael@0: michael@0: Keep existing modules.cfg in the building tree. michael@0: michael@0: * configure: If `configure' is executed outside of the source tree, michael@0: an existing `modules.cfg' file in the build directory should be michael@0: kept, not overwritten by the version in the source tree. michael@0: michael@0: 2009-06-27 suzuki toshiya michael@0: michael@0: Filter --srcdir= option before invoking builds/unix/configure. michael@0: michael@0: * configure: If builds/unix/configure is invoked with --srcdir michael@0: option, the option should take `builds/unix' directory instead of michael@0: the top source directory. Thus the configure script in the top michael@0: directory should modify the --srcdir= option if michael@0: `builds/unix/configure' is invoked. michael@0: michael@0: 2009-06-27 suzuki toshiya michael@0: michael@0: Improve configure.raw for cross-building on exe-suffixed systems. michael@0: michael@0: * builds/unix/configure.raw: Fix a bug in sed script to extract michael@0: native suffix for binary executables, patch by Peter Breitenlohner. michael@0: http://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html michael@0: michael@0: 2009-06-26 Werner Lemberg michael@0: michael@0: [truetype] Remove TT_SubGlyphRec. michael@0: michael@0: * src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused. michael@0: michael@0: 2009-06-26 Werner Lemberg michael@0: michael@0: * */*: For warning messages, replace FT_ERROR with FT_TRACE0. michael@0: michael@0: FT_ERROR is now used only if a function produces a non-zero `error' michael@0: value. michael@0: michael@0: Formatting, improving and harmonizing debug strings. michael@0: michael@0: 2009-06-25 Werner Lemberg michael@0: michael@0: Provide version information better. michael@0: michael@0: * src/base/ftinit.c (FT_Init_FreeType): Don't set version here michael@0: but... michael@0: * src/base/ftobjs.c (FT_New_Library): Here. michael@0: michael@0: 2009-06-22 Werner Lemberg michael@0: michael@0: Use 16.16 format while parsing Type 1 charstrings. michael@0: This fixes Savannah bug #26867. michael@0: michael@0: Previously, only integers have been used which can lead to serious michael@0: rounding errors. michael@0: michael@0: However, fractional values are only used internally; after the michael@0: charstrings (of either Type 1 or 2) have been processed, the michael@0: resulting coordinates get rounded to integers currently -- before michael@0: applying scaling. This should be fixed; at the same time a new load michael@0: flag should be introduced, to be used in combination with michael@0: FT_LOAD_NO_SCALE, which indicates that font units are returned in michael@0: 16.16 format. Similarly, the incremental interface should be michael@0: extended to allow fractional values for metrics. michael@0: michael@0: * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift' michael@0: field. michael@0: * include/freetype/internal/pshints.h (T1_Hints_SetStemFunc, michael@0: T1_Hints_SetStem3Func): Use FT_Fixed for coordinates. michael@0: michael@0: * src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H. michael@0: (t1_build_add_point): Always convert fixed to integer. michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings): michael@0: Use 16.16 format everywhere (except for large integers followed by a michael@0: `div'). michael@0: [CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate michael@0: code uncoditionally. michael@0: Add support for random numbers and update remaining code michael@0: accordingly; this should work now. michael@0: (t1_operator_seac): Updated. michael@0: * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H. michael@0: (ps_hints_t1stem3, t1_hints_stem): Updated. michael@0: michael@0: * src/cid/cidgload.c: Include FT_INTERNAL_CALC_H. michael@0: (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL], michael@0: (cid_face_compute_max_advance, cid_slot_load_glyph): Updated. michael@0: michael@0: * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String) michael@0: [FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph): michael@0: Updated. michael@0: * src/type1/t1load.c: Include FT_INTERNAL_CALC_H. michael@0: * src/type1/t1objs.c (T1_Face_Init): Updated. michael@0: michael@0: 2009-06-21 Werner Lemberg michael@0: michael@0: * src/pshinter/pshrec.c: Use PSH_Err_Ok. michael@0: michael@0: 2009-06-21 Werner Lemberg michael@0: michael@0: Code beautification. michael@0: michael@0: * src/type1/t1load.c (FT_INT_TO_FIXED): Removed. michael@0: Replace everywhere with INT_TO_FIXED. michael@0: (FT_FIXED_TO_INT): Move to ... michael@0: * include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here. michael@0: Update all users. michael@0: michael@0: 2009-06-20 Werner Lemberg michael@0: michael@0: Remove unused variables. michael@0: michael@0: * include/freetype/internal/psaux.h (T1_BuilderRec), michael@0: src/cff/cffgload.h (CFF_Builder): Remove `last'. michael@0: Update all users. michael@0: michael@0: 2009-06-20 Werner Lemberg michael@0: michael@0: [psaux] Check large integers while parsing charstrings. michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large michael@0: integers must be followed by a `div' operator. michael@0: michael@0: 2009-06-20 Werner Lemberg michael@0: michael@0: [cff] Revert last change. michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it. michael@0: Next time, don't confuse Type 2 charstring opcodes with TOP DICT michael@0: values... michael@0: michael@0: 2009-06-20 Werner Lemberg michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix michael@0: compiler warning. michael@0: michael@0: 2009-06-20 Werner Lemberg michael@0: michael@0: * builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6. michael@0: michael@0: 2009-06-19 Werner Lemberg michael@0: michael@0: [cff] Fix handling of reserved byte 0xFF. michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte michael@0: 0xFF is encountered. michael@0: michael@0: 2009-06-19 Werner Lemberg michael@0: michael@0: Improve debug messages for Type1 charstrings. michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines michael@0: after instructions. michael@0: Prettify output. michael@0: michael@0: 2009-06-19 Werner Lemberg michael@0: michael@0: More ftgray fixes for FT_STATIC_RASTER. michael@0: Problems reported by suyu@cooee.cn. michael@0: michael@0: * src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use michael@0: RAS_VAR. michael@0: michael@0: 2009-06-18 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2009-06-18 Werner Lemberg michael@0: michael@0: Fix B/W rasterization of subglyphs with different drop-out modes. michael@0: michael@0: Normally, the SCANMODE instruction (if present) to set the drop-out michael@0: mode in a TrueType font is located in the `prep' table only and thus michael@0: valid for all glyphs. However, there are fonts like `pala.ttf' michael@0: which additionally contain this instruction in the hinting code of michael@0: some glyphs (but not all). As a result it can happen that a michael@0: composite glyph needs multiple drop-out modes for its subglyphs michael@0: since the rendering state gets reset for each subglyph. michael@0: michael@0: FreeType collects the hinted outlines from all subglyphs, then it michael@0: sends the data to the rasterizer. It also sends the drop-out mode michael@0: -- after hinting has been applied -- and here is the error: It sends michael@0: the drop-out mode of the last subglyph only; drop-out modes of all michael@0: other subglyphs are lost. michael@0: michael@0: This patch fixes the problem; it adds a second, alternative michael@0: mechanism to pass the drop-out mode: For each contour, the michael@0: rasterizer now checks the first `tags' array element. If bit 2 is michael@0: set, bits 5-7 contain the contour's drop-out mode, overriding the michael@0: global drop-out mode. michael@0: michael@0: * include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro. michael@0: michael@0: * src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in michael@0: `tags[0]'. michael@0: michael@0: * src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom): michael@0: Use bits 3-5 instead of 0-2. michael@0: (New_Profile): Set the drop-out mode in the profile's `flags' field. michael@0: (Decompose_Curve): Check `tags[0]' and set `dropOutControl' if michael@0: necessary. michael@0: (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, michael@0: Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out michael@0: mode. michael@0: michael@0: 2009-06-16 Werner Lemberg michael@0: michael@0: Improve scan conversion rules 4 and 6. michael@0: michael@0: Two new constraints are introduced to better identify a `stub' -- a michael@0: concept which is only vaguely described in the OpenType michael@0: specification. The old code was too rigorous and suppressed more michael@0: pixel than it should. michael@0: michael@0: . The intersection of the two profiles with the scanline is less michael@0: than a half pixel. Code related to this was already present in michael@0: the sources but has been commented out. michael@0: michael@0: . The endpoint of the original contour forming a profile has a michael@0: distance (`overshoot') less than half a pixel to the scanline. michael@0: michael@0: Note that the two additional conditions fix almost all differences michael@0: to the Windows rasterizer, but some problematic cases remain. michael@0: michael@0: * src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New michael@0: macros for the `flags' field in the `TProfile' structure. michael@0: (IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros. michael@0: (New_Profile, End_Profile): Pass overshoot flag as an argument and michael@0: set it accordingly. michael@0: Update callers. michael@0: (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new michael@0: constraints. michael@0: michael@0: 2009-06-11 Werner Lemberg michael@0: michael@0: Increase precision for B/W rasterizer. michael@0: michael@0: * src/raster/ftraster.c (Set_High_Precision): Add two more bits to michael@0: the precision. This corrects rendering of some small glyphs, for michael@0: example, glyph `xi' in verdana.ttf at 13 ppem. Testing with ftbench michael@0: on my GNU/Linux box I don't see a performance degradation. michael@0: michael@0: 2009-06-08 Michael Zucchi michael@0: michael@0: Handle FT_STROKER_LINECAP_BUTT. michael@0: This fixes Savannah bug #26757. michael@0: michael@0: * src/base/ftstroke.c (ft_stroker_cap): Implement it. michael@0: michael@0: 2009-06-07 Harald Fernengel michael@0: michael@0: Fix some potential out-of-memory crashes. michael@0: michael@0: * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'. michael@0: * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'. michael@0: * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of michael@0: `exec' in case of failure. michael@0: michael@0: 2009-06-07 Werner Lemberg michael@0: michael@0: Simplify math. michael@0: Suggested by Alexei Podtelezhnikov . michael@0: michael@0: * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, michael@0: Horizontal_Gray_Sweep_Drop): Do it. michael@0: michael@0: 2009-06-04 Werner Lemberg michael@0: michael@0: Preparation for fixing scan conversion rules 4 and 6. michael@0: michael@0: * src/raster/ftraster.c (TFlow): Replace enumeration with... michael@0: (Flow_Up): This macro. michael@0: (TProfile): Replace `flow' member with `flags' bit field. michael@0: Update all affected code. michael@0: michael@0: 2009-05-29 James Cloos michael@0: michael@0: Enable autohinting for glyphs rotated by multiples of 90°. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted michael@0: matrices to allow rotations by multiples of 90°, not only unrotated, michael@0: possibly slanted matrices. michael@0: michael@0: 2009-05-28 Werner Lemberg michael@0: michael@0: Remove compiler warning. michael@0: Reported by Krzysztof Kowalczyk . michael@0: michael@0: * src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of michael@0: `n_edges' into `#if' block. michael@0: michael@0: 2009-05-28 Werner Lemberg michael@0: michael@0: Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined. michael@0: Reported by Krzysztof Kowalczyk . michael@0: michael@0: * src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]: michael@0: Make it work. michael@0: Simplify #ifdef logic. michael@0: michael@0: 2009-05-22 Werner Lemberg michael@0: michael@0: Improve b/w rasterizer. michael@0: Problem reported by Krzysztof Kotlenga . michael@0: michael@0: * src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, michael@0: Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if michael@0: intersections are equally distant relative to next pixel center, michael@0: select the left pixel, not the right one. michael@0: michael@0: 2009-05-19 Werner Lemberg michael@0: michael@0: Fix Savannah bug #26600. michael@0: michael@0: * src/type42/t42parse.c (t42_load_keyword): Handle michael@0: T1_FIELD_LOCATION_FONT_EXTRA. michael@0: michael@0: 2009-04-30 Werner Lemberg michael@0: michael@0: Document recent changes to ftview. michael@0: michael@0: * docs/CHANGES: Do it. michael@0: michael@0: 2009-04-27 Werner Lemberg michael@0: michael@0: autohinter: Don't change digit widths if all widths are the same. michael@0: This fixes FreeDesktop bug #21197. michael@0: michael@0: * src/autofit/afglobal.c (AF_DIGIT): New macro. michael@0: (af_face_globals_compute_script_coverage): Mark ASCII digits in michael@0: `glyph_scripts' array. michael@0: (af_face_globals_get_metrics): Updated. michael@0: (af_face_globals_is_digit): New function. michael@0: * src/autofit/afglobal.h: Updated. michael@0: (AF_ScriptMetricsRec): Add `digits_have_same_width' flag. michael@0: michael@0: * src/autofit/aflatin.c: Include FT_ADVANCES_H. michael@0: (af_latin_metrics_check_digits): New function. michael@0: (af_latin_metrics_init): Use it. michael@0: * src/autofit/aflatin.h: Updated. michael@0: * src/autofit/afcjk.c (af_cjk_metrics_init): Updated. michael@0: michael@0: * src/autofit/aflatin2.c: Similar changes as with aflatin.c. michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g): Test digit width. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2009-04-26 Werner Lemberg michael@0: michael@0: Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again. michael@0: Problems reported by suyu@cooee.cn. michael@0: michael@0: * src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS, michael@0: FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define. michael@0: [!_STANDALONE_]: Include ftspic.h only here. michael@0: (ras): Define/declare after definition of `TWorker'. michael@0: Use `RAS_VAR_' where necessary. michael@0: michael@0: 2009-04-21 Karl Berry michael@0: michael@0: Fix AC_CHECK_FT2. michael@0: michael@0: * builds/unix/freetype2.m4: Only check PATH for freetype-config if michael@0: we did not already find it from a prefix option. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Add #error to modules and files that do not support PIC yet. michael@0: michael@0: When FT_CONFIG_OPTION_PIC is defined the following files will michael@0: create #error: michael@0: * src/bdf/bdfdrivr.h michael@0: * src/cache/ftcmanag.c michael@0: * src/cid/cidriver.h michael@0: * src/gxvalid/gxvmod.h michael@0: * src/gzip/ftgzip.c michael@0: * src/lzw/ftlzw.c michael@0: * src/otvalid/otvmod.h michael@0: * src/pcf/pcfdrivr.h michael@0: * src/pfr/pfrdrivr.h michael@0: * src/psaux/psauxmod.h michael@0: * src/type1/t1driver.h michael@0: * src/type42/t42drivr.h michael@0: * src/winfonts/winfnt.h michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Position Independent Code (PIC) support in autofit module. michael@0: michael@0: * include/freetype/internal/autohint.h add macros to init michael@0: instances of FT_AutoHinter_ServiceRec. michael@0: michael@0: * src/autofit/afmodule.h declare autofit_module_class michael@0: using macros from ftmodapi.h, michael@0: when FT_CONFIG_OPTION_PIC is defined create and destroy michael@0: functions will be declared. michael@0: * src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined michael@0: af_autofitter_service and autofit_module_class structs michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: And macros will be used from afpic.h in order to access them. michael@0: michael@0: * src/autofit/aftypes.h add macros to init and declare michael@0: instances of AF_ScriptClassRec. michael@0: michael@0: * src/autofit/afcjk.h declare af_cjk_script_class michael@0: using macros from aftypes.h, michael@0: when FT_CONFIG_OPTION_PIC is defined init function will be declared. michael@0: * src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined michael@0: af_cjk_script_class struct will have function to init it instead of michael@0: being allocated in the global scope. michael@0: michael@0: * src/autofit/afdummy.h declare af_dummy_script_class michael@0: using macros from aftypes.h, michael@0: when FT_CONFIG_OPTION_PIC is defined init function will be declared. michael@0: * src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined michael@0: af_dummy_script_class struct will have function to init it instead of michael@0: being allocated in the global scope. michael@0: michael@0: * src/autofit/afindic.h declare af_indic_script_class michael@0: using macros from aftypes.h, michael@0: when FT_CONFIG_OPTION_PIC is defined init function will be declared. michael@0: * src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined michael@0: af_indic_script_class struct will have function to init it instead of michael@0: being allocated in the global scope. michael@0: michael@0: * src/autofit/aflatin.h declare af_latin_script_class michael@0: using macros from aftypes.h, michael@0: when FT_CONFIG_OPTION_PIC is defined init function will be declared. michael@0: * src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined michael@0: af_latin_script_class struct will have function to init it instead of michael@0: being allocated in the global scope. michael@0: Change af_latin_blue_chars to be PIC-compatible by being a two michael@0: dimentional array rather than array of pointers. michael@0: michael@0: michael@0: * src/autofit/aflatin2.h declare af_latin2_script_class michael@0: using macros from aftypes.h, michael@0: when FT_CONFIG_OPTION_PIC is defined init function will be declared. michael@0: * src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined michael@0: af_latin2_script_class struct will have function to init it instead of michael@0: being allocated in the global scope. michael@0: Change af_latin2_blue_chars to be PIC-compatible by being a two michael@0: dimentional array rather than array of pointers. michael@0: michael@0: * src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined michael@0: af_script_classes array initialization was moved to afpic.c and michael@0: is later refered using macros defeined in afpic.h. michael@0: michael@0: New Files: michael@0: * src/autofit/afpic.h declare struct to hold PIC globals for autofit michael@0: module and macros to access them. michael@0: * src/autofit/afpic.c implement functions to allocate, destroy and michael@0: initialize PIC globals for autofit module. michael@0: michael@0: * src/autofit/autofit.c add new file to build: afpic.c. michael@0: * src/autofit/jamfile add new files to FT2_MULTI build: afpic.c. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Position Independent Code (PIC) support in pshinter module. michael@0: michael@0: * include/freetype/internal/pshints.h add macros to init michael@0: instances of PSHinter_Interface. michael@0: michael@0: * src/pshinter/pshmod.h declare pshinter_module_class michael@0: using macros from ftmodapi.h, michael@0: when FT_CONFIG_OPTION_PIC is defined create and destroy michael@0: functions will be declared. michael@0: * src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined michael@0: pshinter_interface and pshinter_module_class structs michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: And macros will be used from pshpic.h in order to access them. michael@0: michael@0: New Files: michael@0: * src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter michael@0: module and macros to access them. michael@0: * src/pshinter/pshpic.c implement functions to allocate, destroy and michael@0: initialize PIC globals for pshinter module. michael@0: michael@0: * src/pshinter/pshinter.c add new file to build: pshpic.c. michael@0: * src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Position Independent Code (PIC) support in psnames module. michael@0: michael@0: * include/freetype/internal/services/svpscmap.h add macros to init michael@0: instances of FT_Service_PsCMapsRec. michael@0: michael@0: * src/psnames/psmodule.h declare psnames_module_class michael@0: using macros from ftmodapi.h, michael@0: when FT_CONFIG_OPTION_PIC is defined create and destroy michael@0: functions will be declared. michael@0: * src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined michael@0: pscmaps_interface and pscmaps_services structs michael@0: and psnames_module_class array michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: And macros will be used from pspic.h in order to access them. michael@0: michael@0: New Files: michael@0: * src/psnames/pspic.h declare struct to hold PIC globals for psnames michael@0: module and macros to access them. michael@0: * src/psnames/pspic.c implement functions to allocate, destroy and michael@0: initialize PIC globals for psnames module. michael@0: michael@0: * src/psnames/psnames.c add new file to build: pspic.c. michael@0: * src/psnames/jamfile add new files to FT2_MULTI build: pspic.c. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Position Independent Code (PIC) support in raster renderer. michael@0: michael@0: * src/raster/ftrend1.h declare ft_raster1_renderer_class michael@0: and ft_raster5_renderer_class michael@0: using macros from ftrender.h, michael@0: when FT_CONFIG_OPTION_PIC is defined create and destroy michael@0: functions will be declared. michael@0: * src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined michael@0: ft_raster1_renderer_class and ft_raster5_renderer_class structs michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: Macros will be used from rastpic.h in order to access michael@0: ft_standard_raster from the pic_container (allocated in ftraster.c). michael@0: In ft_raster1_render when PIC is enabled, the last letter of michael@0: module_name is used to verfy the renderer class rather than the michael@0: class pointer. michael@0: michael@0: * src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined michael@0: ft_standard_raster struct will have function to init it michael@0: instead of being allocated in the global scope. michael@0: michael@0: New Files: michael@0: * src/raster/rastpic.h declare struct to hold PIC globals for raster michael@0: renderer and macros to access them. michael@0: * src/raster/rastpic.c implement functions to allocate, destroy and michael@0: initialize PIC globals for raster renderer. michael@0: michael@0: * src/raster/raster.c add new file to build: rastpic.c. michael@0: * src/raster/jamfile add new files to FT2_MULTI build: rastpic.c. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Position Independent Code (PIC) support in smooth renderer. michael@0: michael@0: * src/smooth/ftsmooth.h declare ft_smooth_renderer_class, michael@0: ft_smooth_lcd_renderer_class and ft_smooth_lcd_v_renderer_class michael@0: using macros from ftrender.h, michael@0: when FT_CONFIG_OPTION_PIC is defined create and destroy michael@0: functions will be declared. michael@0: * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined michael@0: the following structs: michael@0: ft_smooth_renderer_class, ft_smooth_lcd_renderer_class michael@0: and ft_smooth_lcd_v_renderer_class michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: And macros will be used from ftspic.h in order to access michael@0: ft_grays_raster from the pic_container (allocated in ftgrays.c). michael@0: michael@0: * src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H michael@0: * src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined michael@0: func_interface was moved from gray_convert_glyph_inner function michael@0: to the global scope. michael@0: When FT_CONFIG_OPTION_PIC is defined michael@0: func_interface and ft_grays_raster structs michael@0: will have functions to init them michael@0: instead of being allocated in the global scope. michael@0: And func_interface will be allocated on the stack of michael@0: gray_convert_glyph_inner. michael@0: michael@0: New Files: michael@0: * src/smooth/ftspic.h declare struct to hold PIC globals for smooth michael@0: renderer and macros to access them. michael@0: * src/smooth/ftspic.c implement functions to allocate, destroy and michael@0: initialize PIC globals for smooth renderer. michael@0: michael@0: * src/smooth/smooth.c add new file to build: ftspic.c. michael@0: * src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Position Independent Code (PIC) support in cff driver. michael@0: michael@0: * include/freetype/internal/services/svcid.h add macros to init michael@0: instances of FT_Service_CIDRec. michael@0: * include/freetype/internal/services/svpsinfo.h add macros to init michael@0: instances of FT_Service_PsInfoRec. michael@0: michael@0: * src/cff/cffcmap.h declare cff_cmap_encoding_class_rec michael@0: and cff_cmap_unicode_class_rec using macros from michael@0: ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy michael@0: functions will be declared. michael@0: * src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined michael@0: the following structs: michael@0: cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: michael@0: * src/cff/cffdrivr.h declare cff_driver_class using macros from michael@0: ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy michael@0: functions will be declared. michael@0: * src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined michael@0: the following structs: michael@0: cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name michael@0: cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class, michael@0: and cff_services array michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: And macros will be used from cffpic.h in order to access them michael@0: from the pic_container. michael@0: Use macros from cffpic.h in order to access the michael@0: structs allocated in cffcmap.c michael@0: michael@0: * src/cff/cffobjs.c Use macros from cffpic.h in order to access the michael@0: structs allocated in cffcmap.c michael@0: michael@0: * src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined michael@0: implement functions to create and destroy cff_field_handlers array michael@0: instead of being allocated in the global scope. michael@0: And macros will be used from cffpic.h in order to access it michael@0: from the pic_container. michael@0: michael@0: New Files: michael@0: * src/cff/cffpic.h declare struct to hold PIC globals for cff michael@0: driver and macros to access them. michael@0: * src/cff/cffpic.c implement functions to allocate, destroy and michael@0: initialize PIC globals for cff driver. michael@0: michael@0: * src/cff/cff.c add new file to build: cffpic.c. michael@0: * src/cff/jamfile add new files to FT2_MULTI build: cffpic.c. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Position Independent Code (PIC) support in sfnt driver. michael@0: michael@0: * include/freetype/internal/services/svbdf.h add macros to init michael@0: instances of FT_Service_BDFRec. michael@0: * include/freetype/internal/services/svgldict.h add macros to init michael@0: instances of FT_Service_GlyphDictRec. michael@0: * include/freetype/internal/services/svpostnm.h add macros to init michael@0: instances of FT_Service_PsFontNameRec. michael@0: * include/freetype/internal/services/svsfnt.h add macros to init michael@0: instances of FT_Service_SFNT_TableRec. michael@0: * include/freetype/internal/services/svttcmap.h add macros to init michael@0: instances of FT_Service_TTCMapsRec. michael@0: * include/freetype/internal/sfnt.h add macros to init michael@0: instances of SFNT_Interface. michael@0: michael@0: * src/sfnt/sfdriver.h declare sfnt_module_class using macros from michael@0: ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy michael@0: functions will be declared. michael@0: * src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined michael@0: the following structs: michael@0: sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name michael@0: tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface, michael@0: sfnt_module_class, and sfnt_services array michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: And macros will be used from sfntpic.h in order to access them michael@0: from the pic_container. michael@0: michael@0: * src/sfnt/ttcmap.h add macros to init michael@0: instances of TT_CMap_ClassRec. michael@0: * src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined michael@0: the following structs: michael@0: tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec michael@0: tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec, michael@0: tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: And macros will be used from sfntpic.h in order to access them michael@0: from the pic_container. michael@0: The content of tt_cmap_classes is now described in the michael@0: new file 'ttcmapc.h'. michael@0: michael@0: New Files: michael@0: * src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt michael@0: driver and macros to access them. michael@0: * src/sfnt/sfntpic.c implement functions to allocate, destroy and michael@0: initialize PIC globals for sfnt driver. michael@0: * src/sfnt/ttcmapc.h describing the content of michael@0: tt_cmap_classes allocated in ttcmap.c michael@0: michael@0: * src/sfnt/sfnt.c add new file to build: sfntpic.c. michael@0: * src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Position Independent Code (PIC) support in truetype driver. michael@0: michael@0: * include/freetype/internal/services/svmm.h add macros to init michael@0: instances of FT_Service_MultiMastersRec. michael@0: * include/freetype/internal/services/svttglyf.h add macros to init michael@0: instances of FT_Service_TTGlyfRec. michael@0: michael@0: * src/truetype/ttdriver.h declare tt_driver_class using macros from michael@0: ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy michael@0: functions will be declared. michael@0: * src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined michael@0: the following structs: michael@0: tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class michael@0: and tt_services array, michael@0: will have functions to init or create and destroy them michael@0: instead of being allocated in the global scope. michael@0: And macros will be used from ttpic.h in order to access them michael@0: from the pic_container. michael@0: * src/truetype/ttobjs.c change trick_names array to be michael@0: PIC-compatible by being a two dimentional array rather than array michael@0: of pointers. michael@0: michael@0: New Files: michael@0: * src/truetype/ttpic.h declare struct to hold PIC globals for truetype michael@0: driver and macros to access them. michael@0: * src/truetype/ttpic.c implement functions to allocate, destroy and michael@0: initialize PIC globals for truetype driver. michael@0: michael@0: * src/truetype/truetype.c add new file to build: ttpic.c. michael@0: * src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Position Independent Code (PIC) support and infrastructure in base. michael@0: michael@0: * include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC michael@0: * include/freetype/internal/ftobjs.h Add pic_container member to michael@0: FT_LibraryRec. michael@0: Add macros to declare and init instances of FT_CMap_ClassRec. michael@0: Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs. michael@0: Add macros to declare, allocate and initialize modules michael@0: (FT_Module_Class). michael@0: Add macros to declare, allocate and initialize renderers michael@0: (FT_Renderer_Class). michael@0: Add macro to init instances of FT_Glyph_Class. michael@0: Add macros to declare, allocate and initialize drivers michael@0: (FT_Driver_ClassRec). michael@0: * include/freetype/internal/ftpic.h new file to declare the michael@0: FT_PIC_Container struct and the functions to allocate and detroy it. michael@0: * include/freetype/internal/ftserv.h add macros to allocate and michael@0: destory arrays of FT_ServiceDescRec. michael@0: * include/freetype/internal/internal.h define macro to include michael@0: ftpic.h. michael@0: michael@0: New Files: michael@0: * src/base/ftpic.c implement functions to allocate and destory the michael@0: global pic_container. michael@0: * src/base/basepic.h declare struct to hold PIC globals for base and michael@0: macros to access them. michael@0: * src/base/basepic.c implement functions to allocate, destroy and michael@0: initialize PIC globals for base. michael@0: michael@0: * src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement michael@0: functions that allocate and destroy ft_default_modules according to michael@0: FT_CONFIG_MODULES_H in the pic_container instead of the global scope michael@0: and use macro from basepic.h to access it. michael@0: * src/base/ftobjs.c add calls to the functions that allocate and michael@0: destroy the global pic_container when the library is created and michael@0: destroyed. michael@0: michael@0: * src/base/jamfile add new files to FT2_MULTI build: michael@0: ftpic.c and basepic.c. michael@0: * src/base/ftbase.c add new files to build: michael@0: ftpic.c and basepic.c. michael@0: michael@0: * src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined michael@0: ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated michael@0: in the pic_container instead of the global scope and use macros from michael@0: basepic.h to access them. michael@0: * src/base/ftbbox.c allocate bbox_interface stract on the stack michael@0: instead of the global scope when FT_CONFIG_OPTION_PIC is defined. michael@0: * src/base/ftstroke.c access ft_outline_glyph_class allocated in michael@0: ftglyph.c via macros from basepic.h michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Preparing changes in cff parser later needed for PIC version. michael@0: michael@0: * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c, michael@0: src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to michael@0: 'CFF_ParserRec' set by `cff_parser_init'. michael@0: Route library pointer from 'cff_face_init' to 'cff_subfont_load' michael@0: for `cff_parser_init'. michael@0: michael@0: * src/cff/cffparse.c (CFF_Field_Handler): Move it to... michael@0: * src/cff/cffparse.h: This file, to be used by other C files. michael@0: michael@0: 2009-04-05 Oran Agra michael@0: michael@0: Minor change in ftstroke.c. michael@0: michael@0: * src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with michael@0: `library' needed for PIC version. michael@0: Update all callers. michael@0: michael@0: 2009-04-04 Werner Lemberg michael@0: michael@0: ftnames.c -> ftsnames.c michael@0: michael@0: * src/base/ftnames.c: Rename to... michael@0: * src/base/ftsnames.c: This. michael@0: * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated. michael@0: michael@0: 2009-04-04 Werner Lemberg michael@0: michael@0: Add support for cmap type 13. michael@0: michael@0: * devel/ftoption.h, include/freetype/config/ftoption.h michael@0: (TT_CONFIG_CMAP_FORMAT_13): New macro. michael@0: michael@0: * src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init, michael@0: tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next, michael@0: tt_cmap13_get_info, tt_cmap13_char_map_def_binary, michael@0: tt_cmap14_class_rec): New functions and structures for cmap 13 michael@0: support. michael@0: (tt_cmap_classes): Register tt_cmap13_class_rec. michael@0: michael@0: * docs/CHANGES: Mention cmap 13 support. michael@0: michael@0: 2009-04-01 Werner Lemberg michael@0: michael@0: Ignore empty contours in CFF glyphs. michael@0: michael@0: Problem reported by Albert Astals Cid . michael@0: michael@0: * src/cff/cffgload.c (cff_builder_close_contour): Synchronize with michael@0: t1_builder_close_contour. michael@0: michael@0: 2009-03-21 Werner Lemberg michael@0: michael@0: Another redundant header inclusion. michael@0: michael@0: * src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041. michael@0: michael@0: 2009-03-21 Werner Lemberg michael@0: michael@0: Remove redundant header inclusions. michael@0: michael@0: This covers many Ghostscript Coverity issues. michael@0: michael@0: * src/*: Do it. michael@0: michael@0: 2009-03-21 Werner Lemberg michael@0: michael@0: Fix Ghostscript Coverity issue #3904. michael@0: michael@0: * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against michael@0: invalid values of `runcnt'. michael@0: michael@0: 2009-03-20 Werner Lemberg michael@0: michael@0: Fix `make multi' run. michael@0: michael@0: * src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H. michael@0: michael@0: 2009-03-20 Werner Lemberg michael@0: michael@0: Fix Savannah bug #25923. michael@0: michael@0: * src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo. michael@0: michael@0: 2009-03-20 Werner Lemberg michael@0: michael@0: Protect against too large glyphs. michael@0: michael@0: Problem reported by Tavis Ormandy . michael@0: michael@0: * src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow michael@0: `pitch' or `height' to be larger than 0xFFFF. michael@0: michael@0: 2009-03-20 Werner Lemberg michael@0: Tavis Ormandy michael@0: michael@0: Fix validation for various cmap table formats. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate, michael@0: tt_cmap12_validate): Check `length' correctly. michael@0: (tt_cmap_14_validate): Check `length' and `numMappings' correctly. michael@0: michael@0: 2009-03-20 Werner Lemberg michael@0: michael@0: Protect against malformed compressed data. michael@0: michael@0: * src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is michael@0: zero. michael@0: michael@0: 2009-03-20 Werner Lemberg michael@0: michael@0: Protect against invalid SID values in CFFs. michael@0: michael@0: Problem reported by Tavis Ormandy . michael@0: michael@0: * src/cff/cffload.c (cff_charset_load): Reject SID values larger michael@0: than 64999. michael@0: michael@0: 2009-03-19 Vincent Richomme michael@0: michael@0: Update WinCE Visual C project files. michael@0: michael@0: * builds/wince/vc2005-ce/freetype.vcproj, michael@0: builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension michael@0: files. michael@0: michael@0: 2009-03-19 Werner Lemberg michael@0: michael@0: Remove unused Win32 code. michael@0: michael@0: * builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'. michael@0: Since Win32 is handled separately this is no longer needed. michael@0: michael@0: 2009-03-19 Vincent Richomme michael@0: michael@0: Make `gzip' module compile on WinCE. michael@0: michael@0: * src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H. michael@0: michael@0: 2009-03-19 Werner Lemberg michael@0: michael@0: Remove unused WinCE code. michael@0: michael@0: * builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'. michael@0: Since WinCE is handled separately this is no longer needed. michael@0: michael@0: 2009-03-16 Werner Lemberg michael@0: michael@0: docmaker: Don't ignore single-line code blocks. michael@0: michael@0: * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from michael@0: 2009-01-31. michael@0: michael@0: 2009-03-15 Steve Langasek michael@0: michael@0: Use __asm__ for declaring assembly instead of asm. michael@0: michael@0: * builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of michael@0: asm on arm, fixing a build failure on armel with -pedantic. michael@0: michael@0: 2009-03-14 Werner Lemberg michael@0: michael@0: Fix valgrind warning. michael@0: michael@0: * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read michael@0: past the end of the frame. michael@0: michael@0: 2009-03-12 Werner Lemberg michael@0: michael@0: * Version 2.3.9 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-9'. michael@0: michael@0: 2009-03-12 Werner Lemberg michael@0: michael@0: * builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'. michael@0: michael@0: 2009-03-12 Werner Lemberg michael@0: michael@0: Fix some FreeType Coverity issues as reported for Ghostscript. michael@0: michael@0: * src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize michael@0: `args.stream' (#3874, #3875). michael@0: (open_face_PS_from_sfnt_stream): Improve error management (#3786). michael@0: * src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice' michael@0: (#3870). michael@0: * src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead michael@0: code (#3790). michael@0: * src/base/ftrfork.c (raccess_guess_apple_generic): Check error michael@0: value of `FT_Stream_Skip' (#3784). michael@0: michael@0: * src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing michael@0: it (#3872) michael@0: michael@0: * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing michael@0: it (#3871). michael@0: * src/pcf/pcfread.c (pcf_get_metrics): Handle return value of michael@0: `pcf_get_metric' (#3789, #3782). michael@0: (pcf_get_properties): Use FT_STREAM_SKIP (#3783). michael@0: michael@0: * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of michael@0: `acache' (#3797) michael@0: michael@0: * src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff' michael@0: (#3796). michael@0: * src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795). michael@0: * src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794). michael@0: michael@0: * src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom' michael@0: (#3793). michael@0: (_bdf_parse_start): Add comment (#3792). michael@0: michael@0: * src/raster/ftraster.c (Finalize_Profile_Table): Check michael@0: `ras.fProfile' (#3791). michael@0: michael@0: * src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785). michael@0: michael@0: * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore michael@0: seek error (#3781). michael@0: michael@0: 2009-03-11 Michael Toftdal michael@0: michael@0: Extend CID service functions to handle CID-keyed CFFs as CID fonts. michael@0: michael@0: * include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed, michael@0: FT_Get_CID_From_Glyph_Index): New functions. michael@0: michael@0: * include/freetype/internal/services/svcid.h michael@0: (FT_CID_GetIsInternallyCIDKeyedFunc, michael@0: FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs. michael@0: (CID Service): Use them. michael@0: michael@0: * src/base/ftcid.c: Include FT_CID_H. michael@0: (FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index): michael@0: New functions. michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index): michael@0: New functions. michael@0: (cff_service_cid_info): Add them. michael@0: * src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids' michael@0: -- it is needed for access as a CID-keyed font. It gets deleted michael@0: later on. michael@0: michael@0: * src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index): michael@0: New functions. michael@0: (cid_service_cid_info): Add them. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2009-03-11 Bram Tassyns michael@0: michael@0: Fix Savannah bug #25597. michael@0: michael@0: * src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length michael@0: to become larger than 9. michael@0: michael@0: 2009-03-11 Werner Lemberg michael@0: michael@0: Fix Savannah bug #25814. michael@0: michael@0: * builds/unix/freetype2.in: As suggested in the bug report, move michael@0: @LIBZ@ to `Libs.private'. michael@0: michael@0: 2009-03-11 Werner Lemberg michael@0: michael@0: Fix Savannah bug #25781. michael@0: We now simply check for a valid `offset', no longer handling `delta michael@0: = 1' specially. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for michael@0: last segment. michael@0: (tt_cmap4_set_range, tt_cmap4_char_map_linear, michael@0: tt_cmap4_char_map_binary): Check offset. michael@0: michael@0: 2009-03-11 Werner Lemberg michael@0: michael@0: * src/base/Jamfile: Fix handling of ftadvanc.c. michael@0: Reported by Oran Agra . michael@0: michael@0: 2009-03-10 Vincent Richomme michael@0: michael@0: Restructure Win32 and Wince compiler support. michael@0: michael@0: * src/builds/win32: Remove files for WinCE. michael@0: Move VC 2005 support to a separate directory. michael@0: Add directory for VC 2008 support. michael@0: michael@0: * src/builds/wince: New directory hierarchy for WinCE compilers michael@0: (VC 2005 and VC 2008). michael@0: michael@0: 2009-03-09 Werner Lemberg michael@0: michael@0: More preparations for 2.3.9 release. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: * Jamfile, README: s/2.3.8/2.3.9/, s/238/239/. michael@0: michael@0: 2009-03-09 Werner Lemberg michael@0: michael@0: * src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c. michael@0: michael@0: 2009-03-09 Alexey Kryukov michael@0: michael@0: Fix handling of EBDT formats 8 and 9 (part 2). michael@0: michael@0: This patch fixes the following problems in ttsbit0.c: michael@0: michael@0: . Bitmaps for compound glyphs were never allocated. michael@0: michael@0: . `SBitDecoder' refused to load metrics if some other metrics have michael@0: already been loaded. This condition certainly makes no sense for michael@0: recursive calls, so I've just disabled it. Another possibility michael@0: would be resetting `decoder->metrics_loaded' to false before michael@0: loading each composite component. However, we must restore the michael@0: original metrics after finishing the recursion; otherwise we can michael@0: get a misaligned glyph. michael@0: michael@0: . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos', michael@0: causing some glyph components to be shifted too far to the right michael@0: (especially noticeable for small sizes). michael@0: michael@0: Note that support for grayscale bitmaps (not necessarily compound) is michael@0: completely broken in ttsbit0.c. michael@0: michael@0: * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics. michael@0: (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case michael@0: of `h == height'. michael@0: (tt_sbit_decoder_load_compound): Reset metrics after loading michael@0: components. michael@0: Allocate bitmap. michael@0: michael@0: 2009-03-09 Werner Lemberg michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:20:3. michael@0: michael@0: 2009-03-03 David Turner michael@0: michael@0: Protect SFNT kerning table parser against malformed tables. michael@0: michael@0: This closes Savannah BUG #25750. michael@0: michael@0: * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a michael@0: bug where a malformed table would be successfully loaded but later michael@0: crash the engine during parsing. michael@0: michael@0: 2009-03-03 David Turner michael@0: michael@0: Update documentation and bump version number to 2.3.9. michael@0: michael@0: * include/freetype/freetype.h: Bump patch version to 9. michael@0: * docs/CHANGES: Document the ABI break in 2.3.8. michael@0: * docs/VERSION.DLL: Update version numbers table for 2.3.9. michael@0: michael@0: 2009-03-03 David Turner michael@0: michael@0: Remove ABI-breaking field in public PS_InfoFontRec definition. michael@0: michael@0: Instead, we define a new internal PS_FontExtraRec structure to michael@0: hold the additional field, then place it in various internal michael@0: positions of the corresponding FT_Face derived objects. michael@0: michael@0: * include/freetype/t1tables.h (PS_FontInfoRec): Remove the michael@0: `fs_type' field from the public structure. michael@0: * include/freetype/internal/psaux.h (T1_FieldLocation): New michael@0: enumeration `T1_FIELD_LOCATION_FONT_EXTRA'. michael@0: * include/freetype/internal/t1types.h (PS_FontExtraRec): New michael@0: structure. michael@0: (T1_FontRec, CID_FaceRec): Add it. michael@0: michael@0: * src/cid/cidload.c (cid_load_keyword): Handle michael@0: T1_FIELD_LOCATION_FONT_EXTRA. michael@0: * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c: michael@0: Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'. michael@0: * src/type1/t1load.c (t1_load_keyword): Handle michael@0: T1_FIELD_LOCATION_FONT_EXTRA. michael@0: michael@0: * include/freetype/internal/services/svpsinfo.h (PsInfo service): michael@0: Add `PS_GetFontExtraFunc' function typedef. michael@0: michael@0: * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and michael@0: FT_SERVICE_POSTSCRIPT_INFO_H. michael@0: (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service. michael@0: michael@0: * src/cff/cffdrivr.c (cff_service_ps_info): Updated. michael@0: * src/cid/cidriver.c (cid_ps_get_font_extra): New function. michael@0: (cid_service_ps_info): Updated. michael@0: * src/type1/t1driver.c (t1_ps_get_font_extra): New function. michael@0: (t1_service_ps_info): Updated. michael@0: * src/type42/t42drivr.c (t42_ps_get_font_extra): New function. michael@0: (t42_service_ps_info): Updated. michael@0: michael@0: 2009-03-02 Alexey Kryukov michael@0: michael@0: Fix handling of EBDT formats 8 and 9. michael@0: michael@0: The main cycle in `blit_sbit' makes too many iterations: it actually michael@0: needs the count of lines in the source bitmap rather than in the michael@0: target image. michael@0: michael@0: * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]: michael@0: Add parameter `source_height' and use it for main loop. michael@0: (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated. michael@0: michael@0: 2009-02-23 Werner Lemberg michael@0: michael@0: Fix Savannah bug #25669. michael@0: michael@0: * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo. michael@0: michael@0: * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix michael@0: scaling factor for non-scalable fonts. michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width michael@0: value to prevent incorrect scaling. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2009-02-15 Matt Godbolt michael@0: michael@0: Fix Savannah bug #25588. michael@0: michael@0: * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for michael@0: `orr' instruction. michael@0: michael@0: 2009-02-11 Werner Lemberg michael@0: michael@0: * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'. michael@0: Reported by David Bevan . michael@0: michael@0: 2009-02-09 Werner Lemberg michael@0: michael@0: Fix Savannah bug #25495. michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before michael@0: setting metrics and bbox values. This ensures that the check for a michael@0: font with neither a `glyf' table nor bitmap strikes can be performed michael@0: early enough to set metrics and bbox values too. michael@0: michael@0: 2009-02-04 Werner Lemberg michael@0: michael@0: Fix Savannah bug #25480. michael@0: michael@0: * builds/unix/freetype-config.in: For --ftversion, don't use $prefix michael@0: but $includedir. michael@0: michael@0: 2009-01-31 Werner Lemberg michael@0: michael@0: Minor docmaker improvements. michael@0: michael@0: * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty michael@0: code blocks. michael@0: michael@0: 2009-01-25 Werner Lemberg michael@0: michael@0: Fix SCANCTRL handling in TTFs. michael@0: Problem reported by Alexey Kryukov . michael@0: michael@0: * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling. michael@0: michael@0: 2009-01-23 Werner Lemberg michael@0: michael@0: Move FT_Get_FSType_Flags to a separate file. michael@0: Problem reported by Mickey Gabel . michael@0: michael@0: * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to... michael@0: * src/base/ftfstype.c: This new file. michael@0: michael@0: * modules.cfg (BASE_EXTENSION): Add ftfstype.c. michael@0: michael@0: * docs/INSTALL.ANY: Updated. michael@0: michael@0: * builds/mac/*.txt, builds/amiga/*makefile*, michael@0: builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*: michael@0: Updated. michael@0: michael@0: 2009-01-22 suzuki toshiya michael@0: michael@0: * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error michael@0: messages ending without "\n". michael@0: michael@0: 2009-01-22 suzuki toshiya michael@0: michael@0: Fix Savannah bug #25347. michael@0: michael@0: * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind michael@0: the stream to the original position passed to this function, michael@0: when ft_lookup_PS_in_sfnt_stream() failed. michael@0: (Mac_Read_sfnt_Resource): Rewind the stream to the head of michael@0: sfnt resource body, when open_face_PS_from_sfnt_stream() michael@0: failed. michael@0: michael@0: 2009-01-19 Michael Lotz michael@0: michael@0: Fix Savannah bug #25355. michael@0: michael@0: * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make michael@0: assembler code work with gcc 2.95.3 (as used by the Haiku project). michael@0: Add `cc' register to the clobber list. michael@0: michael@0: 2009-01-18 Werner Lemberg michael@0: michael@0: Protect FT_Get_Next_Char. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to michael@0: change from 2008-07-22. michael@0: michael@0: Patch from Ronen Ghoshal . michael@0: michael@0: 2009-01-18 Werner Lemberg michael@0: michael@0: Implement FT_Get_Name_Index for SFNT driver. michael@0: michael@0: * src/sfnt/sfdriver.c (sfnt_get_name_index): New function. michael@0: (sfnt_service_glyph_dict): Use it. michael@0: michael@0: Problem reported by Truc Truong . michael@0: michael@0: 2009-01-18 Werner Lemberg michael@0: michael@0: * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix michael@0: documentation. Problem reported by Truc Truong . michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2009-01-14 Werner Lemberg michael@0: michael@0: * Version 2.3.8 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-8'. michael@0: michael@0: * docs/VERSION.DLL: Update documentation and bump version number to michael@0: 2.3.8. michael@0: michael@0: * README, Jamfile (RefDoc), builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, michael@0: builds/win32/visualce/index.html, michael@0: builds/win32/visualce/freetype.dsp, michael@0: builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:19:3. michael@0: michael@0: * docs/release: Updated. michael@0: michael@0: 2009-01-14 Werner Lemberg michael@0: michael@0: * builds/toplevel.mk (dist): Compress better. michael@0: michael@0: 2009-01-13 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation michael@0: with C++. michael@0: michael@0: 2009-01-13 Werner Lemberg michael@0: michael@0: Don't use stdlib.h and friends directly. michael@0: Reported by Mickey Gabel . michael@0: michael@0: * src/base/ftdbgmem.c: s//FT_CONFIG_STANDARD_LIBRARY_H/. michael@0: michael@0: * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h: michael@0: s//FT_CONFIG_STANDARD_LIBRARY_H/. michael@0: michael@0: * src/autofit/aftypes.h, src/autofit/afhints.c, michael@0: src/pshinter/pshalgo.c: s//FT_CONFIG_STANDARD_LIBRARY_H/ michael@0: michael@0: * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h. michael@0: michael@0: 2009-01-12 Werner Lemberg michael@0: michael@0: Avoid compiler warnings. michael@0: michael@0: * */*: s/do ; while ( 0 )/do { } while ( 0 )/. michael@0: Reported by Sean McBride . michael@0: michael@0: 2009-01-12 Werner Lemberg michael@0: michael@0: Fix stdlib dependencies. michael@0: michael@0: Problem reported by Mickey Gabel . michael@0: michael@0: * include/freetype/config/ftstdlib.h (ft_exit): Removed. Unused. michael@0: michael@0: * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c: michael@0: s/memcpy/ft_memcpy/. michael@0: * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/. michael@0: michael@0: 2009-01-11 Werner Lemberg michael@0: michael@0: * docs/formats.txt: Add link to PCF specification. michael@0: michael@0: * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve michael@0: documentation. michael@0: michael@0: 2009-01-09 suzuki toshiya michael@0: michael@0: * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance, michael@0: FT_Get_Advances): Change the type of load_flags from FT_UInt32 to michael@0: FT_Int32, to match with the flags for FT_Load_Glyph(). michael@0: * src/cff/cffdrivr.c (cff_get_advances): Ditto. michael@0: * src/truetype/ttdriver.c (tt_get_advances): Ditto. michael@0: * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances): michael@0: Ditto. michael@0: * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): michael@0: Ditto. michael@0: michael@0: 2009-01-09 Daniel Zimmermann michael@0: michael@0: * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong michael@0: length check. From Savannah patch #6682. michael@0: michael@0: 2009-01-09 Werner Lemberg michael@0: michael@0: Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2. michael@0: michael@0: * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle michael@0: `count_offset' if it is zero (i.e., unused). Otherwise, the first michael@0: element of the structure which holds the data is erroneously michael@0: modified. Problem reported by Chi Nguyen . michael@0: michael@0: 2009-01-09 suzuki toshiya michael@0: michael@0: * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance, michael@0: FT_Get_Advances): Extend the type of load_flags from FT_UInt to michael@0: FT_UInt32, to pass 32-bit flags on 16bit platforms. michael@0: * src/cff/cffdrivr.c (cff_get_advances): Ditto. michael@0: * src/truetype/ttdriver.c (tt_get_advances): Ditto. michael@0: * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances): michael@0: Ditto. michael@0: * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): michael@0: Ditto. michael@0: michael@0: 2009-01-09 suzuki toshiya michael@0: michael@0: * src/base/ftobjs.c (FT_Done_Library): Issue an error message when michael@0: FT_Done_Face() cannot free all faces. If the list of the opened michael@0: faces includes broken face which FT_Done_Face() cannot free, michael@0: FT_Done_Library() retries FT_Done_Face() and it can fall into michael@0: an endless loop. See the discussion: michael@0: http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html michael@0: http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html michael@0: michael@0: 2009-01-07 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Document new key `a' in ftdiff. michael@0: michael@0: 2009-01-06 Werner Lemberg michael@0: michael@0: * autogen.sh: Don't use GNUisms while calling sed. Problem reported michael@0: by Sean McBride. michael@0: michael@0: 2009-01-06 Werner Lemberg michael@0: michael@0: * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD michael@0: and FT_PIXEL_MODE_LCD_V. Problem reported by Chi Nguyen michael@0: . michael@0: michael@0: 2009-01-06 Diego Pettenò michael@0: michael@0: * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and michael@0: AC_CANONICAL_TARGET and use $host_os only. A nice explanation for michael@0: this change can be found at michael@0: http://blog.flameeyes.eu/s/canonical-target. michael@0: michael@0: From Savannah patch #6712. michael@0: michael@0: 2009-01-06 Sean McBride michael@0: michael@0: * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static. michael@0: michael@0: * src/base/ftmac.c: Remove some #undefs. michael@0: michael@0: 2008-12-26 Werner Lemberg michael@0: michael@0: Set `face_index' field in FT_Face for all font formats. michael@0: michael@0: * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init), michael@0: sfnt/sfobjs.c (sfnt_init_face): Do it. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2008-12-22 Steve Grubb michael@0: michael@0: * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files. michael@0: Patch from Savannah bug #25151. michael@0: michael@0: 2008-12-21 Werner Lemberg michael@0: michael@0: * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c, michael@0: src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c: michael@0: s/_Err_Bad_Argument/_Err_Invalid_Argument/. The former is for michael@0: errors in the bytecode interpreter only. michael@0: michael@0: 2008-12-21 Werner Lemberg michael@0: michael@0: * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL michael@0: arguments. michael@0: Fix return value for non-PFR fonts. Both problems reported by Chi michael@0: Nguyen . michael@0: michael@0: 2008-12-21 anonymous michael@0: michael@0: FT_USE_MODULE declares things as: michael@0: michael@0: extern const FT_Module_Class michael@0: michael@0: (or similar for C++). However, the actual types of the variables michael@0: being declared are often different, e.g., FT_Driver_ClassRec or michael@0: FT_Renderer_Class. (Some are, indeed, FT_Module_Class.) michael@0: michael@0: This works with most C compilers (since those structs begin with an michael@0: FT_Module_Class struct), but technically it's undefined behavior. michael@0: michael@0: To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7 michael@0: paragraph 2: michael@0: michael@0: All declarations that refer to the same object or function shall michael@0: have compatible type; otherwise, the behavior is undefined. michael@0: michael@0: (And they are not compatible types.) michael@0: michael@0: Most C compilers don't reject (or even detect!) code which has this michael@0: issue, but the GCC LTO development branch compiler does. (It michael@0: outputs the types of the objects while generating .o files, along michael@0: with a bunch of other information, then compares them when doing the michael@0: final link-time code generation pass.) michael@0: michael@0: Patch from Savannah bug #25133. michael@0: michael@0: * src/base/ftinit.c (FT_USE_MODULE): Include variable type. michael@0: michael@0: * builds/amiga/include/freetype/config/ftmodule.h, michael@0: include/freetype/config/ftmodule.h, */module.mk: Updated to declare michael@0: pass correct types to FT_USE_MODULE. michael@0: michael@0: 2008-12-21 Hongbo Ni michael@0: michael@0: * src/autofit/aflatin.c (af_latin_hint_edges), michael@0: src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c michael@0: (af_cjk_hint_edges): Protect against division by zero. This fixes michael@0: Savannah bug #25124. michael@0: michael@0: 2008-12-18 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2008-12-18 Bevan, David michael@0: michael@0: Provide API for accessing embedding and subsetting restriction michael@0: information. michael@0: michael@0: * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING, michael@0: FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING, michael@0: FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING, michael@0: FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New michael@0: macros. michael@0: (FT_Get_FSType_Flags): New function declaration. michael@0: michael@0: * src/base/ftobjs.c (FT_Get_FSType_Flags): New function. michael@0: michael@0: * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c michael@0: (t42_keywords): Handle `FSType'. michael@0: michael@0: * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field. michael@0: michael@0: 2008-12-17 Werner Lemberg michael@0: michael@0: * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal michael@0: macros so that copying the source code into an application works michael@0: out of the box. michael@0: michael@0: 2008-12-17 Werner Lemberg michael@0: michael@0: * include/freetype/ftsynth.h, src/base/ftsynth.c: Move michael@0: FT_GlyphSlot_Own_Bitmap to... michael@0: * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2008-12-10 Werner Lemberg michael@0: michael@0: Generalize the concept of `tricky' fonts by introducing michael@0: FT_FACE_FLAG_TRICKY to indicate that the font format's hinting michael@0: engine is necessary for correct rendering. michael@0: michael@0: At the same time, slightly modify the behaviour of tricky fonts: michael@0: FT_LOAD_NO_HINTING is now ignored. To really force raw loading michael@0: of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and michael@0: FT_LOAD_NO_AUTOHINT must be used. michael@0: michael@0: Finally, tricky TrueType fonts always use the bytecode interpreter michael@0: even if the patented code is used. michael@0: michael@0: * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY): michael@0: New macros. michael@0: michael@0: * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags michael@0: semantics as described above. michael@0: michael@0: * src/truetype/ttobjs.c (tt_check_trickyness): New function, using michael@0: code of ... michael@0: (tt_face_init): This function, now simplified and updated to new michael@0: semantics. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky michael@0: fonts. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2008-12-09 Werner Lemberg michael@0: michael@0: Really fix Savannah bug #25010: An SFNT font with neither outlines michael@0: nor bitmaps can be considered as containing space `glyphs' only. michael@0: michael@0: * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where michael@0: a `glyf' table is missing. michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no michael@0: `glyf' table but a non-zero `loca' entry. michael@0: (tt_loader_init): Handle missing `glyf' table. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05. michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines michael@0: nor bitmaps is scalable. michael@0: michael@0: 2008-12-05 Werner Lemberg michael@0: michael@0: * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This michael@0: fixes Savannah bug #21190 which also provides a basic patch. michael@0: michael@0: 2008-12-05 Werner Lemberg michael@0: michael@0: * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value michael@0: 0x100 instead of 0x10000; the latter value is already occupied by michael@0: FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos. michael@0: michael@0: michael@0: Handle SFNT with neither outlines nor bitmaps. This fixes Savannah michael@0: bug #25010. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither michael@0: outlines nor bitmaps. michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there michael@0: is no table with glyphs. michael@0: michael@0: michael@0: * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging michael@0: message. michael@0: michael@0: 2008-12-01 Werner Lemberg michael@0: michael@0: GDEF tables need `glyph_count' too for validation. Problem reported michael@0: by Chi Nguyen . michael@0: michael@0: * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h michael@0: (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass michael@0: `glyph_count'. michael@0: michael@0: 2008-11-29 Werner Lemberg michael@0: michael@0: * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c, michael@0: src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c, michael@0: src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c, michael@0: src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c, michael@0: src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings michael@0: (Atari PureC). michael@0: michael@0: 2008-11-29 James Cloos michael@0: michael@0: * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix michael@0: it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values michael@0: in the /BlendDesignMap space). michael@0: michael@0: 2008-11-29 James Cloos michael@0: michael@0: * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*, michael@0: whereas `design_points' is FT_Long*. Therefore, return blend rather michael@0: than design points. michael@0: michael@0: 2008-11-27 Werner Lemberg michael@0: michael@0: * src/cff/cffparse.c (cff_parse_real): Handle more than nine michael@0: significant digits correctly. This fixes Savannah bug #24953. michael@0: michael@0: 2008-11-25 Daniel Zimmermann michael@0: michael@0: * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream michael@0: before the NULL check. From Savannah patch #6681. michael@0: michael@0: 2008-11-24 Werner Lemberg michael@0: michael@0: Fixes from the gnuwin32 port. michael@0: michael@0: * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/. michael@0: michael@0: * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H. michael@0: michael@0: * src/psaux/psobjs.c (ps_table_add): Check `length'. michael@0: michael@0: 2008-11-15 Werner Lemberg michael@0: michael@0: * src/truetype/ttinterp.c (tt_default_graphics_state): The default michael@0: value for `scan_type' is zero, as confirmed by Greg Hitchcock from michael@0: Microsoft. Problem reported by Michal Nowakowski michael@0: . michael@0: michael@0: 2008-11-12 Tor Andersson michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field. michael@0: This fixes Savannah bug #24819. michael@0: michael@0: 2008-11-08 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards michael@0: since OpenType version 1.5 has been released. michael@0: michael@0: * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY, michael@0: TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5. michael@0: (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE, michael@0: TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN, michael@0: TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE, michael@0: TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI, michael@0: TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC, michael@0: TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA, michael@0: TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING, michael@0: TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE, michael@0: TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI, michael@0: TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS, michael@0: TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New michael@0: macros for OpenType 1.5. michael@0: michael@0: 2008-11-08 Wenlin Institute michael@0: michael@0: * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against michael@0: slot->internal == NULL. Reported by Graham Asher. michael@0: michael@0: 2008-11-08 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error michael@0: code so that memory allocation problems can be distinguished from michael@0: missing table entries. Reported by Graham Asher. michael@0: (GET_NAME): New macro. michael@0: (sfnt_load_face): Use it. michael@0: michael@0: 2008-11-05 Werner Lemberg michael@0: michael@0: * devel/ftoption.h, include/freetype/config/ftoption.h michael@0: [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine michael@0: TT_CONFIG_OPTION_UNPATENTED_HINTING. This fixes the return value of michael@0: `FT_Get_TrueType_Engine_Type' (and makes it work as documented). michael@0: Reported in bug #441638 of bugzilla.novell.com. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2008-11-03 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_subrs): Use an endless loop. There are michael@0: fonts (like HELVI.PFB version 003.001, used on OS/2) which define michael@0: some `subrs' elements more than once. Problem reported by Peter michael@0: Weilbacher . michael@0: michael@0: 2008-10-15 Graham Asher michael@0: michael@0: * src/sfnt/ttpost.c (tt_post_default_names): Add `const'. michael@0: michael@0: 2008-10-15 David Turner michael@0: michael@0: * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for michael@0: meddlesome compilers' warning against `for ( ...; ...; ...) ;'. michael@0: michael@0: 2008-10-14 Werner Lemberg michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Remove compiler warning. michael@0: Suggested by Bram Tassyns in Savannah patch #6651. michael@0: michael@0: 2008-10-12 Graham Asher michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of michael@0: `underline_position'. michael@0: michael@0: 2008-10-12 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2008-10-09 suzuki toshiya michael@0: michael@0: Fix Savannah bug #24468. michael@0: michael@0: According to include/freetype/internal/ftobjs.h, the appropriate michael@0: type to interchange single character codepoint is FT_UInt32. It michael@0: should be distinguished from FT_UInt which can be 16bit integer. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type michael@0: of the second argument `pcharcode' from FT_UInt* to FT_UInt32*. michael@0: (tt_cmap4_char_map_binary): Ditto. michael@0: (tt_cmap14_get_nondef_chars): Change the type of return value michael@0: from FT_UInt* to FT_UInt32*. michael@0: michael@0: 2008-10-08 John Tytgat michael@0: michael@0: Fix Savannah bug #24485. michael@0: michael@0: * src/type1/t1load.c (parse_charstrings): Assure that we always have michael@0: a .notdef glyph. michael@0: michael@0: 2008-10-05 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build. michael@0: * builds/mac/ftmac.c: Ditto. michael@0: michael@0: 2008-10-05 suzuki toshiya michael@0: michael@0: * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions. michael@0: * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H. michael@0: michael@0: 2008-10-05 suzuki toshiya michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in michael@0: the beginning of sfnt container. michael@0: * src/sfnt/ttload.c (check_table_dir): Return michael@0: `SFNT_Err_Table_Missing' when sfnt table directory structure is michael@0: correct but essential tables for TrueType fonts (`head', `bhed' or michael@0: `SING') are missing. Other errors are returned by michael@0: SFNT_Err_Unknown_File_Format. michael@0: michael@0: * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns michael@0: `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'. It is michael@0: enabled only when old mac font support is configured. michael@0: michael@0: 2008-10-04 suzuki toshiya michael@0: michael@0: * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN, michael@0: TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify michael@0: the repeated calculations of these values in ftobjs.c and ftmac.c. michael@0: * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags. michael@0: * src/base/ftmac.c: Ditto. michael@0: * builds/mac/ftmac.c: Ditto. michael@0: michael@0: 2008-10-04 suzuki toshiya michael@0: michael@0: * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong michael@0: initialization of *is_sfnt_cid. michael@0: michael@0: 2008-10-04 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler michael@0: warnings. michael@0: michael@0: 2008-10-04 suzuki toshiya michael@0: michael@0: * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by... michael@0: (ft_lookup_PS_in_sfnt_stream): This. michael@0: (open_face_PS_from_sfnt_stream): New function. It checks whether michael@0: the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed michael@0: font, then try to open a face for given face_index. michael@0: (Mac_Read_sfnt_Resource): Replace the combination of michael@0: `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by michael@0: `open_face_PS_from_sfnt_stream'. michael@0: * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto. michael@0: * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto. michael@0: * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add michael@0: `open_face_PS_from_sfnt_stream'. michael@0: michael@0: 2008-10-03 suzuki toshiya michael@0: michael@0: * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to michael@0: FALSE if neither `CID ' nor `TYP1' is found in the sfnt container. michael@0: michael@0: 2008-10-03 suzuki toshiya michael@0: michael@0: * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or michael@0: MrC compiler of MPW is used. These compilers do not define the michael@0: macro __APPLE__ by themselves. michael@0: * builds/unix/ftconfig.in: Ditto. michael@0: * builds/vms/ftconfig.h: Ditto. michael@0: * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to michael@0: include ftmac.c if FreeType 2 is built by MPW. michael@0: * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to michael@0: enable shared functions for ftmac.c if FreeType 2 is built by MPW. michael@0: michael@0: * builds/mac/ftmac.c: Include ftbase.h. michael@0: (memory_stream_close): Removed. michael@0: (new_memory_stream): Ditto. michael@0: (open_face_from_buffer): Removed. Use the implementation in michael@0: ftobjs.c. michael@0: (ft_lookup_PS_in_sfnt): Ditto. michael@0: michael@0: * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an michael@0: included part of ftbase.c, to share the functions in ftobjs.c. The michael@0: rule compiling ftmac.c separately is removed and the rule copying michael@0: ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added. michael@0: * builds/mac/FreeType.m68k_cfm.make.txt: Ditto. michael@0: * builds/mac/FreeType.ppc_classic.make.txt: Ditto. michael@0: * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. michael@0: michael@0: 2008-10-02 Bram Tassyns michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This michael@0: fixes Savannah bug #24430. michael@0: michael@0: 2008-10-02 Werner Lemberg michael@0: michael@0: * builds/freetype.mk (BASE_H): Rename to... michael@0: (INTERNAL_H): This. michael@0: (FREETYPE_H): Updated. michael@0: * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H. michael@0: * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h. michael@0: * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h. michael@0: * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h. michael@0: * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h. michael@0: * src/type42/rules.mk (T42_DRV_H): Add t42types.h. michael@0: michael@0: 2008-10-02 suzuki toshiya michael@0: michael@0: * src/base/ftbase.h: New file to declare the private utility michael@0: functions shared by the sources of base modules. Currently, michael@0: `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to michael@0: share between ftobjs.c and ftmac.c. michael@0: michael@0: * src/base/rule.mk: Add ftbase.h. michael@0: michael@0: * src/base/ftobjs.c: Include ftbase.h. michael@0: (memory_stream_close): Build on any platform when old MacOS font michael@0: support is enabled. michael@0: (new_memory_stream): Ditto. michael@0: (open_face_from_buffer): Build on any platform when old MacOS font michael@0: support is enabled. The counting of the face in a font file is michael@0: slightly different between Carbon-dependent parser and Carbon-free michael@0: parser. They are merged with the platform-specific conditional. michael@0: (ft_lookup_PS_in_sfnt): Ditto. michael@0: michael@0: * src/base/ftmac.c: Include ftbase.h. michael@0: (memory_stream_close): Removed. michael@0: (new_memory_stream): Ditto. michael@0: (open_face_from_buffer): Removed. Use the implementation in michael@0: ftobjs.c. michael@0: (ft_lookup_PS_in_sfnt): Ditto. michael@0: michael@0: 2008-10-02 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed michael@0: if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined. michael@0: michael@0: 2008-10-01 Werner Lemberg michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c michael@0: (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done), michael@0: src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c michael@0: (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done), michael@0: src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0. michael@0: Reported by Graham Asher. michael@0: michael@0: 2008-09-30 suzuki toshiya michael@0: michael@0: * src/base/rules.mk: Add conditional source to BASE_SRC, for `make michael@0: multi' on Mac OS X. If the macro $(ftmac_c) is defined, michael@0: $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC. In a normal build, the michael@0: lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes michael@0: ftmac.c. michael@0: * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c). michael@0: * builds/unix/configure.raw: Add procedure to set up appropriate michael@0: value of $(ftmac_c) with the consideration of the availability of michael@0: Carbon framework. michael@0: michael@0: 2008-09-30 suzuki toshiya michael@0: michael@0: * src/base/Jamfile: Add target for multi build by jam on Mac OS X. michael@0: * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this michael@0: function for MPW building. It is synchronized the condition to michael@0: include ftmac.c source into ftbase.c. michael@0: michael@0: 2008-09-22 Werner Lemberg michael@0: michael@0: * src/cff/cffgload.c (CFF_Operator, cff_argument_counts, michael@0: cff_decoder_parse_charstrings): Handle (invalid) michael@0: `callothersubr' and `pop' instructions. michael@0: michael@0: 2008-09-22 John Tytgat michael@0: michael@0: Fix Savannah bug #24307. michael@0: michael@0: * include/freetype/internal/t1types.h (CID_FaceRec), michael@0: src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'. michael@0: michael@0: 2008-09-21 Werner Lemberg michael@0: michael@0: * src/smooth/ftgrays.c (gray_raster_render): Don't dereference michael@0: `target_map' if FT_RASTER_FLAG_DIRECT is set. Problem reported by michael@0: Stephan T. Lavavej . michael@0: michael@0: 2008-09-21 suzuki toshiya michael@0: michael@0: * src/otvalid/Jamfile: Add missing target `otvmath' for multi build michael@0: by jam. michael@0: * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by michael@0: jam. michael@0: michael@0: 2008-09-20 Werner Lemberg michael@0: michael@0: * src/smooth/ftgrays.c (gray_find_cell): Fix threshold. The values michael@0: passed to this function are already `normalized'. Problem reported michael@0: by Stephan T. Lavavej . michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2008-09-20 Werner Lemberg michael@0: michael@0: * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H. michael@0: (FT_Outline_Decompose): Decorate with tracing messages. michael@0: michael@0: * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with michael@0: FT_DEBUG_LEVEL_TRACE. michael@0: [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and michael@0: stdarg.h. michael@0: michael@0: (FT_TRACE) [_STANDALONE_]: Remove. michael@0: (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function. michael@0: (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros. michael@0: (FT_ERROR) [_STANDALONE_]: Updated. michael@0: michael@0: (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition. michael@0: Use FT_TRACE7. michael@0: (gray_dump_cells): Make it `static void'. michael@0: (gray_convert_glyph): Use FT_TRACE7. michael@0: michael@0: (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in michael@0: ftoutln.c. michael@0: michael@0: * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use michael@0: FT_ERROR_BASE. michael@0: michael@0: * docs/formats.txt: Updated. michael@0: michael@0: 2008-09-19 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped michael@0: CID-keyed font support. michael@0: * builds/mac/ftmac.c: Ditto. michael@0: michael@0: 2008-09-19 suzuki toshiya michael@0: michael@0: * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in michael@0: sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code. michael@0: `open_face_from_buffer' frees the passed buffer if it cannot open a michael@0: face from the buffer, so the caller must not free it. michael@0: michael@0: 2008-09-19 suzuki toshiya michael@0: michael@0: * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support michael@0: for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font. michael@0: (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID ' michael@0: table in sfnt table directory. It is used before loading TrueType michael@0: font driver. michael@0: michael@0: * docs/CHANGES: Add note about the current status of sfnt-wrapped michael@0: Type1 and sfnt-wrapped CID-keyed font support. michael@0: michael@0: 2008-09-18 Werner Lemberg michael@0: michael@0: * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for michael@0: orthogonality (ft_free and ft_sfree could belong to different memory michael@0: pools). This fixes Savannah bug #24297. michael@0: michael@0: 2008-09-18 suzuki toshiya michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined michael@0: in ttags.h instead of numerical value 0x4F54544FL. michael@0: michael@0: 2008-09-16 Werner Lemberg michael@0: michael@0: * src/cff/cffgload.h, src/cff/cffgload.c michael@0: (cff_decoder_set_width_only): Eliminate function call. michael@0: michael@0: 2008-09-15 George Williams michael@0: michael@0: Fix Savannah bug #24179, reported by Bram Tassyns. michael@0: michael@0: * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation michael@0: of default values. michael@0: michael@0: 2008-09-15 Werner Lemberg michael@0: michael@0: * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index' michael@0: and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to michael@0: prevent unconditional definition. This fixes Savannah bug #24241. michael@0: michael@0: * src/psnames/pstables.h: Regenerated. michael@0: michael@0: 2008-09-13 Werner Lemberg michael@0: michael@0: * autogen.sh, builds/unix/configure.raw, michael@0: include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor michael@0: beautifying. michael@0: michael@0: * include/freetype/ftadvanc.h, include/freetype/ftgasp.h, michael@0: include/freetype/ftlcdfil.h: Protect against FreeType 1. michael@0: Some other minor fixes. michael@0: michael@0: * devel/ftoption.h: Synchronize with michael@0: include/freetype/config/ftoption.h. michael@0: michael@0: 2008-09-11 Werner Lemberg michael@0: michael@0: * src/base/ftbase.c: Include ftadvanc.c. michael@0: michael@0: 2008-09-11 suzuki toshiya michael@0: michael@0: * builds/unix/ftconfig.in: Duplicate the cpp computation of michael@0: FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h. michael@0: (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro. If defined, the cpp michael@0: computation is disabled and the statically configured sizes are michael@0: used. This fixes Savannah bug #21250. michael@0: michael@0: * builds/unix/configure.raw: Add the checks to compare the cpp michael@0: computation results of the bit length of int and long versus the michael@0: sizes detected by running `configure'. If the results are michael@0: different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the michael@0: results. michael@0: New option --{enable|disable}-biarch-config is added to define or michael@0: undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually. michael@0: michael@0: 2008-09-05 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or michael@0: ApplicationService framework is missing. Although this value is not michael@0: used in building of FreeType2, it is written in `freetype2.pc' and michael@0: `freetype-config'. michael@0: michael@0: 2008-09-01 david turner michael@0: michael@0: * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap michael@0: index to mean `use default cached FT_Face's charmap'. This fixes michael@0: Savannah bug #22625. michael@0: * include/freetype/ftcache.h: Document it. michael@0: michael@0: michael@0: Make FT_MulFix an inlined function. This is done to speed up michael@0: FreeType a little (on x86 3% when loading+hinting, 10% when michael@0: rendering, ARM savings are more important though). Disable this by michael@0: undefining FT_CONFIG_OPTION_INLINE_MULFIX. michael@0: michael@0: Use of assembler code can now be controlled with michael@0: FT_CONFIG_OPTION_NO_ASSEMBLER. michael@0: michael@0: * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in michael@0: [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler michael@0: implementation. michael@0: [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler michael@0: implementation taken from `ftcalc.c'. michael@0: [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro michael@0: which is defined to the platform-specific assembler implementation michael@0: of FT_MulFix. michael@0: [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER] michael@0: (FT_MULFIX_INLINED): New macro. michael@0: michael@0: * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER, michael@0: FT_CONFIG_OPTION_INLINE_MULFIX): New macros. michael@0: michael@0: * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED. michael@0: michael@0: * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and michael@0: FT_MULFIX_INLINED. michael@0: michael@0: michael@0: Add a new header named FT_ADVANCES_H declaring some new APIs to michael@0: extract the advances of one or more glyphs without necessarily michael@0: loading their outlines. Also provide `fast loaders' for the michael@0: TrueType, Type1, and CFF font drivers (more to come later). michael@0: michael@0: * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files. michael@0: michael@0: * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro. michael@0: * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro. michael@0: michael@0: * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): michael@0: `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed', michael@0: respectively. michael@0: michael@0: * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add michael@0: ftadvanc.c. michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_advances): New function. michael@0: (cff_driver_class): Register it. michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_set_width_only): New function. michael@0: (cff_decoder_parse_charstrings): Handle `width_only'. michael@0: (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY. michael@0: michael@0: * src/cff/cffgload.h (cff_decoder): New element `width_only'. michael@0: (cff_decoder_set_width_only): New declaration. michael@0: michael@0: * src/truetype/ttdriver.c (tt_get_advances): New function. michael@0: (tt_driver_class): Register it. michael@0: michael@0: * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to... michael@0: (TT_Get_HMetrics, TT_Get_VMetrics): This. michael@0: Update callers. michael@0: * src/truetype/ttgload.h: Declare them. michael@0: michael@0: * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New michael@0: function. michael@0: * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances. michael@0: michael@0: michael@0: Add checks for minimum version of the `autotools' stuff. michael@0: michael@0: * autogen.sh: Implement it. michael@0: (get_major_version, get_minor_version, get_patch_version, michael@0: compare_to_minimum_version, check_tool_version): New auxiliary michael@0: functions. michael@0: michael@0: * README.CVS: Document it. michael@0: michael@0: 2008-08-29 suzuki toshiya michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in michael@0: ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ). michael@0: michael@0: 2008-08-28 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_encoding): Protect against infinite michael@0: loop. This fixes Savannah bug #24150 (where a patch has been posted michael@0: too). michael@0: michael@0: 2008-08-23 Werner Lemberg michael@0: michael@0: * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c michael@0: (afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug michael@0: #24119. michael@0: michael@0: 2008-08-19 suzuki toshiya michael@0: michael@0: * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always, michael@0: even if passed library or arguments are invalid. This fixes a bug michael@0: that an uninitialized stream is freed when an invalid library handle michael@0: is passed. Originally proposed by Mike Fabian, 2008/08/18 on michael@0: freetype-devel. michael@0: (FT_Open_Face): Ditto (stream). michael@0: (load_face_in_embedded_rfork): Ditto (stream2). michael@0: michael@0: 2008-08-18 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c: Add a fallback to guess the availability of the michael@0: `ResourceIndex' type. It is used when built without configure michael@0: (e.g., a build with Jam). michael@0: * builds/mac/ftmac.c: Ditto. michael@0: * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0 michael@0: explicitly, even if `ResourceIndex' is unavailable. michael@0: michael@0: 2008-08-18 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw: In checking of Mac OS X features, michael@0: all-in-one header file `Carbon.h' is replaced by the minimum michael@0: header file `CoreServices.h', similar to current src/base/ftmac.c. michael@0: michael@0: 2008-08-18 suzuki toshiya michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of michael@0: sub-header when its code_count is 0. Many Japanese Dynalab fonts michael@0: include such an empty sub-header (code_count == 0, first_code == 0 michael@0: delta == 0, but offset != 0) as the second sub-header in SJIS cmap. michael@0: michael@0: 2008-08-04 Werner Lemberg michael@0: michael@0: * src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes michael@0: Savannah bug #23995. michael@0: michael@0: * src/cid/cidload.c (parse_expansion_factor): New callback function. michael@0: (cid_field_records): Use it for `ExpansionFactor'. michael@0: * src/cod/cidtoken.h: Handle `ForceBold' keyword. michael@0: Don't handle `ExpansionFactor'. michael@0: michael@0: 2008-08-04 Bram Tassyns michael@0: michael@0: * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which michael@0: resulted in incorrect scaling. This fixes Savannah bug #23973. michael@0: michael@0: 2008-08-04 Werner Lemberg michael@0: michael@0: Be more tolerant w.r.t. invalid entries in SFNT table directory. michael@0: michael@0: * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and michael@0: adjust table count. michael@0: Add more trace messages. michael@0: (tt_face_load_font_dir): Updated. michael@0: michael@0: 2008-07-30 Werner Lemberg michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer michael@0: assume that the first argument on the stack is the bottom-most michael@0: element. Two reasons: michael@0: michael@0: o According to people from Adobe it is missing in the Type 2 michael@0: specification that pushing of additional, superfluous arguments michael@0: on the stack is prohibited. michael@0: michael@0: o Acroread in general handles fonts differently, namely by popping michael@0: the number of arguments needed for a particular operand (as a PS michael@0: interpreter would do). In case of buggy fonts this causes a michael@0: different interpretation which of the elements on the stack are michael@0: superfluous and which not. michael@0: michael@0: Since there are CFF subfonts (embedded in PDFs) which rely on michael@0: Acroread's behaviour, FreeType now does the same. michael@0: michael@0: 2008-07-27 Werner Lemberg michael@0: michael@0: Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This michael@0: fixes Savannah bug #23940. michael@0: michael@0: * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to... michael@0: (EXTRA_GLYPH_LIST_SIZE): This. michael@0: Increase by 2. michael@0: (ft_wgl_extra_unicodes): Rename to... michael@0: (ft_extra_glyph_unicodes): This. michael@0: Add two code values. michael@0: (ft_wgl_extra_glyph_names): Rename to... michael@0: (ft_extra_glyph_names): This. michael@0: Add two glyphs. michael@0: (ft_wgl_extra_glyph_name_offsets): Rename to... michael@0: (ft_extra_glyph_name_offsets): This. michael@0: Add two offsets. michael@0: michael@0: (ps_check_wgl_name, ps_check_wgl_unicode): Rename to... michael@0: (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This. michael@0: Updated. michael@0: (ps_unicodes_init): Updated. michael@0: michael@0: 2008-07-26 Werner Lemberg michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_prepare, michael@0: cff_decoder_parse_charstrings): Improve debug output. michael@0: michael@0: 2008-07-22 Martin McBride michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear, michael@0: tt_cmap4_char_map_binary): Handle fonts which treat the last segment michael@0: specially. According to the specification, such fonts would be michael@0: invalid but acroread accepts them. michael@0: michael@0: 2008-07-16 Jon Foster michael@0: michael@0: * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error. michael@0: michael@0: * src/base/ftcalc.c (FT_MulFix): Fix portability issue. michael@0: michael@0: * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]: michael@0: Fix compiler warning. michael@0: michael@0: 2008-07-16 Werner Lemberg michael@0: michael@0: Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly. michael@0: michael@0: * src/cff/cffload.c (cff_font_load): Pass `pure_cff'. michael@0: Invert sids table only if `pure_cff' is set. michael@0: * src/cff/cffload.h: Udpated. michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Updated. michael@0: Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2008-07-09 Werner Lemberg michael@0: michael@0: * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts michael@0: where num_locations < num_glyphs. Problem reported by Ding Li. michael@0: michael@0: 2008-07-05 Werner Lemberg michael@0: michael@0: Since FreeType uses `$(value ...)', we now need GNU make 3.80 or michael@0: newer. This fixes Savannah bug #23648. michael@0: michael@0: * configure: zsh doesn't like ${1+"$@"}. michael@0: Update needed GNU make version. michael@0: * builds/toplevel.mk: Check for `$(eval ...)'. michael@0: * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document michael@0: it. michael@0: michael@0: 2008-07-04 Werner Lemberg michael@0: michael@0: * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one michael@0: pixel, only check for dropouts if neither start nor end point lies michael@0: on a pixel center. This fixes Savannah bug #23762. michael@0: michael@0: 2008-06-29 Werner Lemberg michael@0: michael@0: * Version 2.3.7 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-7'. michael@0: michael@0: * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump michael@0: version number to 2.3.7. michael@0: michael@0: * README, Jamfile (RefDoc), builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, michael@0: builds/win32/visualce/index.html, michael@0: builds/win32/visualce/freetype.dsp, michael@0: builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:18:3. michael@0: michael@0: * docs/release: Updated. michael@0: michael@0: 2008-06-28 Werner Lemberg michael@0: michael@0: * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to... michael@0: * src/ftcalc.c: Here. This fixes Savannah bug #23729. michael@0: michael@0: 2008-06-27 Werner Lemberg michael@0: michael@0: * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, michael@0: Horizontal_Gray_Sweep_Drop): Test for intersections which michael@0: degenerate to a single point can be ignored; this has been confirmed michael@0: by Greg Hitchcock from Microsoft. (This was commented out code.) michael@0: michael@0: 2008-06-26 Werner Lemberg michael@0: michael@0: Improve navigation in API reference. michael@0: michael@0: * src/tools/docmaker/tohtml.py (html_header_3): Renamed to... michael@0: (html_header_6): This. michael@0: (html_header_3, html_header_3i, html_header_4, html_header_5, michael@0: html_header_5t): New strings. michael@0: (toc_footer_start, toc_footer_end): New strings. michael@0: (HtmlFormatter::html_header): Updated. michael@0: (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header): michael@0: New strings. michael@0: (HtmlFormatter::index_enter): Use `html_index_header'. michael@0: (HtmlFormatter::index_exit): Print `html_footer'. michael@0: (HtmlFormatter::toc_enter): Use `html_toc_header'. michael@0: (HtmlFormatter::toc_exit): Print proper footer. michael@0: michael@0: Convert ~ to non-breakable space. michael@0: michael@0: * src/tools/docmaker/tohtml.py (make_html_para): Implement it. michael@0: Update header files accordingly. michael@0: michael@0: 2008-06-24 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw: Check type `ResourceIndex' explicitly michael@0: and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5 michael@0: bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without michael@0: ResourceIndex type definition. The macro does not inform the type michael@0: availability. michael@0: * src/base/ftmac.c: More parentheses are inserted to clarify the michael@0: conditionals to disable legacy APIs in `10.5 and later' cases. If michael@0: HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined. michael@0: michael@0: 2008-06-24 Werner Lemberg michael@0: michael@0: * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering michael@0: mode. michael@0: michael@0: * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph, michael@0: Draw_Sweep): No-dropout mode is value 2, not value 0. michael@0: (Draw_Sweep): Really skip dropout handling for no-dropout mode. michael@0: michael@0: 2008-06-24 Werner Lemberg michael@0: michael@0: * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour michael@0: if it consists of one point only. Based on a patch from Savannah michael@0: bug #23683 (from John Tytgat). michael@0: michael@0: 2008-06-22 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff michael@0: with IS_HINTED. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2008-06-22 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option michael@0: but LDFLAGS does not, import it to LDFLAGS. The option is used to michael@0: specify non-default SDK on Mac OS X (e.g., universal binary SDK for michael@0: Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137 michael@0: recommends to add the option only to CFLAGS, LDFLAGS should include michael@0: it because libfreetype.la is built with -no-undefined. This fixes a michael@0: bug reported by Ryan Schmidt in MacPorts, michael@0: http://trac.macports.org/ticket/15331. michael@0: michael@0: 2008-06-21 Werner Lemberg michael@0: michael@0: Enable access to the various dropout rules of the B&W rasterizer. michael@0: Pass dropout rules from the TT bytecode interpreter to the michael@0: rasterizer. michael@0: michael@0: * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS, michael@0: FT_OUTLINE_EXCLUDE_STUBS): New flags for FT_Outline. michael@0: michael@0: * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, michael@0: Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the michael@0: OpenType specification. michael@0: Fix mode 4 computation. michael@0: (Render_Glyph, Render_Gray_Glyph): Handle new outline flags. michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion michael@0: mode to FT_OUTLINE_XXX flags. michael@0: michael@0: * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check. michael@0: michael@0: 2008-06-19 Werner Lemberg michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Compute final michael@0: `dict->units_per_em' value before assigning it to michael@0: `cffface->units_per_EM'. Otherwise, CFFs without subfonts are michael@0: scaled incorrectly if the font matrix is non-standard. This fixes michael@0: Savannah bug #23630. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2008-06-19 Werner Lemberg michael@0: michael@0: * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix michael@0: from 2008-06-19. michael@0: michael@0: 2008-06-18 Werner Lemberg michael@0: michael@0: * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21. michael@0: Reported by Peter Weilbacher . michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2008-06-15 George Williams michael@0: michael@0: * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set michael@0: `valid->extra2' to 1. This is undocumented in the OpenType 1.5 michael@0: specification. michael@0: michael@0: 2008-06-15 Werner Lemberg michael@0: michael@0: * src/base/ftcalc.c (FT_MulFix) : Protect registers correctly michael@0: from clobbering. Patch from Savannah bug report #23556. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2008-06-10 Werner Lemberg michael@0: michael@0: * autogen.sh: Add option `--install' to libtoolize. michael@0: michael@0: 2008-06-10 Werner Lemberg michael@0: michael@0: * Version 2.3.6 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-6'. michael@0: michael@0: * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump michael@0: version number to 2.3.6. michael@0: michael@0: * README, Jamfile (RefDoc), builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, michael@0: builds/win32/visualce/index.html, michael@0: builds/win32/visualce/freetype.dsp, michael@0: builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:17:3. michael@0: michael@0: michael@0: * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x' michael@0: and `scale_y'. michael@0: * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'. michael@0: michael@0: michael@0: * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H. michael@0: * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. michael@0: michael@0: 2008-06-10 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (open_face): Check `clazz->init_face' and michael@0: `clazz->done_face'. michael@0: michael@0: 2008-06-09 VaDiM michael@0: michael@0: Support debugging on WinCE. From Savannah patch #6536; this fixes michael@0: bug #23497. michael@0: michael@0: * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro michael@0: as a replacement for OutputDebugStringA (which WinCE doesn't have). michael@0: Update all callers. michael@0: (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have michael@0: environment variables. michael@0: michael@0: 2008-06-09 Werner Lemberg michael@0: michael@0: * README.CVS: Updated. michael@0: michael@0: * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated michael@0: for newer versions of autoconf and friends. michael@0: michael@0: 2008-06-08 Werner Lemberg michael@0: michael@0: * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and michael@0: `private_len' unsigned. michael@0: michael@0: * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read michael@0: it as such. michael@0: (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned. michael@0: michael@0: michael@0: * src/base/ftstream.c (FT_Stream_Skip): Reject negative values. michael@0: michael@0: michael@0: * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis' michael@0: for sane value. michael@0: Fix typo. michael@0: michael@0: michael@0: * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly. michael@0: michael@0: michael@0: * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check michael@0: `last_point'. michael@0: michael@0: michael@0: * src/sfnt/ttload.c (tt_face_load_max_profile): Limit michael@0: `maxTwilightPoints'. michael@0: michael@0: 2008-06-06 Werner Lemberg michael@0: michael@0: * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0' michael@0: correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem. michael@0: michael@0: 2008-06-03 Werner Lemberg michael@0: michael@0: * include/freetype/ftcache.h (FTC_FaceID): Change type back to michael@0: FT_Pointer. Reported by Ian Britten . michael@0: michael@0: 2008-06-02 Werner Lemberg michael@0: michael@0: Emit header info for defined FreeType objects in reference. michael@0: michael@0: * src/tools/docmaker/content.py (re_header_macro): New regexp. michael@0: (ContentProcessor::__init__): Initialize new dictionary `headers'. michael@0: (DocBlock::__init__): Collect macro header definitions. michael@0: michael@0: * src/tools/docmaker/tohtml.py (header_location_header, michael@0: header_location_footer): New strings. michael@0: (HtmlFormatter::__init__): Pass `headers' dictionary. michael@0: (HtmlFormatter::print_html_field): Don't emit paragraph tags. michael@0: (HtmlFormatter::print_html_field_list): Emit empty paragraph. michael@0: (HtmlFormatter::block_enter): Emit header info. michael@0: michael@0: 2008-06-01 Werner Lemberg michael@0: michael@0: * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H, michael@0: FT_INCREMENTAL_H): Added. michael@0: michael@0: 2008-05-28 Werner Lemberg michael@0: michael@0: * src/tools/docmaker/sources.py (SourceBlock::__init__): While michael@0: looking for markup tags, return immediately as soon a single one is michael@0: found. michael@0: michael@0: 2008-05-28 Werner Lemberg michael@0: michael@0: * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses michael@0: original, unscaled input values. Confirmed by Greg Hitchcock from michael@0: Microsoft. michael@0: michael@0: 2008-05-27 Werner Lemberg michael@0: michael@0: * src/tools/docmaker/tohtml.py (block_footer_start, michael@0: block_footer_middle): Beautify output. michael@0: michael@0: 2008-05-25 Werner Lemberg michael@0: michael@0: * src/raster/ftraster.c (fc_black_render): Return 0 when we are michael@0: trying to render into a zero-width/height bitmap, not an error code. michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Move initialization michael@0: of the graphics state for subglyphs to... michael@0: (TT_Hint_Glyph): This function. michael@0: Hinting instructions for a composite glyph apparently refer to the michael@0: just hinted subglyphs, not the unhinted, unscaled outline. This michael@0: seems to fix Savannah bugs #20973 and (at least partially) #23310. michael@0: michael@0: 2008-05-20 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid michael@0: `aface' is returned by FT_New_Face_From_FOND(). The patch was michael@0: proposed by an anonymous reporter of Savannah bug #23204. michael@0: michael@0: 2008-05-18 Werner Lemberg michael@0: michael@0: * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after michael@0: correction for pixel boundary. Without this patch, the effect can michael@0: be cumulative under certain circumstances, making glyphs taller and michael@0: taller after each call. This fixes Savannah bug #19976. michael@0: michael@0: 2008-05-18 Werner Lemberg michael@0: michael@0: * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr. michael@0: This fixes Savannah bug #23280. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2008-05-18 David Turner michael@0: michael@0: * src/psnames/psmodule.c (ft_wgl_extra_unicodes, michael@0: ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets, michael@0: ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make michael@0: declarations non-global. michael@0: michael@0: * src/type1/t1load.c: Add missing comment. michael@0: michael@0: 2008-05-17 Sam Hocevar michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour michael@0: glyphs correctly. Patch from Savannah bug #23277. michael@0: michael@0: 2008-05-16 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2008-05-16 Sergey Tolstov michael@0: michael@0: Improve support for WGL4 encoded fonts. michael@0: michael@0: * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro. michael@0: (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names, michael@0: ft_wgl_extra_glyph_name_offsets): New arrays. michael@0: (ps_check_wgl_name, ps_check_wgl_unicode): New functions. michael@0: (ps_unicodes_init): Use them to add additional Unicode mappings. michael@0: michael@0: 2008-05-15 Werner Lemberg michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings) michael@0: : `closepath' without a path is a no-op, not an error michael@0: (cf. the PS reference manual). michael@0: michael@0: Reported by Martin McBride. michael@0: michael@0: 2008-05-15 Werner Lemberg michael@0: michael@0: * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated. michael@0: michael@0: 2008-05-15 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array michael@0: which contains a single but empty entry. This is technically michael@0: invalid (since it must end with `return'), but... michael@0: michael@0: Reported by Martin McBride. michael@0: michael@0: 2008-05-14 Werner Lemberg michael@0: michael@0: Finish fix of scaling bug of CID-keyed CFF subfonts. michael@0: michael@0: * include/freetype/internal/ftcalc.h, src/base/ftcalc.c michael@0: (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New michael@0: functions. michael@0: michael@0: * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to michael@0: provide global hinting data for both the top-font and all subfonts michael@0: (with proper scaling). michael@0: michael@0: * src/cff/cffobjs.c (cff_make_private_dict): New function, using michael@0: code from `cff_size_init'. michael@0: (cff_size_init, cff_size_done, cff_size_select, cff_size_request): michael@0: Use CFF_Internal and handle subfonts. michael@0: (cff_face_init): Handle top-dict and subfont matrices correctly; michael@0: apply some heuristic in case of unlikely matrix concatenation michael@0: results. This has been discussed with people from Adobe (thanks michael@0: goes mainly to David Lemon) who confirm that the CFF specs are fuzzy michael@0: and not correct. michael@0: michael@0: * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument. michael@0: michael@0: * src/cff/cffgload.c (cff_builder_init): Updated. michael@0: (cff_decoder_prepare): Handle hints globals for subfonts. michael@0: Update all callers. michael@0: (cff_slot_load): Handling scaling of subfonts properly. michael@0: michael@0: * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function. michael@0: (cff_parse_font_matrix): Use it. michael@0: michael@0: * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em' michael@0: FT_ULong. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2008-05-13 Werner Lemberg michael@0: michael@0: * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init): michael@0: Handle case `face_index < 0'. michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2008-05-04 Werner Lemberg michael@0: michael@0: First steps to fix the scaling bug of CID-keyed CFF subfonts, michael@0: reported by Ding Li on 2008/03/28 on freetype-devel. michael@0: michael@0: * src/base/cff/cffparse.c (power_tens): New array. michael@0: (cff_parse_real): Rewritten to introduce a fourth parameter which michael@0: returns the `scaling' of the real number so that we have no michael@0: precision loss. This is not used yet. michael@0: Update all callers. michael@0: (cff_parse_fixed_thousand): Replace with... michael@0: (cff_parse_fixed_scaled): This function. Update all callers. michael@0: michael@0: 2008-05-03 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without michael@0: transformation since it recursively calls FT_Load_Glyph. This fixes michael@0: Savannah bug #23143. michael@0: michael@0: 2008-04-26 Werner Lemberg michael@0: michael@0: * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x' michael@0: and `scale_y' as obsolete since they aren't used. michael@0: * src/psaux/psobjs.c (t1_builder_init): Updated. michael@0: michael@0: * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as michael@0: obsolete since they aren't used. michael@0: * src/cff/cffgload.c (cff_builder_init): Updated. michael@0: michael@0: 2008-04-14 Werner Lemberg michael@0: michael@0: * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to michael@0: `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah michael@0: bug #22909. michael@0: michael@0: 2008-04-13 Werner Lemberg michael@0: michael@0: * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if michael@0: integer part is zero. michael@0: michael@0: 2008-04-01 Werner Lemberg michael@0: michael@0: Fix compilation with g++ 4.1 (with both `single' and `multi' michael@0: targets). michael@0: michael@0: * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block michael@0: which is crossed by a `goto'. michael@0: michael@0: * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype. michael@0: michael@0: 2008-03-31 Werner Lemberg michael@0: michael@0: Fix support for subsetted CID-keyed CFFs. michael@0: michael@0: * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED, michael@0: FT_IS_CID_KEYED): New macros. michael@0: michael@0: * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the michael@0: maximum CID value in CID-keyed CFFs. michael@0: Handle FT_FACE_FLAG_CID_KEYED flag. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: michael@0: Fix CFF font matrix calculation and improve precision. michael@0: michael@0: * src/cff/cffparse.c (cff_parse_real): Increase precision if integer michael@0: part is zero. michael@0: (cff_parse_font_matrix): Simplify computation of `units_per_em'; michael@0: this prevents overflow also. michael@0: michael@0: michael@0: Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts. michael@0: michael@0: * src/cid/cidriver.c: Include FT_SERVICE_CID_H. michael@0: (cid_get_ros): New function. michael@0: (cid_service_cid_info): New service structure. michael@0: (cid_services): Register it. michael@0: michael@0: 2008-03-23 Werner Lemberg michael@0: michael@0: Adjustments for Visual C++ 8.0, as reported by Rainer Deyke. michael@0: michael@0: * builds/compiler/visualc.mk (CFLAGS): Remove /W5. michael@0: (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE. michael@0: michael@0: 2008-03-21 Laurence Darby michael@0: michael@0: * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from michael@0: Savannah bug #22675. michael@0: michael@0: 2008-03-13 Derek Clegg michael@0: michael@0: * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop. michael@0: Patch from Savannah bug #22541. michael@0: michael@0: 2008-03-03 Masatoshi Kimura michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary, michael@0: tt_cmap14_find_variant): Return correct value. michael@0: (tt_cmap14_variant_chars): Fix check for `di'. michael@0: michael@0: 2008-02-29 Wermer Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2008-02-29 Wolf michael@0: michael@0: Add build support for symbian platform. From Savannah bug #22440. michael@0: michael@0: * builds/symbian/*: New files. michael@0: michael@0: 2008-02-21 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name michael@0: synthesis. For any face of a specified FOND, always the name for michael@0: the first face was used. Except of a FOND that refers multiple michael@0: Type1 font files, wrong synthesized font names are not used at all, michael@0: so this is an invisible bug. A few limit checks are added too. michael@0: michael@0: * builds/mac/ftmac.c: Ditto. michael@0: michael@0: 2008-02-21 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw: Split compiler option to link Carbon michael@0: frameworks to one option for CoreServices framework and another michael@0: option for ApplicationServices framework. The split options can be michael@0: managed by GNU libtool to avoid unrequired duplication when FreeType michael@0: is linked with other applications. Suggested by Daniel Macks, michael@0: Savannah bug #22366. michael@0: michael@0: 2008-02-18 Victor Stinner michael@0: michael@0: * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix michael@0: from Savannah bug #22356. michael@0: michael@0: 2008-02-17 Jonathan Blow michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): michael@0: Check for valid callback pointers. michael@0: michael@0: 2008-02-15 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource michael@0: handle by its value instead of ResError(), fix provided by Deron michael@0: Kazmaier. According to the Resource Manager Reference, michael@0: GetResource(), Get1Resource(), GetNamedResource(), michael@0: Get1NamedResource() and RGetResource() set noErr but return NULL michael@0: handle when they can not find the requested resource. These michael@0: functions never return undefined values, so it is sufficient to michael@0: check if the handle is not NULL. michael@0: michael@0: * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto. michael@0: michael@0: 2008-02-14 suzuki toshiya michael@0: michael@0: * src/base/ftbase.c: is replaced by "ftmac.c" as other michael@0: inclusion styles. Now it always includes src/base/ftmac.c; michael@0: builds/mac/ftmac.c is never included in any configuration. michael@0: michael@0: * builds/unix/configure.raw: Print warning if configure is executed michael@0: with options to specify Carbon functionalities explicitly. michael@0: michael@0: * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not michael@0: included automatically and manual replacement is required. michael@0: michael@0: 2008-02-11 Werner Lemberg michael@0: michael@0: * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk michael@0: (dos_setup), builds/freetype.mk (clean_project_dos, michael@0: distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan michael@0: Murdoch. michael@0: michael@0: 2008-01-18 Sylvain Pasche michael@0: michael@0: * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to michael@0: mention intra-pixel algorithm. michael@0: michael@0: * include/freetype/freetype.h (FT_Render_Mode): Mention that michael@0: FT_Library_SetLcdFilter can be used to reduce fringes. michael@0: michael@0: 2008-01-16 Werner Lemberg michael@0: michael@0: * src/raster/ftraster.c (ft_black_render): Check `outline' before michael@0: using it. Reported by Allan Yang. michael@0: michael@0: 2008-01-12 Werner Lemberg michael@0: michael@0: * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove. michael@0: michael@0: 2008-01-12 Allan Yang, Jian Hua - SH michael@0: michael@0: * src/raster/ftraster.c (ft_black_init) michael@0: [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation. michael@0: michael@0: 2008-01-10 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Handle the case michael@0: where the number of contours in a simple glyph is zero (and which michael@0: does contain an entry in the `glyf' table). This fixes Savannah bug michael@0: #21990. michael@0: michael@0: 2008-01-04 suzuki toshiya michael@0: michael@0: Formatting suggested by Sean McBride. michael@0: michael@0: * builds/mac/ftmac.c: Formatting (tab expanded). michael@0: * src/autofit/afindic.c: Ditto. michael@0: * src/base/ftcid.c: Ditto. michael@0: * src/base/ftmac.c: Ditto. michael@0: michael@0: 2007-12-30 Werner Lemberg michael@0: michael@0: * src/smooth/ftgrays.c (gray_raster_render): Check `outline' michael@0: correctly. michael@0: michael@0: 2007-12-21 suzuki toshiya michael@0: michael@0: Improvement of POSIX resource-fork accessor to load unsorted michael@0: references in a resource. In HelveLTMM (resource-fork PostScript michael@0: Type1 font bundled with Mac OS X since 10.3.x), the appearance order michael@0: of PFB chunks is not sorted; sorting the chunks by reference IDs is michael@0: required. michael@0: michael@0: * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure michael@0: type to store a pair of reference ID and offset to the chunk. michael@0: michael@0: * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to michael@0: sort FT_RFork_Ref by their reference IDs. michael@0: michael@0: (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is michael@0: sorted by reference ID. michael@0: michael@0: 2007-12-14 Werner Lemberg michael@0: michael@0: * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten' michael@0: division too early; otherwise the most significant digit(s) of the michael@0: final result are lost as the value is truncated to an integer. This michael@0: fixes Savannah bug #21794 (where the patch has been posted too). michael@0: michael@0: 2007-12-06 Fix <4d876b82@gmail.com> michael@0: michael@0: Pass options from one configure script to another as-is (not michael@0: expanded). This is needed for options like michael@0: --includedir='${prefix}/include'. michael@0: michael@0: * builds/unix/detect.mk, configure: Prevent argument expansion in michael@0: call to the (real) `configure' script. michael@0: michael@0: 2007-12-06 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if michael@0: TT_USE_BYTECODE_INTERPRETER isn't defined. michael@0: michael@0: 2007-12-06 Werner Lemberg michael@0: michael@0: There exist CFFs which contain opcodes for the Type 1 operators michael@0: `hsbw' and `closepath' which are both invalid in Type 2 charstrings. michael@0: However, it doesn't harm to support them. michael@0: michael@0: * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and michael@0: `cff_op_closepath.' michael@0: (cff_argument_counts): Ditto. michael@0: michael@0: (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath) michael@0: and 13 (hsbw) which are invalid in Type 2 charstrings. michael@0: michael@0: 2007-12-06 suzuki toshiya michael@0: michael@0: * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to michael@0: support new pathname syntax `..namedfork/rsrc' to access a resource michael@0: fork on Mac OS X. The legacy syntax `/rsrc' does not work on michael@0: case-sensitive HFS+. michael@0: (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of michael@0: buffer size to store a pathname. michael@0: * include/freetype/internal/ftrfork.h: Increment the number of michael@0: resource fork guessing rule. michael@0: michael@0: 2007-12-06 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw: Improve the compile tests to search michael@0: Carbon functions. michael@0: * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities michael@0: proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16). michael@0: michael@0: 2007-12-06 suzuki toshiya michael@0: michael@0: The documents and comments for Mac OS X are improved by Sean michael@0: McBride. michael@0: michael@0: * src/base/ftmac.c: Fix a comment. michael@0: * include/freetype/ftmac.h: Ditto. michael@0: * docs/INSTALL.MAC: Improve English and add comment on lowest michael@0: system version specified by MACOSX_DEPLOYMENT_TARGET. michael@0: michael@0: 2007-12-04 Werner Lemberg michael@0: michael@0: * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to michael@0: concatenate error codes. michael@0: * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto. michael@0: michael@0: 2007-12-04 Graham Asher michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to michael@0: concatenate error codes. michael@0: michael@0: 2007-12-04 Sean McBride michael@0: michael@0: * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler michael@0: warning. michael@0: michael@0: 2007-11-20 suzuki toshiya michael@0: michael@0: Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is michael@0: not working since 2.3.5. In FT_Open_New(), if FT_New_Stream() michael@0: cannot mmap() the specified file and cannot seek to head of the michael@0: specified file, it returns NULL stream and FT_Open_New() returns the michael@0: error immediately. On MacOS, most legacy MacOS fonts fall into such michael@0: a scenario because their data forks are zero-sized and cannot be michael@0: sought. To proceed to guessing of resource fork fonts, the michael@0: functions for legacy MacOS font must properly handle the NULL stream michael@0: returned by FT_New_Stream(). michael@0: michael@0: * src/base/ftobjs.c (IsMacBinary): Return error michael@0: FT_Err_Invalid_Stream_Operation immediately when NULL stream is michael@0: passed. michael@0: (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed michael@0: to fallback. Originally, legacy MacOS font is tested in the cases michael@0: of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty) michael@0: or FT_Err_Unknown_File_Format (occurs when AppleSingle header or michael@0: .dfont header is combined). Now the case of michael@0: FT_Err_Cannot_Open_Stream is included. michael@0: michael@0: * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL, michael@0: skip FT_Stream_Seek(), which seeks to the head of stream, and michael@0: proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek() michael@0: for a NULL stream causes a Bus error on Mac OS X. michael@0: (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream michael@0: immediately if passed stream is NULL. michael@0: (raccess_guess_apple_single): Ditto. michael@0: michael@0: 2007-11-16 suzuki toshiya michael@0: michael@0: Fix for Carbon incompatibilities since Mac OS X 10.5, michael@0: proposed by Sean McBride. michael@0: michael@0: * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET. michael@0: michael@0: * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and michael@0: FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling michael@0: Carbon functions from a forked process is classified as unsafe michael@0: by Apple. All Carbon-dependent functions should be deprecated. michael@0: michael@0: * src/base/ftmac.c: Use essential header files michael@0: and michael@0: instead of michael@0: all-in-one header file . michael@0: michael@0: Include and replace HFS_MAXPATHLEN by Apple michael@0: genuine macro PATH_MAX. michael@0: michael@0: Add fallback macro for kATSOptionFlagsUnRestrictedScope which michael@0: is not found in Mac OS X 10.0. michael@0: michael@0: Multi-character constants ('POST', 'sfnt' etc) are replaced by michael@0: 64bit constants calculated by FT_MAKE_TAG() macro. michael@0: michael@0: For the index in the segment of resource fork, new portable michael@0: type ResourceIndex is introduced for better compatibility. michael@0: This type is since Mac OS X 10.5, so it is defined as short michael@0: when built on older platforms. michael@0: michael@0: (FT_ATSFontGetFileReference): If build target is only the systems michael@0: 10.5 and newer, it calls Apple genuine ATSFontGetFileReference(). michael@0: michael@0: (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5 michael@0: and newer or 64bit platform, because legacy type FSSpec type is michael@0: removed completely. michael@0: michael@0: (FT_New_Face_From_FSSpec): Ditto. michael@0: michael@0: 2007-11-01 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This michael@0: fixes Savannah bug #21485. michael@0: michael@0: 2007-10-29 Daniel Svoboda michael@0: michael@0: * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver michael@0: can handle the font at all, then check `face_index'. Otherwise, the michael@0: driver might return the wrong error code. This fixes Savannah bug michael@0: #21468. michael@0: michael@0: 2007-10-21 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare michael@0: support for bit 8 of the `fsSelection' field in the `OS/2' table. michael@0: MS is already using this; hopefully, this becomes part of OpenType michael@0: 1.5. michael@0: Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22 michael@0: (WWS_SUBFAMILY). michael@0: michael@0: 2007-10-20 Werner Lemberg michael@0: michael@0: * src/tools/docmaker/tohtml.py (html_header_2): Fix typo. michael@0: Add `td.left' element to CSS. michael@0: (toc_section_enter): Use it. michael@0: michael@0: 2007-10-18 David Turner michael@0: michael@0: * include/freetype/freetype.h, src/base/ftobjs.c: Rename API michael@0: functions related to cmap type 14 support to the michael@0: `FT_Object_ActionName' scheme: michael@0: michael@0: FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex michael@0: FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault michael@0: FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors michael@0: FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar michael@0: FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant michael@0: michael@0: Update documentation accordingly. michael@0: michael@0: * src/sfnt/ttcmap.c: Stronger cmap 14 validation. michael@0: Make the code a little more consistent with FreeType coding michael@0: conventions and modify the cmap14 functions that returned a newly michael@0: allocated array to use a persistent vector from the TT_CMap14 object michael@0: instead. michael@0: michael@0: (TT_CMap14Rec): Provide array and auxiliary data for result. michael@0: (tt_cmap14_done, tt_cmap14_ensure): New functions. michael@0: michael@0: (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary, michael@0: tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant, michael@0: tt_cmap14_char_var_index, tt_cmap14_variants, michael@0: tt_cmap14_char_variants, tt_cmap14_def_char_count, michael@0: tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, michael@0: tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved. michael@0: michael@0: 2007-10-15 George Williams michael@0: michael@0: Add support for cmap type 14. michael@0: michael@0: * devel/ftoption.h, include/freetype/config/ftoption.h michael@0: (TT_CONFIG_CMAP_FORMAT_14): New macro. michael@0: michael@0: * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc, michael@0: FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc, michael@0: FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New michael@0: support function prototypes. michael@0: (FT_CMap_ClassRec): Add them. michael@0: Update all users. michael@0: michael@0: * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New michael@0: macro. michael@0: michael@0: * include/freetype/freetype.h (FT_Get_Char_Variant_Index, michael@0: FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors, michael@0: FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API michael@0: functions. michael@0: michael@0: * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary michael@0: function. michael@0: (FT_Set_Charmap): Disallow cmaps of type 14. michael@0: (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault, michael@0: FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char, michael@0: FT_Get_Chars_Of_Variant): New API functions. michael@0: michael@0: * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros. michael@0: michael@0: (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate, michael@0: tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info, michael@0: tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary, michael@0: tt_cmap14_find_variant, tt_cmap14_char_var_index, michael@0: tt_cmap14_char_var_isdefault, tt_cmap14_variants, michael@0: tt_cmap14_char_variants, tt_cmap14_def_char_count, michael@0: tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, michael@0: tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and michael@0: structures for cmap 14 support. michael@0: (tt_cmap_classes): Register tt_cmap14_class_rec. michael@0: (tt_face_build_cmaps): One more error message. michael@0: michael@0: * docs/CHANGES: Mention cmap 14 support. michael@0: michael@0: 2007-10-01 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4 michael@0: charmap fails, do the loop again while searching a UCS-2 charmap. michael@0: This favours MS charmaps over Apple ones. michael@0: michael@0: 2007-08-29 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c: Introduction of abstract `short' data types, michael@0: ResFileRefNum and ResID. These types were introduced for Copland, michael@0: then backported to MPW. The variables exchanged with FileManager michael@0: QuickDraw frameworks are redefined by these data types. Patch was michael@0: proposed by Sean McBride. michael@0: * builds/mac/ftmac.c: Ditto. michael@0: michael@0: 2007-08-18 Werner Lemberg michael@0: michael@0: * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found michael@0: by Imran Yousaf. Fixes Savannah bug #20773. michael@0: michael@0: (otv_Lookup_validate): Correct handling of LookupType. Found by michael@0: Imran Yousaf. Fixes Savannah bug #20782. michael@0: michael@0: 2007-08-17 George Williams michael@0: michael@0: * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of michael@0: SingleSubstFormat1. michael@0: michael@0: 2007-08-11 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by michael@0: ${build-gcc} (unchecked) instead of by ${build}-gcc (checked). michael@0: Found by Ryan Hill. michael@0: michael@0: 2007-08-11 George Williams michael@0: michael@0: * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h michael@0: (otv_Coverage_validate): Add fourth argument to pass an expected michael@0: count value. Update all users. michael@0: Check glyph IDs. michael@0: (otv_ClassDef_validate): Check `StartGlyph'. michael@0: michael@0: * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID michael@0: checks. michael@0: michael@0: * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only michael@0: 56 constants. michael@0: (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate): michael@0: Check glyph IDs. michael@0: michael@0: 2007-08-08 Werner Lemberg michael@0: michael@0: * src/otvalid/otvbase.c, src/otvalid/otvcommn.c, michael@0: src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, michael@0: src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where michael@0: appropriate. Reported by George. michael@0: michael@0: * include/freetype/internal/fttrace.h: Define `trace_otvmath'. michael@0: michael@0: * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2007-08-08 George Williams michael@0: michael@0: Add `MATH' validating support to otvalid module. michael@0: michael@0: * include/freetype/tttags.h (TTAG_MATH): New macro. michael@0: * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro. michael@0: (FT_VALIDATE_OT): Updated. michael@0: michael@0: * src/otvalid/otmath.c: New file. michael@0: michael@0: * src/otvalid/otvalid.c: Include otvmath.c. michael@0: * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table. michael@0: michael@0: 2007-08-04 Werner Lemberg michael@0: michael@0: * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL. michael@0: Fixes Savannah bug #20686. michael@0: michael@0: 2007-08-03 Werner Lemberg michael@0: michael@0: * src/psnames/psmodule.c: Fix usage of michael@0: FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher. michael@0: michael@0: 2007-07-31 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c (open_face_from_buffer): The argument michael@0: `driver_name' is typed as `const char*' to match with the michael@0: callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT. michael@0: This is same with open_face_from_buffer in src/base/ftobjs.c. michael@0: Found and fixed by Sean McBride. michael@0: michael@0: 2007-07-28 Werner Lemberg michael@0: michael@0: * src/raster/ftraster.c (count_table): Make it conditional. michael@0: * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with michael@0: a preprocessor statement. michael@0: michael@0: 2007-07-27 Werner Lemberg michael@0: michael@0: * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before michael@0: first usage. From Savannah patch #6115. michael@0: michael@0: 2007-07-16 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2007-07-16 Derek Clegg michael@0: michael@0: Add new service for getting the ROS from a CID font. michael@0: michael@0: * include/freetype/config/ftheader.h (FT_CID_H): New macro. michael@0: * include/freetype/ftcid.h: New file. michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro. michael@0: * include/freetype/internal/services/svcid.h: New file. michael@0: michael@0: * src/base/ftcid.c: New file. michael@0: michael@0: * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H. michael@0: (cff_get_ros): New function. michael@0: (cff_service_cid_info): New service structure. michael@0: (cff_services): Register it. michael@0: michael@0: * src/cff/cffload.c (cff_font_done): Free registry and ordering. michael@0: michael@0: * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'. michael@0: michael@0: * modules.cfg (BASE_EXTENSIONS): Add ftcid.c. michael@0: michael@0: 2007-07-11 Derek Clegg michael@0: michael@0: Add support for postscript name service to CFF driver. michael@0: michael@0: * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H. michael@0: (cff_get_ps_name): New function. michael@0: (cff_service_ps_name): New service structure. michael@0: (cff_services): Register it. michael@0: michael@0: 2007-07-07 Werner Lemberg michael@0: michael@0: * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of michael@0: `target'. Reported by Sean McBride. michael@0: michael@0: 2007-07-06 Werner Lemberg michael@0: michael@0: * src/pfr/pfrcmap.c: Include pfrerror.h. michael@0: michael@0: * src/autofit/afindic.c: Add some external declarations to pacify michael@0: `make multi' compilation. michael@0: michael@0: * src/cid/cidgload.c (cid_load_glyph): Pacify compiler. michael@0: michael@0: * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c michael@0: (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP), michael@0: src/autofit/aflatin.c (af_latin_hints_compute_edges), michael@0: src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c michael@0: (tt_face_get_metrics), src/base/ftobjs.c (open_face) michael@0: [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler. michael@0: michael@0: * docs/release: Mention test compilation targets. michael@0: michael@0: 2007-07-04 Werner Lemberg michael@0: michael@0: * docs/PROBLEMS: Mention that some PS based fonts can't be michael@0: handled correctly by FreeType. michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Always allow a michael@0: recursion depth of 1. This was the maximum value in TrueType 1.0, michael@0: and some older fonts don't set this field correctly. michael@0: michael@0: * src/gxvalid/gxvmort1.c michael@0: (gxv_mort_subtable_type1_substTable_validate): Fix tracing message. michael@0: michael@0: 2007-07-03 Werner Lemberg michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize michael@0: `round' to pacify compiler. michael@0: michael@0: 2007-07-02 Werner Lemberg michael@0: michael@0: michael@0: * Version 2.3.5 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-5'. michael@0: michael@0: * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump michael@0: version number to 2.3.5. michael@0: michael@0: * README, Jamfile (RefDoc), builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, michael@0: builds/win32/visualce/index.html, michael@0: builds/win32/visualce/freetype.dsp, michael@0: builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:16:3. michael@0: michael@0: 2007-07-01 David Turner michael@0: michael@0: * include/freetype/freetype.h, src/base/ftpatent.c michael@0: (FT_Face_SetUnpatentedHinting): New function to dynamically change michael@0: the setting after a face is created. michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug michael@0: that created distortions in the bytecode interpreter results. michael@0: michael@0: 2007-06-30 David Turner michael@0: michael@0: * src/truetype/ttinterp.c (Ins_IUP): Add missing variable michael@0: initialization. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an michael@0: infinite loop in the case of degenerate fonts. michael@0: michael@0: 2007-06-26 Rahul Bhalerao michael@0: michael@0: Add autofit module for Indic scripts. This currently just reuses michael@0: the CJK-specific functions. michael@0: michael@0: * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New michael@0: macro. michael@0: * devel/ftoption.h: Synchronize with michael@0: include/freetype/config/ftoption.h. michael@0: michael@0: * src/autofit/afindic.c, src/autofit/afindic.h: New files. michael@0: michael@0: * src/autofit/afglobal.c, src/autofit/aftypes.h, michael@0: src/autofit/autofit.c: Updated. michael@0: michael@0: * src/autofit/Jamfile (_sources), * src/autofit/rules.mk michael@0: (AUTOF_DRV_SRC): Updated. michael@0: michael@0: 2007-06-23 David Turner michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Simple): Fix change from michael@0: 2007-06-16 that prevented the TrueType module from loading most michael@0: glyphs. michael@0: michael@0: 2007-06-20 Werner Lemberg michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28 michael@0: change. michael@0: michael@0: 2007-06-19 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_encoding): Handle one more error. michael@0: michael@0: 2007-06-19 Dmitry Timoshkov michael@0: michael@0: * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error michael@0: FNT_Err_Invalid_File_Format if file format was recognized but michael@0: the file doesn't contain any FNT(NE) or RT_FONT(PE) resources. michael@0: Add verbose debug logs to make it easier to debug failing load michael@0: attempts. michael@0: (FNT_Face_Init): A single FNT font can't contain more than 1 face, michael@0: so return an error if requested face index is > 0. michael@0: Do not do further attempt to load fonts if a previous attempt has michael@0: failed but returned error FNT_Err_Invalid_File_Format, i.e., the michael@0: file format has been recognized but no fonts found in the file. michael@0: michael@0: 2007-07-19 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c: Apply patches proposed by Sean McBride. michael@0: (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix michael@0: the compiler warnings against unused arguments. michael@0: (FT_ATSFontGetFileReference): Ditto. michael@0: (FT_GetFile_From_Mac_ATS_Name): Ditto. michael@0: (FT_New_Face_From_FSSpec): Ditto. michael@0: (lookup_lwfn_by_fond): Fix wrong comment. michael@0: Replace `const StringPtr' by more appropriate type michael@0: `ConstStr255Param'. michael@0: FSRefMakePathPath always returns UTF8 POSIX pathname in michael@0: Mach-O, thus HFS pathname support is dropped. michael@0: (count_faces): Remove HLock and HUnlock which is not michael@0: required on Mac OS X anymore. michael@0: (FT_New_Face_From_SFNT): Ditto. michael@0: (FT_New_Face_From_FOND): Ditto. michael@0: * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c, michael@0: except of HFS pathname support and HLock/HUnlock. michael@0: They are required on classic CFM environment. michael@0: michael@0: 2007-06-18 Werner Lemberg michael@0: michael@0: * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect michael@0: assertion. michael@0: (ps_parser_to_bytes): Fix error message. michael@0: michael@0: * src/type42/t42objs.c (T42_Open_Face): Handle one more error. michael@0: * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/. michael@0: Don't allow mixed binary and hex strings. michael@0: Handle string_size == 0 and string_buf == 0. michael@0: (t42_parse_encoding): Handle one more error. michael@0: michael@0: 2007-06-18 Werner Lemberg michael@0: michael@0: * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit michael@0: logic. michael@0: (ps_parser_load_field) : Skip delimiters michael@0: correctly. michael@0: (ps_parser_load_field_table): Use `fields->array_max' instead of michael@0: T1_MAX_TABLE_ELEMENTS to limit the number of arguments. michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_prepare): Fix change from michael@0: 2007-06-06. michael@0: michael@0: 2007-06-17 Werner Lemberg michael@0: michael@0: * src/tools/ftrandom.c (font_size): New global variable. michael@0: (TestFace): Use it. michael@0: (main): Handle new option `--size' to set `font_size'. michael@0: (Usage): Updated. michael@0: michael@0: * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of michael@0: invalid font. michael@0: (FNT_Load_Glyph): Protect against invalid bitmap width. michael@0: michael@0: 2007-06-16 David Turner michael@0: michael@0: * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline): michael@0: Prevent integer overflows when rendering very large outlines. michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the michael@0: well-formedness of the contours array when loading a glyph. michael@0: michael@0: * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1', michael@0: and `zp2'. michael@0: (Ins_IP): Check argument ranges to reject bogus operations properly. michael@0: (IUP_WorkerRec): Add `max_points' member. michael@0: (_iup_worker_interpolate): Check argument ranges. michael@0: (Ins_IUP): Ignore empty outlines. michael@0: michael@0: 2007-06-16 Dmitry Timoshkov michael@0: michael@0: * src/winfonts/winfnt.h: Add necessary structures for PE resource michael@0: parsing. michael@0: (WinPE32_HeaderRec): New structure. michael@0: (WinPE32_SectionRec): New structure. michael@0: (WinPE_RsrcDirRec): New structure. michael@0: (WinPE_RsrcDirEntryRec): New structure. michael@0: (WinPE_RsrcDataEntryRec): New structure. michael@0: (FNT_FontRec): Remove unused `size_shift' field. michael@0: michael@0: * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for michael@0: loading bitmap .fon files in PE format. michael@0: michael@0: 2007-06-15 Dmitry Timoshkov michael@0: michael@0: * builds/win32/ftdebug.c: Unify debug level handling with other michael@0: platforms. michael@0: michael@0: 2007-06-14 Dmitry Timoshkov michael@0: michael@0: * builds/win32/ftdebug.c (FT_Message): Send debug output to the michael@0: console as well as to the debugger. michael@0: michael@0: 2007-06-14 Werner Lemberg michael@0: michael@0: * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to michael@0: cover all ranges which could possibly be handled by the aflatin michael@0: module (since the default fallback for unknown ranges is now the michael@0: afcjk module). It might be necessary to fine-tune this further by michael@0: splitting off modules for Greek, Cyrillic, or other blocks. michael@0: michael@0: 2007-06-11 David Turner michael@0: michael@0: * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix michael@0: incorrect segment linking computation. This was the root cause of michael@0: Savannah bug #19565. michael@0: michael@0: michael@0: * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes michael@0: to improve the Latin auto-hinter. Note that the new code is michael@0: disabled by default since it is not stabilized yet. michael@0: michael@0: * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files michael@0: (disabled currently). michael@0: michael@0: * src/autofit/afhints.c: Remove dead code. michael@0: (af_axis_hints_new_edge): Add argument to handle segment directions. michael@0: (af_edge_flags_to_string): New function. michael@0: (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle michael@0: option flags. michael@0: (af_glyph_hints_reload): Add argument to handle inflections. michael@0: Simplify. michael@0: (af_direction_compute): Fine tuning. michael@0: (af_glyph_hints_align_edge_points): Fix logic. michael@0: (af_glyph_hints_align_strong_points): Do linear search for small michael@0: edge counts. michael@0: (af_glyph_hints_align_weak_points): Skip any touched neighbors. michael@0: (af_iup_shift): Handle zero `delta'. michael@0: michael@0: * src/autofit/afhints.h: Updated. michael@0: (AF_SORT_SEGMENTS): New macro (disabled). michael@0: (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'. michael@0: michael@0: * src/autofit/afglobal.c (af_face_globals_get_metrics): Add michael@0: argument to pass option flags for handling scripts. michael@0: * src/autofit/afglobal.h: Updated. michael@0: michael@0: * src/autofit/afcjk.c: Updated. michael@0: * src/autofit/aflatin.c: Updated. michael@0: (af_latin_metrics_scale_dim): Don't reduce scale by 2%. michael@0: michael@0: (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code. michael@0: (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code. michael@0: Don't set `edge->dir' michael@0: (af_latin_hint_edges): Add more logging. michael@0: michael@0: * src/autofit/afloader.c: Updated. michael@0: michael@0: 2007-06-11 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Document FT_Face_CheckTrueTypePatents. michael@0: michael@0: 2007-06-10 David Turner michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to michael@0: the TrueType glyph loader. michael@0: michael@0: * include/freetype/config/ftoption.h: Clarify documentation michael@0: regarding unpatented hinting. michael@0: michael@0: michael@0: Add new `FT_Face_CheckTrueTypePatents' API. michael@0: michael@0: * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New michael@0: declaration. michael@0: michael@0: * include/freetype/internal/services/svttglyf.h, michael@0: src/base/ftpatent.c: New files. michael@0: michael@0: * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H): michael@0: New macro. michael@0: michael@0: * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and michael@0: `ttpload.h'. michael@0: (tt_service_truetype_glyf): New service structure. michael@0: (tt_services): Register it. michael@0: michael@0: * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add michael@0: `ftpatent.c'. michael@0: michael@0: 2007-06-08 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28. michael@0: Fonts without a cmap must be handled correctly by FreeType (anything michael@0: else would be a bug). michael@0: michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings) michael@0: [FT_DEBUG_LEVEL_TRACE]: Improve tracing message. michael@0: michael@0: 2007-06-07 Werner Lemberg michael@0: michael@0: * src/sfnt/ttsbit0.c (tt_sbit_decoder_init, michael@0: tt_sbit_decoder_load_image): Protect against integer overflows. michael@0: michael@0: michael@0: * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks michael@0: for `x_control' and `y_control'. michael@0: michael@0: 2007-06-06 Werner Lemberg michael@0: michael@0: * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'. michael@0: michael@0: michael@0: * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal michael@0: FreeType error. michael@0: michael@0: michael@0: * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of michael@0: `font_count'. michael@0: michael@0: michael@0: * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'. michael@0: michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_prepare): Change return type to michael@0: `FT_Error'. michael@0: Check `fd_index'. michael@0: (cff_slot_load): Updated. michael@0: * src/cff/cffgload.h: Updated. michael@0: michael@0: 2007-06-05 Werner Lemberg michael@0: michael@0: * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code. michael@0: (pfr_glyph_load_simple): Convert assertion into normal FreeType michael@0: error. michael@0: Check `idx'. michael@0: (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to): michael@0: Convert assertion into normal FreeType error. michael@0: michael@0: * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code. michael@0: michael@0: michael@0: * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'. michael@0: michael@0: michael@0: * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1 michael@0: in case of parsing error. michael@0: (ps_parser_load_field): Updated. michael@0: michael@0: * src/type1/t1load.c (parse_font_matrix): Updated. michael@0: michael@0: 2007-06-04 Werner Lemberg michael@0: michael@0: * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'. michael@0: michael@0: * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'. michael@0: michael@0: 2007-06-03 Werner Lemberg michael@0: michael@0: * src/tools/ftrandom/*: Add the `ftrandom' test program written by michael@0: George Williams (with some modifications). michael@0: michael@0: 2007-06-03 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c michael@0: (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for michael@0: face == NULL. Suggested by Graham Asher. michael@0: michael@0: 2007-06-03 Ismail Dönmez michael@0: michael@0: * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning. michael@0: michael@0: 2007-06-02 Werner Lemberg michael@0: michael@0: * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header, michael@0: FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files. michael@0: michael@0: * src/bdf/bdflib.c (bdf_load_font): Use them. michael@0: michael@0: * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better. michael@0: michael@0: 2007-06-01 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c michael@0: (FTC_CMapCache_Lookup): Remove unused code. michael@0: michael@0: 2007-06-01 Sean McBride michael@0: michael@0: * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed, michael@0: unused. michael@0: michael@0: 2007-06-01 Werner Lemberg michael@0: michael@0: * src/cid/cidparse.c (cid_parser_new): Don't continue second search michael@0: pass for `StartData' if an error has occurred. michael@0: Exit properly if no `StartData' has been seen at all. michael@0: michael@0: * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but michael@0: LONG_MAX to avoid compiler warning. Suggested by Sean McBride. michael@0: michael@0: 2007-05-30 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect michael@0: against too small binary data strings. michael@0: michael@0: * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better. michael@0: michael@0: 2007-05-28 David Turner michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): Do not apply the identity michael@0: transformation. This significantly reduces the loading time of CFF michael@0: glyphs. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default michael@0: hinting script to CJK, since it works well with more scripts than michael@0: latin. Thanks to Rahul Bhalerao for pointing michael@0: this out! michael@0: michael@0: 2007-05-25 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2007-05-24 Werner Lemberg michael@0: michael@0: * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration michael@0: into TT_USE_BYTECODE_INTERPRETER preprocessor block. michael@0: michael@0: 2007-05-24 Graham Asher michael@0: michael@0: * src/truetype/ttobjs.c (tt_size_ready_bytecode) michael@0: [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused. michael@0: michael@0: 2007-05-22 David Turner michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to michael@0: avoid crashes in case the bytecode interpreter is not used. michael@0: michael@0: michael@0: Avoid heap blowup with very large .Z font files. This fixes michael@0: Savannah bug #19910. michael@0: michael@0: * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor', michael@0: `in_limit', `pad', `pad_bits', and `in_buff' members. michael@0: Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and michael@0: `buf_total' members. michael@0: michael@0: * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes michael@0: only one argument. michael@0: (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated. michael@0: michael@0: 2007-05-20 Ismail Dönmez michael@0: michael@0: * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'. michael@0: (ps_dimension_set_mask_bits): Remove `const'. michael@0: michael@0: 2007-05-19 Werner Lemberg michael@0: michael@0: * src/sfnt/ttmtx.c (tt_face_get_metrics) michael@0: [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix. michael@0: michael@0: 2007-05-19 Derek Clegg michael@0: michael@0: Savannah patch #5929. michael@0: michael@0: * include/freetype/tttables.h, src/base/ftobjcs.c michael@0: (FT_Get_CMap_Format): New function. michael@0: michael@0: * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add michael@0: `format' member. michael@0: * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set michael@0: cmap_info->format. michael@0: michael@0: 2007-05-19 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state michael@0: before handling subglyphs so that it can be reinitialized each time. michael@0: This fixes Savannah bug #19859. michael@0: michael@0: 2007-05-16 Werner Lemberg michael@0: michael@0: * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink), michael@0: src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h michael@0: (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init), michael@0: src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea, michael@0: tt_face_get_metrics): Fix type-punning issues. michael@0: michael@0: 2007-05-15 David Turner michael@0: michael@0: * include/freetype/config/ftstdlib.h, michael@0: include/freetype/internal/ftobjs.h: As suggested by Graham Asher, michael@0: ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values michael@0: instead on relying on the locale-dependent functions provided by michael@0: . michael@0: michael@0: 2007-05-15 Graham Asher michael@0: michael@0: * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused michael@0: variable. michael@0: * src/autofit/afloader.c (af_loader_load_g): Ditto. michael@0: michael@0: * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'. michael@0: (open_face_from_buffer): Initialize `stream'. michael@0: (FT_Request_Metrics): Remove unused variable. michael@0: Remove redundant `break' statements. michael@0: (FT_Get_Track_Kerning): Remove unused variable. michael@0: michael@0: * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs, michael@0: afm_parse_kern_data): Remove redundant michael@0: `break' statements. michael@0: (afm_parser_parse): Ditto. michael@0: Don't use uninitialized variables. michael@0: michael@0: * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long. michael@0: Use `|' operator instead of `^' to set it. michael@0: Update all users. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'. michael@0: * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable. michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant michael@0: comparison. michael@0: (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'. michael@0: (TT_Load_Glyph): Remove unused variable. michael@0: michael@0: 2007-05-13 Derek Clegg michael@0: michael@0: * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool michael@0: if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928. michael@0: michael@0: 2007-05-11 David Turner michael@0: michael@0: * src/cache/ftbasic.c, include/freetype/ftcache.h michael@0: (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new michael@0: functions that allow us to look up glyphs using an FTC_Scaler object michael@0: to specify the size, making it possible to use fractional pixel michael@0: sizes. michael@0: michael@0: * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set michael@0: `size->cvt_ready'. Reported by Boris Letocha. michael@0: michael@0: 2007-05-09 Graham Asher michael@0: michael@0: * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c michael@0: (af_latin_metrics_scale_dim): Fix compiler warnings. michael@0: michael@0: 2007-05-06 Werner Lemberg michael@0: michael@0: * builds/win32/visualce/freetype.sln: Removed, as requested by michael@0: Vincent. michael@0: michael@0: 2007-05-04 Vincent RICHOMME michael@0: michael@0: * builds/win32/visualce/*: Add Visual C++ project files for Pocket michael@0: PC targets. michael@0: michael@0: * docs/CHANGES: Document them. michael@0: michael@0: 2007-05-04 michael@0: michael@0: * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of michael@0: mmap (which might happen on some RTOS). From Savannah patch #5909. michael@0: michael@0: 2007-05-03 Werner Lemberg michael@0: michael@0: * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code. michael@0: * include/freetype/freetype.h (FT_Set_Char_Size): Update michael@0: documentation. michael@0: michael@0: 2007-04-28 Victor Stinner michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading michael@0: `cmap'. michael@0: michael@0: 2007-04-27 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative michael@0: number of points in contours. Problem reported by Victor Stinner michael@0: . michael@0: (TT_Process_Simple_Glyph): Synchronize variable types. michael@0: michael@0: 2007-04-26 Werner Lemberg michael@0: michael@0: * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to michael@0: zero in case of error. This fixes Savannah bug #19689. michael@0: michael@0: 2007-04-25 Boris Letocha michael@0: michael@0: * src/truetype/ttobjs.c: Fix a typo that created a speed regression michael@0: in the TrueType bytecode loader. michael@0: michael@0: 2007-04-10 Martin Horak michael@0: michael@0: * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]: michael@0: Ignore `hhea' table. This fixes Savannah bug #19261. michael@0: michael@0: 2007-04-09 Werner Lemberg michael@0: michael@0: michael@0: * Version 2.3.4 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-4'. michael@0: michael@0: * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump michael@0: version number to 2.3.4. michael@0: michael@0: * README, Jamfile (RefDoc), builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:15:3. michael@0: michael@0: 2007-04-09 Martin Horak michael@0: michael@0: * src/truetype/ttgload.c (load_truetype_glyph): Save and restore michael@0: memory stream to avoid a crash with the incremental memory michael@0: interface (Savannah bug #19260). michael@0: michael@0: 2007-04-06 David Turner michael@0: michael@0: * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug michael@0: (Savannah bug #19536). michael@0: michael@0: 2007-04-04 Werner Lemberg michael@0: michael@0: michael@0: * Version 2.3.3 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-3'. michael@0: michael@0: * docs/CHANGES: Mention CVE-2007-1351. michael@0: michael@0: 2007-04-03 David Turner michael@0: michael@0: * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos, michael@0: if one of the resolution values is 0, treat it as if it were the michael@0: same as the other value. michael@0: michael@0: 2007-04-02 David Turner michael@0: michael@0: Add special code to detect `extra-light' fonts and do not snap their michael@0: stem widths too much to avoid bizarre hinting effects. michael@0: michael@0: * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and michael@0: `extra_light' members. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize michael@0: them. michael@0: (af_latin_metrics_scale_dim): Set `extra_light'. michael@0: (af_latin_compute_stem_width): Use `extra_light'. michael@0: michael@0: 2007-03-28 David Turner michael@0: michael@0: * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the michael@0: padding. michael@0: michael@0: 2007-03-28 Werner Lemberg michael@0: michael@0: * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128 michael@0: gracefully. michael@0: (_bdf_set_default_spacing): Increase `name' buffer size to 256 and michael@0: issue an error for longer names. This fixes CVE-2007-1351. michael@0: (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the michael@0: number of code points in Unicode. michael@0: michael@0: * builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/, michael@0: s/232/233/. michael@0: michael@0: * docs/CHANGES: Mention ftdiff. michael@0: michael@0: 2007-03-26 David Turner michael@0: michael@0: * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and michael@0: corresponding code. michael@0: (Ins_MD): Last regression fix. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues michael@0: computations in order to ignore single-point contours. These are michael@0: never rasterized and correspond in certain fonts to mark-attach michael@0: points that are very far from the glyph's real outline, ruining the michael@0: computation. michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g): In the case of michael@0: monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0. michael@0: Otherwise code that uses them will most certainly ruin the fixed michael@0: advance property. michael@0: michael@0: * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update michael@0: documentation and bump version number to 2.3.3. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:14:3. michael@0: michael@0: 2007-03-26 suzuki toshiya michael@0: michael@0: * builds/unix/ftconfig.in: Disable Carbon framework dependency on michael@0: 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride. michael@0: * builds/vms/ftconfig.h: Ditto. michael@0: * include/freetype/config/ftconfig.h: Ditto. michael@0: michael@0: 2007-03-22 suzuki toshiya michael@0: michael@0: * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent michael@0: 32bit unsigned long overflow by 64bit filesize on LP64 platform, as michael@0: proposed by Sean McBride: michael@0: http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html michael@0: michael@0: 2007-03-22 suzuki toshiya michael@0: michael@0: * builds/unix/ftconfig.in: Suppress SGI compiler's warning against michael@0: setjmp, proposed by Sean McBride: michael@0: http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html michael@0: michael@0: 2007-03-19 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of michael@0: conftest.c, to avoid unexpected shell evaluation. Possibly it is a michael@0: bug or undocumented behaviour of autoconf. michael@0: michael@0: 2007-03-18 David Turner michael@0: michael@0: * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression michael@0: fix; testing still needed. michael@0: michael@0: * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix. michael@0: michael@0: 2007-03-17 David Turner michael@0: michael@0: * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the michael@0: (undocumented) twilight zone special case. michael@0: michael@0: 2007-03-09 Werner Lemberg michael@0: michael@0: michael@0: * Version 2.3.2 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-2'. michael@0: michael@0: * builds/win32/visualc/index.html, michael@0: builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/, michael@0: s/231/232/. michael@0: michael@0: 2007-03-08 David Turner michael@0: michael@0: * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:13:3. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. michael@0: michael@0: * README, Jamfile (RefDoc): s/2.3.1/2.3.2/. michael@0: michael@0: * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the michael@0: function to work properly, over-writing user-provided buffers in michael@0: some cases. Reported by James Cloos . michael@0: michael@0: michael@0: 2007-03-05 Werner Lemberg michael@0: michael@0: * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper michael@0: macro for `strstr'. michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning michael@0: `trick_names', as suggested by Ivan Nincic. michael@0: michael@0: 2007-03-05 David Turner michael@0: michael@0: * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in michael@0: case FT_Init_FreeType fails for some reason. Problem reported by michael@0: Maximilian Schwerin . michael@0: michael@0: * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem' michael@0: and `y_ppem' fields of the `TT_Size.metrics' structure, not those of michael@0: `TT_Size.root.metrics'. Problem reported by Daniel Glöckner michael@0: . michael@0: michael@0: * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit michael@0: signed values, not unsigned ones. Problem reported by Johannes michael@0: Walther . michael@0: michael@0: 2007-02-21 David Turner michael@0: michael@0: * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting michael@0: of small and ghost stems in the Postscript interpreter. michael@0: michael@0: 2007-02-20 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory michael@0: leak, patch by "Jjgod Jiang" . michael@0: * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto. michael@0: michael@0: 2007-02-16 Werner Lemberg michael@0: michael@0: * src/truetype/ttinterp.c (Ins_MD): Remove unused variable. michael@0: * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto. michael@0: michael@0: 2007-02-14 David Turner michael@0: michael@0: It seems that the following changes fix most of the known michael@0: interpreter problems with my fonts, but more testing is needed, michael@0: though. michael@0: michael@0: * src/truetype/ttinterp.c (FIX_BYTECODE): Activate. michael@0: (TT_MulFix14): Rewrite. michael@0: (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated. michael@0: (Ins_MIRP): Ditto. michael@0: michael@0: 2007-02-12 Werner Lemberg michael@0: michael@0: * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler michael@0: warnings. michael@0: michael@0: * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c michael@0: (bdf_interpret_style): Ditto. michael@0: michael@0: 2007-02-12 David Turner michael@0: michael@0: Simplify projection and dual-projection code interface. michael@0: michael@0: * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not michael@0: FT_Vector' as argument type. michael@0: * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj): michael@0: Updated. michael@0: (CUR_fast_project, CUR_fast_dualproj): New macros. michael@0: (Project, Dual_Project, Project_x, Project_y): Updated. michael@0: (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast' michael@0: macros. michael@0: michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g): Improve spacing michael@0: adjustments for the non-light auto-hinted modes. Gets rid of michael@0: `inter-letter spacing is too wide' problems. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_hints_link_segments, michael@0: af_latin_hints_compute_edges): Slight optimization of the segment michael@0: linker and better handling of serif segments to get rid of broken michael@0: `9' in Arial at 9pt (96dpi). michael@0: michael@0: michael@0: Introduce new string functions and the corresponding macros to get michael@0: rid of various uses of strcpy and other `evil' functions, as well as michael@0: to simplify a few things. michael@0: michael@0: * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup, michael@0: ft_mem_strcpyn): New declarations. michael@0: (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New michael@0: macros. michael@0: * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New michael@0: functions. michael@0: michael@0: * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init), michael@0: src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c michael@0: (pcf_get_properties, pcf_interpret_style, pcf_load_font), michael@0: src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c michael@0: (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy), michael@0: src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c michael@0: (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name, michael@0: t42_get_name_index): Use new functions and simplify code. michael@0: michael@0: * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN. michael@0: michael@0: 2007-02-11 Werner Lemberg michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g): Don't change width for michael@0: non-spacing glyphs. michael@0: michael@0: 2007-02-07 Tom Parker michael@0: michael@0: * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL michael@0: pointer. michael@0: michael@0: 2007-02-05 suzuki toshiya michael@0: michael@0: * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE): michael@0: Introduce __attribute((deprecated))__ to warn functions michael@0: which use non-ANSI data types in its interfaces. michael@0: (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec. michael@0: (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec. michael@0: (FT_New_Face_From_FSSpec): Deprecated, using FSSpec. michael@0: (FT_New_Face_From_FSRef): Deprecated, using FSRef. michael@0: michael@0: * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void michael@0: to avoid warning in building FreeType. michael@0: * builds/mac/ftmac.c: Ditto. michael@0: michael@0: 2007-02-05 suzuki toshiya michael@0: michael@0: * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured michael@0: `--with-fsspec' etc. Replace #include "ftmac.c" with michael@0: #include . michael@0: michael@0: 2007-02-05 suzuki toshiya michael@0: michael@0: * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name): michael@0: Introduced as replacement of FT_GetFile_From_Mac_ATS_Name. michael@0: * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto. michael@0: (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of michael@0: FT_GetFilePath_From_Mac_ATS_Name. michael@0: * builds/mac/ftmac.c: Ditto. michael@0: michael@0: 2007-02-05 suzuki toshiya michael@0: michael@0: * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of michael@0: FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are michael@0: for passing to FT_New_Face_From_FSSpec. michael@0: michael@0: 2007-02-05 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw: Check whether Mac OS X system headers michael@0: can be built under ANSI C mode. michael@0: michael@0: * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version michael@0: compatible to ANSI C in case system headers are ANSI C incompatible. michael@0: * builds/mac/ftmac.c (OS_INLINE): Ditto. michael@0: michael@0: 2007-02-01 Werner Lemberg michael@0: michael@0: * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN): michael@0: Explain why applications shouldn't use it. Found by Alexei. michael@0: michael@0: 2007-02-01 Alexei Podtelezhnikov michael@0: michael@0: * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning michael@0: message. michael@0: michael@0: * src/gxvalid/gxvmort1.c michael@0: (gxv_mort_subtable_type1_substTable_validate): Fix debugging michael@0: message. michael@0: michael@0: 2007-01-31 Werner Lemberg michael@0: michael@0: michael@0: * Version 2.3.1 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-1-FINAL'. michael@0: michael@0: * builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj: s/230/231/. michael@0: * builds/win32/visualc/index.html: s/221/231/. michael@0: michael@0: * vms_make.com: Add `ftgasp'. michael@0: michael@0: 2007-01-30 David Turner michael@0: michael@0: Tag sources with VER-2-3-1 to prepare release. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. michael@0: michael@0: * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc): michael@0: s/2.3.0/2.3.1/. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:12:3. michael@0: michael@0: michael@0: * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c michael@0: (af_loader_load_g): Disable the warper (i.e., the light hinting michael@0: improvements) to make a 2.3.1 bugfix release before introducing a michael@0: new feature. This should give us more time to tune and improve the michael@0: warper for the next release. michael@0: michael@0: * docs/CHANGES: Update accordingly. michael@0: michael@0: 2007-01-25 David Turner michael@0: michael@0: For light auto-hinting, improve glyph advance widths and resurrect michael@0: normal/full hinting to its normal quality. michael@0: michael@0: * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta' michael@0: and `xmax_delta'. michael@0: * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta' michael@0: and `xmax_delta'. michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g) : Replace michael@0: preprocessor conditional with if-clause, handling both light and michael@0: normal mode. michael@0: michael@0: * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again. michael@0: (af_warper_compute): Handle `xmin_delta' and `xmax_delta'. michael@0: michael@0: 2007-01-25 Werner Lemberg michael@0: michael@0: * docs/release: Updated -- Savannah uses a new uploading scheme. michael@0: michael@0: 2007-01-25 David Turner michael@0: michael@0: * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix. michael@0: michael@0: * src/cff/cffgload.c (cff_decoder_parse_charstrings) michael@0: : Fix sanity check for empty michael@0: functions. michael@0: michael@0: * docs/CHANGES: Document light auto-hinting improvement. michael@0: michael@0: 2007-01-25 Werner Lemberg michael@0: michael@0: * src/cff/cffload.c (cff_index_get_pointers): Handle last entry michael@0: correctly in a sanity check. Since this function is only used to michael@0: load local and global functions, any charstring that called the last michael@0: local/global function would fail otherwise. This fixes Savannah bug michael@0: #18867. michael@0: michael@0: * docs/CHANGES: Document it. michael@0: michael@0: 2007-01-23 David Turner michael@0: michael@0: * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that michael@0: prevented compilation when disabling both the unpatented and the michael@0: bytecode interpreter in the TrueType font driver. michael@0: michael@0: michael@0: Fix and enable the warper to improve `light' hinting mode. This is michael@0: not necessarily a final version, but it seems to work well. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]: michael@0: Disable code. michael@0: (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT. michael@0: * src/autofit/aftypes.h: Activate AF_USE_WARPER. michael@0: michael@0: * src/autofit/afwarp.c (AF_WarpScore): Tune table. michael@0: (af_warper_compute_line_best): Fix array size of `scores'. michael@0: (af_warper_compute): Better handling of border cases. michael@0: * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1' michael@0: and `X2'. michael@0: michael@0: 2007-01-21 Werner Lemberg michael@0: michael@0: * ChangeLog: Split off older entries into... michael@0: * ChangeLog.22: This new file. michael@0: michael@0: 2007-01-21 Werner Lemberg michael@0: michael@0: * docs/CHANGES: Document SHZ fix. michael@0: michael@0: 2007-01-21 George Williams michael@0: michael@0: * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom michael@0: points. michael@0: michael@0: 2007-01-21 Werner Lemberg michael@0: michael@0: * src/sfnt/ttmtx.c (tt_face_get_metrics) michael@0: [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check. michael@0: michael@0: 2007-01-17 Werner Lemberg michael@0: michael@0: michael@0: * Version 2.3.0 released. michael@0: ========================= michael@0: michael@0: michael@0: Tag sources with `VER-2-3-0-FINAL'. michael@0: michael@0: 2007-01-17 Werner Lemberg michael@0: michael@0: * docs/release: Updated. michael@0: michael@0: 2007-01-16 David Turner michael@0: michael@0: * src/autofit/aflatin.c (af_latin_hints_compute_segments), michael@0: src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c michael@0: (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler michael@0: warnings. michael@0: michael@0: 2007-01-15 Detlef Würkner michael@0: michael@0: * builds/amiga/makefile, builds/amiga/makefile.os4, michael@0: builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'. michael@0: michael@0: * builds/amiga/include/freetype/config/ftconfig.h: Synchronize. michael@0: michael@0: 2007-01-14 Detlef Würkner michael@0: michael@0: Fix various compiler warnings. michael@0: michael@0: * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h, michael@0: src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h: michael@0: s/index/strike_index/. michael@0: * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/. michael@0: michael@0: * src/gxvalid/gxvmorx5.c michael@0: (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/. michael@0: michael@0: * src/truetype/ttinterp.c (Compute_Point_Displacement), michael@0: src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly michael@0: uninitialized variables. michael@0: michael@0: 2007-01-13 suzuki toshiya michael@0: michael@0: * docs/CHANGES, docs/INSTALL.MAC: Improvements. michael@0: michael@0: 2007-01-13 Werner Lemberg michael@0: michael@0: * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM michael@0: versions up to 0x3FF without complaining. michael@0: michael@0: 2007-01-13 Derek Clegg michael@0: michael@0: Add FT_Get_PS_Font_Info interface to CFF driver. michael@0: michael@0: * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H. michael@0: (CFF_FontRec): Add `font_info' field. michael@0: michael@0: * src/cff/cffload.c: Include FT_TYPE1_TABLES_H. michael@0: (cff_font_done): Free font->font_info if necessary. michael@0: michael@0: * src/cff/cffdrvr.c (cff_ps_get_font_info): New function. michael@0: (cff_service_ps_info): Register cff_ps_get_font_info. michael@0: michael@0: 2007-01-13 Werner Lemberg michael@0: michael@0: * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation michael@0: with C++ compiler. michael@0: michael@0: * src/autofit/afhints.c (af_glyph_hints_dump_segments, michael@0: af_glyph_hints_dump_edges): Ditto. michael@0: michael@0: * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in michael@0: `modules.cfg'). michael@0: michael@0: * src/sfnt/ttsbit0.h: Remove. michael@0: michael@0: * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c. michael@0: michael@0: 2007-01-12 David Turner michael@0: michael@0: * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping michael@0: bug in the bitmap emboldener if the pitch of the source bitmap is michael@0: much larger than its width. michael@0: michael@0: * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related michael@0: compilation warning. michael@0: michael@0: 2007-01-12 Werner Lemberg michael@0: michael@0: * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from michael@0: `automake' CVS module from sources.redhat.com. michael@0: michael@0: 2007-01-11 Werner Lemberg michael@0: michael@0: * src/type1/t1load.c (is_space): Removed. michael@0: (parse_encoding, parse_charstrings): Use IS_PS_DELIM. michael@0: (parse_charstrings): Use IS_PS_TOKEN. michael@0: michael@0: michael@0: * autogen.sh: Avoid bash specific syntax. michael@0: michael@0: 2007-01-11 David Turner michael@0: michael@0: * docs/CHANGES: Small update. michael@0: michael@0: * builds/unix/configure.raw (version_info): Set to 9:11:3. michael@0: michael@0: * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a michael@0: crash with some Mac OS X .dfont files. Submitted by Masatake michael@0: Yamato. michael@0: michael@0: * autogen.sh: Small fix to get it working on Mac OS X properly: michael@0: The issue is that GNU libtool is called `glibtool' on this platform, michael@0: and we must call `glibtoolize', since `libtoolize' doesn't exist. michael@0: michael@0: 2007-01-10 David Turner michael@0: michael@0: * all-sources: Tag all sources with VER-2-3-0-RC1 and michael@0: VER-2-3-0. michael@0: michael@0: * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update michael@0: version number to 2.3.0. michael@0: michael@0: * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3. michael@0: (FREETYPE_PATCH): Set to 0. michael@0: michael@0: * include/freetype/ftchapters.h, include/freetype/ftgasp.h, michael@0: include/freetype/ftlcdfil.h: Update reference documentation with michael@0: GASP support and LCD filtering sections. michael@0: michael@0: * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo michael@0: which created an endless loop with some malformed font files. michael@0: michael@0: 2007-01-10 Derek Clegg michael@0: michael@0: * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed-point michael@0: values. michael@0: michael@0: 2007-01-08 David Turner michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add michael@0: a new API `FT_Get_Gasp' to return entries of the `gasp' table michael@0: corresponding to a given character pixel size. michael@0: michael@0: * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the michael@0: `gasp' table, in order to avoid potential problems with later michael@0: versions. michael@0: michael@0: * include/freetype/config/ftheader.h (FT_GASP_H): New macro for michael@0: . michael@0: michael@0: * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources), michael@0: modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp, michael@0: builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the michael@0: default build. michael@0: michael@0: 2007-01-07 Werner Lemberg michael@0: michael@0: * src/cid/cidparse.c (cid_parser_new): Improve error message for michael@0: Type 11 fonts. michael@0: Scan for `/sfnts' token. michael@0: michael@0: 2007-01-07 Werner Lemberg michael@0: michael@0: * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts. michael@0: michael@0: 2007-01-06 Werner Lemberg michael@0: michael@0: * src/cff/cffload.c (cff_index_init): Remove unused variable. michael@0: (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing. michael@0: michael@0: 2007-01-04 David Turner michael@0: michael@0: * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts michael@0: correctly. This fixes Savannah bug #17876. michael@0: michael@0: michael@0: Do not allocate interpreter-specific tables in memory if we are not michael@0: going to load glyphs with the bytecode interpreter anyway. michael@0: michael@0: * src/truetype/ttgload.c (tt_loader_init): Load execution context michael@0: only if glyph is hinted. michael@0: Updated. michael@0: * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready' michael@0: and `cvs_ready'. michael@0: Add `tt_size_ready_bytecode' declaration. michael@0: * src/truetype/ttobjs.c (tt_size_done_bytecode, michael@0: tt_size_init_bytecode, tt_size_ready_bytecode): New functions. michael@0: (tt_size_init): Move most code into `tt_size_init_bytecode'. michael@0: (tt_size_done): Move most code into `tt_size_done_bytecode'. michael@0: (tt_size_reset): Move some code to `tt_size_ready_bytecode'. michael@0: michael@0: michael@0: Don't extract the metrics table from the SFNT font file. Instead, michael@0: reparse it on each glyph load. The runtime difference is not michael@0: noticeable, and it can save a lot of heap memory when memory-mapped michael@0: files are not used. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_FaceRec): Add members michael@0: `horz_metrics_offset' and `vert_metrics_ofset'. michael@0: * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): michael@0: Updated. michael@0: michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization. michael@0: michael@0: michael@0: Do not load the CFF index offsets into memory, since this wastes a michael@0: *lot* of heap memory with large Asian CFF fonts. There is no michael@0: significant performance loss. michael@0: michael@0: * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration. michael@0: * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and michael@0: `data_size'. michael@0: (CFF_CharsetRec): Add field `num_glyphs'. michael@0: michael@0: * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets, michael@0: cff_charset_cid_to_gindex): New functions. michael@0: (cff_new_index): Renamed to... michael@0: (cff_index_init): This. Update all callers. michael@0: Updated -- some code has been moved to `cff_index_load_offsets'. michael@0: (cff_done_index): Renamed to... michael@0: (cff_index_done): This. Update all callers. michael@0: (cff_index_get_pointers, cff_index_access_element): Updated to use michael@0: stream offsets. michael@0: (cff_charset_compute_cids): Set `num_glyphs' field. michael@0: (cff_encoding_load): Updated. michael@0: michael@0: * src/cff/cffgload.c (cff_slot_load): Updated. michael@0: michael@0: 2007-01-04 David Turner michael@0: michael@0: * docs/INSTALL.UNIX: Simplify some parts, add reference to michael@0: autogen.sh and pointer to README.CVS. michael@0: michael@0: * README.CVS: Add common problem description and solution michael@0: when running autogen.sh. michael@0: michael@0: * docs/INSTALL: Add reference to MacOS X. michael@0: michael@0: * docs/MAKEPP, docs/INSTALL.MAC: New documentation files. michael@0: michael@0: * docs/TODO: Remove obsolete items. michael@0: michael@0: * src/raster/ftraster.c: (TRaster_Instance): Replace it with... michael@0: (TWorker): This. michael@0: Remove `count_table' and `memory'. michael@0: Make `grays' a pointer. michael@0: (TRaster): New structure. michael@0: (count_table): New static array. michael@0: (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras, michael@0: Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done, michael@0: ft_black_set_mode, ft_black_render): Updated. michael@0: (ft_black_init): Don't initialize `count_table'. michael@0: (ft_black_reset): Use the render pool. This saves about 6KB of michael@0: heap space for each FT_Library instance. michael@0: michael@0: * src/smooth/ftgrays.c (TRaster): Replaced with... michael@0: (TWorker): This. michael@0: Remove `memory'. michael@0: (TRaster): New structure. michael@0: michael@0: (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line, michael@0: gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to, michael@0: gray_render_span, gray_raster_render): Updated. michael@0: (gray_raster_reset): Use the render pool. This saves about 6KB of michael@0: heap space for each FT_Library instance. michael@0: michael@0: * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h, michael@0: src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h, michael@0: src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove michael@0: FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since michael@0: the optimization is no longer experimental. michael@0: michael@0: * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points): michael@0: Remove a typo that results in no hinting and a memory leak with some michael@0: large Asian CFF fonts. michael@0: michael@0: * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak michael@0: which happens when FT_Done_Library is called with still opened michael@0: CFF_Faces in it. We need to close all faces before destroying the michael@0: modules, or else some bad things (memory leaks) may happen. michael@0: michael@0: 2007-01-02 Werner Lemberg michael@0: michael@0: * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): michael@0: Remove compiler warning. michael@0: michael@0: 2007-01-02 David Turner michael@0: michael@0: * src/sfnt/sfobjs.c: Add documentation comment. michael@0: michael@0: 2006-12-31 Masatake YAMATO michael@0: michael@0: * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New michael@0: function. michael@0: Check uniqueness of the gid pairs. michael@0: (gxv_kern_subtable_fmt0_validate): Move some code to michael@0: `gxv_kern_subtable_fmt0_pairs_validate'. michael@0: michael@0: 2006-12-22 David Turner michael@0: michael@0: * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler michael@0: warnings. michael@0: michael@0: * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE michael@0: to avoid deprecation warnings with Visual C++ 8. michael@0: michael@0: 2006-12-16 Anders Kaseorg michael@0: michael@0: * src/base/ftlcdfil.c (FT_Library_SetLcdFilter) michael@0: [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo. michael@0: michael@0: 2006-12-15 suzuki toshiya michael@0: michael@0: * include/freetype/internal/services/svotval.h: Add `volatile' to michael@0: sync with the modification by Jens Claudius on 2006-08-22; cf. michael@0: http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5 michael@0: michael@0: 2006-12-15 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c: Specialized for Mac OS X only. michael@0: * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework. michael@0: * builds/unix/configure.raw: Ditto. When explicit switches for michael@0: FSSpec/FSRef/QuickDraw/ATS availability are given to configure, michael@0: builds/mac/ftmac.c is used instead of default src/base/ftmac.c. michael@0: michael@0: 2006-12-15 suzuki toshiya michael@0: michael@0: * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system. michael@0: * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c michael@0: instead of src/base/ftmac.c michael@0: * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. michael@0: * builds/mac/FreeType.ppc_classic.make.txt: Ditto. michael@0: * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c michael@0: that cannot be built at present. michael@0: michael@0: 2006-12-15 suzuki toshiya michael@0: michael@0: * src/base/ftobjs.c: Improvement of resource fork handler for michael@0: POSIX, cf. michael@0: http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html michael@0: (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font michael@0: format or .dfont, to simulate the face index number counted by ftmac.c. michael@0: (IsMacResource): Return the number of scalable faces correctly. michael@0: michael@0: 2006-12-10 Werner Lemberg michael@0: michael@0: * builds/toplevel.mk (version): Protect against `distclean' target. michael@0: michael@0: 2006-12-09 Werner Lemberg michael@0: michael@0: * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat' michael@0: or `type'. michael@0: michael@0: * builds/freetype.mk (version): Extracted from freetype.h, using michael@0: GNU make's built-in string functions. michael@0: (refdoc): Use $(version) instead of static version number. michael@0: michael@0: 2006-12-08 Werner Lemberg michael@0: michael@0: * builds/toplevel.mk (dist): Extract version number from freetype.h. michael@0: michael@0: 2006-12-08 Vladimir Volovich michael@0: michael@0: * src/tools/apinames.c (State): Remove final comma in structure -- michael@0: xlc v5 under AIX 4.3 doesn't like this. michael@0: michael@0: 2006-12-07 David Turner michael@0: michael@0: * src/autofit/afloader.c (af_loader_load_g): Small adjustment michael@0: to the spacing of auto-fitted glyphs. This only impacts rare michael@0: cases (e.g., Arial Bold at rather small character sizes). michael@0: michael@0: 2006-12-03 Werner Lemberg michael@0: michael@0: * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c. michael@0: michael@0: 2006-12-01 Werner Lemberg michael@0: michael@0: * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are michael@0: encoded in UTF-16BE. Patch from Rajeev Pahuja . michael@0: (tt_name_entry_ascii_from_ucs4): Removed. michael@0: michael@0: michael@0: * include/freetype/ftxf86.h: Fix and extend comment so that it michael@0: appears in the documentation. michael@0: michael@0: * include/freetype/ftchapters.h: Add `font_format' section. michael@0: michael@0: michael@0: * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link michael@0: to TOC in index page. michael@0: michael@0: 2006-11-28 David Turner michael@0: michael@0: * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are michael@0: trying to render into a zero-width/height bitmap, not an error code. michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch. michael@0: michael@0: * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType michael@0: ones instead. michael@0: michael@0: * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused michael@0: variable. michael@0: michael@0: 2006-11-26 Pierre Hanser michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer. michael@0: michael@0: 2006-11-25 David Turner michael@0: michael@0: * src/autofit/afhints.c (af_glyph_hints_dump_points, michael@0: af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]: michael@0: Add stubs to link the `ftgrid' test program when debugging is michael@0: disabled in the auto-hinter. michael@0: michael@0: 2006-11-23 David Turner michael@0: michael@0: * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c, michael@0: src/autofit/aftypes.h: Miscellaneous auto-hinter improvements. michael@0: michael@0: * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]: michael@0: Emit more sensible information. michael@0: michael@0: * src/autofit/afhints.h (AF_SegmentRec): Add `height' member. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve michael@0: rounding of blue values. michael@0: (af_latin_hints_compute_segments): Hint segment heights. michael@0: (af_latin_hints_link_segments): Reduce `len_score' value. michael@0: (af_latin_hints_compute_edges): Increase `segment_length_threshold' michael@0: value and use `height' member for comparisons. michael@0: (af_latin_hint_edges): Extend logging message. michael@0: Improve handling of remaining edges. michael@0: michael@0: 2006-11-22 Werner Lemberg michael@0: michael@0: Fix Savannah bug #15553. michael@0: michael@0: * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT michael@0: program after a change from mono to grayscaling (and vice versa). michael@0: Use correct constant for comparison to get `exec->grayscale'. michael@0: michael@0: 2006-11-18 Werner Lemberg michael@0: michael@0: Because FT_Load_Glyph expects CID values for CID-keyed fonts, the michael@0: test for a valid glyph index must be deferred to the font drivers. michael@0: This patch fixes Savannah bug #18301. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'. michael@0: * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c michael@0: (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph), michael@0: src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c michael@0: (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph), michael@0: src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c michael@0: (FNT_Load_Glyph): Check validity of `glyph_index'. michael@0: michael@0: 2006-11-13 David Turner michael@0: michael@0: * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter michael@0: `enhancements' are still too buggy for general use. michael@0: michael@0: * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and michael@0: FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros michael@0: when building the library to change the default LCD filter to be michael@0: used. This is only useful for experimentation. michael@0: michael@0: * include/freetype/ftlcdfil.h: Update documentation. michael@0: michael@0: 2006-11-10 David Turner michael@0: michael@0: * src/smooth/ftsmooth.c: API change for the LCD michael@0: filter. The FT_LcdFilter value is an enumeration describing which michael@0: filter to apply, with new values FT_LCD_FILTER_LIGHT and michael@0: FT_LCD_FILTER_LEGACY (the latter implements the LibXft original michael@0: algorithm which produces strong color fringes for everything michael@0: except very-well hinted text). michael@0: michael@0: * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change michael@0: second parameter to an enum type. michael@0: michael@0: * src/base/ftlcdfil.c (USE_LEGACY): Define. michael@0: (_ft_lcd_filter): Rename to... michael@0: (_ft_lcd_filter_fir): This. michael@0: Update parameters. michael@0: (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function. michael@0: (FT_Library_Set_LcdFilter): Update parameters. michael@0: Handle new filter modes. michael@0: michael@0: * include/internal/ftobjs.h: Include FT_LCD_FILTER_H. michael@0: (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'. michael@0: (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering michael@0: callback and update other fields. michael@0: michael@0: * src/smooth/ftsmooth.c (ft_smooth_render_generic) michael@0: [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update. michael@0: Other minor improvements. michael@0: michael@0: * src/autofit/aflatin.c: Various tiny improvements that drastically michael@0: improve the handling of serif fonts and of LCD/LCD_V hinting modes. michael@0: (af_latin_hints_compute_edges): Fix typo. michael@0: (af_latin_compute_stem_width): Take better care of diagonal stems. michael@0: michael@0: 2006-11-09 David Turner michael@0: michael@0: * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix michael@0: typo which created a variable-used-before-initialized bug. michael@0: michael@0: 2006-11-07 Zhe Su michael@0: michael@0: * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout michael@0: also. michael@0: michael@0: 2006-11-03 Werner Lemberg michael@0: michael@0: * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'. michael@0: michael@0: 2006-11-02 David Turner michael@0: michael@0: Add a few tweaks to better handle serif fonts. michael@0: Add more debugging messages. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore michael@0: segments that are less than 1.5 pixels high. This gets rid of michael@0: *many* corner cases with serifs. michael@0: (af_latin_align_linked_edge): Add logging message. michael@0: (af_latin_hint_edges): Use AF_HINTS_DO_BLUES. michael@0: Add logging messages. michael@0: Handle AF_EDGE_FLAG flag specially. michael@0: michael@0: * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug, michael@0: _af_debug_disable_blue_hints, and _af_debug_hints variables. michael@0: michael@0: * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug. michael@0: Update external declarations. michael@0: (af_corner_orientation, af_corner_is_flat): Replaced by... michael@0: michael@0: * include/freetype/internal/ftcalc.h (ft_corner_orientation, michael@0: ft_corner_is_flat): These declarations. michael@0: michael@0: * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat): michael@0: Comment out. Replaced by... michael@0: michael@0: * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat): michael@0: These functions. Update all callers. michael@0: (FT_Add64) [!FT_LONG64]: Simplify. michael@0: michael@0: * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H. michael@0: (af_direction_compute): Add a missing FT_ABS call. This bug caused michael@0: production of garbage by missing lots of segments. michael@0: michael@0: * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro. michael@0: michael@0: * src/autofit/afloader.c (af_loader_init, af_loader_done) michael@0: [AF_DEBUG]: Set _af_debug_hints. michael@0: michael@0: michael@0: * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H. michael@0: (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat michael@0: and ft_corner_orientation. michael@0: michael@0: michael@0: * src/gzip/inftrees.c (huft_build): Remove compiler warning. michael@0: michael@0: 2006-10-24 Werner Lemberg michael@0: michael@0: * src/cff/cffload.c (cff_encoding_load): Remove unused variable. michael@0: michael@0: * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE michael@0: as argument. michael@0: michael@0: 2006-10-23 Zhe Su michael@0: michael@0: * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to michael@0: better deal with broken Asian fonts with strange glyphs, having michael@0: self-intersections and other peculiarities. The used algorithm is michael@0: based on the nonzero winding rule. michael@0: michael@0: 2006-10-23 David Turner michael@0: michael@0: Speed up the CFF font loader. With some large CFF fonts, michael@0: FT_Open_Face is now more than three times faster. michael@0: michael@0: * src/cff/cffload.c (cff_get_offset): Removed. michael@0: (cff_new_index): Inline functionality of `cff_get_offset'. michael@0: (cff_charset_compute_cids, cff_charset_free_cids): New functions. michael@0: (cff_charset_done): Call `cff_charset_free_cids'. michael@0: (cff_charset_load): Call `cff_charset_compute_cids'. michael@0: (cff_encoding_load) : Ditto, to replace inefficient loop. michael@0: michael@0: * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX michael@0: with FT_NEXT_XXX. michael@0: michael@0: michael@0: Speed up the Postscript hinter, with more than 100% speed increase michael@0: on my machine. michael@0: michael@0: * src/pshinter/pshalgo.c (psh_corner_is_flat, michael@0: psh_corner_orientation): New functions. michael@0: (psh_glyph_compute_inflections): Merge loops for efficiency. michael@0: Use `psh_corner_orientation'. michael@0: (psh_glyph_init): Use `psh_corner_is_flat'. michael@0: (psh_hint_table_find_strong_point): Renamed to... michael@0: (psh_hint_table_find_strong_points): This. michael@0: Rewrite, adding argument to handle all points at once. michael@0: Update all callers. michael@0: (PSH_MAX_STRONG_INTERNAL): New macro. michael@0: (psh_glyph_interpolate_normal_points): Rewrite for efficiency. michael@0: michael@0: 2006-10-15 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable michael@0: `error' with FT_Err_Ok. michael@0: michael@0: 2006-10-14 suzuki toshiya michael@0: michael@0: * docs/INSTALL.CROSS: New document file for cross-building. michael@0: michael@0: * builds/unix/configure.raw: Preliminary cross-building support. michael@0: Find native C compiler and pass it by CC_BUILD, and michael@0: find suffix for native executable and pass it by EXEEXT_BUILD. michael@0: Also suffix for target executable is passed by EXEEXT. michael@0: michael@0: * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to michael@0: build `apinames' which runs on building system. They are set by michael@0: CC_BUILD and EXEEXT_BUILD. michael@0: michael@0: * builds/exports.mk (APINAMES_EXE): Change the extension for michael@0: apinames from the suffix for target (E) to that for building host michael@0: (E_BUILD). michael@0: michael@0: 2006-10-12 Werner Lemberg michael@0: michael@0: * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to... michael@0: * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents michael@0: which reference those files. michael@0: michael@0: 2006-10-12 suzuki toshiya michael@0: michael@0: * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is michael@0: embedded in freetype2.pc and freetype-config. Use it to record michael@0: Carbon dependency of MacOSX. michael@0: michael@0: * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS. michael@0: michael@0: * builds/unix/freetype-config.in: Ditto. michael@0: michael@0: 2006-10-11 Werner Lemberg michael@0: michael@0: * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for michael@0: development. michael@0: michael@0: 2006-10-03 Jens Claudius michael@0: michael@0: * include/freetype/config/ftstdlib.h: Cast away volatileness from michael@0: argument to ft_setjmp. michael@0: michael@0: * include/freetype/internal/ftvalid.h: Add comment that michael@0: ft_validator_run must not be used. michael@0: michael@0: 2006-10-01 Werner Lemberg michael@0: michael@0: * src/base/ftbase.c: Undo change from 2006-09-30. michael@0: michael@0: * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'. michael@0: michael@0: 2006-09-30 David Turner michael@0: michael@0: * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): michael@0: s/unpatented_hinting/ignore_unpatented_hinter/. michael@0: Update all callers. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether michael@0: auto-hinting shall be used or not. michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Ditto. michael@0: michael@0: 2006-09-30 Werner Lemberg michael@0: michael@0: * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer michael@0: in use). michael@0: michael@0: * src/base/ftbase.c: Include `ftlcdfil.c'. michael@0: michael@0: 2006-09-29 Werner Lemberg michael@0: michael@0: * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for michael@0: overlapping segments. Bug reported by Stefan Koch. michael@0: michael@0: 2006-09-28 David Turner michael@0: michael@0: Fix a bug in the automatic unpatented hinting support which prevents michael@0: normal bytecode hinting to work properly. michael@0: michael@0: * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): michael@0: s/force_autohint/unpatented_hinting/. Update all callers. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Updated code. michael@0: michael@0: * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces. michael@0: michael@0: 2006-09-27 David Turner michael@0: michael@0: * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2. michael@0: michael@0: michael@0: Add a new API to support color filtering of subpixel glyph bitmaps. michael@0: In a default build, the function `FT_Library_SetLcdFilter' returns michael@0: `FT_Err_Unimplemented_Feature'; you need to #define michael@0: FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the michael@0: real implementation. michael@0: michael@0: * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files. michael@0: michael@0: * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New michael@0: typedef. michael@0: (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members michael@0: `lcd_filter_weights' and `lcd_filter'. michael@0: michael@0: * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments michael@0: `hmul' and `vmul'. michael@0: michael@0: Handle subpixel rendering. michael@0: Simplify function. michael@0: (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'. michael@0: (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'. michael@0: michael@0: * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro, michael@0: pointing to . michael@0: michael@0: * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC), michael@0: vms_make.com: Add `ftlcdfil.c' to the list of compiled source files. michael@0: michael@0: * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c. michael@0: michael@0: 2006-09-26 David Bustin michael@0: michael@0: * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes michael@0: correctly. Reported as Savannah bug #17843. michael@0: michael@0: 2006-09-26 David Turner michael@0: michael@0: * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL, michael@0: AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable michael@0: horizontal and vertical hinting for the purpose of debugging the michael@0: auto-fitter. michael@0: michael@0: * src/autofit/afmodule.c (_af_debug_disable_horz_hints, michael@0: _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables. michael@0: michael@0: * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables. michael@0: michael@0: * include/freetype/config/ftoption.h, devel/ftoption.h michael@0: (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether michael@0: we want to compile LCD-optimized rendering code (à la ClearType) or michael@0: not. The macro *must* be disabled in default builds of the library michael@0: for patent reasons. michael@0: michael@0: * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable michael@0: LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING michael@0: isn't defined at compile time. This only changes the content of the michael@0: rendered glyph to match the one of normal gray-level rendering, michael@0: hence clients should not need to be modified. michael@0: michael@0: * docs/CHANGES: Updated. michael@0: michael@0: 2006-09-18 Garrick Meeker michael@0: michael@0: * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if michael@0: LWFN fails and both are available. michael@0: michael@0: 2006-09-11 David Turner michael@0: michael@0: * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which michael@0: report their English names through an Apple Roman michael@0: (platform,encoding) pair, with language_id != English. michael@0: michael@0: If the font uses another name entry with language_id == English, it michael@0: will be selected correctly, though. michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting michael@0: selection for `mingli.ttf'. michael@0: michael@0: 2006-09-05 Werner Lemberg michael@0: michael@0: * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size' michael@0: values which have the upper two bytes set to 0xFF instead of 0x00 michael@0: (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and michael@0: `HAN NOM B.ttf'). michael@0: michael@0: * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code. michael@0: michael@0: 2006-09-05 David Turner michael@0: michael@0: Minor source cleanups and optimizations. michael@0: michael@0: * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed. michael@0: (TRaster): Remove `count_ex' and `count_ey'. michael@0: (gray_find_cell): Remove 2nd and 3rd argument. michael@0: (gray_alloc_cell): Merged with `gray_find_cell'. michael@0: (gray_record_cell): Simplify. michael@0: (gray_set_cell): Rewrite. michael@0: (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'. michael@0: (gray_render_span): Don't use FT_MEM_SET for small values. michael@0: (gray_dump_cells) [DEBUG_GRAYS]: New function. michael@0: (gray_sweep): Avoid buffer overwrites when to drawing the end of a michael@0: bitmap scanline. michael@0: (gray_convert_glyph): Fix speed-up. michael@0: michael@0: 2006-09-04 David Turner michael@0: michael@0: * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with michael@0: 64bit processors. michael@0: michael@0: 2006-09-03 Werner Lemberg michael@0: michael@0: * devel/ftoption.h: Synchronize with michael@0: include/freetype/config/ftoption.h. michael@0: michael@0: * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing michael@0: variable declaration. michael@0: (gray_convert_glyph): Fix compiler warnings. michael@0: michael@0: 2006-09-01 David Turner michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader michael@0: to recognize a few fonts that require the automatic unpatented michael@0: loader. michael@0: michael@0: * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased michael@0: rasterizer. The speed improvement is between 15% and 25%, depending michael@0: on the font data. michael@0: michael@0: (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code. michael@0: (TCell): Redefine. michael@0: (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'. michael@0: (gray_init_cells): Updated. michael@0: (gray_find_cell, gray_alloc_cell): New functions. michael@0: (gray_record_cell): Rewritten to use `gray_find_cell' and michael@0: `gray_alloc_cell'. michael@0: (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT, michael@0: QSORT_THRESHOLD): michael@0: Removed. michael@0: (gray_shell_sort, gray_quick_sort, gray_check_sort, michael@0: gray_dump_cells): Removed. michael@0: (gray_sweep): Rewritten. michael@0: (gray_convert_glyph): Rewrite code which used one of the sorting michael@0: functions. michael@0: (gray_raster_render): Updated. michael@0: michael@0: 2006-08-29 Dr. Werner Fink michael@0: michael@0: * configure: Make it possible to handle configure options which michael@0: have strings containing spaces. michael@0: michael@0: 2006-08-27 David Turner michael@0: michael@0: * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER): michael@0: New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER michael@0: or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined. michael@0: michael@0: * include/freetype/internal/ftcalc.h, src/base/ftcalc.c, michael@0: src/truetype/truetype.c, src/truetype/ttdriver.c, michael@0: src/truetype/ttgload.c, src/truetype/ttgload.h, michael@0: src/truetype/ttinterp.c, src/truetype/ttobjs.c, michael@0: src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c: michael@0: s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/. michael@0: michael@0: * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New michael@0: member `force_autohint'. michael@0: michael@0: * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'. michael@0: michael@0: * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing michael@0: against a list of font names which need the bytecode interpreter. michael@0: michael@0: 2006-08-27 Jens Claudius michael@0: michael@0: Fix miscellaneous compiler warnings. michael@0: michael@0: * include/freetype/internal/ftobjs.h: Close comment with `*/' to michael@0: avoid `/* in comment' compiler warning. michael@0: michael@0: * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast michael@0: `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on michael@0: 64-bit platforms void* is larger than FT_UInt32. michael@0: michael@0: * src/base/ftobjs.c (t_validator_error): Cast away michael@0: volatileness of argument to ft_longjmp. Spotted by Werner michael@0: `Putzfrau' Lemberg. michael@0: michael@0: * src/bdf/bdflib.c (bdf_load_font): Initialize local michael@0: variable `lineno'. michael@0: michael@0: * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable michael@0: `error' as volatile. michael@0: michael@0: 2006-08-27 Werner Lemberg michael@0: michael@0: * builds/unix/ftconfig.in: Synchronize with main ftconfig.h. michael@0: Reported by Jens. michael@0: michael@0: 2006-08-22 Jens Claudius michael@0: michael@0: Fix for previous commit, which caused many compiler warnings/errors michael@0: about addresses of volatile objects passed as function arguments as michael@0: non-volatile pointers. michael@0: michael@0: * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a michael@0: pointer to a volatile object. michael@0: michael@0: * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument michael@0: `table' a pointer to a volatile object. michael@0: michael@0: * src/otvalid/otvmod.c (otv_load_table): Make function argument michael@0: `table' a pointer to a volatile object. michael@0: michael@0: 2006-08-18 Jens Claudius michael@0: michael@0: * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt' michael@0: as volatile since it must keep its value across a call to ft_setjmp. michael@0: (gxv_validate): Same for local variables `memory' and `valid'. michael@0: (classic_kern_validate): Same for local variables `memory', michael@0: `ckern', and `valid'. michael@0: michael@0: * src/otvalid/otvmod.c (otv_validate): Same for function parameter michael@0: `face' and local variables `base', `gdef', `gpos', `gsub', `jstf', michael@0: and 'valid'. michael@0: michael@0: * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable michael@0: `cmap'. michael@0: michael@0: 2006-08-16 David Turner michael@0: michael@0: * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler michael@0: warnings. michael@0: michael@0: * src/base/ftobjs.c (ft_validator_run): Disable function; it is michael@0: buggy by design. Always return -1. michael@0: michael@0: michael@0: Improvements to native TrueType hinting. This is a first try, michael@0: controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c. michael@0: michael@0: * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member michael@0: `extra_points2'. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member michael@0: `orus'. michael@0: michael@0: * src/base/ftgloadr.c (FT_GlyphLoader_Reset, michael@0: FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra, michael@0: FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to michael@0: handle `extra_points2'. michael@0: michael@0: * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'. michael@0: Remove compiler warning. michael@0: (cur_to_arg): Remove macro. michael@0: (TT_Hint_Glyph): Updated. michael@0: (TT_Process_Simple_Glyph): Handle `orus'. michael@0: michael@0: * src/truetype/ttinterp.c (FIX_BYTECODE): New macro. michael@0: (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'. michael@0: (LOC_Ins_IUP): Renamed to... michael@0: (IUP_WorkerRec): This. michael@0: Add `orus' member. michael@0: (Shift): Renamed to... michael@0: (_iup_worker_shift): This. michael@0: Updated. michael@0: (Interp): Renamed to... michael@0: (_iup_worker_interpolate): This. michael@0: Updated to handle `orus'. michael@0: (Ins_IUP): Updated. michael@0: michael@0: * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new): michael@0: Handle `orus'. michael@0: michael@0: 2006-08-15 suzuki toshiya michael@0: michael@0: * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to michael@0: build ftvalid in ft2demos. This has been inadvertedly changed michael@0: 2006-08-13. michael@0: michael@0: 2006-08-15 suzuki toshiya michael@0: michael@0: `ft_validator_run' wrapping `setjmp' can cause a crash, as found by michael@0: Jens: michael@0: http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm. michael@0: michael@0: * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'. michael@0: It reverts the change introduced on 2005-08-20. michael@0: michael@0: * src/gxvalid/gxvmod.c: Ditto. michael@0: michael@0: 2006-08-13 Jens Claudius michael@0: michael@0: * finclude/freetype/internal/psaux.h: (T1_TokenType): Add michael@0: T1_TOKEN_TYPE_KEY. michael@0: (T1_FieldRec): Add `dict'. michael@0: (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros. michael@0: (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS michael@0: keyword is expected as an additional argument. michael@0: michael@0: * src/cid/cidload.c: (cid_field_records): Adjust invocations of michael@0: T1_FIELD_XXX. michael@0: michael@0: * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX. michael@0: michael@0: * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing. michael@0: (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY, michael@0: not T1_TOKEN_TYPE_ANY. michael@0: (ps_parser_load_field): Make sure a token that should be a string or michael@0: name is really a string or name. michael@0: Avoid memory leak if a keyword has been already encountered and its michael@0: value is overwritten. michael@0: * src/type1/t1load.c: (t1_keywords): Adjust invocations of michael@0: T1_FIELD_XXX. michael@0: (parse_dict): Ignore keywords that occur in the wrong dictionary michael@0: (e.g., in `Private' instead of `FontDict'). michael@0: michael@0: * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX. michael@0: michael@0: * src/type42/t42parse.c: (t42_keywords): Adjust invocations of michael@0: T1_FIELD_XXX. michael@0: michael@0: 2006-07-18 Jens Claudius michael@0: michael@0: Move creation of field `buildchar' of T1_DecoderRec out of michael@0: `t1_decoder_init' and let the caller of `t1_decoder_init' take care michael@0: of it. michael@0: michael@0: Call the finisher for T1_Decoder in `cid_face_compute_max_advance' michael@0: and `T1_Compute_Max_Advance'. michael@0: michael@0: * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field michael@0: `face', add `len_buildchar'. michael@0: michael@0: * include/freetype/internal/t1types.h (T1_FaceRec): Add field michael@0: `buildchar'. michael@0: michael@0: * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher michael@0: for T1_Decoder. michael@0: (cid_slot_load_glyph): Do not ignore failure when initializing the michael@0: T1_Decoder. michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated. michael@0: (t1_decoder_init): Remove initialization of fields `buildchar' and michael@0: `len_buildchar'. michael@0: (t1_decoder_done): Remove deallocation of field `buildchar'. michael@0: michael@0: * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize michael@0: T1_Decoder's `buildchar' and `len_buildchar'; call finisher for michael@0: T1_Decoder. michael@0: (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and michael@0: `len_buildchar'; make sure to call finisher for T1_Decoder even in michael@0: case of error. michael@0: michael@0: * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar' michael@0: of T1_FaceRec. michael@0: michael@0: * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of michael@0: T1_FaceRec. michael@0: michael@0: 2006-07-14 Jens Claudius michael@0: michael@0: * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE, michael@0: IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, michael@0: and IS_PS_BASE85 (from src/psaux/psconv.h). michael@0: (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER, michael@0: T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND. michael@0: (T1_DecoderRec): New fields `buildchar' and `face'. michael@0: (IS_PS_TOKEN): New macro. michael@0: michael@0: * include/freetype/internal/t1types.h (T1_FaceRec): New fields michael@0: `ndv_idx', `cdv_idx', and `len_buildchar'. michael@0: michael@0: * include/freetype/t1tables.h (PS_BlendRec): New fields michael@0: `default_design_vector' and `num_default_design_vector'. michael@0: michael@0: * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE, michael@0: IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and michael@0: IS_PS_BASE85 to include/freetype/internal/psaux.h. michael@0: michael@0: * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token' michael@0: argument to be NULL if we want only to count the number of tokens. michael@0: (ps_tocoordarray): Allow `coords' argument to be NULL if we just michael@0: want to skip the array. michael@0: (ps_tofixedarray): Allow `values' argument to be NULL if we just michael@0: want to skip the array. michael@0: michael@0: * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support michael@0: for (partially commented out) othersubrs 19-25, 27, and 28. michael@0: (t1_decoder_init): Initialize new fields `face' and `buildchar'. michael@0: (t1_decoder_done): Release new field `buildchar'. michael@0: michael@0: * src/type1/t1load.c (parse_buildchar, parse_private): New michael@0: functions. michael@0: (t1_keywords): Register them. michael@0: (t1_allocate_blend): Updated. michael@0: (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER, michael@0: T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND. michael@0: (parse_dict): Remove `keyword_flags' argument. michael@0: Use new macro IS_PS_TOKEN. michael@0: Changed function so that later PostScript definitions override michael@0: earlier ones. michael@0: (t1_init_loader): Initialize new field `keywords_encountered'. michael@0: (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and michael@0: `len_buildchar'. michael@0: Remove `keywords_flags'. michael@0: michael@0: * src/type1/t1load.h (T1_LoaderRect): New field michael@0: `keywords_encountered'. michael@0: (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros. michael@0: michael@0: * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New michael@0: entries for parsing /NDV, /CDV, and /DesignVector. michael@0: michael@0: 2006-07-07 Werner Lemberg michael@0: michael@0: Add many checks to protect against malformed PCF files. michael@0: michael@0: * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers. michael@0: (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors. michael@0: michael@0: * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table michael@0: data and check that tables don't overlap (using a simple michael@0: bubblesort). michael@0: (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE): michael@0: New macros which give the size of data structures in the data michael@0: stream. michael@0: (pcf_get_properties): Use rough estimates to get array size limits. michael@0: Assign `face->nprops' and `face->properties' earlier so that a call michael@0: to PCF_Face_Done can do the clean-up in case of error. michael@0: Protect against invalid string offsets. michael@0: (pcf_get_metrics): Clean up code. michael@0: Adjust tracing message levels. michael@0: Use rough estimate to get array size limit. michael@0: (pcf_get_bitmaps): Clean up code. michael@0: Adjust tracing message levels. michael@0: Use rough estimates to get offset limits. michael@0: (pcf_get_encodings): Adjust tracing message level. michael@0: (pcf_get_accel): Clean up code. michael@0: michael@0: 2006-06-26 Werner Lemberg michael@0: michael@0: * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which michael@0: don't have a POINT_SIZE property. This fixes Savannah bug #16914. michael@0: michael@0: 2006-06-26 Jens Claudius michael@0: michael@0: * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15. michael@0: (t1_decoder_parse_charstrings): Operator with michael@0: opcode 15 pops its two arguments. michael@0: Handle the case where the pops of an othersubr may be part of a michael@0: subroutine. michael@0: Handle unknown othersubrs gracefully: count their operands and let michael@0: the following pop operators push the operands as the results onto michael@0: the Type1 stack. michael@0: Improve handling of setcurrentpoint opcode. michael@0: michael@0: 2006-06-25 Jens Claudius michael@0: michael@0: The Type 1 parser now skips over top-level procedures as required michael@0: for a `Simplified Parser'. This makes the parser more robust as it michael@0: doesn't poke around in PostScript code. Additionally, it makes the michael@0: FontDirectory hackery in src/type1/t1load.c unnecessary. michael@0: michael@0: * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro. michael@0: (skip_literal_string): Add FT_Error as return value. michael@0: Handle escapes better. michael@0: (skip_string): Add FT_Error as return value. michael@0: Don't set `parser->error' but return error code directly. michael@0: (skip_procedure): New function. michael@0: (ps_parser_skip_PS_token): Handle procedures. michael@0: Update code. michael@0: (ps_parser_to_token): Update code. michael@0: (ps_parser_load_field_table): Handle bbox entries also. michael@0: michael@0: * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery. michael@0: Add commented-out code for synthetic fonts. michael@0: michael@0: 2006-06-24 Eugeniy Meshcheryakov michael@0: michael@0: Fix two hinting bugs as reported in michael@0: http://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html. michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add michael@0: `first_point' member. michael@0: michael@0: * src/truetype/ttgload.c (tt_prepare_zone): Initialize michael@0: `first_point'. michael@0: (TT_Process_Composite_Glyph): Always untouch points. michael@0: michael@0: * src/truetype/ttinterp.c (Ins_SHC): Fix computation of michael@0: `first_point' and `last_point' in case of composite glyphs. michael@0: (Ins_IUP): Fix computation of `end_point'. michael@0: michael@0: 2006-06-22 suzuki toshiya michael@0: michael@0: Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel michael@0: Mac. The original patch was written by David Sachitano and Lawrence michael@0: Coopet, and modified by Sean McBride for MPW compatibility. Only michael@0: required data are converted; unused data are left in big endian. michael@0: michael@0: * src/base/ftmac.c: Include for byteorder macros for non michael@0: Mac OS X platforms. michael@0: (OS_INLINE): Undefine before definition. michael@0: (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of michael@0: FontAssociation table in FOND resource. michael@0: (count_faces_scalable): Insert EndianS16_BtoN to parse the header michael@0: and fontSize at each entry of FontAssociation table in FOND michael@0: resource. michael@0: (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse michael@0: ffStylOff of FamilyRecord header of FOND resource, the header, michael@0: fontSize, fontID at each entry of FontAssociation table, and michael@0: StyleMapping table. michael@0: (count_faces): Call `HUnlock' after all FOND utilization. michael@0: michael@0: 2006-06-08 suzuki toshiya michael@0: michael@0: Public API of TrueTypeGX, OpenType, and classic kern table validator michael@0: should return `FT_Err_Unimplemented_Feature' if validation service michael@0: is unavailable (disabled in `modules.cfg'). It is originally michael@0: suggested by David Turner, cf. michael@0: http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html michael@0: michael@0: * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return michael@0: FT_Err_Unimplemented_Feature if TrueTypeGX validation service is michael@0: unavailable. michael@0: (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if michael@0: classic kern table validation service is unavailable. michael@0: michael@0: * src/base/ftotval.c (FT_OpenType_Validate): Return michael@0: FT_Err_Unimplemented_Feature if OpenType validation service is michael@0: unavailable. michael@0: michael@0: 2006-06-08 Werner Lemberg michael@0: michael@0: * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of michael@0: errors. michael@0: michael@0: 2006-06-07 David Turner michael@0: michael@0: * src/type1/t1afm.c (KERN_INDEX): Make it more robust. michael@0: (T1_Read_Metrics): Fix memory leak which happened when the metrics michael@0: file doesn't have kerning pairs. This fixes Savannah bug #16768. michael@0: michael@0: 2006-06-06 David Turner michael@0: michael@0: Fix memory leak described in Savannah bug #16759. michael@0: michael@0: We change `ps_unicodes_init' so that it also takes a michael@0: `free_glyph_name' callback to release the glyph names returned by michael@0: `get_glyph_name' michael@0: michael@0: * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc): michael@0: Renamed to ... michael@0: (PS_GetGlyphNameFunc): This. michael@0: (PS_FreeGlyphNameFunc): New typedef. michael@0: (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc. michael@0: michael@0: * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first michael@0: argument. michael@0: (cff_sid_free_glyph_name): New function. michael@0: (cff_cmap_unicode_init): Updated. michael@0: michael@0: * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated. michael@0: michael@0: * src/psnames/psmodule.c (ps_unicodes_init): Add variable for michael@0: PS_FreeGlyphNameFunc and use it. michael@0: michael@0: michael@0: 2006-06-04 David Turner michael@0: michael@0: * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept michael@0: `item_size == 0' as well -- though this sounds weird, it can michael@0: theoretically happen. This fixes Savannah bug #16669. michael@0: michael@0: * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation michael@0: of `face->num_glyphs' which missed the last glyph, due to michael@0: the offset-by-1 computation, since the PFR format doesn't michael@0: guarantee that glyph index 0 corresponds to the `missing michael@0: glyph. This fixes Savannah bug #16668. michael@0: michael@0: 2006-05-25 Werner Lemberg michael@0: michael@0: * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out michael@0: `-no-undefined'. Reported by Christian Biesinger. michael@0: michael@0: 2006-05-19 Brian Weed michael@0: michael@0: * builds/win32/visualc/freetype.dsp: Release libraries no longer michael@0: have debug information, and debug libraries use `C7 compatible' michael@0: debug info. michael@0: michael@0: 2006-05-19 suzuki toshiya michael@0: michael@0: Apply patch by Derek Clegg to fix two memory leaks in the MacOS michael@0: resource fork handler. This fixes Savannah bug #16631. michael@0: michael@0: * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace michael@0: `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak. michael@0: michael@0: * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name): michael@0: Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak. michael@0: michael@0: 2006-05-19 suzuki toshiya michael@0: michael@0: * build/unix/configure.raw: Add a fallback to disable Carbon michael@0: dependency, if configured with no options on Mac OS X. michael@0: michael@0: 2006-05-19 suzuki toshiya michael@0: michael@0: * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when michael@0: its content cannot be parsed as supported font. This fixes michael@0: the second part of Savannah bug #16590. michael@0: michael@0: 2006-05-18 Werner Lemberg michael@0: michael@0: * src/truetype/ttgload.c (TT_Load_Composite_Glyph) michael@0: [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again. michael@0: michael@0: 2006-05-17 David Turner michael@0: michael@0: This is a major patch used to drastically improve the performance of michael@0: loading glyphs. This both speeds up loading the glyph vectors michael@0: themselves and the auto-fitter module. michael@0: michael@0: We now use inline assembler code with GCC to implement `FT_MulFix', michael@0: which is probably the most important function related to the michael@0: engine's performance. michael@0: michael@0: The resulting speed-up is about 25%. michael@0: michael@0: michael@0: * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields michael@0: `cursor' and `limit'. michael@0: michael@0: * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation): michael@0: New functions. michael@0: (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out. michael@0: [TEST]: Remove. michael@0: michael@0: * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test michael@0: code. michael@0: michael@0: * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call michael@0: `FT_ZERO' michael@0: (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten. michael@0: (af_glyph_hints_reload: Rewrite recognition of weak points. michael@0: michael@0: * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move michael@0: constant values out of the loops. michael@0: michael@0: * src/autofit/aftypes.h: Updated. michael@0: michael@0: * src/base/ftcalc.c (FT_MulFix): Use inline assembler code. michael@0: michael@0: * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector michael@0: product to get orientation. michael@0: michael@0: * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function. michael@0: (FT_Stream_OpenGzip): Use it to handle small files directly in michael@0: memory. michael@0: michael@0: * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode): michael@0: Improve performance. michael@0: michael@0: * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and michael@0: `limit'. michael@0: michael@0: (TT_Load_Glyph_Header, TT_Load_Simple_Glyph, michael@0: TT_Load_Composite_Glyph): Updated. Add threshold to protect against michael@0: exceedingly large values of number of contours. Speed up by michael@0: reducing the number of loops. michael@0: michael@0: * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix. michael@0: michael@0: michael@0: * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold michael@0: used to detect rogue clients from 4 to 16. This is to prevent some michael@0: segmentation faults with fonts like `KozMinProVI-Regular.otf' which michael@0: comes from the Japanese Adobe Reader Asian Font pack. michael@0: michael@0: 2007-05-17 Werner Lemberg michael@0: michael@0: * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This michael@0: fixes the first part of Savannah bug #16590. michael@0: michael@0: 2006-05-16 Werner Lemberg michael@0: michael@0: * docs/PROBLEMS: Updated icl issues. michael@0: michael@0: ---------------------------------------------------------------------------- michael@0: michael@0: Copyright 2006, 2007, 2008, 2009, 2010 by michael@0: David Turner, Robert Wilhelm, and Werner Lemberg. michael@0: michael@0: This file is part of the FreeType project, and may only be used, modified, michael@0: and distributed under the terms of the FreeType project license, michael@0: LICENSE.TXT. By continuing to use, modify, or distribute this file you michael@0: indicate that you have read the license and understand and accept it michael@0: fully. michael@0: michael@0: michael@0: Local Variables: michael@0: version-control: never michael@0: coding: utf-8 michael@0: End: