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