misc/libfreetype/ChangeLog
changeset 9372 915436ff64ab
parent 9371 f3840de881bd
child 9373 b769a8e38cbd
equal deleted inserted replaced
9371:f3840de881bd 9372:915436ff64ab
     1 2011-04-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
     2 
       
     3 	[autofit] Add more Indic scripts with hanging baseline.
       
     4 
       
     5 	* src/autofit/afindic.c (af_indic_uniranges): Tibetan, Limbu,
       
     6 	Sundanese, Meetei Mayak, Syloti Nagri and Sharada scripts are
       
     7 	added.
       
     8 
       
     9 2011-04-21  Behdad Esfahbod  <behdad@behdad.org>
       
    10 
       
    11 	Always ignore global advance.
       
    12 
       
    13 	This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant,
       
    14 	deprecated, and ignored.  The new behavior is what every major user
       
    15 	of FreeType has been requesting.  Global advance is broken in many
       
    16 	CJK fonts.  Just ignoring it by default makes most sense.
       
    17 
       
    18 	* src/truetype/ttdriver.c (tt_get_advances),
       
    19 	src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics,
       
    20 	tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph),
       
    21 	src/truetype/ttgload.h: Implement it.
       
    22 
       
    23 	* docs/CHANGES: Updated.
       
    24 
       
    25 2011-04-21  rainy6144  <rainy6144@gmail.com>
       
    26 
       
    27 	[autofit] Blur CJK stems if too many to preserve their gaps.
       
    28 
       
    29 	When there are too many stems to preserve their gaps in the
       
    30 	rasterization of CJK Ideographs at a low resolution, blur the
       
    31 	stems instead of showing clumped stems.  See
       
    32 	http://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html
       
    33 	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html
       
    34 	for details.
       
    35 
       
    36 	* src/autofit/afcjk.c (af_cjk_hint_edges): Store the position of
       
    37 	the previous stem by `has_last_stem' and `last_stem_pos', and skip
       
    38 	a stem if the current and previous stem are too near to preserve
       
    39 	the gap.
       
    40 
       
    41 2011-04-18  Werner Lemberg  <wl@gnu.org>
       
    42 
       
    43 	Integrate autofitter debugging stuff.
       
    44 
       
    45 	* devel/ftoption.h, include/freetype/config/ftoption.h
       
    46 	(FT_DEBUG_AUTOFIT): New macro.
       
    47 
       
    48 	* include/freetype/internal/fttrace.h: Add trace components for
       
    49 	autofitter.
       
    50 
       
    51 	* src/autofit/aftypes.h (AF_LOG): Removed.
       
    52 	(_af_debug): Removed.
       
    53 
       
    54 	* src/autofit/*: s/AF_DEBUG/FT_DEBUG_AUTOFIT/.
       
    55 	s/AF_LOG/FT_TRACE5/.
       
    56 	Define FT_COMPONENT where necessary.
       
    57 
       
    58 2011-04-18  Werner Lemberg  <wl@gnu.org>
       
    59 
       
    60 	Synchronize config files.
       
    61 
       
    62 	* builds/unix/ftconfig.in: Copy missing assembler routines from
       
    63 	include/freetype/config/ftconfig.h.
       
    64 
       
    65 2011-04-13  Werner Lemberg  <wl@gnu.org>
       
    66 
       
    67 	Fix Savannah bug #33047.
       
    68 
       
    69 	Patch submitted by anonymous reporter.
       
    70 
       
    71 	* src/psaux/psobjs.c (ps_table_add): Use FT_PtrDist for pointer
       
    72 	difference.
       
    73 
       
    74 2011-04-11  Kan-Ru Chen  <kanru@kanru.info>
       
    75 
       
    76 	Fix reading of signed integers from files on 64bit platforms.
       
    77 
       
    78 	Previously, signed integers were converted to unsigned integers, but
       
    79 	this can fail because of sign extension.  For example, 0xa344a1eb
       
    80 	becomes 0xffffffffa344a1eb.
       
    81 
       
    82 	We now do the reverse which is always correct because the integer
       
    83 	size is the same during the cast from unsigned to signed.
       
    84 
       
    85 	* include/freetype/internal/ftstream.h, src/base/ftstream.c
       
    86 	(FT_Stream_Get*): Replace with...
       
    87 	(FT_Stream_GetU*): Functions which read unsigned integers.
       
    88 	Update all macros accordingly.
       
    89 
       
    90 	* src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Updated.
       
    91 
       
    92 2011-04-07  Werner Lemberg  <wl@gnu.org>
       
    93 
       
    94 	Update Unicode ranges for CJK autofitter; in particular, add Hangul.
       
    95 
       
    96 	* src/autofit/afcjk.c (af_cjk_uniranges): Update to Unicode 6.0.
       
    97 
       
    98 2011-04-04  Werner Lemberg  <wl@gnu.org>
       
    99 
       
   100 	Fix formatting of autofit debug dumps.
       
   101 
       
   102 	* src/autofit/afhints.c (af_glyph_hints_dump_points,
       
   103 	af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Adjust
       
   104 	column widths.
       
   105 
       
   106 2011-03-30  Werner Lemberg  <wl@gnu.org>
       
   107 
       
   108 	* src/autofit/aftypes.h (AF_OutlineRec): Removed, unused.
       
   109 
       
   110 2011-03-24  Werner Lemberg  <wl@gnu.org>
       
   111 
       
   112 	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 256.
       
   113 	This limit is given on p. 37 of Adobe Technical Note #5014.
       
   114 
       
   115 2011-03-23  Werner Lemberg  <wl@gnu.org>
       
   116 
       
   117 	* src/truetype/ttpload.c (tt_face_load_loca): Fix mismatch warning.
       
   118 
       
   119 2011-03-20  Werner Lemberg  <wl@gnu.org>
       
   120 
       
   121 	* src/sfnt/sfobjs.c (sfnt_open_font): Check number of TTC subfonts.
       
   122 
       
   123 2011-03-19  Werner Lemberg  <wl@gnu.org>
       
   124 
       
   125 	More C++ compilation fixes.
       
   126 
       
   127 	* src/autofit/afhints.c (af_glyph_hints_dump_points,
       
   128 	af_glyph_hints_dump_segments, af_glyph_hints_dump_edges)
       
   129 	[__cplusplus]: Protect with `extern "C"'.
       
   130 
       
   131 2011-03-18  Werner Lemberg  <wl@gnu.org>
       
   132 
       
   133 	C++ compilation fixes.
       
   134 
       
   135 	* src/autofit/aflatin.c (af_latin_hints_apply), src/autofit/afcjk.c
       
   136 	(af_cjk_hints_apply): Use cast for `dim'.
       
   137 
       
   138 2011-03-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
       
   139 
       
   140 	A better fix for Savannah bug #32671.
       
   141 
       
   142 	* src/smooth/ftgrays.c (gray_render_conic): Clean up code and
       
   143 	replace WHILE loop with a more natural DO-WHILE construct.
       
   144 
       
   145 2011-03-16  Werner Lemberg  <wl@gnu.org>.
       
   146 
       
   147 	* src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field.
       
   148 	Suggested by Graham Asher.
       
   149 
       
   150 2011-03-09  Werner Lemberg  <wl@gnu.org>
       
   151 
       
   152 	Make FT_Sfnt_Table_Info return the number of SFNT tables.
       
   153 
       
   154 	* src/sfnt/sfdriver.c (sfnt_table_info): Implement it.
       
   155 	* include/freetype/tttables.h: Update documentation.
       
   156 	* docs/CHANGES: Updated.
       
   157 
       
   158 2011-03-07  Bram Tassyns  <bramt@enfocus.be>
       
   159 
       
   160 	Fix Savannah bug #27988.
       
   161 
       
   162 	* src/cff/cffobjs.c (remove_style): New function.
       
   163 	(cff_face_init): Use it to strip off the style part of the family
       
   164 	name.
       
   165 
       
   166 2011-03-07  Werner Lemberg  <wl@gnu.org>
       
   167 
       
   168 	* docs/CHANGES: Updated.
       
   169 
       
   170 2011-03-07  Alexei Podtelezhnikov  <apodtele@gmail.com>
       
   171 
       
   172 	Quick fix for Savannah bug #32671.
       
   173 
       
   174 	This isn't the optimal solution yet, but it restores the previous
       
   175 	rendering quality (more or less).
       
   176 
       
   177 	* src/smooth/ftgrays.c (gray_render_conic): Do more splitting.
       
   178 
       
   179 2011-03-06  Werner Lemberg  <wl@gnu.org>
       
   180 
       
   181 	Fix autohinting fallback.
       
   182 
       
   183 	* src/base/ftobjs.c (FT_Load_Glyph): Assure that we only check TTFs,
       
   184 	ignoring CFF-based OTFs.
       
   185 
       
   186 2011-02-27  Werner Lemberg  <wl@gnu.org>
       
   187 
       
   188 	Add AF_CONFIG_OPTION_USE_WARPER to control the autofit warper.
       
   189 
       
   190 	* devel/ftoption.h, include/freetype/config/ftoption.h
       
   191 	(AF_CONFIG_OPTION_USE_WARPER): New macro.
       
   192 	* src/autofit/aftypes.h (AF_USE_WARPER): Remove.
       
   193 
       
   194 	* src/autofit/*: s/AF_USE_WARPER/AF_CONFIG_OPTION_USE_WARPER/.
       
   195 
       
   196 	* src/autofit/afwarp.c [!AF_CONFIG_OPTION_USE_WARPER]: Replace dummy
       
   197 	variable assignment with a typedef.
       
   198 
       
   199 2011-02-26  Werner Lemberg  <wl@gnu.org>
       
   200 
       
   201 	[autofit] Slight simplifications.
       
   202 
       
   203 	* src/autofit/aflatin.c (af_latin_hints_link_segments): Remove
       
   204 	test which always returns false.
       
   205 	(af_latin_hints_compute_blue_edges): Remove redundant assignment.
       
   206 
       
   207 2011-02-24  Werner Lemberg  <wl@gnu.org>
       
   208 
       
   209 	* docs/PROBLEMS: Mention rendering differences on different
       
   210 	platforms.
       
   211 	Suggested and worded by Jason Owen <jason.a.owen@gmail.com>.
       
   212 
       
   213 2011-02-24  Werner Lemberg  <wl@gnu.org>
       
   214 
       
   215 	[autofit] Comment out unused code.
       
   216 
       
   217 	* src/autofit/aflatin.c, src/autofit/aflatin2.c
       
   218 	(af_latin_hints_compute_edges): Do it.
       
   219 
       
   220 2011-02-24  Werner Lemberg  <wl@gnu.org>
       
   221 
       
   222 	* src/autofit/afhints.h (AF_GlyphHints): Remove unused field.
       
   223 
       
   224 2011-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   225 
       
   226 	[cache] Fix an off-by-one bug in `FTC_Manager_RemoveFaceID'.
       
   227 	Found by <ychen1392001@yahoo.com.cn>, see detail in
       
   228 
       
   229 	  http://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html
       
   230 
       
   231 	* src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node
       
   232 	buckets[cache->p + cache->mask] too.
       
   233 
       
   234 2011-02-19  Kevin Kofler  <kevin.kofler@chello.at>
       
   235 
       
   236 	Fall back to autohinting if a TTF/OTF doesn't contain any bytecode.
       
   237 	This is Savannah patch #7471.
       
   238 
       
   239 	* src/base/ftobjs.c (FT_Load_Glyph): Implement it.
       
   240 
       
   241 2011-02-19  John Tytgat  <John.Tytgat@esko.com>
       
   242 
       
   243 	[cff] Fix subset prefix removal.
       
   244 	This is Savannah patch #7465.
       
   245 
       
   246 	* src/cff/cffobjs.c (remove_subset_prefix): Update length after
       
   247 	subset prefix removal.
       
   248 
       
   249 2011-02-13  Bradley Grainger  <bgrainger@logos.com>
       
   250 
       
   251 	Add inline assembly version of FT_MulFix for MSVC.
       
   252 
       
   253 	* include/freetype/config/ftconfig.h: Ported the FT_MulFix_i386
       
   254 	function from GNU inline assembly syntax (see #ifdef __GNUC__ block
       
   255 	above) to MASM syntax for Microsoft Visual C++.
       
   256 
       
   257 2011-02-13  Bradley Grainger  <bgrainger@logos.com>
       
   258 
       
   259 	Add project and solution files in Visual Studio 2010 format.
       
   260 
       
   261 	* builds/win32/.gitignore: Ignore user-specific cache files.
       
   262 	* builds/win32/vc2010/: Add VS2010 project & solution files, created
       
   263 	by upgrading builds/win32/vc2008/freetype.vcproj.
       
   264 	* objs/.gitignore: Ignore Visual Studio output files.
       
   265 
       
   266 2011-02-01  Werner Lemberg  <wl@gnu.org>
       
   267 
       
   268 	* src/autofit/afdummy.c: Include `aferrors.h'.
       
   269 	Problem reported by Chris Liddel <chris.liddell@artifex.com>.
       
   270 
       
   271 2011-02-01  Werner Lemberg  <wl@gnu.org>
       
   272 
       
   273 	[cff] Ignore unknown operators in charstrings.
       
   274 	Patch suggested by Miles.Lau <sunliang_liu@foxitsoftware.com>.
       
   275 
       
   276 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing
       
   277 	message for unknown operators and continue instead of exiting with a
       
   278 	syntax error.
       
   279 
       
   280 2011-02-01  Werner Lemberg  <wl@gnu.org>
       
   281 
       
   282 	[truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also.
       
   283 
       
   284 	* src/truetype/ttgload.c (tt_loader_init): Handle
       
   285 	`FT_LOAD_PEDANTIC'.
       
   286 	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
       
   287 	tt_size_init_bytecode, tt_size_ready_bytecode): New argument to
       
   288 	handle pedantic mode.
       
   289 	* src/truetype/ttobjs.h: Updated.
       
   290 
       
   291 2011-01-31  Werner Lemberg  <wl@gnu.org>
       
   292 
       
   293 	[truetype] Protect jump instructions against endless loops.
       
   294 
       
   295 	* src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error
       
   296 	if offset is zero.
       
   297 
       
   298 2011-01-31  Werner Lemberg  <wl@gnu.org>
       
   299 
       
   300 	[truetype] Improve handling of invalid references.
       
   301 
       
   302 	* src/truetype/interp.c: Set even more TT_Err_Invalid_Reference
       
   303 	error codes only if pedantic hinting is active.  At the same time,
       
   304 	try to provide sane values which hopefully allow useful
       
   305 	continuation.  Exception to this is CALL and LOOPCALL – due to
       
   306 	possible stack corruption it is necessary to bail out.
       
   307 
       
   308 2011-01-31  Werner Lemberg  <wl@gnu.org>
       
   309 
       
   310 	[truetype] Improve handling of stack underflow.
       
   311 
       
   312 	* src/truetype/ttinterp.c (TT_RunIns, Ins_FLIPPT, Ins_DELTAP,
       
   313 	Ins_DELTAC): Exit with error only if `pedantic_hinting' is set.
       
   314 	Otherwise, try to do something sane.
       
   315 
       
   316 2011-01-30  Werner Lemberg  <wl@gnu.org>
       
   317 
       
   318 	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message.
       
   319 
       
   320 2011-01-30  LIU Sun-Liang  <sunliang_liu@foxitsoftware.com>
       
   321 
       
   322 	[truetype]: Fix behaviour of MIAP for invalid arguments.
       
   323 
       
   324 	* src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in
       
   325 	case of error.
       
   326 
       
   327 2011-01-18  Werner Lemberg  <wl@gnu.org>
       
   328 
       
   329 	[truetype] Fix handling of MIRP instruction.
       
   330 
       
   331 	Thanks to Greg Hitchcock who explained the issue.
       
   332 
       
   333 	* src/truetype/ttinterp.c (Ins_MIRP): Replace a `>=' operator with
       
   334 	`>' since the description in the specification is incorrect.
       
   335 	This fixes, for example, glyph `two' in font `Helvetica Neue LT Com
       
   336 	65 medium' at 15ppem.
       
   337 
       
   338 2011-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   339 
       
   340 	Fix ARM assembly code in include/freetype/config/ftconfig.h.
       
   341 
       
   342 	* include/freetype/config/ftconfig.h (FT_MulFix_arm):
       
   343 	Copy the maintained code from builds/unix/ftconfig.in.
       
   344 	Old GNU binutils could not accept the reduced syntax
       
   345 	`orr %0, %2, lsl #16'.  Un-omitted syntax like RVCT,
       
   346 	`orr %0, %0, %2, lsl #16' is better.  Reported by
       
   347 	Johnson Y. Yan.  The bug report by Qt developers is
       
   348 	considered too.
       
   349 
       
   350 	http://bugreports.qt.nokia.com/browse/QTBUG-6521
       
   351 
       
   352 2011-01-15  Werner Lemberg  <wl@gnu.org>
       
   353 
       
   354 	[raster] Make bbox handling the same as with Microsoft's rasterizer.
       
   355 
       
   356 	Right before B/W rasterizing, the bbox gets simply rounded to
       
   357 	integers.  This fixes, for example, glyph `three' in font `Helvetica
       
   358 	Neue LT Com 65 Medium' at 11ppem.
       
   359 
       
   360 	Thanks to Greg Hitchcock who explained this behaviour.
       
   361 
       
   362 	* src/raster/ftrend1.c (ft_raster1_render): Implement it.
       
   363 
       
   364 2011-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   365 
       
   366 	Copy -mcpu=* & -march=* options from CFLAGS to LDFLAGS.
       
   367 
       
   368 	* builds/unix/configure.raw: Consider recent gcc-standard
       
   369 	flags to specify architecture in CFLAGS & LDFLAGS
       
   370 	harmonization.  Requested by Savannah bug #32114, to
       
   371 	support multilib feature of BuildRoot SDK correctly.
       
   372 
       
   373 2011-01-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   374 
       
   375 	Fix off-by-one bug in CFLAGS & LDFLAGS harmonizer.
       
   376 
       
   377 	* builds/unix/configure.raw: Some important options that
       
   378 	included in CFLAGS but not in LDFLAGS are copied to
       
   379 	LDFLAGS, but the last option in CFLAGS was not checked.
       
   380 
       
   381 2011-01-13  Werner Lemberg  <wl@gnu.org>
       
   382 
       
   383 	[raster] Add undocumented drop-out rule to the other bbox side also.
       
   384 
       
   385 	* src/raster/ftraster.c (Vertical_Sweep_Drop,
       
   386 	Horizontal_Sweep_Drop): Implement it.
       
   387 
       
   388 2011-01-13  Werner Lemberg  <wl@gnu.org>
       
   389 
       
   390 	[raster] Reduce jitter value.
       
   391 
       
   392 	This catches a rendering problem with glyph `x' from Tahoma at
       
   393 	10ppem.  It seems that the increase of the precision in the change
       
   394 	from 2009-06-11 makes a larger jitter value unnecessary.
       
   395 
       
   396 	* src/raster/ftraster.c (Set_High_Precision): Implement it.
       
   397 
       
   398 2011-01-13  Werner Lemberg  <wl@gnu.org>
       
   399 
       
   400 	[raster] Handle drop-outs at glyph borders according to Microsoft.
       
   401 
       
   402 	If a drop-out rule would switch on a pixel outside of the glyph's
       
   403 	bounding box, use the right (or top) pixel instead.  This is an
       
   404 	undocumented feature, but some fonts like `Helvetica Neue LT Com 65
       
   405 	Medium' heavily rely on it.
       
   406 
       
   407 	Thanks to Greg Hitchcock who explained this behaviour.
       
   408 
       
   409 	* src/raster/ftraster.c (Vertical_Sweep_Drop,
       
   410 	Horizontal_Sweep_Drop): Implement it.
       
   411 
       
   412 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   413 
       
   414 	[cache] Fix Savannah bug #31923, patch drafted by Harsha.
       
   415 
       
   416 	When a node comparator changes the cached nodes during the
       
   417 	search of a node matching with queried properties, the
       
   418 	pointers obtained before the function should be updated to
       
   419 	prevent the dereference to freed or reallocated nodes.
       
   420 	To minimize the rescan of the linked list, the update is
       
   421 	executed when the comparator notifies the change of cached
       
   422 	nodes. This change depends previous change:
       
   423 	38b272ffbbdaae276d636aec4ef84af407d16181
       
   424 
       
   425 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Rescan the
       
   426 	top node if the cached nodes are changed.
       
   427 	* src/cache/ftccache.c (FTC_Cache_Lookup): Ditto.
       
   428 
       
   429 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   430 
       
   431 	[cache] Notice if a cache query induced the node list change.
       
   432 
       
   433 	Some node comparators (comparing the cache node contents and the
       
   434 	properties specified by the query) can flush the cache node to
       
   435 	prevent the cache inflation.  The change may invalidate the pointers
       
   436 	to the node obtained before the node comparison, so it should be
       
   437 	noticed to the caller.  The problem caused by the cache node
       
   438 	changing is reported by Harsha, see Savannah bug #31923.
       
   439 
       
   440 	* src/cache/ftccache.h (FTC_Node_CompareFunc): Add new argument
       
   441 	`FT_Bool* list_changed' to indicate the change of the cached nodes
       
   442 	to the caller.
       
   443 	(FTC_CACHE_LOOKUP_CMP): Watch the change of the cached nodes by
       
   444 	`_list_changed'.
       
   445 	(FTC_CACHE_TRYLOOP_END): Take new macro argument `_list_changed'
       
   446 	and update it when `FTC_Manager_FlushN' flushes any nodes.
       
   447 
       
   448 	* src/cache/ftccback.h (ftc_snode_compare): Updated to fit with new
       
   449 	FTC_Node_CompareFunc type.
       
   450 	(ftc_gnode_compare): Ditto.
       
   451 
       
   452 	* src/cache/ftcbasic.c: Include FT_INTERNAL_OBJECTS_H to use
       
   453 	TRUE/FALSE macros.
       
   454 	(ftc_basic_gnode_compare_faceid): New argument `FT_Bool*
       
   455 	list_changed' to indicate the change of the cache nodes (anyway, it
       
   456 	is always FALSE).
       
   457 
       
   458 	* src/cache/ftccmap.c: Include FT_INTERNAL_OBJECTS_H to use
       
   459 	TRUE/FALSE macros.
       
   460 	(ftc_cmap_node_compare): New argument `FT_Bool* list_changed' to
       
   461 	indicate the change of the cache nodes (anyway, it is always FALSE).
       
   462 	(ftc_cmap_node_remove_faceid): Ditto.
       
   463 
       
   464 	* src/cache/ftccache.c (FTC_Cache_NewNode): Pass a NULL pointer to
       
   465 	`FTC_CACHE_TRYLOOP_END', because the result is not needed.
       
   466 	(FTC_Cache_Lookup): Watch the change of the cache nodes by
       
   467 	`list_changed'.
       
   468 	(FTC_Cache_RemoveFaceID): Ditto.
       
   469 
       
   470 	* src/cache/ftcglyph.c: Include FT_INTERNAL_OBJECTS_H to use
       
   471 	TRUE/FALSE macros.
       
   472 	(ftc_gnode_compare): New argument `FT_Bool* list_changed' to
       
   473 	indicate the change of the cache nodes (anyway, it is always FALSE).
       
   474 	(FTC_GNode_Compare): New argument `FT_Bool* list_changed' to be
       
   475 	passed to `ftc_gnode_compare'.
       
   476 	* src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto.
       
   477 
       
   478 	* src/cache/ftcsbits.c (ftc_snode_compare): New argument `FT_Bool*
       
   479 	list_changed' to indicate the change of the cache nodes, anyway.  It
       
   480 	is updated by `FTC_CACHE_TRYLOOP'.
       
   481 	(FTC_SNode_Compare): New argument `FT_Bool* list_changed' to be
       
   482 	passed to `ftc_snode_compare'.
       
   483 	* src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto.
       
   484 
       
   485 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   486 
       
   487 	[cache] Fit `FTC_GNode_Compare' to `FTC_Node_CompareFunc'.
       
   488 
       
   489 	* src/cache/ftcglyph.h (FTC_GNode_Compare): Add the 3rd
       
   490 	argument `FTC_Cache  cache' to fit FTC_Node_CompareFunc
       
   491 	prototype.
       
   492 	* src/cache/ftcglyph.c (FTC_GNode_Compare): Ditto. Anyway,
       
   493 	`cache' is not used by its child `ftc_gnode_compare'.
       
   494 
       
   495 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   496 
       
   497 	[cache] Deduplicate the code to get the top node by a hash.
       
   498 
       
   499 	There are several duplicated code fragments getting the top node
       
   500 	from a cache by a given hash, like:
       
   501 
       
   502 	    idx = hash & cache->mask;
       
   503 	    if ( idx < cache->p )
       
   504 	      idx = hash & ( cache->mask * 2 + 1 );
       
   505 	    pnode = cache->buckets + idx;
       
   506 
       
   507 	To remove duplication, a cpp-macro to do same work
       
   508 	`FTC_NODE__TOP_FOR_HASH' is introduced.  For non-inlined
       
   509 	configuration, non-`ftc_get_top_node_for_hash' is also introduced.
       
   510 
       
   511 	* src/cache/ftccache.h (FTC_NODE__TOP_FOR_HASH): Declare
       
   512 	and implement inlined version.
       
   513 	(FTC_CACHE_LOOKUP_CMP): Use `FTC_NODE__TOP_FOR_HASH'.
       
   514 	* src/cache/ftccache.c (ftc_get_top_node_for_hash): Non-inlined
       
   515 	version.
       
   516 	(ftc_node_hash_unlink): Use `FTC_NODE__TOP_FOR_HASH'.
       
   517 	(ftc_node_hash_link): Ditto.
       
   518 	(FTC_Cache_Lookup): Ditto.
       
   519 
       
   520 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   521 
       
   522 	[cache] inline-specific functions are conditionalized.
       
   523 
       
   524 	* src/cache/ftcglyph.c (FTC_GNode_Compare): Conditionalized for
       
   525 	inlined configuration.  This function is a thin wrapper of
       
   526 	`ftc_gnode_compare' for inlined `FTC_CACHE_LOOKUP_CMP' (see
       
   527 	`nodecmp' argument).  Under non-inlined configuration,
       
   528 	`ftc_gnode_compare' is invoked by `FTC_Cache_Lookup', via
       
   529 	`FTC_Cache->clazz.node_compare'.
       
   530 
       
   531 	* src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto.
       
   532 	* src/cache/ftcsbits.c (FTC_SNode_Compare): Ditto, for
       
   533 	`ftc_snode_compare'.
       
   534 	* src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto.
       
   535 
       
   536 2011-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   537 
       
   538 	[cache] Correct a type mismatch under non-inlined config.
       
   539 
       
   540 	* src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): `FTC_GCache_Lookup'
       
   541 	takes the node via a pointer `FTC_Node*', differently from cpp-macro
       
   542 	`FTC_CACHE_LOOKUP_CMP'.
       
   543 
       
   544 2011-01-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   545 
       
   546 	Update Jamfile to include Bzip2 support.
       
   547 
       
   548 	* Jamfile: Include src/bzip2 to project.
       
   549 	Comments for lzw, gzip, bzip2 are changed to clarify that
       
   550 	they are for compressed PCF fonts, not others.
       
   551 	(e.g. compressed BDF fonts are not supported yet)
       
   552 
       
   553 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   554 
       
   555 	Update Symbian project files to include Bzip2 support.
       
   556 
       
   557 	Currently, it provides `FT_Stream_OpenBzip2' that returns
       
   558 	unimplemented error always, to prevent unresolved symbol
       
   559 	error for the applications designed for Unix systems.
       
   560 
       
   561 	* builds/symbian/bld.inf: Include ftbzip2.h.
       
   562 	* builds/symbian/freetype.mmp: Include ftbzip2.c.
       
   563 
       
   564 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   565 
       
   566 	Update classic MacOS makefiles to include Bzip2 support.
       
   567 
       
   568 	Currently, it provides `FT_Stream_OpenBzip2' that returns
       
   569 	unimplemented error always, to prevent unresolved symbol
       
   570 	error for the applications designed for Unix systems.
       
   571 
       
   572 	* builds/mac/FreeType.m68k_cfm.make.txt: Include ftbzip2.c.o.
       
   573 	* builds/mac/FreeType.m68k_far.make.txt: Ditto.
       
   574 	* builds/mac/FreeType.ppc_carbon.make.txt: Include ftbzip2.c.x.
       
   575 	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
       
   576 
       
   577 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   578 
       
   579 	Update Amiga makefiles to include Bzip2 support.
       
   580 
       
   581 	Currently, it provides `FT_Stream_OpenBzip2' that returns
       
   582 	unimplemented error always, to prevent unresolved symbol
       
   583 	error for the applications designed for Unix systems.
       
   584 
       
   585 	* builds/amiga/makefile: Include bzip2.ppc.o built from ftbzip2.c.
       
   586 	* builds/amiga/makefile.os4: Include bzip2.o built from ftbzip2.c.
       
   587 	* builds/amiga/smakefile: Ditto.
       
   588 
       
   589 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   590 
       
   591 	Update pkg-config tools to reflect Bzip2 support.
       
   592 
       
   593 	* builds/unix/freetype-config.in: Include `-lbz2' to
       
   594 	--libs output, if built with Bzip2 support.
       
   595 	* builds/unix/freetype2.in: Ditto.
       
   596 
       
   597 2011-01-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   598 
       
   599 	* builds/unix/configure.raw: Remove `SYSTEM_BZ2LIB' macro.
       
   600 
       
   601 	SYSTEM_ZLIB is used to switch the builtin zlib source
       
   602 	or system zlib source out of FreeType2.  But ftbzip2
       
   603 	module has no builtin bzip2 library and always requires
       
   604 	system bzip2 library.  Thus SYSTEM_BZ2LIB is always yes,
       
   605 	it is not used.
       
   606 
       
   607 2011-01-03  Werner Lemberg  <wl@gnu.org>
       
   608 
       
   609 	*/rules.mk: Handle `*pic.c' files.
       
   610 
       
   611 2010-12-31  Werner Lemberg  <wl@gnu.org>
       
   612 
       
   613 	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 64.
       
   614 	Problem reported by Tom Bishop <wenlin@wenlin.com>.
       
   615 
       
   616 2010-12-31  Werner Lemberg  <wl@gnu.org>
       
   617 
       
   618 	Improve bzip2 support.
       
   619 
       
   620 	* include/freetype/ftmoderr.h: Add bzip2.
       
   621 
       
   622 	* docs/INSTALL.ANY, docs/CHANGES: Updated.
       
   623 
       
   624 	* src/pcf/README: Updated.
       
   625 	* include/freetype/internal/pcftypes.h: Obsolete, removed.
       
   626 
       
   627 2010-12-31  Joel Klinghed  <the_jk@yahoo.com>
       
   628 
       
   629 	Add bzip2 compression support to handle *.pcf.bz2 files.
       
   630 
       
   631 	* builds/unix/configure.raw: Test for libbz2 library.
       
   632 
       
   633 	* devel/ftoption.h, include/freetype/config/ftoption.h
       
   634 	(FT_CONFIG_OPTION_USE_BZIP2): Define.
       
   635 	* include/freetype/config/ftheader.h (FT_BZIP2_H): Define.
       
   636 
       
   637 	* include/freetype/ftbzip2.h: New file.
       
   638 
       
   639 	* src/bzip2/*: New files.
       
   640 
       
   641 	* src/pcf/pcf.h: s/gzip_/comp_/.
       
   642 	* src/pcf/pcfdrvr.c: Include FT_BZIP2_H.
       
   643 	s/gzip_/comp_/.
       
   644 	(PCF_Face_Init): Handle bzip2 compressed files.
       
   645 
       
   646 	* docs/formats.txt, modules.cfg: Updated.
       
   647 
       
   648 2010-12-25  Harsha  <mm.harsha@gmail.com>
       
   649 
       
   650 	Apply Savannah patch #7422.
       
   651 
       
   652 	If we encounter a space in a string then the sbit buffer is NULL,
       
   653 	height and width are 0s.  So the check in ftc_snode_compare will
       
   654 	always pass for spaces (comparision with 255).  Here the comments
       
   655 	above the condition are proper but the implementation is not.  When
       
   656 	we create an snode I think it is the proper way to initialize the
       
   657 	width to 255 and then put a check for being equal to 255 in snode
       
   658 	compare function.
       
   659 
       
   660 	* src/cache/ftcsbits.c (FTC_SNode_New): Initialize sbit widths with
       
   661 	value 255.
       
   662 	(ftc_snode_compare): Fix condition.
       
   663 
       
   664 2010-12-13  Werner Lemberg  <wl@gnu.org>
       
   665 
       
   666 	Fix parameter handling of `FT_Set_Renderer'.
       
   667 	Reported by Kirill Tishin <siege@bk.ru>.
       
   668 
       
   669 	* src/base/ftobjs.c (FT_Set_Renderer): Increment `parameters'.
       
   670 
       
   671 2010-12-09  Werner Lemberg  <wl@gnu.org>
       
   672 
       
   673 	[cff] Allow `hlineto' and `vlineto' without arguments.
       
   674 
       
   675 	We simply ignore such instructions.  This is invalid, but it doesn't
       
   676 	harm; and indeed, there exist such subsetted fonts in PDFs.
       
   677 
       
   678 	Reported by Albert Astals Cid <aacid@kde.org>.
       
   679 
       
   680 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
       
   681 	[cff_op_hlineto]: Ignore instruction if there aren't any arguments
       
   682 	on the stack.
       
   683 
       
   684 2010-11-28  Werner Lemberg  <wl@gnu.org>
       
   685 
       
   686 	* Version 2.4.4 released.
       
   687 	=========================
       
   688 
       
   689 
       
   690 	Tag sources with `VER-2-4-4'.
       
   691 
       
   692 	* docs/CHANGES: Updated.
       
   693 
       
   694 	* docs/VERSION.DLL: Update documentation and bump version number to
       
   695 	2.4.4
       
   696 
       
   697 	* README, Jamfile (RefDoc),
       
   698 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
       
   699 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
       
   700 	builds/win32/visualc/freetype.dsp,
       
   701 	builds/win32/visualc/freetype.vcproj,
       
   702 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
       
   703 	builds/win32/visualce/freetype.vcproj,
       
   704 	builds/win32/visualce/index.html,
       
   705 	builds/wince/vc2005-ce/freetype.vcproj,
       
   706 	builds/wince/vc2005-ce/index.html,
       
   707 	builds/wince/vc2008-ce/freetype.vcproj,
       
   708 	builds/wince/vc2008-ce/index.html: s/2.4.3/2.4.4/, s/243/244/.
       
   709 
       
   710 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
       
   711 
       
   712 	* builds/unix/configure.raw (version_info): Set to 12:2:6.
       
   713 
       
   714 2010-11-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
       
   715 
       
   716 	[ftsmooth]: Minor code simplification.
       
   717 
       
   718 	* src/smooth/ftgrays (gray_render_cubic): Do only one comparison
       
   719 	instead of two.
       
   720 
       
   721 2010-11-26  Johnson Y. Yan  <yinsen_yan@foxitsoftware.com>
       
   722 
       
   723 	[truetype] Better multi-threading support.
       
   724 
       
   725 	* src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone
       
   726 	references.
       
   727 
       
   728 2010-11-23  John Tytgat  <John.Tytgat@esko.com>
       
   729 
       
   730 	* src/psaux/t1decode.c (t1_decoder_parse_charstring): Expand
       
   731 	start_point, check_points, add_point, add_point1, close_contour
       
   732 	macros.
       
   733 	Remove add_contour macro.
       
   734 	Return error code from t1_builder_start_point and
       
   735 	t1_builder_check_points when there was one (instead of returning 0).
       
   736 
       
   737 2010-11-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   738 
       
   739 	[truetype] Identify the tricky fonts by cvt/fpgm/prep checksums.
       
   740 	Some Latin TrueType fonts are still expected to be unhinted.
       
   741 	Fix Savannah bug #31645.
       
   742 
       
   743 	* src/truetype/ttobjs.c (tt_check_trickyness): Divided to...
       
   744 	(tt_check_trickyness_family): this checking family name, and
       
   745 	(tt_check_trickyness_sfnt_ids): this checking cvt/fpgm/prep.
       
   746 	(tt_get_sfnt_checksum): Function to retrieve the sfnt checksum
       
   747 	for specified subtable even if cleared by lazy PDF generators.
       
   748 	(tt_synth_sfnt_checksum): Function to calculate the checksum.
       
   749 
       
   750 2010-11-18  Werner Lemberg  <wl@gnu.org>
       
   751 
       
   752 	[truetype] Fix `loca' handling for inconsistent number of glyphs.
       
   753 	Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
       
   754 
       
   755 	* src/truetype/ttpload.c (tt_face_load_loca): While sanitizing,
       
   756 	handle case where `loca' is the last table in the font.
       
   757 
       
   758 2010-11-18  Werner Lemberg  <wl@gnu.org>
       
   759 
       
   760 	[sfnt] Ignore all errors while loading `OS/2' table.
       
   761 	Suggested by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>.
       
   762 
       
   763 	* src/sfnt/sfobjs.c (sfnt_load_face): Do it.
       
   764 
       
   765 2010-11-18  Johnson Y. Yan  <yinsen_yan@foxitsoftware.com>
       
   766 
       
   767 	[type1] Fix matrix normalization.
       
   768 
       
   769 	* src/type1/t1load.c (parse_font_matrix): Handle sign of scaling
       
   770 	factor.
       
   771 
       
   772 2010-11-18  Werner Lemberg  <wl@gnu.org>
       
   773 
       
   774 	[type1] Improve guard against malformed data.
       
   775 	Based on a patch submitted by Johnson Y. Yan
       
   776 	<yinsen_yan@foxitsoftware.com>
       
   777 
       
   778 	* src/type1/t1load.c (read_binary_data): Check `size'.
       
   779 
       
   780 2010-11-17  Werner Lemberg  <wl@gnu.org>
       
   781 
       
   782 	[sfnt] While tracing, output table checksums also.
       
   783 
       
   784 	* src/sfnt/ttload.c (tt_face_load_font_dir): Do it.
       
   785 
       
   786 2010-11-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   787 
       
   788 	[UVS] Fix `find_variant_selector_charmap', Savannah bug #31545.
       
   789 
       
   790 	Since 2010-07-04, `find_variant_selector_charmap' returns
       
   791 	the first cmap subtable always under rogue-compatible
       
   792 	configuration, it causes NULL pointer dereference and
       
   793 	make UVS-related functions crashed.
       
   794 
       
   795 	* src/base/ftobjs.c (Fix find_variant_selector_charmap):
       
   796 	Returns UVS cmap correctly.
       
   797 
       
   798 2010-11-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
       
   799 
       
   800 	[ftsmooth] Improve rendering.
       
   801 
       
   802 	* src/smooth/ftsmooth.c (gray_render_conic): Since version 2.4.3,
       
   803 	cubic deviations have been estimated _after_ UPSCALE, whereas
       
   804 	conic ones have been evaluated _before_ UPSCALE, which produces
       
   805 	inferior rendering results.  Fix this.
       
   806 	Partially undo change from 2010-10-15 by using ONE_PIXEL/4; this has
       
   807 	been tested with demo images sent to the mailing list.  See
       
   808 
       
   809 	  http://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html
       
   810 
       
   811 	and later mails in this thread.
       
   812 
       
   813 2010-10-28  Werner Lemberg  <wl@gnu.org>
       
   814 
       
   815 	[ftraster] Minor fixes.
       
   816 
       
   817 	Reported by Tom Bishop <wenlin@wenlin.com>.
       
   818 
       
   819 	* src/raster/ftraster.c (ULong): Remove unused typedef.
       
   820 	(TWorker): Remove unused variable `precision_mask'.
       
   821 
       
   822 2010-10-28  Werner Lemberg  <wl@gnu.org>
       
   823 
       
   824 	[ftraster] Fix rendering.
       
   825 
       
   826 	Problem reported by Tom Bishop <wenlin@wenlin.com>; see
       
   827 	thread starting with
       
   828 
       
   829 	  http://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html
       
   830 
       
   831 	* src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv
       
   832 	since the involved multiplication exceeds 32 bits.
       
   833 
       
   834 2010-10-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   835 
       
   836 	Revert a change of `_idx' type in `FTC_CACHE_LOOKUP_CMP'.
       
   837 
       
   838 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Revert
       
   839 	the type of `_idx' from FT_PtrDist (by previous change)
       
   840 	to original FT_UFast, to match with FT_CacheRec.
       
   841 
       
   842 2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   843 
       
   844 	[cache] Change the hash types to FT_PtrDist.
       
   845 
       
   846 	On LLP64 platforms (e.g. Win64), FT_ULong (32-bit)
       
   847 	variables are inappropriate to calculate hash values
       
   848 	from the memory address (64-bit).  The hash variables
       
   849 	are extended from FT_ULong to FT_PtrDist and new
       
   850 	hashing macro functions are introduced.  The hash
       
   851 	values on 16-bit memory platforms are changed, but
       
   852 	ILP32 and LP64 are not changed.  The hash value in
       
   853 	the cache subsystem is not reverted to the memory
       
   854 	address, so using signed type FT_PtrDist is safe.
       
   855 
       
   856 	* src/cache/ftccache.h (_FTC_FACE_ID_HASH): New hash
       
   857 	function to replace `FTC_FACE_ID_HASH' for portability.
       
   858 	* src/cache/ftcmanag.h (FTC_SCALER_HASH): Replace
       
   859 	`FTC_FACE_ID_HASH' by `_FTC_FACE_ID_HASH'.
       
   860 	* src/cache/ftccmap.c (FTC_CMAP_HASH): Ditto.
       
   861 
       
   862 	* src/cache/ftccache.h (FTC_NodeRec): The type of the
       
   863 	member `hash' is changed from FT_UInt32 to FT_PtrDist.
       
   864 
       
   865 	* src/cache/ftccache.h (FTC_Cache_Lookup): The type of the
       
   866 	argument `hash' is changed from FT_UInt32 to FT_PtrDist.
       
   867 	(FTC_Cache_NewNode): Ditto.
       
   868 	* src/cache/ftccache.c (ftc_cache_add): Ditto.
       
   869 	(FTC_Cache_Lookup): Ditto.  (FTC_Cache_NewNode): Ditto.
       
   870 	* src/cache/ftcglyph.h (FTC_GCache_Lookup): Ditto.
       
   871 	* src/cache/ftcglyph.c (FTC_GCache_Lookup): Ditto.
       
   872 
       
   873 	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): The type
       
   874 	of the internal variable `hash' is changed to FT_PtrDist
       
   875 	from FT_UInt32.  (FTC_ImageCache_LookupScaler): Ditto.
       
   876 	(FTC_SBitCache_Lookup): Ditto.
       
   877 	(FTC_SBitCache_LookupScaler): Ditto.
       
   878 	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto.
       
   879 	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Ditto.
       
   880 	Also the type of the internal variable `_idx' is changed to
       
   881 	FT_PtrDist from FT_UFast for better pointer calculation.
       
   882 
       
   883 2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   884 
       
   885 	[cache] Hide internal macros incompatible with LLP64.
       
   886 
       
   887 	`FT_POINTER_TO_ULONG', `FTC_FACE_ID_HASH', and
       
   888 	`FTC_IMAGE_TYPE_HASH' are enclosed by
       
   889 	FT_CONFIG_OPTION_OLD_INTERNALS and hidden from
       
   890 	normal clients.
       
   891 
       
   892 	For the history of these macros, see the investigation:
       
   893 	http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html
       
   894 
       
   895 2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   896 
       
   897 	Change the type of `FT_MEM_VAL' from FT_ULong to FT_PtrDist.
       
   898 
       
   899 	On LLP64 platforms (e.g. Win64), unsigned long (32-bit)
       
   900 	cannot cover the memory address (64-bit).  `FT_MEM_VAL' is
       
   901 	used for hashing only and not dereferred, so using signed
       
   902 	type FT_PtrDist is safe.
       
   903 
       
   904 	* src/base/ftdbgmem.c (FT_MEM_VAL): Change the type of the
       
   905 	return value from FT_ULong to FT_PtrDist.
       
   906 	(ft_mem_table_resize): The type of hash is changed to
       
   907 	FT_PtrDist.  (ft_mem_table_get_nodep): Ditto.
       
   908 
       
   909 2010-10-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   910 
       
   911 	Replace "%lx" for memory address by "%p", LLP64 platforms.
       
   912 
       
   913 	On LLP64 platforms (e.g. Win64), long (32-bit) cannot cover
       
   914 	the memory address (64-bit).  Also the casts from the pointer
       
   915 	type to long int should be removed to preserve the address
       
   916 	correctly.
       
   917 
       
   918 	* src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p".
       
   919 	(End_Profile) Ditto.
       
   920 	* src/truetype/ttinterp.c (Init_Context): Ditto.
       
   921 
       
   922 2010-10-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
       
   923 
       
   924 	Fix thinko in spline flattening.
       
   925 
       
   926 	FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL.
       
   927 
       
   928 	* src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and
       
   929 	replace it everywhere with ONE_PIXEL/8.
       
   930 
       
   931 2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   932 
       
   933 	[raccess] Skip unrequired resource access rules by Darwin VFS.
       
   934 
       
   935 	When a resource fork access rule by Darwin VFS could open the
       
   936 	resource fork but no font is found in it, the rest of rules
       
   937 	by Darwin VFS are skipped.  It reduces the warnings of the
       
   938 	deprecated resource fork access method by recent Darwin kernel.
       
   939 	Fix MacPorts ticket #18859:
       
   940 		http://trac.macports.org/ticket/18859
       
   941 
       
   942 	* src/base/ftobjs.c (load_face_in_embedded_rfork):
       
   943 	When `FT_Stream_New' returns FT_Err_Cannot_Open_Stream, it
       
   944 	means that the file is possible to be `fopen'-ed but zero-sized.
       
   945 	Also there is a case that the resource fork is not zero-sized,
       
   946 	but no supported font exists in it.  If a rule by Darwin VFS
       
   947 	falls into such cases, there is no need to try other Darwin VFS
       
   948 	rules anymore.  Such cases are marked by vfs_rfork_has_no_font.
       
   949 	If it is TRUE, the Darwin VFS rules are skipped.
       
   950 
       
   951 2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   952 
       
   953 	[raccess] Grouping resource access rules based on Darwin VFS.
       
   954 
       
   955 	MacOS X/Darwin kernel supports a few tricky methods to access
       
   956 	a resource fork via ANSI C or POSIX interface.  Current resource
       
   957 	fork accessor tries all possible methods to support all kernels.
       
   958 	But if a method could open a resource fork but no font is found,
       
   959 	there is no need to try other methods older than tested method.
       
   960 	To determine whether the rule index is for Darwin VFS, a local
       
   961 	function `ftrfork.c::raccess_rule_by_darwin_vfs' is introduced.
       
   962 	To use this function in ftobjs.c etc but it should be inlined,
       
   963 	it is exposed by ftbase.h.
       
   964 
       
   965 	* src/base/ftrfork.c (FT_RFork_Rule): New enum type to identify
       
   966 	the rules to access the resource fork.
       
   967 	(raccess_guess_rec): New structure to bind the rule function and
       
   968 	rule enum type.
       
   969 	(FT_Raccess_Guess): The list of the rule functions is replaced by
       
   970 	(raccess_guess_table): This.  This is exposed to be used by other
       
   971 	intra module functions.
       
   972 	(raccess_rule_by_darwin_vfs): A function to return a boolean
       
   973 	if the rule specified by the rule index is based on Darwin VFS.
       
   974 
       
   975 2010-10-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
   976 
       
   977 	Prevent to open a FT_Stream for zero-sized file on non-Unix.
       
   978 
       
   979 	builds/unix/ftsystem.c prevents to open an useless stream from
       
   980 	zero-sized file and returns FT_Err_Cannot_Open_Stream, but the
       
   981 	stream drivers for ANSI C, Amiga and VMS return useless streams.
       
   982 	For cross-platform consistency, all stream drivers should act
       
   983 	same.
       
   984 
       
   985 	* src/base/ftsystem.c (FT_Stream_Open): If the size of the opened
       
   986 	file is zero, FT_Err_Cannot_Open_Stream is returned.
       
   987 	* builds/amiga/src/base/ftsystem.c (FT_Stream_Open): Ditto.
       
   988 	* src/vms/ftsystem.c (FT_Stream_Open): Ditto.
       
   989 
       
   990 2010-10-12  Werner Lemberg  <wl@gnu.org>
       
   991 
       
   992 	Fix Savannah bug #31310.
       
   993 
       
   994 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
       
   995 	invalid `runcnt' values.
       
   996 
       
   997 2010-10-08  Chris Liddell  <chris.liddell@artifex.com>
       
   998 
       
   999 	Fix Savannah bug #31275.
       
  1000 
       
  1001 	* src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H.
       
  1002 
       
  1003 2010-10-06  Werner Lemberg  <wl@gnu.org>
       
  1004 
       
  1005 	[truetype] Improve error handling of `SHZ' bytecode instruction.
       
  1006 	Problem reported by Chris Evans <scarybeasts@gmail.com>.
       
  1007 
       
  1008 	* src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'.
       
  1009 
       
  1010 2010-10-05  Werner Lemberg  <wl@gnu.org>
       
  1011 
       
  1012 	Fix Savannah bug #31253.
       
  1013 	Patch submitted by an anonymous reporter.
       
  1014 
       
  1015 	* configure: Use `awk' instead of `sed' to manipulate output of `ls
       
  1016 	-id'.
       
  1017 
       
  1018 2010-10-03  Werner Lemberg  <wl@gnu.org>
       
  1019 
       
  1020 	* Version 2.4.3 released.
       
  1021 	=========================
       
  1022 
       
  1023 
       
  1024 	Tag sources with `VER-2-4-3'.
       
  1025 
       
  1026 	* docs/CHANGES: Updated.
       
  1027 
       
  1028 	* docs/VERSION.DLL: Update documentation and bump version number to
       
  1029 	2.4.3
       
  1030 
       
  1031 	* README, Jamfile (RefDoc),
       
  1032 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
       
  1033 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
       
  1034 	builds/win32/visualc/freetype.dsp,
       
  1035 	builds/win32/visualc/freetype.vcproj,
       
  1036 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
       
  1037 	builds/win32/visualce/freetype.vcproj,
       
  1038 	builds/win32/visualce/index.html,
       
  1039 	builds/wince/vc2005-ce/freetype.vcproj,
       
  1040 	builds/wince/vc2005-ce/index.html,
       
  1041 	builds/wince/vc2008-ce/freetype.vcproj,
       
  1042 	builds/wince/vc2008-ce/index.html: s/2.4.2/2.4.3/, s/242/243/.
       
  1043 
       
  1044 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
       
  1045 
       
  1046 	* builds/unix/configure.raw (version_info): Set to 12:1:6.
       
  1047 
       
  1048 2010-10-03  Werner Lemberg  <wl@gnu.org>
       
  1049 
       
  1050 	Avoid `configure' issues with symbolic links.
       
  1051 	Based on a patch from Alexander Stohr <Alexander.Stohr@gmx.de>.
       
  1052 
       
  1053 	* configure: Compare directories using `ls -id'.
       
  1054 	Check existence of `reference' subdirectory before creating it.
       
  1055 
       
  1056 2010-10-02  Werner Lemberg  <wl@gnu.org>
       
  1057 
       
  1058 	Fix Savannah bug #31088 (sort of).
       
  1059 
       
  1060 	* src/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64
       
  1061 	function entries.
       
  1062 
       
  1063 2010-10-02  Werner Lemberg  <wl@gnu.org>
       
  1064 
       
  1065 	[smooth] Fix splitting of cubics for negative values.
       
  1066 
       
  1067 	Reported by Róbert Márki <gsmiko@gmail.com>; see
       
  1068 	http://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html.
       
  1069 
       
  1070 	* src/smooth/ftgrays.c (gray_render_cubic): Fix thinko.
       
  1071 
       
  1072 2010-10-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1073 
       
  1074 	Fix Savannah bug #31040.
       
  1075 
       
  1076 	* src/truetype/ttinterp.c (free_buffer_in_size): Remove.
       
  1077 	(TT_RunIns): Updated.
       
  1078 
       
  1079 2010-09-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1080 
       
  1081 	[sfnt] Make error message filling NULL names less verbose.
       
  1082 
       
  1083 	* src/sfnt/ttpost.c (load_format_20): Showing 1 summary message
       
  1084 	when we fill `post' names by NULL, instead of per-entry message.
       
  1085 
       
  1086 2010-09-20  Graham Asher  <graham.asher@btinternet.com>
       
  1087 	    David Bevan  <david.bevan@pb.com>
       
  1088 
       
  1089 	[smooth] Fix and improve spline flattening.
       
  1090 
       
  1091 	This fixes the flattening of cubic, S-shaped curves and speeds up
       
  1092 	the handling of both the conic and cubic arcs.
       
  1093 
       
  1094 	See the discussions on the freetype-devel mailing list in late
       
  1095 	August and September 2010 for details.
       
  1096 
       
  1097 	* src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): New macro.
       
  1098 	(TWorker): Remove `conic_level' and `cubic_level' elements.
       
  1099 	(gray_render_conic): Simplify algorithm.
       
  1100 	(gray_render_cubic): New algorithm; details are given in the code
       
  1101 	comments.
       
  1102 	(gray_convert_glyph): Remove heuristics.
       
  1103 
       
  1104 2010-09-19  Werner Lemberg  <wl@gnu.org>
       
  1105 
       
  1106 	Minor fixes.
       
  1107 
       
  1108 	* src/cff/cffload.c (cff_charset_compute_cids): `charset->sids[i]'
       
  1109 	is `FT_UShort'.
       
  1110 	(cff_index_access_element): Don't use additions in comparison.
       
  1111 	* src/sfnt/ttpost.c (load_format_20): Make `post_limit' of type
       
  1112 	`FT_Long'.
       
  1113 	Don't use additions in comparison.
       
  1114 	Improve tracing messages.
       
  1115 	(load_format_25, load_post_names): Make `post_limit' of type
       
  1116 	`FT_Long'.
       
  1117 
       
  1118 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1119 
       
  1120 	[cff] Truncate the element length at the end of the stream.
       
  1121 	See Savannah bug #30975.
       
  1122 
       
  1123 	* src/cff/cffload.c (cff_index_access_element): `off2', the offset
       
  1124 	to the next element is truncated at the end of the stream to prevent
       
  1125 	invalid I/O.  As `off1', the offset to the requested element has
       
  1126 	been checked by `FT_STREAM_SEEK', `off2' should be checked
       
  1127 	similarly.
       
  1128 
       
  1129 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1130 
       
  1131 	[cff] Ignore CID > 0xFFFFU.
       
  1132 	See Savannah bug #30975.
       
  1133 
       
  1134 	* src/cff/cffload.c (cff_charset_compute_cids): Ignore CID if
       
  1135 	greater than 0xFFFFU.  CFF font spec does not mention maximum CID in
       
  1136 	the font, but PostScript and PDF spec define that maximum CID is
       
  1137 	0xFFFFU.
       
  1138 
       
  1139 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1140 
       
  1141 	[cff] Make trace message in` cff_charset_load' verbose.
       
  1142 	See Savannah bug #30975.
       
  1143 
       
  1144 	* src/cff/cffload.c (cff_charset_load): Report the original `nleft'
       
  1145 	and truncated `nleft'.
       
  1146 
       
  1147 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1148 
       
  1149 	[cff] Correct `max_cid' from CID array length to max CID.
       
  1150 	See Savannah bug #30975.
       
  1151 
       
  1152 	* src/cff/cffload.c (cff_charset_compute_cids): Don't increment
       
  1153 	max_cid after detecting max CID.  The array CFF_Charset->cids is
       
  1154 	allocated by max_cid + 1.
       
  1155 	(cff_charset_cid_to_gindex): Permit CID is less than or equal to
       
  1156 	CFF_Charset->max_cid.
       
  1157 	* src/cff/cffobjs.c (cff_face_init): FT_Face->num_glyphs is
       
  1158 	calculated as CFF_Charset->max_cid + 1.
       
  1159 
       
  1160 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1161 
       
  1162 	[truetype] Sanitize the broken offsets in `loca'.
       
  1163 	See Savannah bug #31040.
       
  1164 
       
  1165 	* src/truetype/ttpload.c (tt_face_get_location): If `pos1', the
       
  1166 	offset to the requested entry in `glyf' exceeds the end of the
       
  1167 	table, return offset=0, length=0.  If `pos2', the offset to the next
       
  1168 	entry in `glyf' exceeds the end of the table, truncate the entry
       
  1169 	length at the end of `glyf' table.
       
  1170 
       
  1171 2010-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1172 
       
  1173 	[sfnt] Prevent overrunning in `post' table parser.
       
  1174 	See Savannah bug #31040.
       
  1175 
       
  1176 	* src/sfnt/ttpost.c (load_post_names): Get the length of `post'
       
  1177 	table and pass the limit of `post' table to `load_format_20' and
       
  1178 	`load_format_25'.
       
  1179 	(load_format_20): Stop the parsing when we reached at the limit of
       
  1180 	`post' table.  If more glyph names are required, they are filled by
       
  1181 	NULL names.
       
  1182 
       
  1183 2010-09-17  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1184 
       
  1185 	[truetype] Don't duplicate size->twilight structure to be freed.
       
  1186 	See Savannah bug #31040 for detail.
       
  1187 
       
  1188 	* src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate
       
  1189 	FT_GlyphZoneRec size->twilight to be freed.  If duplicated,
       
  1190 	`FT_FREE' erases the duplicated pointers only and leave original
       
  1191 	pointers.  They can cause the double-free crash when the burst
       
  1192 	errors occur in TrueType interpreter and `free_buffer_in_size' is
       
  1193 	invoked repeatedly.
       
  1194 
       
  1195 2010-09-15  Werner Lemberg  <wl@gnu.org>
       
  1196 
       
  1197 	Make bytecode debugging with FontForge work again.
       
  1198 
       
  1199 	* src/truetype/ttinterp.c (TT_RunIns): Don't call
       
  1200 	`free_buffer_in_size' in case of error if a debugger is active.
       
  1201 
       
  1202 2010-09-14  Werner Lemberg  <wl@gnu.org>
       
  1203 
       
  1204 	Improve tracing messages.
       
  1205 
       
  1206 	* src/truetype/ttinterp.c (TT_RunIns): Improve wording of tracing
       
  1207 	message.
       
  1208 	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Add
       
  1209 	tracing message.
       
  1210 	* src/truetype/ttgload.c (tt_loader_init): Add tracing message.
       
  1211 	* src/cache/ftcsbits.c (ftc_snode_load): Emit tracing message if
       
  1212 	glyph doesn't fit into a small bitmap container.
       
  1213 
       
  1214 2010-09-13  Werner Lemberg  <wl@gnu.org>
       
  1215 
       
  1216 	Fix minor issues reported by <muktha.narayan@wipro.com>.
       
  1217 
       
  1218 	* src/autofit/aflatin.c (af_latin_compute_stem_width): Remove
       
  1219 	redundant conditional check.
       
  1220 	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Ditto.
       
  1221 	* src/cff/cffload.c (cff_encoding_load): Remove conditional check
       
  1222 	which always evaluates to `true'.
       
  1223 	* src/pshinter/pshalgo.c (ps_glyph_interpolate_strong_points):
       
  1224 	Ditto.
       
  1225 	* src/truetype/ttinterp.c (Ins_IUP): Ditto.
       
  1226 	* src/cid/cidgload.c (cid_slot_load_glyph): Don't check for NULL if
       
  1227 	value is already dereferenced.
       
  1228 	* src/winfonts/winfnt.c (FNT_Load_Glyph): Fix check of `face'.
       
  1229 
       
  1230 2010-08-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1231 
       
  1232 	Ignore the environmental setting of LIBTOOL.
       
  1233 	Patch is suggested by Adrian Bunk, to prevent unexpected
       
  1234 	reflection of environmental LIBTOOL.  See:
       
  1235 	http://savannah.nongnu.org/patch/?7290
       
  1236 
       
  1237 	* builds/unix/unix-cc.in: LIBTOOL is unconditionally set to
       
  1238 	$(FT_LIBTOOL_DIR)/libtool.  FT_LIBTOOL_DIR is set to $(BUILD_DIR)
       
  1239 	by default.
       
  1240 	* configure: When configured for the building out of source tee,
       
  1241 	FT_LIBTOOL_DIR is set to $(OBJ_DIR).
       
  1242 
       
  1243 2010-08-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1244 
       
  1245 	[truetype] Decrease the trace level catching the interpreter error.
       
  1246 
       
  1247 	* src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level
       
  1248 	showing the error when the interpreter returns with an error,
       
  1249 	from` FT_TRACE7' to `FT_TRACE1'.
       
  1250 
       
  1251 2010-08-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1252 
       
  1253 	[truetype] Prevent bytecode reuse after the interpretation error.
       
  1254 
       
  1255 	* src/truetype/ttinterp.c (free_buffer_in_size): New function to
       
  1256 	free the buffer allocated during the interpretation of this glyph.
       
  1257 	(TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if
       
  1258 	an error occurs in the bytecode interpretation.  The interpretation
       
  1259 	of invalid bytecode may break the function definitions and referring
       
  1260 	them in later interpretation is danger.  By unsetting these flags,
       
  1261 	`fpgm' and `prep' tables are executed again in next interpretation.
       
  1262 
       
  1263 	This fixes Savannah bug #30798, reported by Robert Święcki.
       
  1264 
       
  1265 2010-08-29  Werner Lemberg  <wl@gnu.org>
       
  1266 
       
  1267 	[ftraster] Pacify compiler.
       
  1268 
       
  1269 	* src/raster/ftraster.c (ft_black_new) [_STANDALONE_]: `memory' is
       
  1270 	not used.
       
  1271 
       
  1272 2010-08-29  Werner Lemberg  <wl@gnu.org>
       
  1273 
       
  1274 	[cff] Allow SIDs >= 65000.
       
  1275 
       
  1276 	* src/cff/cffload.c (cff_charset_load): Fix change from 2009-03-20:
       
  1277 	The threshold for SIDs is not applicable here.  I misinterpreted the
       
  1278 	`SID values 65000 and above are available for implementation use'
       
  1279 	sentence in the CFF specification.
       
  1280 
       
  1281 	Problem reported by Ivan Ninčić <inincic@pdftron.com>.
       
  1282 
       
  1283 2010-08-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1284 
       
  1285 	Force hinting when the font lacks its familyname.
       
  1286 
       
  1287 	In Type42 or Type11 font embedded in PostScript & PDF, TrueType sfnt
       
  1288 	stream may lack `name' table because they are not required.  Hinting
       
  1289 	for nameless fonts is safer for PDFs including embedded Chinese
       
  1290 	fonts.  Written by David Bevan, see:
       
  1291 
       
  1292 	http://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html
       
  1293 	http://lists.freedesktop.org/archives/poppler/2010-August/006310.html
       
  1294 
       
  1295 	* src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by
       
  1296 	nameless font is given, TRUE is returned to enable hinting.
       
  1297 
       
  1298 2010-08-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1299 
       
  1300 	Register yet another tricky TrueType font.
       
  1301 
       
  1302 	* src/truetype/ttobjs.c (tt_check_trickyness): Add `HuaTianKaiTi?',
       
  1303 	a Kaishu typeface paired with `HuaTianSongTi?' by Huatian
       
  1304 	Information Industry.
       
  1305 
       
  1306 2010-08-17  Teijo Kinnunen <Teijo.Kinnunen@nuance.com>
       
  1307 
       
  1308 	Fix Savannah bug #30788.
       
  1309 
       
  1310 	* src/cache/ftccache.c (FTC_Cache_Clear): Check `cache->buckets' for
       
  1311 	NULL too.
       
  1312 
       
  1313 2010-08-10  Werner Lemberg  <wl@gnu.org>
       
  1314 
       
  1315 	Try to fix Savannah bug #30717 (and probably #30719 too).
       
  1316 
       
  1317 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another
       
  1318 	overflow test for `width' and `height'.
       
  1319 
       
  1320 2010-08-06  Werner Lemberg  <wl@gnu.org>
       
  1321 
       
  1322 	* Version 2.4.2 released.
       
  1323 	=========================
       
  1324 
       
  1325 
       
  1326 	Tag sources with `VER-2-4-2'.
       
  1327 
       
  1328 	* docs/CHANGES: Updated.
       
  1329 
       
  1330 	* docs/VERSION.DLL: Update documentation and bump version number to
       
  1331 	2.4.2
       
  1332 
       
  1333 	* README, Jamfile (RefDoc),
       
  1334 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
       
  1335 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
       
  1336 	builds/win32/visualc/freetype.dsp,
       
  1337 	builds/win32/visualc/freetype.vcproj,
       
  1338 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
       
  1339 	builds/win32/visualce/freetype.vcproj,
       
  1340 	builds/win32/visualce/index.html,
       
  1341 	builds/wince/vc2005-ce/freetype.vcproj,
       
  1342 	builds/wince/vc2005-ce/index.html,
       
  1343 	builds/wince/vc2008-ce/freetype.vcproj,
       
  1344 	builds/wince/vc2008-ce/index.html: s/2.4.1/2.4.2/, s/241/242/.
       
  1345 
       
  1346 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
       
  1347 
       
  1348 	* builds/unix/configure.raw (version_info): Set to 12:0:6.
       
  1349 
       
  1350 2010-08-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1351 
       
  1352 	Fix Savannah bug #30648.
       
  1353 
       
  1354 	* src/base/ftobjs.c (FT_Done_Library): Specify the order of font
       
  1355 	drivers during the face closing process.  Type42 faces should be
       
  1356 	closed before TrueType faces, because a Type42 face refers to
       
  1357 	another internal TrueType face which is created from sfnt[] array on
       
  1358 	the memory.
       
  1359 
       
  1360 2010-08-06  Yuriy Kaminskiy  <yumkam@mail.ru>
       
  1361 
       
  1362 	[raster] Fix valgrind warning.
       
  1363 
       
  1364 	* src/raster/ftraster.c (Decompose_Curve) <default>: Access point[0]
       
  1365 	only if we don't hit `limit'.
       
  1366 
       
  1367 2010-08-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1368 
       
  1369 	Fix Savannah bug #30658.
       
  1370 
       
  1371 	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check that the total
       
  1372 	length of collected POST segments does not overrun the allocated
       
  1373 	buffer.
       
  1374 
       
  1375 2010-08-06  Yuriy Kaminskiy  <yumkam@mail.ru>
       
  1376 
       
  1377 	Fix conditional usage of FT_MulFix_i386.
       
  1378 	With -ansi flag, gcc does not define `i386', only `__i386__'.
       
  1379 
       
  1380 	* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in:
       
  1381 	s/i386/__i386__/.
       
  1382 
       
  1383 2010-08-05  Werner Lemberg  <wl@gnu.org>
       
  1384 
       
  1385 	Fix Savannah bug #30657.
       
  1386 
       
  1387 	* src/truetype/ttinterp.c (BOUNDSL): New macro.
       
  1388 	Change `BOUNDS' to `BOUNDSL' where appropriate.
       
  1389 
       
  1390 	* src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of
       
  1391 	`cvtSize'.
       
  1392 
       
  1393 2010-08-05  Werner Lemberg  <wl@gnu.org>
       
  1394 
       
  1395 	Fix Savannah bug #30656.
       
  1396 
       
  1397 	* src/type42/t42parse.c (t42_parse_sfnts): Protect against negative
       
  1398 	string_size.
       
  1399 	Fix comparison.
       
  1400 
       
  1401 2010-08-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1402 
       
  1403 	[cff] Don't use any values in decoder after parsing error.
       
  1404 
       
  1405 	* src/cff/cffgload.c (cff_slot_load): Skip the evaluations
       
  1406 	of the values in decoder, if `cff_decoder_parse_charstrings'
       
  1407 	returns any error.
       
  1408 
       
  1409 2010-08-04  Werner Lemberg  <wl@gnu.org>
       
  1410 
       
  1411 	Fix Savannah bug #30644.
       
  1412 
       
  1413 	* src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison.
       
  1414 
       
  1415 2010-08-04  Werner Lemberg  <wl@gnu.org>
       
  1416 
       
  1417 	`make devel' fails if FT_CONFIG_OPTION_OLD_INTERNALS is set.
       
  1418 
       
  1419 	* devel/ftoption.h: Synchronize with
       
  1420 	include/freetype/config/ftoption.h.
       
  1421 
       
  1422 2010-08-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1423 
       
  1424 	[cff] Improve stack overflow test.
       
  1425 
       
  1426 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Check stack
       
  1427 	after execution of operations too.
       
  1428 
       
  1429 2010-07-18  Werner Lemberg  <wl@gnu.org>
       
  1430 
       
  1431 	Add reference counters and to FT_Library and FT_Face objects.
       
  1432 
       
  1433 	* include/freetype/freetype.h (FT_Reference_Face): New function.
       
  1434 	* include/freetype/ftmodapi.h (FT_Rererence_Library): New function.
       
  1435 
       
  1436 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec,
       
  1437 	FT_LibraryRec): New field `refcount'.
       
  1438 
       
  1439 	* src/base/ftobjs.c (FT_Open_Face, FT_New_Library): Handle
       
  1440 	`refcount'.
       
  1441 	(FT_Reference_Face, FT_Reference_Library): Implement new functions.
       
  1442 	(FT_Done_Face, FT_Done_Library): Handle `refcount'.
       
  1443 
       
  1444 	* docs/CHANGES: Updated.
       
  1445 
       
  1446 2010-07-18  Werner Lemberg  <wl@gnu.org>
       
  1447 
       
  1448 	* Version 2.4.1 released.
       
  1449 	=========================
       
  1450 
       
  1451 
       
  1452 	Tag sources with `VER-2-4-1'.
       
  1453 
       
  1454 	* docs/CHANGES: Updated.
       
  1455 
       
  1456 	* docs/VERSION.DLL: Update documentation and bump version number to
       
  1457 	2.4.1.
       
  1458 
       
  1459 	* README, Jamfile (RefDoc),
       
  1460 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
       
  1461 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
       
  1462 	builds/win32/visualc/freetype.dsp,
       
  1463 	builds/win32/visualc/freetype.vcproj,
       
  1464 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
       
  1465 	builds/win32/visualce/freetype.vcproj,
       
  1466 	builds/win32/visualce/index.html,
       
  1467 	builds/wince/vc2005-ce/freetype.vcproj,
       
  1468 	builds/wince/vc2005-ce/index.html,
       
  1469 	builds/wince/vc2008-ce/freetype.vcproj,
       
  1470 	builds/wince/vc2008-ce/index.html: s/2.4.0/2.4.1/, s/240/241/.
       
  1471 
       
  1472 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
       
  1473 
       
  1474 	* builds/unix/configure.raw (version_info): Set to 11:1:5.
       
  1475 
       
  1476 2010-07-17  Werner Lemberg  <wl@gnu.org>
       
  1477 
       
  1478 	[cff] Final try to fix `hintmask' and `cntrmask' limit check.
       
  1479 
       
  1480 	Problem reported by Tobias Wolf <towolf@gmail.com>.
       
  1481 
       
  1482 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
       
  1483 	<cff_op_hintmask>: Sigh.  I'm apparently too silly to fix this
       
  1484 	correctly in less than three tries.
       
  1485 
       
  1486 2010-07-12  Werner Lemberg  <wl@gnu.org>
       
  1487 
       
  1488 	* Version 2.4.0 released.
       
  1489 	=========================
       
  1490 
       
  1491 
       
  1492 	Tag sources with `VER-2-4-0'.
       
  1493 
       
  1494 	* docs/CHANGES: Updated.
       
  1495 
       
  1496 	* docs/VERSION.DLL: Update documentation and bump version number to
       
  1497 	2.4.0.
       
  1498 
       
  1499 	* README, Jamfile (RefDoc),
       
  1500 	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
       
  1501 	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
       
  1502 	builds/win32/visualc/freetype.dsp,
       
  1503 	builds/win32/visualc/freetype.vcproj,
       
  1504 	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
       
  1505 	builds/win32/visualce/freetype.vcproj,
       
  1506 	builds/win32/visualce/index.html,
       
  1507 	builds/wince/vc2005-ce/freetype.vcproj,
       
  1508 	builds/wince/vc2005-ce/index.html,
       
  1509 	builds/wince/vc2008-ce/freetype.vcproj,
       
  1510 	builds/wince/vc2008-ce/index.html: s/2.3.12/2.4.0/, s/2312/240/.
       
  1511 
       
  1512 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 4.
       
  1513 	(FREETYPE_PATCH): Set to 0.
       
  1514 
       
  1515 	* builds/unix/configure.raw (version_info): Set to 11:0:5.
       
  1516 
       
  1517 2010-07-12  Werner Lemberg  <wl@gnu.org>
       
  1518 
       
  1519 	Remove C++ warnings.
       
  1520 
       
  1521 	*/*: Initialize pointers where necessary to make g++ happy.
       
  1522 
       
  1523 2010-07-12  malc  <av1474@comtv.ru>
       
  1524 	    Richard Henderson  <rth@redhat.com>
       
  1525 
       
  1526 	Fix type-punning issues with C++.
       
  1527 
       
  1528 	* include/freetype/internal/ftmemory.h (FT_ASSIGNP) [__cplusplus]:
       
  1529 	Emulate a `typeof' operator with an inline template which uses
       
  1530 	`static_cast'.
       
  1531 
       
  1532 2010-07-11  Werner Lemberg  <wl@gnu.org>
       
  1533 
       
  1534 	Fix C++ compilation issue.
       
  1535 
       
  1536 	* src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Fix
       
  1537 	type of `dot' variable.
       
  1538 
       
  1539 2010-07-10  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1540 
       
  1541 	Fix another case reported in Savannah bug #30373.
       
  1542 	Permit a face for Type1, Type42 and CFF without charmap,
       
  1543 	patch by Tor Andersson.
       
  1544 
       
  1545 	* src/type1/t1objs.c (T1_Face_Init): Reset the error if it
       
  1546 	is FT_Err_No_Unicode_Glyph_Name.
       
  1547 	* src/type42/t42objs.c (T42_Face_Init): Ditto.
       
  1548 	* src/cff/cffobjs.c (cff_face_init): Ditto.
       
  1549 
       
  1550 2010-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1551 
       
  1552 	Use defined macros to set {platform,encoding}_id.
       
  1553 
       
  1554 	* src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to
       
  1555 	set charmap.{platfom,encoding}_id.
       
  1556 	* src/pcf/pcfdrivr.c: Ditto.
       
  1557 	* src/winfonts/winfnt.c: Ditto.
       
  1558 	* src/type1/t1objs.c: Ditto.
       
  1559 	* src/type42/t42objs.c: Ditto.
       
  1560 	* src/cff/cffobjs.c: Ditto.
       
  1561 	* src/pfr/pfrobjs.c: Ditto.
       
  1562 
       
  1563 2010-07-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1564 
       
  1565 	Fix Savannah bug #30373.
       
  1566 	Too serious check of errors by `FT_CMap_New' since 2010-07-04
       
  1567 	is fixed. Reported by Tor Andersson.
       
  1568 
       
  1569 	* include/freetype/fterrdef.h
       
  1570 	(PSnames_Err_No_Unicode_Glyph_Name): New error code to
       
  1571 	indicate the Unicode charmap synthesis failed because
       
  1572 	no Unicode glyph name is found.
       
  1573 
       
  1574 	* src/psnames/psmodule.c (ps_unicodes_init): Return
       
  1575 	PSnames_Err_No_Unicode_Glyph_Name when no Unicode glyph name
       
  1576 	is found in the font.
       
  1577 	* src/cff/cffcmap.c (cff_cmap_unicode_init): Return
       
  1578 	CFF_Err_No_Unicode_Glyph_Name when no SID is available.
       
  1579 
       
  1580 	* src/type1/t1objs.c (T1_Face_Init): Proceed if `FT_CMap_New'
       
  1581 	is failed by the lack of Unicode glyph name.
       
  1582 	* src/type42/t42objs.c (T42_Face_Init): Ditto.
       
  1583 	* src/cff/cffobjs.c (cff_face_init): Ditto.
       
  1584 
       
  1585 2010-07-09  Ken Sharp  <ken.sharp@artifex.com>
       
  1586 
       
  1587 	Make ftraster.c compile in stand-alone mode with MSVC compiler.
       
  1588 
       
  1589 	* src/raster/ftmisc.h (FT_Int64) [_WIN32, _WIN64]: Fix typedef
       
  1590 	since there is no `inttypes.h' for MSVC.
       
  1591 
       
  1592 2010-07-08  Werner Lemberg  <wl@gnu.org>
       
  1593 
       
  1594 	Fix Savannah bug #30361.
       
  1595 
       
  1596 	* src/truetype/ttinterp.c (Ins_IUP): Fix bounds check.
       
  1597 
       
  1598 2010-07-06  Werner Lemberg  <wl@gnu.org>
       
  1599 
       
  1600 	Pacify compiler.
       
  1601 
       
  1602 	* src/cff/cffload.c (cff_index_get_pointers): Initialize
       
  1603 	`new_bytes'.
       
  1604 
       
  1605 2010-07-05  Eugene A. Shatokhin  <spectre@ispras.ru>
       
  1606 
       
  1607 	Fix Savannah bug #27648.
       
  1608 
       
  1609 	* src/base/ftobjs.c (ft_remove_renderer, FT_Add_Module): Call
       
  1610 	`raster_done' only if we have an outline glyph format.
       
  1611 
       
  1612 2010-07-05  Werner Lemberg  <wl@gnu.org>
       
  1613 
       
  1614 	Fix Savannah bug #30030.
       
  1615 
       
  1616 	* builds/win32/*/freetype.vcproj: Add ftxf86.c.
       
  1617 
       
  1618 2010-07-05  Werner Lemberg  <wl@gnu.org>
       
  1619 
       
  1620 	[cff] Next try to fix `hintmask' and `cntrmask' limit check.
       
  1621 
       
  1622 	Problem reported by malc <av1474@comtv.ru>.
       
  1623 
       
  1624 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
       
  1625 	<cff_op_hintmask>: It is possible that there is just a single byte
       
  1626 	after the `hintmask' or `cntrmask', e.g., a `return' instruction.
       
  1627 
       
  1628 2010-07-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1629 
       
  1630 	Restrict the number of the charmaps in a rogue-compatible mode.
       
  1631 	Fix for Savannah bug #30059.
       
  1632 
       
  1633 	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Replace `16' the
       
  1634 	minimum character code passed by a legacy rogue client by...
       
  1635 	* include/freetype/config/ftoption.h (FT_MAX_CHARMAP_CACHEABLE):
       
  1636 	This.  It is undefined when FT_CONFIG_OPTION_OLD_INTERNALS is
       
  1637 	undefined (thus the rogue client compatibility is not required).
       
  1638 
       
  1639 	* src/cff/cffobjs.c (cff_face_init): Abort the automatic
       
  1640 	selection or synthesis of Unicode cmap subtable when the charmap
       
  1641 	index exceeds FT_MAX_CHARMAP_CACHEABLE.
       
  1642 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Issue error message
       
  1643 	when the charmap index exceeds FT_MAX_CHARMAP_CACHEABLE.
       
  1644 
       
  1645 	* src/base/ftobjs.c (find_unicode_charmap): When Unicode charmap
       
  1646 	is found after FT_MAX_CHARMAP_CACHEABLE, ignore it and search
       
  1647 	earlier one.
       
  1648 	(find_variant_selector_charmap): When UVS charmap is found after
       
  1649 	FT_MAX_CHARMAP_CACHEABLE, ignore it and search earlier one.
       
  1650 	(FT_Select_Charmap): When a charmap matching with requested
       
  1651 	encoding but after FT_MAX_CHARMAP_CACHEABLE, ignore and search
       
  1652 	earlier one.
       
  1653 	(FT_Set_Charmap): When a charmap matching with requested
       
  1654 	charmap but after FT_MAX_CHARMAP_CACHEABLE, ignore and search
       
  1655 	earlier one.
       
  1656 	(FT_Get_Charmap_Index): When a requested charmap is found
       
  1657 	after FT_MAX_CHARMAP_CACHEABLE, return the inverted charmap
       
  1658 	index.
       
  1659 
       
  1660 2010-07-04  Werner Lemberg  <wl@gnu.org>
       
  1661 
       
  1662 	TrueType hinting is no longer patented.
       
  1663 
       
  1664 	* include/freetype/config/ftoption.h, devel/ftoption.h
       
  1665 	(TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define.
       
  1666 	(TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine.
       
  1667 
       
  1668 	* docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated.
       
  1669 	* docs/TRUETYPE, docs/PATENTS: Removed.
       
  1670 
       
  1671 2010-07-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1672 
       
  1673 	Check error value by `FT_CMap_New'.
       
  1674 
       
  1675 	* src/cff/cffobjs.c (cff_face_init): Check error value by
       
  1676 	`FT_CMap_New'.
       
  1677 	* src/pfr/pfrobjs.c (pfr_face_init): Ditto.
       
  1678 	* src/type1/t1jobjs.c (T1_Face_Init): Ditto.
       
  1679 	* src/type42/t42jobjs.c (T42_Face_Init): Ditto.
       
  1680 
       
  1681 2010-07-03  Werner Lemberg  <wl@gnu.org>
       
  1682 
       
  1683 	Make ftgrays.c compile stand-alone again.
       
  1684 
       
  1685 	* src/smooth/ftgrays.c [_STANDALONE_]: Include `stddef.h'.
       
  1686 	(FT_INT_MAX, FT_PtrDist)[_STANDALONE_]: Define.
       
  1687 
       
  1688 2010-07-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1689 
       
  1690 	Additional fix for Savannah bug #30306.
       
  1691 
       
  1692 	* src/base/ftobjs.c (Mac_Read_POST_Resource): If the type of the
       
  1693 	POST fragment is 0, the segment is completely ignored.  The declared
       
  1694 	length of the segment is not cared at all.  According to Adobe
       
  1695 	Technical Note 5040, type 0 segment is a comment only and should not
       
  1696 	be loaded for the interpreter.  Reported by Robert Święcki.
       
  1697 
       
  1698 2010-07-01  Werner Lemberg  <wl@gnu.org>
       
  1699 
       
  1700 	[truetype] Protect against code range underflow.
       
  1701 
       
  1702 	* src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow
       
  1703 	negative IP values.
       
  1704 
       
  1705 2010-07-01  Werner Lemberg  <wl@gnu.org>
       
  1706 
       
  1707 	[truetype] Add rudimentary tracing for bytecode instructions.
       
  1708 
       
  1709 	* src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New
       
  1710 	array.
       
  1711 	(TT_RunIns): Trace opcodes.
       
  1712 
       
  1713 2010-06-30  Werner Lemberg  <wl@gnu.org>
       
  1714 
       
  1715 	Fix Savannah bug #30263.
       
  1716 
       
  1717 	* src/smooth/ftgrays.c (gray_render_span): Use cast to `unsigned
       
  1718 	int' to avoid integer overflow.
       
  1719 
       
  1720 	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use smaller
       
  1721 	threshold values for `width' and `height'.  This is not directly
       
  1722 	related to the bug fix but makes sense anyway.
       
  1723 
       
  1724 2010-07-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1725 
       
  1726 	Initial fix for Savannah bug #30306.
       
  1727 
       
  1728 	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check `rlen', the
       
  1729 	length of fragment declared in the POST fragment header, and prevent
       
  1730 	an underflow in length calculation.  Some fonts set the length to
       
  1731 	zero in spite of the existence of a following 16bit `type'.
       
  1732 	Reported by Robert Święcki.
       
  1733 
       
  1734 2010-07-01  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1735 
       
  1736 	Additional fix for Savannah bug #30248 and #30249.
       
  1737 
       
  1738 	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check the buffer size
       
  1739 	during gathering PFB fragments embedded in LaserWriter PS font for
       
  1740 	Macintosh.  Reported by Robert Święcki.
       
  1741 
       
  1742 2010-06-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
       
  1743 
       
  1744 	Minor optimizations by avoiding divisions.
       
  1745 
       
  1746 	* src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning):
       
  1747 	Replace divisions with multiplication in comparisons.
       
  1748 
       
  1749 2010-06-29  Werner Lemberg  <wl@gnu.org>
       
  1750 
       
  1751 	Fix minor tracing issues.
       
  1752 
       
  1753 	* src/cff/cffgload.c, src/truetype/ttgload.c: Adjust tracing levels.
       
  1754 
       
  1755 2010-06-27  Werner Lemberg  <wl@gnu.org>
       
  1756 
       
  1757 	[cff] Really fix `hintmask' and `cntrmask' limit check.
       
  1758 
       
  1759 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
       
  1760 	<cff_op_hintmask>: Fix thinko and handle tracing also.
       
  1761 
       
  1762 2010-06-27  Werner Lemberg  <wl@gnu.org>
       
  1763 
       
  1764 	Fix valgrind warning.
       
  1765 
       
  1766 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Initialize
       
  1767 	`result' array.
       
  1768 
       
  1769 2010-06-27  Werner Lemberg  <wl@gnu.org>
       
  1770 
       
  1771 	[cff] Fix memory leak.
       
  1772 
       
  1773 	* src/cff/cffgload.c (cff_operator_seac): Free charstrings even in
       
  1774 	case of errors.
       
  1775 
       
  1776 2010-06-27  Werner Lemberg  <wl@gnu.org>
       
  1777 
       
  1778 	[cff] Protect against invalid `hintmask' and `cntrmask' operators.
       
  1779 
       
  1780 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
       
  1781 	<cff_op_hintmask>: Ensure that we don't exceed `limit' while parsing
       
  1782 	the bit masks of the `hintmask' and `cntrmask' operators.
       
  1783 
       
  1784 2010-06-26  Werner Lemberg  <wl@gnu.org>
       
  1785 
       
  1786 	Fix PFR change 2010-06-24.
       
  1787 
       
  1788 	* src/pfr/pfrgload.c (pfr_glyph_load_simple): Really protect against
       
  1789 	invalid indices.
       
  1790 
       
  1791 2010-06-26  Werner Lemberg  <wl@gnu.org>
       
  1792 
       
  1793 	Improve PFR tracing messages.
       
  1794 
       
  1795 	* src/pfr/pfrgload.c (pfr_glyph_load_rec): Emit tracing messages for
       
  1796 	simple and compound glyph offsets.
       
  1797 
       
  1798 2010-06-26  Werner Lemberg  <wl@gnu.org>
       
  1799 
       
  1800 	Fix last PFR change.
       
  1801 
       
  1802 	* src/pfr/pfrobjs.c (pfr_face_init): Fix rejection logic.
       
  1803 
       
  1804 2010-06-26  Werner Lemberg  <wl@gnu.org>
       
  1805 
       
  1806 	Fix Savannah bug #30262.
       
  1807 
       
  1808 	* src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth'
       
  1809 	arbitrarily to 100 to avoid stack exhaustion.
       
  1810 
       
  1811 2010-06-26  Werner Lemberg  <wl@gnu.org>
       
  1812 
       
  1813 	Add some memory checks (mainly for debugging).
       
  1814 
       
  1815 	* src/base/ftstream.c (FT_Stream_EnterFrame): Exit with error
       
  1816 	if the frame size is larger than the stream size.
       
  1817 
       
  1818 	* src/base/ftsystem.c (ft_ansi_stream_io): Exit with error if
       
  1819 	seeking a position larger than the stream size.
       
  1820 
       
  1821 2010-06-25  Werner Lemberg  <wl@gnu.org>
       
  1822 
       
  1823 	Fix Savannah bug #30261.
       
  1824 
       
  1825 	* src/pfr/pfrobjs.c (pfr_face_init): Reject fonts which contain
       
  1826 	neither outline nor bitmap glyphs.
       
  1827 
       
  1828 2010-06-25  Werner Lemberg  <wl@gnu.org>
       
  1829 
       
  1830 	Fix Savannah bug #30254.
       
  1831 
       
  1832 	* src/cff/cffload.c (cff_index_get_pointers): Do sanity check for
       
  1833 	first offset also.
       
  1834 
       
  1835 2010-06-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  1836 
       
  1837 	Initial fix for Savannah bug #30248 and #30249.
       
  1838 
       
  1839 	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check the error during
       
  1840 	reading a PFB fragment embedded in LaserWriter PS font for Macintosh.
       
  1841 	Reported by Robert Święcki.
       
  1842 
       
  1843 2010-06-24  Werner Lemberg  <wl@gnu.org>
       
  1844 
       
  1845 	Fix Savannah bug #30247.
       
  1846 
       
  1847 	* src/pcf/pcfread.c (pcf_get_metrics): Disallow (invalid) fonts with
       
  1848 	zero metrics.
       
  1849 
       
  1850 2010-06-24  Graham Asher  <graham.asher@btinternet.com>
       
  1851 
       
  1852 	* src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm.
       
  1853 	The previous version was too aggressive, as demonstrated in
       
  1854 	http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html.
       
  1855 
       
  1856 2010-06-24  Werner Lemberg  <wl@gnu.org>
       
  1857 
       
  1858 	*/*: Use module specific error names where appropriate.
       
  1859 
       
  1860 2010-06-24  Werner Lemberg  <wl@gnu.org>
       
  1861 
       
  1862 	Fix Savannah bug #30236.
       
  1863 
       
  1864 	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Improve check for pointer
       
  1865 	to `cmap_table'.
       
  1866 
       
  1867 2010-06-24  Werner Lemberg  <wl@gnu.org>
       
  1868 
       
  1869 	Fix Savannah bug #30235.
       
  1870 
       
  1871 	* src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against
       
  1872 	invalid indices if there aren't any coordinates for indexing.
       
  1873 
       
  1874 2010-06-24  Werner Lemberg  <wl@gnu.org>
       
  1875 
       
  1876 	[bdf]: Font properties are optional.
       
  1877 
       
  1878 	* src/bdf/bdflib.c (_bdf_readstream): Use special error code to
       
  1879 	indicate a redo operation.
       
  1880 	(_bdf_parse_start): Handle `CHARS' keyword here too and pass current
       
  1881 	input line to `_bdf_parse_glyph'.
       
  1882 
       
  1883 2010-06-23  Werner Lemberg  <wl@gnu.org>
       
  1884 
       
  1885 	Fix Savannah bug #30220.
       
  1886 
       
  1887 	* include/freetype/fterrdef.h
       
  1888 	(BDF_Err_Missing_Fontboundingbox_Field): New error code.
       
  1889 
       
  1890 	* src/bdf/bdflib.c (_bdf_parse_start): Check for missing
       
  1891 	`FONTBOUNDINGBOX' field.
       
  1892 	Avoid memory leak if there are multiple `FONT' lines (which is
       
  1893 	invalid but doesn't hurt).
       
  1894 
       
  1895 2010-06-21  Werner Lemberg  <wl@gnu.org>
       
  1896 
       
  1897 	Fix Savannah bug #30168.
       
  1898 
       
  1899 	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Limit the number of
       
  1900 	subglyphs to avoid endless recursion.
       
  1901 
       
  1902 2010-06-20  Werner Lemberg  <wl@gnu.org>
       
  1903 
       
  1904 	Fix Savannah bug #30145.
       
  1905 
       
  1906 	* src/psaux/psobjs.c (t1_builder_add_contour): Protect against
       
  1907 	`outline == NULL' which might happen in invalid fonts.
       
  1908 
       
  1909 2010-06-19  Werner Lemberg  <wl@gnu.org>
       
  1910 
       
  1911 	Fix Savannah bug #30135.
       
  1912 
       
  1913 	* src/bdf/bdflib.c (_bdf_list_join): Don't modify value in static
       
  1914 	string `empty'.
       
  1915 	(_bdf_parse_glyph): Avoid memory leak in case of error.
       
  1916 
       
  1917 2010-06-15  Werner Lemberg  <wl@gnu.org>
       
  1918 
       
  1919 	Fix Savannah bug #30108.
       
  1920 
       
  1921 	* src/autofit/afglobal.c (af_face_globals_compute_script_coverage):
       
  1922 	Properly mask AF_DIGIT bit in comparison.
       
  1923 
       
  1924 2010-06-11  Werner Lemberg  <wl@gnu.org>
       
  1925 
       
  1926 	Fix Savannah bug #30106.
       
  1927 
       
  1928 	Point numbers for FreeType's implementation of hinting masks are
       
  1929 	collected before the final number of points of a glyph has been
       
  1930 	determined; in particular, the code for handling the `endchar'
       
  1931 	opcode can reduce the number of points.
       
  1932 
       
  1933 	* src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Assure that
       
  1934 	`end_point' is not larger than `glyph->num_points'.
       
  1935 
       
  1936 2010-06-11  Werner Lemberg  <wl@gnu.org>
       
  1937 
       
  1938 	[cff]: Improve debugging output.
       
  1939 
       
  1940 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
       
  1941 	<cff_op_hintmask>: Implement it.
       
  1942 
       
  1943 2010-06-10  Graham Asher  <graham.asher@btinternet.com>
       
  1944 
       
  1945 	ftgrays: Speed up rendering of small cubic splines.
       
  1946 
       
  1947 	* src/smooth/ftgrays.c (gray_render_cubic): Implement new,
       
  1948 	simplified algorithm to find out whether the spline can be replaced
       
  1949 	with two straight lines.  See this thread for more:
       
  1950 
       
  1951 	  http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html
       
  1952 
       
  1953 2010-06-09  Werner Lemberg  <wl@gnu.org>
       
  1954 
       
  1955 	Fix Savannah bug #30082.
       
  1956 
       
  1957 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
       
  1958 	<cff_op_callothersubr>: Protect against stack underflow.
       
  1959 
       
  1960 2010-06-08  Werner Lemberg  <wl@gnu.org>
       
  1961 
       
  1962 	Fix Savannah bug #30053.
       
  1963 
       
  1964 	* src/cff/cffparse.c (cff_parse_real): Handle border case where
       
  1965 	`fraction_length' has value 10.
       
  1966 
       
  1967 2010-06-07  Werner Lemberg  <wl@gnu.org>
       
  1968 
       
  1969 	Fix Savannah bug #30052.
       
  1970 	This bug has been introduced with commit 2415cbf3.
       
  1971 
       
  1972 	* src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect
       
  1973 	against endless loop in case of corrupted font header data.
       
  1974 
       
  1975 2010-05-26  Werner Lemberg  <wl@gnu.org>
       
  1976 
       
  1977 	Remove unused variable.
       
  1978 	Found by Graham.
       
  1979 
       
  1980 	* src/autofit/afhints.c (af_glyph_hints_reload): Remove unused
       
  1981 	variable `first' in first block.
       
  1982 
       
  1983 2010-05-22  Werner Lemberg  <wl@gnu.org>
       
  1984 
       
  1985 	Fix various memory problems found by linuxtesting.org.
       
  1986 
       
  1987 	* src/base/ftgxval.c (FT_TrueTypeGX_Free, FT_ClassicKern_Free),
       
  1988 	src/base/ftotval.c (FT_OpenType_Free), src/base/ftpfr.c
       
  1989 	(ft_pfr_check): Check `face'.
       
  1990 
       
  1991 	* src/base/ftobjs.c (FT_Get_Charmap_Index): Check `charmap' and
       
  1992 	`charmap->face'.
       
  1993 	(FT_Render_Glyph): Check `slot->face'.
       
  1994 	(FT_Get_SubGlyph_Info): Check `glyph->subglyphs'.
       
  1995 
       
  1996 2010-05-22  Werner Lemberg  <wl@gnu.org>
       
  1997 
       
  1998 	autofit: Remove dead code.
       
  1999 	Suggested by Graham.
       
  2000 
       
  2001 	* src/autofit/afhints.c (af_glyph_hints_compute_inflections):
       
  2002 	Removed.
       
  2003 	(af_glyph_hints_reload): Remove third argument.
       
  2004 	Update all callers.
       
  2005 
       
  2006 2010-05-21  Bram Tassyns  <bramt@enfocus.be>
       
  2007 
       
  2008 	Fix Savannah bug #27987.
       
  2009 
       
  2010 	* src/cff/cffobjs.c (remove_subset_prefix): New function.
       
  2011 	(cff_face_init): Use it to adjust `cffface->family_name'.
       
  2012 
       
  2013 2010-05-20  Werner Lemberg  <wl@gnu.org>
       
  2014 
       
  2015 	TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'.
       
  2016 
       
  2017 	Acroread does the same.
       
  2018 
       
  2019 	* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Call
       
  2020 	`Update_Max' to adjust size of instructions array if necessary and
       
  2021 	add a rough safety check.
       
  2022 
       
  2023 	(load_truetype_glyph): Save `loader->byte_len' before recursive
       
  2024 	call.
       
  2025 
       
  2026 	* src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max):
       
  2027 	Declare it as FT_LOCAL.
       
  2028 
       
  2029 2010-05-18  Hongbo Ni  <hongbo@njstar.com>
       
  2030 
       
  2031 	Apply Savannah patch #7196.
       
  2032 
       
  2033 	* src/cff/cffgload.c (cff_slot_load): Prevent crash if CFF subfont
       
  2034 	index is out of range.
       
  2035 
       
  2036 2010-05-11  Werner Lemberg  <wl@gnu.org>
       
  2037 
       
  2038 	* docs/formats.txt: Give pointer to PCF documentation.
       
  2039 	Information provided by Alan Coopersmith
       
  2040 	<alan.coopersmith@oracle.com>.
       
  2041 
       
  2042 2010-05-10  Ken Sharp  <ken.sharp@artifex.com>
       
  2043 
       
  2044 	Fix Savannah bug #29846.
       
  2045 
       
  2046 	Previously we discovered fonts which used `setcurrentpoint' to set
       
  2047 	the initial point of a contour to 0,0.  This caused FreeType to
       
  2048 	raise an error, because the `setcurrentpoint' operator is only
       
  2049 	supposed to be used with the results from an OtherSubr subroutine.
       
  2050 
       
  2051 	This was fixed by simply ignoring the error and carrying on.
       
  2052 
       
  2053 	Now we have found a font which uses setcurrentpoint to actually
       
  2054 	establish a non-zero point for a contour during the course of a
       
  2055 	glyph program.  FWIW, these files may be produced by an application
       
  2056 	called `Intaglio' on the Mac, when converting TrueType fonts to
       
  2057 	Type 1.
       
  2058 
       
  2059 	The fix allows the new invalid behaviour, the old invalid behaviour
       
  2060 	and real proper usage of the operator to work the same way as Adobe
       
  2061 	interpreters apparently do.
       
  2062 
       
  2063 	(t1_decoder_parse_charstrings): Make `setcurrentpoint' use the top
       
  2064 	two elements of the stack to establish unconditionally the current x
       
  2065 	and y coordinates.
       
  2066 
       
  2067 	Make the `flex' subroutine handling (OtherSubr 0) put the current
       
  2068 	x,y coordinates onto the stack, instead of two dummy uninitialised
       
  2069 	values.
       
  2070 
       
  2071 2010-04-14  Ken Sharp  <ken.sharp@artifex.com>
       
  2072 
       
  2073 	Fix Savannah bug #29444.
       
  2074 
       
  2075 	* src/psaux/psobjs.c (t1_builder_start_point): Accept (invalid)
       
  2076 	`lineto' immediately after `hsbw', in accordance with Acrobat, GS,
       
  2077 	and others.
       
  2078 
       
  2079 2010-04-14  Michał Cichoń  <thedmd@artifexmundi.com>
       
  2080 
       
  2081 	Fix Savannah bug #27999.
       
  2082 
       
  2083 	* src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): Only remove
       
  2084 	selected entry, not all.
       
  2085 
       
  2086 2010-04-06  Jonathan Kew  <jfkthame@gmail.com>
       
  2087 
       
  2088 	Add overflow check to `fvar' table.
       
  2089 
       
  2090 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis and instance
       
  2091 	count.
       
  2092 
       
  2093 2010-04-05  Ken Sharp  <ken.sharp@artifex.com>
       
  2094 
       
  2095 	Fix Savannah bug #29335.
       
  2096 
       
  2097 	* src/raster/ftraster.c (Line_Up): Use slow multiplication to
       
  2098 	prevent overflow.  This shouldn't have any serious impact on speed,
       
  2099 	however.
       
  2100 
       
  2101 2010-04-05  Werner Lemberg  <wl@gnu.org>
       
  2102 
       
  2103 	Add new function `FT_Library_SetLcdFilterWeights'.
       
  2104 
       
  2105 	This is based on code written by Lifter
       
  2106 	<http://unixforum.org/index.php?showuser=11691>.  It fixes
       
  2107 	FreeDesktop bug #27386.
       
  2108 
       
  2109 	* src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New
       
  2110 	function.
       
  2111 
       
  2112 	* include/freetype/ftlcdfil.h: Updated.
       
  2113 
       
  2114 	* docs/CHANGES: Updated.
       
  2115 
       
  2116 2010-04-01  John Tytgat  <John.Tytgat@esko.com>
       
  2117 
       
  2118 	Fix Savannah bug #29404.
       
  2119 
       
  2120 	* src/truetype/ttgload.c: Revert change 2752bd1a (check on bit 1
       
  2121 	of `head' table of TrueType fonts).
       
  2122 
       
  2123 2010-03-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  2124 
       
  2125 	Fix `multi build' for Tytgat's CFF driver improvement.
       
  2126 
       
  2127 	* src/base/cffload.h (cff_index_get_name): Added.
       
  2128 
       
  2129 2010-03-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
       
  2130 
       
  2131 	Remove duplicated inclusion of `FT_OUTLINE_H' in ftobjs.c.
       
  2132 
       
  2133 	* src/base/ftobjs.c: Remove 2nd inclusion of `FT_OUTLINE_H'.
       
  2134 
       
  2135 2010-03-11  Chris Liddell  <chris.liddell@artifex.com>
       
  2136 
       
  2137 	Fix Savannah bug #27442.
       
  2138 
       
  2139 	* src/raster/ftraster.c (ft_black_reset): Fix `buffer_size'.
       
  2140 
       
  2141 2010-03-09  Werner Lemberg  <wl@gnu.org>
       
  2142 
       
  2143 	Remove unused variable.
       
  2144 	Reported by Graham.
       
  2145 
       
  2146 	* src/cff/cffparse.c (cff_parse_real): Remove `rest'.
       
  2147 
       
  2148 2010-03-02  John Tytgat  <John.Tytgat@esko.com>
       
  2149 
       
  2150 	Improve CFF string (especially glyphname) lookup performance.
       
  2151 
       
  2152 	We do this by avoiding memory allocation and file I/O.  This is
       
  2153 	Savannah patch #7104.
       
  2154 
       
  2155 	* src/cff/cfftypes.h: Include PS cmaps service and
       
  2156 	FT_INTERNAL_POSTSCRIPT_HINTS_H.
       
  2157 	(CFF_SubFontRec): Remove `num_local_subrs'.
       
  2158 	(CFF_FontRec): Add `num_strings', `strings', and `string_pool'
       
  2159 	fields.
       
  2160 	Remove `string_index' and `num_global_subrs' fields.
       
  2161 	Use real types instead of `void' for `pshinter' and `psnames' fields.
       
  2162 
       
  2163 	* src/cff/cffload.c: Don't include PS cmaps service.
       
  2164 	(cff_index_get_pointers): Add `pool' parameter which allows to
       
  2165 	insert an extra NUL character for each String INDEX entry.
       
  2166 	(cff_index_get_name): Make it a local function.
       
  2167 	(cff_index_get_string): New function.
       
  2168 	(cff_subfont_load): Updated.
       
  2169 	(cff_font_load): Initialize `num_strings', `strings', and
       
  2170 	`string_pool' fields in the `CFF_FontRec' structure.
       
  2171 	(cff_index_get_sid_string): Use `cff_index_get_string' instead of
       
  2172 	`cff_index_get_name'.
       
  2173 	(cff_font_done): Updated.
       
  2174 
       
  2175 	* src/cff/cffload.h: Don't include PS cmaps service.
       
  2176 	(cff_index_get_string): Added.
       
  2177 	(cff_index_get_sid_string): Updated.
       
  2178 
       
  2179 	* src/cff/cffobjs.c: Don't include PS cmaps service and
       
  2180 	FT_INTERNAL_POSTSCRIPT_HINTS_H.
       
  2181 	(cff_size_get_globals_funcs, cff_slot_init): Updated.
       
  2182 	(cff_face_init): Follow `cff_index_get_name',
       
  2183 	`cff_index_get_string', and `cff_index_get_sid_string' changes.
       
  2184 
       
  2185 	* src/cff/cffcmap.c (cff_sid_free_glyph_name): Removed.
       
  2186 	(cff_sid_to_glyph_name): Use `cff_index_get_cid_string'.
       
  2187 	(cff_cmap_unicode_init): Updated.
       
  2188 
       
  2189 	* src/cff/cffdrivr.c: Don't include PS cmap service.
       
  2190 	(cff_get_glyph_name): Avoid unnecessary lookup for POSTSCRIPT_CMAPS
       
  2191 	service.
       
  2192 	(cff_get_glyph_name, cff_ps_get_font_info, cff_get_ros): Follow API
       
  2193 	`cff_index_get_sid_string' change.
       
  2194 	(cff_get_name_index): Use `cff_index_get_string' instead of
       
  2195 	`cff_index_get_name'.
       
  2196 
       
  2197 	* src/cff/cffgload.c: Don't include FT_INTERNAL_POSTSCRIPT_HINTS_H.
       
  2198 	(cff_decoder_init, cff_decoder_prepare): Updated.
       
  2199 
       
  2200 2010-02-27  Werner Lemberg  <wl@gnu.org>
       
  2201 
       
  2202 	Simplify code.
       
  2203 	Suggested by Behdad.
       
  2204 
       
  2205 	* src/base/ftobjs.c (FT_Get_First_Char): Don't use a loop since we
       
  2206 	call FT_Get_Next_Char anyway if necessary.
       
  2207 
       
  2208 2010-02-26  Behdad Esfahbod  <behdad@behdad.org>
       
  2209 
       
  2210 	Improve handling of invalid glyph indices in char->index functions.
       
  2211 
       
  2212 	* src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Use a
       
  2213 	loop.
       
  2214 
       
  2215 2010-02-18  Chris Liddell  <chris.liddell@artifex.com>
       
  2216 
       
  2217 	Fix Savannah bug #28905.
       
  2218 
       
  2219 	Initialize phantom points before calling the incremental interface
       
  2220 	to update glyph metrics.
       
  2221 
       
  2222 	* src/truetype/ttgload.c (tt_get_metrics_incr_overrides)
       
  2223 	[FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from...
       
  2224 	(tt_get_metrics): This.
       
  2225 	Updated.
       
  2226 	(load_truetype_glyph): Use tt_get_metrics_incr_overrides.
       
  2227 
       
  2228 ----------------------------------------------------------------------------
       
  2229 
       
  2230 Copyright 2010-2011 by
       
  2231 David Turner, Robert Wilhelm, and Werner Lemberg.
       
  2232 
       
  2233 This file is part of the FreeType project, and may only be used, modified,
       
  2234 and distributed under the terms of the FreeType project license,
       
  2235 LICENSE.TXT.  By continuing to use, modify, or distribute this file you
       
  2236 indicate that you have read the license and understand and accept it
       
  2237 fully.
       
  2238 
       
  2239 
       
  2240 Local Variables:
       
  2241 version-control: never
       
  2242 coding: utf-8
       
  2243 End: