"Fossies" - the Fresh Open Source Software Archive

Member "firefox-69.0.1/modules/freetype2/ChangeLog.23" (17 Sep 2019, 272330 Bytes) of package /linux/www/firefox-69.0.1.source.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "ChangeLog.23": 68.0.2_vs_69.0.

    1 2010-02-13  Werner Lemberg  <wl@gnu.org>
    2 
    3 	* Version 2.3.12 released.
    4 	==========================
    5 
    6 
    7 	Tag sources with `VER-2-3-12'.
    8 
    9 	* docs/CHANGES: Updated.
   10 
   11 	* docs/VERSION.DLL: Update documentation and bump version number to
   12 	2.3.12.
   13 
   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/.
   26 
   27 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
   28 
   29 	* builds/unix/configure.raw (version_info): Set to 10:0:4.
   30 
   31 2010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   32 
   33 	Improve autotool version checking to work with beta releases.
   34 
   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.
   38 
   39 2010-02-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   40 
   41 	Fix overallocating bug in FT_Outline_New_Internal().
   42 
   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 	https://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html
   47 
   48 2010-02-10  Ken Sharp  <ken.sharp@artifex.com>
   49 
   50 	Really fix Savannah bug #28678 (part 2).
   51 
   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.
   55 
   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.
   60 
   61 2010-02-10  Ken Sharp  <ken.sharp@artifex.com>
   62 
   63 	Really fix Savannah bug #28678 (part 1).
   64 
   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).
   73 
   74 	* include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add
   75 	`advance_v' field to hold the vertical component of the advance
   76 	value.
   77 
   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.
   82 
   83 2010-02-08  Werner Lemberg  <wl@gnu.org>
   84 
   85 	* devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define.
   86 
   87 2010-02-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   88 
   89 	Prevent NULL pointer dereference passed to FT_Module_Requester.
   90 
   91 	* src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'.
   92 	* src/psnames/psmodule.c (psnames_get_interface): Ditto.
   93 
   94 	* src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'.
   95 	* src/truetype/ttdriver.c (tt_get_interface): Ditto.
   96 
   97 2010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
   98 
   99 	Fix memory leaks in previous patch.
  100 
  101 	* src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings
  102 	allocated for face->root.family_name and style_name.
  103 
  104 2010-01-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  105 
  106 	New parameters for FT_Open_Face() to ignore preferred family names.
  107 
  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 	https://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html
  112 
  113 	* include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY,
  114 	FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define.
  115 
  116 	* src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and
  117 	ignore preferred family and subfamily names if requested.
  118 
  119 2010-01-27  Ken Sharp  <ken.sharp@artifex.com>
  120 
  121 	Fix Savannah bug #28678.
  122 
  123 	* src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
  124 	(cid_load_glyph): Handle vertical metrics correctly.
  125 
  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.
  129 
  130 2010-01-14  Werner Lemberg  <wl@gnu.org>
  131 
  132 	Make FT_Set_Transform work if no renderer is available.
  133 
  134 	* src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation
  135 	if no renderer is compiled into the library.
  136 
  137 2010-01-14  Werner Lemberg  <wl@gnu.org>
  138 
  139 	Fix compilation warning.
  140 
  141 	* src/base/ftbase.h: s/LOCAL_DEF/LOCAL/.
  142 	* src/base/ftobjs.c: Include ftbase.h conditionally.
  143 
  144 2010-01-11  Kwang Yul Seo  <skyul@company100.net>
  145 
  146 	Provide inline assembly code for RVCT compiler.
  147 	This is Savannah patch #7059.
  148 
  149 	* include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER,
  150 	FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define.
  151 
  152 2010-01-08  Ken Sharp  <ken.sharp@artifex.com>
  153 
  154 	Fix Savannah bug #28521.
  155 
  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.
  161 
  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).
  167 
  168 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
  169 	<op_setcurrentpoint>: Handle `flex_state' correctly.
  170 
  171 2010-01-05  Werner Lemberg  <wl@gnu.org>
  172 
  173 	Apply reports from clang static analyzer.
  174 
  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.
  178 
  179 	* src/base/ftpatent.c (_tt_check_patents_in_table): Initialize
  180 	`offset_i' and `length_i'.
  181 
  182 2010-01-05  Ralph Giles  <giles@ghostscript.com>
  183 
  184 	Enable the incremental font interface by default.
  185 
  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.
  191 
  192 	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
  193 	Uncomment.
  194 
  195 2010-01-05  Werner Lemberg  <wl@gnu.org>
  196 
  197 	Fix Savannah bug #28395.
  198 
  199 	* src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c
  200 	(T1_Load_Glyph): Don't check `num_glyphs' if incremental interface
  201 	is used.
  202 
  203 2010-01-05  Ken Sharp  <ken.sharp@artifex.com>
  204 
  205 	Make Type 1 `seac' operator work with incremental interface.
  206 	This fixes Savannah bug #28480.
  207 
  208 	* src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names'
  209 	if incremental interface is used.
  210 
  211 2010-01-04  Ken Sharp  <ken.sharp@artifex.com>
  212 
  213 	Make incremental interface work with TrueType fonts.
  214 	This fixes Savannah bug #28478.
  215 
  216 	* src/truetype/ttgload.c (load_truetype_glyph): Don't check
  217 	`glyf_offset' if incremental interface is used.
  218 
  219 2009-12-31  Lars Abrahamsson  <wonko@opera.com>
  220 
  221 	Make compilation with FT_CONFIG_OPTION_PIC work again.
  222 
  223 	* src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]:
  224 	Declare `library' for FT_BITMAP_GLYPH_CLASS_GET.
  225 
  226 	* src/base/ftinit.c (ft_destroy_default_module_classes,
  227 	ft_create_default_module_classes): Use proper casts (needed for C++
  228 	compilation).
  229 
  230 	* src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP.
  231 
  232 2009-12-22  Marc Kleine-Budde  <mkl@pengutronix.de>
  233 
  234 	Make freetype-config aware of $SYSROOT.
  235 	This is Savannah patch #7040.
  236 
  237 	* builds/unix/freetype-config.in: Decorate with ${SYSROOT} where
  238 	appropriate.
  239 
  240 2009-12-20  Werner Lemberg  <wl@gnu.org>
  241 
  242 	Fix compiler warning.
  243 	Reported by Sean.
  244 
  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.
  248 
  249 2009-12-18  Werner Lemberg  <wl@gnu.org>
  250 
  251 	Fix Savannah bug #28320.
  252 
  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).
  257 
  258 	* src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
  259 	unterminated floating point numbers.
  260 
  261 2009-12-16  Werner Lemberg  <wl@gnu.org>
  262 
  263 	Really fix compiler warnings.
  264 	Reported by Sean.
  265 
  266 	* src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS,
  267 	GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros.
  268 
  269 2009-12-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  270 
  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.
  275 
  276 	* builds/unix/configure.raw: Replace `-isysroot' option parser by
  277 	more generic argument parser.
  278 
  279 2009-12-15  Werner Lemberg  <wl@gnu.org>
  280 
  281 	Fix compiler warnings.
  282 	Reported by Sean.
  283 
  284 	* src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data
  285 	type.
  286 
  287 2009-12-14  Ken Sharp  <ken.sharp@artifex.com>
  288 
  289 	Ignore invalid `setcurrentpoint' operations in Type 1 fonts.
  290 	This fixes Savannah bug #28226.
  291 
  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.
  296 
  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.
  301 
  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.
  306 
  307 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
  308 	<op_setcurrentpoint>: Comment out code.
  309 
  310 2009-12-14  Bram Tassyns  <bramt@enfocus.be>
  311 
  312 	Fix parsing of /CIDFontVersion.
  313 	This fixes Savannah bug #28287.
  314 
  315 	* src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in
  316 	t1tables.h) is of type FT_Fixed.
  317 
  318 2009-12-14  Werner Lemberg  <wl@gnu.org>
  319 
  320 	Trace glyph index in CID module.
  321 	Suggested in Savannah patch #7023.
  322 
  323 	* src/cid/cidgload.c (cid_load_glyph): Add tracing message.
  324 
  325 2009-12-03  Werner Lemberg  <wl@gnu.org>
  326 
  327 	Fix compiler warnings.
  328 
  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.
  332 
  333 2009-11-25  John Tytgat  <John.Tytgat@esko.com>
  334 
  335 	Better handling of start of `eexec' section.
  336 	This fixes Savannah bug #28090.
  337 
  338 	* src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace
  339 	characters before start of `eexec' section.
  340 
  341 2009-11-20  Werner Lemberg  <wl@gnu.org>
  342 
  343 	Fix Savannah bug #27742.
  344 
  345 	* src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by
  346 	zero, using a threshold for `theta'.
  347 
  348 2009-11-20  Werner Lemberg  <wl@gnu.org>
  349 
  350 	Fix Savannah bug #28036.
  351 
  352 	* src/type1/t1afm.c (t1_get_index): Fix comparison.
  353 
  354 2009-11-16  Werner Lemberg  <wl@gnu.org>
  355 
  356 	Fix compiler warnings.
  357 	Reported by Kevin Blenkinsopp <arqon@promode.org>.
  358 
  359 	* src/sfnt/ttload.c (check_table_dir): Use proper data type.
  360 
  361 2009-11-15  Werner Lemberg  <wl@gnu.org>
  362 
  363 	Really fix FreeDesktop bug #21197.
  364 	This also fixes Savannah bug #28021.
  365 
  366 	* src/autofit/aflatin.c (af_latin_metrics_check_digits),
  367 	src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop.
  368 
  369 2009-11-15  Werner Lemberg  <wl@gnu.org>
  370 
  371 	Add tracing messages for advance values.
  372 
  373 	* src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c
  374 	(TT_Get_HMetrics, TT_Get_VMetrics): Do it.
  375 
  376 2009-11-08  Werner Lemberg  <wl@gnu.org>
  377 
  378 	Fix compiler warning.
  379 	Reported by Jeremy Manson <jeremy.manson@gmail.com>.
  380 
  381 	* src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'.
  382 
  383 2009-11-04  Werner Lemberg  <wl@gnu.org>
  384 
  385 	Remove compiler warning.
  386 	Reported by Sean McBride <sean@rogue-research.com>.
  387 
  388 	* src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to
  389 	`int', as specified in the printf(3) man page.
  390 
  391 2009-11-04  Werner Lemberg  <wl@gnu.org>
  392 
  393 	Fix Savannah bug #27921.
  394 
  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.
  399 
  400 2009-11-03  Bram Tassyns  <bramt@enfocus.be>
  401 
  402 	Add basic support for Type1 charstrings in CFF.
  403 	This fixes Savannah bug #27922.
  404 
  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.
  411 
  412 2009-11-03  Werner Lemberg  <wl@gnu.org>
  413 
  414 	Return correct `linearHoriAdvance' value for embedded TT bitmaps too.
  415 	Reported by Jeremy Manson <jeremy.manson@gmail.com>.
  416 
  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.
  425 
  426 2009-11-03  Werner Lemberg  <wl@gnu.org>
  427 
  428 	Improve code readability.
  429 
  430 	* src/ttgload.c (load_truetype_glyph): Move metrics calculation
  431 	to...
  432 	(tt_get_metrics): This new function.
  433 
  434 2009-10-26  Bram Tassyns  <bramt@enfocus.be>
  435 
  436 	Fix Savannah bug #27811.
  437 
  438 	* src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix
  439 	signed/unsigned mismatch.
  440 
  441 2009-10-19  Ning Dong  <flintning@163.com>
  442 
  443 	Fix handling of `get' and `put' CFF instructions.
  444 
  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'.
  450 
  451 2009-10-18  Werner Lemberg  <wl@gnu.org>
  452 
  453 	Fix handling of `dup' CFF instruction.
  454 	Problem and solution reported by Ning Dong <flintning@163.com>.
  455 
  456 	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>:
  457 	Increase `args' by 2, not 1.
  458 
  459 2009-10-10  Werner Lemberg  <wl@gnu.org>
  460 
  461 	* Version 2.3.11 released.
  462 	==========================
  463 
  464 
  465 	Tag sources with `VER-2-3-11'.
  466 
  467 	* docs/VERSION.DLL: Update documentation and bump version number to
  468 	2.3.11.
  469 
  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/.
  476 
  477 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
  478 
  479 	* builds/unix/configure.raw (version_info): Set to 9:22:3.
  480 
  481 2009-10-10  Werner Lemberg  <wl@gnu.org>
  482 
  483 	* docs/CHANGES, docs/release: Updated.
  484 
  485 2009-10-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  486 
  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
  490 
  491 2009-10-06  Werner Lemberg  <wl@gnu.org>
  492 
  493 	* Version 2.3.10 released.
  494 	==========================
  495 
  496 
  497 	Tag sources with `VER-2-3-10'.
  498 
  499 	* builds/toplevel.mk (major, minor, patch): Fix regexp to allow more
  500 	than a single digit.
  501 	(dist): We now use git.
  502 
  503 	* docs/VERSION.DLL: Update documentation and bump version number to
  504 	2.3.10.
  505 
  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/.
  512 
  513 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
  514 
  515 	* builds/unix/configure.raw (version_info): Set to 9:21:3.
  516 
  517 2009-10-06  Werner Lemberg  <wl@gnu.org>
  518 
  519 	Fix `make multi'.
  520 
  521 	* src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define.
  522 
  523 	* src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H.
  524 
  525 2009-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  526 
  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.
  533 
  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.
  537 
  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.
  542 
  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.
  550 
  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.
  559 
  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.
  563 
  564 2009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  565 
  566 	[cache, psaux, type1] Fix for multi build.
  567 	In multi build, some cpp functions are left as unresolved symbols.
  568 
  569 	* src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1().
  570 
  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.
  575 
  576 2009-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  577 
  578 	[autofit] Fix for multi build.
  579 
  580 	* src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use
  581 	FT_DECLARE_MODULE() macro in multi build.
  582 
  583 	* src/autofit/aflatin.c: Include <ft2build.h> to handle
  584 	FT_ADVANCES_H correctly in multi build.
  585 
  586 2009-09-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  587 
  588 	[cache] Check the face filled by FTC_Manager_LookupFace().
  589 
  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.
  593 
  594 2009-09-23  Werner Lemberg  <wl@gnu.org>
  595 
  596 	* docs/CHANGES: Updated.
  597 
  598 2009-09-12  Werner Lemberg  <wl@gnu.org>
  599 
  600 	[raster] Fix 5-levels grayscale output.
  601 	This was broken since version 2.3.0.
  602 
  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.
  606 
  607 	(ft_black_render): Initialize `worker->gray_lines' (problem found by
  608 	valgrind).
  609 
  610 	(FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Don't #undef, just
  611 	comment out.
  612 
  613 2009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  614 
  615 	Improve configure.raw for cross build.
  616 
  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.
  621 
  622 2009-09-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  623 
  624 	[BDF] Modify hash API to take size_t value instead of void *.
  625 
  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 	https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
  635 
  636 	* src/bdf/bdf.h: The type of hashnode->data is changed from
  637 	void* to size_t.
  638 
  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.
  652 
  653 2009-09-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  654 
  655 	[Win64] Improve the computation of random seed from stack address.
  656 
  657 	On LLP64 platform, the conversion from pointer to FT_Fixed need
  658 	to drop higher 32-bit.  Explicit casts are required. Reported by
  659 	NightStrike from MinGW-w64 project.  See
  660 	https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html
  661 
  662 	* src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly.
  663 
  664 	* src/psaux/t1decode.c: Ditto.
  665 
  666 
  667 2009-09-03  Werner Lemberg  <wl@gnu.org>
  668 
  669 	[raster] Improvements for stand-alone mode.
  670 
  671 	* src/raster/rules.mk: Don't handle ftmisc.h.  It is needed for
  672 	stand-alone mode only.
  673 
  674 	* src/raster/ftmisc.h (FT_MemoryRec, FT_Alloc_Func, FT_Free_Func,
  675 	FT_Realloc_Func): Copy declarations from ftsystem.h.
  676 
  677 2009-09-02  Bram Tassyns  <bramt@enfocus.be>
  678 
  679 	Improve vertical metrics calculation (Savannah bug #27364).
  680 
  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:
  685 
  686 	  FreeType: Use the middle of the bounding box as the X coordinate
  687 	            of the vertical origin.
  688 
  689 	  Adobe PDF spec: Use the middle of the horizontal advance vector as
  690 	                  the X coordinate of the vertical origin.
  691 
  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.
  701 
  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'.
  707 
  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.
  712 
  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.
  717 
  718 	* src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is
  719 	now calculated as described by the Adobe PDF Spec.
  720 
  721 2009-09-01  John Tytgat  <John.Tytgat@esko.com>
  722 
  723 	Fix custom cmap for empty Type 1 font (Savannah bug #27294).
  724 
  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.
  732 
  733 2009-08-25  Werner Lemberg  <wl@gnu.org>
  734 
  735 	Fix rendering of horizontally compressed CFFs.
  736 	Bug reported by Ivan Nincic <inincic@pdftron.com>.
  737 
  738 	* src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of
  739 	`font_matrix' also.
  740 
  741 	* docs/CHANGES: Updated.
  742 
  743 2009-08-03  suyu0925@gmail.com
  744 
  745 	Don't call `ft_fseek' every time when executing `ft_fread'.
  746 
  747 	* src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c
  748 	(ft_ansi_stream_io): Implement it.
  749 
  750 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  751 
  752 	sfnt: Cast a charcode to 32-bit in cmap format 14 parser.
  753 
  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.
  759 
  760 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  761 
  762 	sfnt: Cast a charcode to 32-bit in cmap format 12 parser.
  763 
  764 	* src/sfnt/ttcmap.c (tt_cmap12_char_next):
  765 	Insert explicit cast from FT_UFast to FT_UInt32
  766 	for return value.
  767 
  768 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  769 
  770 	psaux: Fix a few casts to FT_Int32 value.
  771 
  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.
  775 
  776 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  777 
  778 	sfnt: Fix a data type mismatching with its source.
  779 
  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.
  784 
  785 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  786 
  787 	sfnt: Extend a few local variables to load 32-bit values.
  788 
  789 	* src/sfnt/ttkern.c (tt_face_load_kern): Extend `count'
  790 	and `kern' to load 32-bit values.
  791 
  792 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  793 
  794 	pfr: Extend `num_aux' to take 32-bit value.
  795 
  796 	* src/pfr/pfrload.c (pfr_phy_font_load): Extend
  797 	`num_aux' to load 32-bit value.
  798 
  799 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  800 
  801 	pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops.
  802 
  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.
  807 
  808 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  809 
  810 	gxvalid: Extend a few local variables to reduce the casts.
  811 
  812 	* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
  813 	Extend `type' and `rest' to take FT_ULong values.
  814 
  815 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  816 
  817 	gxvalid: Extend `settingTable' to take 32-bit offset.
  818 
  819 	* src/gxvalid/gxvfeat.c (gxv_feat_name_validate):
  820 	Extend `settingTable' to take 32-bit offset.
  821 
  822 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  823 
  824 	autofit: Cast FT_Long glyph_count to compare with FT_UInt GID.
  825 
  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.
  830 
  831 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  832 
  833 	smooth: Exclude 16-bit system in invalid pitch/height check.
  834 
  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.
  839 
  840 2009-07-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  841 
  842 	cff: Type large constants > 0x7FFF as long for 16-bit systems.
  843 
  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.
  848 
  849 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  850 
  851 	base: Remove an unused variable.
  852 
  853 	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an
  854 	unused variable `library'.  glyph->library is used.
  855 
  856 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  857 
  858 	cache: Check higher bits in flags for non ILP32 systems.
  859 
  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 	https://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.
  870 
  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.
  877 
  878 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  879 
  880 	sfnt: Ignore invalid GIDs in glyph name lookup.
  881 
  882 	* include/freetype/internal/fttrace.h:
  883 	New trace module for sfdriver.c is added.
  884 
  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.
  888 
  889 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  890 
  891 	pcf: Fix a comparison between FT_Long and FT_ULong.
  892 
  893 	* src/pcf/pcfread.c (pcf_get_bitmaps): Return an error
  894 	if PCF_Face->nmetrics is negative.
  895 
  896 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  897 
  898 	gxvalid: Guarantee `nFeatureFlags' size up to 32-bit.
  899 
  900 	* src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate):
  901 	Extend the 3rd argument `nFeatureFlags' to FT_ULong.
  902 	* src/gxvalid/gxvmort.h: Ditto.
  903 
  904 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  905 
  906 	sfnt: Insert explicit cast for LP64 system.
  907 
  908 	* src/sfnt/ttkern.c (tt_face_load_kern): Insert
  909 	cast from unsigned long to FT_UInt32.
  910 
  911 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  912 
  913 	gxvalid: Guarantee `just' table size upto 32-bit.
  914 
  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.
  918 
  919 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  920 
  921 	gxvalid: Guarantee `trak' table size upto 32-bit.
  922 
  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.
  926 
  927 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  928 
  929 	type1: Fix a data type mismatching with its source.
  930 
  931 	* include/freetype/internal/t1types.h: The type of
  932 	T1_Face->buildchar is matched with T1_Decoder->top.
  933 
  934 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  935 
  936 	pfr: Fix a data type mismatching with its source.
  937 
  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().
  942 
  943 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  944 
  945 	pfr: Fix a data type mismatching with its source.
  946 
  947 	* src/pfr/pfrtypes.h: The type of PFR_PhyFont->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().
  950 
  951 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  952 
  953 	pfr: Fix a data type mismatching with its source.
  954 
  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().
  958 
  959 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  960 
  961 	smooth: Improve the format in debug message.
  962 
  963 	* src/smooth/ftgrays.c (gray_dump_cells): Improve the
  964 	format specifications to dump variables.
  965 
  966 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  967 
  968 	sfnt: Fix a data type mismatching with its source.
  969 
  970 	* src/sfnt/sfobjs.c (sfnt_load_face): The type of
  971 	local `flags' is matched with FT_Face->face_flags.
  972 
  973 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  974 
  975 	psaux: Fix a data type mismatching with its source.
  976 
  977 	* include/freetype/internal/psaux.h: The type of
  978 	T1_DecoderRec.buildchar is matched with
  979 	T1_DecoderRec.top.
  980 
  981 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  982 
  983 	truetype: Extend TrueType GX packed deltas to FT_Offset.
  984 
  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.
  989 
  990 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
  991 
  992 	truetype: Extend mmvar_len to hold size_t values.
  993 
  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.
  998 
  999 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1000 
 1001 	truetype: Check invalid function number in IDEF instruction.
 1002 
 1003 	* src/truetype/ttinterp.c (Ins_IDEF): Check
 1004 	if the operand fits to 8-bit opcode limitation.
 1005 
 1006 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1007 
 1008 	truetype: Check invalid function number in FDEF instruction.
 1009 
 1010 	* src/truetype/ttinterp.c (Ins_FDEF): Check
 1011 	if the operand fits 16-bit function number.
 1012 
 1013 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1014 
 1015 	truetype: Truncate the deltas of composite glyph at 16-bit values.
 1016 
 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.
 1025 
 1026 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1027 
 1028 	truetype: Truncate the instructions upto 16-bit per a glyph.
 1029 
 1030 	* src/truetype/ttgload.c (TT_Hint_Glyph): Truncate
 1031 	the instructions upto 16-bit length per a glyph.
 1032 
 1033 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1034 
 1035 	truetype: Cast the numerical operands to 32-bit for LP64 systems.
 1036 
 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()).
 1041 
 1042 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1043 
 1044 	truetype: Cast the project vector to 32-bit for LP64 system.
 1045 
 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()).
 1049 
 1050 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1051 
 1052 	truetype: Cast the scaling params to 32-bit for LP64 system.
 1053 
 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()).
 1057 
 1058 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1059 
 1060 	sfnt: Cast a character code to FT_UInt32 for LP64 system.
 1061 
 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.
 1070 
 1071 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1072 
 1073 	sfnt: Cast a character code to FT_UInt32 for LP64 system.
 1074 
 1075 	* src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next):
 1076 	Insert the casts from unsigned long constant to
 1077 	FT_UInt32.
 1078 
 1079 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1080 
 1081 	sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF.
 1082 
 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.
 1090 
 1091 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1092 
 1093 	psaux: Handle the string length by FT_Offset variables.
 1094 
 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.
 1104 
 1105 	* src/psaux/afmparse.h (afm_parser_next_key):
 1106 	Ditto.
 1107 
 1108 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1109 
 1110 	pcf: Fix some data types mismatching with their sources.
 1111 
 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.
 1115 
 1116 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1117 
 1118 	pcf: Handle the string length by size_t variables.
 1119 
 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().
 1123 
 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.
 1128 
 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.
 1133 
 1134 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1135 
 1136 	pcf: Fix some data types mismatching with their sources.
 1137 
 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.
 1141 
 1142 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1143 
 1144 	otvalid: Truncate the glyph index to 16-bit.
 1145 
 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().
 1150 
 1151 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1152 
 1153 	cache: Insert explicit casts for LP64 systems.
 1154 
 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.
 1160 
 1161 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1162 
 1163 	cache: Fix some data types mismatching with their sources.
 1164 
 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.
 1169 
 1170 	* src/cache/ftccback.h (ft_inode_weight,
 1171 	ftc_snode_weight): Ditto.
 1172 
 1173 	* src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto.
 1174 
 1175 	* src/cache/ftcimage.c (ftc_inode_weight,
 1176 	FTC_INode_Weight): Ditto.
 1177 
 1178 	* src/cache/ftcsbits.c (ftc_snode_weight,
 1179 	FTC_SNode_Weight): Ditto.
 1180 
 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.
 1185 
 1186 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1187 
 1188 	XXX_cmap_encoding_char_next() return FT_UInt32 values.
 1189 
 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.
 1194 
 1195 	* src/cff/cffmap.c (cff_cmap_encoding_char_next,
 1196 	cff_cmap_unicode_char_next): Ditto.
 1197 
 1198 	* src/pfr/pfrmap.c (pfr_cmap_encoding_char_next):
 1199 	Ditto.
 1200 
 1201 	* src/psaux/t1cmap.c (t1_cmap_std_char_next,
 1202 	t1_cmap_custom_char_next, t1_cmap_unicode_char_next):
 1203 	Ditto.
 1204 
 1205 	* src/psnames/psmodule.c (ps_unicodes_char_next):
 1206 	Ditto.
 1207 
 1208 	* src/winfonts/winfnt.c (fnt_cmap_char_next):
 1209 	Ditto.
 1210 
 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.
 1221 
 1222 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1223 
 1224 	truetype: Extend TT_Face->num_locations for broken TTFs.
 1225 
 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.
 1234 
 1235 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1236 
 1237 	smooth: Fix some data types mismatching with their sources.
 1238 
 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.
 1263 
 1264 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1265 
 1266 	cff: Fix some data types mismatching with their sources.
 1267 
 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().
 1272 
 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().
 1285 
 1286 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1287 
 1288 	autofit: Fix some data types mismatching with their sources.
 1289 
 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.
 1302 
 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.
 1307 
 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'.
 1312 
 1313 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1314 
 1315 	autofit: Count the size of the memory object by ptrdiff_t.
 1316 
 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.
 1320 
 1321 	* src/autofit/aflatin.c (af_latin_hint_edges):
 1322 	Ditto.
 1323 
 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.
 1327 
 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.
 1332 
 1333 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1334 
 1335 	autofit: Fix for unused variable `first'.
 1336 
 1337 	* src/autofit/afhints.c (af_glyph_hints_reload): Insert
 1338 	FT_UNUSED() to hide the unused variable warning.
 1339 
 1340 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1341 
 1342 	Improve bitmap size or pixel variables for 16-bit systems.
 1343 
 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.
 1347 
 1348 	* include/freetype/internal/fttrace.h: Add a tracer
 1349 	to ftsynth.c.
 1350 
 1351 	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Check
 1352 	invalid strength causing integer overflow on 16-bit
 1353 	platform.
 1354 
 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.
 1360 
 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.
 1364 
 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.
 1375 
 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.
 1382 
 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).
 1386 
 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.
 1390 
 1391 	* src/cff/cffparse.c (cff_parse_cid_ros): Warn the
 1392 	supplement if it is truncated or rounded in cff_get_ros().
 1393 
 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.
 1397 
 1398 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1399 
 1400 	psaux: Prevent invalid arguments to afm_parser_read_vals().
 1401 
 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.
 1405 
 1406 	* src/psaux/afmparse.h (afm_parser_read_vals): Ditto.
 1407 
 1408 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1409 
 1410 	base: Prevent some overflows on LP64 systems.
 1411 
 1412 	* src/base/ftadvanc.c (FT_Get_Advances): Cast the
 1413 	unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32
 1414 	for LP64 platforms.
 1415 
 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.
 1421 
 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.
 1429 
 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'.
 1435 
 1436 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1437 
 1438 	cff: Cast the long variables to 32-bit for LP64 systems.
 1439 
 1440 	* src/cff/cffdrivr.c (cff_get_advances): Insert
 1441 	explicit cast to modify a 32-bit flag by unsigned
 1442 	long constant.
 1443 
 1444 	* src/cff/cffobjs.c (cff_face_init): Ditto.
 1445 
 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.
 1449 
 1450 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1451 
 1452 	pcf: Improve PCF_PropertyRec.value names on LP64 platforms.
 1453 
 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.
 1458 
 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.
 1464 
 1465 	* src/pcf/pcfread.c (pcf_get_properties, pcf_load_font):
 1466 	Reflect PCF_PropertyRec.value change.
 1467 
 1468 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1469 
 1470 	pcf: Fix some data types mismatching with their sources.
 1471 
 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.
 1478 
 1479 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1480 
 1481 	bdf: Improve bdf_property_t.value names for LP64 platforms.
 1482 
 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.
 1487 
 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.
 1494 
 1495 	* src/bdf/bdflib.c (_bdf_add_property): Reflect
 1496 	bdf_property_t.value change.
 1497 
 1498 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1499 
 1500 	bdf: Fix some data types mismatching with their sources.
 1501 
 1502 	* src/bdf/bdfdrivr.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.
 1508 
 1509 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1510 
 1511 	autofit: Improve Unicode range definitions.
 1512 
 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.
 1516 
 1517 	* src/autofit/aflatin.c (af_latin_uniranges): Ditto.
 1518 
 1519 	* src/autofit/aflatin2.c (af_latin2_uniranges): Ditto.
 1520 
 1521 	* src/autofit/afindic.c (af_indic_uniranges): Ditto.
 1522 
 1523 	* src/autofit/afcjk.c (af_cjk_uniranges): Declare
 1524 	the ranges by AF_UNIRANGE_REC.
 1525 
 1526 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1527 
 1528 	smooth: Fix a data type mismatching with its source.
 1529 
 1530 	* src/smooth/ftgrays.c (gray_sweep): The type of
 1531 	`area' is matched with the 3rd argument `area'
 1532 	of gray_hline().
 1533 
 1534 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1535 
 1536 	smooth: Fix a data type mismatching with its source.
 1537 
 1538 	* src/smooth/ftgrays.c (gray_render_line): The type
 1539 	of `area' is matched with TWorker.area.
 1540 
 1541 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1542 
 1543 	cache: Disable the legacy compatibility if 16-bit system.
 1544 
 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 convention.
 1549 	(FTC_SBitCache_Lookup): Ditto.
 1550 
 1551 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1552 
 1553 	cache: Check 32-bit glyph index on 16-bit systems.
 1554 
 1555 	* src/cache/ftcbasic.c (ftc_basic_family_get_count):
 1556 	Check overflow caused by the face including large
 1557 	number of glyphs > 64k.
 1558 
 1559 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1560 
 1561 	cache: Fix some data types mismatching with their sources.
 1562 
 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}.
 1567 
 1568 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type
 1569 	of `_idx' is matched with FTC_Cache->{p,mask}.
 1570 
 1571 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1572 
 1573 	cache: Fix some data types mismatching with their sources.
 1574 
 1575 	* src/cache/ftcsbits.c (ftc_snode_load): The types
 1576 	of `xadvance' and `yadvance' are matched with
 1577 	FT_GlyphSlot->advance.{x|y}.
 1578 
 1579 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1580 
 1581 	cache: Cast NULL to a required function type explicitly.
 1582 
 1583 	* src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID):
 1584 	Insert explicit cast from NULL to function type.
 1585 
 1586 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1587 
 1588 	fttypes.h: Cast FT_MAKE_TAG output to FT_Tag explicitly.
 1589 
 1590 	* include/freetype/fttypes.h (FT_MAKE_TAG):
 1591 	Cast the result to FT_Tag.
 1592 
 1593 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1594 
 1595 	psnames: Handle Unicode codepoints by FT_UInt32 variables.
 1596 
 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.
 1601 
 1602 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1603 
 1604 	psaux: Use size_t variable to pass the buffer size.
 1605 
 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.
 1609 
 1610 	* src/psaux/psconv.h (PS_Conv_StringDecode,
 1611 	PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
 1612 
 1613 	* src/psaux/psconv.c (PS_Conv_StringDecode,
 1614 	PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto.
 1615 
 1616 	* src/psaux/psobjs.h (ps_parser_to_bytes): Ditto.
 1617 
 1618 	* src/psaux/psobjs.c (ps_parser_to_bytes): Ditto.
 1619 
 1620 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1621 
 1622 	type1: Use size_t variable to pass the string length.
 1623 
 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.
 1628 
 1629 	* t1afm.c (t1_get_index): Ditto.
 1630 
 1631 	* test_afm.c (dummy_get_index): Ditto.
 1632 
 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.
 1636 
 1637 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1638 
 1639 	cid: Fix some data types mismatching with their sources.
 1640 
 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.
 1644 
 1645 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1646 
 1647 	cff: Fix for unused variable `rest'.
 1648 
 1649 	* src/cff/cffparse.c (cff_parse_real): Insert
 1650 	FT_UNUSED() to hide the unused variable warning.
 1651 
 1652 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1653 
 1654 	cff: Fix some data types mismatching with their sources.
 1655 
 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.
 1659 
 1660 	* src/cff/cffobjs.c (cff_size_select): Ditto.
 1661 	(cff_size_request): Ditto.
 1662 
 1663 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1664 
 1665 	bdf: Fix some data types mismatching with their sources.
 1666 
 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.
 1673 
 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.
 1684 
 1685 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1686 
 1687 	sfnt: Count the size of the memory object by ptrdiff_t.
 1688 
 1689 	* src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of
 1690 	`property_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.
 1693 
 1694 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1695 
 1696 	lzw: Count the size of the memory object by ptrdiff_t.
 1697 
 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.
 1702 
 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.
 1707 
 1708 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1709 
 1710 	otvalid: Count the table size on memory by ptrdiff_t.
 1711 
 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.
 1716 
 1717 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1718 
 1719 	otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset.
 1720 
 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.
 1724 
 1725 	* src/otvalid/otvgsub.c (otv_ExtensionSubst_validate):
 1726 	Ditto.
 1727 
 1728 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1729 
 1730 	ftobjs.c: Prevent an overflow in glyph index handling.
 1731 
 1732 	* src/base/ftobjs.c (FT_Face_GetCharsOfVariant):
 1733 	Improve the cast in comparison to avoid the truncation.
 1734 
 1735 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1736 
 1737 	Improve the variable types in raccess_make_file_name().
 1738 
 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.
 1744 
 1745 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1746 
 1747 	ftpatent.c: Fix for unused variable `error'.
 1748 
 1749 	* src/base/ftpatent.c (_tt_check_patents_in_range):
 1750 	Fix warning for unused variable `error'.
 1751 
 1752 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1753 
 1754 	type1: Check invalid string longer than PostScript limit.
 1755 
 1756 	* src/type1/t1afm.c (t1_get_index): Check invalid string
 1757 	which exceeds the limit of PostScript string/name objects.
 1758 
 1759 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1760 
 1761 	gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default.
 1762 
 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 	https://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html
 1769 
 1770 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1771 
 1772 	gzip: Distinguish PureC from TurboC on MSDOS.
 1773 
 1774 	* src/gzip/zutil.c (zcalloc, zcfree): Enable only for
 1775 	MSDOS platform.
 1776 
 1777 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1778 
 1779 	gxvalid: Insert PureC pragma to allow unevaluated variables.
 1780 
 1781 	* builds/atari/ATARI.H: Insert PureC pragma not to
 1782 	warn against set-but-unevaluated variable in gxvalid
 1783 	module.
 1784 
 1785 2009-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1786 
 1787 	gxvalid: Pass the union by the pointer instead of the value.
 1788 
 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.
 1796 
 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.
 1802 
 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.
 1809 
 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.
 1814 
 1815 	* src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
 1816 	gxv_bsln_LookupFmt4_transit): Ditto.
 1817 
 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.
 1822 
 1823 	* src/gxvalid/gxvkern.c
 1824 	(gxv_kern_subtable_fmt1_entry_validate): Ditto.
 1825 
 1826 	* src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate,
 1827 	gxv_lcar_LookupFmt4_transit): Ditto.
 1828 
 1829 	* src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate,
 1830 	gxv_opbd_LookupFmt4_transit): Ditto.
 1831 
 1832 	* src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate,
 1833 	gxv_prop_LookupFmt4_transit): Ditto.
 1834 
 1835 	* src/gxvalid/gxvmort4.c
 1836 	(gxv_mort_subtable_type4_lookupval_validate): Ditto.
 1837 
 1838 	* src/gxvalid/gxvmort0.c
 1839 	(gxv_mort_subtable_type0_entry_validate): Update
 1840 	from GXV_StateTable_GlyphOffsetDesc
 1841 	to GXV_StateTable_GlyphOffsetCPtr.
 1842 
 1843 	* src/gxvalid/gxvmort1.c
 1844 	(gxv_mort_subtable_type1_entry_validate): Ditto.
 1845 
 1846 	* src/gxvalid/gxvmort2.c
 1847 	(gxv_mort_subtable_type2_entry_validate): Ditto.
 1848 
 1849 	* src/gxvalid/gxvmort5.c
 1850 	(gxv_mort_subtable_type5_entry_validate): Ditto.
 1851 
 1852 	* src/gxvalid/gxvmorx2.c
 1853 	(gxv_morx_subtable_type2_entry_validate): Ditto.
 1854 
 1855 	* src/gxvalid/gxvmorx5.c
 1856 	(gxv_morx_subtable_type5_entry_validate): Ditto.
 1857 
 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.
 1863 
 1864 	* src/gxvalid/gxvmorx0.c
 1865 	(gxv_morx_subtable_type0_entry_validate): Update
 1866 	from GXV_XStateTable_GlyphOffsetDesc
 1867 	to GXV_XStateTable_GlyphOffsetCPtr.
 1868 
 1869 2009-07-29  Fabrice Bellet  <fabrice@bellet.info>
 1870 
 1871 	Fix Redhat bugzilla #513582 and Savannah bug #26849.
 1872 
 1873 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix
 1874 	aliasing bug.
 1875 
 1876 2009-07-19  Werner Lemberg  <wl@gnu.org>
 1877 
 1878 	Document recent library changes.
 1879 
 1880 	* docs/CHANGES: Do it.
 1881 
 1882 2009-07-17  Werner Lemberg  <wl@gnu.org>
 1883 
 1884 	Fix Savannah bug #23786.
 1885 
 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.
 1891 
 1892 2009-07-15  Werner Lemberg  <wl@gnu.org>
 1893 
 1894 	* docs/release: Updated.
 1895 
 1896 2009-07-15  Werner Lemberg  <wl@gnu.org>
 1897 
 1898 	README.CVS -> README.git
 1899 
 1900 	* README.CVS: Renamed to...
 1901 	* README.git: This.
 1902 	Updated.
 1903 
 1904 2009-07-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1905 
 1906 	Borland C++ compiler patch proposed by Mirco Babin.
 1907 	https://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html.
 1908 
 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.
 1918 
 1919 2009-07-14  Werner Lemberg  <wl@gnu.org>
 1920 
 1921 	Fix Savannah bug #27026.
 1922 
 1923 	* builds/win32/vc2005/freetype.sln: Use correct version number.
 1924 
 1925 2009-07-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1926 
 1927 	Add a script to check the undefined and unused trace macros.
 1928 
 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 	https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html.
 1933 	* docs/DEBUG: Mention on chktrcmp.py.
 1934 	* docs/release: Ditto.
 1935 
 1936 2009-07-09  Werner Lemberg  <wl@gnu.org>
 1937 
 1938 	[ftraster] Make it compile again with -D_STANDALONE_.
 1939 
 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.
 1945 
 1946 2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1947 
 1948 	smooth: Check glyph size by width/height, instead of pitch/height.
 1949 	Suggested by der Mouse <mouse@Rodents-Montreal.ORG>.
 1950 
 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.
 1957 
 1958 2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1959 
 1960 	Register 2 missing trace components, t1afm and ttbdf.
 1961 
 1962 	* include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm )
 1963 	and FT_TRACE_DEF( ttbdf ).  See
 1964 	https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html
 1965 
 1966 2009-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1967 
 1968 	Register a trace component for ftgloadr.c.
 1969 
 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.
 1973 
 1974 2009-07-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 1975 
 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 	https://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html
 1979 	https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html
 1980 
 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}.
 1987 
 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.
 1992 
 1993 2009-07-05  Bram Tassyns  <bramt@enfocus.be>
 1994 
 1995 	Improve compatibility to Acroread.
 1996 	This fixes Savannah bug #26944.
 1997 
 1998 	* src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to
 1999 	single CID mappings, make the lowest value win.
 2000 
 2001 2009-06-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 2002 
 2003 	ftpatent: Fix a bug by wrong usage of service->table_info().
 2004 	https://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html
 2005 
 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().
 2015 
 2016 2009-06-28  Werner Lemberg  <wl@gnu.org>
 2017 
 2018 	[psaux, cff] Protect against nested `seac' calls.
 2019 
 2020 	* include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h
 2021 	(CFF_Decoder): Add `seac' boolean variable.
 2022 
 2023 	* src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c
 2024 	(t1operator_seac): Use it.
 2025 
 2026 2009-06-28  Werner Lemberg  <wl@gnu.org>
 2027 
 2028 	Thinko.
 2029 
 2030 	* src/psaux/t1decode.c (t1operator_seac)
 2031 	[FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental
 2032 	interface.
 2033 
 2034 2009-06-28  Werner Lemberg  <wl@gnu.org>
 2035 
 2036 	* devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define.
 2037 
 2038 2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 2039 
 2040 	Add tools to preprocess the source files for AtariST PureC.
 2041 
 2042 	* builds/atari/deflinejoiner.awk: New file to filter C source files
 2043 	for broken C preprocessor of PureC compiler.
 2044 
 2045 	* builds/atari/gen-purec-patch.sh: New file to generate a patch set
 2046 	for PureC, by using deflinejoiner.awk.
 2047 
 2048 2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 2049 
 2050 	Keep existing modules.cfg in the building tree.
 2051 
 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.
 2055 
 2056 2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 2057 
 2058 	Filter --srcdir= option before invoking builds/unix/configure.
 2059 
 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.
 2065 
 2066 2009-06-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 2067 
 2068 	Improve configure.raw for cross-building on exe-suffixed systems.
 2069 
 2070 	* builds/unix/configure.raw: Fix a bug in sed script to extract
 2071 	native suffix for binary executables, patch by Peter Breitenlohner.
 2072 	https://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html
 2073 
 2074 2009-06-26  Werner Lemberg  <wl@gnu.org>
 2075 
 2076 	[truetype] Remove TT_SubGlyphRec.
 2077 
 2078 	* src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused.
 2079 
 2080 2009-06-26  Werner Lemberg  <wl@gnu.org>
 2081 
 2082 	* */*: For warning messages, replace FT_ERROR with FT_TRACE0.
 2083 
 2084 	FT_ERROR is now used only if a function produces a non-zero `error'
 2085 	value.
 2086 
 2087 	Formatting, improving and harmonizing debug strings.
 2088 
 2089 2009-06-25  Werner Lemberg  <wl@gnu.org>
 2090 
 2091 	Provide version information better.
 2092 
 2093 	* src/base/ftinit.c (FT_Init_FreeType): Don't set version here
 2094 	but...
 2095 	* src/base/ftobjs.c (FT_New_Library): Here.
 2096 
 2097 2009-06-22  Werner Lemberg  <wl@gnu.org>
 2098 
 2099 	Use 16.16 format while parsing Type 1 charstrings.
 2100 	This fixes Savannah bug #26867.
 2101 
 2102 	Previously, only integers have been used which can lead to serious
 2103 	rounding errors.
 2104 
 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.
 2113 
 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.
 2118 
 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 unconditionally.
 2126 	Add support for random numbers and update remaining code
 2127 	accordingly; this should work now.
 2128 	(t1operator_seac): Updated.
 2129 	* src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H.
 2130 	(ps_hints_t1stem3, t1_hints_stem): Updated.
 2131 
 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.
 2135 
 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.
 2141 
 2142 2009-06-21  Werner Lemberg  <wl@gnu.org>
 2143 
 2144 	* src/pshinter/pshrec.c: Use PSH_Err_Ok.
 2145 
 2146 2009-06-21  Werner Lemberg  <wl@gnu.org>
 2147 
 2148 	Code beautification.
 2149 
 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.
 2155 
 2156 2009-06-20  Werner Lemberg  <wl@gnu.org>
 2157 
 2158 	Remove unused variables.
 2159 
 2160 	* include/freetype/internal/psaux.h (T1_BuilderRec),
 2161 	src/cff/cffgload.h (CFF_Builder): Remove `last'.
 2162 	Update all users.
 2163 
 2164 2009-06-20  Werner Lemberg  <wl@gnu.org>
 2165 
 2166 	[psaux] Check large integers while parsing charstrings.
 2167 
 2168 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large
 2169 	integers must be followed by a `div' operator.
 2170 
 2171 2009-06-20  Werner Lemberg  <wl@gnu.org>
 2172 
 2173 	[cff] Revert last change.
 2174 
 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...
 2178 
 2179 2009-06-20  Werner Lemberg  <wl@gnu.org>
 2180 
 2181 	* src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix
 2182 	compiler warning.
 2183 
 2184 2009-06-20  Werner Lemberg  <wl@gnu.org>
 2185 
 2186 	* builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6.
 2187 
 2188 2009-06-19  Werner Lemberg  <wl@gnu.org>
 2189 
 2190 	[cff] Fix handling of reserved byte 0xFF.
 2191 
 2192 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte
 2193 	0xFF is encountered.
 2194 
 2195 2009-06-19  Werner Lemberg  <wl@gnu.org>
 2196 
 2197 	Improve debug messages for Type1 charstrings.
 2198 
 2199 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines
 2200 	after instructions.
 2201 	Prettify output.
 2202 
 2203 2009-06-19  Werner Lemberg  <wl@gnu.org>
 2204 
 2205 	More ftgray fixes for FT_STATIC_RASTER.
 2206 	Problems reported by suyu@cooee.cn.
 2207 
 2208 	* src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use
 2209 	RAS_VAR.
 2210 
 2211 2009-06-18  Werner Lemberg  <wl@gnu.org>
 2212 
 2213 	* docs/CHANGES: Updated.
 2214 
 2215 2009-06-18  Werner Lemberg  <wl@gnu.org>
 2216 
 2217 	Fix B/W rasterization of subglyphs with different drop-out modes.
 2218 
 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.
 2226 
 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.
 2232 
 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.
 2238 
 2239 	* include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro.
 2240 
 2241 	* src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in
 2242 	`tags[0]'.
 2243 
 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.
 2252 
 2253 2009-06-16  Werner Lemberg  <wl@gnu.org>
 2254 
 2255 	Improve scan conversion rules 4 and 6.
 2256 
 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.
 2261 
 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.
 2265 
 2266 	  . The endpoint of the original contour forming a profile has a
 2267 	    distance (`overshoot') less than half a pixel to the scanline.
 2268 
 2269 	Note that the two additional conditions fix almost all differences
 2270 	to the Windows rasterizer, but some problematic cases remain.
 2271 
 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.
 2280 
 2281 2009-06-11  Werner Lemberg  <wl@gnu.org>
 2282 
 2283 	Increase precision for B/W rasterizer.
 2284 
 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.
 2289 
 2290 2009-06-08  Michael Zucchi  <notzed@gmail.com>
 2291 
 2292 	Handle FT_STROKER_LINECAP_BUTT.
 2293 	This fixes Savannah bug #26757.
 2294 
 2295 	* src/base/ftstroke.c (ft_stroker_cap): Implement it.
 2296 
 2297 2009-06-07  Harald Fernengel  <harry@kdevelop.org>
 2298 
 2299 	Fix some potential out-of-memory crashes.
 2300 
 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.
 2305 
 2306 2009-06-07  Werner Lemberg  <wl@gnu.org>
 2307 
 2308 	Simplify math.
 2309 	Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>.
 2310 
 2311 	* src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
 2312 	Horizontal_Gray_Sweep_Drop): Do it.
 2313 
 2314 2009-06-04  Werner Lemberg  <wl@gnu.org>
 2315 
 2316 	Preparation for fixing scan conversion rules 4 and 6.
 2317 
 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.
 2322 
 2323 2009-05-29  James Cloos  <cloos@jhcloos.com>
 2324 
 2325 	Enable autohinting for glyphs rotated by multiples of 90°.
 2326 
 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.
 2330 
 2331 2009-05-28  Werner Lemberg  <wl@gnu.org>
 2332 
 2333 	Remove compiler warning.
 2334 	Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
 2335 
 2336 	* src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of
 2337 	`n_edges' into `#if' block.
 2338 
 2339 2009-05-28  Werner Lemberg  <wl@gnu.org>
 2340 
 2341 	Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined.
 2342 	Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>.
 2343 
 2344 	* src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]:
 2345 	Make it work.
 2346 	Simplify #ifdef logic.
 2347 
 2348 2009-05-22  Werner Lemberg  <wl@gnu.org>
 2349 
 2350 	Improve b/w rasterizer.
 2351 	Problem reported by Krzysztof Kotlenga <pocek@users.sf.net>.
 2352 
 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.
 2357 
 2358 2009-05-19  Werner Lemberg  <wl@gnu.org>
 2359 
 2360 	Fix Savannah bug #26600.
 2361 
 2362 	* src/type42/t42parse.c (t42_load_keyword): Handle
 2363 	T1_FIELD_LOCATION_FONT_EXTRA.
 2364 
 2365 2009-04-30  Werner Lemberg  <wl@gnu.org>
 2366 
 2367 	Document recent changes to ftview.
 2368 
 2369 	* docs/CHANGES: Do it.
 2370 
 2371 2009-04-27  Werner Lemberg  <wl@gnu.org>
 2372 
 2373 	autohinter: Don't change digit widths if all widths are the same.
 2374 	This fixes FreeDesktop bug #21197.
 2375 
 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.
 2383 
 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.
 2389 
 2390 	* src/autofit/aflatin2.c: Similar changes as with aflatin.c.
 2391 
 2392 	* src/autofit/afloader.c (af_loader_load_g): Test digit width.
 2393 
 2394 	* docs/CHANGES: Document it.
 2395 
 2396 2009-04-26  Werner Lemberg  <wl@gnu.org>
 2397 
 2398 	Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again.
 2399 	Problems reported by suyu@cooee.cn.
 2400 
 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.
 2406 
 2407 2009-04-21  Karl Berry  <karl@gnu.org>
 2408 
 2409 	Fix AC_CHECK_FT2.
 2410 
 2411 	* builds/unix/freetype2.m4: Only check PATH for freetype-config if
 2412 	we did not already find it from a prefix option.
 2413 
 2414 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2415 
 2416 	Add #error to modules and files that do not support PIC yet.
 2417 
 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
 2433 
 2434 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2435 
 2436 	Position Independent Code (PIC) support in autofit module.
 2437 
 2438 	* include/freetype/internal/autohint.h add macros to init
 2439 	instances of FT_AutoHinter_ServiceRec.
 2440 
 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.
 2450 
 2451 	* src/autofit/aftypes.h add macros to init and declare
 2452 	instances of AF_ScriptClassRec.
 2453 
 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.
 2460 
 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.
 2467 
 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.
 2474 
 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 	dimensional array rather than array of pointers.
 2483 
 2484 
 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 	dimensional array rather than array of pointers.
 2493 
 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 referred using macros defined in afpic.h.
 2497 
 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.
 2503 
 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.
 2506 
 2507 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2508 
 2509 	Position Independent Code (PIC) support in pshinter module.
 2510 
 2511 	* include/freetype/internal/pshints.h add macros to init
 2512 	instances of PSHinter_Interface.
 2513 
 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.
 2523 
 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.
 2529 
 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.
 2532 
 2533 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2534 
 2535 	Position Independent Code (PIC) support in psnames module.
 2536 
 2537 	* include/freetype/internal/services/svpscmap.h add macros to init
 2538 	instances of FT_Service_PsCMapsRec.
 2539 
 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.
 2550 
 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.
 2556 
 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.
 2559 
 2560 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2561 
 2562 	Position Independent Code (PIC) support in raster renderer.
 2563 
 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 verify the renderer class rather than the
 2577 	class pointer.
 2578 
 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.
 2582 
 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.
 2588 
 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.
 2591 
 2592 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2593 
 2594 	Position Independent Code (PIC) support in smooth renderer.
 2595 
 2596 	* src/smooth/ftsmooth.h declare ft_smooth_renderer_class,
 2597 	ft_smooth_lcd_renderer_class and ft_smooth_lcdv_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_lcdv_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).
 2609 
 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.
 2620 
 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.
 2626 
 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.
 2629 
 2630 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2631 
 2632 	Position Independent Code (PIC) support in cff driver.
 2633 
 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.
 2638 
 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.
 2648 
 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
 2663 
 2664 	* src/cff/cffobjs.c Use macros from cffpic.h in order to access the
 2665 	structs allocated in cffcmap.c
 2666 
 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.
 2672 
 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.
 2678 
 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.
 2681 
 2682 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2683 
 2684 	Position Independent Code (PIC) support in sfnt driver.
 2685 
 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.
 2698 
 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.
 2711 
 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'.
 2725 
 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
 2733 
 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.
 2736 
 2737 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2738 
 2739 	Position Independent Code (PIC) support in truetype driver.
 2740 
 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.
 2745 
 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 dimensional array rather than array
 2759 	of pointers.
 2760 
 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.
 2766 
 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.
 2769 
 2770 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2771 
 2772 	Position Independent Code (PIC) support and infrastructure in base.
 2773 
 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 destroy it.
 2788 	* include/freetype/internal/ftserv.h add macros to allocate and
 2789 	destroy arrays of FT_ServiceDescRec.
 2790 	* include/freetype/internal/internal.h define macro to include
 2791 	ftpic.h.
 2792 
 2793 	New Files:
 2794 	* src/base/ftpic.c implement functions to allocate and destroy 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.
 2800 
 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.
 2808 
 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.
 2813 
 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 struct 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
 2822 
 2823 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2824 
 2825 	Preparing changes in cff parser later needed for PIC version.
 2826 
 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'.
 2832 
 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.
 2835 
 2836 2009-04-05  Oran Agra  <oran@monfort.co.il>
 2837 
 2838 	Minor change in ftstroke.c.
 2839 
 2840 	* src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with
 2841 	`library' needed for PIC version.
 2842 	Update all callers.
 2843 
 2844 2009-04-04  Werner Lemberg  <wl@gnu.org>
 2845 
 2846 	ftnames.c -> ftsnames.c
 2847 
 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.
 2851 
 2852 2009-04-04  Werner Lemberg  <wl@gnu.org>
 2853 
 2854 	Add support for cmap type 13.
 2855 
 2856 	* devel/ftoption.h, include/freetype/config/ftoption.h
 2857 	(TT_CONFIG_CMAP_FORMAT_13): New macro.
 2858 
 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.
 2865 
 2866 	* docs/CHANGES: Mention cmap 13 support.
 2867 
 2868 2009-04-01  Werner Lemberg  <wl@gnu.org>
 2869 
 2870 	Ignore empty contours in CFF glyphs.
 2871 
 2872 	Problem reported by Albert Astals Cid <aacid@kde.org>.
 2873 
 2874 	* src/cff/cffgload.c (cff_builder_close_contour): Synchronize with
 2875 	t1_builder_close_contour.
 2876 
 2877 2009-03-21  Werner Lemberg  <wl@gnu.org>
 2878 
 2879 	Another redundant header inclusion.
 2880 
 2881 	* src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041.
 2882 
 2883 2009-03-21  Werner Lemberg  <wl@gnu.org>
 2884 
 2885 	Remove redundant header inclusions.
 2886 
 2887 	This covers many Ghostscript Coverity issues.
 2888 
 2889 	* src/*: Do it.
 2890 
 2891 2009-03-21  Werner Lemberg  <wl@gnu.org>
 2892 
 2893 	Fix Ghostscript Coverity issue #3904.
 2894 
 2895 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
 2896 	invalid values of `runcnt'.
 2897 
 2898 2009-03-20  Werner Lemberg  <wl@gnu.org>
 2899 
 2900 	Fix `make multi' run.
 2901 
 2902 	* src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H.
 2903 
 2904 2009-03-20  Werner Lemberg  <wl@gnu.org>
 2905 
 2906 	Fix Savannah bug #25923.
 2907 
 2908 	* src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo.
 2909 
 2910 2009-03-20  Werner Lemberg  <wl@gnu.org>
 2911 
 2912 	Protect against too large glyphs.
 2913 
 2914 	Problem reported by Tavis Ormandy <taviso@google.com>.
 2915 
 2916 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow
 2917 	`pitch' or `height' to be larger than 0xFFFF.
 2918 
 2919 2009-03-20  Werner Lemberg  <wl@gnu.org>
 2920 	    Tavis Ormandy  <taviso@google.com>
 2921 
 2922 	Fix validation for various cmap table formats.
 2923 
 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.
 2927 
 2928 2009-03-20  Werner Lemberg  <wl@gnu.org>
 2929 
 2930 	Protect against malformed compressed data.
 2931 
 2932 	* src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is
 2933 	zero.
 2934 
 2935 2009-03-20  Werner Lemberg  <wl@gnu.org>
 2936 
 2937 	Protect against invalid SID values in CFFs.
 2938 
 2939 	Problem reported by Tavis Ormandy <taviso@google.com>.
 2940 
 2941 	* src/cff/cffload.c (cff_charset_load): Reject SID values larger
 2942 	than 64999.
 2943 
 2944 2009-03-19  Vincent Richomme  <richom.v@free.fr>
 2945 
 2946 	Update WinCE Visual C project files.
 2947 
 2948 	* builds/wince/vc2005-ce/freetype.vcproj,
 2949 	builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension
 2950 	files.
 2951 
 2952 2009-03-19  Werner Lemberg  <wl@gnu.org>
 2953 
 2954 	Remove unused Win32 code.
 2955 
 2956 	* builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'.
 2957 	Since Win32 is handled separately this is no longer needed.
 2958 
 2959 2009-03-19  Vincent Richomme  <richom.v@free.fr>
 2960 
 2961 	Make `gzip' module compile on WinCE.
 2962 
 2963 	* src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H.
 2964 
 2965 2009-03-19  Werner Lemberg  <wl@gnu.org>
 2966 
 2967 	Remove unused WinCE code.
 2968 
 2969 	* builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'.
 2970 	Since WinCE is handled separately this is no longer needed.
 2971 
 2972 2009-03-16  Werner Lemberg  <wl@gnu.org>
 2973 
 2974 	docmaker: Don't ignore single-line code blocks.
 2975 
 2976 	* src/tools/docmaker/content.py (DocBlock::_init__): Fix change from
 2977 	2009-01-31.
 2978 
 2979 2009-03-15  Steve Langasek  <steve.langasek@canonical.com>
 2980 
 2981 	Use __asm__ for declaring assembly instead of asm.
 2982 
 2983 	* builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of
 2984 	asm on arm, fixing a build failure on armel with -pedantic.
 2985 
 2986 2009-03-14  Werner Lemberg  <wl@gnu.org>
 2987 
 2988 	Fix valgrind warning.
 2989 
 2990 	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read
 2991 	past the end of the frame.
 2992 
 2993 2009-03-12  Werner Lemberg  <wl@gnu.org>
 2994 
 2995 	* Version 2.3.9 released.
 2996 	=========================
 2997 
 2998 
 2999 	Tag sources with `VER-2-3-9'.
 3000 
 3001 2009-03-12  Werner Lemberg  <wl@gnu.org>
 3002 
 3003 	* builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'.
 3004 
 3005 2009-03-12  Werner Lemberg  <wl@gnu.org>
 3006 
 3007 	Fix some FreeType Coverity issues as reported for Ghostscript.
 3008 
 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).
 3018 
 3019 	* src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing
 3020 	it (#3872)
 3021 
 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).
 3027 
 3028 	* src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of
 3029 	`acache' (#3797)
 3030 
 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).
 3035 
 3036 	* src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom'
 3037 	(#3793).
 3038 	(_bdf_parse_start): Add comment (#3792).
 3039 
 3040 	* src/raster/ftraster.c (Finalize_Profile_Table): Check
 3041 	`ras.fProfile' (#3791).
 3042 
 3043 	* src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785).
 3044 
 3045 	* src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore
 3046 	seek error (#3781).
 3047 
 3048 2009-03-11  Michael Toftdal  <toftdal@gmail.com>
 3049 
 3050 	Extend CID service functions to handle CID-keyed CFFs as CID fonts.
 3051 
 3052 	* include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed,
 3053 	FT_Get_CID_From_Glyph_Index): New functions.
 3054 
 3055 	* include/freetype/internal/services/svcid.h
 3056 	(FT_CID_GetIsInternallyCIDKeyedFunc,
 3057 	FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs.
 3058 	(CID Service): Use them.
 3059 
 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.
 3063 
 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.
 3070 
 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.
 3074 
 3075 	* docs/CHANGES: Updated.
 3076 
 3077 2009-03-11  Bram Tassyns  <bramt@enfocus.be>
 3078 
 3079 	Fix Savannah bug #25597.
 3080 
 3081 	* src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length
 3082 	to become larger than 9.
 3083 
 3084 2009-03-11  Werner Lemberg  <wl@gnu.org>
 3085 
 3086 	Fix Savannah bug #25814.
 3087 
 3088 	* builds/unix/freetype2.in: As suggested in the bug report, move
 3089 	@LIBZ@ to `Libs.private'.
 3090 
 3091 2009-03-11  Werner Lemberg  <wl@gnu.org>
 3092 
 3093 	Fix Savannah bug #25781.
 3094 	We now simply check for a valid `offset', no longer handling `delta
 3095 	= 1' specially.
 3096 
 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.
 3101 
 3102 2009-03-11  Werner Lemberg  <wl@gnu.org>
 3103 
 3104 	* src/base/Jamfile: Fix handling of ftadvanc.c.
 3105 	Reported by Oran Agra <oran@monfort.co.il>.
 3106 
 3107 2009-03-10  Vincent Richomme  <richom.v@free.fr>
 3108 
 3109 	Restructure Win32 and Wince compiler support.
 3110 
 3111 	* src/builds/win32: Remove files for WinCE.
 3112 	Move VC 2005 support to a separate directory.
 3113 	Add directory for VC 2008 support.
 3114 
 3115 	* src/builds/wince: New directory hierarchy for WinCE compilers
 3116 	(VC 2005 and VC 2008).
 3117 
 3118 2009-03-09  Werner Lemberg  <wl@gnu.org>
 3119 
 3120 	More preparations for 2.3.9 release.
 3121 
 3122 	* docs/CHANGES: Updated.
 3123 
 3124 	* Jamfile, README: s/2.3.8/2.3.9/, s/238/239/.
 3125 
 3126 2009-03-09  Werner Lemberg  <wl@gnu.org>
 3127 
 3128 	* src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c.
 3129 
 3130 2009-03-09  Alexey Kryukov  <anagnost@yandex.ru>
 3131 
 3132 	Fix handling of EBDT formats 8 and 9 (part 2).
 3133 
 3134 	This patch fixes the following problems in ttsbit0.c:
 3135 
 3136 	. Bitmaps for compound glyphs were never allocated.
 3137 
 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.
 3145 
 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).
 3149 
 3150 	Note that support for grayscale bitmaps (not necessarily compound) is
 3151 	completely broken in ttsbit0.c.
 3152 
 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.
 3159 
 3160 2009-03-09  Werner Lemberg  <wl@gnu.org>
 3161 
 3162 	* builds/unix/configure.raw (version_info): Set to 9:20:3.
 3163 
 3164 2009-03-03  David Turner  <david@freetype.org>
 3165 
 3166 	Protect SFNT kerning table parser against malformed tables.
 3167 
 3168 	This closes Savannah BUG #25750.
 3169 
 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.
 3173 
 3174 2009-03-03  David Turner  <david@freetype.org>
 3175 
 3176 	Update documentation and bump version number to 2.3.9.
 3177 
 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.
 3181 
 3182 2009-03-03  David Turner  <david@freetype.org>
 3183 
 3184 	Remove ABI-breaking field in public PS_InfoFontRec definition.
 3185 
 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.
 3189 
 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.
 3197 
 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.
 3204 
 3205 	* include/freetype/internal/services/svpsinfo.h (PsInfo service):
 3206 	Add `PS_GetFontExtraFunc' function typedef.
 3207 
 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.
 3211 
 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.
 3219 
 3220 2009-03-02  Alexey Kryukov  <anagnost@yandex.ru>
 3221 
 3222 	Fix handling of EBDT formats 8 and 9.
 3223 
 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.
 3227 
 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.
 3231 
 3232 2009-02-23  Werner Lemberg  <wl@gnu.org>
 3233 
 3234 	Fix Savannah bug #25669.
 3235 
 3236 	* src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo.
 3237 
 3238 	* src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix
 3239 	scaling factor for non-scalable fonts.
 3240 
 3241 	* src/cff/cffdrivr.c (cff_get_advances): Use correct advance width
 3242 	value to prevent incorrect scaling.
 3243 
 3244 	* docs/CHANGES: Document it.
 3245 
 3246 2009-02-15  Matt Godbolt  <matt@godbolt.org>
 3247 
 3248 	Fix Savannah bug #25588.
 3249 
 3250 	* builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for
 3251 	`orr' instruction.
 3252 
 3253 2009-02-11  Werner Lemberg  <wl@gnu.org>
 3254 
 3255 	* src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'.
 3256 	Reported by David Bevan <dbevan@emtex.com>.
 3257 
 3258 2009-02-09  Werner Lemberg  <wl@gnu.org>
 3259 
 3260 	Fix Savannah bug #25495.
 3261 
 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.
 3266 
 3267 2009-02-04  Werner Lemberg  <wl@gnu.org>
 3268 
 3269 	Fix Savannah bug #25480.
 3270 
 3271 	* builds/unix/freetype-config.in: For --ftversion, don't use $prefix
 3272 	but $includedir.
 3273 
 3274 2009-01-31  Werner Lemberg  <wl@gnu.org>
 3275 
 3276 	Minor docmaker improvements.
 3277 
 3278 	* src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty
 3279 	code blocks.
 3280 
 3281 2009-01-25  Werner Lemberg  <wl@gnu.org>
 3282 
 3283 	Fix SCANCTRL handling in TTFs.
 3284 	Problem reported by Alexey Kryukov <anagnost@yandex.ru>.
 3285 
 3286 	* src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling.
 3287 
 3288 2009-01-23  Werner Lemberg  <wl@gnu.org>
 3289 
 3290 	Move FT_Get_FSType_Flags to a separate file.
 3291 	Problem reported by Mickey Gabel <mickey@monfort.co.il>.
 3292 
 3293 	* src/base/ftobjs.c (FT_Get_FSType_Flags): Move to...
 3294 	* src/base/ftfstype.c: This new file.
 3295 
 3296 	* modules.cfg (BASE_EXTENSION): Add ftfstype.c.
 3297 
 3298 	* docs/INSTALL.ANY: Updated.
 3299 
 3300 	* builds/mac/*.txt, builds/amiga/*makefile*,
 3301 	builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*:
 3302 	Updated.
 3303 
 3304 2009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3305 
 3306 	* builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error
 3307 	messages ending without "\n".
 3308 
 3309 2009-01-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3310 
 3311 	Fix Savannah bug #25347.
 3312 
 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.
 3319 
 3320 2009-01-19  Michael Lotz  <mmlr@mlotz.ch>
 3321 
 3322 	Fix Savannah bug #25355.
 3323 
 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.
 3327 
 3328 2009-01-18  Werner Lemberg  <wl@gnu.org>
 3329 
 3330 	Protect FT_Get_Next_Char.
 3331 
 3332 	* src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to
 3333 	change from 2008-07-22.
 3334 
 3335 	Patch from Ronen Ghoshal <rghoshal@emtex.com>.
 3336 
 3337 2009-01-18  Werner Lemberg  <wl@gnu.org>
 3338 
 3339 	Implement FT_Get_Name_Index for SFNT driver.
 3340 
 3341 	* src/sfnt/sfdriver.c (sfnt_get_name_index): New function.
 3342 	(sfnt_service_glyph_dict): Use it.
 3343 
 3344 	Problem reported by Truc Truong <tructv@necsv.com>.
 3345 
 3346 2009-01-18  Werner Lemberg  <wl@gnu.org>
 3347 
 3348 	* include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix
 3349 	documentation.  Problem reported by Truc Truong <tructv@necsv.com>.
 3350 
 3351 	* docs/CHANGES: Updated.
 3352 
 3353 2009-01-14  Werner Lemberg  <wl@gnu.org>
 3354 
 3355 	* Version 2.3.8 released.
 3356 	=========================
 3357 
 3358 
 3359 	Tag sources with `VER-2-3-8'.
 3360 
 3361 	* docs/VERSION.DLL: Update documentation and bump version number to
 3362 	2.3.8.
 3363 
 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/.
 3370 
 3371 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
 3372 
 3373 	* builds/unix/configure.raw (version_info): Set to 9:19:3.
 3374 
 3375 	* docs/release: Updated.
 3376 
 3377 2009-01-14  Werner Lemberg  <wl@gnu.org>
 3378 
 3379 	* builds/toplevel.mk (dist): Compress better.
 3380 
 3381 2009-01-13  Werner Lemberg  <wl@gnu.org>
 3382 
 3383 	* src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
 3384 	with C++.
 3385 
 3386 2009-01-13  Werner Lemberg  <wl@gnu.org>
 3387 
 3388 	Don't use stdlib.h and friends directly.
 3389 	Reported by Mickey Gabel <mickey@monfort.co.il>.
 3390 
 3391 	* src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
 3392 
 3393 	* src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
 3394 	s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
 3395 
 3396 	* src/autofit/aftypes.h, src/autofit/afhints.c,
 3397 	src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
 3398 
 3399 	* src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
 3400 
 3401 2009-01-12  Werner Lemberg  <wl@gnu.org>
 3402 
 3403 	Avoid compiler warnings.
 3404 
 3405 	* */*: s/do ; while ( 0 )/do { } while ( 0 )/.
 3406 	Reported by Sean McBride <sean@rogue-research.com>.
 3407 
 3408 2009-01-12  Werner Lemberg  <wl@gnu.org>
 3409 
 3410 	Fix stdlib dependencies.
 3411 
 3412 	Problem reported by Mickey Gabel <mickey@monfort.co.il>.
 3413 
 3414 	* include/freetype/config/ftstdlib.h (ft_exit): Removed.  Unused.
 3415 
 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/.
 3419 
 3420 2009-01-11  Werner Lemberg  <wl@gnu.org>
 3421 
 3422 	* docs/formats.txt: Add link to PCF specification.
 3423 
 3424 	* include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
 3425 	documentation.
 3426 
 3427 2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3428 
 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.
 3438 
 3439 2009-01-09  Daniel Zimmermann  <netzimme@aol.com>
 3440 
 3441 	* src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
 3442 	length check.  From Savannah patch #6682.
 3443 
 3444 2009-01-09  Werner Lemberg  <wl@gnu.org>
 3445 
 3446 	Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
 3447 
 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>.
 3452 
 3453 2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3454 
 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.
 3464 
 3465 2009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3466 
 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 	https://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
 3473 	https://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
 3474 
 3475 2009-01-07  Werner Lemberg  <wl@gnu.org>
 3476 
 3477 	* docs/CHANGES: Document new key `a' in ftdiff.
 3478 
 3479 2009-01-06  Werner Lemberg  <wl@gnu.org>
 3480 
 3481 	* autogen.sh: Don't use GNUisms while calling sed.  Problem reported
 3482 	by Sean McBride.
 3483 
 3484 2009-01-06  Werner Lemberg  <wl@gnu.org>
 3485 
 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>.
 3489 
 3490 2009-01-06  Diego Pettenò  <flameeyes@gmail.com>
 3491 
 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 	https://blog.flameeyes.eu/s/canonical-target.
 3496 
 3497 	From Savannah patch #6712.
 3498 
 3499 2009-01-06  Sean McBride  <sean@rogue-research.com>
 3500 
 3501 	* src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
 3502 
 3503 	* src/base/ftmac.c: Remove some #undefs.
 3504 
 3505 2008-12-26  Werner Lemberg  <wl@gnu.org>
 3506 
 3507 	Set `face_index' field in FT_Face for all font formats.
 3508 
 3509 	* cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
 3510 	sfnt/sfobjs.c (sfnt_init_face): Do it.
 3511 
 3512 	* docs/CHANGES: Document it.
 3513 
 3514 2008-12-22  Steve Grubb
 3515 
 3516 	* builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
 3517 	Patch from Savannah bug #25151.
 3518 
 3519 2008-12-21  Werner Lemberg  <wl@gnu.org>
 3520 
 3521 	* src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
 3522 	src/smooth/ftgrays.c, src/base/ftobjs.c, src/sfobjs.c:
 3523 	s/_Err_Bad_Argument/_Err_Invalid_Argument/.  The former is for
 3524 	errors in the bytecode interpreter only.
 3525 
 3526 2008-12-21  Werner Lemberg  <wl@gnu.org>
 3527 
 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>.
 3532 
 3533 2008-12-21  anonymous
 3534 
 3535 	FT_USE_MODULE declares things as:
 3536 
 3537 	  extern const FT_Module_Class
 3538 
 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.)
 3542 
 3543 	This works with most C compilers (since those structs begin with an
 3544 	FT_Module_Class struct), but technically it's undefined behavior.
 3545 
 3546 	To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
 3547 	paragraph 2:
 3548 
 3549 	  All declarations that refer to the same object or function shall
 3550 	  have compatible type; otherwise, the behavior is undefined.
 3551 
 3552 	(And they are not compatible types.)
 3553 
 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.)
 3559 
 3560 	Patch from Savannah bug #25133.
 3561 
 3562 	* src/base/ftinit.c (FT_USE_MODULE): Include variable type.
 3563 
 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.
 3567 
 3568 2008-12-21  Hongbo Ni  <hongbo@njstar.com>
 3569 
 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.
 3574 
 3575 2008-12-18  Werner Lemberg  <wl@gnu.org>
 3576 
 3577 	* docs/CHANGES: Updated.
 3578 
 3579 2008-12-18  David Bevan  <dbevan@emtex.com>
 3580 
 3581 	Provide API for accessing embedding and subsetting restriction
 3582 	information.
 3583 
 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.
 3590 
 3591 	* src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
 3592 
 3593 	* src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
 3594 	(t42_keywords): Handle `FSType'.
 3595 
 3596 	* include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
 3597 
 3598 2008-12-17  Werner Lemberg  <wl@gnu.org>
 3599 
 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.
 3603 
 3604 2008-12-17  Werner Lemberg  <wl@gnu.org>
 3605 
 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.
 3609 
 3610 	* docs/CHANGES: Document it.
 3611 
 3612 2008-12-10  Werner Lemberg  <wl@gnu.org>
 3613 
 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.
 3617 
 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.
 3622 
 3623 	Finally, tricky TrueType fonts always use the bytecode interpreter
 3624 	even if the patented code is used.
 3625 
 3626 	* include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
 3627 	New macros.
 3628 
 3629 	* src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
 3630 	semantics as described above.
 3631 
 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.
 3636 
 3637 	* src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
 3638 	fonts.
 3639 
 3640 	* docs/CHANGES: Document it.
 3641 
 3642 2008-12-09  Werner Lemberg  <wl@gnu.org>
 3643 
 3644 	Really fix Savannah bug #25010: An SFNT font with neither outlines
 3645 	nor bitmaps can be considered as containing space `glyphs' only.
 3646 
 3647 	* src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
 3648 	a `glyf' table is missing.
 3649 
 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.
 3653 
 3654 	* src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
 3655 
 3656 	* src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
 3657 	nor bitmaps is scalable.
 3658 
 3659 2008-12-05  Werner Lemberg  <wl@gnu.org>
 3660 
 3661 	* src/autofit/aflatin.c (af_latin_uniranges): Add more ranges.  This
 3662 	fixes Savannah bug #21190 which also provides a basic patch.
 3663 
 3664 2008-12-05  Werner Lemberg  <wl@gnu.org>
 3665 
 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.
 3669 
 3670 
 3671 	Handle SFNT with neither outlines nor bitmaps.  This fixes Savannah
 3672 	bug #25010.
 3673 
 3674 	* src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
 3675 	outlines nor bitmaps.
 3676 
 3677 	* src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
 3678 	is no table with glyphs.
 3679 
 3680 
 3681 	* src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
 3682 	message.
 3683 
 3684 2008-12-01  Werner Lemberg  <wl@gnu.org>
 3685 
 3686 	GDEF tables need `glyph_count' too for validation.  Problem reported
 3687 	by Chi Nguyen <chint@necsv.com>.
 3688 
 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'.
 3692 
 3693 2008-11-29  Werner Lemberg  <wl@gnu.org>
 3694 
 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).
 3701 
 3702 2008-11-29  James Cloos  <cloos@jhcloos.com>
 3703 
 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).
 3707 
 3708 2008-11-29  James Cloos  <cloos@jhcloos.com>
 3709 
 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.
 3713 
 3714 2008-11-27  Werner Lemberg  <wl@gnu.org>
 3715 
 3716 	* src/cff/cffparse.c (cff_parse_real): Handle more than nine
 3717 	significant digits correctly.  This fixes Savannah bug #24953.
 3718 
 3719 2008-11-25  Daniel Zimmermann  <netzimme@aol.com>
 3720 
 3721 	* src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
 3722 	before the NULL check.  From Savannah patch #6681.
 3723 
 3724 2008-11-24  Werner Lemberg  <wl@gnu.org>
 3725 
 3726 	Fixes from the gnuwin32 port.
 3727 
 3728 	* src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
 3729 
 3730 	* src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
 3731 
 3732 	* src/psaux/psobjs.c (ps_table_add): Check `length'.
 3733 
 3734 2008-11-15  Werner Lemberg  <wl@gnu.org>
 3735 
 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>.
 3740 
 3741 2008-11-12  Tor Andersson  <tor.andersson@gmail.com>
 3742 
 3743 	* src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
 3744 	This fixes Savannah bug #24819.
 3745 
 3746 2008-11-08  Werner Lemberg  <wl@gnu.org>
 3747 
 3748 	* src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
 3749 	since OpenType version 1.5 has been released.
 3750 
 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.
 3765 
 3766 2008-11-08  Wenlin Institute  <wenlin@wenlin.com>
 3767 
 3768 	* src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
 3769 	slot->internal == NULL.  Reported by Graham Asher.
 3770 
 3771 2008-11-08  Werner Lemberg  <wl@gnu.org>
 3772 
 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.
 3778 
 3779 2008-11-05  Werner Lemberg  <wl@gnu.org>
 3780 
 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.
 3786 
 3787 	* docs/CHANGES: Document it.
 3788 
 3789 2008-11-03  Werner Lemberg  <wl@gnu.org>
 3790 
 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>.
 3795 
 3796 2008-10-15  Graham Asher  <graham.asher@btinternet.com>
 3797 
 3798 	* src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
 3799 
 3800 2008-10-15  David Turner  <david@freetype.org>
 3801 
 3802 	* src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
 3803 	meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
 3804 
 3805 2008-10-14  Werner Lemberg  <wl@gnu.org>
 3806 
 3807 	* src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
 3808 	Suggested by Bram Tassyns in Savannah patch #6651.
 3809 
 3810 2008-10-12  Graham Asher  <graham.asher@btinternet.com>
 3811 
 3812 	* src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
 3813 	`underline_position'.
 3814 
 3815 2008-10-12  Werner Lemberg  <wl@gnu.org>
 3816 
 3817 	* docs/CHANGES: Updated.
 3818 
 3819 2008-10-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3820 
 3821 	Fix Savannah bug #24468.
 3822 
 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.
 3826 
 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*.
 3832 
 3833 2008-10-08  John Tytgat  <John.Tytgat@esko.com>
 3834 
 3835 	Fix Savannah bug #24485.
 3836 
 3837 	* src/type1/t1load.c (parse_charstrings): Assure that we always have
 3838 	a .notdef glyph.
 3839 
 3840 2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3841 
 3842 	* src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
 3843 	* builds/mac/ftmac.c: Ditto.
 3844 
 3845 2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3846 
 3847 	* include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
 3848 	* src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
 3849 
 3850 2008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3851 
 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.
 3859 
 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.
 3863 
 3864 2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3865 
 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.
 3872 
 3873 2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3874 
 3875 	* src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
 3876 	initialization of *is_sfnt_cid.
 3877 
 3878 2008-10-04  Werner Lemberg  <wl@gnu.org>
 3879 
 3880 	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
 3881 	warnings.
 3882 
 3883 2008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3884 
 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'.
 3897 
 3898 2008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3899 
 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.
 3902 
 3903 2008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3904 
 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.
 3914 
 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.
 3921 
 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.
 3929 
 3930 2008-10-02  Bram Tassyns  <bramt@enfocus.be>
 3931 
 3932 	* src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0.  This
 3933 	fixes Savannah bug #24430.
 3934 
 3935 2008-10-02  Werner Lemberg  <wl@gnu.org>
 3936 
 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.
 3946 
 3947 2008-10-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3948 
 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.
 3953 
 3954 	* src/base/rule.mk: Add ftbase.h.
 3955 
 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.
 3965 
 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.
 3972 
 3973 2008-10-02  Werner Lemberg  <wl@gnu.org>
 3974 
 3975 	* src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
 3976 	if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
 3977 
 3978 2008-10-01  Werner Lemberg  <wl@gnu.org>
 3979 
 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.
 3986 
 3987 2008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 3988 
 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.
 3998 
 3999 2008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4000 
 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.
 4005 
 4006 2008-09-22  Werner Lemberg  <wl@gnu.org>
 4007 
 4008 	* src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
 4009 	cff_decoder_parse_charstrings): Handle (invalid)
 4010 	`callothersubr' and `pop' instructions.
 4011 
 4012 2008-09-22  John Tytgat  <John.Tytgat@esko.com>
 4013 
 4014 	Fix Savannah bug #24307.
 4015 
 4016 	* include/freetype/internal/t1types.h (CID_FaceRec),
 4017 	src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
 4018 
 4019 2008-09-21  Werner Lemberg  <wl@gnu.org>
 4020 
 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>.
 4024 
 4025 2008-09-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4026 
 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.
 4031 
 4032 2008-09-20  Werner Lemberg  <wl@gnu.org>
 4033 
 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>.
 4037 
 4038 	* docs/CHANGES: Document it.
 4039 
 4040 2008-09-20  Werner Lemberg  <wl@gnu.org>
 4041 
 4042 	* src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
 4043 	(FT_Outline_Decompose): Decorate with tracing messages.
 4044 
 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.
 4049 
 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.
 4054 
 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.
 4059 
 4060 	(FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
 4061 	ftoutln.c.
 4062 
 4063 	* src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
 4064 	FT_ERROR_BASE.
 4065 
 4066 	* docs/formats.txt: Updated.
 4067 
 4068 2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4069 
 4070 	* src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
 4071 	CID-keyed font support.
 4072 	* builds/mac/ftmac.c: Ditto.
 4073 
 4074 2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4075 
 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.
 4080 
 4081 2008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4082 
 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.
 4088 
 4089 	* docs/CHANGES: Add note about the current status of sfnt-wrapped
 4090 	Type1 and sfnt-wrapped CID-keyed font support.
 4091 
 4092 2008-09-18  Werner Lemberg  <wl@gnu.org>
 4093 
 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.
 4097 
 4098 2008-09-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4099 
 4100 	* src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
 4101 	in tttags.h instead of numerical value 0x4F54544FL.
 4102 
 4103 2008-09-16  Werner Lemberg  <wl@gnu.org>
 4104 
 4105 	* src/cff/cffgload.h, src/cff/cffgload.c
 4106 	(cff_decoder_set_width_only): Eliminate function call.
 4107 
 4108 2008-09-15  George Williams  <gww@silcom.com>
 4109 
 4110 	Fix Savannah bug #24179, reported by Bram Tassyns.
 4111 
 4112 	* src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
 4113 	of default values.
 4114 
 4115 2008-09-15  Werner Lemberg  <wl@gnu.org>
 4116 
 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.
 4120 
 4121 	* src/psnames/pstables.h: Regenerated.
 4122 
 4123 2008-09-13  Werner Lemberg  <wl@gnu.org>
 4124 
 4125 	* autogen.sh, builds/unix/configure.raw,
 4126 	include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
 4127 	beautifying.
 4128 
 4129 	* include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
 4130 	include/freetype/ftlcdfil.h: Protect against FreeType 1.
 4131 	Some other minor fixes.
 4132 
 4133 	* devel/ftoption.h: Synchronize with
 4134 	include/freetype/config/ftoption.h.
 4135 
 4136 2008-09-11  Werner Lemberg  <wl@gnu.org>
 4137 
 4138 	* src/base/ftbase.c: Include ftadvanc.c.
 4139 
 4140 2008-09-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4141 
 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.
 4147 
 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.
 4155 
 4156 2008-09-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4157 
 4158 	* builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
 4159 	ApplicationServices framework is missing.  Although this value is not
 4160 	used in building of FreeType2, it is written in `freetype2.pc' and
 4161 	`freetype-config'.
 4162 
 4163 2008-09-01  David Turner  <david@freetype.org>
 4164 
 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.
 4169 
 4170 
 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.
 4175 
 4176 	Use of assembler code can now be controlled with
 4177 	FT_CONFIG_OPTION_NO_ASSEMBLER.
 4178 
 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.
 4189 
 4190 	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
 4191 	FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
 4192 
 4193 	* include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
 4194 
 4195 	* src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
 4196 	FT_MULFIX_INLINED.
 4197 
 4198 
 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).
 4203 
 4204 	* src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
 4205 
 4206 	* include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
 4207 	* include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
 4208 
 4209 	* include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
 4210 	`flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
 4211 	respectively.
 4212 
 4213 	* src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
 4214 	ftadvanc.c.
 4215 
 4216 	* src/cff/cffdrivr.c (cff_get_advances): New function.
 4217 	(cff_driver_class): Register it.
 4218 
 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.
 4222 
 4223 	* src/cff/cffgload.h (cff_decoder): New element `width_only'.
 4224 	(cff_decoder_set_width_only): New declaration.
 4225 
 4226 	* src/truetype/ttdriver.c (tt_get_advances): New function.
 4227 	(tt_driver_class): Register it.
 4228 
 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.
 4233 
 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.
 4237 
 4238 
 4239 	Add checks for minimum version of the `autotools' stuff.
 4240 
 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.
 4245 
 4246 	* README.CVS: Document it.
 4247 
 4248 2008-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4249 
 4250 	* src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
 4251 	tttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
 4252 
 4253 2008-08-28  Werner Lemberg  <wl@gnu.org>
 4254 
 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).
 4258 
 4259 2008-08-23  Werner Lemberg  <wl@gnu.org>
 4260 
 4261 	* src/type/t1afm.c (compare_kern_pairs), src/psaux/afmparse.c
 4262 	(afm_compare_kern_pairs): Fix comparison.  This fixes Savannah bug
 4263 	#24119.
 4264 
 4265 2008-08-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4266 
 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).
 4274 
 4275 2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4276 
 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.
 4283 
 4284 2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4285 
 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.
 4289 
 4290 2008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4291 
 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.
 4296 
 4297 2008-08-04  Werner Lemberg  <wl@gnu.org>
 4298 
 4299 	* src/type1/t1tokens.h: Handle `ForceBold' keyword.  This fixes
 4300 	Savannah bug #23995.
 4301 
 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'.
 4306 
 4307 2008-08-04  Bram Tassyns  <bramt@enfocus.be>
 4308 
 4309 	* src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
 4310 	resulted in incorrect scaling.  This fixes Savannah bug #23973.
 4311 
 4312 2008-08-04  Werner Lemberg  <wl@gnu.org>
 4313 
 4314 	Be more tolerant w.r.t. invalid entries in SFNT table directory.
 4315 
 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.
 4320 
 4321 2008-07-30  Werner Lemberg  <wl@gnu.org>
 4322 
 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:
 4326 
 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.
 4330 
 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.
 4336 
 4337 	Since there are CFF subfonts (embedded in PDFs) which rely on
 4338 	Acroread's behaviour, FreeType now does the same.
 4339 
 4340 2008-07-27  Werner Lemberg  <wl@gnu.org>
 4341 
 4342 	Add extra mappings for `Tcommaaccent' and `tcommaaccent'.  This
 4343 	fixes Savannah bug #23940.
 4344 
 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.
 4357 
 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.
 4362 
 4363 2008-07-26  Werner Lemberg  <wl@gnu.org>
 4364 
 4365 	* src/cff/cffgload.c (cff_decoder_prepare,
 4366 	cff_decoder_parse_charstrings): Improve debug output.
 4367 
 4368 2008-07-22  Martin McBride  <mmcbride@emtex.com>
 4369 
 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.
 4374 
 4375 2008-07-16  Jon Foster  <Jon.Foster@cabot.co.uk>
 4376 
 4377 	* src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
 4378 
 4379 	* src/base/ftcalc.c (FT_MulFix): Fix portability issue.
 4380 
 4381 	* src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
 4382 	Fix compiler warning.
 4383 
 4384 2008-07-16  Werner Lemberg  <wl@gnu.org>
 4385 
 4386 	Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
 4387 
 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: Updated.
 4391 
 4392 	* src/cff/cffobjs.c (cff_face_init): Updated.
 4393 	Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
 4394 
 4395 	* docs/CHANGES: Updated.
 4396 
 4397 2008-07-09  Werner Lemberg  <wl@gnu.org>
 4398 
 4399 	* src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
 4400 	where num_locations < num_glyphs.  Problem reported by Ding Li.
 4401 
 4402 2008-07-05  Werner Lemberg  <wl@gnu.org>
 4403 
 4404 	Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
 4405 	newer.  This fixes Savannah bug #23648.
 4406 
 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.
 4412 
 4413 2008-07-04  Werner Lemberg  <wl@gnu.org>
 4414 
 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.
 4418 
 4419 2008-06-29  Werner Lemberg  <wl@gnu.org>
 4420 
 4421 	* Version 2.3.7 released.
 4422 	=========================
 4423 
 4424 
 4425 	Tag sources with `VER-2-3-7'.
 4426 
 4427 	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
 4428 	version number to 2.3.7.
 4429 
 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/.
 4436 
 4437 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
 4438 
 4439 	* builds/unix/configure.raw (version_info): Set to 9:18:3.
 4440 
 4441 	* docs/release: Updated.
 4442 
 4443 2008-06-28  Werner Lemberg  <wl@gnu.org>
 4444 
 4445 	* src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
 4446 	* src/ftcalc.c: Here.  This fixes Savannah bug #23729.
 4447 
 4448 2008-06-27  Werner Lemberg  <wl@gnu.org>
 4449 
 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.)
 4454 
 4455 2008-06-26  Werner Lemberg  <wl@gnu.org>
 4456 
 4457 	Improve navigation in API reference.
 4458 
 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.
 4471 
 4472 	Convert ~ to non-breakable space.
 4473 
 4474 	* src/tools/docmaker/tohtml.py (make_html_para): Implement it.
 4475 	Update header files accordingly.
 4476 
 4477 2008-06-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4478 
 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.
 4487 
 4488 2008-06-24  Werner Lemberg  <wl@gnu.org>
 4489 
 4490 	* src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
 4491 	mode.
 4492 
 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.
 4496 
 4497 2008-06-24  Werner Lemberg  <wl@gnu.org>
 4498 
 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).
 4502 
 4503 2008-06-22  Werner Lemberg  <wl@gnu.org>
 4504 
 4505 	* src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
 4506 	with IS_HINTED.
 4507 
 4508 	* docs/CHANGES: Updated.
 4509 
 4510 2008-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4511 
 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 	https://trac.macports.org/ticket/15331.
 4520 
 4521 2008-06-21  Werner Lemberg  <wl@gnu.org>
 4522 
 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.
 4526 
 4527 	* include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
 4528 	FT_OUTLINE_EXCLUDE_STUBS): New flags for FT_Outline.
 4529 
 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.
 4535 
 4536 	* src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
 4537 	mode to FT_OUTLINE_XXX flags.
 4538 
 4539 	* src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
 4540 
 4541 2008-06-19  Werner Lemberg  <wl@gnu.org>
 4542 
 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.
 4548 
 4549 	* docs/CHANGES: Updated.
 4550 
 4551 2008-06-19  Werner Lemberg  <wl@gnu.org>
 4552 
 4553 	* src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
 4554 	from 2008-06-19.
 4555 
 4556 2008-06-18  Werner Lemberg  <wl@gnu.org>
 4557 
 4558 	* src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
 4559 	Reported by Peter Weilbacher <mozilla@weilbacher.org>.
 4560 
 4561 	* docs/CHANGES: Updated.
 4562 
 4563 2008-06-15  George Williams  <gww@silcom.com>
 4564 
 4565 	* src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
 4566 	`valid->extra2' to 1.  This is undocumented in the OpenType 1.5
 4567 	specification.
 4568 
 4569 2008-06-15  Werner Lemberg  <wl@gnu.org>
 4570 
 4571 	* src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
 4572 	from clobbering.  Patch from Savannah bug report #23556.
 4573 
 4574 	* docs/CHANGES: Document it.
 4575 
 4576 2008-06-10  Werner Lemberg  <wl@gnu.org>
 4577 
 4578 	* autogen.sh: Add option `--install' to libtoolize.
 4579 
 4580 2008-06-10  Werner Lemberg  <wl@gnu.org>
 4581 
 4582 	* Version 2.3.6 released.
 4583 	=========================
 4584 
 4585 
 4586 	Tag sources with `VER-2-3-6'.
 4587 
 4588 	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
 4589 	version number to 2.3.6.
 4590 
 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/.
 4597 
 4598 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
 4599 
 4600 	* builds/unix/configure.raw (version_info): Set to 9:17:3.
 4601 
 4602 
 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'.
 4606 
 4607 
 4608 	* src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
 4609 	* src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
 4610 
 4611 2008-06-10  Werner Lemberg  <wl@gnu.org>
 4612 
 4613 	* src/base/ftobjs.c (open_face): Check `clazz->init_face' and
 4614 	`clazz->done_face'.
 4615 
 4616 2008-06-09  VaDiM  <s_sliva@rambler.ru>
 4617 
 4618 	Support debugging on WinCE.  From Savannah patch #6536; this fixes
 4619 	bug #23497.
 4620 
 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.
 4626 
 4627 2008-06-09  Werner Lemberg  <wl@gnu.org>
 4628 
 4629 	* README.CVS: Updated.
 4630 
 4631 	* builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
 4632 	for newer versions of autoconf and friends.
 4633 
 4634 2008-06-08  Werner Lemberg  <wl@gnu.org>
 4635 
 4636 	* src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
 4637 	`private_len' unsigned.
 4638 
 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.
 4642 
 4643 
 4644 	* src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
 4645 
 4646 
 4647 	* src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
 4648 	for sane value.
 4649 	Fix typo.
 4650 
 4651 
 4652 	* src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
 4653 
 4654 
 4655 	* src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
 4656 	`last_point'.
 4657 
 4658 
 4659 	* src/sfnt/ttload.c (tt_face_load_max_profile): Limit
 4660 	`maxTwilightPoints'.
 4661 
 4662 2008-06-06  Werner Lemberg  <wl@gnu.org>
 4663 
 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.
 4666 
 4667 2008-06-03  Werner Lemberg  <wl@gnu.org>
 4668 
 4669 	* include/freetype/ftcache.h (FTC_FaceID): Change type back to
 4670 	FT_Pointer.  Reported by Ian Britten <britten@caris.com>.
 4671 
 4672 2008-06-02  Werner Lemberg  <wl@gnu.org>
 4673 
 4674 	Emit header info for defined FreeType objects in reference.
 4675 
 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.
 4679 
 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.
 4686 
 4687 2008-06-01  Werner Lemberg  <wl@gnu.org>
 4688 
 4689 	* include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
 4690 	FT_INCREMENTAL_H): Added.
 4691 
 4692 2008-05-28  Werner Lemberg  <wl@gnu.org>
 4693 
 4694 	* src/tools/docmaker/sources.py (SourceBlock::__init__): While
 4695 	looking for markup tags, return immediately as soon a single one is
 4696 	found.
 4697 
 4698 2008-05-28  Werner Lemberg  <wl@gnu.org>
 4699 
 4700 	* src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
 4701 	original, unscaled input values.  Confirmed by Greg Hitchcock from
 4702 	Microsoft.
 4703 
 4704 2008-05-27  Werner Lemberg  <wl@gnu.org>
 4705 
 4706 	* src/tools/docmaker/tohtml.py (block_footer_start,
 4707 	block_footer_middle): Beautify output.
 4708 
 4709 2008-05-25  Werner Lemberg  <wl@gnu.org>
 4710 
 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.
 4713 
 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.
 4720 
 4721 2008-05-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4722 
 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.
 4726 
 4727 2008-05-18  Werner Lemberg  <wl@gnu.org>
 4728 
 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.
 4733 
 4734 2008-05-18  Werner Lemberg  <wl@gnu.org>
 4735 
 4736 	* src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
 4737 	This fixes Savannah bug #23280.
 4738 
 4739 	* docs/CHANGES: Updated.
 4740 
 4741 2008-05-18  David Turner  <david@freetype.org>
 4742 
 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.
 4747 
 4748 	* src/type1/t1load.c: Add missing comment.
 4749 
 4750 2008-05-17  Sam Hocevar  <samh>
 4751 
 4752 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
 4753 	glyphs correctly.  Patch from Savannah bug #23277.
 4754 
 4755 2008-05-16  Werner Lemberg  <wl@gnu.org>
 4756 
 4757 	* docs/CHANGES: Updated.
 4758 
 4759 2008-05-16  Sergey Tolstov  <stolstov@esri.com>
 4760 
 4761 	Improve support for WGL4 encoded fonts.
 4762 
 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.
 4768 
 4769 2008-05-15  Werner Lemberg  <wl@gnu.org>
 4770 
 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).
 4774 
 4775 	Reported by Martin McBride.
 4776 
 4777 2008-05-15  Werner Lemberg  <wl@gnu.org>
 4778 
 4779 	* builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
 4780 
 4781 2008-05-15  Werner Lemberg  <wl@gnu.org>
 4782 
 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...
 4786 
 4787 	Reported by Martin McBride.
 4788 
 4789 2008-05-14  Werner Lemberg  <wl@gnu.org>
 4790 
 4791 	Finish fix of scaling bug of CID-keyed CFF subfonts.
 4792 
 4793 	* include/freetype/internal/ftcalc.h, src/base/ftcalc.c
 4794 	(FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
 4795 	functions.
 4796 
 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).
 4800 
 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.
 4810 
 4811 	* src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
 4812 
 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.
 4817 
 4818 	* src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
 4819 	(cff_parse_font_matrix): Use it.
 4820 
 4821 	* src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
 4822 	FT_ULong.
 4823 
 4824 	* docs/CHANGES: Document it.
 4825 
 4826 2008-05-13  Werner Lemberg  <wl@gnu.org>
 4827 
 4828 	* src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
 4829 	Handle case `face_index < 0'.
 4830 	* docs/CHANGES: Document it.
 4831 
 4832 2008-05-04  Werner Lemberg  <wl@gnu.org>
 4833 
 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.
 4836 
 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.
 4844 
 4845 2008-05-03  Werner Lemberg  <wl@gnu.org>
 4846 
 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.
 4850 
 4851 2008-04-26  Werner Lemberg  <wl@gnu.org>
 4852 
 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.
 4856 
 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.
 4860 
 4861 2008-04-14  Werner Lemberg  <wl@gnu.org>
 4862 
 4863 	* src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
 4864 	`FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZW'.  From Savannah
 4865 	bug #22909.
 4866 
 4867 2008-04-13  Werner Lemberg  <wl@gnu.org>
 4868 
 4869 	* src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
 4870 	integer part is zero.
 4871 
 4872 2008-04-01  Werner Lemberg  <wl@gnu.org>
 4873 
 4874 	Fix compilation with g++ 4.1 (with both `single' and `multi'
 4875 	targets).
 4876 
 4877 	* src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
 4878 	which is crossed by a `goto'.
 4879 
 4880 	* src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
 4881 
 4882 2008-03-31  Werner Lemberg  <wl@gnu.org>
 4883 
 4884 	Fix support for subsetted CID-keyed CFFs.
 4885 
 4886 	* include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
 4887 	FT_IS_CID_KEYED): New macros.
 4888 
 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.
 4892 
 4893 	* docs/CHANGES: Document it.
 4894 
 4895 
 4896 	Fix CFF font matrix calculation and improve precision.
 4897 
 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.
 4902 
 4903 
 4904 	Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
 4905 
 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.
 4910 
 4911 2008-03-23  Werner Lemberg  <wl@gnu.org>
 4912 
 4913 	Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
 4914 
 4915 	* builds/compiler/visualc.mk (CFLAGS): Remove /W5.
 4916 	(ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
 4917 
 4918 2008-03-21  Laurence Darby  <ldarby>
 4919 
 4920 	* src/type1/t1objs.c (T1_Face_Init): Use `/Weight'.  Patch from
 4921 	Savannah bug #22675.
 4922 
 4923 2008-03-13  Derek Clegg  <dclegg@apple.com>
 4924 
 4925 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
 4926 	Patch from Savannah bug #22541.
 4927 
 4928 2008-03-03  Masatoshi Kimura  <VYV03354@nifty.ne.jp>
 4929 
 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'.
 4933 
 4934 2008-02-29  Werner Lemberg  <wl@gnu.org>
 4935 
 4936 	* docs/CHANGES: Updated.
 4937 
 4938 2008-02-29  Wolf
 4939 
 4940 	Add build support for symbian platform.  From Savannah bug #22440.
 4941 
 4942 	* builds/symbian/*: New files.
 4943 
 4944 2008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4945 
 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.
 4951 
 4952 	* builds/mac/ftmac.c: Ditto.
 4953 
 4954 2008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4955 
 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.
 4962 
 4963 2008-02-18  Victor Stinner  <victor.stinner@haypocalc.com>
 4964 
 4965 	* src/truetype/ttinterp.c (Ins_IUP): Check number of points.  Fix
 4966 	from Savannah bug #22356.
 4967 
 4968 2008-02-17  Jonathan Blow  <jon@number-none.com>
 4969 
 4970 	* src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
 4971 	Check for valid callback pointers.
 4972 
 4973 2008-02-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4974 
 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.
 4983 
 4984 	* builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
 4985 
 4986 2008-02-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 4987 
 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.
 4991 
 4992 	* builds/unix/configure.raw: Print warning if configure is executed
 4993 	with options to specify Carbon functionalities explicitly.
 4994 
 4995 	* docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
 4996 	included automatically and manual replacement is required.
 4997 
 4998 2008-02-11  Werner Lemberg  <wl@gnu.org>
 4999 
 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.
 5004 
 5005 2008-01-18  Sylvain Pasche  <sylvain.pasche@gmail.com>
 5006 
 5007 	* src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
 5008 	mention intra-pixel algorithm.
 5009 
 5010 	* include/freetype/freetype.h (FT_Render_Mode): Mention that
 5011 	FT_Library_SetLcdFilter can be used to reduce fringes.
 5012 
 5013 2008-01-16  Werner Lemberg  <wl@gnu.org>
 5014 
 5015 	* src/raster/ftraster.c (ft_black_render): Check `outline' before
 5016 	using it.  Reported by Allan Yang.
 5017 
 5018 2008-01-12  Werner Lemberg  <wl@gnu.org>
 5019 
 5020 	* src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
 5021 
 5022 2008-01-12  Allan Yang, Jian Hua - SH  <Allan.Yang@fmc.fujitsu.com>
 5023 
 5024 	* src/raster/ftraster.c (ft_black_init)
 5025 	[FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
 5026 
 5027 2008-01-10  Werner Lemberg  <wl@gnu.org>
 5028 
 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.
 5033 
 5034 2008-01-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5035 
 5036 	Formatting suggested by Sean McBride.
 5037 
 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.
 5042 
 5043 2007-12-30  Werner Lemberg  <wl@gnu.org>
 5044 
 5045 	* src/smooth/ftgrays.c (gray_raster_render): Check `outline'
 5046 	correctly.
 5047 
 5048 2007-12-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5049 
 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.
 5055 
 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.
 5058 
 5059 	* src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
 5060 	sort FT_RFork_Ref by their reference IDs.
 5061 
 5062 	(FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
 5063 	sorted by reference ID.
 5064 
 5065 2007-12-14  Werner Lemberg  <wl@gnu.org>
 5066 
 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).
 5071 
 5072 2007-12-06  Fix  <4d876b82@gmail.com>
 5073 
 5074 	Pass options from one configure script to another as-is (not
 5075 	expanded).  This is needed for options like
 5076 	--includedir='${prefix}/include'.
 5077 
 5078 	* builds/unix/detect.mk, configure: Prevent argument expansion in
 5079 	call to the (real) `configure' script.
 5080 
 5081 2007-12-06  Werner Lemberg  <wl@gnu.org>
 5082 
 5083 	* src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
 5084 	TT_USE_BYTECODE_INTERPRETER isn't defined.
 5085 
 5086 2007-12-06  Werner Lemberg  <wl@gnu.org>
 5087 
 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.
 5091 
 5092 	* src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
 5093 	`cff_op_closepath.'
 5094 	(cff_argument_counts): Ditto.
 5095 
 5096 	(cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
 5097 	and 13 (hsbw) which are invalid in Type 2 charstrings.
 5098 
 5099 2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5100 
 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.
 5109 
 5110 2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5111 
 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).
 5116 
 5117 2007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5118 
 5119 	The documents and comments for Mac OS X are improved by Sean
 5120 	McBride.
 5121 
 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.
 5126 
 5127 2007-12-04  Werner Lemberg  <wl@gnu.org>
 5128 
 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.
 5132 
 5133 2007-12-04  Graham Asher  <graham.asher@btinternet.com>
 5134 
 5135 	* src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
 5136 	concatenate error codes.
 5137 
 5138 2007-12-04  Sean McBride  <sean@rogue-research.com>
 5139 
 5140 	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
 5141 	warning.
 5142 
 5143 2007-11-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5144 
 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().
 5154 
 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.
 5164 
 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.
 5172 
 5173 2007-11-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5174 
 5175 	Fix for Carbon incompatibilities since Mac OS X 10.5,
 5176 	proposed by Sean McBride.
 5177 
 5178 	* doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
 5179 
 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.
 5184 
 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>.
 5189 
 5190 	Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
 5191 	genuine macro PATH_MAX.
 5192 
 5193 	Add fallback macro for kATSOptionFlagsUnRestrictedScope which
 5194 	is not found in Mac OS X 10.0.
 5195 
 5196 	Multi-character constants ('POST', 'sfnt' etc) are replaced by
 5197 	64bit constants calculated by FT_MAKE_TAG() macro.
 5198 
 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.
 5203 
 5204 	(FT_ATSFontGetFileReference): If build target is only the systems
 5205 	10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
 5206 
 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.
 5210 
 5211 	(FT_New_Face_From_FSSpec): Ditto.
 5212 
 5213 2007-11-01  Werner Lemberg  <wl@gnu.org>
 5214 
 5215 	* src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere.  This
 5216 	fixes Savannah bug #21485.
 5217 
 5218 2007-10-29  Daniel Svoboda  <dasvo@planeta@cz>
 5219 
 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.
 5224 
 5225 2007-10-21  Werner Lemberg  <wl@gnu.org>
 5226 
 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).
 5233 
 5234 2007-10-20  Werner Lemberg  <wl@gnu.org>
 5235 
 5236 	* src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
 5237 	Add `td.left' element to CSS.
 5238 	(toc_section_enter): Use it.
 5239 
 5240 2007-10-18  David Turner  <david@freetype.org>
 5241 
 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:
 5245 
 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
 5251 
 5252 	Update documentation accordingly.
 5253 
 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.
 5259 
 5260 	(TT_CMap14Rec): Provide array and auxiliary data for result.
 5261 	(tt_cmap14_done, tt_cmap14_ensure): New functions.
 5262 
 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.
 5269 
 5270 2007-10-15  George Williams  <gww@silcom.com>
 5271 
 5272 	Add support for cmap type 14.
 5273 
 5274 	* devel/ftoption.h, include/freetype/config/ftoption.h
 5275 	(TT_CONFIG_CMAP_FORMAT_14): New macro.
 5276 
 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.
 5283 
 5284 	* include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
 5285 	macro.
 5286 
 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.
 5291 
 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.
 5298 
 5299 	* src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
 5300 
 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.
 5312 
 5313 	* docs/CHANGES: Mention cmap 14 support.
 5314 
 5315 2007-10-01  Werner Lemberg  <wl@gnu.org>
 5316 
 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.
 5320 
 5321 2007-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5322 
 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.
 5329 
 5330 2007-08-18  Werner Lemberg  <wl@gnu.org>
 5331 
 5332 	* src/otvalid/otvcommn.c (otv_x_y_ux_sy): Skip context glyphs.  Found
 5333 	by Imran Yousaf.  Fixes Savannah bug #20773.
 5334 
 5335 	(otv_Lookup_validate): Correct handling of LookupType.  Found by
 5336 	Imran Yousaf.  Fixes Savannah bug #20782.
 5337 
 5338 2007-08-17  George Williams  <gww@silcom.com>
 5339 
 5340 	* src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
 5341 	SingleSubstFormat1.
 5342 
 5343 2007-08-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5344 
 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.
 5348 
 5349 2007-08-11  George Williams  <gww@silcom.com>
 5350 
 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'.
 5356 
 5357 	* src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
 5358 	checks.
 5359 
 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.
 5364 
 5365 2007-08-08  Werner Lemberg  <wl@gnu.org>
 5366 
 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.
 5371 
 5372 	* include/freetype/internal/fttrace.h: Define `trace_otvmath'.
 5373 
 5374 	* src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
 5375 
 5376 	* docs/CHANGES: Updated.
 5377 
 5378 2007-08-08  George Williams  <gww@silcom.com>
 5379 
 5380 	Add `MATH' validating support to otvalid module.
 5381 
 5382 	* include/freetype/tttags.h (TTAG_MATH): New macro.
 5383 	* include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
 5384 	(FT_VALIDATE_OT): Updated.
 5385 
 5386 	* src/otvalid/otvmath.c: New file.
 5387 
 5388 	* src/otvalid/otvalid.c: Include otvmath.c.
 5389 	* src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
 5390 
 5391 2007-08-04  Werner Lemberg  <wl@gnu.org>
 5392 
 5393 	* builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
 5394 	Fixes Savannah bug #20686.
 5395 
 5396 2007-08-03  Werner Lemberg  <wl@gnu.org>
 5397 
 5398 	* src/psnames/psmodule.c: Fix usage of
 5399 	FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro.  Reported by Graham Asher.
 5400 
 5401 2007-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5402 
 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.
 5408 
 5409 2007-07-28  Werner Lemberg  <wl@gnu.org>
 5410 
 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.
 5414 
 5415 2007-07-27  Werner Lemberg  <wl@gnu.org>
 5416 
 5417 	* src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
 5418 	first usage.  From Savannah patch #6115.
 5419 
 5420 2007-07-16  Werner Lemberg  <wl@gnu.org>
 5421 
 5422 	* docs/CHANGES: Updated.
 5423 
 5424 2007-07-16  Derek Clegg  <dclegg@apple.com>
 5425 
 5426 	Add new service for getting the ROS from a CID font.
 5427 
 5428 	* include/freetype/config/ftheader.h (FT_CID_H): New macro.
 5429 	* include/freetype/ftcid.h: New file.
 5430 
 5431 	* include/freetype/internal/ftserv.h (FT_SERVICE_CID_H): New macro.
 5432 	* include/freetype/internal/services/svcid.h: New file.
 5433 
 5434 	* src/base/ftcid.c: New file.
 5435 
 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.
 5440 
 5441 	* src/cff/cffload.c (cff_font_done): Free registry and ordering.
 5442 
 5443 	* src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
 5444 
 5445 	* modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
 5446 
 5447 2007-07-11  Derek Clegg  <dclegg@apple.com>
 5448 
 5449 	Add support for postscript name service to CFF driver.
 5450 
 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.
 5455 
 5456 2007-07-07  Werner Lemberg  <wl@gnu.org>
 5457 
 5458 	* src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
 5459 	`target'.  Reported by Sean McBride.
 5460 
 5461 2007-07-06  Werner Lemberg  <wl@gnu.org>
 5462 
 5463 	* src/pfr/pfrcmap.c: Include pfrerror.h.
 5464 
 5465 	* src/autofit/afindic.c: Add some external declarations to pacify
 5466 	`make multi' compilation.
 5467 
 5468 	* src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
 5469 
 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.
 5476 
 5477 	* docs/release: Mention test compilation targets.
 5478 
 5479 2007-07-04  Werner Lemberg  <wl@gnu.org>
 5480 
 5481 	* docs/PROBLEMS: Mention that some PS based fonts can't be
 5482 	handled correctly by FreeType.
 5483 
 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.
 5487 
 5488 	* src/gxvalid/gxvmort1.c
 5489 	(gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
 5490 
 5491 2007-07-03  Werner Lemberg  <wl@gnu.org>
 5492 
 5493 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
 5494 	`round' to pacify compiler.
 5495 
 5496 2007-07-02  Werner Lemberg  <wl@gnu.org>
 5497 
 5498 
 5499 	* Version 2.3.5 released.
 5500 	=========================
 5501 
 5502 
 5503 	Tag sources with `VER-2-3-5'.
 5504 
 5505 	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
 5506 	version number to 2.3.5.
 5507 
 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/.
 5514 
 5515 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
 5516 
 5517 	* builds/unix/configure.raw (version_info): Set to 9:16:3.
 5518 
 5519 2007-07-01  David Turner  <david@freetype.org>
 5520 
 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.
 5524 
 5525 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
 5526 	that created distortions in the bytecode interpreter results.
 5527 
 5528 2007-06-30  David Turner  <david@freetype.org>
 5529 
 5530 	* src/truetype/ttinterp.c (Ins_IUP): Add missing variable
 5531 	initialization.
 5532 
 5533 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Get rid of an
 5534 	infinite loop in the case of degenerate fonts.
 5535 
 5536 2007-06-26  Rahul Bhalerao  <b.rahul.pm@gmail.com>
 5537 
 5538 	Add autofit module for Indic scripts.  This currently just reuses
 5539 	the CJK-specific functions.
 5540 
 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.
 5545 
 5546 	* src/autofit/afindic.c, src/autofit/afindic.h: New files.
 5547 
 5548 	* src/autofit/afglobal.c, src/autofit/aftypes.h,
 5549 	src/autofit/autofit.c: Updated.
 5550 
 5551 	* src/autofit/Jamfile (_sources), * src/autofit/rules.mk
 5552 	(AUTOF_DRV_SRC): Updated.
 5553 
 5554 2007-06-23  David Turner  <david@freetype.org>
 5555 
 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.
 5559 
 5560 2007-06-20  Werner Lemberg  <wl@gnu.org>
 5561 
 5562 	* src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
 5563 	change.
 5564 
 5565 2007-06-19  Werner Lemberg  <wl@gnu.org>
 5566 
 5567 	* src/type1/t1load.c (parse_encoding): Handle one more error.
 5568 
 5569 2007-06-19  Dmitry Timoshkov  <dmitry@codeweavers.com>
 5570 
 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.
 5581 
 5582 2007-07-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 5583 
 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.
 5602 
 5603 2007-06-18  Werner Lemberg  <wl@gnu.org>
 5604 
 5605 	* src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
 5606 	assertion.
 5607 	(ps_parser_to_bytes): Fix error message.
 5608 
 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.
 5614 
 5615 2007-06-18  Werner Lemberg  <wl@gnu.org>
 5616 
 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.
 5623 
 5624 	* src/cff/cffgload.c (cff_decoder_prepare): Fix change from
 5625 	2007-06-06.
 5626 
 5627 2007-06-17  Werner Lemberg  <wl@gnu.org>
 5628 
 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.
 5633 
 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.
 5637 
 5638 2007-06-16  David Turner  <david@freetype.org>
 5639 
 5640 	* src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
 5641 	Prevent integer overflows when rendering very large outlines.
 5642 
 5643 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
 5644 	well-formedness of the contours array when loading a glyph.
 5645 
 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.
 5652 
 5653 2007-06-16  Dmitry Timoshkov  <dmitry@codeweavers.com>
 5654 
 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.
 5663 
 5664 	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
 5665 	loading bitmap .fon files in PE format.
 5666 
 5667 2007-06-15  Dmitry Timoshkov  <dmitry@codeweavers.com>
 5668 
 5669 	* builds/win32/ftdebug.c: Unify debug level handling with other
 5670 	platforms.
 5671 
 5672 2007-06-14  Dmitry Timoshkov  <dmitry@codeweavers.com>
 5673 
 5674 	* builds/win32/ftdebug.c (FT_Message): Send debug output to the
 5675 	console as well as to the debugger.
 5676 
 5677 2007-06-14  Werner Lemberg  <wl@gnu.org>
 5678 
 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.
 5684 
 5685 2007-06-11  David Turner  <david@freetype.org>
 5686 
 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.
 5690 
 5691 
 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.
 5695 
 5696 	* src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
 5697 	(disabled currently).
 5698 
 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'.
 5712 
 5713 	* src/autofit/afhints.h: Updated.
 5714 	(AF_SORT_SEGMENTS): New macro (disabled).
 5715 	(AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
 5716 
 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.
 5720 
 5721 	* src/autofit/afcjk.c: Updated.
 5722 	* src/autofit/aflatin.c: Updated.
 5723 	(af_latin_metrics_scale_dim): Don't reduce scale by 2%.
 5724 
 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.
 5729 
 5730 	* src/autofit/afloader.c: Updated.
 5731 
 5732 2007-06-11  Werner Lemberg  <wl@gnu.org>
 5733 
 5734 	* docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
 5735 
 5736 2007-06-10  David Turner  <david@freetype.org>
 5737 
 5738 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
 5739 	the TrueType glyph loader.
 5740 
 5741 	* include/freetype/config/ftoption.h: Clarify documentation
 5742 	regarding unpatented hinting.
 5743 
 5744 
 5745 	Add new `FT_Face_CheckTrueTypePatents' API.
 5746 
 5747 	* include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
 5748 	declaration.
 5749 
 5750 	* include/freetype/internal/services/svttglyf.h,
 5751 	src/base/ftpatent.c: New files.
 5752 
 5753 	* include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
 5754 	New macro.
 5755 
 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.
 5760 
 5761 	* modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
 5762 	`ftpatent.c'.
 5763 
 5764 2007-06-08  Werner Lemberg  <wl@gnu.org>
 5765 
 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).
 5769 
 5770 
 5771 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
 5772 	[FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
 5773 
 5774 2007-06-07  Werner Lemberg  <wl@gnu.org>
 5775 
 5776 	* src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
 5777 	tt_sbit_decoder_load_image): Protect against integer overflows.
 5778 
 5779 
 5780 	* src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
 5781 	for `x_control' and `y_control'.
 5782 
 5783 2007-06-06  Werner Lemberg  <wl@gnu.org>
 5784 
 5785 	* src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
 5786 
 5787 
 5788 	* src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
 5789 	FreeType error.
 5790 
 5791 
 5792 	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
 5793 	`font_count'.
 5794 
 5795 
 5796 	* src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
 5797 
 5798 
 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.
 5804 
 5805 2007-06-05  Werner Lemberg  <wl@gnu.org>
 5806 
 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.
 5813 
 5814 	* src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
 5815 
 5816 
 5817 	* src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
 5818 
 5819 
 5820 	* src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
 5821 	in case of parsing error.
 5822 	(ps_parser_load_field): Updated.
 5823 
 5824 	* src/type1/t1load.c (parse_font_matrix): Updated.
 5825 
 5826 2007-06-04  Werner Lemberg  <wl@gnu.org>
 5827 
 5828 	* src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
 5829 
 5830 	* src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
 5831 
 5832 2007-06-03  Werner Lemberg  <wl@gnu.org>
 5833 
 5834 	* src/tools/ftrandom/*: Add the `ftrandom' test program written by
 5835 	George Williams (with some modifications).
 5836 
 5837 2007-06-03  Werner Lemberg  <wl@gnu.org>
 5838 
 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.
 5842 
 5843 2007-06-03  Ismail Dönmez  <ismail@pardus.org.tr>
 5844 
 5845 	* src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
 5846 
 5847 2007-06-02  Werner Lemberg  <wl@gnu.org>
 5848 
 5849 	* include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
 5850 	FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
 5851 
 5852 	* src/bdf/bdflib.c (bdf_load_font): Use them.
 5853 
 5854 	* src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
 5855 
 5856 2007-06-01  Werner Lemberg  <wl@gnu.org>
 5857 
 5858 	* src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
 5859 	(FTC_CMapCache_Lookup): Remove unused code.
 5860 
 5861 2007-06-01  Sean McBride  <sean@rogue-research.com>
 5862 
 5863 	* src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
 5864 	unused.
 5865 
 5866 2007-06-01  Werner Lemberg  <wl@gnu.org>
 5867 
 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.
 5871 
 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.
 5874 
 5875 2007-05-30  Werner Lemberg  <wl@gnu.org>
 5876 
 5877 	* src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
 5878 	against too small binary data strings.
 5879 
 5880 	* src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
 5881 
 5882 2007-05-28  David Turner  <david@freetype.org>
 5883 
 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.
 5887 
 5888 	* docs/CHANGES: Updated.
 5889 
 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!
 5894 
 5895 2007-05-25  Werner Lemberg  <wl@gnu.org>
 5896 
 5897 	* docs/CHANGES: Updated.
 5898 
 5899 2007-05-24  Werner Lemberg  <wl@gnu.org>
 5900 
 5901 	* src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
 5902 	into TT_USE_BYTECODE_INTERPRETER preprocessor block.
 5903 
 5904 2007-05-24  Graham Asher  <graham.asher@btinternet.com>
 5905 
 5906 	* src/truetype/ttobjs.c (tt_size_ready_bytecode)
 5907 	[!TT_USE_BYTECODE_INTERPRETER]: Removed.  Unused.
 5908 
 5909 2007-05-22  David Turner  <david@freetype.org>
 5910 
 5911 	* src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
 5912 	avoid crashes in case the bytecode interpreter is not used.
 5913 
 5914 
 5915 	Avoid heap blowup with very large .Z font files.  This fixes
 5916 	Savannah bug #19910.
 5917 
 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.
 5922 
 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.
 5926 
 5927 2007-05-20  Ismail Dönmez  <ismail@pardus.org.tr>
 5928 
 5929 	* src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
 5930 	(ps_dimension_set_mask_bits): Remove `const'.
 5931 
 5932 2007-05-19  Werner Lemberg  <wl@gnu.org>
 5933 
 5934 	* src/sfnt/ttmtx.c (tt_face_get_metrics)
 5935 	[!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
 5936 
 5937 2007-05-19  Derek Clegg  <dclegg@apple.com>
 5938 
 5939 	Savannah patch #5929.
 5940 
 5941 	* include/freetype/tttables.h, src/base/ftobjs.c
 5942 	(FT_Get_CMap_Format): New function.
 5943 
 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.
 5948 
 5949 2007-05-19  Werner Lemberg  <wl@gnu.org>
 5950 
 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.
 5954 
 5955 2007-05-16  Werner Lemberg  <wl@gnu.org>
 5956 
 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.
 5962 
 5963 2007-05-15  David Turner  <david@freetype.org>
 5964 
 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 of relying on the locale-dependent functions provided by
 5969 	<ctypes.h>.
 5970 
 5971 2007-05-15  Graham Asher  <graham.asher@btinternet.com>
 5972 
 5973 	* src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
 5974 	variable.
 5975 	* src/autofit/afloader.c (af_loader_load_g): Ditto.
 5976 
 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.
 5982 
 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.
 5988 
 5989 	* src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
 5990 	Use `|' operator instead of `^' to set it.
 5991 	Update all users.
 5992 
 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.
 5995 
 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.
 6000 
 6001 2007-05-13  Derek Clegg  <dclegg@apple.com>
 6002 
 6003 	* src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
 6004 	if FT_RENDER_POOL_SIZE is > 0.  From Savannah patch #5928.
 6005 
 6006 2007-05-11  David Turner  <david@freetype.org>
 6007 
 6008 	* src/cache/ftcbasic.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.
 6013 
 6014 	* src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
 6015 	`size->cvt_ready'.  Reported by Boris Letocha.
 6016 
 6017 2007-05-09  Graham Asher  <graham.asher@btinternet.com>
 6018 
 6019 	* src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
 6020 	(af_latin_metrics_scale_dim): Fix compiler warnings.
 6021 
 6022 2007-05-06  Werner Lemberg  <wl@gnu.org>
 6023 
 6024 	* builds/win32/visualce/freetype.sln: Removed, as requested by
 6025 	Vincent.
 6026 
 6027 2007-05-04  Vincent RICHOMME  <richom.v@free.fr>
 6028 
 6029 	* builds/win32/visualce/*: Add Visual C++ project files for Pocket
 6030 	PC targets.
 6031 
 6032 	* docs/CHANGES: Document them.
 6033 
 6034 2007-05-04  <harry@kdevelop.org>
 6035 
 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.
 6038 
 6039 2007-05-03  Werner Lemberg  <wl@gnu.org>
 6040 
 6041 	* src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
 6042 	* include/freetype/freetype.h (FT_Set_Char_Size): Update
 6043 	documentation.
 6044 
 6045 2007-04-28  Victor Stinner  <victor.stinner@inl.fr>
 6046 
 6047 	* src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
 6048 	`cmap'.
 6049 
 6050 2007-04-27  Werner Lemberg  <wl@gnu.org>
 6051 
 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.
 6056 
 6057 2007-04-26  Werner Lemberg  <wl@gnu.org>
 6058 
 6059 	* src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
 6060 	zero in case of error.  This fixes Savannah bug #19689.
 6061 
 6062 2007-04-25  Boris Letocha  <b.letocha@cz.gmc.net>
 6063 
 6064 	* src/truetype/ttobjs.c: Fix a typo that created a speed regression
 6065 	in the TrueType bytecode loader.
 6066 
 6067 2007-04-10  Martin Horak  <horakm@centrum.cz>
 6068 
 6069 	* src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
 6070 	Ignore `hhea' table.  This fixes Savannah bug #19261.
 6071 
 6072 2007-04-09  Werner Lemberg  <wl@gnu.org>
 6073 
 6074 
 6075 	* Version 2.3.4 released.
 6076 	=========================
 6077 
 6078 
 6079 	Tag sources with `VER-2-3-4'.
 6080 
 6081 	* docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
 6082 	version number to 2.3.4.
 6083 
 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/.
 6087 
 6088 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
 6089 
 6090 	* builds/unix/configure.raw (version_info): Set to 9:15:3.
 6091 
 6092 2007-04-09  Martin Horak  <horakm@centrum.cz>
 6093 
 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).
 6097 
 6098 2007-04-06  David Turner  <david@freetype.org>
 6099 
 6100 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite
 6101 	bug (Savannah bug #19536).
 6102 
 6103 2007-04-04  Werner Lemberg  <wl@gnu.org>
 6104 
 6105 
 6106 	* Version 2.3.3 released.
 6107 	=========================
 6108 
 6109 
 6110 	Tag sources with `VER-2-3-3'.
 6111 
 6112 	* docs/CHANGES: Mention CVE-2007-1351.
 6113 
 6114 2007-04-03  David Turner  <david@freetype.org>
 6115 
 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.
 6119 
 6120 2007-04-02  David Turner  <david@freetype.org>
 6121 
 6122 	Add special code to detect `extra-light' fonts and do not snap their
 6123 	stem widths too much to avoid bizarre hinting effects.
 6124 
 6125 	* src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
 6126 	`extra_light' members.
 6127 
 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'.
 6132 
 6133 2007-03-28  David Turner  <david@freetype.org>
 6134 
 6135 	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
 6136 	padding.
 6137 
 6138 2007-03-28  Werner Lemberg  <wl@gnu.org>
 6139 
 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.
 6146 
 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/.
 6151 
 6152 	* docs/CHANGES: Mention ftdiff.
 6153 
 6154 2007-03-26  David Turner  <david@freetype.org>
 6155 
 6156 	* src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
 6157 	corresponding code.
 6158 	(Ins_MD): Last regression fix.
 6159 
 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.
 6165 
 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.
 6170 
 6171 	* docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
 6172 	documentation and bump version number to 2.3.3.
 6173 
 6174 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
 6175 
 6176 	* builds/unix/configure.raw (version_info): Set to 9:14:3.
 6177 
 6178 2007-03-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6179 
 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.
 6184 
 6185 2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6186 
 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 	https://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
 6191 
 6192 2007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6193 
 6194 	* builds/unix/ftconfig.in: Suppress SGI compiler's warning against
 6195 	setjmp, proposed by Sean McBride:
 6196 	https://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
 6197 
 6198 2007-03-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6199 
 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.
 6203 
 6204 2007-03-18  David Turner  <david@freetype.org>
 6205 
 6206 	* src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
 6207 	fix; testing still needed.
 6208 
 6209 	* src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
 6210 
 6211 2007-03-17  David Turner  <david@freetype.org>
 6212 
 6213 	* src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
 6214 	(undocumented) twilight zone special case.
 6215 
 6216 2007-03-09  Werner Lemberg  <wl@gnu.org>
 6217 
 6218 
 6219 	* Version 2.3.2 released.
 6220 	=========================
 6221 
 6222 
 6223 	Tag sources with `VER-2-3-2'.
 6224 
 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/.
 6229 
 6230 2007-03-08  David Turner  <david@freetype.org>
 6231 
 6232 	* docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
 6233 
 6234 	* builds/unix/configure.raw (version_info): Set to 9:13:3.
 6235 
 6236 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
 6237 
 6238 	* README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
 6239 
 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>.
 6243 
 6244 
 6245 2007-03-05  Werner Lemberg  <wl@gnu.org>
 6246 
 6247 	* include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
 6248 	macro for `strstr'.
 6249 
 6250 	* src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
 6251 	`trick_names', as suggested by Ivan Nincic.
 6252 
 6253 2007-03-05  David Turner  <david@freetype.org>
 6254 
 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>.
 6258 
 6259 	* src/truetype/ttobjs.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>.
 6263 
 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>.
 6267 
 6268 2007-02-21  David Turner  <david@freetype.org>
 6269 
 6270 	* src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
 6271 	of small and ghost stems in the Postscript interpreter.
 6272 
 6273 2007-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6274 
 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.
 6278 
 6279 2007-02-16  Werner Lemberg  <wl@gnu.org>
 6280 
 6281 	* src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
 6282 	* src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
 6283 
 6284 2007-02-14  David Turner  <david@freetype.org>
 6285 
 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.
 6289 
 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.
 6294 
 6295 2007-02-12  Werner Lemberg  <wl@gnu.org>
 6296 
 6297 	* src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
 6298 	warnings.
 6299 
 6300 	* src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
 6301 	(bdf_interpret_style): Ditto.
 6302 
 6303 2007-02-12  David Turner  <david@freetype.org>
 6304 
 6305 	Simplify projection and dual-projection code interface.
 6306 
 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.
 6315 
 6316 
 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.
 6320 
 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).
 6325 
 6326 
 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.
 6330 
 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.
 6337 
 6338 	* src/bdf/bdfdrivr.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.
 6346 
 6347 	* builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
 6348 
 6349 2007-02-11  Werner Lemberg  <wl@gnu.org>
 6350 
 6351 	* src/autofit/afloader.c (af_loader_load_g): Don't change width for
 6352 	non-spacing glyphs.
 6353 
 6354 2007-02-07  Tom Parker  <palfrey@tevp.net>
 6355 
 6356 	* src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
 6357 	pointer.
 6358 
 6359 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6360 
 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.
 6368 
 6369 	* src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
 6370 	to avoid warning in building FreeType.
 6371 	* builds/mac/ftmac.c: Ditto.
 6372 
 6373 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6374 
 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>.
 6378 
 6379 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6380 
 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.
 6387 
 6388 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6389 
 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.
 6393 
 6394 2007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6395 
 6396 	* builds/unix/configure.raw: Check whether Mac OS X system headers
 6397 	can be built under ANSI C mode.
 6398 
 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.
 6402 
 6403 2007-02-01  Werner Lemberg  <wl@gnu.org>
 6404 
 6405 	* include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
 6406 	Explain why applications shouldn't use it.  Found by Alexei.
 6407 
 6408 2007-02-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
 6409 
 6410 	* builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
 6411 	message.
 6412 
 6413 	* src/gxvalid/gxvmort1.c
 6414 	(gxv_mort_subtable_type1_substTable_validate): Fix debugging
 6415 	message.
 6416 
 6417 2007-01-31  Werner Lemberg  <wl@gnu.org>
 6418 
 6419 
 6420 	* Version 2.3.1 released.
 6421 	=========================
 6422 
 6423 
 6424 	Tag sources with `VER-2-3-1-FINAL'.
 6425 
 6426 	* builds/win32/visualc/freetype.dsp,
 6427 	builds/win32/visualc/freetype.vcproj: s/230/231/.
 6428 	* builds/win32/visualc/index.html: s/221/231/.
 6429 
 6430 	* vms_make.com: Add `ftgasp'.
 6431 
 6432 2007-01-30  David Turner  <david@freetype.org>
 6433 
 6434 	Tag sources with VER-2-3-1 to prepare release.
 6435 
 6436 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
 6437 
 6438 	* docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
 6439 	s/2.3.0/2.3.1/.
 6440 
 6441 	* builds/unix/configure.raw (version_info): Set to 9:12:3.
 6442 
 6443 
 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.
 6449 
 6450 	* docs/CHANGES: Update accordingly.
 6451 
 6452 2007-01-25  David Turner  <david@freetype.org>
 6453 
 6454 	For light auto-hinting, improve glyph advance widths and resurrect
 6455 	normal/full hinting to its normal quality.
 6456 
 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'.
 6461 
 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.
 6465 
 6466 	* src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
 6467 	(af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
 6468 
 6469 2007-01-25  Werner Lemberg  <wl@gnu.org>
 6470 
 6471 	* docs/release: Updated -- Savannah uses a new uploading scheme.
 6472 
 6473 2007-01-25  David Turner  <david@freetype.org>
 6474 
 6475 	* src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
 6476 
 6477 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
 6478 	<cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
 6479 	functions.
 6480 
 6481 	* docs/CHANGES: Document light auto-hinting improvement.
 6482 
 6483 2007-01-25  Werner Lemberg  <wl@gnu.org>
 6484 
 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.
 6490 
 6491 	* docs/CHANGES: Document it.
 6492 
 6493 2007-01-23  David Turner  <david@freetype.org>
 6494 
 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.
 6498 
 6499 
 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.
 6502 
 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.
 6507 
 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'.
 6513 
 6514 2007-01-21  Werner Lemberg  <wl@gnu.org>
 6515 
 6516 	* ChangeLog: Split off older entries into...
 6517 	* ChangeLog.22: This new file.
 6518 
 6519 2007-01-21  Werner Lemberg  <wl@gnu.org>
 6520 
 6521 	* docs/CHANGES: Document SHZ fix.
 6522 
 6523 2007-01-21  George Williams  <gww@silcom.com>
 6524 
 6525 	* src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
 6526 	points.
 6527 
 6528 2007-01-21  Werner Lemberg  <wl@gnu.org>
 6529 
 6530 	* src/sfnt/ttmtx.c (tt_face_get_metrics)
 6531 	[!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
 6532 
 6533 2007-01-17  Werner Lemberg  <wl@gnu.org>
 6534 
 6535 
 6536 	* Version 2.3.0 released.
 6537 	=========================
 6538 
 6539 
 6540 	Tag sources with `VER-2-3-0-FINAL'.
 6541 
 6542 2007-01-17  Werner Lemberg  <wl@gnu.org>
 6543 
 6544 	* docs/release: Updated.
 6545 
 6546 2007-01-16  David Turner  <david@freetype.org>
 6547 
 6548 	* src/autofit/aflatin.c (af_latin_hints_compute_segments),
 6549 	src/cff/cffdrivr.c (cff_ps_get_font_info), src/truetype/ttobjs.c
 6550 	(tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
 6551 	warnings.
 6552 
 6553 2007-01-15  Detlef Würkner  <TetiSoft@apg.lahn.de>
 6554 
 6555 	* builds/amiga/makefile, builds/amiga/makefile.os4,
 6556 	builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
 6557 
 6558 	* builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
 6559 
 6560 2007-01-14  Detlef Würkner  <TetiSoft@apg.lahn.de>
 6561 
 6562 	Fix various compiler warnings.
 6563 
 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/.
 6568 
 6569 	* src/gxvalid/gxvmorx5.c
 6570 	(gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
 6571 
 6572 	* src/truetype/ttinterp.c (Compute_Point_Displacement),
 6573 	src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
 6574 	uninitialized variables.
 6575 
 6576 2007-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6577 
 6578 	* docs/CHANGES, docs/INSTALL.MAC: Improvements.
 6579 
 6580 2007-01-13  Werner Lemberg  <wl@gnu.org>
 6581 
 6582 	* src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
 6583 	versions up to 0x3FF without complaining.
 6584 
 6585 2007-01-13  Derek Clegg  <dclegg@apple.com>
 6586 
 6587 	Add FT_Get_PS_Font_Info interface to CFF driver.
 6588 
 6589 	* src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
 6590 	(CFF_FontRec): Add `font_info' field.
 6591 
 6592 	* src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
 6593 	(cff_font_done): Free font->font_info if necessary.
 6594 
 6595 	* src/cff/cffdrivr.c (cff_ps_get_font_info): New function.
 6596 	(cff_service_ps_info): Register cff_ps_get_font_info.
 6597 
 6598 2007-01-13  Werner Lemberg  <wl@gnu.org>
 6599 
 6600 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
 6601 	with C++ compiler.
 6602 
 6603 	* src/autofit/afhints.c (af_glyph_hints_dump_segments,
 6604 	af_glyph_hints_dump_edges): Ditto.
 6605 
 6606 	* src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
 6607 	`modules.cfg').
 6608 
 6609 	* src/sfnt/ttsbit0.h: Remove.
 6610 
 6611 	* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
 6612 
 6613 2007-01-12  David Turner  <david@freetype.org>
 6614 
 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.
 6618 
 6619 	* src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
 6620 	compilation warning.
 6621 
 6622 2007-01-12  Werner Lemberg  <wl@gnu.org>
 6623 
 6624 	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
 6625 	`automake' CVS module from sources.redhat.com.
 6626 
 6627 2007-01-11  Werner Lemberg  <wl@gnu.org>
 6628 
 6629 	* src/type1/t1load.c (is_space): Removed.
 6630 	(parse_encoding, parse_charstrings): Use IS_PS_DELIM.
 6631 	(parse_charstrings): Use IS_PS_TOKEN.
 6632 
 6633 
 6634 	* autogen.sh: Avoid bash specific syntax.
 6635 
 6636 2007-01-11  David Turner  <david@freetype.org>
 6637 
 6638 	* docs/CHANGES: Small update.
 6639 
 6640 	* builds/unix/configure.raw (version_info): Set to 9:11:3.
 6641 
 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.
 6645 
 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.
 6649 
 6650 2007-01-10  David Turner  <david@freetype.org>
 6651 
 6652 	* all-sources: Tag all sources with VER-2-3-0-RC1 and
 6653 	VER-2-3-0.
 6654 
 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.
 6658 
 6659 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
 6660 	(FREETYPE_PATCH): Set to 0.
 6661 
 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.
 6665 
 6666 	* src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
 6667 	which created an endless loop with some malformed font files.
 6668 
 6669 2007-01-10  Derek Clegg  <dclegg@apple.com>
 6670 
 6671 	* src/type1/t1load.c (T1_Get_MM_Var): Always return fixed-point
 6672 	values.
 6673 
 6674 2007-01-08  David Turner  <david@freetype.org>
 6675 
 6676 	* docs/CHANGES: Updated.
 6677 
 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.
 6681 
 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.
 6685 
 6686 	* include/freetype/config/ftheader.h (FT_GASP_H): New macro for
 6687 	<freetype/ftgasp.h>.
 6688 
 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.
 6693 
 6694 2007-01-07  Werner Lemberg  <wl@gnu.org>
 6695 
 6696 	* src/cid/cidparse.c (cid_parser_new): Improve error message for
 6697 	Type 11 fonts.
 6698 	Scan for `/sfnts' token.
 6699 
 6700 2007-01-07  Werner Lemberg  <wl@gnu.org>
 6701 
 6702 	* src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
 6703 
 6704 2007-01-06  Werner Lemberg  <wl@gnu.org>
 6705 
 6706 	* src/cff/cffload.c (cff_index_init): Remove unused variable.
 6707 	(cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
 6708 
 6709 2007-01-04  David Turner  <david@freetype.org>
 6710 
 6711 	* src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
 6712 	correctly.  This fixes Savannah bug #17876.
 6713 
 6714 
 6715 	Do not allocate interpreter-specific tables in memory if we are not
 6716 	going to load glyphs with the bytecode interpreter anyway.
 6717 
 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'.
 6729 
 6730 
 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.
 6735 
 6736 	* include/freetype/internal/tttypes.h (TT_FaceRec): Add members
 6737 	`horz_metrics_offset' and `vert_metrics_offset'.
 6738 	* src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
 6739 	Updated.
 6740 
 6741 
 6742 	* src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
 6743 
 6744 
 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.
 6748 
 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'.
 6753 
 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.
 6765 
 6766 	* src/cff/cffgload.c (cff_slot_load): Updated.
 6767 
 6768 2007-01-04  David Turner  <david@freetype.org>
 6769 
 6770 	* docs/INSTALL.UNIX: Simplify some parts, add reference to
 6771 	autogen.sh and pointer to README.CVS.
 6772 
 6773 	* README.CVS: Add common problem description and solution
 6774 	when running autogen.sh.
 6775 
 6776 	* docs/INSTALL: Add reference to MacOS X.
 6777 
 6778 	* docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
 6779 
 6780 	* docs/TODO: Remove obsolete items.
 6781 
 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.
 6794 
 6795 	* src/smooth/ftgrays.c (TRaster): Replaced with...
 6796 	(TWorker): This.
 6797 	Remove `memory'.
 6798 	(TRaster): New structure.
 6799 
 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.
 6805 
 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.
 6811 
 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.
 6815 
 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.
 6820 
 6821 2007-01-02  Werner Lemberg  <wl@gnu.org>
 6822 
 6823 	* src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
 6824 	Remove compiler warning.
 6825 
 6826 2007-01-02  David Turner  <david@freetype.org>
 6827 
 6828 	* src/sfnt/sfobjs.c: Add documentation comment.
 6829 
 6830 2006-12-31  Masatake YAMATO  <jet@gyve.org>
 6831 
 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'.
 6837 
 6838 2006-12-22  David Turner  <david@freetype.org>
 6839 
 6840 	* src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
 6841 	warnings.
 6842 
 6843 	* builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
 6844 	to avoid deprecation warnings with Visual C++ 8.
 6845 
 6846 2006-12-16  Anders Kaseorg  <anders@kaseorg.com>
 6847 
 6848 	* src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
 6849 	[FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
 6850 
 6851 2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6852 
 6853 	* include/freetype/internal/services/svotval.h: Add `volatile' to
 6854 	sync with the modification by Jens Claudius on 2006-08-22; cf.
 6855 	  https://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
 6856 
 6857 2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6858 
 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.
 6864 
 6865 2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6866 
 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.
 6874 
 6875 2006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 6876 
 6877 	* src/base/ftobjs.c: Improvement of resource fork handler for
 6878 	POSIX, cf.
 6879 	  https://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.
 6883 
 6884 2006-12-10  Werner Lemberg  <wl@gnu.org>
 6885 
 6886 	* builds/toplevel.mk (version): Protect against `distclean' target.
 6887 
 6888 2006-12-09  Werner Lemberg  <wl@gnu.org>
 6889 
 6890 	* builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
 6891 	or `type'.
 6892 
 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.
 6896 
 6897 2006-12-08  Werner Lemberg  <wl@gnu.org>
 6898 
 6899 	* builds/toplevel.mk (dist): Extract version number from freetype.h.
 6900 
 6901 2006-12-08  Vladimir Volovich  <vvv@vsu.ru>
 6902 
 6903 	* src/tools/apinames.c (State): Remove final comma in structure --
 6904 	xlc v5 under AIX 4.3 doesn't like this.
 6905 
 6906 2006-12-07  David Turner  <david@freetype.org>
 6907 
 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).
 6911 
 6912 2006-12-03  Werner Lemberg  <wl@gnu.org>
 6913 
 6914 	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
 6915 
 6916 2006-12-01  Werner Lemberg  <wl@gnu.org>
 6917 
 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.
 6921 
 6922 
 6923 	* include/freetype/ftxf86.h: Fix and extend comment so that it
 6924 	appears in the documentation.
 6925 
 6926 	* include/freetype/ftchapters.h: Add `font_format' section.
 6927 
 6928 
 6929 	* src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
 6930 	to TOC in index page.
 6931 
 6932 2006-11-28  David Turner  <david@freetype.org>
 6933 
 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.
 6936 
 6937 	* src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
 6938 
 6939 	* src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
 6940 	ones instead.
 6941 
 6942 	* src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
 6943 	variable.
 6944 
 6945 2006-11-26  Pierre Hanser  <hanser@club-internet.fr>
 6946 
 6947 	* src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
 6948 
 6949 2006-11-25  David Turner  <david@freetype.org>
 6950 
 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.
 6955 
 6956 2006-11-23  David Turner  <david@freetype.org>
 6957 
 6958 	* src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
 6959 	src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
 6960 
 6961 	* src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
 6962 	Emit more sensible information.
 6963 
 6964 	* src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
 6965 
 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.
 6974 
 6975 2006-11-22  Werner Lemberg  <wl@gnu.org>
 6976 
 6977 	Fix Savannah bug #15553.
 6978 
 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'.
 6982 
 6983 2006-11-18  Werner Lemberg  <wl@gnu.org>
 6984 
 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.
 6988 
 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'.
 6996 
 6997 2006-11-13  David Turner  <david@freetype.org>
 6998 
 6999 	* src/truetype/ttinterp.c (FIX_BYTECODE): Undefine.  The interpreter
 7000 	`enhancements' are still too buggy for general use.
 7001 
 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.
 7006 
 7007 	* include/freetype/ftlcdfil.h: Update documentation.
 7008 
 7009 2006-11-10  David Turner  <david@freetype.org>
 7010 
 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).
 7017 
 7018 	* include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
 7019 	second parameter to an enum type.
 7020 
 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_SetLcdFilter): Update parameters.
 7027 	Handle new filter modes.
 7028 
 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.
 7033 
 7034 	* src/smooth/ftsmooth.c (ft_smooth_render_generic)
 7035 	[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
 7036 	Other minor improvements.
 7037 
 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.
 7042 
 7043 2006-11-09  David Turner  <david@freetype.org>
 7044 
 7045 	* src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
 7046 	typo which created a variable-used-before-initialized bug.
 7047 
 7048 2006-11-07  Zhe Su  <james.su@gmail.com>
 7049 
 7050 	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
 7051 	also.
 7052 
 7053 2006-11-03  Werner Lemberg  <wl@gnu.org>
 7054 
 7055 	* src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
 7056 
 7057 2006-11-02  David Turner  <david@freetype.org>
 7058 
 7059 	Add a few tweaks to better handle serif fonts.
 7060 	Add more debugging messages.
 7061 
 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.
 7069 
 7070 	* src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
 7071 	_af_debug_disable_blue_hints, and _af_debug_hints variables.
 7072 
 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...
 7076 
 7077 	* include/freetype/internal/ftcalc.h (ft_corner_orientation,
 7078 	ft_corner_is_flat): These declarations.
 7079 
 7080 	* src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
 7081 	Comment out.  Replaced by...
 7082 
 7083 	* src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
 7084 	These functions.  Update all callers.
 7085 	(FT_Add64) [!FT_LONG64]: Simplify.
 7086 
 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.
 7090 
 7091 	* src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
 7092 
 7093 	* src/autofit/afloader.c (af_loader_init, af_loader_done)
 7094 	[AF_DEBUG]: Set _af_debug_hints.
 7095 
 7096 
 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.
 7100 
 7101 
 7102 	* src/gzip/inftrees.c (huft_build): Remove compiler warning.
 7103 
 7104 2006-10-24  Werner Lemberg  <wl@gnu.org>
 7105 
 7106 	* src/cff/cffload.c (cff_encoding_load): Remove unused variable.
 7107 
 7108 	* src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
 7109 	as argument.
 7110 
 7111 2006-10-23  Zhe Su  <zsu@novell.com>
 7112 
 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.
 7117 
 7118 2006-10-23  David Turner  <david@freetype.org>
 7119 
 7120 	Speed up the CFF font loader.  With some large CFF fonts,
 7121 	FT_Open_Face is now more than three times faster.
 7122 
 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.
 7129 
 7130 	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
 7131 	with FT_NEXT_XXX.
 7132 
 7133 
 7134 	Speed up the Postscript hinter, with more than 100% speed increase
 7135 	on my machine.
 7136 
 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.
 7148 
 7149 2006-10-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7150 
 7151 	* src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
 7152 	`error' with FT_Err_Ok.
 7153 
 7154 2006-10-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7155 
 7156 	* docs/INSTALL.CROSS: New document file for cross-building.
 7157 
 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.
 7162 
 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.
 7166 
 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).
 7170 
 7171 2006-10-12  Werner Lemberg  <wl@gnu.org>
 7172 
 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.
 7176 
 7177 2006-10-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7178 
 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.
 7182 
 7183 	* builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
 7184 
 7185 	* builds/unix/freetype-config.in: Ditto.
 7186 
 7187 2006-10-11  Werner Lemberg  <wl@gnu.org>
 7188 
 7189 	* devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
 7190 	development.
 7191 
 7192 2006-10-03  Jens Claudius  <jens.claudius@yahoo.com>
 7193 
 7194 	* include/freetype/config/ftstdlib.h: Cast away volatileness from
 7195 	argument to ft_setjmp.
 7196 
 7197 	* include/freetype/internal/ftvalid.h: Add comment that
 7198 	ft_validator_run must not be used.
 7199 
 7200 2006-10-01  Werner Lemberg  <wl@gnu.org>
 7201 
 7202 	* src/base/ftbase.c: Undo change from 2006-09-30.
 7203 
 7204 	* src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
 7205 
 7206 2006-09-30  David Turner  <david@freetype.org>
 7207 
 7208 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
 7209 	s/unpatented_hinting/ignore_unpatented_hinter/.
 7210 	Update all callers.
 7211 
 7212 	* src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
 7213 	auto-hinting shall be used or not.
 7214 
 7215 	* src/truetype/ttobjs.c (tt_face_init): Ditto.
 7216 
 7217 2006-09-30  Werner Lemberg  <wl@gnu.org>
 7218 
 7219 	* src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
 7220 	in use).
 7221 
 7222 	* src/base/ftbase.c: Include `ftlcdfil.c'.
 7223 
 7224 2006-09-29  Werner Lemberg  <wl@gnu.org>
 7225 
 7226 	* src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
 7227 	overlapping segments.  Bug reported by Stefan Koch.
 7228 
 7229 2006-09-28  David Turner  <david@freetype.org>
 7230 
 7231 	Fix a bug in the automatic unpatented hinting support which prevents
 7232 	normal bytecode hinting to work properly.
 7233 
 7234 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
 7235 	s/force_autohint/unpatented_hinting/.  Update all callers.
 7236 
 7237 	* src/base/ftobjs.c (FT_Load_Glyph): Updated code.
 7238 
 7239 	* src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
 7240 
 7241 2006-09-27  David Turner  <david@freetype.org>
 7242 
 7243 	* include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
 7244 
 7245 
 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.
 7251 
 7252 	* include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
 7253 
 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'.
 7258 
 7259 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
 7260 	`hmul' and `vmul'.
 7261 
 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'.
 7266 
 7267 	* include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
 7268 	pointing to <freetype/ftlcdfil.h>.
 7269 
 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.
 7272 
 7273 	* modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
 7274 
 7275 2006-09-26  David Bustin
 7276 
 7277 	* src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
 7278 	correctly.  Reported as Savannah bug #17843.
 7279 
 7280 2006-09-26  David Turner  <david@freetype.org>
 7281 
 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.
 7286 
 7287 	* src/autofit/afmodule.c (_af_debug_disable_horz_hints,
 7288 	_af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
 7289 
 7290 	* src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
 7291 
 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.
 7297 
 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.
 7303 
 7304 	* docs/CHANGES: Updated.
 7305 
 7306 2006-09-18  Garrick Meeker  <garrick@digitalanarchy.com>
 7307 
 7308 	* src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
 7309 	LWFN fails and both are available.
 7310 
 7311 2006-09-11  David Turner  <david@freetype.org>
 7312 
 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.
 7316 
 7317 	If the font uses another name entry with language_id == English, it
 7318 	will be selected correctly, though.
 7319 
 7320 	* src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
 7321 	selection for `mingli.ttf'.
 7322 
 7323 2006-09-05  Werner Lemberg  <wl@gnu.org>
 7324 
 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').
 7329 
 7330 	* src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
 7331 
 7332 2006-09-05  David Turner  <david@freetype.org>
 7333 
 7334 	Minor source cleanups and optimizations.
 7335 
 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.
 7348 
 7349 2006-09-04  David Turner  <david@freetype.org>
 7350 
 7351 	* src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
 7352 	64bit processors.
 7353 
 7354 2006-09-03  Werner Lemberg  <wl@gnu.org>
 7355 
 7356 	* devel/ftoption.h: Synchronize with
 7357 	include/freetype/config/ftoption.h.
 7358 
 7359 	* src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
 7360 	variable declaration.
 7361 	(gray_convert_glyph): Fix compiler warnings.
 7362 
 7363 2006-09-01  David Turner  <david@freetype.org>
 7364 
 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.
 7368 
 7369 	* src/smooth/ftgrays.c: Optimize the performance of the anti-aliased
 7370 	rasterizer.  The speed improvement is between 15% and 25%, depending
 7371 	on the font data.
 7372 
 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.
 7389 
 7390 2006-08-29  Dr. Werner Fink  <werner@suse.de>
 7391 
 7392 	* configure: Make it possible to handle configure options which
 7393 	have strings containing spaces.
 7394 
 7395 2006-08-27  David Turner  <david@freetype.org>
 7396 
 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.
 7400 
 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/.
 7407 
 7408 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
 7409 	member `force_autohint'.
 7410 
 7411 	* src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
 7412 
 7413 	* src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
 7414 	against a list of font names which need the bytecode interpreter.
 7415 
 7416 2006-08-27  Jens Claudius  <jens.claudius@yahoo.com>
 7417 
 7418 	Fix miscellaneous compiler warnings.
 7419 
 7420 	* include/freetype/internal/ftobjs.h: Close comment with `*/' to
 7421 	avoid `/* in comment' compiler warning.
 7422 
 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.
 7426 
 7427 	* src/base/ftobjs.c (t_validator_error): Cast away
 7428 	volatileness of argument to ft_longjmp.  Spotted by Werner
 7429 	`Putzfrau' Lemberg.
 7430 
 7431 	* src/bdf/bdflib.c (bdf_load_font): Initialize local
 7432 	variable `lineno'.
 7433 
 7434 	* src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
 7435 	`error' as volatile.
 7436 
 7437 2006-08-27  Werner Lemberg  <wl@gnu.org>
 7438 
 7439 	* builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
 7440 	Reported by Jens.
 7441 
 7442 2006-08-22  Jens Claudius  <jens.claudius@yahoo.com>
 7443 
 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.
 7447 
 7448 	* include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
 7449 	pointer to a volatile object.
 7450 
 7451 	* src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
 7452 	`table' a pointer to a volatile object.
 7453 
 7454 	* src/otvalid/otvmod.c (otv_load_table): Make function argument
 7455 	`table' a pointer to a volatile object.
 7456 
 7457 2006-08-18  Jens Claudius  <jens.claudius@yahoo.com>
 7458 
 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'.
 7464 
 7465 	* src/otvalid/otvmod.c (otv_validate): Same for function parameter
 7466 	`face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
 7467 	and 'valid'.
 7468 
 7469 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
 7470 	`cmap'.
 7471 
 7472 2006-08-16  David Turner  <david@freetype.org>
 7473 
 7474 	* src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
 7475 	warnings.
 7476 
 7477 	* src/base/ftobjs.c (ft_validator_run): Disable function; it is
 7478 	buggy by design.  Always return -1.
 7479 
 7480 
 7481 	Improvements to native TrueType hinting.  This is a first try,
 7482 	controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
 7483 
 7484 	* include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
 7485 	`extra_points2'.
 7486 
 7487 	* include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
 7488 	`orus'.
 7489 
 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'.
 7494 
 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'.
 7500 
 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.
 7513 
 7514 	* src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
 7515 	Handle `orus'.
 7516 
 7517 2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7518 
 7519 	* modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
 7520 	build ftvalid in ft2demos.  This has been inadvertently changed
 7521 	2006-08-13.
 7522 
 7523 2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7524 
 7525 	`ft_validator_run' wrapping `setjmp' can cause a crash, as found by
 7526 	Jens:
 7527 	https://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
 7528 
 7529 	* src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
 7530 	It reverts the change introduced on 2005-08-20.
 7531 
 7532 	* src/gxvalid/gxvmod.c: Ditto.
 7533 
 7534 2006-08-13  Jens Claudius  <jens.claudius@yahoo.com>
 7535 
 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.
 7542 
 7543 	* src/cid/cidload.c: (cid_field_records): Adjust invocations of
 7544 	T1_FIELD_XXX.
 7545 
 7546 	* src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
 7547 
 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').
 7559 
 7560 	* src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
 7561 
 7562 	* src/type42/t42parse.c: (t42_keywords): Adjust invocations of
 7563 	T1_FIELD_XXX.
 7564 
 7565 2006-07-18  Jens Claudius  <jens.claudius@yahoo.com>
 7566 
 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.
 7570 
 7571 	Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
 7572 	and `T1_Compute_Max_Advance'.
 7573 
 7574 	* include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
 7575 	`face', add `len_buildchar'.
 7576 
 7577 	* include/freetype/internal/t1types.h (T1_FaceRec): Add field
 7578 	`buildchar'.
 7579 
 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.
 7584 
 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'.
 7589 
 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.
 7596 
 7597 	* src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
 7598 	of T1_FaceRec.
 7599 
 7600 	* src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
 7601 	T1_FaceRec.
 7602 
 7603 2006-07-14  Jens Claudius  <jens.claudius@yahoo.com>
 7604 
 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.
 7612 
 7613 	* include/freetype/internal/t1types.h (T1_FaceRec): New fields
 7614 	`ndv_idx', `cdv_idx', and `len_buildchar'.
 7615 
 7616 	* include/freetype/t1tables.h (PS_BlendRec): New fields
 7617 	`default_design_vector' and `num_default_design_vector'.
 7618 
 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.
 7622 
 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.
 7629 
 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'.
 7634 
 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'.
 7649 
 7650 	* src/type1/t1load.h (T1_LoaderRec): New field
 7651 	`keywords_encountered'.
 7652 	(T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
 7653 
 7654 	* src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
 7655 	entries for parsing /NDV, /CDV, and /DesignVector.
 7656 
 7657 2006-07-07  Werner Lemberg  <wl@gnu.org>
 7658 
 7659 	Add many checks to protect against malformed PCF files.
 7660 
 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.
 7663 
 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.
 7682 
 7683 2006-06-26  Werner Lemberg  <wl@gnu.org>
 7684 
 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.
 7687 
 7688 2006-06-26  Jens Claudius  <jens.claudius@yahoo.com>
 7689 
 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.
 7699 
 7700 2006-06-25  Jens Claudius  <jens.claudius@yahoo.com>
 7701 
 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.
 7706 
 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.
 7717 
 7718 	* src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
 7719 	Add commented-out code for synthetic fonts.
 7720 
 7721 2006-06-24  Eugeniy Meshcheryakov  <eugen@univ.kiev.ua>
 7722 
 7723 	Fix two hinting bugs as reported in
 7724 	https://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
 7725 
 7726 	* include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
 7727 	`first_point' member.
 7728 
 7729 	* src/truetype/ttgload.c (tt_prepare_zone): Initialize
 7730 	`first_point'.
 7731 	(TT_Process_Composite_Glyph): Always untouch points.
 7732 
 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'.
 7736 
 7737 2006-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7738 
 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.
 7743 
 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.
 7757 
 7758 2006-06-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7759 
 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 	https://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
 7765 
 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.
 7771 
 7772 	* src/base/ftotval.c (FT_OpenType_Validate): Return
 7773 	FT_Err_Unimplemented_Feature if OpenType validation service is
 7774 	unavailable.
 7775 
 7776 2006-06-08  Werner Lemberg  <wl@gnu.org>
 7777 
 7778 	* src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
 7779 	errors.
 7780 
 7781 2006-06-07  David Turner  <david@freetype.org>
 7782 
 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.
 7786 
 7787 2006-06-06  David Turner  <david@freetype.org>
 7788 
 7789 	Fix memory leak described in Savannah bug #16759.
 7790 
 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'
 7794 
 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.
 7800 
 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.
 7805 
 7806 	* src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
 7807 
 7808 	* src/psnames/psmodule.c (ps_unicodes_init): Add variable for
 7809 	PS_FreeGlyphNameFunc and use it.
 7810 
 7811 
 7812 2006-06-04  David Turner  <david@freetype.org>
 7813 
 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.
 7817 
 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.
 7823 
 7824 2006-05-25  Werner Lemberg  <wl@gnu.org>
 7825 
 7826 	* builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
 7827 	`-no-undefined'.  Reported by Christian Biesinger.
 7828 
 7829 2006-05-19  Brian Weed  <bw@imaginengine.com>
 7830 
 7831 	* builds/win32/visualc/freetype.dsp: Release libraries no longer
 7832 	have debug information, and debug libraries use `C7 compatible'
 7833 	debug info.
 7834 
 7835 2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7836 
 7837 	Apply patch by Derek Clegg to fix two memory leaks in the MacOS
 7838 	resource fork handler.  This fixes Savannah bug #16631.
 7839 
 7840 	* src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
 7841 	`FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
 7842 
 7843 	* src/base/ftrfork.c (raccess_guess_linux_double_from_file_name):
 7844 	Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
 7845 
 7846 2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7847 
 7848 	* build/unix/configure.raw: Add a fallback to disable Carbon
 7849 	dependency, if configured with no options on Mac OS X.
 7850 
 7851 2006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 7852 
 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.
 7856 
 7857 2006-05-18  Werner Lemberg  <wl@gnu.org>
 7858 
 7859 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph)
 7860 	[TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
 7861 
 7862 2006-05-17  David Turner  <david@freetype.org>
 7863 
 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.
 7867 
 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.
 7871 
 7872 	The resulting speed-up is about 25%.
 7873 
 7874 
 7875 	* include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
 7876 	`cursor' and `limit'.
 7877 
 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.
 7882 
 7883 	* src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
 7884 	code.
 7885 
 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.
 7890 
 7891 	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
 7892 	constant values out of the loops.
 7893 
 7894 	* src/autofit/aftypes.h: Updated.
 7895 
 7896 	* src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
 7897 
 7898 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
 7899 	product to get orientation.
 7900 
 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.
 7904 
 7905 	* src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode):
 7906 	Improve performance.
 7907 
 7908 	* src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
 7909 	`limit'.
 7910 
 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.
 7915 
 7916 	* src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
 7917 
 7918 
 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.
 7923 
 7924 2007-05-17  Werner Lemberg  <wl@gnu.org>
 7925 
 7926 	* src/cff/cffload.c (cff_font_done): Deallocate subfont array.  This
 7927 	fixes the first part of Savannah bug #16590.
 7928 
 7929 2006-05-16  Werner Lemberg  <wl@gnu.org>
 7930 
 7931 	* docs/PROBLEMS: Updated icl issues.
 7932 
 7933 ----------------------------------------------------------------------------
 7934 
 7935 Copyright (C) 2006-2019 by
 7936 David Turner, Robert Wilhelm, and Werner Lemberg.
 7937 
 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.
 7943 
 7944 
 7945 Local Variables:
 7946 version-control: never
 7947 coding: utf-8
 7948 End: