modules/freetype2/ChangeLog.23

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 2010-02-13  Werner Lemberg  <wl@gnu.org>
     3 	* Version 2.3.12 released.
     4 	==========================
     7 	Tag sources with `VER-2-3-12'.
     9 	* docs/CHANGES: Updated.
    11 	* docs/VERSION.DLL: Update documentation and bump version number to
    12 	2.3.12.
    14 	* README, Jamfile (RefDoc),
    15 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
    16 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
    17 	builds/win32/visualc/freetype.dsp,
    18 	builds/win32/visualc/freetype.vcproj,
    19 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
    20 	builds/win32/visualce/freetype.vcproj,
    21 	builds/win32/visualce/index.html,
    22 	builds/wince/vc2005-ce/freetype.vcproj,
    23 	builds/wince/vc2005-ce/index.html,
    24 	builds/wince/vc2008-ce/freetype.vcproj,
    25 	builds/wince/vc2008-ce/index.html: s/2.3.11/2.3.12/, s/2311/2312/.
    27 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
    29 	* builds/unix/configure.raw (version_info): Set to 10:0:4.
    31 2010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
    33 	Improve autotool version checking to work with beta releases.
    35 	* autogen.sh (check_tool_version): Improve the extraction of version
    36 	number from "tool --version" output.  Some beta releases of
    37 	autotools have extra strings before version number.
    39 2010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
    41 	Fix overallocating bug in FT_Outline_New_Internal().
    43 	* src/base/ftoutln.c (FT_Outline_New_Internal): The length of
    44 	FT_Outline->points[] should be numPoints, not 2 * numPoints.
    45 	Found by Paul Messmer, see
    46 	http://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html
    48 2010-02-10  Ken Sharp  <ken.sharp@artifex.com>
    50 	Really fix Savannah bug #28678 (part 2).
    52 	Since we consider `sbw' for the horizontal direction only, we still have
    53 	to synthesize vertical metrics if the user wants to use the vertical
    54 	writing direction.
    56 	* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
    57 	(cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph):
    58 	Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is
    59 	set.
    61 2010-02-10  Ken Sharp  <ken.sharp@artifex.com>
    63 	Really fix Savannah bug #28678 (part 1).
    65 	After long discussion, we now consider the character width vector
    66 	(wx,wy) returned by the `sbw' Type 1 operator as being part of *one*
    67 	direction only.  For example, if you are using the horizontal
    68 	writing direction, you get the horizontal and vertical components of
    69 	the advance width for this direction.  Note that OpenType and CFF fonts
    70 	don't have such a vertical component; instead, the GPOS table can be
    71 	used to generate two-dimensional advance widths (but this isn't
    72 	handled by FreeType).
    74 	* include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add
    75 	`advance_v' field to hold the vertical component of the advance
    76 	value.
    78 	* src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c
    79 	(cff_slot_load), src/type1/t1gload.c
    80 	(T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c
    81 	(cid_load_glyph): Use it.
    83 2010-02-08  Werner Lemberg  <wl@gnu.org>
    85 	* devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define.
    87 2010-02-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
    89 	Prevent NULL pointer dereference passed to FT_Module_Requester.
    91 	* src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'.
    92 	* src/psnames/psmodule.c (psnames_get_interface): Ditto.
    94 	* src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'.
    95 	* src/truetype/ttdriver.c (tt_get_interface): Ditto.
    97 2010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
    99 	Fix memory leaks in previous patch.
   101 	* src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings
   102 	allocated for face->root.family_name and style_name.
   104 2010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   106 	New parameters for FT_Open_Face() to ignore preferred family names.
   108 	Preferred family names should be used for legacy systems that
   109 	can hold only a few faces (<= 4) for a family name. Suggested by
   110 	Andreas Heinrich.
   111 	http://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html
   113 	* include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
   114 	FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define.
   116 	* src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and
   117 	ignore preferred family and subfamily names if requested.
   119 2010-01-27  Ken Sharp  <ken.sharp@artifex.com>
   121 	Fix Savannah bug #28678.
   123 	* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
   124 	(cid_load_glyph): Handle vertical metrics correctly.
   126 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle
   127 	vertical metrics correctly.
   128 	(T1_Load_Glyph): Don't synthesize vertical metrics.
   130 2010-01-14  Werner Lemberg  <wl@gnu.org>
   132 	Make FT_Set_Transform work if no renderer is available.
   134 	* src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation
   135 	if no renderer is compiled into the library.
   137 2010-01-14  Werner Lemberg  <wl@gnu.org>
   139 	Fix compilation warning.
   141 	* src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
   142 	* src/base/ftobjc.s: Include ftbase.h conditionally.
   144 2010-01-11  Kwang Yul Seo  <skyul@company100.net>
   146 	Provide inline assembly code for RVCT compiler.
   147 	This is Savannah patch #7059.
   149 	* include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER,
   150 	FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define.
   152 2010-01-08  Ken Sharp  <ken.sharp@artifex.com>
   154 	Fix Savannah bug #28521.
   156 	Issue #28226 involved a work-around for a font which used the
   157 	`setcurrentpoint' operator in an invalid way; this operator is only
   158 	supposed to be used with the result of OtherSubrs, and the font used
   159 	it directly.  The supplied patch removed the block of code which
   160 	checked this usage entirely.
   162 	This turns out to be a Bad Thing.  If `setcurrentpoint' is being
   163 	used correctly it should reset the flex flag in the decoder.  If we
   164 	don't do this then the flag never gets reset and we omit any further
   165 	contours from the glyph (at least until we close the path or
   166 	similar).
   168 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
   169 	<op_setcurrentpoint>: Handle `flex_state' correctly.
   171 2010-01-05  Werner Lemberg  <wl@gnu.org>
   173 	Apply reports from clang static analyzer.
   175 	* src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c
   176 	(FT_Stroker_ParseOutline), src/base/ftsynth.c
   177 	(FT_GlyphSlot_Embolden): Remove dead code.
   179 	* src/base/ftpatent.c (_tt_check_patents_in_table): Initialize
   180 	`offset_i' and `length_i'.
   182 2010-01-05  Ralph Giles  <giles@ghostscript.com>
   184 	Enable the incremental font interface by default.
   186 	Ghostscript requires the incremental font interface for handling
   187 	some Postscript documents.  It is moving to using FreeType as its
   188 	primary renderer; supporting this in the default build makes it
   189 	Ghostscript to be linked against the system FreeType when one is
   190 	available.
   192 	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
   193 	Uncomment.
   195 2010-01-05  Werner Lemberg  <wl@gnu.org>
   197 	Fix Savannah bug #28395.
   199 	* src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
   200 	(T1_Loada_Glyph): Don't check `num_glyphs' if incremental interface
   201 	is used.
   203 2010-01-05  Ken Sharp  <ken.sharp@artifex.com>
   205 	Make Type 1 `seac' operator work with incremental interface.
   206 	This fixes Savannah bug #28480.
   208 	* src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names'
   209 	if incremental interface is used.
   211 2010-01-04  Ken Sharp  <ken.sharp@artifex.com>
   213 	Make incremental interface work with TrueType fonts.
   214 	This fixes Savannah bug #28478.
   216 	* src/truetype/ttgload.c (load_truetype_glyph): Don't check
   217 	`glyf_offset' if incremental interface is used.
   219 2009-12-31  Lars Abrahamsson  <wonko@opera.com>
   221 	Make compilation with FT_CONFIG_OPTION_PIC work again.
   223 	* src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]:
   224 	Declare `library' for FT_BITMAP_GLYPH_CLASS_GET.
   226 	* src/base/ftinit.c (ft_destroy_default_module_classes,
   227 	ft_create_default_module_classes): Use proper casts (needed for C++
   228 	compilation).
   230 	* src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP.
   232 2009-12-22  Marc Kleine-Budde  <mkl@pengutronix.de>
   234 	Make freetype-config aware of $SYSROOT.
   235 	This is Savannah patch #7040.
   237 	* builds/unix/freetype-config.in: Decorate with ${SYSROOT} where
   238 	appropriate.
   240 2009-12-20  Werner Lemberg  <wl@gnu.org>
   242 	Fix compiler warning.
   243 	Reported by Sean.
   245 	* src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty
   246 	source files; however, some compilers warn about an unused variable
   247 	declaration.  This is now replaced with a typedef.
   249 2009-12-18  Werner Lemberg  <wl@gnu.org>
   251 	Fix Savannah bug #28320.
   253 	There exist corrupt, subsetted fonts (embedded in PDF files) which
   254 	contain a private dict that ends with an unterminated floating point
   255 	number (no operator following).  We now ignore this error (as
   256 	acrobat does).
   258 	* src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
   259 	unterminated floating point numbers.
   261 2009-12-16  Werner Lemberg  <wl@gnu.org>
   263 	Really fix compiler warnings.
   264 	Reported by Sean.
   266 	* src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS,
   267 	GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros.
   269 2009-12-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   271 	Improve configure.raw to copy some options from CFLAGS to LDFLAGS.
   272 	The linker of Mac OS X 10.6 is sensitive to the architecture.  If
   273 	the architectures are specified explicitly for the C compiler, the
   274 	linker requires the architecture specifications too.
   276 	* builds/unix/configure.raw: Replace `-isysroot' option parser by
   277 	more generic argument parser.
   279 2009-12-15  Werner Lemberg  <wl@gnu.org>
   281 	Fix compiler warnings.
   282 	Reported by Sean.
   284 	* src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data
   285 	type.
   287 2009-12-14  Ken Sharp  <ken.sharp@artifex.com>
   289 	Ignore invalid `setcurrentpoint' operations in Type 1 fonts.
   290 	This fixes Savannah bug #28226.
   292 	At least two wild PostScript files of unknown provenance contain
   293 	Type 1 fonts, apparently converted from TrueType fonts in earlier
   294 	PDF versions of the files, which use the `setcurrentpoint' operator
   295 	inappropriately.
   297 	FreeType currently throws an error in this case, but Ghostscript and
   298 	Adobe Distiller both accept the fonts and ignore the problem.  This
   299 	commit #ifdefs out the check so PostScript interpreters using
   300 	FreeType can render these files.
   302 	The specification says `setcurrentpoint' should only be used to set
   303 	the point after a `Subr' call, but these fonts use it to set the
   304 	initial point to (0,0).  Unnecessarily so, as they correctly use an
   305 	`hsbw' operation which implicitly sets the initial point.
   307 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
   308 	<op_setcurrentpoint>: Comment out code.
   310 2009-12-14  Bram Tassyns  <bramt@enfocus.be>
   312 	Fix parsing of /CIDFontVersion.
   313 	This fixes Savannah bug #28287.
   315 	* src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in
   316 	t1tables.h) is of type FT_Fixed.
   318 2009-12-14  Werner Lemberg  <wl@gnu.org>
   320 	Trace glyph index in CID module.
   321 	Suggested in Savannah patch #7023.
   323 	* src/cid/cidgload.c (cid_load_glyph): Add tracing message.
   325 2009-12-03  Werner Lemberg  <wl@gnu.org>
   327 	Fix compiler warnings.
   329 	* src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the
   330 	proper preprocessor conditional.
   331 	* src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc.
   333 2009-11-25  John Tytgat  <John.Tytgat@esko.com>
   335 	Better handling of start of `eexec' section.
   336 	This fixes Savannah bug #28090.
   338 	* src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace
   339 	characters before start of `eexec' section.
   341 2009-11-20  Werner Lemberg  <wl@gnu.org>
   343 	Fix Savannah bug #27742.
   345 	* src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
   346 	zero, using a threshold for `theta'.
   348 2009-11-20  Werner Lemberg  <wl@gnu.org>
   350 	Fix Savannah bug #28036.
   352 	* src/type1/t1afm.c (t1_get_index): Fix comparison.
   354 2009-11-16  Werner Lemberg  <wl@gnu.org>
   356 	Fix compiler warnings.
   357 	Reported by Kevin Blenkinsopp <arqon@promode.org>.
   359 	* src/sfnt/ttload.c (check_table_dir): Use proper data type.
   361 2009-11-15  Werner Lemberg  <wl@gnu.org>
   363 	Really fix FreeDesktop bug #21197.
   364 	This also fixes Savannah bug #28021.
   366 	* src/autofit/aflatin.c (af_latin_metrics_check_digits),
   367 	src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
   369 2009-11-15  Werner Lemberg  <wl@gnu.org>
   371 	Add tracing messages for advance values.
   373 	* src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
   374 	(TT_Get_HMetrics, TT_Get_VMetrics): Do it.
   376 2009-11-08  Werner Lemberg  <wl@gnu.org>
   378 	Fix compiler warning.
   379 	Reported by Jeremy Manson <jeremy.manson@gmail.com>.
   381 	* src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
   383 2009-11-04  Werner Lemberg  <wl@gnu.org>
   385 	Remove compiler warning.
   386 	Reported by Sean McBride <sean@rogue-research.com>.
   388 	* src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
   389 	`int', as specified in the printf(3) man page.
   391 2009-11-04  Werner Lemberg  <wl@gnu.org>
   393 	Fix Savannah bug #27921.
   395 	* src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
   396 	(cid_face_init), src/type1/t1afm.c (T1_Read_Metrics),
   397 	src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant
   398 	values for rounding if the argument can be negative.
   400 2009-11-03  Bram Tassyns  <bramt@enfocus.be>
   402 	Add basic support for Type1 charstrings in CFF.
   403 	This fixes Savannah bug #27922.
   405 	* src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle
   406 	`seac', `sbw', and `setcurrentpoint' opcodes.
   407 	(cff_compute_bias): Add parameter to indicate the charstring type.
   408 	Update all callers.
   409 	(cff_operator_seac): Add parameter for side bearing.
   410 	(cff_decoder_parse_charstrings): Updated for more Type1 support.
   412 2009-11-03  Werner Lemberg  <wl@gnu.org>
   414 	Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
   415 	Reported by Jeremy Manson <jeremy.manson@gmail.com>.
   417 	src/truetype/ttgload.c (load_truetype_glyph): Add parameter to
   418 	quickly load the glyph header only.
   419 	Update all callers.
   420 	(tt_loader_init): Add parameter to quickly load the `glyf' table
   421 	only.
   422 	Update all callers.
   423 	(TT_Load_Glyph): Compute linear advance values for embedded bitmap
   424 	glyphs too.
   426 2009-11-03  Werner Lemberg  <wl@gnu.org>
   428 	Improve code readability.
   430 	* src/ttgload.c (load_truetype_glyph): Move metrics calculation
   431 	to...
   432 	(tt_get_metrics): This new function.
   434 2009-10-26  Bram Tassyns  <bramt@enfocus.be>
   436 	Fix Savannah bug #27811.
   438 	* src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
   439 	signed/unsigned mismatch.
   441 2009-10-19  Ning Dong  <flintning@163.com>
   443 	Fix handling of `get' and `put' CFF instructions.
   445 	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get,
   446 	cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of
   447 	elements for the `get' and `put' operators to 32.
   448 	* src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define.
   449 	(CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'.
   451 2009-10-18  Werner Lemberg  <wl@gnu.org>
   453 	Fix handling of `dup' CFF instruction.
   454 	Problem and solution reported by Ning Dong <flintning@163.com>.
   456 	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
   457 	Increase `args' by 2, not 1.
   459 2009-10-10  Werner Lemberg  <wl@gnu.org>
   461 	* Version 2.3.11 released.
   462 	==========================
   465 	Tag sources with `VER-2-3-11'.
   467 	* docs/VERSION.DLL: Update documentation and bump version number to
   468 	2.3.11.
   470 	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
   471 	builds/win32/visualc/freetype.dsp,
   472 	builds/win32/visualc/freetype.vcproj,
   473 	builds/win32/visualce/index.html,
   474 	builds/win32/visualce/freetype.dsp,
   475 	builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/.
   477 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
   479 	* builds/unix/configure.raw (version_info): Set to 9:22:3.
   481 2009-10-10  Werner Lemberg  <wl@gnu.org>
   483 	* docs/CHANGES, docs/release: Updated.
   485 2009-10-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   487 	* src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops
   488 	truncation.  Reported by Martin von Gagern and Peter Volkov.
   489 	https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256
   491 2009-10-06  Werner Lemberg  <wl@gnu.org>
   493 	* Version 2.3.10 released.
   494 	==========================
   497 	Tag sources with `VER-2-3-10'.
   499 	* builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
   500 	than a single digit.
   501 	(dist): We now use git.
   503 	* docs/VERSION.DLL: Update documentation and bump version number to
   504 	2.3.10.
   506 	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
   507 	builds/win32/visualc/freetype.dsp,
   508 	builds/win32/visualc/freetype.vcproj,
   509 	builds/win32/visualce/index.html,
   510 	builds/win32/visualce/freetype.dsp,
   511 	builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/.
   513 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
   515 	* builds/unix/configure.raw (version_info): Set to 9:21:3.
   517 2009-10-06  Werner Lemberg  <wl@gnu.org>
   519 	Fix `make multi'.
   521 	* src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
   523 	* src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
   525 2009-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   527 	[cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582.
   528 	Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed.
   529 	Now these functions should be called with FTC_Node or FTC_MruNode
   530 	variable, and the caller should cast them to appropriate pointers to
   531 	concrete data.  These tricky casts can GCC-4.4 optimizer (-O2)
   532 	confused and the crashing binaries are generated.
   534 	* src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast.
   535 	Now the 4th argument `node' of this function should be typed as
   536 	FTC_MruNode.
   538 	* src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline
   539 	implementation, new temporal variable FTC_MruNode `_mrunode' to take
   540 	the pointer from FTC_MRULIST_LOOKUP_CMP().  For non-inline
   541 	implementation, tricky cast is dropped.
   543 	* src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting
   544 	to FTC_SizeNode.
   545 	(FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode
   546 	`mrunode', and FTC_SIZE_NODE() is inserted.
   547 	(FTC_FACE_NODE): New macro casting to FTC_FaceNode.
   548 	(FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode
   549 	`mrunode', and FTC_FACE_NODE() is inserted.
   551 	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of
   552 	`node' from FTC_INode to FTC_Node.  Extra casting macro FTC_NODE()
   553 	is dropped.
   554 	(FTC_ImageCache_LookupScaler): Ditto.
   555 	(FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to
   556 	FTC_Node.  Extra casting macro FTC_NODE() is dropped.  FTC_SNODE()
   557 	is inserted.
   558 	(FTC_SBitCache_LookupScaler): Ditto.
   560 	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of
   561 	`node' from FTC_CMapNode to FTC_Node.  Extra casting macro
   562 	FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted.
   564 2009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   566 	[cache, psaux, type1] Fix for multi build.
   567 	In multi build, some cpp functions are left as unresolved symbols.
   569 	* src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
   571 	* src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for
   572 	FIXED_TO_INT().
   573 	* src/type1/t1gload.c: Ditto.
   574 	* src/type1/t1objs.c: Ditto.
   576 2009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   578 	[autofit] Fix for multi build.
   580 	* src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
   581 	FT_DECLARE_MODULE() macro in multi build.
   583 	* src/autofit/aflatin.c: Include <ft2build.h> to handle
   584 	FT_ADVANCES_H correctly in multi build.
   586 2009-09-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   588 	[cache] Check the face filled by FTC_Manager_LookupFace().
   590 	* src/cache/ftcbasic.c (ftc_basic_family_get_count): Return
   591 	immediately if FTC_Manager_LookupFace() fills face by NULL.  Such
   592 	case can occur when the code is optimized by GCC-4.2.x.
   594 2009-09-23  Werner Lemberg  <wl@gnu.org>
   596 	* docs/CHANGES: Updated.
   598 2009-09-12  Werner Lemberg  <wl@gnu.org>
   600 	[raster] Fix 5-levels grayscale output.
   601 	This was broken since version 2.3.0.
   603 	* src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which
   604 	were then computed dynamically).
   605 	(Vertical_Gray_Sweep_Step): Updated.
   607 	(ft_black_render): Initialize `worker->gray_lines' (problem found by
   608 	valgrind).
   610 	(FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Dont' #undef, just
   611 	comment out.
   613 2009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   615 	Improve configure.raw for cross build.
   617 	* builds/unix/configure.raw: Remove temporal files created by the
   618 	suffix checking for CC_BUILD.  Set XX_ANSIFLAGS and XX_CFLAGS when
   619 	cross compiler is GCC.  AC_PROG_CC checks whether the cross compiler
   620 	is GCC, its result is stored in GCC.
   622 2009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   624 	[BDF] Modify hash API to take size_t value instead of void *.
   626 	The hash API in BDF driver is designed to be generic, it takes
   627 	void * typed data.  But BDF driver always gives an unsigned long
   628 	integer (the index to a property).  To reduce non-essential
   629 	casts from unsigned long to void* and from void* to unsigned
   630 	long, the hash API is changed to take size_t integer.
   631 	The issue of incompatible cast between unsigned long and void*
   632 	on LLP64 platform is reported by NightStrike from MinGW-Win64
   633 	project.  See
   634 	http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
   636 	* src/bdf/bdf.h: The type of hashnode->data is changed from
   637 	void* to size_t.
   639 	* src/bdf/bdflib.c (hash_insert): Get size_t data, instead of
   640 	void* data.
   641 	(bdf_create_property): Get the name length of new property by
   642 	size_t variable, with a cut-off at FT_ULONG_MAX.
   643 	(_bdf_set_default_spacing): Get the name length of the face by
   644 	size_t variable, with a cut-off at 256.
   645 	(bdf_get_property): Get the property id by size_t variable to
   646 	reduce the casts between 32-bit prop ID & hashnode->data during
   647 	simple copying.
   648 	(_bdf_add_property): Ditto.
   649 	(_bdf_parse_start): Calculate the index to the property array
   650 	by size_t variable.
   651 	(bdf_get_font_property): Drop a cast to unsigned long.
   653 2009-09-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   655 	[Win64] Improve the computation of random seed from stack address.
   657 	On LLP64 platform, the conversion from pointer to FT_Fixed need
   658 	to drop higher 32-bit.  Explict casts are required. Reported by
   659 	NightStrike from MinGW-w64 project.  See
   660 	http://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
   662 	* src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
   664 	* src/psaux/t1decode.c: Ditto.
   667 2009-09-03  Werner Lemberg  <wl@gnu.org>
   669 	[raster] Improvements for stand-alone mode.
   671 	* src/raster/rules.mk: Don't handle ftmisc.h.  It is needed for
   672 	stand-alone mode only.
   674 	* src/raster/ftmisc.h (FT_MemoryRec , FT_Alloc_Func, FT_Free_Func,
   675 	FT_Realloc_Func): Copy declarations from ftsystem.h.
   677 2009-09-02  Bram Tassyns  <bramt@enfocus.be>
   679 	Improve vertical metrics calculation (Savannah bug #27364).
   681 	The calculation of `vertBearingX' is not defined in the OTF font
   682 	spec so FreeType does a `best effort' attempt.  However, this value
   683 	is defined in the PDF and PostScript specs, and that algorithm is
   684 	better than the one FreeType currently uses:
   686 	  FreeType: Use the middle of the bounding box as the X coordinate
   687 	            of the vertical origin.
   689 	  Adobe PDF spec: Use the middle of the horizontal advance vector as
   690 	                  the X coordinate of the vertical origin.
   692 	FreeType's algorithm goes wrong if you have a really small glyph
   693 	(like the full-width, circle-like dot at the end of the sentence, as
   694 	used in CJK scripts) with large bearings.  With the FreeType
   695 	algorithm this dot gets centered on the baseline; with the PDF
   696 	algorithm it gets the correct location (in the top right).  Note
   697 	that this is a serious issue, it's like printing the dot at the end
   698 	of a Roman sentence at the center of the textline instead of on the
   699 	baseline like it should. So i believe the PDF spec's algorithm
   700 	should be used in FreeType as well.
   702 	The `vertBearingY' value for such small glyphs is also very strange
   703 	if no `vmtx' information is present, since the height of the bbox is
   704 	not representable for the height of the glyph visually (the
   705 	whitespace up to the baseline is part of the glyph).  The fix also
   706 	includes some code for a better estimate of `vertBearingY'.
   708 	* src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX'
   709 	is now calculated as described by the Adobe PDF Spec.  Estimate for
   710 	`vertBearingY' now works better for small glyphs completely above or
   711 	below the baseline into account.
   713 	* src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now
   714 	calculated as described by the Adobe PDF Spec.  Vertical metrics
   715 	information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS
   716 	was not defined.
   718 	* src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
   719 	now calculated as described by the Adobe PDF Spec.
   721 2009-09-01  John Tytgat  <John.Tytgat@esko.com>
   723 	Fix custom cmap for empty Type 1 font (Savannah bug #27294).
   725 	* include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update
   726 	comment to reflect revised code_last meaning.
   727 	* src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c
   728 	(T42_Open_Face): Assign max_char as highest character code + 1 and
   729 	use this for T1_EncodingRecRec_::code_last.
   730 	* src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised
   731 	T1_EncodingRecRec_::code_last meaning.
   733 2009-08-25  Werner Lemberg  <wl@gnu.org>
   735 	Fix rendering of horizontally compressed CFFs.
   736 	Bug reported by Ivan Nincic <inincic@pdftron.com>.
   738 	* src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
   739 	`font_matrix' also.
   741 	* docs/CHANGES: Updated.
   743 2009-08-03  suyu0925@gmail.com
   745 	Don't call `ft_fseek' every time when executing `ft_fread'.
   747 	* src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
   748 	(ft_ansi_stream_io): Implement it.
   750 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   752 	sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
   754 	* src/sfnt/ttcmap.c (tt_cmap14_char_var_index,
   755 	tt_cmap14_char_var_isdefault, tt_cmap14_char_variants,
   756 	tt_cmap14_variant_chars): Correct mismatches from
   757 	FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments
   758 	are replaced by FT_UInt32 arguments.
   760 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   762 	sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
   764 	* src/sfnt/ttcmap.c (tt_cmap12_char_next):
   765 	Insert explicit cast from FT_UFast to FT_UInt32
   766 	for return value.
   768 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   770 	psaux: Fix a few casts to FT_Int32 value.
   772 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings):
   773 	Fix a few casts setting `value' from FT_Long to FT_Int32,
   774 	because `value' is typed as FT_Int32 since 2009-06-22.
   776 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   778 	sfnt: Fix a data type mismatching with its source.
   780 	* src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the
   781 	type of `gindex' from FT_ULong to FT_UInt because
   782 	it is set by FT_UInt tt_cmap13_char_map_binary() or
   783 	TT_CMap13->cur_gindex.
   785 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   787 	sfnt: Extend a few local variables to load 32-bit values.
   789 	* src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
   790 	and `kern' to load 32-bit values.
   792 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   794 	pfr: Extend `num_aux' to take 32-bit value.
   796 	* src/pfr/pfrload.c (pfr_phy_font_load): Extend
   797 	`num_aux' to load 32-bit value.
   799 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   801 	pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
   803 	* src/pcf/pcfread.c (pcf_get_properties): Load `nprops'
   804 	as FT_ULong value from PCF file, but truncate it as
   805 	int to fit PCF_Face->nprops.  The number of truncated
   806 	properties is shown in the trace message.
   808 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   810 	gxvalid: Extend a few local variables to reduce the casts.
   812 	* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
   813 	Extend `type' and `rest' to take FT_ULong values.
   815 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   817 	gxvalid: Extend `settingTable' to take 32-bit offset.
   819 	* src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
   820 	Extend `settingTable' to take 32-bit offset.
   822 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   824 	autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
   826 	* src/autofit/afglobal.c (af_face_globals_is_digit,
   827 	af_face_globals_compute_script_coverage): Cast FT_Long
   828 	globals->glyph_count to FT_ULong, to compare with FT_UInt
   829 	gindex.
   831 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   833 	smooth: Exclude 16-bit system in invalid pitch/height check.
   835 	* src/smooth/ftsmooth.c (ft_smooth_render_generic):
   836 	pitch and height are typed as FT_UInt but checked to fit
   837 	16-bit range, to avoid the overflows.  On 16-bit system,
   838 	this checking inserts a conditional that never occurs.
   840 2009-07-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   842 	cff: Type large constants > 0x7FFF as long for 16-bit systems.
   844 	* src/cff/cffload.c (cff_charset_load): Type large
   845 	constants > 0x7FFF as long, because normal constants
   846 	are typed signed integer that is less than 0x8000 on
   847 	16-bit systems.
   849 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   851 	base: Remove an unused variable.
   853 	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
   854 	unused variable `library'.  glyph->library is used.
   856 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   858 	cache: Check higher bits in flags for non ILP32 systems.
   860 	4 public functions ought to take FT_ULong flags, but take
   861 	FT_UInt flags. To keep binary compatibility, we drop higher
   862 	bits on non ILP32 platforms,
   863 		ILP64 systems: No drop occurs.
   864 		LP64 systems: Higher bits are not used.
   865 		16-bit systems: Drop can occur.
   866 	See
   867 	http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html
   868 	These functions will be refined to take FT_ULong flags in
   869 	next bump with incompatible API change.
   871 	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup):
   872 	Check `flags' in `type', the 2nd argument.
   873 	(FTC_SBitCache_Lookup): Ditto.
   874 	(FTC_ImageCache_LookupScaler): Check `load_flags',
   875 	the 3rd argument.
   876 	(FTC_SBitCache_LookupScaler): Ditto.
   878 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   880 	sfnt: Ignore invalid GIDs in glyph name lookup.
   882 	* include/freetype/internal/fttrace.h:
   883 	New trace module for sfdriver.c is added.
   885 	* src/sfnt/sfdriver.c (sfnt_get_name_index):
   886 	Restrict glyph name lookup to FT_UInt GID.
   887 	Genuine TrueType can hold 16-bit glyphs.
   889 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   891 	pcf: Fix a comparison between FT_Long and FT_ULong.
   893 	* src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
   894 	if PCF_Face->nemetrics is negative.
   896 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   898 	gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
   900 	* src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
   901 	Extend the 3rd argument `nFeatureFlags' to FT_ULong.
   902 	* src/gxvalid/gxvmort.h: Ditto.
   904 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   906 	sfnt: Insert explicit cast for LP64 system.
   908 	* src/sfnt/ttkern.c (tt_face_load_kern): Insert
   909 	cast from unsigned long to FT_UInt32.
   911 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   913 	gxvalid: Guarantee `just' table size upto 32-bit.
   915 	* src/gxvalid/gxvjust.c (gxv_just_validate):
   916 	The type of `offset' is changed from FT_UInt to
   917 	FT_Offset, for 16-bit platforms.
   919 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   921 	gxvalid: Guarantee `trak' table size upto 32-bit.
   923 	* src/gxvalid/gxvtrak.c (gxv_trak_validate):
   924 	The type of `offset' is changed from FT_UInt to
   925 	FT_Offset, for 16-bit platforms.
   927 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   929 	type1: Fix a data type mismatching with its source.
   931 	* include/freetype/internal/t1types.h: The type of
   932 	T1_Face->buildchar is matched with T1_Decorder->top.
   934 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   936 	pfr: Fix a data type mismatching with its source.
   938 	* src/pfr/pfrtypes.h: The type of PFR_KernItem->offset
   939 	is extended from FT_UInt32 to FT_Offset, because it is
   940 	calculated with the pointer difference, in
   941 	pfr_extra_item_load_kerning_pairs().
   943 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   945 	pfr: Fix a data type mismatching with its source.
   947 	* src/pfr/pfrtypes.h: The type of PFR_PhysFont->chars_offset
   948 	is extended from FT_UInt32 to FT_Offset, because it is
   949 	calculated with the pointer difference in pfr_phy_font_load().
   951 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   953 	pfr: Fix a data type mismatching with its source.
   955 	* src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset
   956 	is extended from FT_UInt32 to FT_Long, because it is
   957 	loaded by FT_STREAM_POS() in pfr_phy_font_load().
   959 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   961 	smooth: Improve the format in debug message.
   963 	* src/smooth/ftgrays.c (gray_dump_cells): Improve the
   964 	format specifications to dump variables.
   966 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   968 	sfnt: Fix a data type mismatching with its source.
   970 	* src/sfnt/sfobjs.c (sfnt_load_face): The type of
   971 	local `flags' is matched with FT_Face->face_flags.
   973 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   975 	psaux: Fix a data type mismatching with its source.
   977 	* include/freetype/internal/psaux.h: The type of
   978 	T1_DecorderRec.buildchar is matched with
   979 	T1_DecorderRec.top.
   981 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   983 	truetype: Extend TrueType GX packed deltas to FT_Offset.
   985 	* src/truetype/ttgxvar.c (ft_var_readpackeddeltas):
   986 	The type of 2nd argument `delta_cnt' is changed from
   987 	FT_Int to FT_Offset, because its source can be cvt
   988 	table size calculated from stream position.
   990 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   992 	truetype: Extend mmvar_len to hold size_t values.
   994 	* src/truetype/ttgxvar.h: The type of
   995 	GX_BlendRec.mmvar_len is changed from FT_Int to
   996 	FT_Offset, because TT_Get_MM_Var() calculates it
   997 	by sizeof() results.
   999 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1001 	truetype: Check invalid function number in IDEF instruction.
  1003 	* src/truetype/ttinterp.c (Ins_IDEF): Check
  1004 	if the operand fits to 8-bit opcode limitation.
  1006 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1008 	truetype: Check invalid function number in FDEF instruction.
  1010 	* src/truetype/ttinterp.c (Ins_FDEF): Check
  1011 	if the operand fits 16-bit function number.
  1013 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1015 	truetype: Truncate the deltas of composite glyph at 16-bit values.
  1017 	* src/truetype/ttgload.c (load_truetype_glyph):
  1018 	Insert cast from FT_Long (deltas[i].{x,y}) to
  1019 	FT_Int16 in the summation of deltas[] for composite
  1020 	glyphs.  Because deltas[i] is typed as FT_Pos,
  1021 	its component x, y are typed as FT_Long, but
  1022 	their sources are always FT_Int16 when they are
  1023 	loaded by ft_var_readpackeddeltas().  However,
  1024 	the limitation about the summed deltas is unclear.
  1026 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1028 	truetype: Truncate the instructions upto 16-bit per a glyph.
  1030 	* src/truetype/ttgload.c (TT_Hint_Glyph): Truncate
  1031 	the instructions upto 16-bit length per a glyph.
  1033 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1035 	truetype: Cast the numerical operands to 32-bit for LP64 systems.
  1037 	* src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP,
  1038 	Ins_MIRP): Insert cast from long (args[], the
  1039 	operands passed to TrueType operator) to FT_Int32
  1040 	(the argument of TT_MulFix14()).
  1042 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1044 	truetype: Cast the project vector to 32-bit for LP64 system.
  1046 	* src/truetype/ttinterp.c (Project, DualProject):
  1047 	Insert casts from FT_Pos (the arguments `dx', `dy')
  1048 	to FT_UInt32 (the argument to TT_DotFix14()).
  1050 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1052 	truetype: Cast the scaling params to 32-bit for LP64 system.
  1054 	* src/truetype/ttgload.c (TT_Process_Composite_Component):
  1055 	Insert casts from long (return value of FT_MulFix()) to
  1056 	FT_Int32 (the argument to FT_SqrtFixed()).
  1058 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1060 	sfnt: Cast a character code to FT_UInt32 for LP64 system.
  1062 	* src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
  1063 	tt_cmap14_variants, tt_cmap14_char_variants,
  1064 	tt_cmap14_def_char_count, tt_cmap14_get_def_chars,
  1065 	tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars)
  1066 	Insert casts when FT_UInt32 variable is loaded by
  1067 	TT_NEXT_{UINT24|ULONG}.  Because most of them are
  1068 	compared with FT_UInt32 values in public API, replacing
  1069 	FT_UFast is not recommended.
  1071 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1073 	sfnt: Cast a character code to FT_UInt32 for LP64 system.
  1075 	* src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next):
  1076 	Insert the casts from unsigned long constant to
  1077 	FT_UInt32.
  1079 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1081 	sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF.
  1083 	* include/freetype/internal/tttypes.h: The type
  1084 	of TT_BDF->string_size is extended from FT_UInt32
  1085 	to FT_ULong, because BDF specification does not
  1086 	restrict the length of string.
  1087 	* src/sfnt/ttbdf.c: The scratch variable `strings'
  1088 	to load TT_BDF->string_size is matched with
  1089 	TT_BDF->string_size.
  1091 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1093 	psaux: Handle the string length by FT_Offset variables.
  1095 	* src/psaux/afmparse.c (afm_parser_next_key,
  1096 	afm_tokenize, afm_parse_track_kern,
  1097 	afm_parse_kern_pairs, afm_parse_kern_data,
  1098 	afm_parser_skip_section, afm_parser_parse):
  1099 	The length of key is handled by FT_Offset,
  1100 	instead of FT_UInt.  Although the length of
  1101 	PostScript strings or name object is 16-bit,
  1102 	AFM_STREAM_KEY_LEN() calculates the length
  1103 	from the pointer difference.
  1105 	* src/psaux/afmparse.h (afm_parser_next_key):
  1106 	Ditto.
  1108 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1110 	pcf: Fix some data types mismatching with their sources.
  1112 	* src/pcf/pcfread.c (pcf_get_bitmaps): The types
  1113 	of `nbitmaps', `i', `sizebitmaps' are matched with
  1114 	the type of area FT_Bitmap.pitch * FT_Bitmap.rows.
  1116 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1118 	pcf: Handle the string length by size_t variables.
  1120 	* src/pcf/pcfread.c (pcf_interpret_style): The types
  1121 	of nn, len, lengths[4] are changed to size_t, because
  1122 	they are loaded by (or compared with) ft_strlen().
  1124 	* src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap,
  1125 	FourByteSwap): The type of the 2nd argument `nbytes'
  1126 	is changed to size_t, for similarity with ANSI C
  1127 	string functions.
  1129 	* src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of
  1130 	`bytes' is changed to FT_Offset, because it is passed
  1131 	to FT_ALLOC(), via ft_glyphslot_alloc_bitmap().  At
  1132 	least, using unsigned type is better.
  1134 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1136 	pcf: Fix some data types mismatching with their sources.
  1138 	* src/pcf/pcfread.c (pcf_seek_to_table_type,
  1139 	pcf_has_table_type): The type of 3rd argument
  1140 	`ntables' is matched with PCF_Toc->count.
  1142 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1144 	otvalid: Truncate the glyph index to 16-bit.
  1146 	* src/otvalid/otvalid.c (otv_validate): Checks
  1147 	face->num_glyphs does not exceed 16-bit limit,
  1148 	pass FT_UInt num_glyphs to backend functions
  1149 	otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate().
  1151 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1153 	cache: Insert explict casts for LP64 systems.
  1155 	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup,
  1156 	FTC_SBitCache_Lookup): The type of FTC_ImageType->width
  1157 	is FT_Int, so the cast to unsigned larger type FT_ULong
  1158 	is introduced for the comparisons with 0x10000L for
  1159 	LP64 platform.
  1161 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1163 	cache: Fix some data types mismatching with their sources.
  1165 	* src/cache/ftccache.h: The type of return value
  1166 	by FTC_Node_WeightFunc function is changed to
  1167 	FT_Offset.  The type of FTC_CacheClass->cache_size
  1168 	is changed to FT_Offset, too.
  1170 	* src/cache/ftccback.h (ft_inode_weight,
  1171 	ftc_snode_weight): Ditto.
  1173 	* src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto.
  1175 	* src/cache/ftcimage.c (ftc_inode_weight,
  1176 	FTC_INode_Weight): Ditto.
  1178 	* src/cache/ftcsbits.c (ftc_snode_weight,
  1179 	FTC_SNode_Weight): Ditto.
  1181 	* src/cache/ftcmru.h: The type of
  1182 	FTC_MruListClass->node_size is changed to FT_Offset,
  1183 	because it is passed to FT_ALLOC() to specify the
  1184 	size of buffer.
  1186 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1188 	XXX_cmap_encoding_char_next() return FT_UInt32 values.
  1190 	* include/freetype/internal/services/svpscmap.h:
  1191 	The size of the charcode value returned by
  1192 	the function typed PS_Unicodes_CharNextFunc is
  1193 	matched with its input charcode value.
  1195 	* src/cff/cffmap.c (cff_cmap_encoding_char_next,
  1196 	cff_cmap_unicode_char_next): Ditto.
  1198 	* src/pfr/pfrmap.c (pfr_cmap_encoding_char_next):
  1199 	Ditto.
  1201 	* src/psaux/t1cmap.c (t1_cmap_std_char_next,
  1202 	t1_cmap_custom_char_next, t1_cmap_unicode_char_next):
  1203 	Ditto.
  1205 	* src/psnames/psmodule.c (ps_unicodes_char_next):
  1206 	Ditto.
  1208 	* src/winfonts/winfnt.c (fnt_cmap_char_next):
  1209 	Ditto.
  1211 	* src/sfnt/ttcmap.c (tt_cmap0_char_next,
  1212 	tt_cmap2_char_next, tt_cmap4_char_next,
  1213 	tt_cmap6_char_next, tt_cmap10_char_next,
  1214 	tt_cmap12_char_next, tt_cmap13_char_next): Ditto.
  1215 	(tt_cmap14_char_variants): Handle base unicode
  1216 	codepoint by FT_UInt32 variable to avoid overflow
  1217 	on 16-bit platforms.
  1218 	(tt_cmap14_ensure): The type of `num_results' is
  1219 	extend to FT_UInt32, to cover unsigned 32-bit
  1220 	`numVarSelectorRecords' in cmap14 table header.
  1222 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1224 	truetype: Extend TT_Face->num_locations for broken TTFs.
  1226 	* include/freetype/internal/tttypes.h:
  1227 	TT_Face->num_locations are extended from FT_UInt
  1228 	to FT_ULong, to stand with broken huge loca table.
  1229 	Some people insists there are broken TTF including
  1230 	the glyphs over 16-bit limitation, in PRC market.
  1231 	* src/truetype/ttpload.c (tt_face_load_loca):
  1232 	Remove unrequired 16-bit truncation for FT_UInt
  1233 	TT_Face->num_locations.
  1235 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1237 	smooth: Fix some data types mismatching with their sources.
  1239 	* src/smooth/ftgrays.c: The type of `TCoord' is
  1240 	matched to `TPos', because they are mixed in
  1241 	gray_set_cell().  The type of TCell->x is extended
  1242 	to `TPos', because gray_find_cell() sets it by
  1243 	TWorker.ex.  The type of TCell->cover is extended
  1244 	to `TCoord', because gray_render_scanline() adds
  1245 	TCoord value to it.  The type of TWork.cover is matched
  1246 	with TCell->cover.  The types of
  1247 	TWork.{max_cells,num_cells} are changed to FT_PtrDist,
  1248 	because they are calculated from the memory addresses.
  1249 	The type of TWork.ycount is changed to TPos, because
  1250 	it is calculated from TPos variables.
  1251 	(gray_find_cell): The type of `x' is matched with
  1252 	its initial value ras.ex.
  1253 	(gray_render_scanline): The types of `mod', `lift'
  1254 	and `rem' are changed to TCoord, because their values
  1255 	are set with explicit casts to TCoord.  When ras.area
  1256 	is updated by the differential values including
  1257 	`delta', they are explicitly cast to TArea, because
  1258 	the type of `delta' is not TArea but TCoord.
  1259 	(gray_render_line): The type of `mod' is extended
  1260 	from int to TCoord, because (TCoord)dy is added to mod.
  1261 	(gray_hline): The argument `acount' is extended to
  1262 	TCoord, to match with the parameters in the callers.
  1264 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1266 	cff: Fix some data types mismatching with their sources.
  1268 	* src/cff/cffobjs.c (cff_face_init): The type of
  1269 	`scaling' is matched with the scaling parameter
  1270 	in FT_Matrix_Multiply_Scaled() and
  1271 	FT_Vector_Transform_Scaled().
  1273 	* src/cff/cffparse.c (cff_parse_real): The type of
  1274 	`power_ten', `scaling', `exponent_add',
  1275 	`integer_length', `fraction_length',
  1276 	`new_fraction_length' and `shift' are matched with
  1277 	the type of `exponent' to avoid unexpected truncation.
  1278 	(cff_parse_fixed_scaled): The type of `scaling' is
  1279 	matched with the `scaling' argument to
  1280 	cff_parse_real().
  1281 	(cff_parse_fixed_dynamic): Ditto.
  1282 	(cff_parse_font_matrix): The type of `scaling' is
  1283 	matched with the `scaling' argument to
  1284 	cff_parse_dynamic().
  1286 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1288 	autofit: Fix some data types mismatching with their sources.
  1290 	* src/autofit/afglobal.c: Correct the type of
  1291 	AF_FaceGlobalsRec.glyph_count to match with
  1292 	FT_Face->num_glyphs.
  1293 	(af_face_globals_compute_script_coverage):
  1294 	Insert explicit cast to compare
  1295 	FT_Long AF_FaceGlobalsRec.glyph_count versus
  1296 	FT_UInt gindex.  The type of `nn' is changed
  1297 	to scan glyph index upto AF_FaceGlobalsRec.glyph_count.
  1298 	(af_face_globals_get_metrics): The type of `script_max'
  1299 	is changed to cover size_t value.  Insert explicit cast
  1300 	to compare FT_Long AF_FaceGlobalsRec.glyph_count versus
  1301 	FT_UInt gindex.
  1303 	* src/autofit/afhints.c (af_axis_hints_new_segment):
  1304 	Insert explicit cast to calculate `big_max' from
  1305 	integer and size_t values.
  1306 	(af_axis_hints_new_edge): Ditto.
  1308 	* src/autofit/aflatin.c (af_latin_metrics_init_blues):
  1309 	The type of `best_y' is matched to FT_Vector.y.
  1310 	(af_latin_compute_stem_width): The type of `delta' is
  1311 	matched to `dist' and `org_dist'.
  1313 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1315 	autofit: Count the size of the memory object by ptrdiff_t.
  1317 	* src/autofit/afcjk.c (af_cjk_hint_edges): The
  1318 	number of edges `n_edges' should be counted by
  1319 	FT_PtrDist variable instead of FT_Int.
  1321 	* src/autofit/aflatin.c (af_latin_hint_edges):
  1322 	Ditto.
  1324 	* src/autofit/aftypes.h: In AF_ScriptClassRec,
  1325 	the size of metric `script_metrics_size' should
  1326 	be counted by FT_Offset variable instead of FT_UInt.
  1328 	* src/autofit/afhints.c
  1329 	(af_glyph_hints_align_strong_points): The cursors
  1330 	for the edges `min', `max', `mid' in the memory
  1331 	buffer should be typed FT_PtrDist.
  1333 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1335 	autofit: Fix for unused variable `first'.
  1337 	* src/autofit/afhints.c (af_glyph_hints_reload): Insert
  1338 	FT_UNUSED() to hide the unused variable warning.
  1340 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1342 	Improve bitmap size or pixel variables for 16-bit systems.
  1344 	* include/freetype/config/ftstdlib.h: Introduce
  1345 	FT_INT_MIN, to use in signed integer overflow in
  1346 	16-bit and 64-bit platforms.
  1348 	* include/freetype/internal/fttrace.h: Add a tracer
  1349 	to ftsynth.c.
  1351 	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Check
  1352 	invalid strength causing integer overflow on 16-bit
  1353 	platform.
  1355 	* src/base/ftcalc.c (ft_corner_orientation): Change
  1356 	the internal calculation from FT_Int to FT_Long, to
  1357 	avoid an overflow on 16-bit platforms.  The caller of
  1358 	this function should use only the sign of result,
  1359 	so the cast to FT_Int is acceptable.
  1361 	* src/base/ftsynth.c: Introduce a tracer for synth module.
  1362 	(FT_GlyphSlot_Embolden): Check invalid strength causing
  1363 	integer overflow on 16-bit platform.
  1365 	* src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index
  1366 	in FT2 API is typed as FT_UInt, although BDF driver
  1367 	can handle unsigned long glyph index internally.  To
  1368 	avoid integer overflow on 16-bit platform, too large
  1369 	glyph index should be excluded.
  1370 	(BDF_Glyph_Load): The glyph pitch in FT2 is typed as
  1371 	FT_UInt, although BDF driver can handle unsigned long
  1372 	glyph pitch internally.  To avoid integer overflow on
  1373 	16-bit platform, too large glyph pitch should not be
  1374 	returned.
  1376 	* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph
  1377 	pitch in FT2 is typed as FT_UInt, although PFR font
  1378 	format can include huge bitmap glyph with 24-bit pitch
  1379 	(however, a glyph spends 16.7 pixel, it's not realistic).
  1380 	To avoid integer overflow on 16-bit platform, huge
  1381 	bitmap glyph should be excluded.
  1383 	* src/smooth/ftgrays.c (gray_hline): As FT_Span.x is
  1384 	truncated to fit its type (16-bit short), FT_Span.y
  1385 	should be truncated to fit its type (FT_Int).
  1387 	* src/cff/cffdrivr.c (cff_get_ros): CFF specification
  1388 	defines the supplement in ROS as a real number.
  1389 	Truncate it to fit public FT2 API.
  1391 	* src/cff/cffparse.c (cff_parse_cid_ros): Warn the
  1392 	supplement if it is truncated or rounded in cff_get_ros().
  1394 	* src/cff/cfftypes.h: Change the type of internal variable
  1395 	`supplement' from FT_Long to FT_ULong to fit the signedness
  1396 	to the type in public API.
  1398 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1400 	psaux: Prevent invalid arguments to afm_parser_read_vals().
  1402 	* src/psaux/afmparse.c (afm_parser_read_vals): Change
  1403 	the type of `n' to prevent negative number how many
  1404 	arguments should be parsed.
  1406 	* src/psaux/afmparse.h (afm_parser_read_vals): Ditto.
  1408 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1410 	base: Prevent some overflows on LP64 systems.
  1412 	* src/base/ftadvance.c (FT_Get_Advances): Cast the
  1413 	unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
  1414 	for LP64 platforms.
  1416 	* src/base/ftcalc.c (FT_Sqrt32): All internal variables
  1417 	are changed to FT_UInt32 from FT_ULong.
  1418 	(FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms.
  1419 	This function is designed for 32-bit integer, although
  1420 	their arguments and return value are FT_Long.
  1422 	* src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode'
  1423 	is within unsigned 32-bit integer for LP64 platforms.
  1424 	(FT_Face_GetCharVariantIndex): Check `charcode' and
  1425 	`variantSelector' are within 32-bit integer for LP64
  1426 	platforms.
  1427 	(FT_Face_GetCharsOfVariant): Check `variantSelector' is
  1428 	within unsigned 32-bit integer for LP64 platforms.
  1430 	* src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed
  1431 	variable `val' and unsigned long constant FT_TRIG_SCALE
  1432 	are cast to FT_UInt32, when calculates FT_UInt32.
  1433 	(FT_Vector_Rotate): The long constant 1L is cast to
  1434 	FT_Int32 to calculate FT_Int32 `half'.
  1436 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1438 	cff: Cast the long variables to 32-bit for LP64 systems.
  1440 	* src/cff/cffdrivr.c (cff_get_advances): Insert
  1441 	explicit cast to modify a 32-bit flag by unsigned
  1442 	long constant.
  1444 	* src/cff/cffobjs.c (cff_face_init): Ditto.
  1446 	* src/cff/cffgload.c (cff_decoder_parse_charstrings):
  1447 	Replace the casts to FT_Long by the casts to FT_Int32
  1448 	for LP64 platforms.
  1450 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1452 	pcf: Improve PCF_PropertyRec.value names on LP64 platforms.
  1454 	* src/pcf/pcf.h: In PCF_PropertyRec.value, the member
  1455 	`integer' is replaced by `l', `cardinal' is replaced
  1456 	by `ul', to fix the difference between the name and
  1457 	the types on LP64 platforms.
  1459 	* src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect
  1460 	PCF_PropertyRec.value change, with appropriate casts
  1461 	to FT_Int32/FT_UInt32.  Their destinations
  1462 	BDF_PropertyRec.{integer|cardinal} are public and
  1463 	explicitly defined as FT_Int32/FT_UInt32.
  1465 	* src/pcf/pcfread.c (pcf_get_properties, pcf_load_font):
  1466 	Reflect PCF_PropertyRec.value change.
  1468 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1470 	pcf: Fix some data types mismatching with their sources.
  1472 	* src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of
  1473 	`code' is matched to PCF_Encoding->enc.
  1474 	(pcf_cmap_char_next): The type of `charcode' is matched
  1475 	to PCF_Encoding->enc.  When *acharcode is set by charcode,
  1476 	an overflow is checked and cast to unsigned 32-bit
  1477 	integer.
  1479 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1481 	bdf: Improve bdf_property_t.value names for LP64 platforms.
  1483 	* src/bdf/bdf.h: In bdf_property_t.value, the member
  1484 	`int32' is replaced by `l', `card32' is replaced by
  1485 	`ul', to fix the difference between the name and the
  1486 	types on LP64 platforms.
  1488 	* src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect
  1489 	bdf_property_t.value change.
  1490 	(bdf_get_bdf_property): Reflect bdf_property_t.value
  1491 	change, with appropriate casts to FT_Int32/FT_UInt32.
  1492 	Their destinations BDF_PropertyRec.{integer|cardinal}
  1493 	are public and explicitly defined as FT_Int32/FT_UInt32.
  1495 	* src/bdf/bdflib.c (_bdf_add_property): Reflect
  1496 	bdf_property_t.value change.
  1498 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1500 	bdf: Fix some data types mismatching with their sources.
  1502 	* src/bdf/bdrdrivr.c (bdf_cmap_char_index): The type
  1503 	of `code' is matched with BDF_encoding_el->enc.
  1504 	(bdf_cmap_char_next): The type of `charcode' is
  1505 	matched with BDF_encoding_el->enc.  When *acharcode
  1506 	is set by charcode, an overflow is checked and
  1507 	cast to unsigned 32-bit integer.
  1509 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1511 	autofit: Improve Unicode range definitions.
  1513 	* src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro
  1514 	to declare a range by two unsigned 32-bit integer,
  1515 	to avoid 64-bit range definition on LP64 platforms.
  1517 	* src/autofit/aflatin.c (af_latin_uniranges): Ditto.
  1519 	* src/autofit/aflatin2.c (af_latin2_uniranges): Ditto.
  1521 	* src/autofit/afindic.c (af_indic_uniranges): Ditto.
  1523 	* src/autofit/afcjk.c (af_cjk_uniranges): Declare
  1524 	the ranges by AF_UNIRANGE_REC.
  1526 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1528 	smooth: Fix a data type mismatching with its source.
  1530 	* src/smooth/ftgrays.c (gray_sweep): The type of
  1531 	`area' is matched with the 3rd argument `area'
  1532 	of gray_hline().
  1534 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1536 	smooth: Fix a data type mismatching with its source.
  1538 	* src/smooth/ftgrays.c (gray_render_line): The type
  1539 	of `area' is matched with TWorker.area.
  1541 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1543 	cache: Disable the legacy compatibility if 16-bit system.
  1545 	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude
  1546 	the legacy behaviour from 16-bit platform, because the
  1547 	current hack cannot detect the caller uses this function
  1548 	via legacy convension.
  1549 	(FTC_SBitCache_Lookup): Ditto.
  1551 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1553 	cache: Check 32-bit glyph index on 16-bit systems.
  1555 	* src/cache/ftcbasic.c (ftc_basic_family_get_count):
  1556 	Check overflow caused by the face including large
  1557 	number of glyphs > 64k.
  1559 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1561 	cache: Fix some data types mismatching with their sources.
  1563 	* src/cache/ftccache.c (ftc_cache_resize): The types of
  1564 	`p', `mask', `count' are matched with FTC_Cache->{p,mask}.
  1565 	(FTC_Cache_Clear): The type of `old_index' is matched to
  1566 	FTC_Cache->{p,mask}.
  1568 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type
  1569 	of `_idx' is matched with FTC_Cache->{p,mask}.
  1571 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1573 	cache: Fix some data types mismatching with their sources.
  1575 	* src/cache/ftcsbits.c (ftc_snode_load): The types
  1576 	of `xadvance' and `yadvance' are matched with
  1577 	FT_GlyphSlot->advance.{x|y}.
  1579 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1581 	cache: Cast NULL to a required function type explicitly.
  1583 	* src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID):
  1584 	Insert explicit cast from NULL to function type.
  1586 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1588 	fttypes.h: Cast FT_MAKE_TAG output to FT_Tag exlicitly.
  1590 	* include/freetype/fttypes.h (FT_MAKE_TAG):
  1591 	Cast the result to FT_Tag.
  1593 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1595 	psnames: Handle Unicode codepoints by FT_UInt32 variables.
  1597 	* src/psnames/psmodule.c (BASE_GLYPH): Cast the result
  1598 	to unsigned 32-bit integer for LP64 platform.
  1599 	(ps_unicode_value): Return the value by unsigned 32-bit
  1600 	integer instead of unsigned long.
  1602 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1604 	psaux: Use size_t variable to pass the buffer size.
  1606 	* src/psaux/psaux.h (to_bytes): The type of `max_bytes'
  1607 	(the argument to pass the buffer size) is changed to
  1608 	size_t, to match with ANSI C string functions.
  1610 	* src/psaux/psconv.h (PS_Conv_StringDecode,
  1611 	PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
  1613 	* src/psaux/psconv.c (PS_Conv_StringDecode,
  1614 	PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
  1616 	* src/psaux/psobjs.h (ps_parser_to_bytes): Ditto.
  1618 	* src/psaux/psobjs.c (ps_parser_to_bytes): Ditto.
  1620 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1622 	type1: Use size_t variable to pass the string length.
  1624 	* psaux.h: The type of `len' (the argument to pass
  1625 	the buffer size to the function in AFM_ParserRec)
  1626 	is changed to size_t, to match with ANSI C string
  1627 	functions.
  1629 	* t1afm.c (t1_get_index): Ditto.
  1631 	* test_afm.c (dummy_get_index): Ditto.
  1633 	* afmparse.c (afm_parser_read_vals): To call
  1634 	AFM_ParserRec.get_index, the length of token
  1635 	`len' is cast to size_t.
  1637 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1639 	cid: Fix some data types mismatching with their sources.
  1641 	* src/cid/cidparse.c (cid_parser_new): The types of
  1642 	`read_len' and `stream_len' are matched to
  1643 	FT_Stream->size.  Unrequired cast is removed.
  1645 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1647 	cff: Fix for unused variable `rest'.
  1649 	* src/cff/cffparse.c (cff_parse_real): Insert
  1650 	FT_UNUSED() to hide the unused variable warning.
  1652 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1654 	cff: Fix some data types mismatching with their sources.
  1656 	* src/cff/cffgload.c (cff_slot_load): The types of	
  1657 	`top_upm' and `sub_upm' are matched with
  1658 	CFF_FontRecDict->units_per_em.
  1660 	* src/cff/cffobjs.c (cff_size_select): Ditto.
  1661 	(cff_size_request): Ditto.
  1663 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1665 	bdf: Fix some data types mismatching with their sources.
  1667 	* bdflib.c (_bdf_list_ensure): The type of `num_items'
  1668 	is matched with _bdf_list_t.used.  Also the types of
  1669 	`oldsize', `newsize', `bigsize' are matched too.
  1670 	(_bdf_readstream): `cursor' is used as an offset to
  1671 	the pointer, it should be typed as FT_Offset.  Also
  1672 	the types of `bytes', `start', `end', `avail' are matched.
  1674 	* bdfdrivr.c: The type of BDF_CMap->num_encodings is
  1675 	matched with FT_CMap->clazz->size.
  1676 	(bdf_cmap_char_index): The types of `min', `max', `mid'
  1677 	are matched with BDF_CMap->num_encodings.  The type of
  1678 	`result' is matched with encoding->glyph.
  1679 	(bdf_cmap_char_next): Ditto, the type of `code' is
  1680 	matched with BDF_encoding_el.enc.
  1681 	(bdf_interpret_style): The type of `lengths' is changed
  1682 	to size_t, to take the value by ft_strlen().  Also the
  1683 	types of `len', `nn', `mm' are matched.
  1685 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1687 	sfnt: Count the size of the memory object by ptrdiff_t.
  1689 	* src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of
  1690 	`peroperty_len' is changed from FT_UInt to FT_Offset,
  1691 	to match with size_t, which is appropriate type for the
  1692 	object in the memory buffer.
  1694 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1696 	lzw: Count the size of the memory object by ptrdiff_t.
  1698 	* src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total,
  1699 	stack_size} are changed from FT_UInt to FT_Offset, to match
  1700 	with size_t, which is appropriate type for the object in
  1701 	the memory buffer.
  1703 	* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of
  1704 	`old_size' and `new_size' are changed from FT_UInt to
  1705 	FT_Offset, to match with size_t, which is appropriate type
  1706 	for the object in the memory buffer.
  1708 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1710 	otvalid: Count the table size on memory by ptrdiff_t.
  1712 	* src/otvalid/otvgpos.c (otv_ValueRecord_validate):
  1713 	Change the type of table size from FT_UInt to
  1714 	FT_PtrDist because it is calculated by the memory
  1715 	addresses.
  1717 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1719 	otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset.
  1721 	* src/otvalid/otvgpos.c (otv_ExtensionPos_validate):
  1722 	Extend ExtensionOffset from FT_UInt to FT_ULong, to
  1723 	cover 32-bit offset on 16-bit platform.
  1725 	* src/otvalid/otvgsub.c (otv_ExtensionSubst_validate):
  1726 	Ditto.
  1728 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1730 	ftobjs.c: Prevent an overflow in glyph index handling.
  1732 	* src/base/ftobjs.c (FT_Face_GetCharsOfVariant):
  1733 	Improve the cast in comparison to avoid the truncation.
  1735 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1737 	Improve the variable types in raccess_make_file_name().
  1739 	* src/base/ftrfork.c (raccess_make_file_name):
  1740 	Change the type of cursor variable `tmp' to const char*,
  1741 	to prevent the unexpected modification of original pathname.
  1742 	(raccess_make_file_name): Change the type of new_length
  1743 	to size_t.
  1745 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1747 	ftpatent.c: Fix for unused variable `error'.
  1749 	* src/base/ftpatent.c (_tt_check_patents_in_range):
  1750 	Fix warning for unused variable `error'.
  1752 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1754 	type1: Check invalid string longer than PostScript limit.
  1756 	* src/type1/t1afm.c (t1_get_index): Check invalid string
  1757 	which exceeds the limit of PostScript string/name objects.
  1759 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1761 	gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default.
  1763 	* src/gzip/ftgzip.c (zcalloc, zcfree): Disable all
  1764 	zcalloc() & zfree() by zlib in zutil.c, those in
  1765 	ftgzip.c by FT2 are enabled by default.  To use
  1766 	zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC.
  1767 	See discussion:
  1768 	http://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html
  1770 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1772 	gzip: Distinguish PureC from TurboC on MSDOS.
  1774 	* src/gzip/zutil.c (zcalloc, zcfree): Enable only for
  1775 	MSDOS platform.
  1777 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1779 	gxvalid: Insert PureC pragma to allow unevaluated variables.
  1781 	* builds/atari/ATARI.H: Insert PureC pragma not to
  1782 	warn against set-but-unevaluated variable in gxvalid
  1783 	module.
  1785 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1787 	gxvalid: Pass the union by the pointer instead of the value.
  1789 	* src/gxvalid/gxvcommn.h:
  1790 	  - Declare new type `GXV_LookupValueCPtr'.
  1791 	  - Update the type of the 2nd argument to pass GXV_LookupValueDesc
  1792 	    data to the function prototyped as GXV_Lookup_Value_Validate_Func,
  1793 	    from GXV_LookupValueDesc to GXV_LookupValueCPtr.
  1794 	  - Likewise for the function prototyped as
  1795 	    GXV_Lookup_Fmt4_Transit_Func.
  1797 	  - Declare new type `GXV_StateTable_GlyphOffsetCPtr'.
  1798 	  - Update the type of the 3rd argument to pass
  1799 	    GXV_StateTable_GlyphOffsetDesc data to the function prototyped
  1800 	    as GXV_StateTable_Entry_Validate_Func, from
  1801 	    GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr.
  1803 	  - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'.
  1804 	  - Update the type of the 3rd argument to pass
  1805 	    GXV_XStateTable_GlyphOffsetDesc data to the function prototyped
  1806 	    as GXV_XStateTable_Entry_Validate_Func,
  1807 	    from GXV_XStateTable_GlyphOffsetDesc
  1808 	    to GXV_XStateTable_GlyphOffsetCPtr.
  1810 	* src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate,
  1811 	gxv_XClassTable_lookupval_validate,
  1812 	gxv_XClassTable_lookupfmt4_transit):
  1813 	Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
  1815 	* src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
  1816 	gxv_bsln_LookupFmt4_transit): Ditto.
  1818 	* src/gxvalid/gxvjust.c
  1819 	(gxv_just_pcTable_LookupValue_entry_validate,
  1820 	gxv_just_classTable_entry_validate,
  1821 	gxv_just_wdcTable_LookupValue_validate): Ditto.
  1823 	* src/gxvalid/gxvkern.c
  1824 	(gxv_kern_subtable_fmt1_entry_validate): Ditto.
  1826 	* src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate,
  1827 	gxv_lcar_LookupFmt4_transit): Ditto.
  1829 	* src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate,
  1830 	gxv_opbd_LookupFmt4_transit): Ditto.
  1832 	* src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate,
  1833 	gxv_prop_LookupFmt4_transit): Ditto.
  1835 	* src/gxvalid/gxvmort4.c
  1836 	(gxv_mort_subtable_type4_lookupval_validate): Ditto.
  1838 	* src/gxvalid/gxvmort0.c
  1839 	(gxv_mort_subtable_type0_entry_validate): Update
  1840 	from GXV_StateTable_GlyphOffsetDesc
  1841 	to GXV_StateTable_GlyphOffsetCPtr.
  1843 	* src/gxvalid/gxvmort1.c
  1844 	(gxv_mort_subtable_type1_entry_validate): Ditto.
  1846 	* src/gxvalid/gxvmort2.c
  1847 	(gxv_mort_subtable_type2_entry_validate): Ditto.
  1849 	* src/gxvalid/gxvmort5.c
  1850 	(gxv_mort_subtable_type5_entry_validate): Ditto.
  1852 	* src/gxvalid/gxvmorx2.c
  1853 	(gxv_morx_subtable_type2_entry_validate): Ditto.
  1855 	* src/gxvalid/gxvmorx5.c
  1856 	(gxv_morx_subtable_type5_entry_validate): Ditto.
  1858 	* src/gxvalid/gxvmorx1.c
  1859 	(gxv_morx_subtable_type1_entry_validate): Ditto.
  1860 	(gxv_morx_subtable_type1_LookupValue_validate,
  1861 	gxv_morx_subtable_type1_LookupFmt4_transit):
  1862 	Update from GXV_LookupValueDesc to GXV_LookupValueCPtr.
  1864 	* src/gxvalid/gxvmorx0.c
  1865 	(gxv_morx_subtable_type0_entry_validate): Update
  1866 	from GXV_XStateTable_GlyphOffsetDesc
  1867 	to GXV_XStateTable_GlyphOffsetCPtr.
  1869 2009-07-29  Fabrice Bellet  <fabrice@bellet.info>
  1871 	Fix Redhat bugzilla #513582 and Savannah bug #26849.
  1873 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix
  1874 	aliasing bug.
  1876 2009-07-19  Werner Lemberg  <wl@gnu.org>
  1878 	Document recent library changes.
  1880 	* docs/CHANGES: Do it.
  1882 2009-07-17  Werner Lemberg  <wl@gnu.org>
  1884 	Fix Savannah bug #23786.
  1886 	* src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem
  1887 	and y_ppem.  Otherwise the `*_CVT_Stretched' functions in ttinterp.c
  1888 	get never called.
  1889 	An anonymous guy suggested this change on Savannah, and it seems to
  1890 	be the right solution.
  1892 2009-07-15  Werner Lemberg  <wl@gnu.org>
  1894 	* docs/release: Updated.
  1896 2009-07-15  Werner Lemberg  <wl@gnu.org>
  1898 	README.CVS -> README.git
  1900 	* README.CVS: Renamed to...
  1901 	* README.git: This.
  1902 	Updated.
  1904 2009-07-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1906 	Borland C++ compiler patch proposed by Mirco Babin.
  1907 	http://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html.
  1909 	* builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}.
  1910 	Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform
  1911 	specific pathname syntax.
  1912 	* builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS.
  1913 	Define TE = `-e' separately (bcc32 cannot specify the pathname of
  1914 	binary executable by T = `-o').
  1915 	Extend the large page size in linking freetype.lib.
  1916 	Add extra CLEAN target to delete bcc specific temporary files.
  1917 	* builds/compiler/bcc-dev.mk: Ditto.
  1919 2009-07-14  Werner Lemberg  <wl@gnu.org>
  1921 	Fix Savannah bug #27026.
  1923 	* builds/win32/vc2005/freetype.sln: Use correct version number.
  1925 2009-07-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1927 	Add a script to check the undefined and unused trace macros.
  1929 	* src/tools/chktrcmp.py: A script to check trace_XXXX macros
  1930 	that are used in C source but undefined in fttrace.h, or
  1931 	defined in fttrace.h but unused in C sources.  See
  1932 	http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html.
  1933 	* docs/DEBUG: Mention on chktrcmp.py.
  1934 	* docs/release: Ditto.
  1936 2009-07-09  Werner Lemberg  <wl@gnu.org>
  1938 	[ftraster] Make it compile again with -D_STANDALONE_.
  1940 	* src/raster/ftraster.c [_STANDALONE_]: Define
  1941 	FT_CONFIG_STANDARD_LIBRARY_H.
  1942 	Include `string.h'.
  1943 	Don't include `rastpic.h'.
  1944 	Define FT_DEFINE_RASTER_FUNCS.
  1946 2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1948 	smooth: Check glyph size by width/height, instead of pitch/height.
  1949 	Suggested by der Mouse <mouse@Rodents-Montreal.ORG>.
  1951 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve
  1952 	the check for too large glyph.  Replace the pair of `pitch' and
  1953 	`height' by the pair of `width' and `height'.  `pitch' cannot
  1954 	be greater than `height'.  The required is checking the product
  1955 	`pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for
  1956 	the realistic case only.
  1958 2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1960 	Register 2 missing trace components, t1afm and ttbdf.
  1962 	* include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm )
  1963 	and FT_TRACE_DEF( ttbdf ).  See
  1964 	http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html
  1966 2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1968 	Register a trace component for ftgloadr.c.
  1970 	* include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ).
  1971 	The macro `trace_gloader' was already used in the initial version
  1972 	on 2002-02-24.
  1974 2009-07-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  1976 	Prevent the overflows by a glyph with too many points or contours.
  1977 	The bug is reported by Boris Letocha <b.letocha@gmc.net>.  See
  1978 	http://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html
  1979 	http://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html	
  1981 	* include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX,
  1982 	FT_OUTLINE_POINTS_MAX): New macros to declare the maximum
  1983 	values of FT_Outline.{n_contours,n_points}.
  1984 	* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the
  1985 	total numbers of points and contours cause no overflows in
  1986 	FT_Outline.{n_contours,n_points}.
  1988 	* include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
  1989 	FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and
  1990 	contours as unsigned long number, instead of signed int, to
  1991 	prevent the overflows on 16-bit systems.
  1993 2009-07-05  Bram Tassyns  <bramt@enfocus.be>
  1995 	Improve compatibility to Acroread.
  1996 	This fixes Savannah bug #26944.
  1998 	* src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to
  1999 	single CID mappings, make the lowest value win.
  2001 2009-06-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2003 	ftpatent: Fix a bug by wrong usage of service->table_info().
  2004 	http://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html
  2006 	* include/freetype/internal/services/svsfnt.h: Extend
  2007 	FT_SFNT_TableInfoFunc() to take new argument to obtain the offset
  2008 	to the specified table.
  2009 	* src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the
  2010 	table-offset to the caller function.
  2011 	* src/base/ftpatent.c (_tt_check_patents_in_table): Use new
  2012 	service->table_info().
  2013 	* src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new
  2014 	service->table_info().
  2016 2009-06-28  Werner Lemberg  <wl@gnu.org>
  2018 	[psaux, cff] Protect against nested `seac' calls.
  2020 	* include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
  2021 	(CFF_Decoder): Add `seac' boolean variable.
  2023 	* src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c
  2024 	(t1operator_seac): Use it.
  2026 2009-06-28  Werner Lemberg  <wl@gnu.org>
  2028 	Thinko.
  2030 	* src/psaux/t1decode.c (t1operator_seac)
  2031 	[FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental
  2032 	interface.
  2034 2009-06-28  Werner Lemberg  <wl@gnu.org>
  2036 	* devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define.
  2038 2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2040 	Add tools to preprocess the source files for AtariST PureC.
  2042 	* builds/atari/deflinejoiner.awk: New file to filter C source files
  2043 	for broken C preprocessor of PureC compiler.
  2045 	* builds/atari/gen-purec-patch.sh: New file to generate a patch set
  2046 	for PureC, by using deflinejoiner.awk.
  2048 2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2050 	Keep existing modules.cfg in the building tree.
  2052 	* configure: If `configure' is executed outside of the source tree,
  2053 	an existing `modules.cfg' file in the build directory should be
  2054 	kept, not overwritten by the version in the source tree.
  2056 2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2058 	Filter --srcdir= option before invoking builds/unix/configure.
  2060 	* configure: If builds/unix/configure is invoked with --srcdir
  2061 	option, the option should take `builds/unix' directory instead of
  2062 	the top source directory.  Thus the configure script in the top
  2063 	directory should modify the --srcdir= option if
  2064 	`builds/unix/configure' is invoked.
  2066 2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  2068 	Improve configure.raw for cross-building on exe-suffixed systems.
  2070 	* builds/unix/configure.raw: Fix a bug in sed script to extract
  2071 	native suffix for binary executables, patch by Peter Breitenlohner.
  2072 	http://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html
  2074 2009-06-26  Werner Lemberg  <wl@gnu.org>
  2076 	[truetype] Remove TT_SubGlyphRec.
  2078 	* src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused.
  2080 2009-06-26  Werner Lemberg  <wl@gnu.org>
  2082 	* */*: For warning messages, replace FT_ERROR with FT_TRACE0.
  2084 	FT_ERROR is now used only if a function produces a non-zero `error'
  2085 	value.
  2087 	Formatting, improving and harmonizing debug strings.
  2089 2009-06-25  Werner Lemberg  <wl@gnu.org>
  2091 	Provide version information better.
  2093 	* src/base/ftinit.c (FT_Init_FreeType): Don't set version here
  2094 	but...
  2095 	* src/base/ftobjs.c (FT_New_Library): Here.
  2097 2009-06-22  Werner Lemberg  <wl@gnu.org>
  2099 	Use 16.16 format while parsing Type 1 charstrings.
  2100 	This fixes Savannah bug #26867.
  2102 	Previously, only integers have been used which can lead to serious
  2103 	rounding errors.
  2105 	However, fractional values are only used internally; after the
  2106 	charstrings (of either Type 1 or 2) have been processed, the
  2107 	resulting coordinates get rounded to integers currently -- before
  2108 	applying scaling.  This should be fixed; at the same time a new load
  2109 	flag should be introduced, to be used in combination with
  2110 	FT_LOAD_NO_SCALE, which indicates that font units are returned in
  2111 	16.16 format.  Similarly, the incremental interface should be
  2112 	extended to allow fractional values for metrics.
  2114 	* include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift'
  2115 	field.
  2116 	* include/freetype/internal/pshints.h (T1_Hints_SetStemFunc,
  2117 	T1_Hints_SetStem3Func): Use FT_Fixed for coordinates.
  2119 	* src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H.
  2120 	(t1_build_add_point): Always convert fixed to integer.
  2121 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings):
  2122 	Use 16.16 format everywhere (except for large integers followed by a
  2123 	`div').
  2124 	[CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate
  2125 	code uncoditionally.
  2126 	Add support for random numbers and update remaining code
  2127 	accordingly; this should work now.
  2128 	(t1_operator_seac): Updated.
  2129 	* src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H.
  2130 	(ps_hints_t1stem3, t1_hints_stem): Updated.
  2132 	* src/cid/cidgload.c: Include FT_INTERNAL_CALC_H.
  2133 	(cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL],
  2134 	(cid_face_compute_max_advance, cid_slot_load_glyph): Updated.
  2136 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
  2137 	[FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph):
  2138 	Updated.
  2139 	* src/type1/t1load.c: Include FT_INTERNAL_CALC_H.
  2140 	* src/type1/t1objs.c (T1_Face_Init): Updated.
  2142 2009-06-21  Werner Lemberg  <wl@gnu.org>
  2144 	* src/pshinter/pshrec.c: Use PSH_Err_Ok.
  2146 2009-06-21  Werner Lemberg  <wl@gnu.org>
  2148 	Code beautification.
  2150 	* src/type1/t1load.c (FT_INT_TO_FIXED): Removed.
  2151 	Replace everywhere with INT_TO_FIXED.
  2152 	(FT_FIXED_TO_INT): Move to ...
  2153 	* include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here.
  2154 	Update all users.
  2156 2009-06-20  Werner Lemberg  <wl@gnu.org>
  2158 	Remove unused variables.
  2160 	* include/freetype/internal/psaux.h (T1_BuilderRec),
  2161 	src/cff/cffgload.h (CFF_Builder): Remove `last'.
  2162 	Update all users.
  2164 2009-06-20  Werner Lemberg  <wl@gnu.org>
  2166 	[psaux] Check large integers while parsing charstrings.
  2168 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large
  2169 	integers must be followed by a `div' operator.
  2171 2009-06-20  Werner Lemberg  <wl@gnu.org>
  2173 	[cff] Revert last change.
  2175 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it.
  2176 	Next time, don't confuse Type 2 charstring opcodes with TOP DICT
  2177 	values...
  2179 2009-06-20  Werner Lemberg  <wl@gnu.org>
  2181 	* src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix
  2182 	compiler warning.
  2184 2009-06-20  Werner Lemberg  <wl@gnu.org>
  2186 	* builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6.
  2188 2009-06-19  Werner Lemberg  <wl@gnu.org>
  2190 	[cff] Fix handling of reserved byte 0xFF.
  2192 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte
  2193 	0xFF is encountered.
  2195 2009-06-19  Werner Lemberg  <wl@gnu.org>
  2197 	Improve debug messages for Type1 charstrings.
  2199 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines
  2200 	after instructions.
  2201 	Prettify output.
  2203 2009-06-19  Werner Lemberg  <wl@gnu.org>
  2205 	More ftgray fixes for FT_STATIC_RASTER.
  2206 	Problems reported by suyu@cooee.cn.
  2208 	* src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use
  2209 	RAS_VAR.
  2211 2009-06-18  Werner Lemberg  <wl@gnu.org>
  2213 	* docs/CHANGES: Updated.
  2215 2009-06-18  Werner Lemberg  <wl@gnu.org>
  2217 	Fix B/W rasterization of subglyphs with different drop-out modes.
  2219 	Normally, the SCANMODE instruction (if present) to set the drop-out
  2220 	mode in a TrueType font is located in the `prep' table only and thus
  2221 	valid for all glyphs.  However, there are fonts like `pala.ttf'
  2222 	which additionally contain this instruction in the hinting code of
  2223 	some glyphs (but not all).  As a result it can happen that a
  2224 	composite glyph needs multiple drop-out modes for its subglyphs
  2225 	since the rendering state gets reset for each subglyph.
  2227 	FreeType collects the hinted outlines from all subglyphs, then it
  2228 	sends the data to the rasterizer.  It also sends the drop-out mode
  2229 	-- after hinting has been applied -- and here is the error: It sends
  2230 	the drop-out mode of the last subglyph only; drop-out modes of all
  2231 	other subglyphs are lost.
  2233 	This patch fixes the problem; it adds a second, alternative
  2234 	mechanism to pass the drop-out mode: For each contour, the
  2235 	rasterizer now checks the first `tags' array element.  If bit 2 is
  2236 	set, bits 5-7 contain the contour's drop-out mode, overriding the
  2237 	global drop-out mode.
  2239 	* include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro.
  2241 	* src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in
  2242 	`tags[0]'.
  2244 	* src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom):
  2245 	Use bits 3-5 instead of 0-2.
  2246 	(New_Profile): Set the drop-out mode in the profile's `flags' field.
  2247 	(Decompose_Curve): Check `tags[0]' and set `dropOutControl' if
  2248 	necessary.
  2249 	(Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
  2250 	Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out
  2251 	mode.
  2253 2009-06-16  Werner Lemberg  <wl@gnu.org>
  2255 	Improve scan conversion rules 4 and 6.
  2257 	Two new constraints are introduced to better identify a `stub' -- a
  2258 	concept which is only vaguely described in the OpenType
  2259 	specification.  The old code was too rigorous and suppressed more
  2260 	pixel than it should.
  2262 	  . The intersection of the two profiles with the scanline is less
  2263 	    than a half pixel.  Code related to this was already present in
  2264 	    the sources but has been commented out.
  2266 	  . The endpoint of the original contour forming a profile has a
  2267 	    distance (`overshoot') less than half a pixel to the scanline.
  2269 	Note that the two additional conditions fix almost all differences
  2270 	to the Windows rasterizer, but some problematic cases remain.
  2272 	* src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New
  2273 	macros for the `flags' field in the `TProfile' structure.
  2274 	(IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros.
  2275 	(New_Profile, End_Profile): Pass overshoot flag as an argument and
  2276 	set it accordingly.
  2277 	Update callers.
  2278 	(Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new
  2279 	constraints.
  2281 2009-06-11  Werner Lemberg  <wl@gnu.org>
  2283 	Increase precision for B/W rasterizer.
  2285 	* src/raster/ftraster.c (Set_High_Precision): Add two more bits to
  2286 	the precision.  This corrects rendering of some small glyphs, for
  2287 	example, glyph `xi' in verdana.ttf at 13 ppem.  Testing with ftbench
  2288 	on my GNU/Linux box I don't see a performance degradation.
  2290 2009-06-08  Michael Zucchi  <notzed@gmail.com>
  2292 	Handle FT_STROKER_LINECAP_BUTT.
  2293 	This fixes Savannah bug #26757.
  2295 	* src/base/ftstroke.c (ft_stroker_cap): Implement it.
  2297 2009-06-07  Harald Fernengel  <harry@kdevelop.org>
  2299 	Fix some potential out-of-memory crashes.
  2301 	* src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'.
  2302 	* src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'.
  2303 	* src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of
  2304 	`exec' in case of failure.
  2306 2009-06-07  Werner Lemberg  <wl@gnu.org>
  2308 	Simplify math.
  2309 	Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>.
  2311 	* src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
  2312 	Horizontal_Gray_Sweep_Drop): Do it.
  2314 2009-06-04  Werner Lemberg  <wl@gnu.org>
  2316 	Preparation for fixing scan conversion rules 4 and 6.
  2318 	* src/raster/ftraster.c (TFlow): Replace enumeration with...
  2319 	(Flow_Up): This macro.
  2320 	(TProfile): Replace `flow' member with `flags' bit field.
  2321 	Update all affected code.
  2323 2009-05-29  James Cloos  <cloos@jhcloos.com>
  2325 	Enable autohinting for glyphs rotated by multiples of 90°.
  2327 	* src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted
  2328 	matrices to allow rotations by multiples of 90°, not only unrotated,
  2329 	possibly slanted matrices.
  2331 2009-05-28  Werner Lemberg  <wl@gnu.org>
  2333 	Remove compiler warning.
  2334 	Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
  2336 	* src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of
  2337 	`n_edges' into `#if' block.
  2339 2009-05-28  Werner Lemberg  <wl@gnu.org>
  2341 	Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined.
  2342 	Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
  2344 	* src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]:
  2345 	Make it work.
  2346 	Simplify #ifdef logic.
  2348 2009-05-22  Werner Lemberg  <wl@gnu.org>
  2350 	Improve b/w rasterizer.
  2351 	Problem reported by Krzysztof Kotlenga <pocek@users.sf.net>.
  2353 	* src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
  2354 	Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if
  2355 	intersections are equally distant relative to next pixel center,
  2356 	select the left pixel, not the right one.
  2358 2009-05-19  Werner Lemberg  <wl@gnu.org>
  2360 	Fix Savannah bug #26600.
  2362 	* src/type42/t42parse.c (t42_load_keyword): Handle
  2363 	T1_FIELD_LOCATION_FONT_EXTRA.
  2365 2009-04-30  Werner Lemberg  <wl@gnu.org>
  2367 	Document recent changes to ftview.
  2369 	* docs/CHANGES: Do it.
  2371 2009-04-27  Werner Lemberg  <wl@gnu.org>
  2373 	autohinter: Don't change digit widths if all widths are the same.
  2374 	This fixes FreeDesktop bug #21197.
  2376 	* src/autofit/afglobal.c (AF_DIGIT): New macro.
  2377 	(af_face_globals_compute_script_coverage): Mark ASCII digits in
  2378 	`glyph_scripts' array.
  2379 	(af_face_globals_get_metrics): Updated.
  2380 	(af_face_globals_is_digit): New function.
  2381 	* src/autofit/afglobal.h: Updated.
  2382 	(AF_ScriptMetricsRec): Add `digits_have_same_width' flag.
  2384 	* src/autofit/aflatin.c: Include FT_ADVANCES_H.
  2385 	(af_latin_metrics_check_digits): New function.
  2386 	(af_latin_metrics_init): Use it.
  2387 	* src/autofit/aflatin.h: Updated.
  2388 	* src/autofit/afcjk.c (af_cjk_metrics_init): Updated.
  2390 	* src/autofit/aflatin2.c: Similar changes as with aflatin.c.
  2392 	* src/autofit/afloader.c (af_loader_load_g): Test digit width.
  2394 	* docs/CHANGES: Document it.
  2396 2009-04-26  Werner Lemberg  <wl@gnu.org>
  2398 	Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again.
  2399 	Problems reported by suyu@cooee.cn.
  2401 	* src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS,
  2402 	FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define.
  2403 	[!_STANDALONE_]: Include ftspic.h only here.
  2404 	(ras): Define/declare after definition of `TWorker'.
  2405 	Use `RAS_VAR_' where necessary.
  2407 2009-04-21  Karl Berry  <karl@gnu.org>
  2409 	Fix AC_CHECK_FT2.
  2411 	* builds/unix/freetype2.m4: Only check PATH for freetype-config if
  2412 	we did not already find it from a prefix option.
  2414 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2416 	Add #error to modules and files that do not support PIC yet.
  2418 	When FT_CONFIG_OPTION_PIC is defined the following files will
  2419 	create #error:
  2420 	* src/bdf/bdfdrivr.h
  2421 	* src/cache/ftcmanag.c
  2422 	* src/cid/cidriver.h
  2423 	* src/gxvalid/gxvmod.h
  2424 	* src/gzip/ftgzip.c
  2425 	* src/lzw/ftlzw.c
  2426 	* src/otvalid/otvmod.h
  2427 	* src/pcf/pcfdrivr.h
  2428 	* src/pfr/pfrdrivr.h
  2429 	* src/psaux/psauxmod.h
  2430 	* src/type1/t1driver.h
  2431 	* src/type42/t42drivr.h
  2432 	* src/winfonts/winfnt.h
  2434 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2436 	Position Independent Code (PIC) support in autofit module.
  2438 	* include/freetype/internal/autohint.h add macros to init
  2439 	instances of FT_AutoHinter_ServiceRec.
  2441 	* src/autofit/afmodule.h declare autofit_module_class
  2442 	using macros from ftmodapi.h,
  2443 	when FT_CONFIG_OPTION_PIC is defined create and destroy
  2444 	functions will be declared.
  2445 	* src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined
  2446 	af_autofitter_service and autofit_module_class structs
  2447 	will have functions to init or create and destroy them
  2448 	instead of being allocated in the global scope.
  2449 	And macros will be used from afpic.h in order to access them.
  2451 	* src/autofit/aftypes.h add macros to init and declare
  2452 	instances of AF_ScriptClassRec.
  2454 	* src/autofit/afcjk.h declare af_cjk_script_class
  2455 	using macros from aftypes.h,
  2456 	when FT_CONFIG_OPTION_PIC is defined init function will be declared.
  2457 	* src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined
  2458 	af_cjk_script_class struct will have function to init it instead of
  2459 	being allocated in the global scope.
  2461 	* src/autofit/afdummy.h declare af_dummy_script_class
  2462 	using macros from aftypes.h,
  2463 	when FT_CONFIG_OPTION_PIC is defined init function will be declared.
  2464 	* src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined
  2465 	af_dummy_script_class struct will have function to init it instead of
  2466 	being allocated in the global scope.
  2468 	* src/autofit/afindic.h declare af_indic_script_class
  2469 	using macros from aftypes.h,
  2470 	when FT_CONFIG_OPTION_PIC is defined init function will be declared.
  2471 	* src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined
  2472 	af_indic_script_class struct will have function to init it instead of
  2473 	being allocated in the global scope.
  2475 	* src/autofit/aflatin.h declare af_latin_script_class
  2476 	using macros from aftypes.h,
  2477 	when FT_CONFIG_OPTION_PIC is defined init function will be declared.
  2478 	* src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined
  2479 	af_latin_script_class struct will have function to init it instead of
  2480 	being allocated in the global scope.
  2481 	Change af_latin_blue_chars to be PIC-compatible by being a two
  2482 	dimentional array rather than array of pointers.
  2485 	* src/autofit/aflatin2.h declare af_latin2_script_class
  2486 	using macros from aftypes.h,
  2487 	when FT_CONFIG_OPTION_PIC is defined init function will be declared.
  2488 	* src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined
  2489 	af_latin2_script_class struct will have function to init it instead of
  2490 	being allocated in the global scope.
  2491 	Change af_latin2_blue_chars to be PIC-compatible by being a two
  2492 	dimentional array rather than array of pointers.
  2494 	* src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined
  2495 	af_script_classes array initialization was moved to afpic.c and
  2496 	is later refered using macros defeined in afpic.h.
  2498 	New Files:
  2499 	* src/autofit/afpic.h declare struct to hold PIC globals for autofit
  2500 	module and macros to access them.
  2501 	* src/autofit/afpic.c implement functions to allocate, destroy and
  2502 	initialize PIC globals for autofit module.
  2504 	* src/autofit/autofit.c add new file to build: afpic.c.
  2505 	* src/autofit/jamfile add new files to FT2_MULTI build: afpic.c.
  2507 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2509 	Position Independent Code (PIC) support in pshinter module.
  2511 	* include/freetype/internal/pshints.h add macros to init
  2512 	instances of PSHinter_Interface.
  2514 	* src/pshinter/pshmod.h declare pshinter_module_class
  2515 	using macros from ftmodapi.h,
  2516 	when FT_CONFIG_OPTION_PIC is defined create and destroy
  2517 	functions will be declared.
  2518 	* src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined
  2519 	pshinter_interface and pshinter_module_class structs
  2520 	will have functions to init or create and destroy them
  2521 	instead of being allocated in the global scope.
  2522 	And macros will be used from pshpic.h in order to access them.
  2524 	New Files:
  2525 	* src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter
  2526 	module and macros to access them.
  2527 	* src/pshinter/pshpic.c implement functions to allocate, destroy and
  2528 	initialize PIC globals for pshinter module.
  2530 	* src/pshinter/pshinter.c add new file to build: pshpic.c.
  2531 	* src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c.
  2533 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2535 	Position Independent Code (PIC) support in psnames module.
  2537 	* include/freetype/internal/services/svpscmap.h add macros to init
  2538 	instances of FT_Service_PsCMapsRec.
  2540 	* src/psnames/psmodule.h declare psnames_module_class
  2541 	using macros from ftmodapi.h,
  2542 	when FT_CONFIG_OPTION_PIC is defined create and destroy
  2543 	functions will be declared.
  2544 	* src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined
  2545 	pscmaps_interface and pscmaps_services structs
  2546 	and psnames_module_class array
  2547 	will have functions to init or create and destroy them
  2548 	instead of being allocated in the global scope.
  2549 	And macros will be used from pspic.h in order to access them.
  2551 	New Files:
  2552 	* src/psnames/pspic.h declare struct to hold PIC globals for psnames
  2553 	module and macros to access them.
  2554 	* src/psnames/pspic.c implement functions to allocate, destroy and
  2555 	initialize PIC globals for psnames module.
  2557 	* src/psnames/psnames.c add new file to build: pspic.c.
  2558 	* src/psnames/jamfile add new files to FT2_MULTI build: pspic.c.
  2560 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2562 	Position Independent Code (PIC) support in raster renderer.
  2564 	* src/raster/ftrend1.h declare ft_raster1_renderer_class
  2565 	and ft_raster5_renderer_class
  2566 	using macros from ftrender.h,
  2567 	when FT_CONFIG_OPTION_PIC is defined create and destroy
  2568 	functions will be declared.
  2569 	* src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined
  2570 	ft_raster1_renderer_class and ft_raster5_renderer_class structs
  2571 	will have functions to init or create and destroy them
  2572 	instead of being allocated in the global scope.
  2573 	Macros will be used from rastpic.h in order to access
  2574 	ft_standard_raster from the pic_container (allocated in ftraster.c).
  2575 	In ft_raster1_render when PIC is enabled, the last letter of
  2576 	module_name is used to verfy the renderer class rather than the
  2577 	class pointer.
  2579 	* src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined
  2580 	ft_standard_raster struct will have function to init it
  2581 	instead of being allocated in the global scope.
  2583 	New Files:
  2584 	* src/raster/rastpic.h declare struct to hold PIC globals for raster
  2585 	renderer and macros to access them.
  2586 	* src/raster/rastpic.c implement functions to allocate, destroy and
  2587 	initialize PIC globals for raster renderer.
  2589 	* src/raster/raster.c add new file to build: rastpic.c.
  2590 	* src/raster/jamfile add new files to FT2_MULTI build: rastpic.c.
  2592 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2594 	Position Independent Code (PIC) support in smooth renderer.
  2596 	* src/smooth/ftsmooth.h declare ft_smooth_renderer_class,
  2597 	ft_smooth_lcd_renderer_class and ft_smooth_lcd_v_renderer_class
  2598 	using macros from ftrender.h,
  2599 	when FT_CONFIG_OPTION_PIC is defined create and destroy
  2600 	functions will be declared.
  2601 	* src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined
  2602 	the following structs:
  2603 	ft_smooth_renderer_class, ft_smooth_lcd_renderer_class
  2604 	and ft_smooth_lcd_v_renderer_class
  2605 	will have functions to init or create and destroy them
  2606 	instead of being allocated in the global scope.
  2607 	And macros will be used from ftspic.h in order to access
  2608 	ft_grays_raster from the pic_container (allocated in ftgrays.c).
  2610 	* src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H
  2611 	* src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined
  2612 	func_interface was moved from gray_convert_glyph_inner function
  2613 	to the global scope.
  2614 	When FT_CONFIG_OPTION_PIC is defined
  2615 	func_interface and ft_grays_raster structs
  2616 	will have functions to init them
  2617 	instead of being allocated in the global scope.
  2618 	And func_interface will be allocated on the stack of
  2619 	gray_convert_glyph_inner.
  2621 	New Files:
  2622 	* src/smooth/ftspic.h declare struct to hold PIC globals for smooth
  2623 	renderer and macros to access them.
  2624 	* src/smooth/ftspic.c implement functions to allocate, destroy and
  2625 	initialize PIC globals for smooth renderer.
  2627 	* src/smooth/smooth.c add new file to build: ftspic.c.
  2628 	* src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c.
  2630 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2632 	Position Independent Code (PIC) support in cff driver.
  2634 	* include/freetype/internal/services/svcid.h add macros to init
  2635 	instances of FT_Service_CIDRec.
  2636 	* include/freetype/internal/services/svpsinfo.h add macros to init
  2637 	instances of FT_Service_PsInfoRec.
  2639 	* src/cff/cffcmap.h declare cff_cmap_encoding_class_rec
  2640 	and cff_cmap_unicode_class_rec using macros from
  2641 	ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
  2642 	functions will be declared.
  2643 	* src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined
  2644 	the following structs:
  2645 	cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec
  2646 	will have functions to init or create and destroy them
  2647 	instead of being allocated in the global scope.
  2649 	* src/cff/cffdrivr.h declare cff_driver_class using macros from
  2650 	ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
  2651 	functions will be declared.
  2652 	* src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined
  2653 	the following structs:
  2654 	cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name
  2655 	cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class,
  2656 	and cff_services array
  2657 	will have functions to init or create and destroy them
  2658 	instead of being allocated in the global scope.
  2659 	And macros will be used from cffpic.h in order to access them
  2660 	from the pic_container.
  2661 	Use macros from cffpic.h in order to access the
  2662 	structs allocated in cffcmap.c
  2664 	* src/cff/cffobjs.c Use macros from cffpic.h in order to access the
  2665 	structs allocated in cffcmap.c
  2667 	* src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined
  2668 	implement functions to create and destroy cff_field_handlers array
  2669 	instead of being allocated in the global scope.
  2670 	And macros will be used from cffpic.h in order to access it
  2671 	from the pic_container.
  2673 	New Files:
  2674 	* src/cff/cffpic.h declare struct to hold PIC globals for cff
  2675 	driver and macros to access them.
  2676 	* src/cff/cffpic.c implement functions to allocate, destroy and
  2677 	initialize PIC globals for cff driver.
  2679 	* src/cff/cff.c add new file to build: cffpic.c.
  2680 	* src/cff/jamfile add new files to FT2_MULTI build: cffpic.c.
  2682 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2684 	Position Independent Code (PIC) support in sfnt driver.
  2686 	* include/freetype/internal/services/svbdf.h add macros to init
  2687 	instances of FT_Service_BDFRec.
  2688 	* include/freetype/internal/services/svgldict.h add macros to init
  2689 	instances of FT_Service_GlyphDictRec.
  2690 	* include/freetype/internal/services/svpostnm.h add macros to init
  2691 	instances of FT_Service_PsFontNameRec.
  2692 	* include/freetype/internal/services/svsfnt.h add macros to init
  2693 	instances of FT_Service_SFNT_TableRec.
  2694 	* include/freetype/internal/services/svttcmap.h add macros to init
  2695 	instances of FT_Service_TTCMapsRec.
  2696 	* include/freetype/internal/sfnt.h add macros to init
  2697 	instances of SFNT_Interface.
  2699 	* src/sfnt/sfdriver.h declare sfnt_module_class using macros from
  2700 	ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
  2701 	functions will be declared.
  2702 	* src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined
  2703 	the following structs:
  2704 	sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name
  2705 	tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface,
  2706 	sfnt_module_class, and sfnt_services array
  2707 	will have functions to init or create and destroy them
  2708 	instead of being allocated in the global scope.
  2709 	And macros will be used from sfntpic.h in order to access them
  2710 	from the pic_container.
  2712 	* src/sfnt/ttcmap.h add macros to init
  2713 	instances of TT_CMap_ClassRec.
  2714 	* src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined
  2715 	the following structs:
  2716 	tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec
  2717 	tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec,
  2718 	tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array
  2719 	will have functions to init or create and destroy them
  2720 	instead of being allocated in the global scope.
  2721 	And macros will be used from sfntpic.h in order to access them
  2722 	from the pic_container.
  2723 	The content of tt_cmap_classes is now described in the
  2724 	new file 'ttcmapc.h'.
  2726 	New Files:
  2727 	* src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt
  2728 	driver and macros to access them.
  2729 	* src/sfnt/sfntpic.c implement functions to allocate, destroy and
  2730 	initialize PIC globals for sfnt driver.
  2731 	* src/sfnt/ttcmapc.h describing the content of
  2732 	tt_cmap_classes allocated in ttcmap.c
  2734 	* src/sfnt/sfnt.c add new file to build: sfntpic.c.
  2735 	* src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c.
  2737 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2739 	Position Independent Code (PIC) support in truetype driver.
  2741 	* include/freetype/internal/services/svmm.h add macros to init
  2742 	instances of FT_Service_MultiMastersRec.
  2743 	* include/freetype/internal/services/svttglyf.h add macros to init
  2744 	instances of FT_Service_TTGlyfRec.
  2746 	* src/truetype/ttdriver.h declare tt_driver_class using macros from
  2747 	ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy
  2748 	functions will be declared.
  2749 	* src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined
  2750 	the following structs:
  2751 	tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class
  2752 	and tt_services array,
  2753 	will have functions to init or create and destroy them
  2754 	instead of being allocated in the global scope.
  2755 	And macros will be used from ttpic.h in order to access them
  2756 	from the pic_container.
  2757 	* src/truetype/ttobjs.c change trick_names array to be
  2758 	PIC-compatible by being a two dimentional array rather than array
  2759 	of pointers.
  2761 	New Files:
  2762 	* src/truetype/ttpic.h declare struct to hold PIC globals for truetype
  2763 	driver and macros to access them.
  2764 	* src/truetype/ttpic.c implement functions to allocate, destroy and
  2765 	initialize PIC globals for truetype driver.
  2767 	* src/truetype/truetype.c add new file to build: ttpic.c.
  2768 	* src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c.
  2770 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2772 	Position Independent Code (PIC) support and infrastructure in base.
  2774 	* include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC
  2775 	* include/freetype/internal/ftobjs.h Add pic_container member to
  2776 	FT_LibraryRec.
  2777 	Add macros to declare and init instances of FT_CMap_ClassRec.
  2778 	Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs.
  2779 	Add macros to declare, allocate and initialize modules
  2780 	(FT_Module_Class).
  2781 	Add macros to declare, allocate and initialize renderers
  2782 	(FT_Renderer_Class).
  2783 	Add macro to init instances of FT_Glyph_Class.
  2784 	Add macros to declare, allocate and initialize drivers
  2785 	(FT_Driver_ClassRec).
  2786 	* include/freetype/internal/ftpic.h new file to declare the
  2787 	FT_PIC_Container struct and the functions to allocate and detroy it.
  2788 	* include/freetype/internal/ftserv.h add macros to allocate and
  2789 	destory arrays of FT_ServiceDescRec.
  2790 	* include/freetype/internal/internal.h define macro to include
  2791 	ftpic.h.
  2793 	New Files:
  2794 	* src/base/ftpic.c implement functions to allocate and destory the
  2795 	global pic_container.
  2796 	* src/base/basepic.h declare struct to hold PIC globals for base and
  2797 	macros to access them.
  2798 	* src/base/basepic.c implement functions to allocate, destroy and
  2799 	initialize PIC globals for base.
  2801 	* src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement
  2802 	functions that allocate and destroy ft_default_modules according to
  2803 	FT_CONFIG_MODULES_H in the pic_container instead of the global scope
  2804 	and use macro from basepic.h to access it.
  2805 	* src/base/ftobjs.c add calls to the functions that allocate and
  2806 	destroy the global pic_container when the library is created and
  2807 	destroyed.
  2809 	* src/base/jamfile add new files to FT2_MULTI build:
  2810 	ftpic.c and basepic.c.
  2811 	* src/base/ftbase.c add new files to build:
  2812 	ftpic.c and basepic.c.
  2814 	* src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined
  2815 	ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated
  2816 	in the pic_container instead of the global scope and use macros from
  2817  	basepic.h to access them.
  2818 	* src/base/ftbbox.c allocate bbox_interface stract on the stack
  2819 	instead of the global scope when FT_CONFIG_OPTION_PIC is defined.
  2820 	* src/base/ftstroke.c access ft_outline_glyph_class allocated in
  2821 	ftglyph.c via macros from basepic.h
  2823 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2825 	Preparing changes in cff parser later needed for PIC version.
  2827 	* src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c,
  2828 	src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to
  2829 	'CFF_ParserRec' set by `cff_parser_init'.
  2830 	Route library pointer from 'cff_face_init' to 'cff_subfont_load'
  2831 	for `cff_parser_init'.
  2833 	* src/cff/cffparse.c (CFF_Field_Handler): Move it to...
  2834 	* src/cff/cffparse.h: This file, to be used by other C files.
  2836 2009-04-05  Oran Agra  <oran@monfort.co.il>
  2838 	Minor change in ftstroke.c.
  2840 	* src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with
  2841 	`library' needed for PIC version.
  2842 	Update all callers.
  2844 2009-04-04  Werner Lemberg  <wl@gnu.org>
  2846 	ftnames.c -> ftsnames.c
  2848 	* src/base/ftnames.c: Rename to...
  2849 	* src/base/ftsnames.c: This.
  2850 	* src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated.
  2852 2009-04-04  Werner Lemberg  <wl@gnu.org>
  2854 	Add support for cmap type 13.
  2856 	* devel/ftoption.h, include/freetype/config/ftoption.h
  2857 	(TT_CONFIG_CMAP_FORMAT_13): New macro.
  2859 	* src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init,
  2860 	tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next,
  2861 	tt_cmap13_get_info, tt_cmap13_char_map_def_binary,
  2862 	tt_cmap14_class_rec): New functions and structures for cmap 13
  2863 	support.
  2864 	(tt_cmap_classes): Register tt_cmap13_class_rec.
  2866 	* docs/CHANGES: Mention cmap 13 support.
  2868 2009-04-01  Werner Lemberg  <wl@gnu.org>
  2870 	Ignore empty contours in CFF glyphs.
  2872 	Problem reported by Albert Astals Cid <aacid@kde.org>.
  2874 	* src/cff/cffgload.c (cff_builder_close_contour): Synchronize with
  2875 	t1_builder_close_contour.
  2877 2009-03-21  Werner Lemberg  <wl@gnu.org>
  2879 	Another redundant header inclusion.
  2881 	* src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041.
  2883 2009-03-21  Werner Lemberg  <wl@gnu.org>
  2885 	Remove redundant header inclusions.
  2887 	This covers many Ghostscript Coverity issues.
  2889 	* src/*: Do it.
  2891 2009-03-21  Werner Lemberg  <wl@gnu.org>
  2893 	Fix Ghostscript Coverity issue #3904.
  2895 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
  2896 	invalid values of `runcnt'.
  2898 2009-03-20  Werner Lemberg  <wl@gnu.org>
  2900 	Fix `make multi' run.
  2902 	* src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H.
  2904 2009-03-20  Werner Lemberg  <wl@gnu.org>
  2906 	Fix Savannah bug #25923.
  2908 	* src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo.
  2910 2009-03-20  Werner Lemberg  <wl@gnu.org>
  2912 	Protect against too large glyphs.
  2914 	Problem reported by Tavis Ormandy <taviso@google.com>.
  2916 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow
  2917 	`pitch' or `height' to be larger than 0xFFFF.
  2919 2009-03-20  Werner Lemberg  <wl@gnu.org>
  2920 	    Tavis Ormandy  <taviso@google.com>
  2922 	Fix validation for various cmap table formats.
  2924 	* src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
  2925 	tt_cmap12_validate): Check `length' correctly.
  2926 	(tt_cmap_14_validate): Check `length' and `numMappings' correctly.
  2928 2009-03-20  Werner Lemberg  <wl@gnu.org>
  2930 	Protect against malformed compressed data.
  2932 	* src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is
  2933 	zero.
  2935 2009-03-20  Werner Lemberg  <wl@gnu.org>
  2937 	Protect against invalid SID values in CFFs.
  2939 	Problem reported by Tavis Ormandy <taviso@google.com>.
  2941 	* src/cff/cffload.c (cff_charset_load): Reject SID values larger
  2942 	than 64999.
  2944 2009-03-19  Vincent Richomme  <richom.v@free.fr>
  2946 	Update WinCE Visual C project files.
  2948 	* builds/wince/vc2005-ce/freetype.vcproj,
  2949 	builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension
  2950 	files.
  2952 2009-03-19  Werner Lemberg  <wl@gnu.org>
  2954 	Remove unused Win32 code.
  2956 	* builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'.
  2957 	Since Win32 is handled separately this is no longer needed.
  2959 2009-03-19  Vincent Richomme  <richom.v@free.fr>
  2961 	Make `gzip' module compile on WinCE.
  2963 	* src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H.
  2965 2009-03-19  Werner Lemberg  <wl@gnu.org>
  2967 	Remove unused WinCE code.
  2969 	* builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'.
  2970 	Since WinCE is handled separately this is no longer needed.
  2972 2009-03-16  Werner Lemberg  <wl@gnu.org>
  2974 	docmaker: Don't ignore single-line code blocks.
  2976 	* src/tools/docmaker/content.py (DocBlock::_init__): Fix change from
  2977 	2009-01-31.
  2979 2009-03-15  Steve Langasek  <steve.langasek@canonical.com>
  2981 	Use __asm__ for declaring assembly instead of asm.
  2983 	* builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of
  2984 	asm on arm, fixing a build failure on armel with -pedantic.
  2986 2009-03-14  Werner Lemberg  <wl@gnu.org>
  2988 	Fix valgrind warning.
  2990 	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read
  2991 	past the end of the frame.
  2993 2009-03-12  Werner Lemberg  <wl@gnu.org>
  2995 	* Version 2.3.9 released.
  2996 	=========================
  2999 	Tag sources with `VER-2-3-9'.
  3001 2009-03-12  Werner Lemberg  <wl@gnu.org>
  3003 	* builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'.
  3005 2009-03-12  Werner Lemberg  <wl@gnu.org>
  3007 	Fix some FreeType Coverity issues as reported for Ghostscript.
  3009 	* src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize
  3010 	`args.stream' (#3874, #3875).
  3011 	(open_face_PS_from_sfnt_stream): Improve error management (#3786).
  3012 	* src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice'
  3013 	(#3870).
  3014 	* src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead
  3015 	code (#3790).
  3016 	* src/base/ftrfork.c (raccess_guess_apple_generic): Check error
  3017 	value of `FT_Stream_Skip' (#3784).
  3019 	* src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing
  3020 	it (#3872)
  3022 	* src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing
  3023 	it (#3871).
  3024 	* src/pcf/pcfread.c (pcf_get_metrics): Handle return value of
  3025 	`pcf_get_metric' (#3789, #3782).
  3026 	(pcf_get_properties): Use FT_STREAM_SKIP (#3783).
  3028 	* src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of
  3029 	`acache' (#3797)
  3031 	* src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff'
  3032 	(#3796).
  3033 	* src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795).
  3034 	* src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794).
  3036 	* src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom'
  3037 	(#3793).
  3038 	(_bdf_parse_start): Add comment (#3792).
  3040 	* src/raster/ftraster.c (Finalize_Profile_Table): Check
  3041 	`ras.fProfile' (#3791).
  3043 	* src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785).
  3045 	* src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore
  3046 	seek error (#3781).
  3048 2009-03-11  Michael Toftdal  <toftdal@gmail.com>
  3050 	Extend CID service functions to handle CID-keyed CFFs as CID fonts.
  3052 	* include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed,
  3053 	FT_Get_CID_From_Glyph_Index): New functions.
  3055 	* include/freetype/internal/services/svcid.h
  3056 	(FT_CID_GetIsInternallyCIDKeyedFunc,
  3057 	FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs.
  3058 	(CID Service): Use them.
  3060 	* src/base/ftcid.c: Include FT_CID_H.
  3061 	(FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index):
  3062 	New functions.
  3064 	* src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index):
  3065 	New functions.
  3066 	(cff_service_cid_info): Add them.
  3067 	* src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids'
  3068 	-- it is needed for access as a CID-keyed font.  It gets deleted
  3069 	later on.
  3071 	* src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index):
  3072 	New functions.
  3073 	(cid_service_cid_info): Add them.
  3075 	* docs/CHANGES: Updated.
  3077 2009-03-11  Bram Tassyns  <bramt@enfocus.be>
  3079 	Fix Savannah bug #25597.
  3081 	* src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length
  3082 	to become larger than 9.
  3084 2009-03-11  Werner Lemberg  <wl@gnu.org>
  3086 	Fix Savannah bug #25814.
  3088 	* builds/unix/freetype2.in: As suggested in the bug report, move
  3089 	@LIBZ@ to `Libs.private'.
  3091 2009-03-11  Werner Lemberg  <wl@gnu.org>
  3093 	Fix Savannah bug #25781.
  3094 	We now simply check for a valid `offset', no longer handling `delta
  3095 	= 1' specially.
  3097 	* src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for
  3098 	last segment.
  3099 	(tt_cmap4_set_range, tt_cmap4_char_map_linear,
  3100 	tt_cmap4_char_map_binary): Check offset.
  3102 2009-03-11  Werner Lemberg  <wl@gnu.org>
  3104 	* src/base/Jamfile: Fix handling of ftadvanc.c.
  3105 	Reported by Oran Agra <oran@monfort.co.il>.
  3107 2009-03-10  Vincent Richomme  <richom.v@free.fr>
  3109 	Restructure Win32 and Wince compiler support.
  3111 	* src/builds/win32: Remove files for WinCE.
  3112 	Move VC 2005 support to a separate directory.
  3113 	Add directory for VC 2008 support.
  3115 	* src/builds/wince: New directory hierarchy for WinCE compilers
  3116 	(VC 2005 and VC 2008).
  3118 2009-03-09  Werner Lemberg  <wl@gnu.org>
  3120 	More preparations for 2.3.9 release.
  3122 	* docs/CHANGES: Updated.
  3124 	* Jamfile, README: s/2.3.8/2.3.9/, s/238/239/.
  3126 2009-03-09  Werner Lemberg  <wl@gnu.org>
  3128 	* src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c.
  3130 2009-03-09  Alexey Kryukov  <anagnost@yandex.ru>
  3132 	Fix handling of EBDT formats 8 and 9 (part 2).
  3134 	This patch fixes the following problems in ttsbit0.c:
  3136 	. Bitmaps for compound glyphs were never allocated.
  3138 	. `SBitDecoder' refused to load metrics if some other metrics have
  3139 	  already been loaded.  This condition certainly makes no sense for
  3140 	  recursive calls, so I've just disabled it.  Another possibility
  3141 	  would be resetting `decoder->metrics_loaded' to false before
  3142 	  loading each composite component.  However, we must restore the
  3143 	  original metrics after finishing the recursion; otherwise we can
  3144 	  get a misaligned glyph.
  3146 	. `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos',
  3147 	  causing some glyph components to be shifted too far to the right
  3148 	  (especially noticeable for small sizes).
  3150 	Note that support for grayscale bitmaps (not necessarily compound) is
  3151 	completely broken in ttsbit0.c.
  3153 	* src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics.
  3154 	(tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case
  3155 	of `h == height'.
  3156 	(tt_sbit_decoder_load_compound): Reset metrics after loading
  3157 	components.
  3158 	Allocate bitmap.
  3160 2009-03-09  Werner Lemberg  <wl@gnu.org>
  3162 	* builds/unix/configure.raw (version_info): Set to 9:20:3.
  3164 2009-03-03  David Turner  <david@freetype.org>
  3166 	Protect SFNT kerning table parser against malformed tables.
  3168 	This closes Savannah BUG #25750.
  3170 	* src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a
  3171 	bug where a malformed table would be successfully loaded but later
  3172 	crash the engine during parsing.
  3174 2009-03-03  David Turner  <david@freetype.org>
  3176 	Update documentation and bump version number to 2.3.9.
  3178 	* include/freetype/freetype.h: Bump patch version to 9.
  3179 	* docs/CHANGES: Document the ABI break in 2.3.8.
  3180 	* docs/VERSION.DLL: Update version numbers table for 2.3.9.
  3182 2009-03-03  David Turner  <david@freetype.org>
  3184 	Remove ABI-breaking field in public PS_InfoFontRec definition.
  3186 	Instead, we define a new internal PS_FontExtraRec structure to
  3187 	hold the additional field, then place it in various internal
  3188 	positions of the corresponding FT_Face derived objects.
  3190 	* include/freetype/t1tables.h (PS_FontInfoRec): Remove the
  3191 	`fs_type' field from the public structure.
  3192 	* include/freetype/internal/psaux.h (T1_FieldLocation): New
  3193 	enumeration `T1_FIELD_LOCATION_FONT_EXTRA'.
  3194 	* include/freetype/internal/t1types.h (PS_FontExtraRec): New
  3195 	structure.
  3196 	(T1_FontRec, CID_FaceRec): Add it.
  3198 	* src/cid/cidload.c (cid_load_keyword): Handle
  3199 	T1_FIELD_LOCATION_FONT_EXTRA.
  3200 	* src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c:
  3201 	Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'.
  3202 	* src/type1/t1load.c (t1_load_keyword): Handle
  3203 	T1_FIELD_LOCATION_FONT_EXTRA.
  3205 	* include/freetype/internal/services/svpsinfo.h (PsInfo service):
  3206 	Add `PS_GetFontExtraFunc' function typedef.
  3208 	* src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and
  3209 	FT_SERVICE_POSTSCRIPT_INFO_H.
  3210 	(FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service.
  3212 	* src/cff/cffdrivr.c (cff_service_ps_info): Updated.
  3213 	* src/cid/cidriver.c (cid_ps_get_font_extra): New function.
  3214 	(cid_service_ps_info): Updated.
  3215 	* src/type1/t1driver.c (t1_ps_get_font_extra): New function.
  3216 	(t1_service_ps_info): Updated.
  3217 	* src/type42/t42drivr.c (t42_ps_get_font_extra): New function.
  3218 	(t42_service_ps_info): Updated.
  3220 2009-03-02  Alexey Kryukov  <anagnost@yandex.ru>
  3222 	Fix handling of EBDT formats 8 and 9.
  3224 	The main cycle in `blit_sbit' makes too many iterations: it actually
  3225 	needs the count of lines in the source bitmap rather than in the
  3226 	target image.
  3228 	* src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]:
  3229 	Add parameter `source_height' and use it for main loop.
  3230 	(Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated.
  3232 2009-02-23  Werner Lemberg  <wl@gnu.org>
  3234 	Fix Savannah bug #25669.
  3236 	* src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo.
  3238 	* src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix
  3239 	scaling factor for non-scalable fonts.
  3241 	* src/cff/cffdrivr.c (cff_get_advances): Use correct advance width
  3242 	value to prevent incorrect scaling.
  3244 	* docs/CHANGES: Document it.
  3246 2009-02-15  Matt Godbolt  <matt@godbolt.org>
  3248 	Fix Savannah bug #25588.
  3250 	* builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
  3251 	`orr' instruction.
  3253 2009-02-11  Werner Lemberg  <wl@gnu.org>
  3255 	* src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
  3256 	Reported by David Bevan <dbevan@emtex.com>.
  3258 2009-02-09  Werner Lemberg  <wl@gnu.org>
  3260 	Fix Savannah bug #25495.
  3262 	* src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before
  3263 	setting metrics and bbox values.  This ensures that the check for a
  3264 	font with neither a `glyf' table nor bitmap strikes can be performed
  3265 	early enough to set metrics and bbox values too.
  3267 2009-02-04  Werner Lemberg  <wl@gnu.org>
  3269 	Fix Savannah bug #25480.
  3271 	* builds/unix/freetype-config.in: For --ftversion, don't use $prefix
  3272 	but $includedir.
  3274 2009-01-31  Werner Lemberg  <wl@gnu.org>
  3276 	Minor docmaker improvements.
  3278 	* src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
  3279 	code blocks.
  3281 2009-01-25  Werner Lemberg  <wl@gnu.org>
  3283 	Fix SCANCTRL handling in TTFs.
  3284 	Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
  3286 	* src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
  3288 2009-01-23  Werner Lemberg  <wl@gnu.org>
  3290 	Move FT_Get_FSType_Flags to a separate file.
  3291 	Problem reported by Mickey Gabel <mickey@monfort.co.il>.
  3293 	* src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
  3294 	* src/base/ftfstype.c: This new file.
  3296 	* modules.cfg (BASE_EXTENSION): Add ftfstype.c.
  3298 	* docs/INSTALL.ANY: Updated.
  3300 	* builds/mac/*.txt, builds/amiga/*makefile*,
  3301 	builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
  3302 	Updated.
  3304 2009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3306 	* builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
  3307 	messages ending without "\n".
  3309 2009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3311 	Fix Savannah bug #25347.
  3313 	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind
  3314 	the stream to the original position passed to this function,
  3315 	when ft_lookup_PS_in_sfnt_stream() failed.
  3316 	(Mac_Read_sfnt_Resource): Rewind the stream to the head of
  3317 	sfnt resource body, when open_face_PS_from_sfnt_stream()
  3318 	failed.
  3320 2009-01-19  Michael Lotz  <mmlr@mlotz.ch>
  3322 	Fix Savannah bug #25355.
  3324 	* include/freetype/config/ftconfig.h (FT_MulFix_i386): Make
  3325 	assembler code work with gcc 2.95.3 (as used by the Haiku project).
  3326 	Add `cc' register to the clobber list.
  3328 2009-01-18  Werner Lemberg  <wl@gnu.org>
  3330 	Protect FT_Get_Next_Char.
  3332 	* src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
  3333 	change from 2008-07-22.
  3335 	Patch from Ronen Ghoshal <rghoshal@emtex.com>.
  3337 2009-01-18  Werner Lemberg  <wl@gnu.org>
  3339 	Implement FT_Get_Name_Index for SFNT driver.
  3341 	* src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
  3342 	(sfnt_service_glyph_dict): Use it.
  3344 	Problem reported by Truc Truong <tructv@necsv.com>.
  3346 2009-01-18  Werner Lemberg  <wl@gnu.org>
  3348 	* include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
  3349 	documentation.  Problem reported by Truc Truong <tructv@necsv.com>.
  3351 	* docs/CHANGES: Updated.
  3353 2009-01-14  Werner Lemberg  <wl@gnu.org>
  3355 	* Version 2.3.8 released.
  3356 	=========================
  3359 	Tag sources with `VER-2-3-8'.
  3361 	* docs/VERSION.DLL: Update documentation and bump version number to
  3362 	2.3.8.
  3364 	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
  3365 	builds/win32/visualc/freetype.dsp,
  3366 	builds/win32/visualc/freetype.vcproj,
  3367 	builds/win32/visualce/index.html,
  3368 	builds/win32/visualce/freetype.dsp,
  3369 	builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/.
  3371 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
  3373 	* builds/unix/configure.raw (version_info): Set to 9:19:3.
  3375 	* docs/release: Updated.
  3377 2009-01-14  Werner Lemberg  <wl@gnu.org>
  3379 	* builds/toplevel.mk (dist): Compress better.
  3381 2009-01-13  Werner Lemberg  <wl@gnu.org>
  3383 	* src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
  3384 	with C++.
  3386 2009-01-13  Werner Lemberg  <wl@gnu.org>
  3388 	Don't use stdlib.h and friends directly.
  3389 	Reported by Mickey Gabel <mickey@monfort.co.il>.
  3391 	* src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
  3393 	* src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
  3394 	s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
  3396 	* src/autofit/aftypes.h, src/autofit/afhints.c,
  3397 	src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
  3399 	* src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
  3401 2009-01-12  Werner Lemberg  <wl@gnu.org>
  3403 	Avoid compiler warnings.
  3405 	* */*: s/do ; while ( 0 )/do { } while ( 0 )/.
  3406 	Reported by Sean McBride <sean@rogue-research.com>.
  3408 2009-01-12  Werner Lemberg  <wl@gnu.org>
  3410 	Fix stdlib dependencies.
  3412 	Problem reported by Mickey Gabel <mickey@monfort.co.il>.
  3414 	* include/freetype/config/ftstdlib.h (ft_exit): Removed.  Unused.
  3416 	* src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c:
  3417 	s/memcpy/ft_memcpy/.
  3418 	* src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/.
  3420 2009-01-11  Werner Lemberg  <wl@gnu.org>
  3422 	* docs/formats.txt: Add link to PCF specification.
  3424 	* include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
  3425 	documentation.
  3427 2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3429 	* src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
  3430 	FT_Get_Advances): Change the type of load_flags from FT_UInt32 to
  3431 	FT_Int32, to match with the flags for FT_Load_Glyph().
  3432 	* src/cff/cffdrivr.c (cff_get_advances): Ditto.
  3433 	* src/truetype/ttdriver.c (tt_get_advances): Ditto.
  3434 	* include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
  3435 	Ditto.
  3436 	* include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
  3437 	Ditto.
  3439 2009-01-09  Daniel Zimmermann  <netzimme@aol.com>
  3441 	* src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
  3442 	length check.  From Savannah patch #6682.
  3444 2009-01-09  Werner Lemberg  <wl@gnu.org>
  3446 	Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
  3448 	* src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle
  3449 	`count_offset' if it is zero (i.e., unused).  Otherwise, the first
  3450 	element of the structure which holds the data is erroneously
  3451 	modified.  Problem reported by Chi Nguyen <chint@necsv.com>.
  3453 2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3455 	* src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
  3456 	FT_Get_Advances): Extend the type of load_flags from FT_UInt to
  3457 	FT_UInt32, to pass 32-bit flags on 16bit platforms.
  3458 	* src/cff/cffdrivr.c (cff_get_advances): Ditto.
  3459 	* src/truetype/ttdriver.c (tt_get_advances): Ditto.
  3460 	* include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
  3461 	Ditto.
  3462 	* include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
  3463 	Ditto.
  3465 2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3467 	* src/base/ftobjs.c (FT_Done_Library): Issue an error message when
  3468 	FT_Done_Face() cannot free all faces. If the list of the opened
  3469 	faces includes broken face which FT_Done_Face() cannot free,
  3470 	FT_Done_Library() retries FT_Done_Face() and it can fall into
  3471 	an endless loop. See the discussion:
  3472 	http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
  3473 	http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
  3475 2009-01-07  Werner Lemberg  <wl@gnu.org>
  3477 	* docs/CHANGES: Document new key `a' in ftdiff.
  3479 2009-01-06  Werner Lemberg  <wl@gnu.org>
  3481 	* autogen.sh: Don't use GNUisms while calling sed.  Problem reported
  3482 	by Sean McBride.
  3484 2009-01-06  Werner Lemberg  <wl@gnu.org>
  3486 	* src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD
  3487 	and FT_PIXEL_MODE_LCD_V.  Problem reported by Chi Nguyen
  3488 	<chint@necsv.com>.
  3490 2009-01-06  Diego Pettenò  <flameeyes@gmail.com>
  3492 	* builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and
  3493 	AC_CANONICAL_TARGET and use $host_os only.  A nice explanation for
  3494 	this change can be found at
  3495 	http://blog.flameeyes.eu/s/canonical-target.
  3497 	From Savannah patch #6712.
  3499 2009-01-06  Sean McBride  <sean@rogue-research.com>
  3501 	* src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
  3503 	* src/base/ftmac.c: Remove some #undefs.
  3505 2008-12-26  Werner Lemberg  <wl@gnu.org>
  3507 	Set `face_index' field in FT_Face for all font formats.
  3509 	* cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
  3510 	sfnt/sfobjs.c (sfnt_init_face): Do it.
  3512 	* docs/CHANGES: Document it.
  3514 2008-12-22  Steve Grubb
  3516 	* builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
  3517 	Patch from Savannah bug #25151.
  3519 2008-12-21  Werner Lemberg  <wl@gnu.org>
  3521 	* src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
  3522 	src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
  3523 	s/_Err_Bad_Argument/_Err_Invalid_Argument/.  The former is for
  3524 	errors in the bytecode interpreter only.
  3526 2008-12-21  Werner Lemberg  <wl@gnu.org>
  3528 	* src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
  3529 	arguments.
  3530 	Fix return value for non-PFR fonts.  Both problems reported by Chi
  3531 	Nguyen <chint@necsv.com>.
  3533 2008-12-21  anonymous
  3535 	FT_USE_MODULE declares things as:
  3537 	  extern const FT_Module_Class
  3539 	(or similar for C++).  However, the actual types of the variables
  3540 	being declared are often different, e.g., FT_Driver_ClassRec or
  3541 	FT_Renderer_Class.  (Some are, indeed, FT_Module_Class.)
  3543 	This works with most C compilers (since those structs begin with an
  3544 	FT_Module_Class struct), but technically it's undefined behavior.
  3546 	To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
  3547 	paragraph 2:
  3549 	  All declarations that refer to the same object or function shall
  3550 	  have compatible type; otherwise, the behavior is undefined.
  3552 	(And they are not compatible types.)
  3554 	Most C compilers don't reject (or even detect!) code which has this
  3555 	issue, but the GCC LTO development branch compiler does.  (It
  3556 	outputs the types of the objects while generating .o files, along
  3557 	with a bunch of other information, then compares them when doing the
  3558 	final link-time code generation pass.)
  3560 	Patch from Savannah bug #25133.
  3562 	* src/base/ftinit.c (FT_USE_MODULE): Include variable type.
  3564 	* builds/amiga/include/freetype/config/ftmodule.h,
  3565 	include/freetype/config/ftmodule.h, */module.mk: Updated to declare
  3566 	pass correct types to FT_USE_MODULE.
  3568 2008-12-21  Hongbo Ni  <hongbo@njstar.com>
  3570 	* src/autofit/aflatin.c (af_latin_hint_edges),
  3571 	src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c
  3572 	(af_cjk_hint_edges): Protect against division by zero.  This fixes
  3573 	Savannah bug #25124.
  3575 2008-12-18  Werner Lemberg  <wl@gnu.org>
  3577 	* docs/CHANGES: Updated.
  3579 2008-12-18  Bevan, David  <dbevan@emtex.com>
  3581 	Provide API for accessing embedding and subsetting restriction
  3582 	information.
  3584 	* include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING,
  3585 	FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING,
  3586 	FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING,
  3587 	FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New
  3588 	macros.
  3589 	(FT_Get_FSType_Flags): New function declaration.
  3591 	* src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
  3593 	* src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
  3594 	(t42_keywords): Handle `FSType'.
  3596 	* include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
  3598 2008-12-17  Werner Lemberg  <wl@gnu.org>
  3600 	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
  3601 	macros so that copying the source code into an application works
  3602 	out of the box.
  3604 2008-12-17  Werner Lemberg  <wl@gnu.org>
  3606 	* include/freetype/ftsynth.h, src/base/ftsynth.c: Move
  3607 	FT_GlyphSlot_Own_Bitmap to...
  3608 	* include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files.
  3610 	* docs/CHANGES: Document it.
  3612 2008-12-10  Werner Lemberg  <wl@gnu.org>
  3614 	Generalize the concept of `tricky' fonts by introducing
  3615 	FT_FACE_FLAG_TRICKY to indicate that the font format's hinting
  3616 	engine is necessary for correct rendering.
  3618 	At the same time, slightly modify the behaviour of tricky fonts:
  3619 	FT_LOAD_NO_HINTING is now ignored.  To really force raw loading
  3620 	of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and
  3621 	FT_LOAD_NO_AUTOHINT must be used.
  3623 	Finally, tricky TrueType fonts always use the bytecode interpreter
  3624 	even if the patented code is used.
  3626 	* include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
  3627 	New macros.
  3629 	* src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
  3630 	semantics as described above.
  3632 	* src/truetype/ttobjs.c (tt_check_trickyness): New function, using
  3633 	code of ...
  3634 	(tt_face_init): This function, now simplified and updated to new
  3635 	semantics.
  3637 	* src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
  3638 	fonts.
  3640 	* docs/CHANGES: Document it.
  3642 2008-12-09  Werner Lemberg  <wl@gnu.org>
  3644 	Really fix Savannah bug #25010: An SFNT font with neither outlines
  3645 	nor bitmaps can be considered as containing space `glyphs' only.
  3647 	* src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
  3648 	a `glyf' table is missing.
  3650 	* src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no
  3651 	`glyf' table but a non-zero `loca' entry.
  3652 	(tt_loader_init): Handle missing `glyf' table.
  3654 	* src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
  3656 	* src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
  3657 	nor bitmaps is scalable.
  3659 2008-12-05  Werner Lemberg  <wl@nu.org>
  3661 	* src/autofit/aflatin.c (af_latin_uniranges): Add more ranges.  This
  3662 	fixes Savannah bug #21190 which also provides a basic patch.
  3664 2008-12-05  Werner Lemberg  <wl@nu.org>
  3666 	* include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
  3667 	0x100 instead of 0x10000; the latter value is already occupied by
  3668 	FT_LOAD_TARGET_LIGHT.  Bug reported by James Cloos.
  3671 	Handle SFNT with neither outlines nor bitmaps.  This fixes Savannah
  3672 	bug #25010.
  3674 	* src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
  3675 	outlines nor bitmaps.
  3677 	* src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
  3678 	is no table with glyphs.
  3681 	* src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
  3682 	message.
  3684 2008-12-01  Werner Lemberg  <wl@gnu.org>
  3686 	GDEF tables need `glyph_count' too for validation.  Problem reported
  3687 	by Chi Nguyen <chint@necsv.com>.
  3689 	* src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
  3690 	(otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
  3691 	`glyph_count'.
  3693 2008-11-29  Werner Lemberg  <wl@gnu.org>
  3695 	* src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
  3696 	src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
  3697 	src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
  3698 	src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
  3699 	src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
  3700 	(Atari PureC).
  3702 2008-11-29  James Cloos  <cloos@jhcloos.com>
  3704 	* src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix
  3705 	it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values
  3706 	in the /BlendDesignMap space).
  3708 2008-11-29  James Cloos  <cloos@jhcloos.com>
  3710 	* src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
  3711 	whereas `design_points' is FT_Long*.  Therefore, return blend rather
  3712 	than design points.
  3714 2008-11-27  Werner Lemberg  <wl@gnu.org>
  3716 	* src/cff/cffparse.c (cff_parse_real): Handle more than nine
  3717 	significant digits correctly.  This fixes Savannah bug #24953.
  3719 2008-11-25  Daniel Zimmermann  <netzimme@aol.com>
  3721 	* src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
  3722 	before the NULL check.  From Savannah patch #6681.
  3724 2008-11-24  Werner Lemberg  <wl@gnu.org>
  3726 	Fixes from the gnuwin32 port.
  3728 	* src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
  3730 	* src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
  3732 	* src/psaux/psobjs.c (ps_table_add): Check `length'.
  3734 2008-11-15  Werner Lemberg  <wl@gnu.org>
  3736 	* src/truetype/ttinterp.c (tt_default_graphics_state): The default
  3737 	value for `scan_type' is zero, as confirmed by Greg Hitchcock from
  3738 	Microsoft.  Problem reported by Michal Nowakowski
  3739 	<miszka@limes.com.pl>.
  3741 2008-11-12  Tor Andersson  <tor.andersson@gmail.com>
  3743 	* src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
  3744 	This fixes Savannah bug #24819.
  3746 2008-11-08  Werner Lemberg  <wl@gnu.org>
  3748 	* src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
  3749 	since OpenType version 1.5 has been released.
  3751 	* include/ttnameid.h (TT_NAME_ID_WWS_FAMILY,
  3752 	TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5.
  3753 	(TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE,
  3754 	TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN,
  3755 	TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE,
  3756 	TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI,
  3757 	TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC,
  3758 	TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA,
  3759 	TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING,
  3760 	TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE,
  3761 	TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI,
  3762 	TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS,
  3763 	TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New
  3764 	macros for OpenType 1.5.
  3766 2008-11-08  Wenlin Institute  <wenlin@wenlin.com>
  3768 	* src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
  3769 	slot->internal == NULL.  Reported by Graham Asher.
  3771 2008-11-08  Werner Lemberg  <wl@gnu.org>
  3773 	* src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error
  3774 	code so that memory allocation problems can be distinguished from
  3775 	missing table entries.  Reported by Graham Asher.
  3776 	(GET_NAME): New macro.
  3777 	(sfnt_load_face): Use it.
  3779 2008-11-05  Werner Lemberg  <wl@gnu.org>
  3781 	* devel/ftoption.h, include/freetype/config/ftoption.h
  3782 	[TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
  3783 	TT_CONFIG_OPTION_UNPATENTED_HINTING.  This fixes the return value of
  3784 	`FT_Get_TrueType_Engine_Type' (and makes it work as documented).
  3785 	Reported in bug #441638 of bugzilla.novell.com.
  3787 	* docs/CHANGES: Document it.
  3789 2008-11-03  Werner Lemberg  <wl@gnu.org>
  3791 	* src/type1/t1load.c (parse_subrs): Use an endless loop.  There are
  3792 	fonts (like HELVI.PFB version 003.001, used on OS/2) which define
  3793 	some `subrs' elements more than once.  Problem reported by Peter
  3794 	Weilbacher <mozilla@weilbacher.org>.
  3796 2008-10-15  Graham Asher  <graham.asher@btinternet.com>
  3798 	* src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
  3800 2008-10-15  David Turner  <david@freetype.org>
  3802 	* src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
  3803 	meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
  3805 2008-10-14  Werner Lemberg  <wl@gnu.org>
  3807 	* src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
  3808 	Suggested by Bram Tassyns in Savannah patch #6651.
  3810 2008-10-12  Graham Asher  <graham.asher@btinternet.com>
  3812 	* src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
  3813 	`underline_position'.
  3815 2008-10-12  Werner Lemberg  <wl@gnu.org>
  3817 	* docs/CHANGES: Updated.
  3819 2008-10-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3821 	Fix Savannah bug #24468.
  3823 	According to include/freetype/internal/ftobjs.h, the appropriate
  3824 	type to interchange single character codepoint is FT_UInt32. It
  3825 	should be distinguished from FT_UInt which can be 16bit integer.
  3827 	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type
  3828 	of the second argument `pcharcode' from FT_UInt* to FT_UInt32*.
  3829 	(tt_cmap4_char_map_binary): Ditto.
  3830 	(tt_cmap14_get_nondef_chars): Change the type of return value
  3831 	from FT_UInt* to FT_UInt32*.
  3833 2008-10-08  John Tytgat  <John.Tytgat@esko.com>
  3835 	Fix Savannah bug #24485.
  3837 	* src/type1/t1load.c (parse_charstrings): Assure that we always have
  3838 	a .notdef glyph.
  3840 2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3842 	* src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
  3843 	* builds/mac/ftmac.c: Ditto.
  3845 2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3847 	* include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
  3848 	* src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
  3850 2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3852 	* src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in
  3853 	the beginning of sfnt container.
  3854 	* src/sfnt/ttload.c (check_table_dir): Return
  3855 	`SFNT_Err_Table_Missing' when sfnt table directory structure is
  3856 	correct but essential tables for TrueType fonts (`head', `bhed' or
  3857 	`SING') are missing.  Other errors are returned by
  3858 	SFNT_Err_Unknown_File_Format.
  3860 	* src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns
  3861 	`FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'.  It is
  3862 	enabled only when old mac font support is configured.
  3864 2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3866 	* include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN,
  3867 	TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify
  3868 	the repeated calculations of these values in ftobjs.c and ftmac.c.
  3869 	* src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags.
  3870 	* src/base/ftmac.c: Ditto.
  3871 	* builds/mac/ftmac.c: Ditto.
  3873 2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3875 	* src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
  3876 	initialization of *is_sfnt_cid.
  3878 2008-10-04  Werner Lemberg  <wl@gnu.org>
  3880 	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
  3881 	warnings.
  3883 2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3885 	* src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by...
  3886 	(ft_lookup_PS_in_sfnt_stream): This.
  3887 	(open_face_PS_from_sfnt_stream): New function.  It checks whether
  3888 	the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed
  3889 	font, then try to open a face for given face_index.
  3890 	(Mac_Read_sfnt_Resource): Replace the combination of
  3891 	`ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by
  3892 	`open_face_PS_from_sfnt_stream'.
  3893 	* src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto.
  3894 	* builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
  3895 	* src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add
  3896 	`open_face_PS_from_sfnt_stream'.
  3898 2008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3900 	* src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to
  3901 	FALSE if neither `CID ' nor `TYP1' is found in the sfnt container.
  3903 2008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3905 	* include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or
  3906 	MrC compiler of MPW is used.  These compilers do not define the
  3907 	macro __APPLE__ by themselves.
  3908 	* builds/unix/ftconfig.in: Ditto.
  3909 	* builds/vms/ftconfig.h: Ditto.
  3910 	* src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to
  3911 	include ftmac.c if FreeType 2 is built by MPW.
  3912 	* src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to
  3913 	enable shared functions for ftmac.c if FreeType 2 is built by MPW.
  3915 	* builds/mac/ftmac.c: Include ftbase.h.
  3916 	(memory_stream_close): Removed.
  3917 	(new_memory_stream): Ditto.
  3918 	(open_face_from_buffer): Removed.  Use the implementation in
  3919 	ftobjs.c.
  3920 	(ft_lookup_PS_in_sfnt): Ditto.
  3922 	* builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an
  3923 	included part of ftbase.c, to share the functions in ftobjs.c.  The
  3924 	rule compiling ftmac.c separately is removed and the rule copying
  3925 	ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added.
  3926 	* builds/mac/FreeType.m68k_cfm.make.txt: Ditto.
  3927 	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
  3928 	* builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
  3930 2008-10-02  Bram Tassyns  <bramt@enfocus.be>
  3932 	* src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0.  This
  3933 	fixes Savannah bug #24430.
  3935 2008-10-02  Werner Lemberg  <wl@gnu.org>
  3937 	* builds/freetype.mk (BASE_H): Rename to...
  3938 	(INTERNAL_H): This.
  3939 	(FREETYPE_H): Updated.
  3940 	* src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H.
  3941 	* src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h.
  3942 	* src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h.
  3943 	* src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h.
  3944 	* src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h.
  3945 	* src/type42/rules.mk (T42_DRV_H): Add t42types.h.
  3947 2008-10-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3949 	* src/base/ftbase.h: New file to declare the private utility
  3950 	functions shared by the sources of base modules.  Currently,
  3951 	`ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to
  3952 	share between ftobjs.c and ftmac.c.
  3954 	* src/base/rule.mk: Add ftbase.h.
  3956 	* src/base/ftobjs.c: Include ftbase.h.
  3957 	(memory_stream_close): Build on any platform when old MacOS font
  3958 	support is enabled.
  3959 	(new_memory_stream): Ditto.
  3960 	(open_face_from_buffer): Build on any platform when old MacOS font
  3961 	support is enabled.  The counting of the face in a font file is
  3962 	slightly different between Carbon-dependent parser and Carbon-free
  3963 	parser.  They are merged with the platform-specific conditional.
  3964 	(ft_lookup_PS_in_sfnt): Ditto.
  3966 	* src/base/ftmac.c: Include ftbase.h.
  3967 	(memory_stream_close): Removed.
  3968 	(new_memory_stream): Ditto.
  3969 	(open_face_from_buffer): Removed.  Use the implementation in
  3970 	ftobjs.c.
  3971 	(ft_lookup_PS_in_sfnt): Ditto.
  3973 2008-10-02  Werner Lemberg  <wl@gnu.org>
  3975 	* src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
  3976 	if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
  3978 2008-10-01  Werner Lemberg  <wl@gnu.org>
  3980 	* src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c
  3981 	(cff_face_done), src/pfr/pfrobjs.c (pfr_face_done),
  3982 	src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
  3983 	(cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
  3984 	src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
  3985 	Reported by Graham Asher.
  3987 2008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  3989 	* src/base/rules.mk: Add conditional source to BASE_SRC, for `make
  3990 	multi' on Mac OS X.  If the macro $(ftmac_c) is defined,
  3991 	$(BASE_DIR)/$(ftmac_c) is added to BASE_SRC.  In a normal build, the
  3992 	lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes
  3993 	ftmac.c.
  3994 	* builds/unix/unix-def.in: Add a macro definition of $(ftmac_c).
  3995 	* builds/unix/configure.raw: Add procedure to set up appropriate
  3996 	value of $(ftmac_c) with the consideration of the availability of
  3997 	Carbon framework.
  3999 2008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4001 	* src/base/Jamfile: Add target for multi build by jam on Mac OS X.
  4002 	* src/base/ftobjs.c (FT_New_Face): Fix the condition to include this
  4003 	function for MPW building.  It is synchronized the condition to
  4004 	include ftmac.c source into ftbase.c.
  4006 2008-09-22  Werner Lemberg  <wl@gnu.org>
  4008 	* src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
  4009 	cff_decoder_parse_charstrings): Handle (invalid)
  4010 	`callothersubr' and `pop' instructions.
  4012 2008-09-22  John Tytgat  <John.Tytgat@esko.com>
  4014 	Fix Savannah bug #24307.
  4016 	* include/freetype/internal/t1types.h (CID_FaceRec),
  4017 	src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
  4019 2008-09-21  Werner Lemberg  <wl@gnu.org>
  4021 	* src/smooth/ftgrays.c (gray_raster_render): Don't dereference
  4022 	`target_map' if FT_RASTER_FLAG_DIRECT is set.  Problem reported by
  4023 	Stephan T. Lavavej <stl@nuwen.net>.
  4025 2008-09-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4027 	* src/otvalid/Jamfile: Add missing target `otvmath' for multi build
  4028 	by jam.
  4029 	* src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
  4030 	jam.
  4032 2008-09-20  Werner Lemberg  <wl@gnu.org>
  4034 	* src/smooth/ftgrays.c (gray_find_cell): Fix threshold.  The values
  4035 	passed to this function are already `normalized'.  Problem reported
  4036 	by Stephan T. Lavavej <stl@nuwen.net>.
  4038 	* docs/CHANGES: Document it.
  4040 2008-09-20  Werner Lemberg  <wl@gnu.org>
  4042 	* src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
  4043 	(FT_Outline_Decompose): Decorate with tracing messages.
  4045 	* src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
  4046 	FT_DEBUG_LEVEL_TRACE.
  4047 	[_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
  4048 	stdarg.h.
  4050 	(FT_TRACE) [_STANDALONE_]: Remove.
  4051 	(FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function.
  4052 	(FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros.
  4053 	(FT_ERROR) [_STANDALONE_]: Updated.
  4055 	(gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
  4056 	Use FT_TRACE7.
  4057 	(gray_dump_cells): Make it `static void'.
  4058 	(gray_convert_glyph): Use FT_TRACE7.
  4060 	(FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
  4061 	ftoutln.c.
  4063 	* src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
  4064 	FT_ERROR_BASE.
  4066 	* docs/formats.txt: Updated.
  4068 2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4070 	* src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
  4071 	CID-keyed font support.
  4072 	* builds/mac/ftmac.c: Ditto.
  4074 2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4076 	* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in
  4077 	sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code.
  4078 	`open_face_from_buffer' frees the passed buffer if it cannot open a
  4079 	face from the buffer, so the caller must not free it.
  4081 2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4083 	* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support
  4084 	for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font.
  4085 	(ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID '
  4086 	table in sfnt table directory.  It is used before loading TrueType
  4087 	font driver.
  4089 	* docs/CHANGES: Add note about the current status of sfnt-wrapped
  4090 	Type1 and sfnt-wrapped CID-keyed font support.
  4092 2008-09-18  Werner Lemberg  <wl@gnu.org>
  4094 	* src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for
  4095 	orthogonality (ft_free and ft_sfree could belong to different memory
  4096 	pools).  This fixes Savannah bug #24297.
  4098 2008-09-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4100 	* src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
  4101 	in ttags.h instead of numerical value 0x4F54544FL.
  4103 2008-09-16  Werner Lemberg  <wl@gnu.org>
  4105 	* src/cff/cffgload.h, src/cff/cffgload.c
  4106 	(cff_decoder_set_width_only): Eliminate function call.
  4108 2008-09-15  George Williams  <gww@silcom.com>
  4110 	Fix Savannah bug #24179, reported by Bram Tassyns.
  4112 	* src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
  4113 	of default values.
  4115 2008-09-15  Werner Lemberg  <wl@gnu.org>
  4117 	* src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index'
  4118 	and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to
  4119 	prevent unconditional definition.  This fixes Savannah bug #24241.
  4121 	* src/psnames/pstables.h: Regenerated.
  4123 2008-09-13  Werner Lemberg  <wl@gnu.org>
  4125 	* autogen.sh, builds/unix/configure.raw,
  4126 	include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
  4127 	beautifying.
  4129 	* include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
  4130 	include/freetype/ftlcdfil.h: Protect against FreeType 1.
  4131 	Some other minor fixes.
  4133 	* devel/ftoption.h: Synchronize with
  4134 	include/freetype/config/ftoption.h.
  4136 2008-09-11  Werner Lemberg  <wl@gnu.org>
  4138 	* src/base/ftbase.c: Include ftadvanc.c.
  4140 2008-09-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4142 	* builds/unix/ftconfig.in: Duplicate the cpp computation of
  4143 	FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h.
  4144 	(FT_USE_AUTOCONF_SIZEOF_TYPES): New macro.  If defined, the cpp
  4145 	computation is disabled and the statically configured sizes are
  4146 	used.  This fixes Savannah bug #21250.
  4148 	* builds/unix/configure.raw: Add the checks to compare the cpp
  4149 	computation results of the bit length of int and long versus the
  4150 	sizes detected by running `configure'.  If the results are
  4151 	different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the
  4152 	results.
  4153 	New option --{enable|disable}-biarch-config is added to define or
  4154 	undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
  4156 2008-09-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4158 	* builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
  4159 	ApplicationService framework is missing.  Although this value is not
  4160 	used in building of FreeType2, it is written in `freetype2.pc' and
  4161 	`freetype-config'.
  4163 2008-09-01  david turner  <david@freetype.org>
  4165 	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
  4166 	index to mean `use default cached FT_Face's charmap'.  This fixes
  4167 	Savannah bug #22625.
  4168 	* include/freetype/ftcache.h: Document it.
  4171 	Make FT_MulFix an inlined function.  This is done to speed up
  4172 	FreeType a little (on x86 3% when loading+hinting, 10% when
  4173 	rendering, ARM savings are more important though).  Disable this by
  4174 	undefining FT_CONFIG_OPTION_INLINE_MULFIX.
  4176 	Use of assembler code can now be controlled with
  4177 	FT_CONFIG_OPTION_NO_ASSEMBLER.
  4179 	* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
  4180 	[!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
  4181 	implementation.
  4182 	[!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler
  4183 	implementation taken from `ftcalc.c'.
  4184 	[!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro
  4185 	which is defined to the platform-specific assembler implementation
  4186 	of FT_MulFix.
  4187 	[FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
  4188 	(FT_MULFIX_INLINED): New macro.
  4190 	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
  4191 	FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
  4193 	* include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
  4195 	* src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
  4196 	FT_MULFIX_INLINED.
  4199 	Add a new header named FT_ADVANCES_H declaring some new APIs to
  4200 	extract the advances of one or more glyphs without necessarily
  4201 	loading their outlines.  Also provide `fast loaders' for the
  4202 	TrueType, Type1, and CFF font drivers (more to come later).
  4204 	* src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
  4206 	* include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
  4207 	* include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
  4209 	* include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
  4210 	`flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
  4211 	respectively.
  4213 	* src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
  4214 	ftadvanc.c.
  4216 	* src/cff/cffdrivr.c (cff_get_advances): New function.
  4217 	(cff_driver_class): Register it.
  4219 	* src/cff/cffgload.c (cff_decoder_set_width_only): New function.
  4220 	(cff_decoder_parse_charstrings): Handle `width_only'.
  4221 	(cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY.
  4223 	* src/cff/cffgload.h (cff_decoder): New element `width_only'.
  4224 	(cff_decoder_set_width_only): New declaration.
  4226 	* src/truetype/ttdriver.c (tt_get_advances): New function.
  4227 	(tt_driver_class): Register it.
  4229 	* src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
  4230 	(TT_Get_HMetrics, TT_Get_VMetrics): This.
  4231 	Update callers.
  4232 	* src/truetype/ttgload.h: Declare them.
  4234 	* src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
  4235 	function.
  4236 	* src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
  4239 	Add checks for minimum version of the `autotools' stuff.
  4241 	* autogen.sh: Implement it.
  4242 	(get_major_version, get_minor_version, get_patch_version,
  4243 	compare_to_minimum_version, check_tool_version): New auxiliary
  4244 	functions.
  4246 	* README.CVS: Document it.
  4248 2008-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4250 	* src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
  4251 	ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
  4253 2008-08-28  Werner Lemberg  <wl@gnu.org>
  4255 	* src/type1/t1load.c (parse_encoding): Protect against infinite
  4256 	loop.  This fixes Savannah bug #24150 (where a patch has been posted
  4257 	too).
  4259 2008-08-23  Werner Lemberg  <wl@gnu.org>
  4261 	* src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
  4262 	(afm_compare_kern_pairs): Fix comparison.  This fixes Savannah bug
  4263 	#24119.
  4265 2008-08-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4267 	* src/base/ftobjs.c (FT_Stream_New): Initialize *astream always,
  4268 	even if passed library or arguments are invalid.  This fixes a bug
  4269 	that an uninitialized stream is freed when an invalid library handle
  4270 	is passed.  Originally proposed by Mike Fabian, 2008/08/18 on
  4271 	freetype-devel.
  4272 	(FT_Open_Face): Ditto (stream).
  4273 	(load_face_in_embedded_rfork): Ditto (stream2).
  4275 2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4277 	* src/base/ftmac.c: Add a fallback to guess the availability of the
  4278 	`ResourceIndex' type.  It is used when built without configure
  4279 	(e.g., a build with Jam).
  4280 	* builds/mac/ftmac.c: Ditto.
  4281 	* builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0
  4282 	explicitly, even if `ResourceIndex' is unavailable.
  4284 2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4286 	* builds/unix/configure.raw: In checking of Mac OS X features,
  4287 	all-in-one header file `Carbon.h' is replaced by the minimum
  4288 	header file `CoreServices.h', similar to current src/base/ftmac.c.
  4290 2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4292 	* src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of
  4293 	sub-header when its code_count is 0.  Many Japanese Dynalab fonts
  4294 	include such an empty sub-header (code_count == 0, first_code == 0
  4295 	delta == 0, but offset != 0) as the second sub-header in SJIS cmap.
  4297 2008-08-04  Werner Lemberg  <wl@gnu.org>
  4299 	* src/type1/t1tokens.h: Handle `ForceBold' keyword.  This fixes
  4300 	Savannah bug #23995.
  4302 	* src/cid/cidload.c (parse_expansion_factor): New callback function.
  4303 	(cid_field_records): Use it for `ExpansionFactor'.
  4304 	* src/cod/cidtoken.h: Handle `ForceBold' keyword.
  4305 	Don't handle `ExpansionFactor'.
  4307 2008-08-04  Bram Tassyns  <bramt@enfocus.be>
  4309 	* src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
  4310 	resulted in incorrect scaling.  This fixes Savannah bug #23973.
  4312 2008-08-04  Werner Lemberg  <wl@gnu.org>
  4314 	Be more tolerant w.r.t. invalid entries in SFNT table directory.
  4316 	* src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
  4317 	adjust table count.
  4318 	Add more trace messages.
  4319 	(tt_face_load_font_dir): Updated.
  4321 2008-07-30  Werner Lemberg  <wl@gnu.org>
  4323 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
  4324 	assume that the first argument on the stack is the bottom-most
  4325 	element.  Two reasons:
  4327 	  o According to people from Adobe it is missing in the Type 2
  4328 	    specification that pushing of additional, superfluous arguments
  4329 	    on the stack is prohibited.
  4331 	  o Acroread in general handles fonts differently, namely by popping
  4332 	    the number of arguments needed for a particular operand (as a PS
  4333 	    interpreter would do).  In case of buggy fonts this causes a
  4334 	    different interpretation which of the elements on the stack are
  4335 	    superfluous and which not.
  4337 	Since there are CFF subfonts (embedded in PDFs) which rely on
  4338 	Acroread's behaviour, FreeType now does the same.
  4340 2008-07-27  Werner Lemberg  <wl@gnu.org>
  4342 	Add extra mappings for `Tcommaaccent' and `tcommaaccent'.  This
  4343 	fixes Savannah bug #23940.
  4345 	* src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
  4346 	(EXTRA_GLYPH_LIST_SIZE): This.
  4347 	Increase by 2.
  4348 	(ft_wgl_extra_unicodes): Rename to...
  4349 	(ft_extra_glyph_unicodes): This.
  4350 	Add two code values.
  4351 	(ft_wgl_extra_glyph_names): Rename to...
  4352 	(ft_extra_glyph_names): This.
  4353 	Add two glyphs.
  4354 	(ft_wgl_extra_glyph_name_offsets): Rename to...
  4355 	(ft_extra_glyph_name_offsets): This.
  4356 	Add two offsets.
  4358 	(ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
  4359 	(ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
  4360 	Updated.
  4361 	(ps_unicodes_init): Updated.
  4363 2008-07-26  Werner Lemberg  <wl@gnu.org>
  4365 	* src/cff/cffgload.c (cff_decoder_prepare,
  4366 	cff_decoder_parse_charstrings): Improve debug output.
  4368 2008-07-22  Martin McBride  <mmcbride@emtex.com>
  4370 	* src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
  4371 	tt_cmap4_char_map_binary): Handle fonts which treat the last segment
  4372 	specially.  According to the specification, such fonts would be
  4373 	invalid but acroread accepts them.
  4375 2008-07-16  Jon Foster  <Jon.Foster@cabot.co.uk>
  4377 	* src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
  4379 	* src/base/ftcalc.c (FT_MulFix): Fix portability issue.
  4381 	* src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
  4382 	Fix compiler warning.
  4384 2008-07-16  Werner Lemberg  <wl@gnu.org>
  4386 	Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
  4388 	* src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
  4389 	Invert sids table only if `pure_cff' is set.
  4390 	* src/cff/cffload.h: Udpated.
  4392 	* src/cff/cffobjs.c (cff_face_init): Updated.
  4393 	Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
  4395 	* docs/CHANGES: Updated.
  4397 2008-07-09  Werner Lemberg  <wl@gnu.org>
  4399 	* src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
  4400 	where num_locations < num_glyphs.  Problem reported by Ding Li.
  4402 2008-07-05  Werner Lemberg  <wl@gnu.org>
  4404 	Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
  4405 	newer.  This fixes Savannah bug #23648.
  4407 	* configure: zsh doesn't like ${1+"$@"}.
  4408 	Update needed GNU make version.
  4409 	* builds/toplevel.mk: Check for `$(eval ...)'.
  4410 	* docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
  4411 	it.
  4413 2008-07-04  Werner Lemberg  <wl@gnu.org>
  4415 	* src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
  4416 	pixel, only check for dropouts if neither start nor end point lies
  4417 	on a pixel center.  This fixes Savannah bug #23762.
  4419 2008-06-29  Werner Lemberg  <wl@gnu.org>
  4421 	* Version 2.3.7 released.
  4422 	=========================
  4425 	Tag sources with `VER-2-3-7'.
  4427 	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
  4428 	version number to 2.3.7.
  4430 	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
  4431 	builds/win32/visualc/freetype.dsp,
  4432 	builds/win32/visualc/freetype.vcproj,
  4433 	builds/win32/visualce/index.html,
  4434 	builds/win32/visualce/freetype.dsp,
  4435 	builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
  4437 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
  4439 	* builds/unix/configure.raw (version_info): Set to 9:18:3.
  4441 	* docs/release: Updated.
  4443 2008-06-28  Werner Lemberg  <wl@gnu.org>
  4445 	* src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
  4446 	* src/ftcalc.c: Here.  This fixes Savannah bug #23729.
  4448 2008-06-27  Werner Lemberg  <wl@gnu.org>
  4450 	* src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
  4451 	Horizontal_Gray_Sweep_Drop): Test for intersections which
  4452 	degenerate to a single point can be ignored; this has been confirmed
  4453 	by Greg Hitchcock from Microsoft.  (This was commented out code.)
  4455 2008-06-26  Werner Lemberg  <wl@gnu.org>
  4457 	Improve navigation in API reference.
  4459 	* src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
  4460 	(html_header_6): This.
  4461 	(html_header_3, html_header_3i, html_header_4, html_header_5,
  4462 	html_header_5t): New strings.
  4463 	(toc_footer_start, toc_footer_end): New strings.
  4464 	(HtmlFormatter::html_header): Updated.
  4465 	(HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
  4466 	New strings.
  4467 	(HtmlFormatter::index_enter): Use `html_index_header'.
  4468 	(HtmlFormatter::index_exit): Print `html_footer'.
  4469 	(HtmlFormatter::toc_enter): Use `html_toc_header'.
  4470 	(HtmlFormatter::toc_exit): Print proper footer.
  4472 	Convert ~ to non-breakable space.
  4474 	* src/tools/docmaker/tohtml.py (make_html_para): Implement it.
  4475 	Update header files accordingly.
  4477 2008-06-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4479 	* builds/unix/configure.raw: Check type `ResourceIndex' explicitly
  4480 	and define HAVE_TYPE_RESOURCE_INDEX if it is defined.  Mac OS X 10.5
  4481 	bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
  4482 	ResourceIndex type definition.  The macro does not inform the type
  4483 	availability.
  4484 	* src/base/ftmac.c: More parentheses are inserted to clarify the
  4485 	conditionals to disable legacy APIs in `10.5 and later' cases.  If
  4486 	HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
  4488 2008-06-24  Werner Lemberg  <wl@gnu.org>
  4490 	* src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
  4491 	mode.
  4493 	* src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
  4494 	Draw_Sweep): No-dropout mode is value 2, not value 0.
  4495 	(Draw_Sweep): Really skip dropout handling for no-dropout mode.
  4497 2008-06-24  Werner Lemberg  <wl@gnu.org>
  4499 	* src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
  4500 	if it consists of one point only.  Based on a patch from Savannah
  4501 	bug #23683 (from John Tytgat).
  4503 2008-06-22  Werner Lemberg  <wl@gnu.org>
  4505 	* src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
  4506 	with IS_HINTED.
  4508 	* docs/CHANGES: Updated.
  4510 2008-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4512 	* builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
  4513 	but LDFLAGS does not, import it to LDFLAGS.  The option is used to
  4514 	specify non-default SDK on Mac OS X (e.g., universal binary SDK for
  4515 	Mac OS X 10.4 on PowerPC platform).  Although Apple TechNote 2137
  4516 	recommends to add the option only to CFLAGS, LDFLAGS should include
  4517 	it because libfreetype.la is built with -no-undefined.  This fixes a
  4518 	bug reported by Ryan Schmidt in MacPorts,
  4519 	http://trac.macports.org/ticket/15331.
  4521 2008-06-21  Werner Lemberg  <wl@gnu.org>
  4523 	Enable access to the various dropout rules of the B&W rasterizer.
  4524 	Pass dropout rules from the TT bytecode interpreter to the
  4525 	rasterizer.
  4527 	* include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
  4528 	FT_OUTLINE_EXCLUDE_STUBS): New flags for FT_Outline.
  4530 	* src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
  4531 	Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
  4532 	OpenType specification.
  4533 	Fix mode 4 computation.
  4534 	(Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
  4536 	* src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
  4537 	mode to FT_OUTLINE_XXX flags.
  4539 	* src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
  4541 2008-06-19  Werner Lemberg  <wl@gnu.org>
  4543 	* src/cff/cffobjs.c (cff_face_init): Compute final
  4544 	`dict->units_per_em' value before assigning it to
  4545 	`cffface->units_per_EM'.  Otherwise, CFFs without subfonts are
  4546 	scaled incorrectly if the font matrix is non-standard.  This fixes
  4547 	Savannah bug #23630.
  4549 	* docs/CHANGES: Updated.
  4551 2008-06-19  Werner Lemberg  <wl@gnu.org>
  4553 	* src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
  4554 	from 2008-06-19.
  4556 2008-06-18  Werner Lemberg  <wl@gnu.org>
  4558 	* src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
  4559 	Reported by Peter Weilbacher <mozilla@weilbacher.org>.
  4561 	* docs/CHANGES: Updated.
  4563 2008-06-15  George Williams  <gww@silcom.com>
  4565 	* src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
  4566 	`valid->extra2' to 1.  This is undocumented in the OpenType 1.5
  4567 	specification.
  4569 2008-06-15  Werner Lemberg  <wl@gnu.org>
  4571 	* src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
  4572 	from clobbering.  Patch from Savannah bug report #23556.
  4574 	* docs/CHANGES: Document it.
  4576 2008-06-10  Werner Lemberg  <wl@gnu.org>
  4578 	* autogen.sh: Add option `--install' to libtoolize.
  4580 2008-06-10  Werner Lemberg  <wl@gnu.org>
  4582 	* Version 2.3.6 released.
  4583 	=========================
  4586 	Tag sources with `VER-2-3-6'.
  4588 	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
  4589 	version number to 2.3.6.
  4591 	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
  4592 	builds/win32/visualc/freetype.dsp,
  4593 	builds/win32/visualc/freetype.vcproj,
  4594 	builds/win32/visualce/index.html,
  4595 	builds/win32/visualce/freetype.dsp,
  4596 	builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
  4598 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
  4600 	* builds/unix/configure.raw (version_info): Set to 9:17:3.
  4603 	* include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
  4604 	and `scale_y'.
  4605 	* src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
  4608 	* src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
  4609 	* src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
  4611 2008-06-10  Werner Lemberg  <wl@gnu.org>
  4613 	* src/base/ftobjs.c (open_face): Check `clazz->init_face' and
  4614 	`clazz->done_face'.
  4616 2008-06-09  VaDiM  <s_sliva@rambler.ru>
  4618 	Support debugging on WinCE.  From Savannah patch #6536; this fixes
  4619 	bug #23497.
  4621 	* builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
  4622 	as a replacement for OutputDebugStringA (which WinCE doesn't have).
  4623 	Update all callers.
  4624 	(ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
  4625 	environment variables.
  4627 2008-06-09  Werner Lemberg  <wl@gnu.org>
  4629 	* README.CVS: Updated.
  4631 	* builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
  4632 	for newer versions of autoconf and friends.
  4634 2008-06-08  Werner Lemberg  <wl@gnu.org>
  4636 	* src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
  4637 	`private_len' unsigned.
  4639 	* src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
  4640 	it as such.
  4641 	(T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
  4644 	* src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
  4647 	* src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
  4648 	for sane value.
  4649 	Fix typo.
  4652 	* src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
  4655 	* src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
  4656 	`last_point'.
  4659 	* src/sfnt/ttload.c (tt_face_load_max_profile): Limit
  4660 	`maxTwilightPoints'.
  4662 2008-06-06  Werner Lemberg  <wl@gnu.org>
  4664 	* src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
  4665 	correctly.  This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
  4667 2008-06-03  Werner Lemberg  <wl@gnu.org>
  4669 	* include/freetype/ftcache.h (FTC_FaceID): Change type back to
  4670 	FT_Pointer.  Reported by Ian Britten <britten@caris.com>.
  4672 2008-06-02  Werner Lemberg  <wl@gnu.org>
  4674 	Emit header info for defined FreeType objects in reference.
  4676 	* src/tools/docmaker/content.py (re_header_macro): New regexp.
  4677 	(ContentProcessor::__init__): Initialize new dictionary `headers'.
  4678 	(DocBlock::__init__): Collect macro header definitions.
  4680 	* src/tools/docmaker/tohtml.py (header_location_header,
  4681 	header_location_footer): New strings.
  4682 	(HtmlFormatter::__init__): Pass `headers' dictionary.
  4683 	(HtmlFormatter::print_html_field): Don't emit paragraph tags.
  4684 	(HtmlFormatter::print_html_field_list): Emit empty paragraph.
  4685 	(HtmlFormatter::block_enter): Emit header info.
  4687 2008-06-01  Werner Lemberg  <wl@gnu.org>
  4689 	* include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
  4690 	FT_INCREMENTAL_H): Added.
  4692 2008-05-28  Werner Lemberg  <wl@gnu.org>
  4694 	* src/tools/docmaker/sources.py (SourceBlock::__init__): While
  4695 	looking for markup tags, return immediately as soon a single one is
  4696 	found.
  4698 2008-05-28  Werner Lemberg  <wl@gnu.org>
  4700 	* src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
  4701 	original, unscaled input values.  Confirmed by Greg Hitchcock from
  4702 	Microsoft.
  4704 2008-05-27  Werner Lemberg  <wl@gnu.org>
  4706 	* src/tools/docmaker/tohtml.py (block_footer_start,
  4707 	block_footer_middle): Beautify output.
  4709 2008-05-25  Werner Lemberg  <wl@gnu.org>
  4711 	* src/raster/ftraster.c (fc_black_render): Return 0 when we are
  4712 	trying to render into a zero-width/height bitmap, not an error code.
  4714 	* src/truetype/ttgload.c (load_truetype_glyph): Move initialization
  4715 	of the graphics state for subglyphs to...
  4716 	(TT_Hint_Glyph): This function.
  4717 	Hinting instructions for a composite glyph apparently refer to the
  4718 	just hinted subglyphs, not the unhinted, unscaled outline.  This
  4719 	seems to fix Savannah bugs #20973 and (at least partially) #23310.
  4721 2008-05-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4723 	* src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
  4724 	`aface' is returned by FT_New_Face_From_FOND().  The patch was
  4725 	proposed by an anonymous reporter of Savannah bug #23204.
  4727 2008-05-18  Werner Lemberg  <wl@gnu.org>
  4729 	* src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
  4730 	correction for pixel boundary.  Without this patch, the effect can
  4731 	be cumulative under certain circumstances, making glyphs taller and
  4732 	taller after each call.  This fixes Savannah bug #19976.
  4734 2008-05-18  Werner Lemberg  <wl@gnu.org>
  4736 	* src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
  4737 	This fixes Savannah bug #23280.
  4739 	* docs/CHANGES: Updated.
  4741 2008-05-18  David Turner  <david@freetype.org>
  4743 	* src/psnames/psmodule.c (ft_wgl_extra_unicodes,
  4744 	ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
  4745 	ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
  4746 	declarations non-global.
  4748 	* src/type1/t1load.c: Add missing comment.
  4750 2008-05-17  Sam Hocevar  <samh>
  4752 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
  4753 	glyphs correctly.  Patch from Savannah bug #23277.
  4755 2008-05-16  Werner Lemberg  <wl@gnu.org>
  4757 	* docs/CHANGES: Updated.
  4759 2008-05-16  Sergey Tolstov  <stolstov@esri.com>
  4761 	Improve support for WGL4 encoded fonts.
  4763 	* src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
  4764 	(ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
  4765 	ft_wgl_extra_glyph_name_offsets): New arrays.
  4766 	(ps_check_wgl_name, ps_check_wgl_unicode): New functions.
  4767 	(ps_unicodes_init): Use them to add additional Unicode mappings.
  4769 2008-05-15  Werner Lemberg  <wl@gnu.org>
  4771 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
  4772 	<op_closepath>: `closepath' without a path is a no-op, not an error
  4773 	(cf. the PS reference manual).
  4775 	Reported by Martin McBride.
  4777 2008-05-15  Werner Lemberg  <wl@gnu.org>
  4779 	* builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
  4781 2008-05-15  Werner Lemberg  <wl@gnu.org>
  4783 	* src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
  4784 	which contains a single but empty entry.  This is technically
  4785 	invalid (since it must end with `return'), but...
  4787 	Reported by Martin McBride.
  4789 2008-05-14  Werner Lemberg  <wl@gnu.org>
  4791 	Finish fix of scaling bug of CID-keyed CFF subfonts.
  4793 	* include/freetype/internal/ftcalc.h, src/base/ftcalc.c
  4794 	(FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
  4795 	functions.
  4797 	* src/cff/cffobjs.h (CFF_Internal): New struct.  It is used to
  4798 	provide global hinting data for both the top-font and all subfonts
  4799 	(with proper scaling).
  4801 	* src/cff/cffobjs.c (cff_make_private_dict): New function, using
  4802 	code from `cff_size_init'.
  4803 	(cff_size_init, cff_size_done, cff_size_select, cff_size_request):
  4804 	Use CFF_Internal and handle subfonts.
  4805 	(cff_face_init): Handle top-dict and subfont matrices correctly;
  4806 	apply some heuristic in case of unlikely matrix concatenation
  4807 	results.  This has been discussed with people from Adobe (thanks
  4808 	goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
  4809 	and not correct.
  4811 	* src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
  4813 	* src/cff/cffgload.c (cff_builder_init): Updated.
  4814 	(cff_decoder_prepare): Handle hints globals for subfonts.
  4815 	Update all callers.
  4816 	(cff_slot_load): Handling scaling of subfonts properly.
  4818 	* src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
  4819 	(cff_parse_font_matrix): Use it.
  4821 	* src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
  4822 	FT_ULong.
  4824 	* docs/CHANGES: Document it.
  4826 2008-05-13  Werner Lemberg  <wl@gnu.org>
  4828 	* src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
  4829 	Handle case `face_index < 0'.
  4830 	* docs/CHANGES: Document it.
  4832 2008-05-04  Werner Lemberg  <wl@gnu.org>
  4834 	First steps to fix the scaling bug of CID-keyed CFF subfonts,
  4835 	reported by Ding Li on 2008/03/28 on freetype-devel.
  4837 	* src/base/cff/cffparse.c (power_tens): New array.
  4838 	(cff_parse_real): Rewritten to introduce a fourth parameter which
  4839 	returns the `scaling' of the real number so that we have no
  4840 	precision loss.  This is not used yet.
  4841 	Update all callers.
  4842 	(cff_parse_fixed_thousand): Replace with...
  4843 	(cff_parse_fixed_scaled): This function.  Update all callers.
  4845 2008-05-03  Werner Lemberg  <wl@gnu.org>
  4847 	* src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
  4848 	transformation since it recursively calls FT_Load_Glyph.  This fixes
  4849 	Savannah bug #23143.
  4851 2008-04-26  Werner Lemberg  <wl@gnu.org>
  4853 	* include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
  4854 	and `scale_y' as obsolete since they aren't used.
  4855 	* src/psaux/psobjs.c (t1_builder_init): Updated.
  4857 	* src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
  4858 	obsolete since they aren't used.
  4859 	* src/cff/cffgload.c (cff_builder_init): Updated.
  4861 2008-04-14  Werner Lemberg  <wl@gnu.org>
  4863 	* src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
  4864 	`FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'.  From Savannah
  4865 	bug #22909.
  4867 2008-04-13  Werner Lemberg  <wl@gnu.org>
  4869 	* src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
  4870 	integer part is zero.
  4872 2008-04-01  Werner Lemberg  <wl@gnu.org>
  4874 	Fix compilation with g++ 4.1 (with both `single' and `multi'
  4875 	targets).
  4877 	* src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
  4878 	which is crossed by a `goto'.
  4880 	* src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
  4882 2008-03-31  Werner Lemberg  <wl@gnu.org>
  4884 	Fix support for subsetted CID-keyed CFFs.
  4886 	* include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
  4887 	FT_IS_CID_KEYED): New macros.
  4889 	* src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
  4890 	maximum CID value in CID-keyed CFFs.
  4891 	Handle FT_FACE_FLAG_CID_KEYED flag.
  4893 	* docs/CHANGES: Document it.
  4896 	Fix CFF font matrix calculation and improve precision.
  4898 	* src/cff/cffparse.c (cff_parse_real): Increase precision if integer
  4899 	part is zero.
  4900 	(cff_parse_font_matrix): Simplify computation of `units_per_em';
  4901 	this prevents overflow also.
  4904 	Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
  4906 	* src/cid/cidriver.c: Include FT_SERVICE_CID_H.
  4907 	(cid_get_ros): New function.
  4908 	(cid_service_cid_info): New service structure.
  4909 	(cid_services): Register it.
  4911 2008-03-23  Werner Lemberg  <wl@gnu.org>
  4913 	Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
  4915 	* builds/compiler/visualc.mk (CFLAGS): Remove /W5.
  4916 	(ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
  4918 2008-03-21  Laurence Darby  <ldarby>
  4920 	* src/type1/t1objs.c (T1_Face_Init): Use `/Weight'.  Patch from
  4921 	Savannah bug #22675.
  4923 2008-03-13  Derek Clegg  <dclegg@apple.com>
  4925 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
  4926 	Patch from Savannah bug #22541.
  4928 2008-03-03  Masatoshi Kimura  <VYV03354@nifty.ne.jp>
  4930 	* src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
  4931 	tt_cmap14_find_variant): Return correct value.
  4932 	(tt_cmap14_variant_chars): Fix check for `di'.
  4934 2008-02-29  Wermer Lemberg  <wl@gnu.org>
  4936 	* docs/CHANGES: Updated.
  4938 2008-02-29  Wolf
  4940 	Add build support for symbian platform.  From Savannah bug #22440.
  4942 	* builds/symbian/*: New files.
  4944 2008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4946 	* src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
  4947 	synthesis.  For any face of a specified FOND, always the name for
  4948 	the first face was used.  Except of a FOND that refers multiple
  4949 	Type1 font files, wrong synthesized font names are not used at all,
  4950 	so this is an invisible bug.  A few limit checks are added too.
  4952 	* builds/mac/ftmac.c: Ditto.
  4954 2008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4956 	* builds/unix/configure.raw: Split compiler option to link Carbon
  4957 	frameworks to one option for CoreServices framework and another
  4958 	option for ApplicationServices framework.  The split options can be
  4959 	managed by GNU libtool to avoid unrequired duplication when FreeType
  4960 	is linked with other applications.  Suggested by Daniel Macks,
  4961 	Savannah bug #22366.
  4963 2008-02-18  Victor Stinner  <victor.stinner@haypocalc.com>
  4965 	* src/truetype/ttinterp.c (Ins_IUP): Check number of points.  Fix
  4966 	from Savannah bug #22356.
  4968 2008-02-17  Jonathan Blow  <jon@number-none.com>
  4970 	* src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
  4971 	Check for valid callback pointers.
  4973 2008-02-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4975 	* src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
  4976 	handle by its value instead of ResError(), fix provided by Deron
  4977 	Kazmaier.  According to the Resource Manager Reference,
  4978 	GetResource(), Get1Resource(), GetNamedResource(),
  4979 	Get1NamedResource() and RGetResource() set noErr but return NULL
  4980 	handle when they can not find the requested resource.  These
  4981 	functions never return undefined values, so it is sufficient to
  4982 	check if the handle is not NULL.
  4984 	* builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
  4986 2008-02-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  4988 	* src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
  4989 	inclusion styles.  Now it always includes src/base/ftmac.c;
  4990 	builds/mac/ftmac.c is never included in any configuration.
  4992 	* builds/unix/configure.raw: Print warning if configure is executed
  4993 	with options to specify Carbon functionalities explicitly.
  4995 	* docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
  4996 	included automatically and manual replacement is required.
  4998 2008-02-11  Werner Lemberg  <wl@gnu.org>
  5000 	* builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
  5001 	(dos_setup), builds/freetype.mk (clean_project_dos,
  5002 	distclean_project_dos): Don't use \ but $(SEP).  Reported by Duncan
  5003 	Murdoch.
  5005 2008-01-18  Sylvain Pasche  <sylvain.pasche@gmail.com>
  5007 	* src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
  5008 	mention intra-pixel algorithm.
  5010 	* include/freetype/freetype.h (FT_Render_Mode): Mention that
  5011 	FT_Library_SetLcdFilter can be used to reduce fringes.
  5013 2008-01-16  Werner Lemberg  <wl@gnu.org>
  5015 	* src/raster/ftraster.c (ft_black_render): Check `outline' before
  5016 	using it.  Reported by Allan Yang.
  5018 2008-01-12  Werner Lemberg  <wl@gnu.org>
  5020 	* src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
  5022 2008-01-12  Allan Yang, Jian Hua - SH  <Allan.Yang@fmc.fujitsu.com>
  5024 	* src/raster/ftraster.c (ft_black_init)
  5025 	[FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
  5027 2008-01-10  Werner Lemberg  <wl@gnu.org>
  5029 	* src/truetype/ttgload.c (load_truetype_glyph): Handle the case
  5030 	where the number of contours in a simple glyph is zero (and which
  5031 	does contain an entry in the `glyf' table).  This fixes Savannah bug
  5032 	#21990.
  5034 2008-01-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5036 	Formatting suggested by Sean McBride.
  5038 	* builds/mac/ftmac.c: Formatting (tab expanded).
  5039 	* src/autofit/afindic.c: Ditto.
  5040 	* src/base/ftcid.c: Ditto.
  5041 	* src/base/ftmac.c: Ditto.
  5043 2007-12-30  Werner Lemberg  <wl@gnu.org>
  5045 	* src/smooth/ftgrays.c (gray_raster_render): Check `outline'
  5046 	correctly.
  5048 2007-12-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5050 	Improvement of POSIX resource-fork accessor to load unsorted
  5051 	references in a resource.  In HelveLTMM (resource-fork PostScript
  5052 	Type1 font bundled with Mac OS X since 10.3.x), the appearance order
  5053 	of PFB chunks is not sorted; sorting the chunks by reference IDs is
  5054 	required.
  5056 	* include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
  5057 	type to store a pair of reference ID and offset to the chunk.
  5059 	* src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
  5060 	sort FT_RFork_Ref by their reference IDs.
  5062 	(FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
  5063 	sorted by reference ID.
  5065 2007-12-14  Werner Lemberg  <wl@gnu.org>
  5067 	* src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
  5068 	division too early; otherwise the most significant digit(s) of the
  5069 	final result are lost as the value is truncated to an integer.  This
  5070 	fixes Savannah bug #21794 (where the patch has been posted too).
  5072 2007-12-06  Fix  <4d876b82@gmail.com>
  5074 	Pass options from one configure script to another as-is (not
  5075 	expanded).  This is needed for options like
  5076 	--includedir='${prefix}/include'.
  5078 	* builds/unix/detect.mk, configure: Prevent argument expansion in
  5079 	call to the (real) `configure' script.
  5081 2007-12-06  Werner Lemberg  <wl@gnu.org>
  5083 	* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
  5084 	TT_USE_BYTECODE_INTERPRETER isn't defined.
  5086 2007-12-06  Werner Lemberg  <wl@gnu.org>
  5088 	There exist CFFs which contain opcodes for the Type 1 operators
  5089 	`hsbw' and `closepath' which are both invalid in Type 2 charstrings.
  5090 	However, it doesn't harm to support them.
  5092 	* src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
  5093 	`cff_op_closepath.'
  5094 	(cff_argument_counts): Ditto.
  5096 	(cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
  5097 	and 13 (hsbw) which are invalid in Type 2 charstrings.
  5099 2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5101 	* src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
  5102 	support new pathname syntax `..namedfork/rsrc' to access a resource
  5103 	fork on Mac OS X.  The legacy syntax `/rsrc' does not work on
  5104 	case-sensitive HFS+.
  5105 	(raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
  5106 	buffer size to store a pathname.
  5107 	* include/freetype/internal/ftrfork.h: Increment the number of
  5108 	resource fork guessing rule.
  5110 2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5112 	* builds/unix/configure.raw: Improve the compile tests to search
  5113 	Carbon functions.
  5114 	* builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
  5115 	proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
  5117 2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5119 	The documents and comments for Mac OS X are improved by Sean
  5120 	McBride.
  5122 	* src/base/ftmac.c: Fix a comment.
  5123 	* include/freetype/ftmac.h: Ditto.
  5124 	* docs/INSTALL.MAC: Improve English and add comment on lowest
  5125 	system version specified by MACOSX_DEPLOYMENT_TARGET.
  5127 2007-12-04  Werner Lemberg  <wl@gnu.org>
  5129 	* src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
  5130 	concatenate error codes.
  5131 	* src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
  5133 2007-12-04  Graham Asher  <graham.asher@btinternet.com>
  5135 	* src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
  5136 	concatenate error codes.
  5138 2007-12-04  Sean McBride  <sean@rogue-research.com>
  5140 	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
  5141 	warning.
  5143 2007-11-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5145 	Fix MacOS legacy font support by Masatake Yamato on Mac OS X.  It is
  5146 	not working since 2.3.5.  In FT_Open_New(), if FT_New_Stream()
  5147 	cannot mmap() the specified file and cannot seek to head of the
  5148 	specified file, it returns NULL stream and FT_Open_New() returns the
  5149 	error immediately.  On MacOS, most legacy MacOS fonts fall into such
  5150 	a scenario because their data forks are zero-sized and cannot be
  5151 	sought.  To proceed to guessing of resource fork fonts, the
  5152 	functions for legacy MacOS font must properly handle the NULL stream
  5153 	returned by FT_New_Stream().
  5155 	* src/base/ftobjs.c (IsMacBinary): Return error
  5156 	FT_Err_Invalid_Stream_Operation immediately when NULL stream is
  5157 	passed.
  5158 	(FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
  5159 	to fallback.  Originally, legacy MacOS font is tested in the cases
  5160 	of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
  5161 	or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
  5162 	.dfont header is combined).  Now the case of
  5163 	FT_Err_Cannot_Open_Stream is included.
  5165 	* src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
  5166 	skip FT_Stream_Seek(), which seeks to the head of stream, and
  5167 	proceed to unit testing of raccess_guess_XXX().  FT_Stream_Seek()
  5168 	for a NULL stream causes a Bus error on Mac OS X.
  5169 	(raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
  5170 	immediately if passed stream is NULL.
  5171 	(raccess_guess_apple_single): Ditto.
  5173 2007-11-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5175 	Fix for Carbon incompatibilities since Mac OS X 10.5,
  5176 	proposed by Sean McBride.
  5178 	* doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
  5180 	* include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
  5181 	FT_GetFilePath_From_Mac_ATS_Name.  Since Mac OS X 10.5, calling
  5182 	Carbon functions from a forked process is classified as unsafe
  5183 	by Apple.  All Carbon-dependent functions should be deprecated.
  5185 	* src/base/ftmac.c: Use essential header files
  5186 	<CoreServices/CoreServices.h> and
  5187 	<ApplicationServices/ApplicationServices.h> instead of
  5188 	all-in-one header file <Carbon/Carbon.h>.
  5190 	Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
  5191 	genuine macro PATH_MAX.
  5193 	Add fallback macro for kATSOptionFlagsUnRestrictedScope which
  5194 	is not found in Mac OS X 10.0.
  5196 	Multi-character constants ('POST', 'sfnt' etc) are replaced by
  5197 	64bit constants calculated by FT_MAKE_TAG() macro.
  5199 	For the index in the segment of resource fork, new portable
  5200 	type ResourceIndex is introduced for better compatibility.
  5201 	This type is since Mac OS X 10.5, so it is defined as short
  5202 	when built on older platforms.
  5204 	(FT_ATSFontGetFileReference): If build target is only the systems
  5205 	10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
  5207 	(FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
  5208 	and newer or 64bit platform, because legacy type FSSpec type is
  5209 	removed completely.
  5211 	(FT_New_Face_From_FSSpec): Ditto.
  5213 2007-11-01  Werner Lemberg  <wl@gnu.org>
  5215 	* src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere.  This
  5216 	fixes Savannah bug #21485.
  5218 2007-10-29  Daniel Svoboda  <dasvo@planeta@cz>
  5220 	* src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
  5221 	can handle the font at all, then check `face_index'.  Otherwise, the
  5222 	driver might return the wrong error code.  This fixes Savannah bug
  5223 	#21468.
  5225 2007-10-21  Werner Lemberg  <wl@gnu.org>
  5227 	* src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
  5228 	support for bit 8 of the `fsSelection' field in the `OS/2' table.
  5229 	MS is already using this; hopefully, this becomes part of OpenType
  5230 	1.5.
  5231 	Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
  5232 	(WWS_SUBFAMILY).
  5234 2007-10-20  Werner Lemberg  <wl@gnu.org>
  5236 	* src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
  5237 	Add `td.left' element to CSS.
  5238 	(toc_section_enter): Use it.
  5240 2007-10-18  David Turner  <david@freetype.org>
  5242 	* include/freetype/freetype.h, src/base/ftobjs.c: Rename API
  5243 	functions related to cmap type 14 support to the
  5244 	`FT_Object_ActionName' scheme:
  5246 	  FT_Get_Char_Variant_index     -> FT_Face_GetCharVariantIndex
  5247 	  FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
  5248 	  FT_Get_Variant_Selectors      -> FT_Face_GetVariantSelectors
  5249 	  FT_Get_Variants_Of_Char       -> FT_Face_GetVariantsOfChar
  5250 	  FT_Get_Chars_Of_Variant       -> FT_Face_GetCharsOfVariant
  5252 	Update documentation accordingly.
  5254 	* src/sfnt/ttcmap.c: Stronger cmap 14 validation.
  5255 	Make the code a little more consistent with FreeType coding
  5256 	conventions and modify the cmap14 functions that returned a newly
  5257 	allocated array to use a persistent vector from the TT_CMap14 object
  5258 	instead.
  5260 	(TT_CMap14Rec): Provide array and auxiliary data for result.
  5261 	(tt_cmap14_done, tt_cmap14_ensure): New functions.
  5263 	(tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
  5264 	tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
  5265 	tt_cmap14_char_var_index, tt_cmap14_variants,
  5266 	tt_cmap14_char_variants, tt_cmap14_def_char_count,
  5267 	tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
  5268 	tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
  5270 2007-10-15  George Williams  <gww@silcom.com>
  5272 	Add support for cmap type 14.
  5274 	* devel/ftoption.h, include/freetype/config/ftoption.h
  5275 	(TT_CONFIG_CMAP_FORMAT_14): New macro.
  5277 	* include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
  5278 	FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
  5279 	FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
  5280 	support function prototypes.
  5281 	(FT_CMap_ClassRec): Add them.
  5282 	Update all users.
  5284 	* include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
  5285 	macro.
  5287 	* include/freetype/freetype.h (FT_Get_Char_Variant_Index,
  5288 	FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
  5289 	FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
  5290 	functions.
  5292 	* src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
  5293 	function.
  5294 	(FT_Set_Charmap): Disallow cmaps of type 14.
  5295 	(FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
  5296 	FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
  5297 	FT_Get_Chars_Of_Variant): New API functions.
  5299 	* src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
  5301 	(TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
  5302 	tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
  5303 	tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
  5304 	tt_cmap14_find_variant, tt_cmap14_char_var_index,
  5305 	tt_cmap14_char_var_isdefault, tt_cmap14_variants,
  5306 	tt_cmap14_char_variants, tt_cmap14_def_char_count,
  5307 	tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
  5308 	tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
  5309 	structures for cmap 14 support.
  5310 	(tt_cmap_classes): Register tt_cmap14_class_rec.
  5311 	(tt_face_build_cmaps): One more error message.
  5313 	* docs/CHANGES: Mention cmap 14 support.
  5315 2007-10-01  Werner Lemberg  <wl@gnu.org>
  5317 	* src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
  5318 	charmap fails, do the loop again while searching a UCS-2 charmap.
  5319 	This favours MS charmaps over Apple ones.
  5321 2007-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5323 	* src/base/ftmac.c: Introduction of abstract `short' data types,
  5324 	ResFileRefNum and ResID.  These types were introduced for Copland,
  5325 	then backported to MPW.  The variables exchanged with FileManager
  5326 	QuickDraw frameworks are redefined by these data types.  Patch was
  5327 	proposed by Sean McBride.
  5328 	* builds/mac/ftmac.c: Ditto.
  5330 2007-08-18  Werner Lemberg  <wl@gnu.org>
  5332 	* src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs.  Found
  5333 	by Imran Yousaf.  Fixes Savannah bug #20773.
  5335 	(otv_Lookup_validate): Correct handling of LookupType.  Found by
  5336 	Imran Yousaf.  Fixes Savannah bug #20782.
  5338 2007-08-17  George Williams  <gww@silcom.com>
  5340 	* src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
  5341 	SingleSubstFormat1.
  5343 2007-08-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5345 	* builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
  5346 	${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
  5347 	Found by Ryan Hill.
  5349 2007-08-11  George Williams  <gww@silcom.com>
  5351 	* src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
  5352 	(otv_Coverage_validate): Add fourth argument to pass an expected
  5353 	count value.  Update all users.
  5354 	Check glyph IDs.
  5355 	(otv_ClassDef_validate): Check `StartGlyph'.
  5357 	* src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
  5358 	checks.
  5360 	* src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
  5361 	56 constants.
  5362 	(otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
  5363 	Check glyph IDs.
  5365 2007-08-08  Werner Lemberg  <wl@gnu.org>
  5367 	* src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
  5368 	src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
  5369 	src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
  5370 	appropriate.  Reported by George.
  5372 	* include/freetype/internal/fttrace.h: Define `trace_otvmath'.
  5374 	* src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
  5376 	* docs/CHANGES: Updated.
  5378 2007-08-08  George Williams  <gww@silcom.com>
  5380 	Add `MATH' validating support to otvalid module.
  5382 	* include/freetype/tttags.h (TTAG_MATH): New macro.
  5383 	* include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
  5384 	(FT_VALIDATE_OT): Updated.
  5386 	* src/otvalid/otmath.c: New file.
  5388 	* src/otvalid/otvalid.c: Include otvmath.c.
  5389 	* src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
  5391 2007-08-04  Werner Lemberg  <wl@gnu.org>
  5393 	* builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
  5394 	Fixes Savannah bug #20686.
  5396 2007-08-03  Werner Lemberg  <wl@gnu.org>
  5398 	* src/psnames/psmodule.c: Fix usage of
  5399 	FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro.  Reported by Graham Asher.
  5401 2007-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5403 	* src/base/ftmac.c (open_face_from_buffer): The argument
  5404 	`driver_name' is typed as `const char*' to match with the
  5405 	callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
  5406 	This is same with open_face_from_buffer in src/base/ftobjs.c.
  5407 	Found and fixed by Sean McBride.
  5409 2007-07-28  Werner Lemberg  <wl@gnu.org>
  5411 	* src/raster/ftraster.c (count_table): Make it conditional.
  5412 	* src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
  5413 	a preprocessor statement.
  5415 2007-07-27  Werner Lemberg  <wl@gnu.org>
  5417 	* src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
  5418 	first usage.  From Savannah patch #6115.
  5420 2007-07-16  Werner Lemberg  <wl@gnu.org>
  5422 	* docs/CHANGES: Updated.
  5424 2007-07-16  Derek Clegg  <dclegg@apple.com>
  5426 	Add new service for getting the ROS from a CID font.
  5428 	* include/freetype/config/ftheader.h (FT_CID_H): New macro.
  5429 	* include/freetype/ftcid.h: New file.
  5431 	* include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
  5432 	* include/freetype/internal/services/svcid.h: New file.
  5434 	* src/base/ftcid.c: New file.
  5436 	* src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
  5437 	(cff_get_ros): New function.
  5438 	(cff_service_cid_info): New service structure.
  5439 	(cff_services): Register it.
  5441 	* src/cff/cffload.c (cff_font_done): Free registry and ordering.
  5443 	* src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
  5445 	* modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
  5447 2007-07-11  Derek Clegg  <dclegg@apple.com>
  5449 	Add support for postscript name service to CFF driver.
  5451 	* src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
  5452 	(cff_get_ps_name): New function.
  5453 	(cff_service_ps_name): New service structure.
  5454 	(cff_services): Register it.
  5456 2007-07-07  Werner Lemberg  <wl@gnu.org>
  5458 	* src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
  5459 	`target'.  Reported by Sean McBride.
  5461 2007-07-06  Werner Lemberg  <wl@gnu.org>
  5463 	* src/pfr/pfrcmap.c: Include pfrerror.h.
  5465 	* src/autofit/afindic.c: Add some external declarations to pacify
  5466 	`make multi' compilation.
  5468 	* src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
  5470 	* src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
  5471 	(cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
  5472 	src/autofit/aflatin.c (af_latin_hints_compute_edges),
  5473 	src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
  5474 	(tt_face_get_metrics), src/base/ftobjs.c (open_face)
  5475 	[FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
  5477 	* docs/release: Mention test compilation targets.
  5479 2007-07-04  Werner Lemberg  <wl@gnu.org>
  5481 	* docs/PROBLEMS: Mention that some PS based fonts can't be
  5482 	handled correctly by FreeType.
  5484 	* src/truetype/ttgload.c (load_truetype_glyph): Always allow a
  5485 	recursion depth of 1.  This was the maximum value in TrueType 1.0,
  5486 	and some older fonts don't set this field correctly.
  5488 	* src/gxvalid/gxvmort1.c
  5489 	(gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
  5491 2007-07-03  Werner Lemberg  <wl@gnu.org>
  5493 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
  5494 	`round' to pacify compiler.
  5496 2007-07-02  Werner Lemberg  <wl@gnu.org>
  5499 	* Version 2.3.5 released.
  5500 	=========================
  5503 	Tag sources with `VER-2-3-5'.
  5505 	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
  5506 	version number to 2.3.5.
  5508 	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
  5509 	builds/win32/visualc/freetype.dsp,
  5510 	builds/win32/visualc/freetype.vcproj,
  5511 	builds/win32/visualce/index.html,
  5512 	builds/win32/visualce/freetype.dsp,
  5513 	builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
  5515 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
  5517 	* builds/unix/configure.raw (version_info): Set to 9:16:3.
  5519 2007-07-01  David Turner  <david@freetype.org>
  5521 	* include/freetype/freetype.h, src/base/ftpatent.c
  5522 	(FT_Face_SetUnpatentedHinting): New function to dynamically change
  5523 	the setting after a face is created.
  5525 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
  5526 	that created distortions in the bytecode interpreter results.
  5528 2007-06-30  David Turner  <david@freetype.org>
  5530 	* src/truetype/ttinterp.c (Ins_IUP): Add missing variable
  5531 	initialization.
  5533 	* src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
  5534 	infinite loop in the case of degenerate fonts.
  5536 2007-06-26  Rahul Bhalerao  <b.rahul.pm@gmail.com>
  5538 	Add autofit module for Indic scripts.  This currently just reuses
  5539 	the CJK-specific functions.
  5541 	* include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
  5542 	macro.
  5543 	* devel/ftoption.h: Synchronize with
  5544 	include/freetype/config/ftoption.h.
  5546 	* src/autofit/afindic.c, src/autofit/afindic.h: New files.
  5548 	* src/autofit/afglobal.c, src/autofit/aftypes.h,
  5549 	src/autofit/autofit.c: Updated.
  5551 	* src/autofit/Jamfile (_sources), * src/autofit/rules.mk
  5552 	(AUTOF_DRV_SRC): Updated.
  5554 2007-06-23  David Turner  <david@freetype.org>
  5556 	* src/truetype/ttgload.c (TT_Load_Simple): Fix change from
  5557 	2007-06-16 that prevented the TrueType module from loading most
  5558 	glyphs.
  5560 2007-06-20  Werner Lemberg  <wl@gnu.org>
  5562 	* src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
  5563 	change.
  5565 2007-06-19  Werner Lemberg  <wl@gnu.org>
  5567 	* src/type1/t1load.c (parse_encoding): Handle one more error.
  5569 2007-06-19  Dmitry Timoshkov  <dmitry@codeweavers.com>
  5571 	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
  5572 	FNT_Err_Invalid_File_Format if file format was recognized but
  5573 	the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
  5574 	Add verbose debug logs to make it easier to debug failing load
  5575 	attempts.
  5576 	(FNT_Face_Init): A single FNT font can't contain more than 1 face,
  5577 	so return an error if requested face index is > 0.
  5578 	Do not do further attempt to load fonts if a previous attempt has
  5579 	failed but returned error FNT_Err_Invalid_File_Format, i.e., the
  5580 	file format has been recognized but no fonts found in the file.
  5582 2007-07-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  5584 	* src/base/ftmac.c: Apply patches proposed by Sean McBride.
  5585 	(FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
  5586 	the compiler warnings against unused arguments.
  5587 	(FT_ATSFontGetFileReference): Ditto.
  5588 	(FT_GetFile_From_Mac_ATS_Name): Ditto.
  5589 	(FT_New_Face_From_FSSpec): Ditto.
  5590 	(lookup_lwfn_by_fond): Fix wrong comment.
  5591 	Replace `const StringPtr' by more appropriate type
  5592 	`ConstStr255Param'.
  5593 	FSRefMakePathPath always returns UTF8 POSIX pathname in
  5594 	Mach-O, thus HFS pathname support is dropped.
  5595 	(count_faces): Remove HLock and HUnlock which is not
  5596 	required on Mac OS X anymore.
  5597 	(FT_New_Face_From_SFNT): Ditto.
  5598 	(FT_New_Face_From_FOND): Ditto.
  5599 	* builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
  5600 	except of HFS pathname support and HLock/HUnlock.
  5601 	They are required on classic CFM environment.
  5603 2007-06-18  Werner Lemberg  <wl@gnu.org>
  5605 	* src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
  5606 	assertion.
  5607 	(ps_parser_to_bytes): Fix error message.
  5609 	* src/type42/t42objs.c (T42_Open_Face): Handle one more error.
  5610 	* src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
  5611 	Don't allow mixed binary and hex strings.
  5612 	Handle string_size == 0 and string_buf == 0.
  5613 	(t42_parse_encoding): Handle one more error.
  5615 2007-06-18  Werner Lemberg  <wl@gnu.org>
  5617 	* src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
  5618 	logic.
  5619 	(ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
  5620 	correctly.
  5621 	(ps_parser_load_field_table): Use `fields->array_max' instead of
  5622 	T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
  5624 	* src/cff/cffgload.c (cff_decoder_prepare): Fix change from
  5625 	2007-06-06.
  5627 2007-06-17  Werner Lemberg  <wl@gnu.org>
  5629 	* src/tools/ftrandom.c (font_size): New global variable.
  5630 	(TestFace): Use it.
  5631 	(main): Handle new option `--size' to set `font_size'.
  5632 	(Usage): Updated.
  5634 	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
  5635 	invalid font.
  5636 	(FNT_Load_Glyph): Protect against invalid bitmap width.
  5638 2007-06-16  David Turner  <david@freetype.org>
  5640 	* src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
  5641 	Prevent integer overflows when rendering very large outlines.
  5643 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
  5644 	well-formedness of the contours array when loading a glyph.
  5646 	* src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
  5647 	and `zp2'.
  5648 	(Ins_IP): Check argument ranges to reject bogus operations properly.
  5649 	(IUP_WorkerRec): Add `max_points' member.
  5650 	(_iup_worker_interpolate): Check argument ranges.
  5651 	(Ins_IUP): Ignore empty outlines.
  5653 2007-06-16  Dmitry Timoshkov  <dmitry@codeweavers.com>
  5655 	* src/winfonts/winfnt.h: Add necessary structures for PE resource
  5656 	parsing.
  5657 	(WinPE32_HeaderRec): New structure.
  5658 	(WinPE32_SectionRec): New structure.
  5659 	(WinPE_RsrcDirRec): New structure.
  5660 	(WinPE_RsrcDirEntryRec): New structure.
  5661 	(WinPE_RsrcDataEntryRec): New structure.
  5662 	(FNT_FontRec): Remove unused `size_shift' field.
  5664 	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
  5665 	loading bitmap .fon files in PE format.
  5667 2007-06-15  Dmitry Timoshkov  <dmitry@codeweavers.com>
  5669 	* builds/win32/ftdebug.c: Unify debug level handling with other
  5670 	platforms.
  5672 2007-06-14  Dmitry Timoshkov  <dmitry@codeweavers.com>
  5674 	* builds/win32/ftdebug.c (FT_Message): Send debug output to the
  5675 	console as well as to the debugger.
  5677 2007-06-14  Werner Lemberg  <wl@gnu.org>
  5679 	* src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
  5680 	cover all ranges which could possibly be handled by the aflatin
  5681 	module (since the default fallback for unknown ranges is now the
  5682 	afcjk module).  It might be necessary to fine-tune this further by
  5683 	splitting off modules for Greek, Cyrillic, or other blocks.
  5685 2007-06-11  David Turner  <david@freetype.org>
  5687 	* src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
  5688 	incorrect segment linking computation.  This was the root cause of
  5689 	Savannah bug #19565.
  5692 	* src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
  5693 	to improve the Latin auto-hinter.  Note that the new code is
  5694 	disabled by default since it is not stabilized yet.
  5696 	* src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
  5697 	(disabled currently).
  5699 	* src/autofit/afhints.c: Remove dead code.
  5700 	(af_axis_hints_new_edge): Add argument to handle segment directions.
  5701 	(af_edge_flags_to_string): New function.
  5702 	(af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
  5703 	option flags.
  5704 	(af_glyph_hints_reload): Add argument to handle inflections.
  5705 	Simplify.
  5706 	(af_direction_compute): Fine tuning.
  5707 	(af_glyph_hints_align_edge_points): Fix logic.
  5708 	(af_glyph_hints_align_strong_points): Do linear search for small
  5709 	edge counts.
  5710 	(af_glyph_hints_align_weak_points): Skip any touched neighbors.
  5711 	(af_iup_shift): Handle zero `delta'.
  5713 	* src/autofit/afhints.h: Updated.
  5714 	(AF_SORT_SEGMENTS): New macro (disabled).
  5715 	(AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
  5717 	* src/autofit/afglobal.c (af_face_globals_get_metrics): Add
  5718 	argument to pass option flags for handling scripts.
  5719 	* src/autofit/afglobal.h: Updated.
  5721 	* src/autofit/afcjk.c: Updated.
  5722 	* src/autofit/aflatin.c: Updated.
  5723 	(af_latin_metrics_scale_dim): Don't reduce scale by 2%.
  5725 	(af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
  5726 	(af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
  5727 	Don't set `edge->dir'
  5728 	(af_latin_hint_edges): Add more logging.
  5730 	* src/autofit/afloader.c: Updated.
  5732 2007-06-11  Werner Lemberg  <wl@gnu.org>
  5734 	* docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
  5736 2007-06-10  David Turner  <david@freetype.org>
  5738 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
  5739 	the TrueType glyph loader.
  5741 	* include/freetype/config/ftoption.h: Clarify documentation
  5742 	regarding unpatented hinting.
  5745 	Add new `FT_Face_CheckTrueTypePatents' API.
  5747 	* include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
  5748 	declaration.
  5750 	* include/freetype/internal/services/svttglyf.h,
  5751 	src/base/ftpatent.c: New files.
  5753 	* include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
  5754 	New macro.
  5756 	* src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
  5757 	`ttpload.h'.
  5758 	(tt_service_truetype_glyf): New service structure.
  5759 	(tt_services): Register it.
  5761 	* modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
  5762 	`ftpatent.c'.
  5764 2007-06-08  Werner Lemberg  <wl@gnu.org>
  5766 	* src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
  5767 	Fonts without a cmap must be handled correctly by FreeType (anything
  5768 	else would be a bug).
  5771 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
  5772 	[FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
  5774 2007-06-07  Werner Lemberg  <wl@gnu.org>
  5776 	* src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
  5777 	tt_sbit_decoder_load_image): Protect against integer overflows.
  5780 	* src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
  5781 	for `x_control' and `y_control'.
  5783 2007-06-06  Werner Lemberg  <wl@gnu.org>
  5785 	* src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
  5788 	* src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
  5789 	FreeType error.
  5792 	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
  5793 	`font_count'.
  5796 	* src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
  5799 	* src/cff/cffgload.c (cff_decoder_prepare): Change return type to
  5800 	`FT_Error'.
  5801 	Check `fd_index'.
  5802 	(cff_slot_load): Updated.
  5803 	* src/cff/cffgload.h: Updated.
  5805 2007-06-05  Werner Lemberg  <wl@gnu.org>
  5807 	* src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
  5808 	(pfr_glyph_load_simple): Convert assertion into normal FreeType
  5809 	error.
  5810 	Check `idx'.
  5811 	(pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
  5812 	Convert assertion into normal FreeType error.
  5814 	* src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
  5817 	* src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
  5820 	* src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
  5821 	in case of parsing error.
  5822 	(ps_parser_load_field): Updated.
  5824 	* src/type1/t1load.c (parse_font_matrix): Updated.
  5826 2007-06-04  Werner Lemberg  <wl@gnu.org>
  5828 	* src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
  5830 	* src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
  5832 2007-06-03  Werner Lemberg  <wl@gnu.org>
  5834 	* src/tools/ftrandom/*: Add the `ftrandom' test program written by
  5835 	George Williams (with some modifications).
  5837 2007-06-03  Werner Lemberg  <wl@gnu.org>
  5839 	* src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
  5840 	(T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
  5841 	face == NULL.  Suggested by Graham Asher.
  5843 2007-06-03  Ismail Dönmez  <ismail@pardus.org.tr>
  5845 	* src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
  5847 2007-06-02  Werner Lemberg  <wl@gnu.org>
  5849 	* include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
  5850 	FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
  5852 	* src/bdf/bdflib.c (bdf_load_font): Use them.
  5854 	* src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
  5856 2007-06-01  Werner Lemberg  <wl@gnu.org>
  5858 	* src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
  5859 	(FTC_CMapCache_Lookup): Remove unused code.
  5861 2007-06-01  Sean McBride  <sean@rogue-research.com>
  5863 	* src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
  5864 	unused.
  5866 2007-06-01  Werner Lemberg  <wl@gnu.org>
  5868 	* src/cid/cidparse.c (cid_parser_new): Don't continue second search
  5869 	pass for `StartData' if an error has occurred.
  5870 	Exit properly if no `StartData' has been seen at all.
  5872 	* builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
  5873 	LONG_MAX to avoid compiler warning.  Suggested by Sean McBride.
  5875 2007-05-30  Werner Lemberg  <wl@gnu.org>
  5877 	* src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
  5878 	against too small binary data strings.
  5880 	* src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
  5882 2007-05-28  David Turner  <david@freetype.org>
  5884 	* src/cff/cffgload.c (cff_slot_load): Do not apply the identity
  5885 	transformation.  This significantly reduces the loading time of CFF
  5886 	glyphs.
  5888 	* docs/CHANGES: Updated.
  5890 	* src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
  5891 	hinting script to CJK, since it works well with more scripts than
  5892 	latin.  Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
  5893 	this out!
  5895 2007-05-25  Werner Lemberg  <wl@gnu.org>
  5897 	* docs/CHANGES: Updated.
  5899 2007-05-24  Werner Lemberg  <wl@gnu.org>
  5901 	* src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
  5902 	into TT_USE_BYTECODE_INTERPRETER preprocessor block.
  5904 2007-05-24  Graham Asher  <graham.asher@btinternet.com>
  5906 	* src/truetype/ttobjs.c (tt_size_ready_bytecode)
  5907 	[!TT_USE_BYTECODE_INTERPRETER]: Removed.  Unused.
  5909 2007-05-22  David Turner  <david@freetype.org>
  5911 	* src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
  5912 	avoid crashes in case the bytecode interpreter is not used.
  5915 	Avoid heap blowup with very large .Z font files.  This fixes
  5916 	Savannah bug #19910.
  5918 	* src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
  5919 	`in_limit', `pad', `pad_bits', and `in_buff' members.
  5920 	Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
  5921 	`buf_total' members.
  5923 	* src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten.  It now takes
  5924 	only one argument.
  5925 	(ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
  5927 2007-05-20  Ismail Dönmez  <ismail@pardus.org.tr>
  5929 	* src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
  5930 	(ps_dimension_set_mask_bits): Remove `const'.
  5932 2007-05-19  Werner Lemberg  <wl@gnu.org>
  5934 	* src/sfnt/ttmtx.c (tt_face_get_metrics)
  5935 	[!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
  5937 2007-05-19  Derek Clegg  <dclegg@apple.com>
  5939 	Savannah patch #5929.
  5941 	* include/freetype/tttables.h, src/base/ftobjcs.c
  5942 	(FT_Get_CMap_Format): New function.
  5944 	* include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
  5945 	`format' member.
  5946 	* src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
  5947 	cmap_info->format.
  5949 2007-05-19  Werner Lemberg  <wl@gnu.org>
  5951 	* src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
  5952 	before handling subglyphs so that it can be reinitialized each time.
  5953 	This fixes Savannah bug #19859.
  5955 2007-05-16  Werner Lemberg  <wl@gnu.org>
  5957 	* src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
  5958 	src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
  5959 	(FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
  5960 	src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
  5961 	tt_face_get_metrics): Fix type-punning issues.
  5963 2007-05-15  David Turner  <david@freetype.org>
  5965 	* include/freetype/config/ftstdlib.h,
  5966 	include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
  5967 	ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
  5968 	instead on relying on the locale-dependent functions provided by
  5969 	<ctypes.h>.
  5971 2007-05-15  Graham Asher  <graham.asher@btinternet.com>
  5973 	* src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
  5974 	variable.
  5975 	* src/autofit/afloader.c (af_loader_load_g): Ditto.
  5977 	* src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
  5978 	(open_face_from_buffer): Initialize `stream'.
  5979 	(FT_Request_Metrics): Remove unused variable.
  5980 	Remove redundant `break' statements.
  5981 	(FT_Get_Track_Kerning): Remove unused variable.
  5983 	* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
  5984 	afm_parse_kern_data): Remove redundant
  5985 	`break' statements.
  5986 	(afm_parser_parse): Ditto.
  5987 	Don't use uninitialized variables.
  5989 	* src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
  5990 	Use `|' operator instead of `^' to set it.
  5991 	Update all users.
  5993 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
  5994 	* src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
  5996 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
  5997 	comparison.
  5998 	(TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
  5999 	(TT_Load_Glyph): Remove unused variable.
  6001 2007-05-13  Derek Clegg  <dclegg@apple.com>
  6003 	* src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
  6004 	if FT_RENDER_POOL_SIZE is > 0.  From Savannah patch #5928.
  6006 2007-05-11  David Turner  <david@freetype.org>
  6008 	* src/cache/ftbasic.c, include/freetype/ftcache.h
  6009 	(FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
  6010 	functions that allow us to look up glyphs using an FTC_Scaler object
  6011 	to specify the size, making it possible to use fractional pixel
  6012 	sizes.
  6014 	* src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
  6015 	`size->cvt_ready'.  Reported by Boris Letocha.
  6017 2007-05-09  Graham Asher  <graham.asher@btinternet.com>
  6019 	* src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
  6020 	(af_latin_metrics_scale_dim): Fix compiler warnings.
  6022 2007-05-06  Werner Lemberg  <wl@gnu.org>
  6024 	* builds/win32/visualce/freetype.sln: Removed, as requested by
  6025 	Vincent.
  6027 2007-05-04  Vincent RICHOMME  <richom.v@free.fr>
  6029 	* builds/win32/visualce/*: Add Visual C++ project files for Pocket
  6030 	PC targets.
  6032 	* docs/CHANGES: Document them.
  6034 2007-05-04  <harry@kdevelop.org>
  6036 	* builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
  6037 	mmap (which might happen on some RTOS).  From Savannah patch #5909.
  6039 2007-05-03  Werner Lemberg  <wl@gnu.org>
  6041 	* src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
  6042 	* include/freetype/freetype.h (FT_Set_Char_Size): Update
  6043 	documentation.
  6045 2007-04-28  Victor Stinner  <victor.stinner@inl.fr>
  6047 	* src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
  6048 	`cmap'.
  6050 2007-04-27  Werner Lemberg  <wl@gnu.org>
  6052 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
  6053 	number of points in contours.  Problem reported by Victor Stinner
  6054 	<victor.stinner@haypocalc.com>.
  6055 	(TT_Process_Simple_Glyph): Synchronize variable types.
  6057 2007-04-26  Werner Lemberg  <wl@gnu.org>
  6059 	* src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
  6060 	zero in case of error.  This fixes Savannah bug #19689.
  6062 2007-04-25  Boris Letocha  <b.letocha@cz.gmc.net>
  6064 	* src/truetype/ttobjs.c: Fix a typo that created a speed regression
  6065 	in the TrueType bytecode loader.
  6067 2007-04-10  Martin Horak  <horakm@centrum.cz>
  6069 	* src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
  6070 	Ignore `hhea' table.  This fixes Savannah bug #19261.
  6072 2007-04-09  Werner Lemberg  <wl@gnu.org>
  6075 	* Version 2.3.4 released.
  6076 	=========================
  6079 	Tag sources with `VER-2-3-4'.
  6081 	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
  6082 	version number to 2.3.4.
  6084 	* README, Jamfile (RefDoc), builds/win32/visualc/index.html,
  6085 	builds/win32/visualc/freetype.dsp,
  6086 	builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
  6088 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
  6090 	* builds/unix/configure.raw (version_info): Set to 9:15:3.
  6092 2007-04-09  Martin Horak  <horakm@centrum.cz>
  6094 	* src/truetype/ttgload.c (load_truetype_glyph): Save and restore
  6095 	memory stream to avoid a crash with the incremental memory
  6096 	interface (Savannah bug #19260).
  6098 2007-04-06  David Turner  <david@freetype.org>
  6100 	* src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
  6101 	(Savannah bug #19536).
  6103 2007-04-04  Werner Lemberg  <wl@gnu.org>
  6106 	* Version 2.3.3 released.
  6107 	=========================
  6110 	Tag sources with `VER-2-3-3'.
  6112 	* docs/CHANGES: Mention CVE-2007-1351.
  6114 2007-04-03  David Turner  <david@freetype.org>
  6116 	* src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
  6117 	if one of the resolution values is 0, treat it as if it were the
  6118 	same as the other value.
  6120 2007-04-02  David Turner  <david@freetype.org>
  6122 	Add special code to detect `extra-light' fonts and do not snap their
  6123 	stem widths too much to avoid bizarre hinting effects.
  6125 	* src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
  6126 	`extra_light' members.
  6128 	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
  6129 	them.
  6130 	(af_latin_metrics_scale_dim): Set `extra_light'.
  6131 	(af_latin_compute_stem_width): Use `extra_light'.
  6133 2007-03-28  David Turner  <david@freetype.org>
  6135 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
  6136 	padding.
  6138 2007-03-28  Werner Lemberg  <wl@gnu.org>
  6140 	* src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
  6141 	gracefully.
  6142 	(_bdf_set_default_spacing): Increase `name' buffer size to 256 and
  6143 	issue an error for longer names.  This fixes CVE-2007-1351.
  6144 	(_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
  6145 	number of code points in Unicode.
  6147 	* builds/win32/visualc/index.html,
  6148 	builds/win32/visualc/freetype.dsp,
  6149 	builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
  6150 	s/232/233/.
  6152 	* docs/CHANGES: Mention ftdiff.
  6154 2007-03-26  David Turner  <david@freetype.org>
  6156 	* src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
  6157 	corresponding code.
  6158 	(Ins_MD): Last regression fix.
  6160 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
  6161 	computations in order to ignore single-point contours.  These are
  6162 	never rasterized and correspond in certain fonts to mark-attach
  6163 	points that are very far from the glyph's real outline, ruining the
  6164 	computation.
  6166 	* src/autofit/afloader.c (af_loader_load_g): In the case of
  6167 	monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
  6168 	Otherwise code that uses them will most certainly ruin the fixed
  6169 	advance property.
  6171 	* docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
  6172 	documentation and bump version number to 2.3.3.
  6174 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
  6176 	* builds/unix/configure.raw (version_info): Set to 9:14:3.
  6178 2007-03-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6180 	* builds/unix/ftconfig.in: Disable Carbon framework dependency on
  6181 	64bit ABI on Mac OS X 10.4.x (ppc & i386).  Found by Sean McBride.
  6182 	* builds/vms/ftconfig.h: Ditto.
  6183 	* include/freetype/config/ftconfig.h: Ditto.
  6185 2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6187 	* builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
  6188 	32bit unsigned long overflow by 64bit filesize on LP64 platform, as
  6189 	proposed by Sean McBride:
  6190 	http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
  6192 2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6194 	* builds/unix/ftconfig.in: Suppress SGI compiler's warning against
  6195 	setjmp, proposed by Sean McBride:
  6196 	http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
  6198 2007-03-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6200 	* builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
  6201 	conftest.c, to avoid unexpected shell evaluation.  Possibly it is a
  6202 	bug or undocumented behaviour of autoconf.
  6204 2007-03-18  David Turner   <david@freetype.org>
  6206 	* src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
  6207 	fix; testing still needed.
  6209 	* src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
  6211 2007-03-17  David Turner   <david@freetype.org>
  6213 	* src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
  6214 	(undocumented) twilight zone special case.
  6216 2007-03-09  Werner Lemberg  <wl@gnu.org>
  6219 	* Version 2.3.2 released.
  6220 	=========================
  6223 	Tag sources with `VER-2-3-2'.
  6225 	* builds/win32/visualc/index.html,
  6226 	builds/win32/visualc/freetype.dsp,
  6227 	builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
  6228 	s/231/232/.
  6230 2007-03-08  David Turner  <david@freetype.org>
  6232 	* docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
  6234 	* builds/unix/configure.raw (version_info): Set to 9:13:3.
  6236 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
  6238 	* README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
  6240 	* src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
  6241 	function to work properly, over-writing user-provided buffers in
  6242 	some cases.  Reported by James Cloos <cloos@jhcloos.com>.
  6245 2007-03-05  Werner Lemberg  <wl@gnu.org>
  6247 	* include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
  6248 	macro for `strstr'.
  6250 	* src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
  6251 	`trick_names', as suggested by Ivan Nincic.
  6253 2007-03-05  David Turner  <david@freetype.org>
  6255 	* src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
  6256 	case FT_Init_FreeType fails for some reason.  Problem reported by
  6257 	Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
  6259 	* src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
  6260 	and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
  6261 	`TT_Size.root.metrics'.  Problem reported by Daniel Glöckner
  6262 	<daniel-gl@gmx.net>.
  6264 	* src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
  6265 	signed values, not unsigned ones.  Problem reported by Johannes
  6266 	Walther <joh_walt@yahoo.de>.
  6268 2007-02-21  David Turner  <david@freetype.org>
  6270 	* src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
  6271 	of small and ghost stems in the Postscript interpreter.
  6273 2007-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6275 	* src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
  6276 	leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
  6277 	* builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
  6279 2007-02-16  Werner Lemberg  <wl@gnu.org>
  6281 	* src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
  6282 	* src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
  6284 2007-02-14  David Turner  <david@freetype.org>
  6286 	It seems that the following changes fix most of the known
  6287 	interpreter problems with my fonts, but more testing is needed,
  6288 	though.
  6290 	* src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
  6291 	(TT_MulFix14): Rewrite.
  6292 	(Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
  6293 	(Ins_MIRP): Ditto.
  6295 2007-02-12  Werner Lemberg  <wl@gnu.org>
  6297 	* src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
  6298 	warnings.
  6300 	* src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
  6301 	(bdf_interpret_style): Ditto.
  6303 2007-02-12  David Turner  <david@freetype.org>
  6305 	Simplify projection and dual-projection code interface.
  6307 	* src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
  6308 	FT_Vector' as argument type.
  6309 	* src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
  6310 	Updated.
  6311 	(CUR_fast_project, CUR_fast_dualproj): New macros.
  6312 	(Project, Dual_Project, Project_x, Project_y): Updated.
  6313 	(Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
  6314 	macros.
  6317 	* src/autofit/afloader.c (af_loader_load_g): Improve spacing
  6318 	adjustments for the non-light auto-hinted modes.  Gets rid of
  6319 	`inter-letter spacing is too wide' problems.
  6321 	* src/autofit/aflatin.c (af_latin_hints_link_segments,
  6322 	af_latin_hints_compute_edges): Slight optimization of the segment
  6323 	linker and better handling of serif segments to get rid of broken
  6324 	`9' in Arial at 9pt (96dpi).
  6327 	Introduce new string functions and the corresponding macros to get
  6328 	rid of various uses of strcpy and other `evil' functions, as well as
  6329 	to simplify a few things.
  6331 	* include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
  6332 	ft_mem_strcpyn): New declarations.
  6333 	(FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
  6334 	macros.
  6335 	* src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
  6336 	functions.
  6338 	* src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
  6339 	src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
  6340 	(pcf_get_properties, pcf_interpret_style, pcf_load_font),
  6341 	src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
  6342 	(cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
  6343 	src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
  6344 	(t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
  6345 	t42_get_name_index): Use new functions and simplify code.
  6347 	* builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
  6349 2007-02-11  Werner Lemberg  <wl@gnu.org>
  6351 	* src/autofit/afloader.c (af_loader_load_g): Don't change width for
  6352 	non-spacing glyphs.
  6354 2007-02-07  Tom Parker  <palfrey@tevp.net>
  6356 	* src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
  6357 	pointer.
  6359 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6361 	* include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
  6362 	Introduce __attribute((deprecated))__ to warn functions
  6363 	which use non-ANSI data types in its interfaces.
  6364 	(FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
  6365 	(FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
  6366 	(FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
  6367 	(FT_New_Face_From_FSRef): Deprecated, using FSRef.
  6369 	* src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
  6370 	to avoid warning in building FreeType.
  6371 	* builds/mac/ftmac.c: Ditto.
  6373 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6375 	* src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
  6376 	`--with-fsspec' etc.  Replace #include "ftmac.c" with
  6377 	#include <ftmac.c>.
  6379 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6381 	* include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
  6382 	Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
  6383 	* src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
  6384 	(FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
  6385 	FT_GetFilePath_From_Mac_ATS_Name.
  6386 	* builds/mac/ftmac.c: Ditto.
  6388 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6390 	* include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
  6391 	FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
  6392 	for passing to FT_New_Face_From_FSSpec.
  6394 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6396 	* builds/unix/configure.raw: Check whether Mac OS X system headers
  6397 	can be built under ANSI C mode.
  6399 	* src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
  6400 	compatible to ANSI C in case system headers are ANSI C incompatible.
  6401 	* builds/mac/ftmac.c (OS_INLINE): Ditto.
  6403 2007-02-01  Werner Lemberg  <wl@gnu.org>
  6405 	* include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
  6406 	Explain why applications shouldn't use it.  Found by Alexei.
  6408 2007-02-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
  6410 	* builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
  6411 	message.
  6413 	* src/gxvalid/gxvmort1.c
  6414 	(gxv_mort_subtable_type1_substTable_validate): Fix debugging
  6415 	message.
  6417 2007-01-31  Werner Lemberg  <wl@gnu.org>
  6420 	* Version 2.3.1 released.
  6421 	=========================
  6424 	Tag sources with `VER-2-3-1-FINAL'.
  6426 	* builds/win32/visualc/freetype.dsp,
  6427 	builds/win32/visualc/freetype.vcproj: s/230/231/.
  6428 	* builds/win32/visualc/index.html: s/221/231/.
  6430 	* vms_make.com: Add `ftgasp'.
  6432 2007-01-30  David Turner  <david@freetype.org>
  6434 	Tag sources with VER-2-3-1 to prepare release.
  6436 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
  6438 	* docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
  6439 	s/2.3.0/2.3.1/.
  6441 	* builds/unix/configure.raw (version_info): Set to 9:12:3.
  6444 	* src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
  6445 	(af_loader_load_g): Disable the warper (i.e., the light hinting
  6446 	improvements) to make a 2.3.1 bugfix release before introducing a
  6447 	new feature.  This should give us more time to tune and improve the
  6448 	warper for the next release.
  6450 	* docs/CHANGES: Update accordingly.
  6452 2007-01-25  David Turner  <david@freetype.org>
  6454 	For light auto-hinting, improve glyph advance widths and resurrect
  6455 	normal/full hinting to its normal quality.
  6457 	* src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
  6458 	and `xmax_delta'.
  6459 	* src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
  6460 	and `xmax_delta'.
  6462 	* src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
  6463 	preprocessor conditional with if-clause, handling both light and
  6464 	normal mode.
  6466 	* src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
  6467 	(af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
  6469 2007-01-25  Werner Lemberg  <wl@gnu.org>
  6471 	* docs/release: Updated -- Savannah uses a new uploading scheme.
  6473 2007-01-25  David Turner  <david@freetype.org>
  6475 	* src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
  6477 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
  6478 	<cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
  6479 	functions.
  6481 	* docs/CHANGES: Document light auto-hinting improvement.
  6483 2007-01-25  Werner Lemberg  <wl@gnu.org>
  6485 	* src/cff/cffload.c (cff_index_get_pointers): Handle last entry
  6486 	correctly in a sanity check.  Since this function is only used to
  6487 	load local and global functions, any charstring that called the last
  6488 	local/global function would fail otherwise.  This fixes Savannah bug
  6489 	#18867.
  6491 	* docs/CHANGES: Document it.
  6493 2007-01-23  David Turner  <david@freetype.org>
  6495 	* src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
  6496 	prevented compilation when disabling both the unpatented and the
  6497 	bytecode interpreter in the TrueType font driver.
  6500 	Fix and enable the warper to improve `light' hinting mode.  This is
  6501 	not necessarily a final version, but it seems to work well.
  6503 	* src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
  6504 	Disable code.
  6505 	(af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
  6506 	* src/autofit/aftypes.h: Activate AF_USE_WARPER.
  6508 	* src/autofit/afwarp.c (AF_WarpScore): Tune table.
  6509 	(af_warper_compute_line_best): Fix array size of `scores'.
  6510 	(af_warper_compute): Better handling of border cases.
  6511 	* src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
  6512 	and `X2'.
  6514 2007-01-21  Werner Lemberg  <wl@gnu.org>
  6516 	* ChangeLog: Split off older entries into...
  6517 	* ChangeLog.22: This new file.
  6519 2007-01-21  Werner Lemberg  <wl@gnu.org>
  6521 	* docs/CHANGES: Document SHZ fix.
  6523 2007-01-21  George Williams  <gww@silcom.com>
  6525 	* src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
  6526 	points.
  6528 2007-01-21  Werner Lemberg  <wl@gnu.org>
  6530 	* src/sfnt/ttmtx.c (tt_face_get_metrics)
  6531 	[!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
  6533 2007-01-17  Werner Lemberg  <wl@gnu.org>
  6536 	* Version 2.3.0 released.
  6537 	=========================
  6540 	Tag sources with `VER-2-3-0-FINAL'.
  6542 2007-01-17  Werner Lemberg  <wl@gnu.org>
  6544 	* docs/release: Updated.
  6546 2007-01-16  David Turner  <david@freetype.org>
  6548 	* src/autofit/aflatin.c (af_latin_hints_compute_segments),
  6549 	src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
  6550 	(tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
  6551 	warnings.
  6553 2007-01-15  Detlef Würkner  <TetiSoft@apg.lahn.de>
  6555 	* builds/amiga/makefile, builds/amiga/makefile.os4,
  6556 	builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
  6558 	* builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
  6560 2007-01-14  Detlef Würkner  <TetiSoft@apg.lahn.de>
  6562 	Fix various compiler warnings.
  6564 	* src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
  6565 	src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
  6566 	s/index/strike_index/.
  6567 	* src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
  6569 	* src/gxvalid/gxvmorx5.c
  6570 	(gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
  6572 	* src/truetype/ttinterp.c (Compute_Point_Displacement),
  6573 	src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
  6574 	uninitialized variables.
  6576 2007-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6578 	* docs/CHANGES, docs/INSTALL.MAC: Improvements.
  6580 2007-01-13  Werner Lemberg  <wl@gnu.org>
  6582 	* src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
  6583 	versions up to 0x3FF without complaining.
  6585 2007-01-13  Derek Clegg  <dclegg@apple.com>
  6587 	Add FT_Get_PS_Font_Info interface to CFF driver.
  6589 	* src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
  6590 	(CFF_FontRec): Add `font_info' field.
  6592 	* src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
  6593 	(cff_font_done): Free font->font_info if necessary.
  6595 	* src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
  6596 	(cff_service_ps_info): Register cff_ps_get_font_info.
  6598 2007-01-13  Werner Lemberg  <wl@gnu.org>
  6600 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
  6601 	with C++ compiler.
  6603 	* src/autofit/afhints.c (af_glyph_hints_dump_segments,
  6604 	af_glyph_hints_dump_edges): Ditto.
  6606 	* src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
  6607 	`modules.cfg').
  6609 	* src/sfnt/ttsbit0.h: Remove.
  6611 	* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
  6613 2007-01-12  David Turner  <david@freetype.org>
  6615 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
  6616 	bug in the bitmap emboldener if the pitch of the source bitmap is
  6617 	much larger than its width.
  6619 	* src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
  6620 	compilation warning.
  6622 2007-01-12  Werner Lemberg  <wl@gnu.org>
  6624 	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
  6625 	`automake' CVS module from sources.redhat.com.
  6627 2007-01-11  Werner Lemberg  <wl@gnu.org>
  6629 	* src/type1/t1load.c (is_space): Removed.
  6630 	(parse_encoding, parse_charstrings): Use IS_PS_DELIM.
  6631 	(parse_charstrings): Use IS_PS_TOKEN.
  6634 	* autogen.sh: Avoid bash specific syntax.
  6636 2007-01-11  David Turner  <david@freetype.org>
  6638 	* docs/CHANGES: Small update.
  6640 	* builds/unix/configure.raw (version_info): Set to 9:11:3.
  6642 	* src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
  6643 	crash with some Mac OS X .dfont files.  Submitted by Masatake
  6644 	Yamato.
  6646 	* autogen.sh: Small fix to get it working on Mac OS X properly:
  6647 	The issue is that GNU libtool is called `glibtool' on this platform,
  6648 	and we must call `glibtoolize', since `libtoolize' doesn't exist.
  6650 2007-01-10  David Turner  <david@freetype.org>
  6652 	* all-sources: Tag all sources with VER-2-3-0-RC1 and
  6653 	VER-2-3-0.
  6655 	* Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
  6656 	builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
  6657 	version number to 2.3.0.
  6659 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
  6660 	(FREETYPE_PATCH): Set to 0.
  6662 	* include/freetype/ftchapters.h, include/freetype/ftgasp.h,
  6663 	include/freetype/ftlcdfil.h: Update reference documentation with
  6664 	GASP support and LCD filtering sections.
  6666 	* src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
  6667 	which created an endless loop with some malformed font files.
  6669 2007-01-10  Derek Clegg  <dclegg@apple.com>
  6671 	* src/type1/t1load.c (T1_Get_MM_Var): Always return fixed-point
  6672 	values.
  6674 2007-01-08  David Turner  <david@freetype.org>
  6676 	* docs/CHANGES: Updated.
  6678 	* include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
  6679 	a new API `FT_Get_Gasp' to return entries of the `gasp' table
  6680 	corresponding to a given character pixel size.
  6682 	* src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
  6683 	`gasp' table, in order to avoid potential problems with later
  6684 	versions.
  6686 	* include/freetype/config/ftheader.h (FT_GASP_H): New macro for
  6687 	<freetype/ftgasp.h>.
  6689 	* src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
  6690 	modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
  6691 	builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
  6692 	default build.
  6694 2007-01-07  Werner Lemberg  <wl@gnu.org>
  6696 	* src/cid/cidparse.c (cid_parser_new): Improve error message for
  6697 	Type 11 fonts.
  6698 	Scan for `/sfnts' token.
  6700 2007-01-07  Werner Lemberg  <wl@gnu.org>
  6702 	* src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
  6704 2007-01-06  Werner Lemberg  <wl@gnu.org>
  6706 	* src/cff/cffload.c (cff_index_init): Remove unused variable.
  6707 	(cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
  6709 2007-01-04  David Turner  <david@freetype.org>
  6711 	* src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
  6712 	correctly.  This fixes Savannah bug #17876.
  6715 	Do not allocate interpreter-specific tables in memory if we are not
  6716 	going to load glyphs with the bytecode interpreter anyway.
  6718 	* src/truetype/ttgload.c (tt_loader_init): Load execution context
  6719 	only if glyph is hinted.
  6720 	Updated.
  6721 	* src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
  6722 	and `cvs_ready'.
  6723 	Add `tt_size_ready_bytecode' declaration.
  6724 	* src/truetype/ttobjs.c (tt_size_done_bytecode,
  6725 	tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
  6726 	(tt_size_init): Move most code into `tt_size_init_bytecode'.
  6727 	(tt_size_done): Move most code into `tt_size_done_bytecode'.
  6728 	(tt_size_reset): Move some code to `tt_size_ready_bytecode'.
  6731 	Don't extract the metrics table from the SFNT font file.  Instead,
  6732 	reparse it on each glyph load.  The runtime difference is not
  6733 	noticeable, and it can save a lot of heap memory when memory-mapped
  6734 	files are not used.
  6736 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add members
  6737 	`horz_metrics_offset' and `vert_metrics_ofset'.
  6738 	* src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
  6739 	Updated.
  6742 	* src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
  6745 	Do not load the CFF index offsets into memory, since this wastes a
  6746 	*lot* of heap memory with large Asian CFF fonts.  There is no
  6747 	significant performance loss.
  6749 	* src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
  6750 	* src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
  6751 	`data_size'.
  6752 	(CFF_CharsetRec): Add field `num_glyphs'.
  6754 	* src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
  6755 	cff_charset_cid_to_gindex): New functions.
  6756 	(cff_new_index): Renamed to...
  6757 	(cff_index_init): This.  Update all callers.
  6758 	Updated -- some code has been moved to `cff_index_load_offsets'.
  6759 	(cff_done_index): Renamed to...
  6760 	(cff_index_done): This.  Update all callers.
  6761 	(cff_index_get_pointers, cff_index_access_element): Updated to use
  6762 	stream offsets.
  6763 	(cff_charset_compute_cids): Set `num_glyphs' field.
  6764 	(cff_encoding_load): Updated.
  6766 	* src/cff/cffgload.c (cff_slot_load): Updated.
  6768 2007-01-04  David Turner  <david@freetype.org>
  6770 	* docs/INSTALL.UNIX: Simplify some parts, add reference to
  6771 	autogen.sh and pointer to README.CVS.
  6773 	* README.CVS: Add common problem description and solution
  6774 	when running autogen.sh.
  6776 	* docs/INSTALL: Add reference to MacOS X.
  6778 	* docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
  6780 	* docs/TODO: Remove obsolete items.
  6782 	* src/raster/ftraster.c: (TRaster_Instance): Replace it with...
  6783 	(TWorker): This.
  6784 	Remove `count_table' and `memory'.
  6785 	Make `grays' a pointer.
  6786 	(TRaster): New structure.
  6787 	(count_table): New static array.
  6788 	(RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
  6789 	Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
  6790 	ft_black_set_mode, ft_black_render): Updated.
  6791 	(ft_black_init): Don't initialize `count_table'.
  6792 	(ft_black_reset): Use the render pool.  This saves about 6KB of
  6793 	heap space for each FT_Library instance.
  6795 	* src/smooth/ftgrays.c (TRaster): Replaced with...
  6796 	(TWorker): This.
  6797 	Remove `memory'.
  6798 	(TRaster): New structure.
  6800 	(RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
  6801 	gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
  6802 	gray_render_span, gray_raster_render): Updated.
  6803 	(gray_raster_reset): Use the render pool.  This saves about 6KB of
  6804 	heap space for each FT_Library instance.
  6806 	* src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
  6807 	src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
  6808 	src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
  6809 	FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
  6810 	the optimization is no longer experimental.
  6812 	* src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
  6813 	Remove a typo that results in no hinting and a memory leak with some
  6814 	large Asian CFF fonts.
  6816 	* src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
  6817 	which happens when FT_Done_Library is called with still opened
  6818 	CFF_Faces in it.  We need to close all faces before destroying the
  6819 	modules, or else some bad things (memory leaks) may happen.
  6821 2007-01-02  Werner Lemberg  <wl@gnu.org>
  6823 	* src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
  6824 	Remove compiler warning.
  6826 2007-01-02  David Turner  <david@freetype.org>
  6828 	* src/sfnt/sfobjs.c: Add documentation comment.
  6830 2006-12-31  Masatake YAMATO  <jet@gyve.org>
  6832 	* src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
  6833 	function.
  6834 	Check uniqueness of the gid pairs.
  6835 	(gxv_kern_subtable_fmt0_validate): Move some code to
  6836 	`gxv_kern_subtable_fmt0_pairs_validate'.
  6838 2006-12-22  David Turner  <david@freetype.org>
  6840 	* src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
  6841 	warnings.
  6843 	* builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
  6844 	to avoid deprecation warnings with Visual C++ 8.
  6846 2006-12-16  Anders Kaseorg  <anders@kaseorg.com>
  6848 	* src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
  6849 	[FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
  6851 2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6853 	* include/freetype/internal/services/svotval.h: Add `volatile' to
  6854 	sync with the modification by Jens Claudius on 2006-08-22; cf.
  6855 	  http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
  6857 2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6859 	* src/base/ftmac.c: Specialized for Mac OS X only.
  6860 	* builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
  6861 	* builds/unix/configure.raw: Ditto.  When explicit switches for
  6862 	FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
  6863 	builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
  6865 2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6867 	* builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
  6868 	* builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
  6869 	instead of src/base/ftmac.c
  6870 	* builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
  6871 	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
  6872 	* builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
  6873 	that cannot be built at present.
  6875 2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  6877 	* src/base/ftobjs.c: Improvement of resource fork handler for
  6878 	POSIX, cf.
  6879 	  http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
  6880 	(Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
  6881 	format or .dfont, to simulate the face index number counted by ftmac.c.
  6882 	(IsMacResource): Return the number of scalable faces correctly.
  6884 2006-12-10  Werner Lemberg  <wl@gnu.org>
  6886 	* builds/toplevel.mk (version): Protect against `distclean' target.
  6888 2006-12-09  Werner Lemberg  <wl@gnu.org>
  6890 	* builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
  6891 	or `type'.
  6893 	* builds/freetype.mk (version): Extracted from freetype.h, using
  6894 	GNU make's built-in string functions.
  6895 	(refdoc): Use $(version) instead of static version number.
  6897 2006-12-08  Werner Lemberg  <wl@gnu.org>
  6899 	* builds/toplevel.mk (dist): Extract version number from freetype.h.
  6901 2006-12-08  Vladimir Volovich  <vvv@vsu.ru>
  6903 	* src/tools/apinames.c (State): Remove final comma in structure --
  6904 	xlc v5 under AIX 4.3 doesn't like this.
  6906 2006-12-07  David Turner  <david@freetype.org>
  6908 	* src/autofit/afloader.c (af_loader_load_g): Small adjustment
  6909 	to the spacing of auto-fitted glyphs.  This only impacts rare
  6910 	cases (e.g., Arial Bold at rather small character sizes).
  6912 2006-12-03  Werner Lemberg  <wl@gnu.org>
  6914 	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
  6916 2006-12-01  Werner Lemberg  <wl@gnu.org>
  6918 	* src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
  6919 	encoded in UTF-16BE.  Patch from Rajeev Pahuja <rpahuja@esri.com>.
  6920 	(tt_name_entry_ascii_from_ucs4): Removed.
  6923 	* include/freetype/ftxf86.h: Fix and extend comment so that it
  6924 	appears in the documentation.
  6926 	* include/freetype/ftchapters.h: Add `font_format' section.
  6929 	* src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
  6930 	to TOC in index page.
  6932 2006-11-28  David Turner  <david@freetype.org>
  6934 	* src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
  6935 	trying to render into a zero-width/height bitmap, not an error code.
  6937 	* src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
  6939 	* src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
  6940 	ones instead.
  6942 	* src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
  6943 	variable.
  6945 2006-11-26  Pierre Hanser  <hanser@club-internet.fr>
  6947 	* src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
  6949 2006-11-25  David Turner  <david@freetype.org>
  6951 	* src/autofit/afhints.c	(af_glyph_hints_dump_points,
  6952 	af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
  6953 	Add stubs to link the `ftgrid' test program when debugging is
  6954 	disabled in the auto-hinter.
  6956 2006-11-23  David Turner  <david@freetype.org>
  6958 	* src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
  6959 	src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
  6961 	* src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
  6962 	Emit more sensible information.
  6964 	* src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
  6966 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
  6967 	rounding of blue values.
  6968 	(af_latin_hints_compute_segments): Hint segment heights.
  6969 	(af_latin_hints_link_segments): Reduce `len_score' value.
  6970 	(af_latin_hints_compute_edges): Increase `segment_length_threshold'
  6971 	value and use `height' member for comparisons.
  6972 	(af_latin_hint_edges): Extend logging message.
  6973 	Improve handling of remaining edges.
  6975 2006-11-22  Werner Lemberg  <wl@gnu.org>
  6977 	Fix Savannah bug #15553.
  6979 	* src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
  6980 	program after a change from mono to grayscaling (and vice versa).
  6981 	Use correct constant for comparison to get `exec->grayscale'.
  6983 2006-11-18  Werner Lemberg  <wl@gnu.org>
  6985 	Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
  6986 	test for a valid glyph index must be deferred to the font drivers.
  6987 	This patch fixes Savannah bug #18301.
  6989 	* src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
  6990 	* src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
  6991 	(cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
  6992 	src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
  6993 	(pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
  6994 	src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
  6995 	(FNT_Load_Glyph): Check validity of `glyph_index'.
  6997 2006-11-13  David Turner  <david@freetype.org>
  6999 	* src/truetype/ttinterp.c (FIX_BYTECODE): Undefine.  The interpreter
  7000 	`enhancements' are still too buggy for general use.
  7002 	* src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
  7003 	FT_FORCE_LEGACY_LCD_FILTER at compile time.  Define these macros
  7004 	when building the library to change the default LCD filter to be
  7005 	used.  This is only useful for experimentation.
  7007 	* include/freetype/ftlcdfil.h: Update documentation.
  7009 2006-11-10  David Turner  <david@freetype.org>
  7011 	* src/smooth/ftsmooth.c: API change for the LCD
  7012 	filter.  The FT_LcdFilter value is an enumeration describing which
  7013 	filter to apply, with new values FT_LCD_FILTER_LIGHT and
  7014 	FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
  7015 	algorithm which produces strong color fringes for everything
  7016 	except very-well hinted text).
  7018 	* include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
  7019 	second parameter to an enum type.
  7021 	* src/base/ftlcdfil.c (USE_LEGACY): Define.
  7022 	(_ft_lcd_filter): Rename to...
  7023 	(_ft_lcd_filter_fir): This.
  7024 	Update parameters.
  7025 	(_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
  7026 	(FT_Library_Set_LcdFilter): Update parameters.
  7027 	Handle new filter modes.
  7029 	* include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
  7030 	(FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
  7031 	(FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
  7032 	callback and update other fields.
  7034 	* src/smooth/ftsmooth.c (ft_smooth_render_generic)
  7035 	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
  7036 	Other minor improvements.
  7038 	* src/autofit/aflatin.c: Various tiny improvements that drastically
  7039 	improve the handling of serif fonts and of LCD/LCD_V hinting modes.
  7040 	(af_latin_hints_compute_edges): Fix typo.
  7041 	(af_latin_compute_stem_width): Take better care of diagonal stems.
  7043 2006-11-09  David Turner  <david@freetype.org>
  7045 	* src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
  7046 	typo which created a variable-used-before-initialized bug.
  7048 2006-11-07  Zhe Su  <james.su@gmail.com>
  7050 	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
  7051 	also.
  7053 2006-11-03  Werner Lemberg  <wl@gnu.org>
  7055 	* src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
  7057 2006-11-02  David Turner  <david@freetype.org>
  7059 	Add a few tweaks to better handle serif fonts.
  7060 	Add more debugging messages.
  7062 	* src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
  7063 	segments that are less than 1.5 pixels high.  This gets rid of
  7064 	*many* corner cases with serifs.
  7065 	(af_latin_align_linked_edge): Add logging message.
  7066 	(af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
  7067 	Add logging messages.
  7068 	Handle AF_EDGE_FLAG flag specially.
  7070 	* src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
  7071 	_af_debug_disable_blue_hints, and _af_debug_hints variables.
  7073 	* src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
  7074 	Update external declarations.
  7075 	(af_corner_orientation, af_corner_is_flat): Replaced by...
  7077 	* include/freetype/internal/ftcalc.h (ft_corner_orientation,
  7078 	ft_corner_is_flat): These declarations.
  7080 	* src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
  7081 	Comment out.  Replaced by...
  7083 	* src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
  7084 	These functions.  Update all callers.
  7085 	(FT_Add64) [!FT_LONG64]: Simplify.
  7087 	* src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
  7088 	(af_direction_compute): Add a missing FT_ABS call.  This bug caused
  7089 	production of garbage by missing lots of segments.
  7091 	* src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
  7093 	* src/autofit/afloader.c (af_loader_init, af_loader_done)
  7094 	[AF_DEBUG]: Set _af_debug_hints.
  7097 	* src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
  7098 	(psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
  7099 	and ft_corner_orientation.
  7102 	* src/gzip/inftrees.c (huft_build): Remove compiler warning.
  7104 2006-10-24  Werner Lemberg  <wl@gnu.org>
  7106 	* src/cff/cffload.c (cff_encoding_load): Remove unused variable.
  7108 	* src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
  7109 	as argument.
  7111 2006-10-23  Zhe Su  <zsu@novell.com>
  7113 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
  7114 	better deal with broken Asian fonts with strange glyphs, having
  7115 	self-intersections and other peculiarities.  The used algorithm is
  7116 	based on the nonzero winding rule.
  7118 2006-10-23  David Turner  <david@freetype.org>
  7120 	Speed up the CFF font loader.  With some large CFF fonts,
  7121 	FT_Open_Face is now more than three times faster.
  7123 	* src/cff/cffload.c (cff_get_offset): Removed.
  7124 	(cff_new_index): Inline functionality of `cff_get_offset'.
  7125 	(cff_charset_compute_cids, cff_charset_free_cids): New functions.
  7126 	(cff_charset_done): Call `cff_charset_free_cids'.
  7127 	(cff_charset_load): Call `cff_charset_compute_cids'.
  7128 	(cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
  7130 	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
  7131 	with FT_NEXT_XXX.
  7134 	Speed up the Postscript hinter, with more than 100% speed increase
  7135 	on my machine.
  7137 	* src/pshinter/pshalgo.c (psh_corner_is_flat,
  7138 	psh_corner_orientation): New functions.
  7139 	(psh_glyph_compute_inflections): Merge loops for efficiency.
  7140 	Use `psh_corner_orientation'.
  7141 	(psh_glyph_init): Use `psh_corner_is_flat'.
  7142 	(psh_hint_table_find_strong_point): Renamed to...
  7143 	(psh_hint_table_find_strong_points): This.
  7144 	Rewrite, adding argument to handle all points at once.
  7145 	Update all callers.
  7146 	(PSH_MAX_STRONG_INTERNAL): New macro.
  7147 	(psh_glyph_interpolate_normal_points): Rewrite for efficiency.
  7149 2006-10-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7151 	* src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
  7152 	`error' with FT_Err_Ok.
  7154 2006-10-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7156 	* docs/INSTALL.CROSS: New document file for cross-building.
  7158 	* builds/unix/configure.raw: Preliminary cross-building support.
  7159 	Find native C compiler and pass it by CC_BUILD, and
  7160 	find suffix for native executable and pass it by EXEEXT_BUILD.
  7161 	Also suffix for target executable is passed by EXEEXT.
  7163 	* builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
  7164 	build `apinames' which runs on building system.  They are set by
  7165 	CC_BUILD and EXEEXT_BUILD.
  7167 	* builds/exports.mk (APINAMES_EXE): Change the extension for
  7168 	apinames from the suffix for target (E) to that for building host
  7169 	(E_BUILD).
  7171 2006-10-12  Werner Lemberg  <wl@gnu.org>
  7173 	* docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
  7174 	* docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This.  Update all documents
  7175 	which reference those files.
  7177 2006-10-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7179 	* builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable.  It is
  7180 	embedded in freetype2.pc and freetype-config.  Use it to record
  7181 	Carbon dependency of MacOSX.
  7183 	* builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
  7185 	* builds/unix/freetype-config.in: Ditto.
  7187 2006-10-11  Werner Lemberg  <wl@gnu.org>
  7189 	* devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
  7190 	development.
  7192 2006-10-03  Jens Claudius  <jens.claudius@yahoo.com>
  7194 	* include/freetype/config/ftstdlib.h: Cast away volatileness from
  7195 	argument to ft_setjmp.
  7197 	* include/freetype/internal/ftvalid.h: Add comment that
  7198 	ft_validator_run must not be used.
  7200 2006-10-01  Werner Lemberg  <wl@gnu.org>
  7202 	* src/base/ftbase.c: Undo change from 2006-09-30.
  7204 	* src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
  7206 2006-09-30  David Turner  <david@freetype.org>
  7208 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
  7209 	s/unpatented_hinting/ignore_unpatented_hinter/.
  7210 	Update all callers.
  7212 	* src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
  7213 	auto-hinting shall be used or not.
  7215 	* src/truetype/ttobjs.c (tt_face_init): Ditto.
  7217 2006-09-30  Werner Lemberg  <wl@gnu.org>
  7219 	* src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
  7220 	in use).
  7222 	* src/base/ftbase.c: Include `ftlcdfil.c'.
  7224 2006-09-29  Werner Lemberg  <wl@gnu.org>
  7226 	* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
  7227 	overlapping segments.  Bug reported by Stefan Koch.
  7229 2006-09-28  David Turner  <david@freetype.org>
  7231 	Fix a bug in the automatic unpatented hinting support which prevents
  7232 	normal bytecode hinting to work properly.
  7234 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
  7235 	s/force_autohint/unpatented_hinting/.  Update all callers.
  7237 	* src/base/ftobjs.c (FT_Load_Glyph): Updated code.
  7239 	* src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
  7241 2006-09-27  David Turner  <david@freetype.org>
  7243 	* include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
  7246 	Add a new API to support color filtering of subpixel glyph bitmaps.
  7247 	In a default build, the function `FT_Library_SetLcdFilter' returns
  7248 	`FT_Err_Unimplemented_Feature'; you need to #define
  7249 	FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
  7250 	real implementation.
  7252 	* include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
  7254 	* include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
  7255 	typedef.
  7256 	(FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
  7257 	`lcd_filter_weights' and `lcd_filter'.
  7259 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
  7260 	`hmul' and `vmul'.
  7262 	Handle subpixel rendering.
  7263 	Simplify function.
  7264 	(ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
  7265 	(ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
  7267 	* include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
  7268 	pointing to <freetype/ftlcdfil.h>.
  7270 	* src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
  7271 	vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
  7273 	* modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
  7275 2006-09-26  David Bustin
  7277 	* src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
  7278 	correctly.  Reported as Savannah bug #17843.
  7280 2006-09-26  David Turner  <david@freetype.org>
  7282 	* src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
  7283 	AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
  7284 	horizontal and vertical hinting for the purpose of debugging the
  7285 	auto-fitter.
  7287 	* src/autofit/afmodule.c (_af_debug_disable_horz_hints,
  7288 	_af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
  7290 	* src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
  7292 	* include/freetype/config/ftoption.h, devel/ftoption.h
  7293 	(FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
  7294 	we want to compile LCD-optimized rendering code (à la ClearType) or
  7295 	not.  The macro *must* be disabled in default builds of the library
  7296 	for patent reasons.
  7298 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
  7299 	LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
  7300 	isn't defined at compile time.  This only changes the content of the
  7301 	rendered glyph to match the one of normal gray-level rendering,
  7302 	hence clients should not need to be modified.
  7304 	* docs/CHANGES: Updated.
  7306 2006-09-18  Garrick Meeker  <garrick@digitalanarchy.com>
  7308 	* src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
  7309 	LWFN fails and both are available.
  7311 2006-09-11  David Turner  <david@freetype.org>
  7313 	* src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
  7314 	report their English names through an Apple Roman
  7315 	(platform,encoding) pair, with language_id != English.
  7317 	If the font uses another name entry with language_id == English, it
  7318 	will be selected correctly, though.
  7320 	* src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
  7321 	selection for `mingli.ttf'.
  7323 2006-09-05  Werner Lemberg  <wl@gnu.org>
  7325 	* src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
  7326 	values which have the upper two bytes set to 0xFF instead of 0x00
  7327 	(as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
  7328 	`HAN NOM B.ttf').
  7330 	* src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
  7332 2006-09-05  David Turner  <david@freetype.org>
  7334 	Minor source cleanups and optimizations.
  7336 	* src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
  7337 	(TRaster): Remove `count_ex' and `count_ey'.
  7338 	(gray_find_cell): Remove 2nd and 3rd argument.
  7339 	(gray_alloc_cell): Merged with `gray_find_cell'.
  7340 	(gray_record_cell): Simplify.
  7341 	(gray_set_cell): Rewrite.
  7342 	(gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
  7343 	(gray_render_span): Don't use FT_MEM_SET for small values.
  7344 	(gray_dump_cells) [DEBUG_GRAYS]: New function.
  7345 	(gray_sweep): Avoid buffer overwrites when to drawing the end of a
  7346 	bitmap scanline.
  7347 	(gray_convert_glyph): Fix speed-up.
  7349 2006-09-04  David Turner  <david@freetype.org>
  7351 	* src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
  7352 	64bit processors.
  7354 2006-09-03  Werner Lemberg  <wl@gnu.org>
  7356 	* devel/ftoption.h: Synchronize with
  7357 	include/freetype/config/ftoption.h.
  7359 	* src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
  7360 	variable declaration.
  7361 	(gray_convert_glyph): Fix compiler warnings.
  7363 2006-09-01  David Turner  <david@freetype.org>
  7365 	* src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
  7366 	to recognize a few fonts that require the automatic unpatented
  7367 	loader.
  7369 	* src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
  7370 	rasterizer.  The speed improvement is between 15% and 25%, depending
  7371 	on the font data.
  7373 	(GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
  7374 	(TCell): Redefine.
  7375 	(TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
  7376 	(gray_init_cells): Updated.
  7377 	(gray_find_cell, gray_alloc_cell): New functions.
  7378 	(gray_record_cell): Rewritten to use `gray_find_cell' and
  7379 	`gray_alloc_cell'.
  7380 	(PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
  7381 	QSORT_THRESHOLD):
  7382 	Removed.
  7383 	(gray_shell_sort, gray_quick_sort, gray_check_sort,
  7384 	gray_dump_cells): Removed.
  7385 	(gray_sweep): Rewritten.
  7386 	(gray_convert_glyph): Rewrite code which used one of the sorting
  7387 	functions.
  7388 	(gray_raster_render): Updated.
  7390 2006-08-29  Dr. Werner Fink  <werner@suse.de>
  7392 	* configure: Make it possible to handle configure options which
  7393 	have strings containing spaces.
  7395 2006-08-27  David Turner  <david@freetype.org>
  7397 	* include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
  7398 	New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
  7399 	or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
  7401 	* include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
  7402 	src/truetype/truetype.c, src/truetype/ttdriver.c,
  7403 	src/truetype/ttgload.c, src/truetype/ttgload.h,
  7404 	src/truetype/ttinterp.c, src/truetype/ttobjs.c,
  7405 	src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
  7406 	s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
  7408 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
  7409 	member `force_autohint'.
  7411 	* src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
  7413 	* src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
  7414 	against a list of font names which need the bytecode interpreter.
  7416 2006-08-27  Jens Claudius  <jens.claudius@yahoo.com>
  7418 	Fix miscellaneous compiler warnings.
  7420 	* include/freetype/internal/ftobjs.h: Close comment with `*/' to
  7421 	avoid `/* in comment' compiler warning.
  7423 	* src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
  7424 	`(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
  7425 	64-bit platforms void* is larger than FT_UInt32.
  7427 	* src/base/ftobjs.c (t_validator_error): Cast away
  7428 	volatileness of argument to ft_longjmp.  Spotted by Werner
  7429 	`Putzfrau' Lemberg.
  7431 	* src/bdf/bdflib.c (bdf_load_font): Initialize local
  7432 	variable `lineno'.
  7434 	* src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
  7435 	`error' as volatile.
  7437 2006-08-27  Werner Lemberg  <wl@gnu.org>
  7439 	* builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
  7440 	Reported by Jens.
  7442 2006-08-22  Jens Claudius  <jens.claudius@yahoo.com>
  7444 	Fix for previous commit, which caused many compiler warnings/errors
  7445 	about addresses of volatile objects passed as function arguments as
  7446 	non-volatile pointers.
  7448 	* include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
  7449 	pointer to a volatile object.
  7451 	* src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
  7452 	`table' a pointer to a volatile object.
  7454 	* src/otvalid/otvmod.c (otv_load_table): Make function argument
  7455 	`table' a pointer to a volatile object.
  7457 2006-08-18  Jens Claudius  <jens.claudius@yahoo.com>
  7459 	* src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
  7460 	as volatile since it must keep its value across a call to ft_setjmp.
  7461 	(gxv_validate): Same for local variables `memory' and `valid'.
  7462 	(classic_kern_validate): Same for local variables `memory',
  7463 	`ckern', and `valid'.
  7465 	* src/otvalid/otvmod.c (otv_validate): Same for function parameter
  7466 	`face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
  7467 	and 'valid'.
  7469 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
  7470 	`cmap'.
  7472 2006-08-16  David Turner  <david@freetype.org>
  7474 	* src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
  7475 	warnings.
  7477 	* src/base/ftobjs.c (ft_validator_run): Disable function; it is
  7478 	buggy by design.  Always return -1.
  7481 	Improvements to native TrueType hinting.  This is a first try,
  7482 	controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
  7484 	* include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
  7485 	`extra_points2'.
  7487 	* include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
  7488 	`orus'.
  7490 	* src/base/ftgloadr.c (FT_GlyphLoader_Reset,
  7491 	FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
  7492 	FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
  7493 	handle `extra_points2'.
  7495 	* src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
  7496 	Remove compiler warning.
  7497 	(cur_to_arg): Remove macro.
  7498 	(TT_Hint_Glyph): Updated.
  7499 	(TT_Process_Simple_Glyph): Handle `orus'.
  7501 	* src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
  7502 	(Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
  7503 	(LOC_Ins_IUP): Renamed to...
  7504 	(IUP_WorkerRec): This.
  7505 	Add `orus' member.
  7506 	(Shift): Renamed to...
  7507 	(_iup_worker_shift): This.
  7508 	Updated.
  7509 	(Interp): Renamed to...
  7510 	(_iup_worker_interpolate): This.
  7511 	Updated to handle `orus'.
  7512 	(Ins_IUP): Updated.
  7514 	* src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
  7515 	Handle `orus'.
  7517 2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7519 	* modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
  7520 	build ftvalid in ft2demos.  This has been inadvertedly changed
  7521 	2006-08-13.
  7523 2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7525 	`ft_validator_run' wrapping `setjmp' can cause a crash, as found by
  7526 	Jens:
  7527 	http://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
  7529 	* src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
  7530 	It reverts the change introduced on 2005-08-20.
  7532 	* src/gxvalid/gxvmod.c: Ditto.
  7534 2006-08-13  Jens Claudius  <jens.claudius@yahoo.com>
  7536 	* finclude/freetype/internal/psaux.h: (T1_TokenType): Add
  7537 	T1_TOKEN_TYPE_KEY.
  7538 	(T1_FieldRec): Add `dict'.
  7539 	(T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
  7540 	(T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
  7541 	keyword is expected as an additional argument.
  7543 	* src/cid/cidload.c: (cid_field_records): Adjust invocations of
  7544 	T1_FIELD_XXX.
  7546 	* src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
  7548 	* src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
  7549 	(ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
  7550 	not T1_TOKEN_TYPE_ANY.
  7551 	(ps_parser_load_field): Make sure a token that should be a string or
  7552 	name is really a string or name.
  7553 	Avoid memory leak if a keyword has been already encountered and its
  7554 	value is overwritten.
  7555 	* src/type1/t1load.c: (t1_keywords): Adjust invocations of
  7556 	T1_FIELD_XXX.
  7557 	(parse_dict): Ignore keywords that occur in the wrong dictionary
  7558 	(e.g., in `Private' instead of `FontDict').
  7560 	* src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
  7562 	* src/type42/t42parse.c: (t42_keywords): Adjust invocations of
  7563 	T1_FIELD_XXX.
  7565 2006-07-18  Jens Claudius  <jens.claudius@yahoo.com>
  7567 	Move creation of field `buildchar' of T1_DecoderRec out of
  7568 	`t1_decoder_init' and let the caller of `t1_decoder_init' take care
  7569 	of it.
  7571 	Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
  7572 	and `T1_Compute_Max_Advance'.
  7574 	* include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
  7575 	`face', add `len_buildchar'.
  7577 	* include/freetype/internal/t1types.h (T1_FaceRec): Add field
  7578 	`buildchar'.
  7580 	* src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
  7581 	for T1_Decoder.
  7582 	(cid_slot_load_glyph): Do not ignore failure when initializing the
  7583 	T1_Decoder.
  7585 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
  7586 	(t1_decoder_init): Remove initialization of fields `buildchar' and
  7587 	`len_buildchar'.
  7588 	(t1_decoder_done): Remove deallocation of field `buildchar'.
  7590 	* freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
  7591 	T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
  7592 	T1_Decoder.
  7593 	(T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
  7594 	`len_buildchar'; make sure to call finisher for T1_Decoder even in
  7595 	case of error.
  7597 	* src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
  7598 	of T1_FaceRec.
  7600 	* src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
  7601 	T1_FaceRec.
  7603 2006-07-14  Jens Claudius  <jens.claudius@yahoo.com>
  7605 	* include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
  7606 	IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
  7607 	and IS_PS_BASE85 (from src/psaux/psconv.h).
  7608 	(T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
  7609 	T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
  7610 	(T1_DecoderRec): New fields `buildchar' and `face'.
  7611 	(IS_PS_TOKEN): New macro.
  7613 	* include/freetype/internal/t1types.h (T1_FaceRec): New fields
  7614 	`ndv_idx', `cdv_idx', and `len_buildchar'.
  7616 	* include/freetype/t1tables.h (PS_BlendRec): New fields
  7617 	`default_design_vector' and `num_default_design_vector'.
  7619 	* src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
  7620 	IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
  7621 	IS_PS_BASE85 to include/freetype/internal/psaux.h.
  7623 	* src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
  7624 	argument to be NULL if we want only to count the number of tokens.
  7625 	(ps_tocoordarray): Allow `coords' argument to be NULL if we just
  7626 	want to skip the array.
  7627 	(ps_tofixedarray): Allow `values' argument to be NULL if we just
  7628 	want to skip the array.
  7630 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
  7631 	for (partially commented out) othersubrs 19-25, 27, and 28.
  7632 	(t1_decoder_init): Initialize new fields `face' and `buildchar'.
  7633 	(t1_decoder_done): Release new field `buildchar'.
  7635 	* src/type1/t1load.c (parse_buildchar, parse_private): New
  7636 	functions.
  7637 	(t1_keywords): Register them.
  7638 	(t1_allocate_blend): Updated.
  7639 	(t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
  7640 	T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
  7641 	(parse_dict): Remove `keyword_flags' argument.
  7642 	Use new macro IS_PS_TOKEN.
  7643 	Changed function so that later PostScript definitions override
  7644 	earlier ones.
  7645 	(t1_init_loader): Initialize new field `keywords_encountered'.
  7646 	(T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
  7647 	`len_buildchar'.
  7648 	Remove `keywords_flags'.
  7650 	* src/type1/t1load.h (T1_LoaderRect): New field
  7651 	`keywords_encountered'.
  7652 	(T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
  7654 	* src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
  7655 	entries for parsing /NDV, /CDV, and /DesignVector.
  7657 2006-07-07  Werner Lemberg  <wl@gnu.org>
  7659 	Add many checks to protect against malformed PCF files.
  7661 	* src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
  7662 	(PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
  7664 	* src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
  7665 	data and check that tables don't overlap (using a simple
  7666 	bubblesort).
  7667 	(PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
  7668 	New macros which give the size of data structures in the data
  7669 	stream.
  7670 	(pcf_get_properties): Use rough estimates to get array size limits.
  7671 	Assign `face->nprops' and `face->properties' earlier so that a call
  7672 	to PCF_Face_Done can do the clean-up in case of error.
  7673 	Protect against invalid string offsets.
  7674 	(pcf_get_metrics): Clean up code.
  7675 	Adjust tracing message levels.
  7676 	Use rough estimate to get array size limit.
  7677 	(pcf_get_bitmaps): Clean up code.
  7678 	Adjust tracing message levels.
  7679 	Use rough estimates to get offset limits.
  7680 	(pcf_get_encodings): Adjust tracing message level.
  7681 	(pcf_get_accel): Clean up code.
  7683 2006-06-26  Werner Lemberg  <wl@gnu.org>
  7685 	* src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
  7686 	don't have a POINT_SIZE property.  This fixes Savannah bug #16914.
  7688 2006-06-26  Jens Claudius  <jens.claudius@yahoo.com>
  7690 	* src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
  7691 	(t1_decoder_parse_charstrings): Operator with
  7692 	opcode 15 pops its two arguments.
  7693 	Handle the case where the pops of an othersubr may be part of a
  7694 	subroutine.
  7695 	Handle unknown othersubrs gracefully: count their operands and let
  7696 	the following pop operators push the operands as the results onto
  7697 	the Type1 stack.
  7698 	Improve handling of setcurrentpoint opcode.
  7700 2006-06-25  Jens Claudius  <jens.claudius@yahoo.com>
  7702 	The Type 1 parser now skips over top-level procedures as required
  7703 	for a `Simplified Parser'.  This makes the parser more robust as it
  7704 	doesn't poke around in PostScript code.  Additionally, it makes the
  7705 	FontDirectory hackery in src/type1/t1load.c unnecessary.
  7707 	* src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
  7708 	(skip_literal_string): Add FT_Error as return value.
  7709 	Handle escapes better.
  7710 	(skip_string): Add FT_Error as return value.
  7711 	Don't set `parser->error' but return error code directly.
  7712 	(skip_procedure): New function.
  7713 	(ps_parser_skip_PS_token): Handle procedures.
  7714 	Update code.
  7715 	(ps_parser_to_token): Update code.
  7716 	(ps_parser_load_field_table): Handle bbox entries also.
  7718 	* src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
  7719 	Add commented-out code for synthetic fonts.
  7721 2006-06-24  Eugeniy Meshcheryakov  <eugen@univ.kiev.ua>
  7723 	Fix two hinting bugs as reported in
  7724 	http://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
  7726 	* include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
  7727 	`first_point' member.
  7729 	* src/truetype/ttgload.c (tt_prepare_zone): Initialize
  7730 	`first_point'.
  7731 	(TT_Process_Composite_Glyph): Always untouch points.
  7733 	* src/truetype/ttinterp.c (Ins_SHC): Fix computation of
  7734 	`first_point' and `last_point' in case of composite glyphs.
  7735 	(Ins_IUP): Fix computation of `end_point'.
  7737 2006-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7739 	Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
  7740 	Mac.  The original patch was written by David Sachitano and Lawrence
  7741 	Coopet, and modified by Sean McBride for MPW compatibility.  Only
  7742 	required data are converted; unused data are left in big endian.
  7744 	* src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
  7745 	Mac OS X platforms.
  7746 	(OS_INLINE): Undefine before definition.
  7747 	(count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
  7748 	FontAssociation table in FOND resource.
  7749 	(count_faces_scalable): Insert EndianS16_BtoN to parse the header
  7750 	and fontSize at each entry of FontAssociation table in FOND
  7751 	resource.
  7752 	(parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
  7753 	ffStylOff of FamilyRecord header of FOND resource, the header,
  7754 	fontSize, fontID at each entry of FontAssociation table, and
  7755 	StyleMapping table.
  7756 	(count_faces): Call `HUnlock' after all FOND utilization.
  7758 2006-06-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7760 	Public API of TrueTypeGX, OpenType, and classic kern table validator
  7761 	should return `FT_Err_Unimplemented_Feature' if validation service
  7762 	is unavailable (disabled in `modules.cfg').  It is originally
  7763 	suggested by David Turner, cf.
  7764 	http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
  7766 	* src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
  7767 	FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
  7768 	unavailable.
  7769 	(FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
  7770 	classic kern table validation service is unavailable.
  7772 	* src/base/ftotval.c (FT_OpenType_Validate): Return
  7773 	FT_Err_Unimplemented_Feature if OpenType validation service is
  7774 	unavailable.
  7776 2006-06-08  Werner Lemberg  <wl@gnu.org>
  7778 	* src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
  7779 	errors.
  7781 2006-06-07  David Turner  <david@freetype.org>
  7783 	* src/type1/t1afm.c (KERN_INDEX): Make it more robust.
  7784 	(T1_Read_Metrics): Fix memory leak which happened when the metrics
  7785 	file doesn't have kerning pairs.  This fixes Savannah bug #16768.
  7787 2006-06-06  David Turner  <david@freetype.org>
  7789 	Fix memory leak described in Savannah bug #16759.
  7791 	We change `ps_unicodes_init' so that it also takes a
  7792 	`free_glyph_name' callback to release the glyph names returned by
  7793 	`get_glyph_name'
  7795 	* include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
  7796 	Renamed to ...
  7797 	(PS_GetGlyphNameFunc): This.
  7798 	(PS_FreeGlyphNameFunc): New typedef.
  7799 	(PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
  7801 	* src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
  7802 	argument.
  7803 	(cff_sid_free_glyph_name): New function.
  7804 	(cff_cmap_unicode_init): Updated.
  7806 	* src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
  7808 	* src/psnames/psmodule.c (ps_unicodes_init): Add variable for
  7809 	PS_FreeGlyphNameFunc and use it.
  7812 2006-06-04  David Turner  <david@freetype.org>
  7814 	* src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
  7815 	`item_size == 0' as well -- though this sounds weird, it can
  7816 	theoretically happen.  This fixes Savannah bug #16669.
  7818 	* src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
  7819 	of `face->num_glyphs' which missed the last glyph, due to
  7820 	the offset-by-1 computation, since the PFR format doesn't
  7821 	guarantee that glyph index 0 corresponds to the `missing
  7822 	glyph.  This fixes Savannah bug #16668.
  7824 2006-05-25  Werner Lemberg  <wl@gnu.org>
  7826 	* builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
  7827 	`-no-undefined'.  Reported by Christian Biesinger.
  7829 2006-05-19  Brian Weed  <bw@imaginengine.com>
  7831 	* builds/win32/visualc/freetype.dsp: Release libraries no longer
  7832 	have debug information, and debug libraries use `C7 compatible'
  7833 	debug info.
  7835 2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7837 	Apply patch by Derek Clegg to fix two memory leaks in the MacOS
  7838 	resource fork handler.  This fixes Savannah bug #16631.
  7840 	* src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
  7841 	`FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
  7843 	* src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
  7844 	Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
  7846 2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7848 	* build/unix/configure.raw: Add a fallback to disable Carbon
  7849 	dependency, if configured with no options on Mac OS X.
  7851 2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  7853 	* src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
  7854 	its content cannot be parsed as supported font.  This fixes
  7855 	the second part of Savannah bug #16590.
  7857 2006-05-18  Werner Lemberg  <wl@gnu.org>
  7859 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph)
  7860 	[FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
  7862 2006-05-17  David Turner  <david@freetype.org>
  7864 	This is a major patch used to drastically improve the performance of
  7865 	loading glyphs.  This both speeds up loading the glyph vectors
  7866 	themselves and the auto-fitter module.
  7868 	We now use inline assembler code with GCC to implement `FT_MulFix',
  7869 	which is probably the most important function related to the
  7870 	engine's performance.
  7872 	The resulting speed-up is about 25%.
  7875 	* include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
  7876 	`cursor' and `limit'.
  7878 	* src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
  7879 	New functions.
  7880 	(AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
  7881 	[TEST]: Remove.
  7883 	* src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
  7884 	code.
  7886 	* src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
  7887 	`FT_ZERO'
  7888 	(af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
  7889 	(af_glyph_hints_reload: Rewrite recognition of weak points.
  7891 	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
  7892 	constant values out of the loops.
  7894 	* src/autofit/aftypes.h: Updated.
  7896 	* src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
  7898 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
  7899 	product to get orientation.
  7901 	* src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
  7902 	(FT_Stream_OpenGzip): Use it to handle small files directly in
  7903 	memory.
  7905 	* src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
  7906 	Improve performance.
  7908 	* src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
  7909 	`limit'.
  7911 	(TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
  7912 	TT_Load_Composite_Glyph): Updated.  Add threshold to protect against
  7913 	exceedingly large values of number of contours.  Speed up by
  7914 	reducing the number of loops.
  7916 	* src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
  7919 	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
  7920 	used to detect rogue clients from 4 to 16.  This is to prevent some
  7921 	segmentation faults with fonts like `KozMinProVI-Regular.otf' which
  7922 	comes from the Japanese Adobe Reader Asian Font pack.
  7924 2007-05-17  Werner Lemberg  <wl@gnu.org>
  7926 	* src/cff/cffload.c (cff_font_done): Deallocate subfont array.  This
  7927 	fixes the first part of Savannah bug #16590.
  7929 2006-05-16  Werner Lemberg  <wl@gnu.org>
  7931 	* docs/PROBLEMS: Updated icl issues.
  7933 ----------------------------------------------------------------------------
  7935 Copyright 2006, 2007, 2008, 2009, 2010 by
  7936 David Turner, Robert Wilhelm, and Werner Lemberg.
  7938 This file is part of the FreeType project, and may only be used, modified,
  7939 and distributed under the terms of the FreeType project license,
  7940 LICENSE.TXT.  By continuing to use, modify, or distribute this file you
  7941 indicate that you have read the license and understand and accept it
  7942 fully.
  7945 Local Variables:
  7946 version-control: never
  7947 coding: utf-8
  7948 End:

mercurial