Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 1
2013-06-19  Werner Lemberg  
2
 
3
	* Version 2.5.0.1 released.
4
	===========================
5
 
6
 
7
	Tag sources with `VER-2-5-0-1'.
8
 
9
	* include/freetype/config/ftoption.h: Undefine
10
	CFF_CONFIG_OPTION_OLD_ENGINE.
11
	* devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
12
 
13
2013-06-19  Werner Lemberg  
14
 
15
	* builds/unix/install.mk (install): Don't create `cache' directory.
16
 
17
	Found by Peter Breitenlohner .
18
 
19
2013-06-19  Werner Lemberg  
20
 
21
	* Version 2.5.0 released.
22
	=========================
23
 
24
 
25
	Tag sources with `VER-2-5-0'.
26
 
27
	* docs/VERSION.DLL: Update documentation and bump version number to
28
	2.5.0.
29
 
30
	* README, Jamfile (RefDoc),
31
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
32
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
33
	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
34
	builds/win32/visualc/freetype.dsp,
35
	builds/win32/visualc/freetype.vcproj,
36
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
37
	builds/win32/visualce/freetype.vcproj,
38
	builds/win32/visualce/index.html,
39
	builds/wince/vc2005-ce/freetype.vcproj,
40
	builds/wince/vc2005-ce/index.html,
41
	builds/wince/vc2008-ce/freetype.vcproj,
42
	builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
43
 
44
	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
45
	(FREETYPE_PATCH): Set to 0.
46
 
47
	* builds/unix/configure.raw (version_info): Set to 16:2:10.
48
 
49
	* src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
50
	* src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
51
 
52
2013-06-18  Werner Lemberg  
53
 
54
	Fix Savannah bug #39269.
55
 
56
	* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
57
	case of reacollocation failures.
58
 
59
2013-06-18  Andrew Church  
60
 
61
	Fix Savannah bug #39266.
62
 
63
	If memory allocations fail at certain points while opening a font,
64
	FreeType can either crash due to a NULL dereference or leak memory.
65
 
66
	* include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
67
	FT_LibraryRec): Make `refcount' a signed integer.  If, for example,
68
	FT_Open_Face() fails in a memory allocation before the face's
69
	reference count is set to 1, a subsequent `FT_Done_Library' call
70
	would otherwise loop over `FT_Done_Face' 2^32 times before freeing
71
	the face.
72
 
73
	* src/base/ftobjs.c (open_face): Initialize `stream' and friends
74
	earlier.
75
	(FT_Open_Face) : Behave correctly if `node' is NULL.
76
	(FT_Destroy_Module) : Check that `renderer_clazz' is valid.
77
 
78
2013-06-14  Werner Lemberg  
79
 
80
	* src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
81
 
82
2013-06-06  Dave Arnold  
83
	    Werner Lemberg  
84
 
85
	[cff] Add code to Adobe's engine to handle ppem > 2000.
86
 
87
	* src/cff/cffgload.c (cff_slot_load): If we get
88
	FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
89
 
90
2013-06-12  Werner Lemberg  
91
 
92
	Another try on pragmas.
93
 
94
	* include/freetype/internal/ftdebug.h: Move pragmas to...
95
	* include/freetype/internal/internal.h: ... this file since it gets
96
	included by all source files.
97
	* include/freetype/internal/ftserv.h: Remove pragma which has no
98
	effect.
99
 
100
2013-06-12  Werner Lemberg  
101
 
102
	* include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
103
 
104
	This partially undoes commit 3f6e0e0c.
105
 
106
2013-06-12  Werner Lemberg  
107
 
108
	More compiler warning fixes.
109
 
110
	*/*: Use cast to `FT_Bool' (or `Bool') where appropriate.
111
 
112
2013-06-10  Werner Lemberg  
113
 
114
	[truetype] Improve handling of broken sbit advance widths.
115
 
116
	* src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
117
	`linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
118
 
119
	Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
120
 
121
2013-06-10  Werner Lemberg  
122
 
123
	[sfnt] Improve embedded bitmap tracing.
124
 
125
	* src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
126
	bitmap strike match to...
127
	(FT_Match_Size): This function.
128
 
129
	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
130
	tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
131
	tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
132
	tt_sbit_decoder_load_image): Decorate with tracing messages.
133
 
134
2013-06-10  Werner Lemberg  
135
 
136
	Fix Savannah bug #39160.
137
 
138
	* src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
139
	for the degenerate case.
140
 
141
2013-06-09  David Turner  
142
 
143
	* src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
144
 
145
	This code, present since eight(!) years in the unused `CACHE'
146
	branch, has been forgotten to apply to the master branch.  It's
147
	really amazing that noone has ever complained since
148
	`FTC_Manager_Reset' is pretty useless without flushing the cache.
149
 
150
2013-06-07  Werner Lemberg  
151
 
152
	Add and improve pragmas for MSVC compiler.
153
 
154
	* include/freetype/internal/ftdebug.h: Remove pragmas.
155
	* include/freetype/internal/ftserv.h: Use push and pop for pragmas.
156
	* include/freetype/internal/ftvalid.h: Handle warning C4324.
157
	* src/base/ftobjs.c: Use push and pop for pragmas.
158
	* src/gzip/ftgzip.c: Handle warning C4244.
159
 
160
2013-06-07  Werner Lemberg  
161
 
162
	[cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
163
 
164
	* src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
165
 
166
2013-06-06  Dave Arnold  
167
 
168
	[cff] Add early exit feature for width-only calls.
169
 
170
	This is for `FT_Get_Advance'.
171
 
172
	There are 7 places where the spec says the width can be defined:
173
 
174
	  hstem/hstemhm
175
	  vstem/vstemhm
176
	  cntrmask/hintmask
177
	  hmoveto
178
	  vmoveto
179
	  rmoveto
180
	  endchar
181
 
182
	* src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
183
	if possible.
184
 
185
	(cf2_interpT2CharString) , ,
186
	, , ,
187
	, : Exit early for width-only calls.
188
 
189
2013-06-06  Werner Lemberg  
190
 
191
	Next round of compiler fixes.
192
 
193
	* builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
194
	Add proper cast.
195
 
196
	* include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
197
	cast.
198
	* include/freetype/internal/ftstream.h: Decorate stream and frame
199
	macros with `FT_Long' and `FT_ULong' as appropriate.
200
 
201
	* src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
202
	raccess_guess_darwin_newvfs): Use cast.
203
 
204
	* src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
205
 
206
	* src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
207
	* src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
208
 
209
	* src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast.
210
	* src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
211
	* src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
212
 
213
	* src/cid/cidparse.c (cid_parser_new): Use cast.
214
 
215
	* src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
216
 
217
	* src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
218
 
219
	* src/raster/ftraster.c (ft_black_reset): Use cast.
220
 
221
	* src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
222
	(ALL_POINTS): Fix cast.
223
 
224
	* src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
225
	* src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
226
 
227
2013-06-05  Dave Arnold  
228
 
229
	Fix more MSVC Win32 compiler warnings.
230
 
231
	* src/base/ftobjs.c: Fix typo in MS pragma.
232
 
233
	* src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
234
	`lineno' is only used in debug mode.
235
 
236
	* src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
237
	debug mode.
238
 
239
2013-06-05  Werner Lemberg  
240
 
241
	Fix compiler warnings.
242
 
243
	* include/freetype/internal/ftmemory.h: Decorate memory allocation
244
	macros with `FT_Long' where appropriate.
245
	Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
246
 
247
	* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
248
	cast.
249
 
250
	* src/base/ftobjs.c: Add warning disabling pragma for MSVC while
251
	including `md5.c'.
252
 
253
	* src/cff/cf2intrp.c (cf2_interpT2CharString) : Add
254
	cast.
255
 
256
	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
257
	(tt_sbit_decoder_load_bitmap): Beautification.
258
 
259
	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
260
	variables (earlier).
261
 
262
	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
263
 
264
	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
265
	where appropriate.
266
 
267
	* src/type1/t1load.c (T1_Get_MM_Var): Ditto.
268
 
269
2013-06-04  Werner Lemberg  
270
 
271
	* src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
272
 
273
	Problem reported by Ingmar Sittl .
274
 
275
2013-06-04  Werner Lemberg  
276
 
277
	Apply fixes for cppcheck nitpicks.
278
 
279
	  http://cppcheck.sourceforge.net/
280
 
281
	The call was (from the top-level of the FreeType tree):
282
 
283
	  cppcheck --force \
284
	           --enable=all \
285
	           -I include \
286
	           -I include/freetype/ \
287
	           -I include/freetype/config/ \
288
	           -I include/freetype/internal/ \
289
	           . &> cppcheck.log
290
 
291
	Note that the current version heavily chokes on FreeType, delivering
292
	many wrong results.  I will report those issues to the cppcheck team
293
	so that a newer version gives improved results hopefully.
294
 
295
	*/* Improve variable scopes.
296
	*/* Remove redundant initializations which get overwritten.
297
 
298
	* src/base/ftmac.c ,builds/mac/ftmac.c (count_faces_scalable):
299
	Remove unused variable.
300
 
301
	* src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
302
 
303
	* src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
304
	Remove functionless code.
305
 
306
	* src/tools/ftrandom.c (main): Fix memory leak.
307
 
308
2013-06-03  Werner Lemberg  
309
 
310
	Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
311
 
312
	This controls whether the old FreeType CFF engine gets compiled into
313
	FreeType.  It is now disabled by default.
314
 
315
	* devel/ftoption.h, include/freetype/config/ftoption.h
316
	(CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
317
 
318
	* src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
319
	(CFF_Operator, cff_argument_counts, cff_builder_add_point,
320
	cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
321
	src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
322
	CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
323
 
324
	* docs/CHANGES: Updated.
325
 
326
2013-06-02  Werner Lemberg  
327
 
328
	Fix PNG library handling.
329
 
330
	* builds/unix/configure.raw: Don't use LIBPNG_LIBS but
331
	LIBPNG_LDFLAGS.
332
 
333
2013-05-23  Behdad Esfahbod  
334
 
335
	Add support for color embedded bitmaps (eg. color emoji).
336
 
337
	A new load flag, FT_LOAD_COLOR, makes FreeType load color
338
	embedded-bitmaps, following this draft specification
339
 
340
	  https://color-emoji.googlecode.com/git/specification/v1.html
341
 
342
	which defines two new SFNT tables, `CBDT' and `CBLC' (named and
343
	modeled after `EBDT' and `EBLC', respectively).  The color bitmaps
344
	are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
345
	pre-multiplied sRGB images.  If PNG support is available, PNG color
346
	images as defined in the same proposed specification are supported
347
	also.
348
 
349
	Note that color bitmaps are converted to grayscale if client didn't
350
	ask for color.
351
 
352
	* builds/unix/configure.raw: Search for libpng.
353
	Add `--without-png' option.
354
 
355
	* devel/ftoption.h, include/freetype/config/ftoption.h
356
	(FT_CONFIG_OPTION_USE_PNG): New macro.
357
 
358
	* include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
359
 
360
	* include/freetype/ftimage.h (FT_Pixel_Mode): Add
361
	`FT_PIXEL_MODE_BGRA'.
362
 
363
	* include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
364
 
365
	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
366
	(ft_gray_for_premultiplied_srgb_bgra): New function.
367
	(FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
368
 
369
	* src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
370
 
371
	* src/sfnt/sfnt.c: Include `pngshim.c'.
372
 
373
	* src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
374
	(tt_face_load_eblc): Load `CBLC'.
375
	(tt_sbit_decoder_init): Load `CBDT'.
376
	(tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
377
	color and grayscale bitmaps.
378
	Set `num_grays'.  This is used by `ftview' to choose the blending
379
	algorithm.
380
	(tt_sbit_decoder_load_byte_aligned,
381
	tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
382
	tt_sbit_decoder_load_image): Pass load flag.
383
	s/write/pwrite/.
384
	Don't call `tt_sbit_decoder_alloc_bitmap'.
385
	Updated.
386
	(tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
387
	(tt_sbit_decoder_load_bitmap): Pass load flag.
388
	Handle new glyph formats 17, 18, and 19.
389
	Call `tt_sbit_decoder_alloc_bitmap'.
390
	Flatten color bitmaps if necessary.
391
	(tt_face_load_sbit_image): Updated.
392
 
393
	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
394
 
395
	* docs/CHANGES: Updated.
396
 
397
2013-05-24  Guenter  
398
 
399
	Apply Savannah patch #8055.
400
 
401
	Make `apinames' create an import file for NetWare.
402
 
403
	* src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
404
	(OutputFormat): Add `OUTPUT_NETWARE_IMP'.
405
	(names_dump): Handle it.
406
	(usage): Updated.
407
	(main): Handle new command line flag `-wN'.
408
 
409
2013-05-23  Behdad Esfahbod  
410
 
411
	Compilation fix.
412
 
413
	* src/truetype/ttinterp.c (TT_RunIns)
414
	[!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
415
 
416
2013-05-22  Infinality  
417
 
418
	[truetype] Formatting and an additional subpixel tweak.
419
 
420
	* src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
421
	* src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
422
	Revert previous modification for Verdana clones.
423
 
424
2013-05-22  Infinality  
425
 
426
	[truetype] Adjust subpixel zp2 moves and tweak rules.
427
 
428
	These modifications fix thin diagonal stems in some legacy fonts.
429
 
430
	* src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
431
	(Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
432
	(Ins_SHP): Disable x moves here for subpixel rendering.
433
	(Ins_SHPIX): Only disable x moves in compatibility mode.
434
	Split out zp2 move reversals and reorder conditional respectively.
435
 
436
	* src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
437
	Only adjust Verdana clones for 17 ppem.
438
	(SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
439
	(ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
440
 
441
2013-05-20  Infinality  
442
 
443
	[truetype] Simplify and improve subpixel function detection.
444
 
445
	Some small enhancements have allowed the removal of many macros and
446
	the simplification of existing rules in `ttsubpix.c'.
447
 
448
	* src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
449
	SPH_TWEAK_ALLOW_X_MOVE_ZP2,
450
	SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
451
	SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
452
	(SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
453
 
454
	* src/truetype/ttsubpix.c: Updated affected rules.
455
 
456
	* src/truetype/ttinterp.c (Direct_Move_X): Updated.
457
	(INS_FDEF): Add additional function detection.
458
	(INS_ENDF): Set runtime flag.
459
	(Ins_CALL): Skip the call under certain conditions.
460
	Remove bad code.
461
	(Ins_LOOPCALL): Skip the call under certain conditions.
462
	Remove bad code.
463
	(Move_Zp2_Point): Updated.
464
	(Ins_SHPIX): Updated.
465
	Skip the move under some situations.
466
	(Ins_MIAP): Improve conditions.
467
	(Ins_MIRP): Updated.
468
	(Ins_DELTAP): Skip move under certain conditions.
469
	Simplify conditions.
470
	(TT_RunIns): Updated.
471
	Add code to handle new function detection.
472
	Trace messages.
473
 
474
2013-05-17  Werner Lemberg  
475
 
476
	Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
477
 
478
	* builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
479
	builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
480
 
481
2013-05-15  Werner Lemberg  
482
 
483
	[truetype] Add `interpreter-version' property.
484
 
485
	This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
486
	at runtime.
487
 
488
	* include/freetype/ftttdrv.h: New file.
489
 
490
	* include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
491
	macro.
492
 
493
	* src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
494
	(tt_property_set, tt_property_get): Fill templates.
495
 
496
	* src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
497
	member.
498
	Remove unused `extension_component' member.
499
 
500
	* src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
501
	(tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
502
	compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
503
 
504
	* src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
505
	(SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
506
	Update all affected functions to use it.
507
	Use TT_INTERPRETER_VERSION_XXX where appropriate.
508
 
509
	* src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
510
	(tt_driver_init): Initialize `interpreter_version'.
511
 
512
	* src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
513
	Use TT_INTERPRETER_VERSION_XXX where appropriate.
514
 
515
2013-05-13  Werner Lemberg  
516
 
517
	[truetype] Avoid empty source file.
518
 
519
	* src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
520
	Provide dummy typedef.
521
 
522
2013-05-13  Werner Lemberg  
523
 
524
	* src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
525
 
526
	Fix suggested by Vaibhav Nagarnaik .
527
 
528
2013-05-13  Brian Nixon  
529
 
530
	Fix Savannah bug #38970.
531
 
532
	* src/base/ftdebug.c, builds/win32/ftdebug.c,
533
	builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
534
	(ft_debug_init): Don't read past the environment variable FT2_DEBUG.
535
 
536
2013-05-12  Werner Lemberg  
537
 
538
	[truetype] Add framework for TrueType properties.
539
 
540
	* src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
541
	(tt_property_set, tt_property_get): New functions, still empty.
542
	Define `tt_service_properties' service.
543
	Update `tt_services'.
544
 
545
	* src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
546
	(TT_SERVICE_PROPERTIES_GET): New macro.
547
	(TTModulePIC): Add `tt_service_properties'.
548
 
549
2013-05-12  Werner Lemberg  
550
 
551
	Fix Savannah bug #38967.
552
 
553
	* src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
554
 
555
2013-05-12  Werner Lemberg  
556
 
557
	Introduce unsigned 64bit type (if available).
558
 
559
	* include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
560
	[FT_LONG64]: Provide FT_UInt64.
561
 
562
	* builds/unix/ftconfig.in: Synchronized.
563
 
564
2013-05-12  Werner Lemberg  
565
 
566
	Fix Savannah bug #38968.
567
 
568
	* include/freetype/ftmodapi.h: Add `FT_EXPORT' to
569
	FT_Property_{Set,Get}.
570
	* src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
571
	FT_Property_{Set,Get}.
572
 
573
2013-05-10  Werner Lemberg  
574
 
575
	[sfnt] Clean up bitmap code.
576
 
577
	* src/sfnt/ttsbit.c: Deleted.
578
	* src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
579
	* rules.mk (SFNT_DRV_H): Updated.
580
 
581
2013-05-10  Werner Lemberg  
582
 
583
	*/* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
584
 
585
2013-05-08  Werner Lemberg  
586
 
587
	* Version 2.4.12 released.
588
	==========================
589
 
590
 
591
	Tag sources with `VER-2-4-12'.
592
 
593
	* docs/VERSION.DLL: Update documentation and bump version number to
594
	2.4.12.
595
 
596
	* README, Jamfile (RefDoc),
597
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
598
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
599
	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
600
	builds/win32/visualc/freetype.dsp,
601
	builds/win32/visualc/freetype.vcproj,
602
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
603
	builds/win32/visualce/freetype.vcproj,
604
	builds/win32/visualce/index.html,
605
	builds/wince/vc2005-ce/freetype.vcproj,
606
	builds/wince/vc2005-ce/index.html,
607
	builds/wince/vc2008-ce/freetype.vcproj,
608
	builds/wince/vc2008-ce/index.html: s/2.4.11/2.4.12/, s/2411/2412/.
609
 
610
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 12.
611
 
612
	* builds/unix/configure.raw (version_info): Set to 16:1:10.
613
 
614
2013-05-08  Werner Lemberg  
615
 
616
	* docs/CHANGES: Updated.
617
 
618
2013-05-08  Werner Lemberg  
619
 
620
	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Typo.
621
 
622
2013-05-05  Werner Lemberg  
623
 
624
	Synchronize `ftconfig.h'.
625
 
626
	* builds/unix/ftconfig.in: Updated.
627
 
628
2013-05-05  Werner Lemberg  
629
 
630
	Fix compilation with C++.
631
 
632
	* src/base/md5.c (body): Use proper cast.
633
 
634
2013-05-05  Werner Lemberg  
635
 
636
	Fix 64bit compilation issues.
637
 
638
	* include/freetype/config/ftconfig.h [FT_LONG64]: Typedef
639
	`FT_Int64' here.
640
 
641
	* src/base/ftcalc.c: Remove typedef of `FT_Int64'.
642
	(FT_DivFix): Fix cast.
643
	* src/base/fttrigon.c: Remove typedef of `FT_Int64'.
644
 
645
2013-05-05  Werner Lemberg  
646
 
647
	[raster] Fix clang issues.
648
 
649
	Fix suggested by .
650
 
651
	* src/raster/ftraster.c (ULong): New typedef.
652
	(SCALED): Add proper cast.
653
 
654
2013-05-04  Werner Lemberg  
655
 
656
	Fix clang fixes.
657
 
658
	* src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate): Use
659
	correct types.
660
 
661
	* src/cff/cf2intrp.c (cf2_interpT2CharString) : Force
662
	unsigned for computations.
663
	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Ditto.
664
	* src/cff/cffparse.c (cff_parse_integer): Ditto.
665
 
666
	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto.
667
 
668
2013-05-04  Werner Lemberg  
669
 
670
	[cff] Make Adobe CFF engine work correctly on 64bit hosts.
671
 
672
	Reported by numerous people on the `freetype-devel' list.  Without
673
	this fix, glyphs aren't properly aligned on a common baseline.
674
 
675
	On 64bit systems, `FT_Pos' expands to `long int', having a width of
676
	64bit.  `CF2_Fixed' expands to `int' which is normally 32bit wide on
677
	64bit hosts also.  Wrong casts filled up the blues arrays with
678
	incorrect values.  Note that all blues values are accessed with the
679
	`cf2_blueToFixed' macro which handles the 64bit to 32bit conversion.
680
 
681
	* src/cff/cf2ft.h (cf2_getBlueValues, cf2_getOtherBlues,
682
	cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Use `FT_Pos' for
683
	`data', not `CF2_Fixed'.
684
	* src/cff/cf2ft.c (cf2_getBlueValues, cf2_getOtherBlues,
685
	cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Updated.
686
	* src/cff/cf2blues.c (cf2_blues_init): Updated.
687
 
688
2013-05-04  Werner Lemberg  
689
 
690
	More fixes for clang's `sanitize' feature.
691
 
692
	* src/base/ftcalc.c (FT_DivFix): Use unsigned values for
693
	computations which use the left shift operator and convert to signed
694
	as the last step.
695
	* src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate,
696
	FT_Vector_Length, FT_Vector_Polarize): Ditto.
697
 
698
	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Simplify.
699
	* src/cff/cffload.c (cff_subfont_load): Fix constant.
700
	* src/cff/cffparse.c (cff_parse_integer, cff_parse_real, do_fixed,
701
	cff_parse_fixed_dynamic): Use unsigned values for computations which
702
	use the left shift operator and convert to signed as the last step.
703
 
704
	* src/cid/cidload.c (cid_get_offset): Ditto.
705
 
706
	* src/psaux/psconv.c (PS_Conv_ToFixed): Ditto.
707
	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto.
708
 
709
	* src/truetype/ttinterp.c (TT_MulFix14, TT_DotFix14): Ditto.
710
 
711
2013-05-04  Werner Lemberg  
712
 
713
	Fix errors reported by clang's `sanitize' feature.
714
 
715
	* include/freetype/internal/ftstream.h: Simplify and fix integer
716
	extraction macros.
717
	(FT_INT8_, FT_BYTE_I16, FT_BYTE_I32, FT_INT8_I16, FT_INT8_I32,
718
	FT_INT8_I32, FT_INT8_U32): Removed.
719
	(FT_PEEK_SHORT, FT_PEEK_LONG, FT_PEEK_OFF3, FT_PEEK_SHORT_LE,
720
	FT_PEEK_LONG_LE, FT_PEEK_OFF3_LE): Use unsigned values for
721
	computations and convert to signed as the last step.
722
 
723
	* src/cff/cf2fixed.h (cf2_intToFixed, cf2_fixedToInt,
724
	cf2_fracToFixed): Avoid shifts of negative values.
725
	(cf2_intToFrac, cf2_fixedToFrac, cf2_fixedTo26Dot6): Removed,
726
	unused.
727
 
728
	* src/cff/cf2intrp.c (cf2_interpT2CharString) 
729
	default>: Use unsigned values for computations and convert to signed
730
	as the last step.
731
	Use proper types in tracing messages.
732
 
733
	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Use unsigned
734
	values for computation of operands and convert to signed as the last
735
	step.
736
	Use proper type in tracing message.
737
 
738
2013-05-03  Werner Lemberg  
739
 
740
	* src/cff/cf2blues.c: Remove dead code.
741
 
742
2013-05-02  Chris Liddell  
743
 
744
	* src/cff/cffgload.c: Include FT_CFF_DRIVER_H.
745
 
746
2013-04-27  Werner Lemberg  
747
 
748
	* docs/CHANGES: Updated.
749
	* README: Improved.
750
 
751
2013-04-13  Werner Lemberg  
752
 
753
	[cff] Add a new Type 2 interpreter and hinter.
754
 
755
	This work, written by Dave Arnold  and fully
756
	integrated into FreeType by me, is a donation by Adobe in
757
	collaboration with Google.  It is vastly superior to the old CFF
758
	engine, and it will replace it soon.  Right now, it is still off by
759
	default, and you have to explicitly select it using the new
760
	`hinting-engine' property of the cff driver.
761
 
762
	For convenience, (most of) the new files are committed separately.
763
 
764
	* include/freetype/config/ftheader.h (FT_CFF_DRIVER_H): New macro.
765
	* include/freetype/ftcffdrv.h: New file to access CFF driver
766
	properties.
767
	* include/freetype/fterrdef.h (FT_Err_Glyph_Too_Big): New error
768
	code.
769
	* include/freetype/internal/fttrace.h: Add `cf2blues', `cf2hints',
770
	and `cf2interp'.
771
 
772
	* src/cff/cffgload.h (CFF_SubFont): New member `current_subfont'.
773
	* src/cff/cffobjs.h (CFF_DriverRec): New members `hinting_engine'
774
	and `no_stem_darkening'.
775
	* src/cff/cfftypes.h (CFF_FontRec): New member `cf2_instance'.
776
 
777
	* src/cff/cff.c: Include new files.
778
	* src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
779
	`hinting-engine' and `no-stem-darkening' properties (only the Adobe
780
	engine listens to them).
781
	* src/cff/cffgload.c: Include `cf2ft.h'.
782
	(cff_decoder_prepare): Initialize `current_subfont'.
783
	(cff_build_add_point): Handle Adobe engine which uses 16.16
784
	coordinates.
785
	(cff_slot_load): Handle FT_LOAD_NO_SCALE and FT_LOAD_NO_HINTING
786
	separately.
787
	Choose rendering engine based on `hinting_engine' property.
788
	* src/cff/cffload.c (cff_font_done): Call finalizer of the Adobe
789
	engine.
790
	* src/cff/cffobjs.c: Include FT_CFF_DRIVER_H.
791
	(cff_driver_init): Set default property values.
792
 
793
	* src/cff/rules.mk (CFF_DRV_SRC, CFF_DRV_H): Add new files.
794
 
795
	* src/cff/cf2*.*: New files, containing the Adobe engine.
796
 
797
2013-04-12  Werner Lemberg  
798
 
799
	[cff] Minor code administration issues.
800
 
801
	* src/cff/cffgload.c (check_points): Rename to...
802
	(cff_check_points): ...this and make it FT_LOCAL.
803
	(cff_builder_add_point, cff_builder_add_point1,
804
	cff_builder_start_point, cff_builder_close_contour,
805
	cff_lookup_glyph_by_stdcharcode, cff_get_glyph_data,
806
	cff_free_glyph_data): Make them FT_LOCAL.
807
 
808
	* src/cff/cffgload.h: Updated.
809
 
810
2013-04-12  Werner Lemberg  
811
 
812
	Add output bitmap checksums.
813
 
814
	Use `FT2_DEBUG=bitmap:3' for tracing.
815
 
816
	* src/base/md5.c, src/base/md5.h: New files, taken from
817
 
818
	  http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
819
 
820
	* include/freetype/internal/fttrace.h: Add `bitmap'.
821
 
822
	* src/base/ftobjs.c [FT_DEBUG_LEVEL_TRACE]: Include `md5.c'
823
 
824
	(FT_Render_Glyph_Internal) [FT_DEBUG_LEVEL_TRACE]: For tracing,
825
	convert resulting bitmap to a uniform format and compute a checksum.
826
	Use `bitmap' category for the tracing message.
827
 
828
	* src/base/rules.mk (BASE_H): Updated.
829
 
830
	* docs/LICENSE.TXT: Updated.
831
 
832
2013-04-12  Werner Lemberg  
833
 
834
	[cff] Add framework for CFF properties.
835
 
836
	* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC7):
837
	New macro.
838
 
839
	* src/cff/cffdrivr.c: Include FT_SERVICE_PROPERTIES_H.
840
	(cff_property_set, cff_property_get): New functions, still empty.
841
	Define `cff_service_properties' service.
842
	Update `cff_services'.
843
 
844
	* src/cff/cffpic.h: Include FT_SERVICE_PROPERTIES_H.
845
	(CFF_SERVICE_PROPERTIES_GET): New macro.
846
	(CffModulePIC): Add `cff_service_properties'.
847
 
848
2013-04-03  Werner Lemberg  
849
 
850
	[bdf] Fix Savannah bug #38589.
851
 
852
	* src/bdf/bdflib.c (_bdf_readstream): Thinko.
853
 
854
2013-03-31  Werner Lemberg  
855
 
856
	* configure: Use egrep, not grep.
857
 
858
	Problem reported Mojca Miklavec .
859
 
860
2013-03-29  Werner Lemberg  
861
 
862
	* include/freetype/ftlcdfil.h: Add description of color filtering.
863
 
864
	Based on a contribution from Antti S. Lankila 
865
	(Savannah bug #38607).
866
 
867
2013-03-23  Werner Lemberg  
868
 
869
	[autofit] Minor.
870
 
871
	* src/autofit/afmodule.c (af_property_set): Typo.
872
	(af_autofitter_init, af_autofitter_done): Use cast.
873
 
874
2013-03-21  Werner Lemberg  
875
 
876
	* configure: Automatically test for `gmake' also.
877
 
878
	Suggested by Mojca Miklavec .
879
 
880
2013-03-21  Peter Breitenlohner  
881
 
882
	Respect CONFIG_SHELL from the environment.
883
 
884
	Some large packages using FreeType have to use a broken (deficient)
885
	/bin/sh.  The configure scripts (as generated by Autoconf) are
886
	clever enough to find a better shell and put that one into the
887
	environment variable CONFIG_SHELL.  If that environment variable is
888
	already set the script skips the test and assumes to be already
889
	running under a good shell.
890
 
891
	* builds/unix/detect.mk: Honour CONFIG_SHELL.
892
	* builds/unix/unix-def.in (SHELL): Define.
893
 
894
2013-03-21  Werner Lemberg  
895
 
896
	Fix Savannah patch #7971.
897
 
898
	* configure: Handle MAKE environment variable also.
899
 
900
2013-03-17  Werner Lemberg  
901
 
902
	Fix Savannah bug #38538.
903
 
904
	* builds/amiga/src/base/ftdebug.c, builds/win32/ftdebug.c,
905
	builds/wince/ftdebug.c (FT_Throw): Add function.
906
 
907
2013-03-17  Werner Lemberg  
908
 
909
	[raster] Remove dead code.
910
 
911
	* src/raster/rastpic.c (ft_raster1_renderer_class_pic_init)
912
	src/smooth/ftspic.c (ft_smooth_renderer_class_pic_init): Do it.
913
 
914
2013-03-17  Werner Lemberg  
915
 
916
	* src/pshinter/pshpic.h (GET_PIC): Use correct container.
917
 
918
2013-03-15  Werner Lemberg  
919
 
920
	* include/freetype/ftmoderr.h: Fix commit from 2013-03-11.
921
 
922
	The previous version was not backwards compatible.  Reported by
923
	Behdad.
924
 
925
2013-03-14  Werner Lemberg  
926
 
927
	*/*: Use FT_ERR_EQ, FT_ERR_NEQ, and FT_ERR where appropriate.
928
 
929
	FT_Err_XXX and friends are no longer directly used in the source
930
	code.
931
 
932
2013-03-14  Werner Lemberg  
933
 
934
	New error management macros.
935
 
936
	* include/freetype/fterrors.h (FT_ERR_XCAT, FT_ERR_CAT): Move to...
937
	* include/freetype/fttypes.h: ... this file.
938
	(FT_ERR, FT_ERR_EQ, FT_ERR_NEQ, FT_MODERR_EQ, FT_MODERR_NEQ): New
939
	macros.
940
 
941
	* include/freetype/freetype.h: Updated.
942
 
943
2013-03-14  Werner Lemberg  
944
 
945
	*/*: Use FT_Err_Ok only.
946
 
947
	This is a purely mechanical conversion.
948
 
949
2013-03-14  Werner Lemberg  
950
 
951
	*/*: Use `FT_THROW'.
952
 
953
	This is essentially a mechanical conversion, adding inclusion of
954
	`FT_INTERNAL_DEBUG_H' where necessary, and providing the macros for
955
	stand-alone compiling modes of the rasterizer modules.
956
 
957
	To convert the remaining occurrences of FT_Err_XXX and friends it is
958
	necessary to rewrite the code.  Note, however, that it doesn't harm
959
	if some cases are not handled since FT_THROW is a no-op.
960
 
961
2013-03-13  Werner Lemberg  
962
 
963
	Introduce `FT_THROW' macro.
964
 
965
	The idea is to replace code like
966
 
967
	  return FT_Err_Foo_Bar;
968
 
969
	or
970
 
971
	  return CFF_Err_Foo_Bar;
972
 
973
	with
974
 
975
	  return FT_THROW( Foo_Bar );
976
 
977
	The FT_THROW macro has two functions:
978
 
979
	  . It hides the module specific prefix.
980
 
981
	  . In debug mode, it calls the empty function `FT_Throw' which can
982
	    be thus used to set a breakpoint.
983
 
984
	* include/freetype/internal/ftdebug.h (FT_THROW): New macro.
985
	(FT_Throw): New prototype.
986
	* src/base/ftdebug.c (FT_Throw): New function.
987
 
988
2013-03-12  Werner Lemberg  
989
 
990
	Remove `FT_KEEP_ERR_PREFIX'.
991
 
992
	The idea is to always have FT_ERR_PREFIX available internally.
993
 
994
	* include/freetype/fterrors.h: Use FT2_BUILD_LIBRARY to guard
995
	undefinition of FT_ERR_PREFIX
996
 
997
	* src/gxvalid/gxverror.h, src/otvalid/otverror.h,
998
	src/sfnt/sferrors.h: Updated.
999
 
1000
2013-03-11  Werner Lemberg  
1001
 
1002
	[gxvalid] Fix module error.
1003
 
1004
	* src/gxvalid/gxverror.h (FT_ERR_BASE): Define as
1005
	FT_Mod_Err_GXvalid.
1006
	* include/freetype/ftmoderr.h: Add module error for `GXvalid'.
1007
 
1008
2013-03-11  Werner Lemberg  
1009
 
1010
	Always use module related error codes.
1011
 
1012
	* src/cff/cffobjs.c (cff_face_init), src/type1/t1objs.c
1013
	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Use
1014
	`FT_ERROR_BASE'.
1015
 
1016
	* src/type1/t1load.c (parse_encoding): Use
1017
	T1_Err_Unknown_File_Format.
1018
 
1019
2013-03-08  Werner Lemberg  
1020
 
1021
	[cff] Set `linear{Hori,Vert}Advance' for embedded bitmaps also.
1022
 
1023
	Problem reported by Khaled Hosny .
1024
 
1025
	* src/cff/cffgload.c (cff_slot_load): Implement it.
1026
 
1027
2013-02-23  Alexei Podtelezhnikov  
1028
 
1029
	[base] Fix commit ab02d9e8.
1030
 
1031
	* src/base/ftbbox.c (BBox_Cubic_Check): Change scaling to msb of 22.
1032
 
1033
2013-02-19  Alexei Podtelezhnikov  
1034
 
1035
	[base] New bisecting BBox_Cubic_Check (disabled).
1036
 
1037
	* src/base/ftbbox.c (BBox_Cubic_Check): New bisecting algorithm
1038
	for extremum search built around simple condition that defines
1039
	which half contains the extremum.
1040
 
1041
2013-02-18  Alexei Podtelezhnikov  
1042
 
1043
	[tools] Update BBox testing tool.
1044
 
1045
	* src/tools/test_bbox.c: Add another cubic outline with exact BBox.
1046
	(REPEAT): Increase the number of benchmarking cycles.
1047
	(profile_outline): Tweak output formatting.
1048
 
1049
2013-02-02  Werner Lemberg  
1050
 
1051
	Fix Savannah bug #38235.
1052
 
1053
	* builds/unix/configure.raw: Don't generate `freetype-config' and
1054
	`freetype.pc'.
1055
 
1056
	* builds/unix/unix-def.in (FT2_EXTRA_LIBS, LIBBZ2, LIBZ,
1057
	build_libtool_libs, ft_version): New variables to be substituted.
1058
	(freetype-config, freetype.pc): New rules to generate those files.
1059
 
1060
	* builds/unix/freetype-config.in: Remove code for handling `rpath'.
1061
	The use of $rpath has been accidentally removed in a patch from
1062
	2009-12-22, and apparently noone has missed it since.
1063
	Use `%' instead of `@' as a variable substitution marker.
1064
	Use quotes.
1065
 
1066
	* builds/unix/freetype.in: Use `%' instead of `@' as a variable
1067
	substitution marker.
1068
	Use quotes.
1069
 
1070
2013-02-07  Werner Lemberg  
1071
 
1072
	* src/truetype/ttobjs.c (tt_size_run_prep): Reset more GS variables.
1073
 
1074
	BTW, Greg agrees that the OpenType specification is missing the list
1075
	of GS variables which will always be reset to the default values
1076
	after the `prep' table has been executed.
1077
 
1078
2013-02-06  Werner Lemberg  
1079
 
1080
	* src/truetype/ttobjs.c (tt_size_run_prep): Reset reference points.
1081
 
1082
	Up to now, we simply took a snapshot of the Graphics State after the
1083
	`prep' table has been executed, and right before a glyph's bytecode
1084
	was run it got reloaded.  However, as Greg Hitchcock has told us in
1085
	private communication, reference points get reset to zero in the MS
1086
	rasterizer and we follow in due course.  While reasonable, this is
1087
	undocumented behaviour.
1088
 
1089
	Most notably, this fixes the rendering of Arial's `x' glyph in
1090
	subpixel hinting mode.
1091
 
1092
2013-02-05  Werner Lemberg  
1093
 
1094
	[truetype] A better fix for Savannah bug #38211.
1095
 
1096
	* src/truetype/ttinterp.c (Ins_IP): Implement identical behaviour to
1097
	MS rasterizer if rp1 == rp2 (confirmed by Greg Hitchcock).
1098
 
1099
2013-02-01  Alexei Podtelezhnikov  
1100
 
1101
	[pcf] Streamline parsing of PCF encoding table.
1102
 
1103
	* src/pcf/pcfread.c (pcf_get_encodings): Use simpler double for-loop.
1104
	Reallocate array instead of using temporary storage.
1105
 
1106
2013-02-01  Werner Lemberg  
1107
 
1108
	Fix Savannah bug #38227.
1109
 
1110
	* builds/unix/freetype-config.in: Set LC_ALL.
1111
 
1112
2013-02-01  Werner Lemberg  
1113
 
1114
	Fix Savannah bug #38221.
1115
 
1116
	This complements commit 83c0ebab.
1117
 
1118
	* src/base/ftcalc.c (FT_MulDiv_No_Round): Don't enclose with
1119
	`TT_USE_BYTECODE_INTERPRETER'.
1120
 
1121
2013-02-01  Werner Lemberg  
1122
 
1123
	[truetype] Fix Savannah bug #38211.
1124
 
1125
	* src/truetype/ttinterp.c (Ins_IP): Make FreeType behave identical
1126
	to other interpreters if rp1 == rp2 (which is invalid).
1127
 
1128
2013-01-28  Alexei Podtelezhnikov  
1129
 
1130
	[base] Small optimization of BBox calculation.
1131
 
1132
	* src/base/ftbbox.c (BBox_Cubic_Check): Use FT_MSB function in
1133
	scaling algorithm.
1134
 
1135
2013-01-26  Infinality  
1136
 
1137
	[truetype] Minor formatting fix.
1138
 
1139
	* src/truetype/ttinterp.c: Updated.
1140
	(DO_RS): Fix indentation.
1141
 
1142
2013-01-26  Infinality  
1143
 
1144
	[truetype] Fix rasterizer_version logic in sph.
1145
 
1146
	* src/truetype/ttsubpix.c: Updated.
1147
	(ALWAYS_SKIP_DELTAP_Rules): Remove rule for Trebuchet MS.
1148
	(sph_set_tweaks): Fix `rasterizer_version' logic.
1149
 
1150
2013-01-26  Infinality  
1151
 
1152
	[truetype] Align more to ClearType whitepaper for sph.
1153
 
1154
	* include/freetype/internal/tttypes.h (TT_FaceRec): Add flags
1155
	for detected opcode patterns and compatibility mode.
1156
 
1157
	* src/truetype/ttgload.c (tt_loader_init): Complete conditional.
1158
 
1159
	* src/truetype/ttinterp.c: Updated.
1160
	Remove SPH_DEBUG and replace with FT_TRACE7.
1161
	(DO_RS): More conditions.
1162
	(Ins_FDEF): Add more opcode detection patterns.
1163
	More specific conditions when flagging an fdef.
1164
	Make compatibility mode only turn on when delta fdefs are found.
1165
	(Ins_CALL, Ins_LOOPCALL): Set flags for currently executed fdef.
1166
	(Ins_SHPIX): Remove logic to handle ttfautohinted fonts.
1167
	Simplify conditionals where possible.
1168
	Use `&' instead of `%' operator for dumb compilers.
1169
	(Ins_MIAP): Adjust twilight zone conditional.
1170
	Ensure `ignore_x_mode' is on when testing sph conditionals.
1171
	(Ins_MIRP): Ensure `ignore_x_mode' is on when testing sph
1172
	conditionals.
1173
	Do cvt cutin always when `ignore_x_mode' is active.
1174
	Remove test for ttfautohinted fonts.
1175
	(Ins_DELTAP): Ensure `ignore_x_mode' is on when testing sph
1176
	conditionals.
1177
	Do cvt cutin always when `ignore_x_mode' is active.
1178
	Remove test for ttfautohinted fonts.
1179
	Use `&' instead of `%' operator for dumb compilers.
1180
	(Ins_GETINFO): Remove SPH_DEBUG and replace with FT_TRACE7.
1181
 
1182
	* src/truetype/ttinterp.h: Updated.
1183
	(TT_ExecContextRec): Remove compatibility_mode variable.
1184
	Add variable to indicate when executing in special fdefs for sph.
1185
 
1186
	* src/truetype/ttobjs.h: Updated.
1187
	(TT_DefRecord): Add flags to identify special fdefs for sph.
1188
	(TT_SizeRec): Remove unnecessary ttfautohinted variable.
1189
 
1190
	* src/truetype/ttsubpix.c: Updated.
1191
	(COMPATIBILITY_MODE_Rules): Remove all.  Auto-detected now.
1192
	(PIXEL_HINTING_Rules): Remove all.  Unnecessary after fixes.
1193
	(SKIP_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu.
1194
	(SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Arial Bold `N'.
1195
	(SKIP_OFFPIXEL_Y_MOVES_Rules): Remove all.  Happens automatically
1196
	now.
1197
	(ROUND_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu.
1198
	(ROUND_NONPIXEL_Y_MOVES_Rules_Exceptions): Remove all.
1199
	(NORMAL_ROUND_Rules): Remove Verdana.
1200
	(NO_DELTAP_AFTER_IUP_Rules): Remove all.
1201
	(sph_set_tweaks): Performance fix.  Don't run prep always.
1202
	Adjust conditional for sph_compatibility_mode.
1203
 
1204
	* src/truetype/ttsubpix.h: Add new fdef flags for sph.
1205
 
1206
2013-01-23  Alexei Podtelezhnikov  
1207
 
1208
	[base] Fix broken emboldening at small sizes.
1209
 
1210
	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Do not attempt to
1211
	normalize zero-length vectors.
1212
 
1213
2013-01-25  Werner Lemberg  
1214
 
1215
	Fix Savannah bug #38167.
1216
 
1217
	This fixes commit 83c0ebab from 2012-06-27.
1218
 
1219
	* src/truetype/ttinterp.h:
1220
	s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1221
 
1222
2013-01-25  Xi Wang  
1223
 
1224
	[sfnt] Fix broken pointer overflow checks.
1225
 
1226
	Many compilers such as gcc and clang optimize away pointer overflow
1227
	checks `p + n < p', because pointer overflow is undefined behavior.
1228
	Use a safe form `n > p_limit - p' instead.
1229
 
1230
	Also avoid possible integer overflow issues, for example, using
1231
	`num_glyphs > ( p_limit - p ) / 2' rather than `num_glyphs * 2'
1232
	given a large `num_glyphs'.
1233
 
1234
	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Implement it.
1235
 
1236
2013-01-25  Werner Lemberg  
1237
 
1238
	[base] Fix `make multi'.
1239
 
1240
	* src/base/ftoutln.c, src/base/fttrigon.c: Include
1241
	FT_INTERNAL_CALC_H.
1242
 
1243
2013-01-25  David 'Digit' Turner  
1244
 
1245
	[truetype] Fix C++ compilation.
1246
 
1247
	* src/truetype/ttsubpix.h: Updated.
1248
	(SPH_X_SCALING_RULES_SIZE): Moved and renamed to...
1249
	* src/truetype/ttsubpix.c (X_SCALING_RULES_SIZE): This.
1250
	(sph_X_SCALING_Rules): Removed.
1251
	(scale_test_tweak): Make function static.
1252
	(sph_test_tweak_x_scaling): New function.
1253
 
1254
	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Updated.
1255
 
1256
2013-01-23  Werner Lemberg  
1257
 
1258
	[base] Make `FT_Hypot' really internal.
1259
 
1260
	* include/freetype/fttrigon.h (FT_Hypot): Move to...
1261
	* include/freetype/internal/ftcalc.h: This file.
1262
 
1263
	* src/base/fttrigon.c (FT_Hypot): Move to...
1264
	* src/base/ftcalc.c: This file.
1265
	Include FT_TRIGONOMETRY_H.
1266
 
1267
	* src/truetype/ttgload.c: Don't include FT_TRIGONOMETRY_H.
1268
 
1269
2013-01-23  Werner Lemberg  
1270
 
1271
	[truetype] Revert change from 2013-01-22.
1272
 
1273
	FreeType's `height' value is the baseline-to-baseline distance...
1274
 
1275
	* src/truetype/ttobjs.c (tt_size_reset): Undo.
1276
 
1277
2013-01-23  Alexei Podtelezhnikov  
1278
 
1279
	[base, truetype] New internal `FT_Hypot' function.
1280
 
1281
	* include/freetype/fttrigon.h (FT_Hypot): Declare it.
1282
	* src/base/fttrigon.c (FT_Hypot): Define it.
1283
	* src/truetype/ttgload.c (TT_Process_Composite_Component): Use it
1284
	instead of explicit expressions.
1285
	* src/truetype/ttinterp.c (Current_Ratio, Normalize): Use it instead
1286
	of TT_VecLen.
1287
	(TT_VecLen): Removed.
1288
 
1289
2013-01-23  Alexei Podtelezhnikov  
1290
 
1291
	[base] Fix integer overflow.
1292
 
1293
	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Normalize incoming and
1294
	outgoing vectors and use fixed point arithmetic.
1295
 
1296
2013-01-23  Alexei Podtelezhnikov  
1297
 
1298
	[base] Fix integer overflow.
1299
 
1300
	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Scale the
1301
	coordinates down to avoid overflow.
1302
 
1303
2013-01-23  Alexei Podtelezhnikov  
1304
 
1305
	[base] Split out MSB function.
1306
 
1307
	* src/base/fttrigon.c (ft_trig_prenorm): Borrow from here.
1308
	* include/freetype/internal/ftcalc.h (FT_MSB): Declare here.
1309
	* src/base/ftcalc.c (FT_MSB): Define here.
1310
 
1311
2013-01-22  Werner Lemberg  
1312
 
1313
	[truetype] Fix font height.
1314
 
1315
	* src/truetype/ttobjs.c (tt_size_reset): The Windows rendering
1316
	engine uses rounded values of the ascender and descender to compute
1317
	the TrueType font height.
1318
 
1319
2013-01-16  Behdad Esfahbod  
1320
 
1321
	[sfnt] Fix optimized sbit loader.
1322
 
1323
	It was not taking bit_depth into consideration when blitting!
1324
 
1325
	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_byte_aligned,
1326
	* tt_sbit_decoder_load_bit_aligned): Handle bit
1327
	depth.
1328
 
1329
2013-01-16  David 'Digit' Turner  
1330
 
1331
	[truetype] Improve sub-pixel code.
1332
 
1333
	This patches fixes many issues with the ttsubpix implementation.
1334
 
1335
	1. Data tables are defined, instead of declared, in the header, and
1336
	   thus copied into each source file that includes it.
1337
 
1338
	2. These tables were defined as global, mutable, visible variables,
1339
	   and thus costing private RAM to every process that loads the
1340
	   library (> 50 KB / process, this is huge!).
1341
 
1342
	   Additionally, this also made the library export the symbols
1343
	   completely needlessly.
1344
 
1345
	3. Missing `sph_' and `SPH_' prefixes to some of the definitions.
1346
 
1347
	Note that this doesn't try to fix the incredibly inefficient storage
1348
	format for the data tables used by the code.  This one will require
1349
	another pass in the future.
1350
 
1351
	* src/truetype/ttinterp.h (MAX_NAME_SIZE, MAX_CLASS_MEMBERS):
1352
	Renamed to...
1353
	(SPH_MAX_NAME_SIZE, SPH_MAX_CLASS_MEMBERS): This.
1354
	Update all users.
1355
 
1356
	(SPH_TweakRule, SPH_ScaleRule): Decorate with `const' where
1357
	appropriate.
1358
 
1359
	(Font_Class): Rename to...
1360
	(SPH_Font_Class): This.  Decorate with `const' where appropriate.
1361
 
1362
	* src/truetype/ttsubpix.h (scale_test_tweak, sph_test_tweak):
1363
	Decorate arguments with `const' where appropriate.
1364
 
1365
	Move font tweaking tables to...
1366
 
1367
	* src/truetype/ttsubpic.c: This file and decorate them with `static'
1368
	and `const' where appropriate.
1369
 
1370
	(X_SCALING_Rules, X_SCALING_RULES_SIZE): Renamed to...
1371
	(spu_X_SCALING_Rules, SPH_X_SCALING_RULES_SIZE): This.
1372
	Update all users.
1373
 
1374
2013-01-12  Alexei Podtelezhnikov  
1375
 
1376
	[truetype] Improve accuracy of normalization of short vectors.
1377
 
1378
	Unit vector components are stored as 2.14 fixed-point numbers. In
1379
	order to calculate all 14 bits accurately, a short vector to be
1380
	normalized has to be upscaled to at least 14 bits before its length
1381
	is calculated. This has been safe since accurate CORDIC algorithms
1382
	were adopted.
1383
 
1384
	* src/truetype/ttinterp.c (Normalize): Scale short vectors by 0x4000.
1385
 
1386
2013-01-12  Alexei Podtelezhnikov  
1387
 
1388
	[truetype] Kill very old vector normalization hacks.
1389
 
1390
	Back in the days, vector length calculations were not very accurate
1391
	and the vector normalization function, Normalize, had to meticulously
1392
	correct the errors for long vectors [commit b7ef2b096867]. It was no
1393
	longer necessary after accurate CORDIC algorithms were adopted, but
1394
	the code remained. It is time to kill it.
1395
 
1396
	* src/truetype/ttinterp.c (Normalize): Remove error compensation.
1397
	(TT_VecLen): Remove any mention of old less accurate implementation.
1398
 
1399
2013-01-11  Werner Lemberg  
1400
 
1401
	Disable FT_CONFIG_OPTION_OLD_INTERNALS.
1402
 
1403
	After the next release we are going to remove the code completely.
1404
 
1405
	* devel/ftoption.h, include/freetype/config/ftoption.h
1406
	(FT_CONFIG_OPTION_OLD_INTERNALS): Comment out.
1407
	* docs/CHANGES: Document it.
1408
 
1409
2013-01-10  Alexei Podtelezhnikov  
1410
 
1411
	[base] Update the overflow protection bit.
1412
 
1413
	The recent optimizations of CORDIC iterations drastically reduce the
1414
	expansion factor.  Vector components with MSB of 29 are now safe
1415
	from overflow.
1416
 
1417
	* src/base/fttrigon.c (FT_TRIG_SAFE_MSB): New macro.
1418
	(ft_trig_prenorm): Use it and remove dead code.
1419
 
1420
2013-01-09  Alexei Podtelezhnikov  
1421
 
1422
	[base, pshinter] Use FT_ABS, FT_MIN, and FT_MAX for readability.
1423
 
1424
	* src/base/ftbbox.c: Updated.
1425
	* src/base/ftobjs.c: Updated.
1426
	* src/base/fttrigon.c: Updated.
1427
	* src/pshinter/pshalgo.c: Updated.
1428
	* src/pshinter/pshrec.c: Updated.
1429
 
1430
2013-01-08  Alexei Podtelezhnikov  
1431
 
1432
	[base] Clean up trigonometric core.
1433
 
1434
	* src/base/fttrigon.c: Document the algorithm in a large comment.
1435
	(FT_TRIG_COSCALE): Remove macro.
1436
	(FT_Tan: Use `FT_TRIG_SCALE' instead.
1437
	(FT_Cos, FT_Vector_Unit): Ditto and round the return values.
1438
 
1439
2013-01-02  Alexei Podtelezhnikov  
1440
 
1441
	[base] Use rounding in CORDIC iterations.
1442
 
1443
	* src/base/fttrigon.c (ft_trig_pseudo_rotate,
1444
	ft_trig_pseudo_polarize): Improve accuracy by rounding.
1445
 
1446
2013-01-02  Alexei Podtelezhnikov  
1447
 
1448
	[base] Reduce trigonometric algorithms.
1449
 
1450
	After we get within 45 degrees by means of true 90-degree rotations,
1451
	we can remove initial 45-degree CORDIC iteration and start from
1452
	atan(1/2) pseudorotation, reducing expansion factor thereby.
1453
 
1454
	* src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macros.
1455
	(ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Update.
1456
 
1457
	* src/tools/cordic.py: Bring up to date with trigonometric core.
1458
 
1459
	* docs/CHANGES: Old typo.
1460
 
1461
2013-01-02  Alexei Podtelezhnikov  
1462
 
1463
	* src/pshinter/pshalgo.h: Remove unused code.
1464
 
1465
2012-12-27  Werner Lemberg  
1466
 
1467
	* src/truetype/ttgload.c (tt_loader_init): Add more tracing.
1468
 
1469
2012-12-23  Werner Lemberg  
1470
 
1471
	[type1] Fix handling of /FontBBox in MM fonts.
1472
	Problem reported by Del Merritt 
1473
 
1474
	If we have
1475
 
1476
	  /FontBBox { { 11 12 13 14 15 16 17 18 }
1477
	              { 21 22 23 24 25 26 27 28 }
1478
	              { 31 32 33 34 35 36 37 38 }
1479
	              { 41 42 43 44 45 46 47 48 } }
1480
 
1481
	in the /Blend dictionary,  then the first BBox is { 11 21 31 41 },
1482
	the second { 12 22 32 42 }, etc.
1483
 
1484
	* include/freetype/internal/psaux.h (T1_FieldType): Add
1485
	`T1_FIELD_TYPE_MM_BBOX' (for temporary use).
1486
 
1487
	* src/psaux/psobjs.c (ps_parser_load_field) :
1488
	Implement it.
1489
 
1490
2012-12-21  Alexei Podtelezhnikov  
1491
 
1492
	* src/tools/cordic.py: Bring up to date with trigonometric core.
1493
 
1494
2012-12-21  Werner Lemberg  
1495
 
1496
	Check parameters of `FT_Outline_New'.
1497
	Problem reported by Robin Watts .
1498
 
1499
	* src/base/ftoutln.c (FT_Outline_New_Internal): Ensure that
1500
	`numContours' and `numPoints' fit into FT_Outline's `n_points' and
1501
	`n_contours', respectively.
1502
 
1503
2012-12-20  Werner Lemberg  
1504
 
1505
	* Version 2.4.11 released.
1506
	==========================
1507
 
1508
 
1509
	Tag sources with `VER-2-4-11'.
1510
 
1511
	* docs/CHANGES, docs/release: Updated.
1512
 
1513
	* docs/VERSION.DLL: Update documentation and bump version number to
1514
	2.4.11.
1515
 
1516
	* README, Jamfile (RefDoc),
1517
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
1518
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
1519
	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
1520
	builds/win32/visualc/freetype.dsp,
1521
	builds/win32/visualc/freetype.vcproj,
1522
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
1523
	builds/win32/visualce/freetype.vcproj,
1524
	builds/win32/visualce/index.html,
1525
	builds/wince/vc2005-ce/freetype.vcproj,
1526
	builds/wince/vc2005-ce/index.html,
1527
	builds/wince/vc2008-ce/freetype.vcproj,
1528
	builds/wince/vc2008-ce/index.html: s/2.4.10/2.4.11/, s/2410/2411/.
1529
 
1530
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 11.
1531
 
1532
	* builds/unix/configure.raw (version_info): Set to 16:0:10.
1533
 
1534
	* builds/toplevel.mk (dist): Don't include `.mailmap'.
1535
 
1536
2012-12-20  Alexei Podtelezhnikov  
1537
 
1538
	[base] Improve trigonometric core.
1539
 
1540
	FreeType used to rely on a 24-step iteration CORDIC algorithm to
1541
	calculate trigonometric functions and rotate vectors. It turns out
1542
	that once the vector is in the right half-plane, the initial rotation
1543
	by 63 degrees is not necessary. The algorithm is perfectly capable
1544
	to converge to any angle starting from the second 45 degree rotation.
1545
	This patch removes the first rotation and makes it a 23-step CORDIC
1546
	algorithm.
1547
 
1548
	* src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macro
1549
	values.
1550
	(ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Remove initial
1551
	rotation.
1552
 
1553
2012-12-19  Werner Lemberg  
1554
 
1555
	* src/base/ftobjs.c (ft_property_do): Fix compiler warning.
1556
 
1557
2012-12-19  Alexei Podtelezhnikov  
1558
 
1559
	* src/base/ftrfork.c (FT_Raccess_Guess): Switch to FT_Int counters.
1560
 
1561
2012-12-19  Alexei Podtelezhnikov  
1562
 
1563
	[base] Clean up trigonometric core.
1564
 
1565
	* src/base/fttrrigon.c (ft_trig_pseudo_polarize): Align algorithm
1566
	with `ft_trig_pseudo_rotate'.
1567
 
1568
2012-12-18  Infinality  
1569
 
1570
	[truetype] Minor performance enhancement.
1571
 
1572
	* src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Use FT_MulFix
1573
	instead of FT_MulDiv.
1574
 
1575
2012-12-17  Infinality  
1576
 
1577
	[truetype] Remove unusued code and variables.
1578
 
1579
	* src/truetype/ttinterp.c: Updated.
1580
	(Ins_FDEF): Remove opcode patterns that are not being used.
1581
 
1582
2012-12-16  Werner Lemberg  
1583
 
1584
	Various compiler warning fixes.
1585
 
1586
	* include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Use
1587
	`logical not' operator instead of negation.  The idea is that `~'
1588
	returns exactly the data type enforced by the cast to a pointer (be
1589
	it 32bit or 64bit or whatever), while a negative integer has not
1590
	this flexibility.
1591
	* src/cache/ftccmap.c (FTC_CMAP_UNKNOWN): Ditto.
1592
	* src/truetype/ttgxvar.c (ALL_POINTS, TT_Get_MM_Var): Ditto.
1593
	* src/type/t1load.c (T1_Get_MM_Var): Ditto.
1594
	(parse_blend_axis_types): Use cast.
1595
	* src/bdf/bdflib.c (_bdf_readstream): Use cast.
1596
 
1597
2012-12-16  Infinality  
1598
 
1599
	[truetype] Remove unusued code and variables.  Add minor fixes.
1600
 
1601
	* src/truetype/ttsubpix.h: Updated.
1602
	(SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Trebuchet MS.
1603
	(ALLOW_X_DMOVEX_Rules): Remove Arial characters.
1604
	(ALLOW_X_DMOVE_Rules): Remove Arial characters.
1605
	(RASTERIZER_35_Rules): Verdana no longer needs to be here.
1606
	(SKIP_IUP_Rules): Formatting fix.
1607
	(DELTAP_SKIP_EXAGGERATED_VALUES_Rules): Remove Segoe UI.
1608
	(COMPATIBLE_WIDTHS_Rules): Add Monaco and Trebuchet MS.
1609
	(X_SCALING_Rules): Add misc. corrective fixes.
1610
 
1611
	* src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Adjust correction
1612
	factor for emboldening during scaling.
1613
 
1614
	* src/truetype/ttinterp.h: Updated.
1615
	(TT_ExecContextRec): Remove unused variables.
1616
 
1617
	* src/truetype/ttobjs.h: Updated.
1618
	(TT_SizeRec): Add ttfautohinted variable.
1619
 
1620
	* src/truetype/ttinterp.c: Updated.
1621
	(Ins_FDEF): Rework code to fix bugs and add more detection.
1622
	(Ins_CALL): Remove unused code.
1623
	(Ins_LOOPCALL): Remove unused code.
1624
	(TT_RunIns): Remove unusued code.
1625
	(Ins_SHPIX): Add logic to handle ttfautohinted fonts.
1626
	(Ins_MIRP): Don't round x in cut-in calculation.  Add logic to handle
1627
	ttfautohinted fonts.
1628
 
1629
2012-12-16  Werner Lemberg  
1630
 
1631
	[sfnt] Fix Savannah bug #37936.
1632
 
1633
	* src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak.
1634
 
1635
2012-12-15  Alexei Podtelezhnikov  
1636
 
1637
	[base] Fix 11-year old bug.
1638
 
1639
	Since the initial commit (ebe85f59) the value of FT_TRIG_SCALE has
1640
	always been slightly less than the correct value, which has been
1641
	given in the comment as a hexadecimal. As a result, vector lengths
1642
	were underestimated and rotated vectors were shortened.
1643
 
1644
	* src/base/fttrigon.c (FT_TRIG_SCALE): Fix macro value.
1645
 
1646
2012-12-15  Werner Lemberg  
1647
 
1648
	[bdf] Fix Savannah bug #37907.
1649
 
1650
	* src/bdf/bdflib.c (_bdf_parse_glyphs) : Normalize
1651
	negative second parameter of `ENCODING' field also.
1652
 
1653
2012-12-15  Werner Lemberg  
1654
 
1655
	[bdf] Fix Savannah bug #37906.
1656
 
1657
	* src/bdf/bdflib.c (_bdf_parse_glyphs) : Use correct array
1658
	size for checking `glyph_enc'.
1659
 
1660
2012-12-15  Werner Lemberg  
1661
 
1662
	[bdf] Fix Savannah bug #37905.
1663
 
1664
	* src/bdf/bdflib.c (_bdf_parse_start) : Reset
1665
	`props_size' to zero in case of allocation error; this value gets
1666
	used in a loop in `bdf_free_font'.
1667
 
1668
2012-12-10  Alexei Podtelezhnikov  
1669
 
1670
	[truetype] Scale F_dot_P down.
1671
 
1672
	The dot product between freeVector and projVector or cosine of
1673
	the angle between these FT_F2Dot14 unit vectors used to be scaled up
1674
	by 4 and routinely occupied 32 bits in an FT_Long field F_dot_P.
1675
	This patch scales the value down by 2^14 instead, which simplifies
1676
	its use throughout the bytecode interpreter.
1677
 
1678
	This does not lead to the loss of precision because the lower bits
1679
	are unreliable anyway. Consider two unit vectors (1,0) and (.6,.8)
1680
	for which the true value of F_dot_P is .6 * 0x40000000 = 0x26666666.
1681
	These vectors are stored as (0x4000,0) and (0x2666,0x3333) after
1682
	rounding and F_dot_P is assigned 0x26660000. The lower bits were
1683
	already lost while rounding the unit vector components.
1684
 
1685
	Besides code simplification, this change can lead to better
1686
	performance when FT_MulDiv with the scaled-down F_dot_P is less
1687
	likely to use the costly 64-bit path. We are not changing the type
1688
	of F_dot_P to FT_F2Dot14 at this point.
1689
 
1690
	* src/truetype/ttinterp.c (Compute_Funcs): Scale F_dot_P down by 14
1691
	bits and modify its use accordingly.
1692
	(Direct_Move, Direct_Move_Orig, Compute_Point_Displacement): Modify
1693
	the use of F_dot_P field.
1694
	* src/truetype/ttobjs.c (tt_size_run_fpgm): Change arbitrary
1695
	assignment of F_dot_P to its theoretical maximum in case we decide
1696
	to scale back its type later.
1697
 
1698
2012-12-09  Johnson Y. Yan  
1699
 
1700
	[type1] Another fix for 2012-09-17 commit.
1701
 
1702
	* src/type1/t1parse.c (T1_Get_Private_Dict) : Correctly set
1703
	`limit' value.
1704
 
1705
2012-12-06  Alexei Podtelezhnikov  
1706
 
1707
	[truetype] Tweak the previous commit.
1708
 
1709
	* src/truetype/ttinterp.c (Current_Ratio): Put unit vector
1710
	components as the second TT_MulFix14 arguments. This is required
1711
	on 16-bit systems.
1712
 
1713
2012-12-06  Alexei Podtelezhnikov  
1714
 
1715
	[truetype] Microoptimizations in bytecode interpreter.
1716
 
1717
	* src/truetype/ttinterp.c (TT_DivFix14): New macro.
1718
	(Normalize): Use it here.
1719
	(Current_Ratio): Use TT_MulFix14 instead of FT_MulDiv.
1720
	(Ins_SHPIX): Cancel out two TT_MulFix14 calls.
1721
 
1722
2012-12-05  Alexei Podtelezhnikov  
1723
 
1724
	[truetype] Cosmetic improvement in bytecode interpreter.
1725
 
1726
	* src/truetype/ttinterp.c: Use explicit calls to FT_MulDiv,
1727
	FT_MulFix, and FT_DivFix instead of macros.
1728
 
1729
2012-12-03  John Tytgat  
1730
 
1731
	[pshinter] Clamp BlueScale value.
1732
 
1733
	This is Savannah bug #37856.
1734
 
1735
	* src/pshinter/pshglob.c (psh_calc_max_height): New function.
1736
	(psh_globals_new): Use it to limit BlueScale value to
1737
	`1 / max_of_blue_zone_heights'.
1738
 
1739
2012-12-01  Alexei Podtelezhnikov  
1740
 
1741
	[truetype, type1] Revise the use of FT_MulDiv.
1742
 
1743
	* src/truetype/ttgxvar.c: Updated.
1744
	* src/truetype/ttobjs.c: Updated.
1745
	* src/type1/t1load.c: Updated.
1746
 
1747
2012-11-30  Werner Lemberg  
1748
 
1749
	[configure] Preserve customized `ftoption.h'.
1750
 
1751
	Problem reported by Del Merritt .
1752
 
1753
	* builds/unix/configure.raw : Don't
1754
	remove existing FreeType configuration files.
1755
 
1756
2012-11-29  John Tytgat  
1757
 
1758
	[type1] Fix Savannah bug #37831.
1759
 
1760
	The bug report also contains a patch.
1761
 
1762
	* src/type1/t1parse.c (T1_Get_Private_Dict) : Really fix
1763
	change from 2012-09-17.
1764
 
1765
2012-11-28  Alexei Podtelezhnikov  
1766
 
1767
	[truetype] Fix formatting and typo.
1768
 
1769
2012-11-27  Alexei Podtelezhnikov  
1770
 
1771
	[cid, type1, type42] Clean up units_per_EM calculations.
1772
 
1773
	* src/cid/cidload.c (cid_parse_font_matrix): Updated.
1774
	* src/type1/t1load.c (t1_parse_font_matrix): Updated.
1775
	* src/type42/t42parse.c (t42_parse_font_matrix): Updated.
1776
 
1777
2012-11-27  Alexei Podtelezhnikov  
1778
 
1779
	[ftstroke] Minor improvement.
1780
 
1781
	* src/base/ftstroke.c: Replace nested FT_DivFix and FT_MulFix with
1782
	FT_MulDiv.
1783
 
1784
2012-11-17  Werner Lemberg  
1785
 
1786
	* src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work.
1787
 
1788
2012-11-15  Alexei Podtelezhnikov  
1789
 
1790
	[base] Fix integer overflows in dd5718c7d67a.
1791
 
1792
	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv.
1793
 
1794
2012-11-15  Werner Lemberg  
1795
 
1796
	[autofit] Trace stem widths.
1797
 
1798
	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Add some
1799
	FT_TRACE calls.
1800
 
1801
2012-11-13  Werner Lemberg  
1802
 
1803
	[cff] Add support for OpenType Collections (OTC).
1804
 
1805
	* src/cff/cffload.c (cff_font_load): Separate subfont and face
1806
	index handling to load both pure CFFs with multiple subfonts and
1807
	OTCs (with multiple faces where each face holds exactly one
1808
	subfont).
1809
	* src/cff/cffobjs.c (cff_face_init): Updated.
1810
 
1811
2012-11-12  Werner Lemberg  
1812
 
1813
	[autofit] Minor improvement.
1814
 
1815
	* src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Fix
1816
	loop.
1817
 
1818
2012-11-10  Werner Lemberg  
1819
 
1820
	[autofit] Improve tracing.
1821
 
1822
	* src/autofit/aflatin.c (af_latin_hint_edges)
1823
	[FT_DEBUG_LEVEL_TRACE]: Count number of actions and emit something
1824
	if there weren't any.
1825
 
1826
2012-11-04  Alexei Podtelezhnikov  
1827
 
1828
	[base] Fortify emboldening code against egregious distortions.
1829
 
1830
	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Threshold emboldening
1831
	strength when it leads to segment collapse.
1832
 
1833
2012-11-03  Alexei Podtelezhnikov  
1834
 
1835
	[base] Clean up emboldening code and improve comments there.
1836
 
1837
	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Replace sequential
1838
	calls to FT_MulFix and FT_DivFix with FT_MulDiv.
1839
	Mention that bisectors are used to figure out the shift direction.
1840
 
1841
2012-10-24  Werner Lemberg  
1842
 
1843
	[autofit] Add standard character to `AF_ScriptClassRec' structure.
1844
 
1845
	* src/autofit/aftypes.h (AF_ScriptClassRec): Add `standard_char'
1846
	member.
1847
	(AF_DEFINE_SCRIPT_CLASS): Updated.
1848
 
1849
	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Use it.
1850
	(af_latin_metrics_init, af_latin_script_class): Updated.
1851
 
1852
	* src/autofit/aflatin.c (af_latin2_metrics_init_widths): Use it.
1853
	(af_latin2_metrics_init, af_latin2_script_class): Updated.
1854
 
1855
	* src/autofit/afcjk.c (af_cjk_metrics_init_widths): Use it.
1856
	(af_cjk_metrics_init, af_cjk_script_class): Updated.
1857
 
1858
	* src/autofit/afindic.c	(af_indic_metrics_init,
1859
	af_indic_script_class): Updated.
1860
 
1861
	* src/autofit/afcjk.h, src/autofit/aflatin.h: Updated.
1862
 
1863
	* src/autofit/afdummy.c: Updated.
1864
 
1865
2012-10-24  Werner Lemberg  
1866
 
1867
	[autofit] Only use Unicode CMap.
1868
 
1869
	* src/autofit/aflatin.c (af_latin_metrics_init): Implement it, to be
1870
	in sync with `af_face_globals_compute_script_coverage'.
1871
 
1872
2012-10-21  Werner Lemberg  
1873
 
1874
	[psaux] Improve parsing of invalid numbers.
1875
 
1876
	* src/psaux/psconv.c (PS_Conv_Strtol): Always parse complete number,
1877
	even in case of overflow.
1878
	(PS_Conv_ToInt): Only increase cursor if parsing was successful.
1879
	(PS_Conv_ToFixed): Ditto.
1880
	Trace underflow and data error.
1881
 
1882
2012-10-21  Werner Lemberg  
1883
 
1884
	[smooth] Improve tracing.
1885
 
1886
	* src/smooth/ftgrays.c (gray_sweep): Trace last sweep line of
1887
	current band also.
1888
 
1889
2012-10-20  Alexei Podtelezhnikov  
1890
 
1891
	[truetype] Cheaper way to threshold angles between vectors.
1892
 
1893
	* src/truetype/ttinterp.c (Ins_ISECT): Thresholding tangent is a lot
1894
	cheaper than thresholding sine.
1895
 
1896
2012-10-20  Werner Lemberg  
1897
 
1898
	[cff] Improve parsing of invalid real numbers.
1899
 
1900
	* src/cff/cffparse.c (cff_parse_real): Always parse complete number,
1901
	even in case of overflow or underflow.
1902
	Also trace one more underflow.
1903
 
1904
2012-10-20  Andreas Pehnack  
1905
 
1906
	[sfnt] Load pure CFF fonts wrapped in SFNT container.
1907
 
1908
	Such fonts only have a `cmap' and a `CFF' table.
1909
 
1910
	* src/sfnt/ttload.c (tt_face_load_font_dir): Don't call
1911
	`check_table_dir' if font signature is `OTTO'.
1912
 
1913
2012-10-20  Werner Lemberg  
1914
 
1915
	[psaux] Fix some value overflows and improve tracing.
1916
 
1917
	* src/psaux/psconv.c: Include FT_INTERNAL_DEBUG_H.
1918
	(FT_COMPONENT): Define.
1919
	(PS_Conv_Strtol): Return FT_Long.
1920
	Handle bad data and overflow.
1921
	Emit some tracing messages in case of error.
1922
	(PS_Conv_ToInt): Return FT_Long.
1923
	(PS_Conv_ToFixed): Updated.
1924
	* src/psaux/psconv.h: Updated.
1925
 
1926
	* include/freetype/internal/fttrace.h: Add `psconv'.
1927
 
1928
2012-10-20  Werner Lemberg  
1929
 
1930
	[autofit] Fix `make multi CC=c++'.
1931
 
1932
	* src/autofit/aflatin.c, src/autofit/aflatin2.c: Include
1933
	`afglobal.h'.
1934
	* src/autofit/afloader.c: Fix order of header files.
1935
	* src/autofit/afmodule.c: Include `afglobal.h' and `aferrors.h'.
1936
 
1937
2012-10-19  Werner Lemberg  
1938
 
1939
	[cff] Fix more value errors and improve tracing.
1940
 
1941
	* src/cff/cffparse.c (cff_parse_integer): Emit tracing message in
1942
	case of error.
1943
	(cff_parse_real): Handle and trace overflow, underflow, and bad data
1944
	consistently.
1945
	(do_fixed): New helper function, handling and tracing overflow.
1946
	(cff_parse_fixed, cff_parse_fixed_scaled): Use `do_fixed'.
1947
 
1948
2012-10-17  Werner Lemberg  
1949
 
1950
	[psaux] Fix some value overflows.
1951
 
1952
	* src/psaux/psconv.c (PS_Conv_ToFixed): Implement it.
1953
 
1954
2012-10-17  Bram Tassyns  
1955
 
1956
	[cff] Fix value overflow.
1957
 
1958
	* src/cff/cffparse.c (cff_parse_fixed_scaled): Implement it.
1959
 
1960
2012-10-17  Werner Lemberg  
1961
 
1962
	[truetype] Fix Savannah bug #37572.
1963
 
1964
	* src/truetype/ttinterp.c (Ins_ISECT): Use angle between vectors to
1965
	avoid grazing intersections.  The previous threshold was too coarse,
1966
	incorrectly rejecting short but valid vectors.
1967
 
1968
2012-09-30  Gilles Espinasse  
1969
 
1970
	Remove useless `rm' detection.
1971
 
1972
	`rm -f' is directly used in the `configure' script created by
1973
	autoconf, thus no availability test is necessary.
1974
 
1975
	* builds/unix/configure.raw (RMF): Remove test.
1976
	* builds/unix/unix-def.in (DELETE): Updated.
1977
 
1978
2012-09-29  Werner Lemberg  
1979
 
1980
	[autofit] Minor optimization.
1981
 
1982
	* src/autofit/afglobals.c (af_face_globals_compute_script_coverage):
1983
	Add loop condition.
1984
 
1985
2012-09-29  Werner Lemberg  
1986
 
1987
	[autofit] Fix thinko.
1988
 
1989
	* src/autofit/aftypes.h (AF_SCRIPT):
1990
	s/AF_SCRIPT_NONE/AF_SCRIPT_DUMMY/.  We already use `AF_SCRIPT_NONE'
1991
	as a bit mask.
1992
 
1993
	* src/autofit/afdummy.c: Updated.
1994
 
1995
2012-09-18  Werner Lemberg  
1996
 
1997
	[autofit] Implement `increase-x-height' property.
1998
 
1999
	* include/freetype/ftautoh.h (FT_Prop_IncreaseXHeight): New
2000
	structure.
2001
 
2002
	* include/autofit/afmodule.c (af_property_get_face_globals): New
2003
	function, re-using code from `af_property_get'.
2004
	(af_property_set, af_property_get): Handle `increase-x-height'.
2005
	Updated.
2006
 
2007
2012-09-18  Werner Lemberg  
2008
 
2009
	[autofit] Implement Infinality's `increase glyph heights'.
2010
 
2011
	This is an improved version of a similar fix contained in the
2012
	so-called `Infinality patch', taken from
2013
 
2014
	  http://www.infinality.net/fedora/linux/zips/freetype-infinality-2.4.10-20120616_01-x86_64.tar.bz2
2015
 
2016
	which addresses various enhancements of the auto-hinter.  Without
2017
	properties to control a module's metadata it wasn't possible to
2018
	adapt the patches because everything was originally controlled by
2019
	environment variables which I consider not suitable in general.
2020
 
2021
	A patch to control `increase_x_height' follows.
2022
 
2023
	* src/autofit/afglobal.h (AF_PROP_INCREASE_X_HEIGHT_MIN,
2024
	AF_PROP_INCREASE_X_HEIGHT_MAX): New macros.
2025
	(AF_FaceGlobalsRec): Add `increase_x_height' member.
2026
	* src/autofit/afglobal.c (af_face_globals_new): Initialize it.
2027
 
2028
	* src/autofit/aflatin.c (af_latin_metrics_scale_dim),
2029
	* src/autofit/aflatin2.c (af_latin2_metrics_scale_dim): Implement
2030
	handling of `increase_x_height'.
2031
 
2032
2012-09-18  Werner Lemberg  
2033
 
2034
	[autofit] Add hierarchical property access to some structures.
2035
 
2036
	* src/autofit/afglobal.h: Include `afmodule.h'.
2037
	(AF_FaceGlobalsRec): Add `module' member.
2038
	(AF_FaceGlobals): Typedef moved to...
2039
	* src/autofit/aftypes.h: Here.
2040
	(AF_ScriptMetricsRec): Add `globals' member.
2041
 
2042
	* src/autofit/afglobal.c (af_face_globals_new,
2043
	af_face_globals_compute_script_coverage,
2044
	af_face_globals_get_metrics): Updated.
2045
 
2046
	* src/autofit/afloader.c (af_loader_reset), src/autofit/afmodule.c
2047
	(af_property_get): Updated.
2048
 
2049
2012-09-17  Werner Lemberg  
2050
 
2051
	[type1] Fix Savannah bug #37350.
2052
 
2053
	* src/type1/t1parse.c (T1_Get_Private_Dict) : Check for ASCII
2054
	storage only if we actually have at least four bytes.
2055
 
2056
2012-09-15  Werner Lemberg  
2057
 
2058
	[autofit] Implement `fallback-script' property.
2059
 
2060
	* src/autofit/afglobal.c: s/default_script/fallback_script/.
2061
	* src/autofit/afglobal.h: s/AF_SCRIPT_DEFAULT/AF_SCRIPT_FALLBACK/.
2062
 
2063
	* src/autofit/afmodule.c: s/default_script/fallback_script/.
2064
	(af_property_set, af_property_get): Implement `fallback-script'.
2065
	* src/autofit/afmodule.h: s/default_script/fallback_script/.
2066
 
2067
	* include/freetype/ftautoh.h: Document it.
2068
 
2069
2012-09-15  Werner Lemberg  
2070
 
2071
	[autofit] Correct previous Unicode 6.1.0 change.
2072
 
2073
	The auto-hinter's latin module only handles latin ligatures in the
2074
	`Alphabetical Presentation Forms' block.
2075
 
2076
	* src/autofit/aflatin.c (af_latin_uniranges): Fix it.
2077
 
2078
2012-09-15  Werner Lemberg  
2079
 
2080
	* src/autofit/afmodule.c: s/FT_Err_/AF_Err_/.
2081
 
2082
2012-09-15  Werner Lemberg  
2083
 
2084
	[autofit] Make default script a global property.
2085
 
2086
	* src/autofit/afmodule.h (AF_ModuleRec): Add `default_script' field.
2087
 
2088
	* src/autofit/afglobal.c (af_face_globals_compute_script_coverage,
2089
	af_face_globals_new), src/autofit/afloader.c (af_loader_reset),
2090
	src/autofit/afmodule.c (af_property_get) ,
2091
	af_autofitter_init:
2092
	Handle default script.
2093
 
2094
	* src/autofit/afglobal.h: Updated.
2095
 
2096
2012-09-15  Werner Lemberg  
2097
 
2098
	Use `FT_Module' instead of `FT_Library' argument in property funcs.
2099
 
2100
	This internal change simplifies access to global module data.
2101
 
2102
	* include/freetype/internal/services/svprop.h
2103
	(FT_Properties_SetFunc, FT_Properties_GetFunc): Change accordingly.
2104
 
2105
	* src/base/ftobjs.c (ft_property_do), src/autofit/afmodule.c
2106
	(af_property_set, af_property_get): Updated.
2107
 
2108
2012-09-14  Werner Lemberg  
2109
 
2110
	[autofit] Update to Unicode 6.1.0.
2111
 
2112
	* src/autofit/afcjk.c (af_cjk_uniranges), src/autofit/aflatin.c
2113
	(af_latin_uniranges): Add and fix ranges.
2114
 
2115
2012-09-14  Werner Lemberg  
2116
 
2117
	[autofit] Pass `AF_Module' instead of `AF_Loader'.
2118
 
2119
	We want to access the (not yet existing) module's global data later
2120
	on.
2121
 
2122
	* src/autofit/afloader.c: Include `afmodule.h'.
2123
	(af_loader_init, af_loader_reset, af_loader_done,
2124
	af_loader_load_glyph): Change accordingly.
2125
	* src/autofit/afmodule.c (AF_ModuleRec): Move to `afmodule.h'.
2126
	Updated.
2127
 
2128
	* src/autofit/afmodule.h: Include `afloader.h'.
2129
	(AF_ModuleRec): Define here.
2130
	* src/autofit/afloader.h (AF_Module): Define here.
2131
	Updated.
2132
 
2133
2012-09-14  Werner Lemberg  
2134
 
2135
	[autofit] Fix `make multi'.
2136
 
2137
	* include/freetype/internal/fttrace.h: Add `afmodule'.
2138
	* src/autofit/afmodule.c: Include FT_INTERNAL_DEBUG_H.
2139
	(FT_COMPONENT): Define.
2140
 
2141
2012-09-14  Werner Lemberg  
2142
 
2143
	* src/autofit/afmodule.c: s/FT_Autofitter/AF_Module/.
2144
 
2145
2012-09-12  Werner Lemberg  
2146
 
2147
	[autofit] Minor reorganization.
2148
 
2149
	* src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT,
2150
	AF_SCRIPT_LIST_NONE, AF_DIGIT): Move to...
2151
	* src/autofit/afglobal.h (AF_SCRIPT_DEFAULT, AF_SCRIPT_LIST_NONE,
2152
	AF_DIGIT): This and update code.
2153
 
2154
2012-09-01  Werner Lemberg  
2155
 
2156
	[autofit] Implement `glyph-to-script-map' property.
2157
 
2158
	* include/freetype/ftautoh.h: New public header file.
2159
	* include/freetype/config/ftheader.h (FT_AUTOHINTER_H): New macro.
2160
 
2161
	* src/autofit/afglobal.c (AF_FaceGlobalsRec): Move structure to...
2162
	* src/autofit/afglobal.h: This header file.
2163
	* src/autofit/afmodule.c: Include FT_AUTOHINTER_H.
2164
	(af_property_get): Handle `glyph-to-script-map'.
2165
 
2166
2012-08-31  Werner Lemberg  
2167
 
2168
	[autofit] Implement properties service framework.
2169
 
2170
	No properties are added yet.
2171
 
2172
	* src/autofit/afmodule.c: Include FT_SERVICE_PROPERTIES_H.
2173
	(af_property_set, af_property_get): New dummy functions.
2174
	(af_service_properties, af_services, af_get_interface): Provide
2175
	service setup.
2176
	(autofit_moduleclass): Add service interface.
2177
 
2178
	* src/autofit/afpic.c: Add necessary forward declarations.
2179
	(autofit_module_class_pic_init): Add code for service addition.
2180
	(autofit_module_pic_free): Add code for service removal.
2181
	* src/autofit/afpic.h (AF_SERVICES_GET, AF_SERVICE_PROPERTIES_GET):
2182
	New macros which provide necessary syntactical sugar for PIC
2183
	support.
2184
 
2185
2012-08-30  Werner Lemberg  
2186
 
2187
	Implement properties to control FreeType modules.
2188
 
2189
	* include/freetype/fterrdef.h (FT_Err_Missing_Property): New error
2190
	code.
2191
	* include/freetype/ftmodapi.h (FT_Property_Set, FT_Property_Get):
2192
	New API.
2193
 
2194
	* include/freetype/internal/services/svprop.h: New file.
2195
	* include/freetype/internal/ftserv.h (FT_SERVICE_PROPERTIES_H): New
2196
	macro.
2197
 
2198
	* src/base/ftobjs.c: Include FT_SERVICE_PROPERTIES_H.
2199
	(ft_property_do, FT_Property_Set, FT_Property_Get): New functions.
2200
 
2201
2012-08-29  Werner Lemberg  
2202
 
2203
	[docmaker] Allow `-' in tags and identifiers.
2204
 
2205
	* src/tools/docmaker/content.py (re_identifier),
2206
	src/tools/docmaker/sources.py (re_markup_tag1, re_markup_tag2,
2207
	re_crossref): Add `-' in patterns.
2208
 
2209
2012-08-27  Werner Lemberg  
2210
 
2211
	[FT_CONFIG_OPTION_PIC] Fix g++ 4.6.2 compiler warnings.
2212
 
2213
	* include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER),
2214
	include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER,
2215
	FT_DEFINE_MODULE), include/freetype/internal/ftserv.h
2216
	(FT_DEFINE_SERVICEDESCREC1, FT_DEFINE_SERVICEDESCREC2,
2217
	FT_DEFINE_SERVICEDESCREC3, FT_DEFINE_SERVICEDESCREC4,
2218
	FT_DEFINE_SERVICEDESCREC5, FT_DEFINE_SERVICEDESCREC6),
2219
	src/autofit/afpic.c (autofit_module_class_pic_init),
2220
	src/base/basepic.c (ft_base_pic_init), src/base/ftinit.c
2221
	(ft_create_default_module_classes), src/cff/cffparse.c
2222
	(FT_Create_Class_cff_field_handlers), src/cff/cffpic.c
2223
	(cff_driver_class_pic_init), src/pshinter/pshpic.c
2224
	(pshinter_module_class_pic_init), src/psnames/pspic.c
2225
	(psnames_module_class_pic_init), src/raster/rastpic.c
2226
	(ft_raster1_renderer_class_pic_init), src/sfnt/sfntpic.c
2227
	(sfnt_module_class_pic_init), src/sfnt/ttcmap.c
2228
	(FT_Create_Class_tt_cmap_classes), src/smooth/ftspic.c
2229
	(ft_smooth_renderer_class_pic_init), src/truetype/ttpic.c
2230
	(tt_driver_class_pic_init): Initialize allocation variable.
2231
 
2232
2012-08-27  Werner Lemberg  
2233
 
2234
	[truetype] Fix compilation warning.
2235
 
2236
	* src/truetype/ttgload.c (IS_HINTED): Move macro to...
2237
	* src/truetype/ttobjs.h: This header file.
2238
 
2239
2012-08-27  Werner Lemberg  
2240
 
2241
	[autofit, cff, pshinter, psnames] More renamings for orthogonality.
2242
 
2243
	* src/autofit/afmodule.c, src/autofit/afpic.h:
2244
	s/AF_AUTOFITTER_/AF_/.
2245
 
2246
	* src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffparse.c,
2247
	src/cff/cffpic.h: s/FT_CFF_/CFF_/.
2248
 
2249
	* src/pshinter/pshmod.c, src/pshinter/pshpic.h:
2250
	s/FT_PSHINTER_/PSHINTER_/.
2251
 
2252
	* src/psnames/psmodule.c, src/psnames/pspic.h:
2253
	s/FT_PSCMAPS/PSCMAPS_/.
2254
 
2255
2012-08-27  Werner Lemberg  
2256
 
2257
	[sfnt, truetype] More renamings for orthogonality.
2258
 
2259
	* src/sfnt/sfdriver.c, src/sfnt/sfntpic.h, src/sfnt/ttcmap.c,
2260
	src/truetype/ttdriver.c, src/truetype/ttpic.h: s/FT_SFNT_/SFNT_/,
2261
	s/FT_TT_/TT_/, s/GET_CMAP_INFO_GET/CMAP_INFO_GET/.
2262
 
2263
2012-08-27  Werner Lemberg  
2264
 
2265
	[autofit] Some macro and variable renamings for orthogonality.
2266
 
2267
	* include/freetype/internal/autohint.h, src/base/ftobjs.c,
2268
	src/autofit/afmodule.c, src/autofit/afpic.c, src/autofit/afpic.h:
2269
	s/SERVICE/INTERFACE/, s/service/interface/, s/Service/Interface/.
2270
 
2271
2012-08-26  Werner Lemberg  
2272
 
2273
	Fix Savannah bug #37178.
2274
 
2275
	* src/base/ftobjs.c (FT_Open_Face): Initialize `error' with
2276
	`FT_Err_Missing_Module' before loop to indicate `no valid drivers'.
2277
 
2278
2012-08-17  Werner Lemberg  
2279
 
2280
	* src/base/ftsynth.c (FT_GlyphSlot_Oblique): Fix shear angle.
2281
 
2282
	The old value was far too large (more than 20°).  The new one
2283
	corresponds to 12°, quite common in typography.
2284
 
2285
2012-08-12  Alexei Podtelezhnikov  
2286
 
2287
	[smooth] Fix Savannah bug #37017.
2288
 
2289
	* src/smooth/ftgrays.c (gray_render_cubic): Use a different set of
2290
	checks when detecting super curvy splines to be split.
2291
 
2292
2012-08-05  Werner Lemberg  
2293
 
2294
	[autofit] Improve recognition of flat segments.
2295
 
2296
	Problem reported by Brad Dunzer .
2297
 
2298
	* src/autofit/aflatin.c (af_latin_metrics_init_blues): We have
2299
	a flat segment if the horizontal distance of best on-points is
2300
	larger than a given threshold.
2301
 
2302
2012-08-05  Werner Lemberg  
2303
 
2304
	[autofit] Variable renamings.
2305
 
2306
	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Replace
2307
	`glyph' with `outline'.
2308
	s/best_first/best_contour_first/.
2309
	s/best_last/best_contour_last/.
2310
 
2311
2012-07-31  Werner Lemberg  
2312
 
2313
	[type1] Fix Savannah bug #37000.
2314
 
2315
	* src/type1/t1load.c (parse_encoding): Fix order of checks.
2316
 
2317
2012-07-17  Werner Lemberg  
2318
 
2319
	[psaux] Fix Savannah bug #36833.
2320
 
2321
	* src/psaux/t1decode.c (t1operator_seac): `seac' is not a valid
2322
	operator if we want metrics only.
2323
 
2324
2012-07-16  Werner Lemberg  
2325
 
2326
	[type1] Fix Savannah bug #36832.
2327
 
2328
	* src/type1/t1load.c (parse_charstrings): Reject negative number of
2329
	glyphs.
2330
 
2331
2012-07-13  Werner Lemberg  
2332
 
2333
	[type1] Fix Savannah bug #36829.
2334
 
2335
	* src/type1/t1load.c (parse_encoding): Check cursor position after
2336
	call to T1_Skip_PS_Token.
2337
 
2338
2012-07-12  Alexei Podtelezhnikov  
2339
 
2340
	Revert the last commit 45337b07.
2341
 
2342
	* src/base/ftstroke.c (FT_Stroker_New): Revert the previous change.
2343
 
2344
2012-07-11  Alexei Podtelezhnikov  
2345
 
2346
	[ftstroke] Fix uninitialized return value.
2347
 
2348
	* src/base/ftstroke.c (FT_Stroker_New): Return FT_Err_Ok instead.
2349
 
2350
2012-07-11  Werner Lemberg  
2351
 
2352
	[smooth] Avoid memory leak in case of failure.
2353
 
2354
	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use flags to
2355
	indicate what to clean up after finishing the function, with and
2356
	without errors.
2357
 
2358
2012-07-09  Werner Lemberg  
2359
 
2360
	Fix compilation with MSVC 5.0.
2361
 
2362
	Problem reported by Peter Breitenlohner and Akira Kakuto.
2363
 
2364
	* include/freetype/config/ftstdlib.h (ft_setjmp): Updated.
2365
	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove cast.
2366
 
2367
2012-07-09  Werner Lemberg  
2368
 
2369
	[autofit] Improve debugging messages; do some code cleanup.
2370
 
2371
	* src/autofit/aflatin.c (af_latin_align_linked_edge,
2372
	af_latin_hint_edges): Synchronize with formatting used in the
2373
	ttfautohint project.
2374
 
2375
2012-07-07  Gilles Espinasse  
2376
 
2377
	Fix strict-aliasing warning.
2378
 
2379
	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Avoid double cast.
2380
 
2381
2012-07-07  Dave Thomas  
2382
 
2383
	[ARM] Fix FT_MulFix_arm.
2384
 
2385
	* include/freetype/config/ftconfig.h (FT_MulFix_arm) [__arm__]:
2386
	Avoid ADDS instruction to clobber condition codes.
2387
 
2388
2012-07-06  Werner Lemberg  
2389
 
2390
	[autofit] Do some code cleanup.
2391
 
2392
	* src/autofit/afglobal.c (af_face_globals_new): Simplify.
2393
 
2394
	* src/autofit/afhints.c: Use `FT_TRACE7' instead of `printf'
2395
	everywhere.
2396
	(FT_COMPONENT): New macro.
2397
	(af_glyph_hints_done): Simplify.
2398
 
2399
	* include/freetype/internal/fttrace.h: Updated.
2400
 
2401
2012-07-05  Werner Lemberg  
2402
 
2403
	[autofit] Improve output of debugging information.
2404
 
2405
	* src/autofit/afhints.c (af_glyph_hints_dump_segments): Print more
2406
	data; report no data.
2407
	(af_glyph_hints_dump_edges): Report no data.
2408
 
2409
2012-07-04  Werner Lemberg  
2410
 
2411
	[autofit] Fix Savannah bug #36091.
2412
 
2413
	* src/autofit/aflatin.c (af_latin_metrics_init_blues),
2414
	src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Change the
2415
	constraint for testing round vs. flat segment: Accept either a
2416
	small distance or a small angle.
2417
 
2418
2012-07-04  Werner Lemberg  
2419
 
2420
	[autofit] Beautify blue zone tracing.
2421
 
2422
	* src/autofit/aflatin.c (af_latin_metrics_init_blues),
2423
	src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Implement it.
2424
 
2425
2012-07-03  Werner Lemberg  
2426
 
2427
	[autofit] Quantize stem widths.
2428
 
2429
	* src/autofit/afangles.c (af_sort_widths): Rename to...
2430
	(af_sort_and_quantize_widths): This.
2431
	Add code to avoid stem widths which are almost identical.
2432
	* src/autofit/aftypes.h, src/autofit/aflatin.c, src/autofit/afcjk.c:
2433
	Updated.
2434
 
2435
2012-07-03  Werner Lemberg  
2436
 
2437
	[autofit] Minor speed-up.
2438
 
2439
	* src/autofit/afangles (af_sort_pos, af_sort_widths): Don't swap
2440
	elements if they are equal.
2441
 
2442
2012-06-30  Gilles Espinasse  
2443
 
2444
	Fix `checking if gcc static flag -static works' test.
2445
 
2446
	On my linux build tree, I receive yes answer in in every package I
2447
	build except freetype for this test checking if gcc static flag
2448
	`-static' works
2449
 
2450
	On freetype, no is received, unless bzip2 and zlib are disabled using
2451
 
2452
	  ./configure --without-bzip2 --without-zlib
2453
 
2454
	The reason is that bzip2 and zlib tests add `-lz' and `-lbz2' to
2455
	LDFLAGS and this broke static flag test.
2456
 
2457
	* builds/unix/configure.raw: Update CFLAGS and LDFLAGS only after
2458
	LT_INIT has run.
2459
 
2460
2012-06-28  Infinality  
2461
 
2462
	[truetype] Fix various artifacts.
2463
 
2464
	Verdana was broken in the original Infinality commit.  Also
2465
	includes other minor fixes.
2466
 
2467
	* src/truetype/ttsubpix.h: Updated.  Removed unused macros.
2468
	(RASTERIZER_35_Rules): Add Verdana.
2469
	(SKIP_NONPIXEL_Y_MOVES_Rules): Add Tahoma `s'.
2470
	(MIRP_CVT_ZERO_Rules): Remove Verdana.
2471
	(ALWAYS_SKIP_DELTAP_Rules): Add Russian char 0x438.
2472
	(COMPATIBLE_WIDTHS_Rules): Rearrange some rules.
2473
	(X_SCALING_Rules): Adjust Verdana `a' at 12 and 13 ppem.
2474
 
2475
	* src/truetype/ttsubpix.c: Updated.
2476
	(sph_set_tweaks): Re-execute fpgm always.
2477
 
2478
2012-06-28  Gilles Espinasse  
2479
 
2480
	Fix CFLAGS and LDFLAGS share configure test.
2481
 
2482
	* builds/unix/configure.raw: Fix typo.
2483
 
2484
2012-06-28  Werner Lemberg  
2485
 
2486
	[truetype] Set the `subpixel_positioned' flag unconditionally.
2487
 
2488
	This is how the code currently behaves.
2489
 
2490
	* src/truetype/ttgload.c (tt_loader_init): Do it.
2491
 
2492
2012-06-27  Werner Lemberg  
2493
 
2494
	Fix conditional compilation.
2495
 
2496
	* src/base/basepic.c: Use FT_CONFIG_OPTION_MAC_FONTS.
2497
 
2498
2012-06-27  Werner Lemberg  
2499
 
2500
	Fix conditional compilation.
2501
 
2502
	* include/freetype/internal/ftcalc.h (FT_MulDiv_No_Round): Don't
2503
	enclose with `TT_USE_BYTECODE_INTERPRETER'; we now need the function
2504
	elsewhere also.
2505
 
2506
	* src/autofit/afcjk.h: Use AF_CONFIG_OPTION_CJK.
2507
 
2508
	* src/truetype/ttgload.c (tt_loader_init): Fix compiler warning.
2509
 
2510
	* src/truetype/ttinterp.c (Ins_MSIRP): Fix compiler warning.
2511
 
2512
	* src/truetype/ttinterp.h: Use
2513
	TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
2514
 
2515
2012-06-26  Infinality  
2516
 
2517
	[truetype] Remove unused rounding functionality.
2518
 
2519
	The subpixel hinting patch contained the concept of an adjustable
2520
	number of gridlines per pixel.  This is no longer used due to x
2521
	being completely ignored instead.  This will return some of the
2522
	code to its existing state prior to the original Infinality
2523
	commit.
2524
 
2525
	* include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID,
2526
	FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): Removed.
2527
 
2528
	* src/truetype/ttinterp.c: Updated.
2529
	(Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
2530
	Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45,
2531
	SetSuperRound): Remove parameter to handle the number of grid lines per
2532
	pixel.
2533
	(SET_SuperRound, ROUND_None, CUR_Func_round): Updated.
2534
	(DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated.
2535
	(DO_ROUND, DO_NROUND): Updated.
2536
	(Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP,
2537
	Ins_MDRP, Ins_MIRP): Perform Round_None instead of calling a modified
2538
	rounding function.  Remove gridlines_per_pixel.  Create a local
2539
	variable to store control value cutin. Simplify the conditional for
2540
	ignore_x_mode.  Adjust rounding calls to pass only two values.
2541
 
2542
2012-06-25  Werner Lemberg  
2543
 
2544
	[cff] Fix Savannah bug #36705.
2545
 
2546
	Handle numbers like 2.001 correctly.
2547
 
2548
	* src/cff/cffparse.c (cff_parse_real): Avoid negative values for
2549
	`shift'.
2550
 
2551
2012-06-18  Infinality  
2552
 
2553
	[truetype] Support subpixel hinting.
2554
 
2555
	This is the large, famous `Infinality' patch to support ClearType
2556
	bytecode which has been available from
2557
	http://www.infinality.net/blog/ for some time, and which has been
2558
	refined over the last years.  While still experimental, it is now
2559
	mature enough to be included directly into FreeType.
2560
 
2561
	Most of the code is based on the ClearType whitepaper written by
2562
	Greg Hitchcock
2563
 
2564
	  http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
2565
 
2566
	which gives a detailed overview of the necessary changes to the
2567
	Microsoft rasterizer so that older fonts are supported.  However, a
2568
	lot of details are still missing, and this patches provides a
2569
	framework to easily handle rendering issues down to the glyph level
2570
	of certain fonts.
2571
 
2572
	Note that ClearType support is not completely implemented!  In
2573
	particular, full support for the options `compatible_widths',
2574
	`symmetrical_smoothing, and `bgr' (via the GETINFO bytecode
2575
	instruction) is missing.
2576
 
2577
	* src/truetype/ttsubpix.c: New file, providing code to handle
2578
	`tweaks', this is, rules for certain glyphs in certain fonts
2579
	(including wildcards) which need a special treatment.
2580
 
2581
	* src/truetype/ttsubpix.h: New file, holding the tweaking rules.
2582
 
2583
	* include/freetype/config/ftoption.h, src/devel/ftoption.h
2584
	(TT_CONFIG_OPTION_SUBPIXEL_HINTING): New macro.
2585
 
2586
	* include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID,
2587
	FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): New macros.
2588
 
2589
	* src/truetype/truetype.c [TT_USE_BYTECODE_INTERPRETER]: Include
2590
	`ttsubpix.c'.
2591
 
2592
	* src/truetype/ttgload.c: Include `ttsubpix.h'.
2593
	[All changes below are guarded by TT_CONFIG_OPTION_SUBPIXEL_HINTING.]
2594
 
2595
	(tt_get_metrics): Set tweak flags.
2596
	(TT_Hint_Glyph): Call `FT_Outline_EmboldenXY' if necessary.
2597
	(TT_Process_Simple_Glyph): Compensate emboldening if necessary.
2598
	(compute_glyph_metrics): Handle `compatible widths' option.
2599
	(tt_loader_init): Handle ClearType GETINFO information bits.
2600
 
2601
	* src/truetype/rules.mk (TT_DRC_SRC): Updated.
2602
 
2603
	* src/truetype/ttinterp.c: Include `ttsubpix.h'.
2604
	[Where necessary, changes below are guarded by
2605
	TT_CONFIG_OPTION_SUBPIXEL_HINTING.]
2606
 
2607
	(Direct_Move, Direct_Move_X): Extended.
2608
	(Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
2609
	Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45,
2610
	SetSuperRound): Add parameter to handle the number of grid lines per
2611
	pixel.
2612
	(SET_SuperRound, ROUND_None, CUR_Func_round): Updated.
2613
	(DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated.
2614
	(DO_ROUND, DO_NROUND): Updated.
2615
	(DO_RS): Take care of `Typeman' bytecode patterns.
2616
	(Ins_FDEF): Add some debugging code.  Commented out.
2617
	(Ins_ENDF): Restore state.
2618
	(Ins_CALL, Ins_LOOPCALL): Handle inline delta functions.
2619
	(Ins_MD): Handle `Vacuform' rounds.
2620
	(Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP,
2621
	Ins_MDRP, Ins_MIRP): Handle tweaks.
2622
	(Ins_ALIGNRP): Add tweak guard.
2623
	(Ins_IUP, Ins_DELTAP): Handle tweaks.
2624
	(Ins_GETINFO): Handle new ClearType bits.
2625
	(TT_RunIns): Handle tweaks.
2626
 
2627
	* src/truetype/ttinterp.h: Updated.
2628
	(SPH_TweakRule, SPH_ScaleRule): New structures for tweaks.
2629
	(TT_ExecContextRec): Add members for subpixel hinting support.
2630
 
2631
	* src/truetype/ttobjs.h (TT_DefRecord): Add `inline_delta' member.
2632
 
2633
2012-06-15  Werner Lemberg  
2634
 
2635
	* Version 2.4.10 released.
2636
	=========================
2637
 
2638
 
2639
	Tag sources with `VER-2-4-10'.
2640
 
2641
	* docs/VERSION.DLL: Update documentation and bump version number to
2642
	2.4.10.
2643
 
2644
	* README, Jamfile (RefDoc),
2645
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
2646
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
2647
	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
2648
	builds/win32/visualc/freetype.dsp,
2649
	builds/win32/visualc/freetype.vcproj,
2650
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
2651
	builds/win32/visualce/freetype.vcproj,
2652
	builds/win32/visualce/index.html,
2653
	builds/wince/vc2005-ce/freetype.vcproj,
2654
	builds/wince/vc2005-ce/index.html,
2655
	builds/wince/vc2008-ce/freetype.vcproj,
2656
	builds/wince/vc2008-ce/index.html: s/2.4.9/2.4.10/, s/249/2410/.
2657
 
2658
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
2659
 
2660
	* builds/unix/configure.raw (version_info): Set to 15:0:9.
2661
 
2662
2012-06-15  Alexei Podtelezhnikov  
2663
 
2664
	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Improve spacing.
2665
 
2666
	* docs/CHANGES: Updated.
2667
 
2668
2012-06-14  suzuki toshiya  
2669
 
2670
	* builds/exports.mk: Add CCexe_CFLAGS and CCexe_LDFLAGS.
2671
 
2672
	to pass special compiler/linker flags under cross development.
2673
	Suggested by Savannah bug #36367.
2674
 
2675
	ChangeLog on 2010-07-15 saying as they were removed was wrong
2676
	for the official trunk of FreeType2.  This commit is the first
2677
	introduction of them.
2678
 
2679
2012-06-14  Werner Lemberg  
2680
 
2681
	* docs/CHANGES: Updated.
2682
 
2683
2012-06-14  suzuki toshiya  
2684
 
2685
	[truetype] Add new versions of NEC FA family to tricky font list.
2686
 
2687
	NEC FA family dated in 1996 have different checksum.
2688
	Reported by Johnson Y. Yan ; see
2689
 
2690
	  http://lists.gnu.org/archive/html/freetype-devel/2012-06/msg00023.html
2691
 
2692
	* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): 4 sets
2693
	of fpgm & prep table checksums for FA-Gothic, FA-Minchou,
2694
	FA-RoundedGothicM, FA-RoundedGothicB are added.  The family
2695
	names in sample PDF are truncated, thus the list of the
2696
	family names in tt_check_trickyness_family() is not updated yet.
2697
 
2698
2012-06-06  Werner Lemberg  
2699
 
2700
	[ftraster] Fix rounding issue causing visual artifacts.
2701
 
2702
	Problem reported by jola ; see
2703
 
2704
	  http://lists.gnu.org/archive/html/freetype-devel/2012-05/msg00036.html
2705
 
2706
	* src/raster/ftraster.c (SMulDiv_No_Round): New macro.
2707
	(Line_Up): Use it.
2708
	* src/raster/ftmisc.h (FT_MulDiv_No_Round): Copied from `ftcalc.c'.
2709
 
2710
2012-05-28  Alexei Podtelezhnikov  
2711
 
2712
	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Simplify.
2713
 
2714
	We now use the cross product of the direction vectors to compute the
2715
	outline's orientation.
2716
 
2717
2012-05-28  Werner Lemberg  
2718
 
2719
	* docs/CHANGES: Updated.
2720
 
2721
2012-05-28  Alexei Podtelezhnikov  
2722
 
2723
	New function FT_Outline_EmboldenXY.
2724
 
2725
	* include/freetype/ftoutln.h (FT_Outline_EmboldenXY): Define it.
2726
 
2727
	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Implement it, using a
2728
	simplified embolding algorithm.
2729
	(FT_Outline_Embolden): Make it a special case of
2730
	`FT_Outline_EmboldenXY'
2731
 
2732
2012-05-07  Werner Lemberg  
2733
 
2734
	[type1] Fix Savannah bug #36386.
2735
 
2736
	* src/type1/t1load.c (t1_load_keyword): Ignore keyword if context is
2737
	not valid.
2738
 
2739
2012-04-07  Werner Lemberg  
2740
 
2741
	Remove compiler warning.
2742
 
2743
	* src/truetype/ttgload.c (TT_Load_Glyph)
2744
	[!TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Access `glyph->face' directly.
2745
 
2746
2012-03-28  Werner Lemberg  
2747
 
2748
	[autofit] Properly copy scaler flags to script metrics object.
2749
 
2750
	Without this patch, only the dummy and cjk autohinter modules get
2751
	them (since they copy the whole scaler object).
2752
 
2753
	* src/autofit/aflatin.c (af_latin_metrics_scale),
2754
	src/autofit/aflatin2.c (af_latin2_metrics_scale): Implement it.
2755
 
2756
2012-03-22  Alexei Podtelezhnikov  
2757
 
2758
	[bdflib] Remove redundant macro.
2759
 
2760
	* src/bdf/bdflib.c (isdigok): Remove and replace with sbitset, which
2761
	is exactly the same.
2762
 
2763
2012-03-20  suzuki toshiya  
2764
 
2765
	[configure] Fix Savannah bug #35644.
2766
 
2767
	* builds/unix/configure.raw: Check `-ansi' flag works even if gcc
2768
	is used.  Bionic libc headers for Android lose the consistency
2769
	when they are parsed with __STDC_VERSION__ older than 199901L or
2770
	__STRICT_ANSI__.
2771
 
2772
2012-03-20  Werner Lemberg  
2773
 
2774
	[bdf] Improvement to Savannah bug #35656.
2775
 
2776
	* src/bdf/bdflib.c (isdigok): Add cast, as suggested in report.
2777
 
2778
2012-03-17  Chris Liddell  
2779
 
2780
	[type1] Fix Savannah bug #35847.
2781
 
2782
	* src/type1/t1load.c (parse_subrs): Fix the loop exit condition;
2783
	we want to exit when we have run out of data.
2784
 
2785
2012-03-16  Werner Lemberg  
2786
 
2787
	[bdf] Really fix Savannah bug #35658.
2788
 
2789
	* src/bdf/bdflib.c (_bdf_list_split): Add one more `field' initializer.
2790
 
2791
2012-03-14  Yann Droneaud  
2792
 
2793
	[sfnt] Make arrays static like all others.
2794
 
2795
	* src/sfnt/ttload.c (tt_face_load_maxp, tt_face_load_os2),
2796
	src/sfnt/ttmtx.c (tt_face_load_hhea): Add `static' keyword to frame
2797
	fields.
2798
 
2799
2012-03-14  Huw Davies  
2800
 
2801
	[sfnt] A refinement of the previous commit.
2802
 
2803
	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
2804
	tt_name_entry_ascii_from_other): Stop at null byte.
2805
 
2806
2012-03-14  Huw Davies  
2807
 
2808
	[sfnt] Add `name' table compatibility to MS Windows.
2809
 
2810
	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16,
2811
	tt_name_entry_ascii_from_other): Don't replace `\0' with question
2812
	marks when converting strings.
2813
 
2814
2012-03-14  Werner Lemberg  
2815
 
2816
	[type1] Fix Savannah bug #35833.
2817
 
2818
	Based on the patch given in the bug report.
2819
 
2820
	* src/type1/t1load.c (IS_INCREMENTAL): New macro.
2821
	(read_binary_data): Add parameter `incremental'.
2822
	Update all callers using `IS_INCREMENTAL'.
2823
 
2824
2012-03-11  Werner Lemberg  
2825
 
2826
	[autofit] Return correct linear advance width values.
2827
 
2828
	This was quite a subtle bug which accidentally showed up with glyph
2829
	`afii10023' of arial.ttf (version 2.76).  This glyph is a composite;
2830
	the first component, `E', has an advance width of 1366 font units,
2831
	while the advance width of the composite itself (which looks like
2832
	uppercase `E' with dieresis) is 1367 font units.  I think this is
2833
	actually a bug in the font itself, because there is no reason that
2834
	this glyph has not the same width as uppercase `E' without the
2835
	dieresis.  Anyway, it helped identify this problem.
2836
 
2837
	Using the TrueType hinter, the correct value (1367) of `afii10023'
2838
	was returned, but the autohinter mysteriously returned 1366.
2839
 
2840
	Digging in the code showed that the autohinter recursively calls
2841
	FT_Load_Glyph to load the glyph, adding the FT_LOAD_NO_SCALE load
2842
	flag.  However, the `linearHoriAdvance' field is still returned as a
2843
	scaled value.  To avoid scaling twice, the old code in autofit reset
2844
	`linearHoriAdvance', using the `horiAdvance' field.  This seemed to
2845
	work since FT_LOAD_NO_SCALE was in use, but it failed actually,
2846
	because `horiAdvance' is defined as the distance of the first
2847
	subglyph's phantom points, which in turn are initialized using the
2848
	advance width of the first subglyph.  And as the given example
2849
	shows, these widths can differ.
2850
 
2851
	* src/autofit/afloader.c (af_loader_load_g): Temporarily set
2852
	FT_LOAD_LINEAR_DESIGN while calling FT_Load_Glyph to get unscaled
2853
	values for the linear advance widths.
2854
 
2855
2012-03-10  Werner Lemberg  
2856
 
2857
	[truetype] Fix SSW instruction.
2858
 
2859
	* src/truetype/ttinterp.c (DO_SSW): SSW *does* use font units.  For
2860
	verification, it took some time to find a font which actually uses
2861
	this instruction.
2862
 
2863
2012-03-09  Vinnie Falco  
2864
 
2865
	Prepare source code for amalgamation.
2866
 
2867
	* include/freetype/freetype.h: Swap order of preprocessor blocks.
2868
 
2869
2012-03-08  Werner Lemberg  
2870
 
2871
	* Version 2.4.9 released.
2872
	=========================
2873
 
2874
 
2875
	Tag sources with `VER-2-4-9'.
2876
 
2877
	* docs/CHANGES: Updated.
2878
 
2879
	* docs/VERSION.DLL: Update documentation and bump version number to
2880
	2.4.9.
2881
 
2882
	* README, Jamfile (RefDoc),
2883
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
2884
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
2885
	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
2886
	builds/win32/visualc/freetype.dsp,
2887
	builds/win32/visualc/freetype.vcproj,
2888
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
2889
	builds/win32/visualce/freetype.vcproj,
2890
	builds/win32/visualce/index.html,
2891
	builds/wince/vc2005-ce/freetype.vcproj,
2892
	builds/wince/vc2005-ce/index.html,
2893
	builds/wince/vc2008-ce/freetype.vcproj,
2894
	builds/wince/vc2008-ce/index.html: s/2.4.8/2.4.9/, s/248/249/.
2895
 
2896
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 9.
2897
 
2898
	* builds/unix/configure.raw (version_info): Set to 14:1:8.
2899
 
2900
2012-03-08  Werner Lemberg  
2901
 
2902
	[bdf] Add missing overflow check.
2903
 
2904
	* src/bdf/bdflib.c (_bdf_parse_glyphs) : Add threshold for
2905
	`glyph->bpr'.
2906
 
2907
2012-03-07  Vinnie Falco  
2908
 
2909
	Prepare source code for amalgamation.
2910
 
2911
	* src/autofit/aferrors.h, src/bdf/bdferror.h, src/bzip2/ftbzip2.c,
2912
	src/cache/ftcerror.h, src/cff/cfferrs.h, src/cid/ciderrs.h,
2913
	src/gxvalid/gxverror.h, src/gzip/ftgzip.c, src/lzw/ftlzw.c,
2914
	src/otvalid/otverror.h, src/pcf/pcferror.h, src/pfr/pfrerror.h,
2915
	src/psaux/psauxerr.h, src/pshinter/pshnterr.h,
2916
	src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h,
2917
	src/smooth/ftsmerrs.h, src/truetype/tterrors.h,
2918
	src/type1/t1errors.h, src/type42/t42error.h, src/winfonts/fnterrs.h:
2919
	Add #undef FT_ERR_PREFIX before #define FT_ERR_PREFIX.
2920
 
2921
2012-03-03  Werner Lemberg  
2922
 
2923
	Fix Savannah bug #35660.
2924
 
2925
	For some divisions, we use casts to 32bit entities.  Always guard
2926
	against division by zero with these casts also.
2927
 
2928
	* src/base/ftcalc.c (ft_div64by32): Remove redundant cast.
2929
	(FT_MulDiv, FT_MulDiv_No_Round): Add 32bit cast.
2930
	(FT_DivFix): Add 32bit cast (this omission triggered the bug).
2931
 
2932
2012-03-03  Werner Lemberg  
2933
 
2934
	[psaux] Fix handling of track kerning.
2935
 
2936
	* src/psaux/afmparse.c (afm_parse_track_kern): Don't inverse sign
2937
	for `min_kern'.  It is indeed quite common that track kerning
2938
	*increases* spacing for very small sizes.
2939
 
2940
2012-03-02  Werner Lemberg  
2941
 
2942
	[truetype] Fix Savannah bug #35689.
2943
 
2944
	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check first outline
2945
	point.
2946
 
2947
2012-03-01  Werner Lemberg  
2948
 
2949
	[bdf] Fix Savannah bug #35656.
2950
 
2951
	* src/bdf/bdflib.c (_bdf_parse_glyphs) <_BDF_BITMAP>: Check validity
2952
	of nibble characters instead of accessing `a2i' array.
2953
 
2954
2012-03-01  Werner Lemberg  
2955
 
2956
	[winfonts] Fix Savannah bug #35659.
2957
 
2958
	* src/winfonts/winfnt.c (FNT_Face_Init): Check number of glyphs.
2959
 
2960
2012-03-01  Werner Lemberg  
2961
 
2962
	[bdf] Fix Savannah bug #35658.
2963
 
2964
	* src/bdf/bdflib.c (_bdf_list_split): Initialize `field' elements
2965
	properly.
2966
 
2967
2012-03-01  Werner Lemberg  
2968
 
2969
	[psaux] Fix Savannah bug #35657.
2970
 
2971
	If in function `skip_spaces' the routine `skip_comment' comes to the
2972
	end of buffer, `cur' is still increased by one, so we need to check
2973
	for `p >= limit' and not `p == limit'.
2974
 
2975
	* src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed,
2976
	PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Fix boundary checking.
2977
 
2978
2012-03-01  Werner Lemberg  
2979
 
2980
	[truetype] Fix Savannah bug #35646.
2981
 
2982
	* src/truetype/ttinterp.c (Ins_MIRP): Typo, present since ages.  The
2983
	code is now in sync with the other operators (e.g. MSIRP) which
2984
	modify twilight points.
2985
 
2986
2012-03-01  Werner Lemberg  
2987
 
2988
	[bdf] Fix Savannah bug #35643.
2989
 
2990
	* src/bdf/bdflib.c (_bdf_list_ensure): Bring code in sync with
2991
	comment before `_bdf_list_split', this is, really allocate at least
2992
	five `field' elements.
2993
 
2994
2012-03-01  Werner Lemberg  
2995
 
2996
	[bdf] Fix Savannah bug #35641.
2997
 
2998
	* src/bdf/bdflib.c (_bdf_parse_glyphs) : Abort if
2999
	_BDF_ENCODING isn't set.  We need this because access to the `glyph'
3000
	variable might be undefined otherwise.
3001
 
3002
2012-03-01  Werner Lemberg  
3003
 
3004
	[truetype] Fix Savannah bug #35640.
3005
 
3006
	* src/truetype/ttinterp.c (SkipCode, TT_RunIns): Fix boundary check
3007
	for NPUSHB and NPUSHW instructions.
3008
 
3009
2012-02-29  Werner Lemberg  
3010
 
3011
	[truetype] Fix Savannah bug #35601.
3012
 
3013
	* src/truetype/ttinterp.c (Ins_SHZ): Use number of points instead of
3014
	last point for loop.
3015
	Also remove redundant boundary check.
3016
 
3017
2012-02-29  Werner Lemberg  
3018
 
3019
	[truetype] Remove redundant check.
3020
 
3021
	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
3022
	second check for ordered contour start points.
3023
 
3024
2012-02-29  Werner Lemberg  
3025
 
3026
	[truetype] Make SHC instruction behave similar to MS rasterizer.
3027
 
3028
	* src/truetype/ttinterp.c (Ins_SHC): Handle virtual contour in
3029
	twilight zone.
3030
 
3031
2012-02-29  Alexei Podtelezhnikov  
3032
 
3033
	Avoid modulo operators against a power-of-two denominator.
3034
 
3035
	* src/afcjk.c (af_hint_normal_stem), src/base/ftoutln.c
3036
	(ft_contour_has), src/cff/cffgload.c (cff_decoder_parse_charstrings)
3037
	,
3038
	src/gxvalid/gxvcommn.c (GXV_32BIT_ALIGNMENT_VALIDATE),
3039
	src/gxvalid/gxvfeat.c (gxv_feat_setting_validate): Replace `%' with
3040
	`&' operator.
3041
 
3042
2012-02-29  Werner Lemberg  
3043
 
3044
	[autofit] Don't synchronize digit widths for light rendering mode.
3045
 
3046
	We don't hint horizontally in this mode.
3047
 
3048
	* src/autofit/afloader.c (af_loader_load_g) :
3049
	Implement it.
3050
 
3051
2012-02-26  Alexei Podtelezhnikov  
3052
 
3053
	[type42] Minor code optimization (again).
3054
 
3055
	* src/type42/t42parse.c (t42_parse_sfnts): Simplify previous change.
3056
 
3057
2012-02-26  Mateusz Jurczyk  
3058
	    Werner Lemberg  
3059
 
3060
	[smooth] Fix Savannah bug #35604.
3061
 
3062
	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `FT_Pos'
3063
	instead of `FT_UInt' for some variables and update comparisons
3064
	accordingly.  A detailed analysis can be found in the bug report.
3065
 
3066
2012-02-26  Alexei Podtelezhnikov  
3067
 
3068
	[type42] Minor code optimization.
3069
 
3070
	* src/type42/t42parse.c (t42_parse_sfnts): Use bitmask instead of
3071
	modulo operator.
3072
 
3073
2012-02-26  Werner Lemberg  
3074
 
3075
	* docs/CHANGES: Updated.
3076
 
3077
2012-02-26  Werner Lemberg  
3078
 
3079
	[type1] Fix Savannah bug #35608.
3080
 
3081
	* src/type1/t1parse.c (T1_Get_Private_Dict): Reject too short
3082
	dictionaries.
3083
 
3084
2012-02-26  Werner Lemberg  
3085
 
3086
	[bdf] Support `ENCODING -1 ' format.
3087
 
3088
	* src/bdf/bdflib.c (_bdf_parse_glyphs) : Implement it.
3089
 
3090
2012-02-26  Werner Lemberg  
3091
 
3092
	[bdf] Fix Savannah bug #35607.
3093
 
3094
	* src/bdf/bdflib.c (_bdf_parse_glyphs) : Normalize
3095
	negative encoding values.
3096
 
3097
2012-02-26  Werner Lemberg  
3098
 
3099
	[type1] Fix Savannah bug #35606.
3100
 
3101
	* src/type1/t1load.c (parse_subrs): Add proper guards for `strncmp'.
3102
 
3103
	* src/psaux/psobjs.c (ps_parser_skip_PS_token): Emit error message
3104
	only if cur < limit.
3105
 
3106
2012-02-25  Werner Lemberg  
3107
 
3108
	[pcf] Fix Savannah bug #35603.
3109
 
3110
	* src/pcf/pcfread.c (pcf_get_properties): Assure final zero byte in
3111
	`strings' array.
3112
 
3113
2012-02-25  Werner Lemberg  
3114
 
3115
	[type42] Fix Savannah bug #35602.
3116
 
3117
	* src/type42/t42parse.c (t42_parse_sfnts): Check `string_size' more
3118
	thoroughly.
3119
 
3120
2012-02-25  Werner Lemberg  
3121
 
3122
	[bdf] Fix Savannah bugs #35599 and #35600.
3123
 
3124
	* src/bdf/bdflib.c (ACMSG16): New warning message.
3125
	(_bdf_parse_glyphs) <_BDF_BITMAP>: Check line length.
3126
 
3127
2012-02-24  Werner Lemberg  
3128
 
3129
	[bdf] Fix Savannah bugs #35597 and #35598.
3130
 
3131
	* src/bdf/bdflib.c (_bdf_is_atom): Fix handling of property value.
3132
 
3133
2012-02-24  Vinnie Falco  
3134
 
3135
	Prepare source code for amalgamation (6/6).
3136
 
3137
	* src/cff/cffdrivr.c: s/Load_Glyph/cff_glyph_load/.
3138
 
3139
	* src/cid/cidload.c: s/parse_font_matrix/cid_parse_font_matrix/.
3140
	s/t1_init_loader/cid_init_loader/.
3141
	s/t1_done_loader/cid_done_loader/.
3142
 
3143
	* src/pxaux/t1cmap.c: s/t1_get_glyph_name/psaux_get_glyph_name/.
3144
 
3145
	* src/truetype/ttdriver.c: s/Load_Glyph/tt_glyph_load/.
3146
 
3147
	* src/type1/t1load.c: s/parse_font_matrix/t1_parse_font_matrix/.
3148
 
3149
2012-02-24  Vinnie Falco  
3150
 
3151
	Prepare source code for amalgamation (5/6).
3152
 
3153
	* include/freetype/fterrors.h: Undefine FT_KEEP_ERR_PREFIX after
3154
	using it.
3155
 
3156
2012-02-22  Vinnie Falco  
3157
 
3158
	Prepare source code for amalgamation (4/6).
3159
 
3160
	* src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine RAS_ARG,
3161
	RAS_ARGS, RAS_VAR, and RAS_VARS before defining it.
3162
 
3163
	* src/smooth/ftgrays.c: s/TRaster/black_TRaster/,
3164
	s/PRaster/black_PRaster/.
3165
	* src/raster/ftraster.c: s/TRaster/gray_TRaster/,
3166
	s/PRaster/gray_PRaster/.
3167
 
3168
2012-02-20  Vinnie Falco  
3169
 
3170
	Prepare source code for amalgamation (3/6).
3171
 
3172
	* src/smooth/ftgrays.c: s/TWorker/black_TWorker/,
3173
	s/PWorker/black_PWorker/.
3174
	* src/raster/ftraster.c: s/TWorker/gray_TWorker/,
3175
	s/PWorker/gray_PWorker/.
3176
 
3177
2012-02-20  Vinnie Falco  
3178
 
3179
	Prepare source code for amalgamation (2/6).
3180
 
3181
	* src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine FLOOR,
3182
	CEILING, TRUNC, and SCALED before defining it.
3183
 
3184
2012-02-20  Vinnie Falco  
3185
 
3186
	Prepare source code for amalgamation (1/6).
3187
 
3188
	See discussion starting at
3189
 
3190
	  http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00037.html
3191
 
3192
	* src/smooth/ftgrays.c: s/TBand/gray_TBand/.
3193
	* src/raster/ftraster.c: s/TBand/black_TBand/.
3194
 
3195
2012-02-17  Alexei Podtelezhnikov  
3196
 
3197
	[autofit] Fix outline flags.
3198
 
3199
	* src/autofit/afloader.c (af_loader_load_g): Don't reassign
3200
	`outline.flags' so that this information is preserved.  See
3201
	discussion starting at
3202
 
3203
	  http://lists.gnu.org/archive/html/freetype-devel/2012-02/msg00046.html
3204
 
3205
2012-02-11  Werner Lemberg  
3206
 
3207
	[truetype] Fix Savannah bug #35466.
3208
 
3209
	Jump instructions are now bound to the current function.  The MS
3210
	Windows rasterizer behaves the same, as confirmed by Greg Hitchcock.
3211
 
3212
	* src/truetype/ttinterp.h (TT_CallRec): Add `Cur_End' element.
3213
	* src/truetype/ttobjs.h (TT_DefRecord): Add `end' element.
3214
 
3215
	* src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Check upper
3216
	bound of jump address.
3217
	(Ins_FDEF, Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns): Updated.
3218
 
3219
2012-02-11  Werner Lemberg  
3220
 
3221
	We don't use `extensions'.
3222
 
3223
	* include/freetype/internal/ftobjs.h (FT_DriverRec): Remove
3224
	`extensions' field.
3225
 
3226
2012-02-11  Werner Lemberg  
3227
 
3228
	Clean up `generic' fields.
3229
 
3230
	* include/freetype/internal/ftobjs.h (FT_ModuleRec, FT_LibraryRec):
3231
	Remove `generic' field since users can't access it.
3232
 
3233
	* src/base/ftobjs.c (FT_Done_GlyphSlot): Call `generic.finalizer' as
3234
	advertised in the documentation of FT_Generic.
3235
	(Destroy_Module, FT_Done_Library): Updated to changes in `ftobjs.h'.
3236
 
3237
2012-02-07  Werner Lemberg  
3238
 
3239
	[autofit] Harmonize function arguments.
3240
 
3241
	* src/autofit/afloader.c, src/autofit/afloader.h: Use `FT_Int32' for
3242
	`load_flags'.
3243
 
3244
2012-02-07  Werner Lemberg  
3245
 
3246
	* src/cff/cffobjs.c (cff_face_init): Remove unnecessary casts.
3247
 
3248
2012-01-17  suzuki toshiya  
3249
 
3250
	[gxvalid] Fix Savannah bug #35286.
3251
 
3252
	Patch submitted by anonymous reporter.
3253
 
3254
	* src/gxvalid/gxvcommn.c (gxv_XStateTable_subtable_setup):
3255
	gxv_set_length_by_ulong_offset() must be called with 3, not 4,
3256
	the number of the subtables in the state tables; classTable,
3257
	stateArray, entryTable.
3258
 
3259
2012-01-17  suzuki toshiya  
3260
 
3261
	[raccess] Modify for PIC build.
3262
 
3263
	Based on the patch provided by Erik Dahlstrom ,
3264
	http://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00010.html
3265
 
3266
	Also `raccess_guess_table[]' and `raccess_rule_by_darwin_vfs()'
3267
	are renamed with `ft_' suffixes.
3268
 
3269
	* src/base/ftbase.h: `raccess_rule_by_darwin_vfs()' is renamed
3270
	to `ft_raccess_rule_by_darwin_vfs()'.
3271
	* src/base/ftobjs.c: Ditto.
3272
 
3273
	* src/base/ftrfork.c: Declarations of FT_RFork_Rule,
3274
	raccess_guess_rec, are moved to...
3275
	* include/freetype/internal/ftrfork.h: Here.
3276
 
3277
	* include/freetype/internal/ftrfork.h:
3278
	FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END} macros are defined
3279
	to replace raccess_guess_table[] in both of PIC and non-PIC
3280
	modes.
3281
	* src/base/ftrfork.c: raccess_guess_table[] array is rewritten
3282
	by FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END}.
3283
 
3284
	* src/base/basepic.h (BasePIC): Add `ft_raccess_guess_table'
3285
	storage.  (FT_RACCESS_GUESS_TABLE_GET): New macro to retrieve
3286
	the function pointer from `ft_raccess_guess_table' storage in
3287
	`BasePIC' structure.
3288
	* src/base/ftrfork.c (FT_Raccess_Guess): Rewritten with
3289
	FT_RACCESS_GUESS_TABLE_GET.
3290
	(raccess_get_rule_type_from_rule_index): Add `library' as the
3291
	first argument to the function, to retrieve the storage of
3292
	`ft_raccess_guess_table' from it.  Also `raccess_guess_table'
3293
	is replaced by FT_RACCESS_GUESS_TABLE_GET.
3294
	(ft_raccess_rule_by_darwin_vfs): Ditto.
3295
 
3296
2012-01-16  suzuki toshiya  
3297
 
3298
	Remove trailing spaces.
3299
 
3300
2012-01-16  suzuki toshiya  
3301
 
3302
	Formatting PIC related sources.
3303
 
3304
	* src/autofit/afpic.c: Harmonize to FT2 coding conventions.
3305
	* src/base/basepic.c: Ditto.
3306
	* src/base/ftpic.c: Ditto.
3307
	* src/cff/cffpic.c: Ditto.
3308
	* src/pshinter/pshpic.c: Ditto.
3309
	* src/psnames/pspic.c: Ditto.
3310
	* src/raster/rastpic.c: Ditto.
3311
	* src/sfnt/sfntpic.c: Ditto.
3312
	* src/smooth/ftspic.c: Ditto.
3313
	* src/truetype/ttpic.c: Ditto.
3314
 
3315
2012-01-16  suzuki toshiya  
3316
 
3317
	[autofit] Fix the inclusion of `aflatin2.h' in PIC file.
3318
 
3319
	* src/autofit/afpic.c: Include `aflatin2.h' when
3320
	FT_OPTION_AUTOFIT2 is defined, as afglobal.c does so.
3321
	Unconditionally inclusion causes declared but unimplemented
3322
	warning by GCC 4.6.
3323
 
3324
2012-01-16  suzuki toshiya  
3325
 
3326
	[cff] Remove redundant declarations of cff_cmap_XXX_class_rec.
3327
 
3328
	* src/cff/cffpic.c: The declarations of
3329
	FT_Init_Class_cff_cmap_encoding_class_rec() and
3330
	FT_Init_Class_cff_cmap_unicode_class_rec() are removed.
3331
	They can be obtained by the inclusion of cffcmap.h.
3332
	cffcmap.h invokes FT_DECLARE_CMAP_CLASS() and it declares
3333
	FT_Init_Class_cff_cmap_encoding_class_rec() etc in PIC mode.
3334
 
3335
2012-01-15  suzuki toshiya  
3336
 
3337
	Fix redundant declaration warning in PIC mode.
3338
 
3339
	Originally FT_DEFINE_{DRIVER,MODULE,RENDERER}() macros were
3340
	designed to declare xxx_pic_{free,init} by themselves.
3341
	Because these macros are used at the end of the module
3342
	interface (e.g. ttdriver.c) and the wrapper source to build
3343
	a module as a single object (e.g. truetype.c) includes
3344
	the PIC file (e.g. ttpic.c) before the module interface,
3345
	these macros are expanded AFTER xxx_pic_{free,init} body
3346
	when the modules are built as single object.
3347
	The declaration after the implementation causes the redundant
3348
	declaration warnings, so the declarations are moved to module
3349
	PIC headers (e.g. ttpic.h).  Separating to other header files
3350
	are needed for multi build.
3351
 
3352
	* include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER):
3353
	Remove class_##_pic_free and class_##_pic_init declarations.
3354
	* include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER,
3355
	FT_DEFINE_MODULE): Ditto.
3356
 
3357
	* src/base/basepic.h: Insert a comment and fix coding style.
3358
	* src/autofit/afpic.h: Declare autofit_module_class_pic_{free,
3359
	init}.
3360
	* src/cff/cffpic.h: Declare cff_driver_class_pic_{free,init}.
3361
	* src/pshinter/pshpic.h: Declare pshinter_module_class_pic_{free,
3362
	init}.
3363
	* src/psnames/pspic.h: Declare psnames_module_class_pic_{free,
3364
	init}.
3365
	* src/raster/rastpic.h: Declare
3366
	ft_raster{1,5}_renderer_class_pic_{free,init}
3367
	* src/sfnt/sfntpic.h: Declare sfnt_module_class_pic_{free,init}.
3368
	* src/smooth/ftspic.h: Declare
3369
	ft_smooth_{,lcd_,lcdv_}renderer_class_pic_{free,init}.
3370
	* src/truetype/ttpic.h: Declare tt_driver_class_pic_{free,init}.
3371
 
3372
2012-01-15  suzuki toshiya  
3373
 
3374
	Make pspic.c to include module error header to fix multi build.
3375
 
3376
	* src/psnames/pspic.c: Include `psnamerr.h'.
3377
 
3378
2012-01-14  suzuki toshiya  
3379
 
3380
	[base] Fix a dereference of uninitialized variable in PIC mode.
3381
 
3382
	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): `glyph' must be
3383
	set before derefering to obtain `library'.  The initialization
3384
	of `clazz', `glyph', `library' and NULL pointer check are
3385
	reordered to minimize PIC conditonals.
3386
 
3387
2012-01-14  suzuki toshiya  
3388
 
3389
	[base] Insert explicit cast for GCC 4.6 in PIC mode.
3390
 
3391
	* src/base/ftinit.c (FT_Add_Default_Modules): Under PIC
3392
	configuration, FT_DEFAULT_MODULES_GET returns
3393
	FT_Module_Class** pointer, GCC 4.6 warns that
3394
	const FT_Module_Class* const* variable is warned as
3395
	inappropriate to store it.  To calm it, explicit cast is
3396
	inserted.  Also `library' is checked to prevent the NULL
3397
	pointer dereference in FT_DEFAULT_MODULES_GET.
3398
 
3399
2012-01-13  suzuki toshiya  
3400
 
3401
	Fix PIC build broken by d9145241fe378104ba4c12a42534549faacc92e6.
3402
 
3403
	Under PIC configuration, FT_{CFF,PSCMAPS,SFNT,TT}_SERVICES_GET
3404
	take no arguments but derefer the variable named `library'
3405
	internally.
3406
 
3407
	* src/cff/cffdrivr.c (cff_get_interface): Declare `library' and
3408
	set it if non-NULL driver is passed.
3409
	* src/truetype/ttdriver.c (tt_get_interface): Ditto.
3410
 
3411
	* src/sfnt/sfdriver.c (sfnt_get_interface): Declare `library'
3412
	under PIC configuration, and set it if non-NULL module is given.
3413
	* src/psnames/psmodule.c (psnames_get_interface): Ditto.
3414
 
3415
2012-01-13  suzuki toshiya  
3416
 
3417
	Make PIC files include module error headers, to use the error codes
3418
	with per-module prefix.
3419
 
3420
	* src/autofit/afpic.c: Include `aferrors.h'.
3421
	* src/cff/cffpic.c: Include `cfferrs.h'.
3422
	* src/pshinter/pshpic.c: Include `pshnterr.h'.
3423
	* src/raster/rastpic.c: Include `rasterrs.h'.
3424
	* src/sfnt/sfntpic.c: Include `sferrors.h'.
3425
	* src/smooth/ftspic.c: Include `ftsmerrs.h'.
3426
	* src/truetype/ttpic.c: Include `tterrors.h'.
3427
 
3428
2012-01-04  Tobias Ringström  
3429
 
3430
	[truetype] Fix IP instruction if x_ppem != y_ppem.
3431
 
3432
	* src/truetype/ttinterp.c (Ins_IP): Scale `orus' coordinates
3433
	properly.
3434
 
3435
2012-01-02  Werner Lemberg  
3436
 
3437
	Fix tracing message for `loca' table.
3438
 
3439
	* src/truetype/ttpload.c (tt_face_get_location): Don't emit a
3440
	warning message if the last `loca' entry references an empty glyph.
3441
 
3442
2011-12-10  Werner Lemberg  
3443
 
3444
	Add some variable initializations.
3445
	Reported by Richard COOK .
3446
 
3447
	* src/type1/t1driver.c (t1_ps_get_font_value): Initialize `val'.
3448
	* src/smooth/ftgrays.c (gray_render_conic): Initialize `levels'
3449
	earlier.
3450
 
3451
2011-12-08  Werner Lemberg  
3452
 
3453
	Fix serious scaling bug in `FT_Get_Advances'.
3454
 
3455
	* src/base/ftadvanc.c (FT_Get_Advances): Advance values returned by
3456
	`FT_Load_Glyph' must be simply multiplied by 1024.
3457
 
3458
2011-12-08  Werner Lemberg  
3459
 
3460
	* src/bdf/bdflib.c (_bdf_parse_start): Drop redundant error tracing.
3461
 
3462
2011-12-02  suzuki toshiya  
3463
 
3464
	[mac] Unify DARWIN_NO_CARBON with FT_MACINTOSH.
3465
 
3466
	Originally FT_MACINTOSH was a pure auto macro and DARWIN_NO_CARBON
3467
	was a configurable macro to disable Carbon-dependent code.  Because
3468
	now configure script sets DARWIN_NO_CARBON by default and disables
3469
	Darwin & Carbon-dependent codes, these macros can be unified.
3470
	FT_MACINTOSH (undefined by default) is kept and DARWIN_NO_CARBON
3471
	(defined by default) is removed, because DARWIN_NO_CARBON violates
3472
	FT_XXX naming convention of public macros, and a macro configured by
3473
	default is not portable for the building without configure (e.g.
3474
	make devel).
3475
 
3476
	* builds/unix/configure.raw: Define FT_MACINTOSH if Carbon-based
3477
	old Mac font support is requested and Carbon is available.
3478
	* builds/unix/ftconfig.in: Undefine FT_MACINTOSH when the support
3479
	for Mac OS X without Carbon (e.g.  Mac OS X 10.4 for ppc64) is
3480
	requested.
3481
	* include/freetype/config/ftconfig.in: Ditto.
3482
	* builds/vms/ftconfig.h: Ditto.
3483
 
3484
	* src/base/ftbase.h: Remove DARWIN_NO_CARBON.
3485
	* src/base/ftbase.c: Ditto.
3486
	* src/base/ftobjs.c: Ditto.
3487
	* src/base/ftrfork.c: Ditto.
3488
 
3489
	* src/base/ftmac.c: Compile the body if FT_MACINTOSH is defined
3490
	(same with TT_USE_BYTECODE_INTERPRETER in ttinterp.c).
3491
	* builds/mac/ftmac.c: Ditto.
3492
 
3493
	* builds/mac/FreeType.m68k_cfm.make.txt: Define FT_MACINTOSH.
3494
	* builds/mac/FreeType.m68k_far.make.txt: Ditto.
3495
	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
3496
	* builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
3497
 
3498
2011-11-30  suzuki toshiya  
3499
 
3500
	Fix Savannah bug #34728 (`make devel' on Mac OS X).
3501
 
3502
	* builds/toplevel.mk: Check `/dev/null' to identify the Unix-
3503
	like systems without `init' nor `hurd' (e.g. Mac OS X >= 10.4).
3504
	* builds/unix/detect.mk: Ditto.
3505
 
3506
2011-11-30  suzuki toshiya  
3507
 
3508
	[apinames] Fix the overflow of signed integer hash.
3509
 
3510
	* src/tools/apinames.c (names_add): Change the type of `h' from
3511
	int to unsigned int, to prevent undefined behaviour in the
3512
	overflow of signed integers (overflow of unsigned int is defined
3513
	to be wrap around).  Found by clang test suggested by Sean
3514
	McBride.
3515
 
3516
2011-11-30  Werner Lemberg  
3517
 
3518
	[winfonts] Remove casts.
3519
 
3520
	* src/winfonts/winfnt.c (winfnt_driver_class): Remove all casts and
3521
	update affected functions.
3522
	(FNT_Size_Select): Fix number of arguments.
3523
 
3524
2011-11-30  Werner Lemberg  
3525
 
3526
	[type42] Remove casts.
3527
 
3528
	* src/type42/t42driver.c (t42_driver_class): Remove all casts and
3529
	update affected functions.
3530
 
3531
	* src/type42/t42objs.c, src/type42/t42objs.h: Updated for t42driver
3532
	changes.
3533
 
3534
2011-11-30  Werner Lemberg  
3535
 
3536
	[type1] Remove casts.
3537
 
3538
	* src/type1/t1driver.c (t1_driver_class): Remove all casts and
3539
	update affected functions.
3540
 
3541
	* src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1objs.c:
3542
	Updated for t1driver changes.
3543
	src/type1/t1objs.h (T1_Driver): Remove unused typedef.
3544
	Updated for t1driver changes.
3545
 
3546
2011-11-27  Werner Lemberg  
3547
 
3548
	[bdf] Fix Savannah bug #34896.
3549
 
3550
	ENCODING now covers the whole Unicode range.
3551
 
3552
	Note, however, that this change is quite expensive since it
3553
	increases the size of three arrays by almost 400kByte in total.  The
3554
	right fix is to replace the logic with something smarter.
3555
	Additionally, there exist very old BDFs for three-byte CCCII
3556
	encoding which exceeds the range of Unicode (another reason to have
3557
	a smarter logic).
3558
 
3559
	* src/bdf/bdf.h (bdf_font_t): Increase size of `nmod' and `umod'
3560
	arrays.
3561
	* src/bdf/bdflib.c (bdf_parse_t): Increase size of `have' array.
3562
 
3563
2011-11-27  Werner Lemberg  
3564
 
3565
	[bdf] Improve tracing.
3566
 
3567
	* src/bdf/bdflib.c (DBGMSG1, DBGMSG2): New macros.
3568
	(_bdf_parse_glyphs): Use them.
3569
 
3570
2011-11-26  Werner Lemberg  
3571
 
3572
	Improve tracing.
3573
 
3574
	* src/bdf/bdfdrivr.c (BDF_Face_Done), src/pcf/pcfdrivr.c
3575
	(PCF_Face_Done): Remove tracing message.
3576
 
3577
	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/cff/cffobjs.c
3578
	(cff_face_init), src/cid/cidobjs.c (cid_face_init),
3579
	src/pfr/pfrobjs.c (pfr_face_init), src/sfnt/sfobjs.c
3580
	(sfnt_init_face), src/truetype/ttobjs.c (tt_face_init),
3581
	src/type1/t1objs.c (T1_Face_Init), src/type42/t42objs.c
3582
	(T42_Face_Init), src/winfonts/winfnt.c (FNT_Face_Init): Add
3583
	`greeting' message.
3584
 
3585
	* src/sfnt/sfobjs.c (sfnt_open_font), src/type42/t42objs.c
3586
	(T42_Open_Face): Improve tracing.
3587
 
3588
2011-11-26  Werner Lemberg  
3589
 
3590
	[cid] Fix error code.
3591
 
3592
	* src/cid/cidparse.c (cid_parser_new): Do it.
3593
 
3594
2011-11-26  Werner Lemberg  
3595
 
3596
	[cff] Fix error code.
3597
 
3598
	* src/cff/cffload.c (cff_font_load): Do it.
3599
 
3600
2011-11-26  Werner Lemberg  
3601
 
3602
	Add new error code FT_Err_Missing_Module.
3603
 
3604
	Previously, FreeType misleadingly returned
3605
	FT_Err_Unknown_File_Format if a module was missing (or a test was
3606
	missing completely).
3607
 
3608
	* include/freetype/fterrdef.h (FT_Err_Missing_Module): Define.
3609
 
3610
	* src/cff/cffobjs.c (cff_face_init), src/cff/cffdrivr.c
3611
	(cff_get_glyph_name), src/cid/cidobjs.c (cid_face_init),
3612
	src/sfnt/sfobjs.c (sfnt_init_face), src/truetype/ttobjs.c
3613
	(tt_face_init), src/type1/t1objs.c (T1_Face_Init),
3614
	src/type42/t42objs.c (T42_Face_Init, T42_Driver_Init): Updated.
3615
 
3616
	* src/type1/t1afm.c (T1_Read_Metrics), src/type/t1objs.c
3617
	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Remove now
3618
	redundant test for `psaux'.
3619
 
3620
2011-11-25  Werner Lemberg  
3621
 
3622
	[bdf] Add more error messages.
3623
 
3624
	* src/bdf/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
3625
	Add line number argument.
3626
	Update all callers.
3627
	(ERRMSG5, ERRMSG6, ERRMSG7, ERRMSG8, ERRMSG9): New macros.
3628
	(_bdf_readstream, _bdf_set_default_spacing, _bdf_add_property,
3629
	_bdf_parse_glyphs, _bdf_parse_start): Add error messages.
3630
 
3631
2011-11-24  Werner Lemberg  
3632
 
3633
	* include/freetype/fterrors.h: Remove dead code.
3634
 
3635
2011-11-15  Werner Lemberg  
3636
 
3637
	* docs/releases: Updated.
3638
 
3639
2011-11-15  Werner Lemberg  
3640
 
3641
	* Version 2.4.8 released.
3642
	=========================
3643
 
3644
 
3645
	Tag sources with `VER-2-4-8'.
3646
 
3647
	* docs/CHANGES: Updated.
3648
 
3649
	* docs/VERSION.DLL: Update documentation and bump version number to
3650
	2.4.8.
3651
 
3652
	* README, Jamfile (RefDoc),
3653
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
3654
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
3655
	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
3656
	builds/win32/visualc/freetype.dsp,
3657
	builds/win32/visualc/freetype.vcproj,
3658
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
3659
	builds/win32/visualce/freetype.vcproj,
3660
	builds/win32/visualce/index.html,
3661
	builds/wince/vc2005-ce/freetype.vcproj,
3662
	builds/wince/vc2005-ce/index.html,
3663
	builds/wince/vc2008-ce/freetype.vcproj,
3664
	builds/wince/vc2008-ce/index.html: s/2.4.7/2.4.8/, s/247/248/.
3665
 
3666
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
3667
 
3668
	* builds/unix/configure.raw (version_info): Set to 14:0:8.
3669
 
3670
2011-11-13  Chris Liddell  
3671
 
3672
	Add FT_Get_PS_Font_Value() API.
3673
 
3674
	This allows a Type 1 font face to be interrogated to retrieve most
3675
	of the dictionary keys (keys not relevant to FreeType's Type 1
3676
	interpreter are not available).
3677
 
3678
	* include/freetype/internal/services/svpsinfo.h
3679
	(PS_GetFontValueFunc): New typedef.
3680
	(PSInfo): Add `ps_get_font_value'.
3681
	(FT_DEFINE_SERVICE_PSINFOREC): Updated.
3682
 
3683
	* include/freetype/internal/t1types.h (T1_EncodingType): Moved to...
3684
	* include/freetype/t1tables.h: Here.
3685
	(PS_Dict_Keys): New enumeration.
3686
	(FT_Get_PS_Font_Value): New declaration.
3687
 
3688
	* src/base/fttype1.c (FT_Get_PS_Font_Value): New function.
3689
 
3690
	* src/type1/t1driver.c (t1_ps_get_font_value): This new function
3691
	does the real job.
3692
	(t1_service_ps_info): Add it.
3693
 
3694
	* src/cff/cffdrivr.c (cff_service_ps_info), src/cid/cidriver.c
3695
	(cid_service_ps_info), src/type42/t42drivr.c (t42_service_ps_info):
3696
	Updated.
3697
 
3698
2011-11-08  Braden Thomas  
3699
 
3700
	[cid] Various loading fixes.
3701
 
3702
	* src/cid/cidload.c (cid_load_keyword) ,
3703
	(parse_font_matrix, parse_expansion_factor): Correctly check number
3704
	of dictionaries.
3705
	(cid_read_subrs): Protect against invalid values of `num_subrs'.
3706
	Assure that the elements of the `offsets' array are ascending.
3707
 
3708
2011-11-05  Werner Lemberg  
3709
 
3710
	* README: We use copyright ranges also.
3711
 
3712
	According to
3713
 
3714
	  http://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html
3715
 
3716
	this should be mentioned explicitly.
3717
 
3718
2011-10-30  suzuki toshiya  
3719
 
3720
	[raccess] Supplement for previous fix.
3721
 
3722
	* src/base/ftbase.h (raccess_rule_by_darwin_vfs): Do not declare
3723
	it on native Mac OS X.
3724
	* src/base/ftrfork.c (raccess_get_rule_type_from_rule_index):
3725
	Hide raccess_get_rule_type_from_rule_index() on native Mac OS X
3726
	too.
3727
 
3728
2011-10-30  suzuki toshiya  
3729
 
3730
	[raccess] Hide raccess_rule_by_darwin_vfs() on native Mac OS X.
3731
 
3732
	* src/base/ftrfork.c (raccess_rule_by_darwin_vfs): Do not
3733
	compile on native Mac OS X because it is not used.
3734
 
3735
2011-10-25  Werner Lemberg  
3736
 
3737
	[truetype] Fix MD instruction for twilight zone.
3738
 
3739
	* src/truetype/ttinterp.c (Ins_MD): Without this fix, the MD
3740
	instruction applied to original coordinates of twilight points
3741
	always returns zero.
3742
 
3743
2011-10-18  Werner Lemberg  
3744
 
3745
	* Version 2.4.7 released.
3746
	=========================
3747
 
3748
 
3749
	Tag sources with `VER-2-4-7'.
3750
 
3751
	* docs/CHANGES: Updated.
3752
 
3753
	* docs/VERSION.DLL: Update documentation and bump version number to
3754
	2.4.7.
3755
 
3756
	* README, Jamfile (RefDoc),
3757
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
3758
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
3759
	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
3760
	builds/win32/visualc/freetype.dsp,
3761
	builds/win32/visualc/freetype.vcproj,
3762
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
3763
	builds/win32/visualce/freetype.vcproj,
3764
	builds/win32/visualce/index.html,
3765
	builds/wince/vc2005-ce/freetype.vcproj,
3766
	builds/wince/vc2005-ce/index.html,
3767
	builds/wince/vc2008-ce/freetype.vcproj,
3768
	builds/wince/vc2008-ce/index.html: s/2.4.6/2.4.7/, s/246/247/.
3769
 
3770
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
3771
 
3772
	* builds/unix/configure.raw (version_info): Set to 13:2:7.
3773
 
3774
2011-10-15  Kal Conley  
3775
 
3776
	Fix handling of transformations if no renderer is present.
3777
 
3778
	* src/base/ftobjs.c (FT_Load_Glyph): Thinko.
3779
 
3780
2011-10-15  Kal Conley  
3781
 
3782
	Fix conditions for autohinting.
3783
 
3784
	* src/base/ftobjs.c (FT_Load_Glyph): Handle
3785
	FT_LOAD_IGNORE_TRANSFORM.
3786
 
3787
2011-10-07  suzuki toshiya  
3788
 
3789
	[gxvalid] Fix a bug to detect too large offset in morx table.
3790
 
3791
	* src/gxvalid/gxvmorx2.c
3792
	(gxv_morx_subtable_type2_ligActionIndex_validate): Fix a bug
3793
	that too large positive offset cannot be detected.
3794
 
3795
2011-10-01  Braden Thomas  
3796
 
3797
	Handle some border cases.
3798
 
3799
	* include/freetype/config/ftstdlib.h (FT_USHORT_MAX): New macro.
3800
 
3801
	* src/base/ftbitmap.c (FT_Bitmap_Convert): Protect against invalid
3802
	value of `target->rows'.
3803
 
3804
	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add check for
3805
	flex start.
3806
 
3807
	* src/raster/ftrend1.c (ft_raster1_render): Check `width' and
3808
	`height'.
3809
 
3810
	* src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Protect against
3811
	invalid values in `localpoints' array.
3812
 
3813
2011-10-01  Werner Lemberg  
3814
 
3815
	[psnames] Handle zapfdingbats.
3816
	Problem reported by Nicolas Rougier .
3817
 
3818
	* src/tools/glnames.py (adobe_glyph_list): Add data from AGL's
3819
	`zapfdingbats.txt' file.
3820
 
3821
	* src/psnames/pstables.h: Regenerated.
3822
 
3823
2011-09-27  Simon Bünzli  
3824
 
3825
	[type1] Fix Savannah bug #34189.
3826
 
3827
	* src/type1/t1load.c (T1_Open_Face): Initialize
3828
	`face->len_buildchar'.
3829
 
3830
2011-09-26  Werner Lemberg  
3831
 
3832
	[cff] Dump SIDs while tracing.
3833
 
3834
	* src/cff/cffobjs.c (cff_face_init): Do it.
3835
 
3836
	* src/cff/cffparse.c (cff_parser_run) [FT_DEBUG_LEVEL_TRACE]
3837
	: Identify as SID.
3838
 
3839
2011-09-17  Werner Lemberg  
3840
 
3841
	Remove unused FT_ALIGNMENT macro.
3842
 
3843
	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
3844
	include/freetype/config/ftconfig.h: Do it.
3845
 
3846
2011-09-17  Alexei Podtelezhnikov  
3847
 
3848
	[smooth] Slightly optimize conic and cubic flatterners.
3849
 
3850
	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
3851
	out some code from the main loop to speed it up.
3852
 
3853
2011-09-11  Tomas Hoger  
3854
 
3855
	Slightly improve LZW_CLEAR handling.
3856
 
3857
	* src/lzw/ftzopen.c (ft_lzwstate_io) :
3858
	Ensure that subsequent (modulo garbage byte(s)) LZW_CLEAR codes are
3859
	handled as clear codes.  This also re-sets old_code and old_char to
3860
	predictable values, which is a little better than using `random'
3861
	ones if the code following LZW_CLEAR is invalid.
3862
 
3863
2011-09-11  Tomas Hoger  
3864
 
3865
	Add explicit LZW decompression stack size limit.
3866
 
3867
	Stack larger than 1<
3868
	constructed correctly.  It's even less than that, see e.g.
3869
	libarchive code comment for a better size upper bound:
3870
 
3871
	  http://code.google.com/p/libarchive/source/browse/trunk/libarchive/archive_read_support_filter_compress.c?r=3635#121
3872
 
3873
	This patch adds explicit stack size limit, enforced when stack is
3874
	realloced.
3875
 
3876
	An alternative is to ensure that code < state->prefix[code - 256]
3877
	when traversing prefix table.  Such check is less efficient and
3878
	should not be required if prefix table is constructed correctly in
3879
	the first place.
3880
 
3881
	* src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Implement it.
3882
 
3883
2011-09-11  Tomas Hoger  
3884
 
3885
	Protect against loops in the prefix table.
3886
 
3887
	LZW decompressor did not sufficiently check codes read from the
3888
	input LZW stream.  A specially-crafted or corrupted input could
3889
	create a loop in the prefix table, which leads to memory usage
3890
	spikes, as there's no decompression stack size limit.
3891
 
3892
	* src/lzw/ftzopen.c (ft_lzwstate_io) : First
3893
	code in valid LZW stream must be 0..255.
3894
	: In the special KwKwK case, code == free_ent,
3895
	code > free_ent is invalid.
3896
 
3897
2011-09-09  Werner Lemberg  
3898
 
3899
	Better tracing of metrics.
3900
 
3901
	* src/base/ftobjs.c (FT_Request_Size, FT_Select_Size): Decorate with
3902
	FT_TRACE.
3903
 
3904
2011-09-07  Werner Lemberg  
3905
 
3906
	[cff] Fix Savannah bug #33816.
3907
 
3908
	* src/cff/cfftypes.h (CFF_FontRecDictRec): New member
3909
	`has_font_matrix'.
3910
	* src/cff/cffparse.c (cff_parse_font_matrix): Set it.
3911
	Update tracing output.
3912
	* src/cff/cffobjs.c (cff_face_init): Use it so that the heuristics
3913
	can be removed.
3914
 
3915
2011-08-30  Werner Lemberg  
3916
 
3917
	Better tracing of metrics.
3918
 
3919
	* src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics):
3920
	Decorate with FT_TRACE.
3921
 
3922
2011-08-25  Werner Lemberg  
3923
 
3924
	[cff] Better tracing of the parsing process.
3925
 
3926
	* src/cff/cffload.c (cff_subfont_load, cff_font_load): Decorate with
3927
	FT_TRACE.
3928
 
3929
	* src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox,
3930
	cff_parse_private_dict, cff_parse_cid_ros): Updated.
3931
	(CFF_FIELD_NUM, CFF_FIELD_FIXED, CFF_FIELD_FIXED_1000,
3932
	CFF_FIELD_STRING, CFF_FIELD_BOOL, CFF_FIELD_CALLBACK, CFF_FIELD,
3933
	CFF_FIELD_DELTA): Add argument for ID.
3934
	(cff_parser_run): Decorate with FT_TRACE.
3935
 
3936
	* src/cff/cffparse.h (CFF_Field_Handler) [FT_DEBUG_LEVEL_TRACE]: Add
3937
	`id' member.
3938
 
3939
	* src/cff/cfftoken.h: Add IDs to all fields.
3940
 
3941
2011-08-16  Werner Lemberg  
3942
 
3943
	Fix Savannah bug #34022.
3944
 
3945
	* README, docs/INSTALL: Remove references to UPGRADE.UNIX.
3946
 
3947
2011-08-15  Werner Lemberg  
3948
 
3949
	Fix Savannah bug #34018.
3950
 
3951
	* docs/UPGRADE.UNIX: Removed.  Obsolete.
3952
 
3953
2011-08-15  David Bevan  
3954
 
3955
	Fix Savannah bug #33992.
3956
 
3957
	* src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix border case.
3958
 
3959
2011-08-12  Werner Lemberg  
3960
 
3961
	[truetype] Fix degenerate case in S{P,F,DP}VTL opcodes.
3962
 
3963
	* src/truetype/ttinterp.c (Ins_SxVTL): Handle p1 == p2 specially.
3964
	(Ins_SDPVTL): Handle v1 == v2 specially.
3965
 
3966
2011-08-09  Werner Lemberg  
3967
 
3968
	[cff] Fix Savannah bug #33975.
3969
 
3970
	* src/cff/cffparse.c (cff_parse_font_matrix): Fix typo.
3971
 
3972
2011-07-29  Werner Lemberg  
3973
 
3974
	* Version 2.4.6 released.
3975
	=========================
3976
 
3977
 
3978
	Tag sources with `VER-2-4-6'.
3979
 
3980
	* docs/CHANGES: Updated.
3981
 
3982
	* docs/VERSION.DLL: Update documentation and bump version number to
3983
	2.4.6.
3984
 
3985
	* README, Jamfile (RefDoc),
3986
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
3987
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
3988
	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
3989
	builds/win32/visualc/freetype.dsp,
3990
	builds/win32/visualc/freetype.vcproj,
3991
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
3992
	builds/win32/visualce/freetype.vcproj,
3993
	builds/win32/visualce/index.html,
3994
	builds/wince/vc2005-ce/freetype.vcproj,
3995
	builds/wince/vc2005-ce/index.html,
3996
	builds/wince/vc2008-ce/freetype.vcproj,
3997
	builds/wince/vc2008-ce/index.html: s/2.4.5/2.4.6/, s/245/246/.
3998
 
3999
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
4000
 
4001
	* builds/unix/configure.raw (version_info): Set to 13:1:7.
4002
 
4003
2011-07-29  Werner Lemberg  
4004
 
4005
	[cff] Add some more tracing infos.
4006
 
4007
	* src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox,
4008
	cff_parse_cid_ros): Add tracing.
4009
 
4010
2011-07-22  Dirk Müller  
4011
 
4012
	[psaux, type1] Fix null pointer dereferences.
4013
 
4014
	Found with font fuzzying.
4015
 
4016
	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Check
4017
	`decoder->buildchar'.
4018
 
4019
	* src/type1/t1load.c (t1_load_keyword): Check `blend->num_designs'.
4020
 
4021
2011-07-20  Chris Morgan  
4022
 
4023
	Add FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT.
4024
 
4025
	Useful for embedded systems which don't need file stream support.
4026
 
4027
	* src/base/ftsystem.c, src/base/ftobjs.c (FT_Stream_New): Implement
4028
	it.
4029
 
4030
2011-07-20  Elton Chung  
4031
 
4032
	* src/base/ftpatent.c (FT_Face_SetUnpatentedHinting): Fix typo.
4033
 
4034
2011-07-16  Steven Chu  
4035
 
4036
	[truetype] Fix metrics on size request for scalable fonts.
4037
 
4038
	* src/truetype/ttdriver.c (tt_size_request): Fix copying metrics
4039
	from TT_Size to FT_Size if scalable font.
4040
 
4041
	See
4042
 
4043
	  http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00049.html
4044
 
4045
	for some comparison images.
4046
 
4047
2011-07-14  Matthias Drochner  .
4048
 
4049
	[psaux] Fix potential sign extension problems.
4050
 
4051
	When shifting right a signed value, it is not defined by the
4052
	C standard whether one gets a sign extension or not.  Use a macro to
4053
	do an explicit cast from a signed short (assuming that this is
4054
	16bit) to an int.
4055
 
4056
	* src/psaux/t1decode.c (Fix2Int): New macro.
4057
	Use it where appropriate.
4058
 
4059
2011-07-14  Werner Lemberg  
4060
 
4061
	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
4062
	: Better handling of subroutine index 0.
4063
	From Matthias Drochner .
4064
 
4065
2011-07-10  Алексей Подтележников  
4066
 
4067
	[psaux] Optimize previous commit.
4068
 
4069
	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
4070
	: Move error check down to avoid testing twice for
4071
	good cases.
4072
 
4073
2011-07-08  Werner Lemberg  
4074
 
4075
	[psaux] Add better argument check for `callothersubr'.
4076
 
4077
	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
4078
	: Reject negative arguments.
4079
 
4080
2011-07-07  Werner Lemberg  
4081
 
4082
	[sfnt] Try harder to find non-zero values for ascender and descender.
4083
 
4084
	* src/sfnt/sfobjs.c (sfnt_load_face): Consult `OS/2' table in case
4085
	the `hhea' table's values are zero.
4086
 
4087
2011-07-03  Werner Lemberg  
4088
 
4089
	Fix previous commit.
4090
 
4091
	We want to unset FT_FACE_FLAG_SCALABLE only if there are bitmap
4092
	strikes in the font.
4093
 
4094
	* src/truetype/ttobjs.c (tt_face_init): Implement it.
4095
 
4096
	* docs/CHANGES: Updated.
4097
 
4098
2011-07-02  Just Fill Bugs  
4099
 
4100
	[truetype] Fix Savannah bug #33246.
4101
 
4102
	* src/truetype/ttobjs.c (tt_check_single_notdef): New function.
4103
	(tt_face_init): Use it to test FT_FACE_FLAG_SCALABLE.
4104
 
4105
2011-07-02  Werner Lemberg  
4106
 
4107
	* docs/CHANGES: Updated.
4108
 
4109
2011-07-02  David Bevan  
4110
 
4111
	[ftstroke] Major revision.
4112
 
4113
	The main problems
4114
	-----------------
4115
 
4116
	  o If FT_STROKER_LINEJOIN_BEVEL was specified, unlimited miter
4117
	    joins (not bevel joins) were generated.  Indeed, the meanings of
4118
	    `miter' and `bevel' were incorrectly reversed (consistently) in
4119
	    both the code and comments.
4120
 
4121
	  o The way bevel joins were constructed (whether specified
4122
	    explicitly, or created as a result of exceeding the miter limit)
4123
	    did not match what is required for stroked text in PostScript or
4124
	    PDF.
4125
 
4126
	The main fixes
4127
	--------------
4128
 
4129
	  o The behaviour of FT_STROKER_LINEJOIN_BEVEL has been corrected.
4130
 
4131
	  o A new line join style, FT_STROKER_LINEJOIN_MITER_FIXED, has been
4132
	    introduced to support PostScript and PDF miter joins.
4133
 
4134
	  o FT_STROKER_LINEJOIN_MITER_VARIABLE has been introduced as an
4135
	    alias for FT_STROKER_LINEJOIN_MITER.
4136
 
4137
	Additionally, a variety of stroking errors have been fixed.  These
4138
	would cause various artifacts (including points `at infinity'),
4139
	especially when stroking poor quality fonts.
4140
 
4141
	See
4142
 
4143
	  http://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00001.html
4144
 
4145
	for example documents.  The FreeType stroker now produces results
4146
	very similar to that produced by GhostScript and Distiller for these
4147
	fonts.
4148
 
4149
	Other problems
4150
	--------------
4151
 
4152
	The following problems have been resolved:
4153
 
4154
	  o Inside corners could be generated incorrectly.  Intersecting the
4155
	    inside corner could cause a missing triangular area and other
4156
	    effects.
4157
 
4158
	    The intersection point can only be used if the join is between
4159
	    two lines and both lines are long enough.  The `optimization'
4160
	    condition in `ft_stroker_inside' has been corrected; this
4161
	    requires the line length to be passed into various functions and
4162
	    stored in `FT_StrokerRec'.
4163
 
4164
	  o Incorrect cubic curves could be generated.  The angle
4165
	    calculations in `FT_Stroker_CubicTo' have been corrected to
4166
	    handle the case of the curve crossing the +/-PI direction.
4167
 
4168
	  o If the border radius was greater than the radius of curvature of
4169
	    a curve, then the negative sector would end up outside (not
4170
	    inside) the border.  This situation is now recognized and the
4171
	    negative sector is circumnavigated in the opposite direction.
4172
	    (If round line joins are being used, this code is disabled
4173
	    because the line join will always cover the negative sector.)
4174
 
4175
	  o When a curve is split, the arcs may not join smoothly (especially
4176
	    if the curve turns sharply back on itself).  Changes in
4177
	    direction between adjacent arcs were not handled.  A round
4178
	    corner is now added if the deviation from one arc to the next is
4179
	    greater than a suitable threshold.
4180
 
4181
	  o The current direction wasn't retained if a the outline contained
4182
	    a zero length lineto or a curve that was determined to be
4183
	    `basically a point'.  This could cause a spurious join to be
4184
	    added.
4185
 
4186
	  o Cubics with close control points could be mishandled.  All eight
4187
	    cases are now distinguished correctly.
4188
 
4189
	Other improvements
4190
	------------------
4191
 
4192
	o Borders for cubic curves could be too `flat'.
4193
	  FT_SMALL_CUBIC_THRESHOLD has been reduced a little to prevent
4194
	  this.
4195
 
4196
	o The handling and use of movable points has been simplified a
4197
	  little.
4198
 
4199
	o Various values are now computed only if the results are actually
4200
	  needed.
4201
 
4202
	o The directions of the outer and inner borders have been swapped,
4203
	  as recommended by Graham Asher.
4204
 
4205
	* src/base/ftstroke.c: Revised.
4206
	* include/freetype/ftstroke.h: Updated.
4207
 
4208
2011-06-30  İsmail Dönmez 
4209
 
4210
	* builds/toplevel.mk: We use git, not CVS, thus skip `.gitignore'.
4211
 
4212
2011-06-29  Werner Lemberg  
4213
 
4214
	[bdf] Fix Savannah bug #33663.
4215
 
4216
	* src/bdf/bdflib.c (_bdf_parse_glyphs): Handle negative values for
4217
	ENCODING correctly.
4218
 
4219
	* docs/CHANGES: Document it.
4220
 
4221
2011-06-24  Werner Lemberg  
4222
 
4223
	* Version 2.4.5 released.
4224
	=========================
4225
 
4226
 
4227
	Tag sources with `VER-2-4-5'.
4228
 
4229
	* docs/CHANGES: Updated.
4230
 
4231
	* docs/VERSION.DLL: Update documentation and bump version number to
4232
	2.4.5
4233
 
4234
	* README, Jamfile (RefDoc),
4235
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
4236
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
4237
	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
4238
	builds/win32/visualc/freetype.dsp,
4239
	builds/win32/visualc/freetype.vcproj,
4240
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
4241
	builds/win32/visualce/freetype.vcproj,
4242
	builds/win32/visualce/index.html,
4243
	builds/wince/vc2005-ce/freetype.vcproj,
4244
	builds/wince/vc2005-ce/index.html,
4245
	builds/wince/vc2008-ce/freetype.vcproj,
4246
	builds/wince/vc2008-ce/index.html: s/2.4.4/2.4.5/, s/244/245/.
4247
 
4248
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
4249
 
4250
	* builds/unix/configure.raw (version_info): Set to 13:0:7.
4251
 
4252
2011-06-20  Werner Lemberg  
4253
 
4254
	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix change
4255
	from 2011-05-04.
4256
 
4257
2011-06-19  suzuki toshiya  
4258
 
4259
	[gxvalid] make the `prop' validation tracing verbose.
4260
 
4261
	* src/gxvalid/gxvprop.c: Add tracing messages for errors.
4262
 
4263
2011-06-19  suzuki toshiya  
4264
 
4265
	[autogen.sh] Reflect environment variable LIBTOOLIZE.
4266
 
4267
2011-06-18  Werner Lemberg 
4268
 
4269
	Update license documentation.
4270
 
4271
	* docs/GPL.TXT: Renamed to...
4272
	* docs/GPLv2.TXT: This.
4273
 
4274
	* docs/LICENSE.TXT: Updated.
4275
 
4276
2011-06-14  suzuki toshiya  
4277
 
4278
	Fix g++4.6 compiler warnings in module drivers.
4279
 
4280
	The background is same with previous commit.
4281
 
4282
	* src/truetype/ttgxvar.c (ft_var_readpackedpoints):
4283
	Init `points'.  (TT_Vary_Get_Glyph_Deltas): Init
4284
	`delta_xy'.  (TT_Get_MM_Var): Init `mmvar'.
4285
	* src/type1/t1load.c (T1_Get_MM_Var): Ditto.
4286
	* src/cff/cffdrivr.c (cff_ps_get_font_info): Init
4287
	`font_info'.
4288
	* src/cff/cffload.c (cff_index_get_pointers): Init `t'.
4289
	(cff_font_load): Init `sub'.
4290
	* src/cff/cffobjs.c (cff_size_init): Init `internal'.
4291
	(cff_face_init): Init `cff'.
4292
	* src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps):
4293
	Init `snaps'.
4294
	* src/pcf/pcfread.c (pcf_get_properties): Init `properties'.
4295
	(pcf_get_bitmaps): Init `offsets'.  (pcf_get_encodings):
4296
	Init `tmpEncoding'.
4297
	* src/sfnt/ttload.c (tt_face_load_gasp): Init `gaspranges'.
4298
	* src/sfnt/ttsbit.c (Load_SBit_Image): Init `components'.
4299
	* src/cache/ftcmru.c (FTC_MruList_New): Init `node'.
4300
	* src/gzip/ftgzip.c (FT_Stream_OpenGzip): Init `zip' and
4301
	`zip_buff'.
4302
	* src/lzw/ftlzw.c (FT_Stream_OpenLZW): Init `zip'.
4303
	* src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Init `zip'.
4304
 
4305
2011-06-14  suzuki toshiya  
4306
 
4307
	[base] Fix g++4.6 compiler warnings in src/base/*.c.
4308
 
4309
	Passing uninitialized pointer to FT_NEW() families is
4310
	not problematic theoretically (as far as the returned
4311
	pointer is checked before writing), but g++4.6 dislikes
4312
	it and warns by -Wuninitialized.  Initialize them by NULL.
4313
 
4314
	* src/base/ftobjs.c (FT_Stream_New): Init `stream'.
4315
	(new_memory_stream): Ditto.
4316
	(FT_New_GlyphSlot): Init `slot'.
4317
	(FT_CMap_New): Init `cmap'.
4318
	(open_face_PS_from_sfnt_stream): Init `sfnt_ps'.
4319
	(Mac_Read_POST_Resource): Init `pfb_data'.
4320
	(Mac_Read_sfnt_Resource): Init `sfnt_data'.
4321
	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets):
4322
	Init `offsets_internal' and `ref'.
4323
	(raccess_guess_darwin_hfsplus): Init `newpath'.
4324
	(raccess_guess_darwin_newvfs): Ditto.
4325
	* src/base/ftbitmap.c (ft_bitmap_assure_buffer):
4326
	Init `buffer'.
4327
	* src/base/ftstroke.c (FT_Stroker_New): Init `stroker'.
4328
 
4329
2011-06-14  suzuki toshiya  
4330
 
4331
	[gxvalid] Cleanup.
4332
 
4333
	Some invalid, overrunning, unrecommended non-zero values
4334
	are cared in paranoid validation mode only.  There are
4335
	many lines looking like:
4336
 
4337
	  if ( valid->root->level >= FT_VALIDATE_PARANOID )
4338
	    FT_INVALID_xxx;
4339
 
4340
	To simplify them, GXV_SET_ERR_IF_PARANOID( err ) is
4341
	introduced for more paranoid validation in future.
4342
 
4343
	* src/gxvalid/gxvcommn.h (IS_PARANOID_VALIDATION):
4344
	New macro to assure valid->root->level is more or
4345
	equal to FT_VALIDATE_PARANOID.  (GXV_SET_ERR_IF_PARANOID):
4346
	New macro to raise an error if in paranoid validation.
4347
	* src/gxvalid/gxvcommn.c: Use GXV_SET_ERR_IF_PARANOID().
4348
	* src/gxvalid/gxvfeat.c: Ditto.
4349
	* src/gxvalid/gxvjust.c: Ditto.
4350
	* src/gxvalid/gxvkern.c: Ditto.
4351
	* src/gxvalid/gxvmort.c: Ditto.
4352
	* src/gxvalid/gxvmort0.c: Ditto.
4353
	* src/gxvalid/gxvmort1.c: Ditto.
4354
	* src/gxvalid/gxvmort2.c: Ditto.
4355
	* src/gxvalid/gxvmorx1.c: Ditto.
4356
	* src/gxvalid/gxvmorx2.c: Ditto.
4357
 
4358
2011-06-14  suzuki toshiya  
4359
 
4360
	[gxvalid] Fix gcc4.6 compiler warnings in gxvtrak.c.
4361
 
4362
	* src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate):
4363
	Check different entries pointing same traking value.
4364
	(gxv_trak_validate): Remove unused variable `table_size'.
4365
 
4366
2011-06-14  suzuki toshiya  
4367
 
4368
	[gxvalid] Fix gcc4.6 compiler warnings in gxvmorx*.c.
4369
 
4370
	* src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate):
4371
	Conditionalize unvalidated variable `subFeatureFlags'.
4372
	(gxv_morx_chain_validate): Conditionalize unvalidated
4373
	variable `defaultFlags'.
4374
 
4375
	* src/gxvalid/gxmorx0.c
4376
	(gxv_morx_subtable_type0_entry_validate):
4377
	Conditionalize unvalidated variables; `markFirst',
4378
	`dontAdvance', `markLast', `verb'.
4379
 
4380
	* src/gxvalid/gxmorx1.c
4381
	(gxv_morx_subtable_type1_entry_validate): Conditionalize
4382
	unvalidated variables; `setMark', `dontAdvance'.
4383
 
4384
	* src/gxvalid/gxvmorx2.c
4385
	(gxv_morx_subtable_type2_ligActionOffset_validate):
4386
	Conditionalize unvalidated variables; `last', `store'.
4387
	Checking for overrunning offset is added.
4388
	(gxv_morx_subtable_type2_entry_validate):
4389
	Conditionalize unvalidated variables; `setComponent',
4390
	`dontAdvance', `performAction'.
4391
	(gxv_morx_subtable_type2_ligatureTable_validate):
4392
	Check if the GID for ligature does not exceed the
4393
	max GID in `maxp' table.
4394
 
4395
	* src/gxvalid/gxvmort5.c
4396
	(gxv_morx_subtable_type5_InsertList_validate):
4397
	Conditionalize unvalidated loading of `insert_glyphID'
4398
	array.  (gxv_morx_subtable_type5_entry_validate):
4399
	Conditionalize unvalidated variables; `setMark',
4400
	`dontAdvance', `currentIsKashidaLike',
4401
	`markedIsKashidaLike', `currentInsertBefore',
4402
	`markedInsertBefore'.
4403
 
4404
2011-06-14  suzuki toshiya  
4405
 
4406
	[gxvalid] Fix gcc4.6 compiler warnings in gxvmort*.c.
4407
 
4408
	* src/gxvalid/gxvmort.c (gxv_mort_subtables_validate):
4409
	Conditionalize unvalidated variable `subFeatureFlags'.
4410
	(gxv_mort_chain_validate): Conditionalize unvalidated
4411
	variable `defaultFlags'.
4412
 
4413
	* src/gxvalid/gxmort0.c
4414
	(gxv_mort_subtable_type0_entry_validate): Check the
4415
	conflict of the marks for the glyphs.
4416
 
4417
	* src/gxvalid/gxmort1.c
4418
	(gxv_mort_subtable_type1_offset_to_subst_validate):
4419
	Local variables `min_gid', `max_gid' are replaced by
4420
	variables in the validator.
4421
	(gxv_mort_subtable_type1_entry_validate): Conditionalize
4422
	unvalidated variables; `setMark', `dontAdvance'.
4423
	(gxv_mort_subtable_type1_substTable_validate):
4424
	Validate the GID by the min/max GIDs in the validator.
4425
 
4426
	* src/gxvalid/gxvmort2.c
4427
	(gxv_mort_subtable_type2_ligActionOffset_validate):
4428
	Conditionalize unvalidated variables; `last', `store'.
4429
	Checking for overrunning offset is added.
4430
	(gxv_mort_subtable_type2_entry_validate):
4431
	Conditionalize unvalidated variables; `setComponent',
4432
	`dontAdvance'.
4433
	(gxv_mort_subtable_type2_ligatureTable_validate):
4434
	Check if the GID for ligature does not exceed the
4435
	max GID in `maxp' table.
4436
 
4437
	* src/gxvalid/gxvmort5.c
4438
	(gxv_mort_subtable_type5_InsertList_validate):
4439
	Conditionalize unvalidated loading of `insert_glyphID'
4440
	array.  (gxv_mort_subtable_type5_entry_validate):
4441
	Conditionalize unvalidated variables; `setMark',
4442
	`dontAdvance', `currentIsKashidaLike',
4443
	`markedIsKashidaLike', `currentInsertBefore',
4444
	`markedInsertBefore'.
4445
 
4446
2011-06-14  suzuki toshiya  
4447
 
4448
	[gxvalid] Fix gcc4.6 compiler warnings in gxvkern.c.
4449
 
4450
	* src/gxvalid/gxvkern.c
4451
	(gxv_kern_subtable_fmt0_pairs_validate): Conditionalize
4452
	unvalidated variable `kernValue'.
4453
	(gxv_kern_subtable_fmt1_entry_validate): Conditionalize
4454
	unvalidated variables; `push', `dontAdvance', `kernAction',
4455
	`kernValue'.
4456
	(gxv_kern_coverage_new_apple_validate): Conditionalize
4457
	trace-only variables; `kernVertical', `kernCrossStream',
4458
	`kernVariation'.
4459
	(gxv_kern_coverage_classic_apple_validate): Conditionalize
4460
	trace-only variables; `horizontal', `cross_stream'.
4461
	(gxv_kern_coverage_classic_microsoft_validate):
4462
	Conditionalize trace-only variables; `horizontal',
4463
	`minimum', `cross_stream', `override'.
4464
	(gxv_kern_subtable_validate): Conditionalize trace-only
4465
	variables; `version', `tupleIndex'.
4466
 
4467
2011-06-14  suzuki toshiya  
4468
 
4469
	[gxvalid] Fix gcc4.6 compiler warnings in gxvjust.c.
4470
 
4471
	* src/gxvalid/gxvjust.c (gxv_just_check_max_gid):
4472
	New function to unify the checks of too large GID.
4473
	(gxv_just_wdp_entry_validate): Conditionalize unvalidated
4474
	variables; `beforeGrowLimit', `beforeShrinkGrowLimit',
4475
	`afterGrowLimit', `afterShrinkGrowLimit', `growFlags',
4476
	`shrinkFlags'.  Additional check for non-zero values in
4477
	unused storage `justClass' is added.
4478
	(gxv_just_actSubrecord_type0_validate): Conditionalize
4479
	unvalidated variable `order'.  GID is checked by
4480
	gxv_just_check_max_gid().  Additional check for upside-down
4481
	relationship between `lowerLimit' and `upperLimit' is added.
4482
	(gxv_just_actSubrecord_type1_validate): GID is checked by
4483
	gxv_just_check_max_gid().
4484
	(gxv_just_actSubrecord_type2_validate): Conditionalize
4485
	unvalidated variable `substThreshhold'.  GID is checked by
4486
	gxv_just_check_max_gid().
4487
	(gxv_just_actSubrecord_type5_validate): GID is checked by
4488
	gxv_just_check_max_gid().
4489
	(gxv_just_classTable_entry_validate): Conditionalize
4490
	unvalidated variables; `setMark', `dontAdvance',
4491
	`markClass', `currentClass'.
4492
 
4493
2011-06-14  suzuki toshiya  
4494
 
4495
	[gxvalid] Preparation to fix gcc4.6 compiler warnings.
4496
 
4497
	* src/gxvalid/gxvcommn.h (GXV_LOAD_TRACE_VARS): New macro to
4498
	conditionalize the variable which is only used for trace messages.
4499
	Automatically set by FT_DEBUG_LEVEL_TRACE.
4500
	(GXV_LOAD_UNUSED_VARS): New macro to conditionalize the loading of
4501
	unvalidated variables.  Undefined by default to calm gcc4.6 warning.
4502
	(GXV_ValidatorRec.{min_gid,max_gid}): New variables to hold defined
4503
	GID ranges, for the comparison of GID ranges in different subtables.
4504
 
4505
2011-06-08  Werner Lemberg  
4506
 
4507
	[autofit] Remove unused structure member.
4508
 
4509
	* src/autofit/afhints.h (AF_SegmentRec): Remove `contour'.
4510
	* src/autofit/aflatin.c (af_latin_hints_compute_segments),
4511
	src/autofit/aflatin2.c (af_latin2_hints_compute_segments): Updated.
4512
 
4513
2011-05-30  Werner Lemberg  
4514
 
4515
	Fix g++ 4.6 compilation.
4516
 
4517
	* src/autofit/afhints.c (af_glyph_hints_dump_segments,
4518
	af_glyph_hints_dump_edges): Use cast.
4519
 
4520
2011-05-30  Werner Lemberg  
4521
 
4522
	Fix gcc 4.6 compiler warnings.
4523
 
4524
	* src/autofit/afcjk.c (af_cjk_metrics_init_blues): Use casts and
4525
	remove unused variables.
4526
	* src/autofit/aflatin.c (af_latin_hints_compute_edges): Comment out
4527
	`up_dir'.
4528
	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `height_org'
4529
	and `width_org' conditionalized.
4530
 
4531
2011-05-28  suzuki toshiya  
4532
 
4533
	[mac] Conditionalize the inclusion of `AvailabilityMacros.h'.
4534
 
4535
	The native SDK on earliest Mac OS X (10.0-10.1) did not have
4536
	`AvailabilityMacros.h'.  To prevent the inclusion of missing
4537
	header file, ECANCELED (introduced in 10.2) in POSIX header
4538
	file  is checked to detect the system version.
4539
 
4540
	* include/freetype/config/ftconfig.h: Conditionalize the
4541
	inclusion of `AvailabilityMacros.h'.
4542
	* builds/unix/ftconfig.in: Ditto.
4543
	* builds/vms/ftconfig.h: Ditto.
4544
 
4545
2011-05-27  Werner Lemberg  
4546
 
4547
	[autofit] Improve tracing of hinting process.
4548
 
4549
	* src/autofit/aflatin.c (af_latin_hint_edges): Add tracing message
4550
	`ADJUST'.
4551
 
4552
2011-05-26  Werner Lemberg  
4553
 
4554
	[autofit] Fix trace message.
4555
 
4556
	* src/autofit/aflatin.c (af_latin_hint_edges): Show correct value in
4557
	tracing message.
4558
 
4559
2011-05-24  Daniel Zimmermann  
4560
 
4561
	Reduce warnings for MS Visual Studio 2010.
4562
 
4563
	* src/autofit/afhints.c (af_glyph_hints_get_num_segments,
4564
	af_glyph_hints_get_segment_offset) [!FT_DEBUG_AUTOFIT]: Provide
4565
	return value.
4566
	* src/cff/cffgload.c (cff_slot_load): Add cast.
4567
	* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): Use proper
4568
	loop variable type.
4569
 
4570
2011-05-16  suzuki toshiya  
4571
 
4572
	Automake component `builds/unix/install-sh' is removed.
4573
 
4574
	* builds/unix/install-sh: Removed.  It is not needed to
4575
	include repository, because autogen.sh installs it.
4576
	* builds/unix/.gitignore: Register install-sh.
4577
 
4578
2011-05-12  suzuki toshiya  
4579
 
4580
	[autofit] Make trace message for CJK bluezone more verbose.
4581
 
4582
2011-05-08  Just Fill Bugs  
4583
            suzuki toshiya  
4584
 
4585
	[autofit] Add bluezones for CJK Ideographs.
4586
 
4587
	To remove extremas of vertical strokes of CJK Ideographs at
4588
	low resolution and make the top and bottom horizontal stems
4589
	aligned, bluezones for CJK Ideographs are calculated from
4590
	sample glyphs.  At present, vertical bluezones (bluezones
4591
	to align vertical stems) are disabled by default.  For detail, see
4592
	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00070.html
4593
	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00092.html
4594
	http://lists.gnu.org/archive/html/freetype-devel/2011-05/msg00001.html
4595
 
4596
	* include/freetype/internal/fttrace.h: New trace component `afcjk'.
4597
	* src/autofit/afcjk.h (AF_CJK{Blue,Axis,Metric}Rec): Add CJK version
4598
	for AF_Latin{Blue,Axis,Metric}Rec.
4599
	(af_cjk_metrics_check_digits): Ditto, shared with Indic module.
4600
	(af_cjk_metrics_init_widths): Ditto.
4601
	(af_cjk_metrics_init): Take AF_CJKMetric instead of AF_LatinMetric.
4602
	(af_cjk_metrics_scale): Ditto (declaration).
4603
	(af_cjk_hints_init): Ditto (declaration).
4604
	(af_cjk_hints_apply): Ditto (declaration).
4605
	* src/autofit/afcjk.c (af_cjk_metrics_scale): Ditto (body).
4606
	(af_cjk_hints_init): Ditto (body).
4607
	(af_cjk_hints_apply): Ditto (body).
4608
	(af_cjk_metrics_init_widths): Duplicate af_latin_metrics_init_widths.
4609
	(af_cjk_metrics_check_digits): Duplicate af_latin_metrics_check_digits.
4610
	(af_cjk_metrics_init): Call CJK bluezone initializer.
4611
	(af_cjk_metrics_scale_dim): Add code to scale bluezones.
4612
	(af_cjk_hints_compute_blue_edges): New function, CJK version of
4613
	af_latin_hints_compute_blue_edges.
4614
	(af_cjk_metrics_init_blues): New function, CJK version of
4615
	af_latin_metrics_init_blues.
4616
	(af_cjk_hints_edges): Add code to align the edge stems to blue zones.
4617
 
4618
	* src/autofit/afindic.c (af_indic_metrics_init): Take AF_CJKMetric
4619
	instead of AF_LatinMetric, and initialize as af_cjk_metrics_init.
4620
	However bluezones are not initialized.
4621
	(af_indic_metrics_scale): Take AF_CJKMetric instead of AF_LatinMetric.
4622
	(af_indic_hints_init): Ditto.
4623
	(af_indic_hints_apply): Ditto.
4624
 
4625
	* docs/CHANGES: Note about CJK bluezone support.
4626
 
4627
2011-05-06  Werner Lemberg  
4628
 
4629
	[autofit] Remove unused struct member.
4630
 
4631
	* src/autofit/aflatin.h (AF_LatinAxis): Remove `control_overshoot'.
4632
 
4633
2011-05-04  Werner Lemberg  
4634
 
4635
	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Simplify.
4636
 
4637
2011-05-01  Just Fill Bugs  
4638
            Werner Lemberg  
4639
 
4640
	[autofit] Add more debugging functions.
4641
 
4642
	* src/autofit/afhints.c (af_glyph_hints_get_num_segments,
4643
	af_glyph_hints_get_segment_offset): New functions.
4644
 
4645
2011-05-01  suzuki toshiya  
4646
 
4647
	Add new option `--disable-mmap' to configure script.
4648
 
4649
	* builds/unix/configure.raw: New option `--disable-mmap'
4650
	is added.  It is for the developers to simulate the systems
4651
	without mmap() (like 4.3BSD, minix etc) on POSIX systems.
4652
 
4653
2011-04-30  suzuki toshiya  
4654
 
4655
	[truetype] Always recalculate the sfnt table checksum.
4656
 
4657
	* src/truetype/ttobjs.c (tt_get_sfnt_checksum): Recalculate
4658
	the sfnt table checksum even if non-zero value is written in
4659
	the TrueType font header.  Some bad PDF generators write
4660
	wrong values.  For details see examples and benchmark tests
4661
	of the latency by recalculation:
4662
	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00091.html
4663
	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00096.html
4664
 
4665
2011-04-30  suzuki toshiya  
4666
 
4667
	[truetype] Register a set of tricky fonts, NEC FA family.
4668
 
4669
	* src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids):
4670
	Add 8 checksum sets for NEC FA family.  For the tricky fonts
4671
	without some tables (e.g. NEC FA fonts lack cvt table),
4672
	extra check is added to assure that a zero-length table in the
4673
	registry is not included in the font.
4674
 
4675
2011-04-29  suzuki toshiya  
4676
 
4677
	[truetype] Fix a bug in the sfnt table checksum getter.
4678
 
4679
	* src/truetype/ttobjs.c (tt_get_sfnt_checksum): Check the
4680
	return value of face->goto_table() correctly.
4681
 
4682
2011-04-28  Werner Lemberg  
4683
 
4684
	[autofit] Improve tracing messages.
4685
 
4686
	* src/autofit/aflatin.c (af_latin_metrics_init_blues,
4687
	af_latin_align_linked_edge, af_latin_hint_edges): Do it.
4688
 
4689
2011-04-25  Kan-Ru Chen  
4690
 
4691
	[truetype] Always check the checksum to identify tricky fonts.
4692
 
4693
	Because some PDF generators mangle the family name badly,
4694
	the trickyness check by the checksum should be invoked always.
4695
	For sample PDF, see
4696
	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html
4697
 
4698
	* src/truetype/ttobjs.c (tt_check_trickyness): Even when
4699
	tt_check_trickyness_family() finds no trickyness,
4700
	tt_check_trickyness_sfnt_ids() is invoked.
4701
 
4702
2011-04-22  suzuki toshiya  
4703
 
4704
	[autofit] Add more Indic scripts with hanging baseline.
4705
 
4706
	* src/autofit/afindic.c (af_indic_uniranges): Tibetan, Limbu,
4707
	Sundanese, Meetei Mayak, Syloti Nagri and Sharada scripts are
4708
	added.
4709
 
4710
2011-04-21  Behdad Esfahbod  
4711
 
4712
	Always ignore global advance.
4713
 
4714
	This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant,
4715
	deprecated, and ignored.  The new behavior is what every major user
4716
	of FreeType has been requesting.  Global advance is broken in many
4717
	CJK fonts.  Just ignoring it by default makes most sense.
4718
 
4719
	* src/truetype/ttdriver.c (tt_get_advances),
4720
	src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics,
4721
	tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph),
4722
	src/truetype/ttgload.h: Implement it.
4723
 
4724
	* docs/CHANGES: Updated.
4725
 
4726
2011-04-21  rainy6144  
4727
 
4728
	[autofit] Blur CJK stems if too many to preserve their gaps.
4729
 
4730
	When there are too many stems to preserve their gaps in the
4731
	rasterization of CJK Ideographs at a low resolution, blur the
4732
	stems instead of showing clumped stems.  See
4733
	http://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html
4734
	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html
4735
	for details.
4736
 
4737
	* src/autofit/afcjk.c (af_cjk_hint_edges): Store the position of
4738
	the previous stem by `has_last_stem' and `last_stem_pos', and skip
4739
	a stem if the current and previous stem are too near to preserve
4740
	the gap.
4741
 
4742
2011-04-18  Werner Lemberg  
4743
 
4744
	Integrate autofitter debugging stuff.
4745
 
4746
	* devel/ftoption.h, include/freetype/config/ftoption.h
4747
	(FT_DEBUG_AUTOFIT): New macro.
4748
 
4749
	* include/freetype/internal/fttrace.h: Add trace components for
4750
	autofitter.
4751
 
4752
	* src/autofit/aftypes.h (AF_LOG): Removed.
4753
	(_af_debug): Removed.
4754
 
4755
	* src/autofit/*: s/AF_DEBUG/FT_DEBUG_AUTOFIT/.
4756
	s/AF_LOG/FT_TRACE5/.
4757
	Define FT_COMPONENT where necessary.
4758
 
4759
2011-04-18  Werner Lemberg  
4760
 
4761
	Synchronize config files.
4762
 
4763
	* builds/unix/ftconfig.in: Copy missing assembler routines from
4764
	include/freetype/config/ftconfig.h.
4765
 
4766
2011-04-13  Werner Lemberg  
4767
 
4768
	[psaux] Fix Savannah bug #33047.
4769
 
4770
	Patch submitted by anonymous reporter.
4771
 
4772
	* src/psaux/psobjs.c (ps_table_add): Use FT_PtrDist for pointer
4773
	difference.
4774
 
4775
2011-04-11  Kan-Ru Chen  
4776
 
4777
	Fix reading of signed integers from files on 64bit platforms.
4778
 
4779
	Previously, signed integers were converted to unsigned integers, but
4780
	this can fail because of sign extension.  For example, 0xa344a1eb
4781
	becomes 0xffffffffa344a1eb.
4782
 
4783
	We now do the reverse which is always correct because the integer
4784
	size is the same during the cast from unsigned to signed.
4785
 
4786
	* include/freetype/internal/ftstream.h, src/base/ftstream.c
4787
	(FT_Stream_Get*): Replace with...
4788
	(FT_Stream_GetU*): Functions which read unsigned integers.
4789
	Update all macros accordingly.
4790
 
4791
	* src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Updated.
4792
 
4793
2011-04-07  Werner Lemberg  
4794
 
4795
	Update Unicode ranges for CJK autofitter; in particular, add Hangul.
4796
 
4797
	* src/autofit/afcjk.c (af_cjk_uniranges): Update to Unicode 6.0.
4798
 
4799
2011-04-04  Werner Lemberg  
4800
 
4801
	Fix formatting of autofit debug dumps.
4802
 
4803
	* src/autofit/afhints.c (af_glyph_hints_dump_points,
4804
	af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Adjust
4805
	column widths.
4806
 
4807
2011-03-30  Werner Lemberg  
4808
 
4809
	* src/autofit/aftypes.h (AF_OutlineRec): Removed, unused.
4810
 
4811
2011-03-24  Werner Lemberg  
4812
 
4813
	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 256.
4814
	This limit is given on p. 37 of Adobe Technical Note #5014.
4815
 
4816
2011-03-23  Werner Lemberg  
4817
 
4818
	* src/truetype/ttpload.c (tt_face_load_loca): Fix mismatch warning.
4819
 
4820
2011-03-20  Werner Lemberg  
4821
 
4822
	* src/sfnt/sfobjs.c (sfnt_open_font): Check number of TTC subfonts.
4823
 
4824
2011-03-19  Werner Lemberg  
4825
 
4826
	More C++ compilation fixes.
4827
 
4828
	* src/autofit/afhints.c (af_glyph_hints_dump_points,
4829
	af_glyph_hints_dump_segments, af_glyph_hints_dump_edges)
4830
	[__cplusplus]: Protect with `extern "C"'.
4831
 
4832
2011-03-18  Werner Lemberg  
4833
 
4834
	C++ compilation fixes.
4835
 
4836
	* src/autofit/aflatin.c (af_latin_hints_apply), src/autofit/afcjk.c
4837
	(af_cjk_hints_apply): Use cast for `dim'.
4838
 
4839
2011-03-17  Alexei Podtelezhnikov  
4840
 
4841
	A better fix for Savannah bug #32671.
4842
 
4843
	* src/smooth/ftgrays.c (gray_render_conic): Clean up code and
4844
	replace WHILE loop with a more natural DO-WHILE construct.
4845
 
4846
2011-03-16  Werner Lemberg  .
4847
 
4848
	* src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field.
4849
	Suggested by Graham Asher.
4850
 
4851
2011-03-09  Werner Lemberg  
4852
 
4853
	Make FT_Sfnt_Table_Info return the number of SFNT tables.
4854
 
4855
	* src/sfnt/sfdriver.c (sfnt_table_info): Implement it.
4856
	* include/freetype/tttables.h: Update documentation.
4857
	* docs/CHANGES: Updated.
4858
 
4859
2011-03-07  Bram Tassyns  
4860
 
4861
	[cff] Fix Savannah bug #27988.
4862
 
4863
	* src/cff/cffobjs.c (remove_style): New function.
4864
	(cff_face_init): Use it to strip off the style part of the family
4865
	name.
4866
 
4867
2011-03-07  Werner Lemberg  
4868
 
4869
	* docs/CHANGES: Updated.
4870
 
4871
2011-03-07  Alexei Podtelezhnikov  
4872
 
4873
	Quick fix for Savannah bug #32671.
4874
 
4875
	This isn't the optimal solution yet, but it restores the previous
4876
	rendering quality (more or less).
4877
 
4878
	* src/smooth/ftgrays.c (gray_render_conic): Do more splitting.
4879
 
4880
2011-03-06  Werner Lemberg  
4881
 
4882
	Fix autohinting fallback.
4883
 
4884
	* src/base/ftobjs.c (FT_Load_Glyph): Assure that we only check TTFs,
4885
	ignoring CFF-based OTFs.
4886
 
4887
2011-02-27  Werner Lemberg  
4888
 
4889
	Add AF_CONFIG_OPTION_USE_WARPER to control the autofit warper.
4890
 
4891
	* devel/ftoption.h, include/freetype/config/ftoption.h
4892
	(AF_CONFIG_OPTION_USE_WARPER): New macro.
4893
	* src/autofit/aftypes.h (AF_USE_WARPER): Remove.
4894
 
4895
	* src/autofit/*: s/AF_USE_WARPER/AF_CONFIG_OPTION_USE_WARPER/.
4896
 
4897
	* src/autofit/afwarp.c [!AF_CONFIG_OPTION_USE_WARPER]: Replace dummy
4898
	variable assignment with a typedef.
4899
 
4900
2011-02-26  Werner Lemberg  
4901
 
4902
	[autofit] Slight simplifications.
4903
 
4904
	* src/autofit/aflatin.c (af_latin_hints_link_segments): Remove
4905
	test which always returns false.
4906
	(af_latin_hints_compute_blue_edges): Remove redundant assignment.
4907
 
4908
2011-02-24  Werner Lemberg  
4909
 
4910
	* docs/PROBLEMS: Mention rendering differences on different
4911
	platforms.
4912
	Suggested and worded by Jason Owen .
4913
 
4914
2011-02-24  Werner Lemberg  
4915
 
4916
	[autofit] Comment out unused code.
4917
 
4918
	* src/autofit/aflatin.c, src/autofit/aflatin2.c
4919
	(af_latin_hints_compute_edges): Do it.
4920
 
4921
2011-02-24  Werner Lemberg  
4922
 
4923
	* src/autofit/afhints.h (AF_GlyphHints): Remove unused field.
4924
 
4925
2011-02-20  suzuki toshiya  
4926
 
4927
	[cache] Fix an off-by-one bug in `FTC_Manager_RemoveFaceID'.
4928
	Found by , see detail in
4929
 
4930
	  http://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html
4931
 
4932
	* src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node
4933
	buckets[cache->p + cache->mask] too.
4934
 
4935
2011-02-19  Kevin Kofler  
4936
 
4937
	Fall back to autohinting if a TTF/OTF doesn't contain any bytecode.
4938
	This is Savannah patch #7471.
4939
 
4940
	* src/base/ftobjs.c (FT_Load_Glyph): Implement it.
4941
 
4942
2011-02-19  John Tytgat  
4943
 
4944
	[cff] Fix subset prefix removal.
4945
	This is Savannah patch #7465.
4946
 
4947
	* src/cff/cffobjs.c (remove_subset_prefix): Update length after
4948
	subset prefix removal.
4949
 
4950
2011-02-13  Bradley Grainger  
4951
 
4952
	Add inline assembly version of FT_MulFix for MSVC.
4953
 
4954
	* include/freetype/config/ftconfig.h: Ported the FT_MulFix_i386
4955
	function from GNU inline assembly syntax (see #ifdef __GNUC__ block
4956
	above) to MASM syntax for Microsoft Visual C++.
4957
 
4958
2011-02-13  Bradley Grainger  
4959
 
4960
	Add project and solution files in Visual Studio 2010 format.
4961
 
4962
	* builds/win32/.gitignore: Ignore user-specific cache files.
4963
	* builds/win32/vc2010/: Add VS2010 project & solution files, created
4964
	by upgrading builds/win32/vc2008/freetype.vcproj.
4965
	* objs/.gitignore: Ignore Visual Studio output files.
4966
 
4967
2011-02-01  Werner Lemberg  
4968
 
4969
	* src/autofit/afdummy.c: Include `aferrors.h'.
4970
	Problem reported by Chris Liddell .
4971
 
4972
2011-02-01  Werner Lemberg  
4973
 
4974
	[cff] Ignore unknown operators in charstrings.
4975
	Patch suggested by Miles.Lau .
4976
 
4977
	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing
4978
	message for unknown operators and continue instead of exiting with a
4979
	syntax error.
4980
 
4981
2011-02-01  Werner Lemberg  
4982
 
4983
	[truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also.
4984
 
4985
	* src/truetype/ttgload.c (tt_loader_init): Handle
4986
	`FT_LOAD_PEDANTIC'.
4987
	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
4988
	tt_size_init_bytecode, tt_size_ready_bytecode): New argument to
4989
	handle pedantic mode.
4990
	* src/truetype/ttobjs.h: Updated.
4991
 
4992
2011-01-31  Werner Lemberg  
4993
 
4994
	[truetype] Protect jump instructions against endless loops.
4995
 
4996
	* src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error
4997
	if offset is zero.
4998
 
4999
2011-01-31  Werner Lemberg  
5000
 
5001
	[truetype] Improve handling of invalid references.
5002
 
5003
	* src/truetype/interp.c: Set even more TT_Err_Invalid_Reference
5004
	error codes only if pedantic hinting is active.  At the same time,
5005
	try to provide sane values which hopefully allow useful
5006
	continuation.  Exception to this is CALL and LOOPCALL – due to
5007
	possible stack corruption it is necessary to bail out.
5008
 
5009
2011-01-31  Werner Lemberg  
5010
 
5011
	[truetype] Improve handling of stack underflow.
5012
 
5013
	* src/truetype/ttinterp.c (TT_RunIns, Ins_FLIPPT, Ins_DELTAP,
5014
	Ins_DELTAC): Exit with error only if `pedantic_hinting' is set.
5015
	Otherwise, try to do something sane.
5016
 
5017
2011-01-30  Werner Lemberg  
5018
 
5019
	* src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message.
5020
 
5021
2011-01-30  LIU Sun-Liang  
5022
 
5023
	[truetype]: Fix behaviour of MIAP for invalid arguments.
5024
 
5025
	* src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in
5026
	case of error.
5027
 
5028
2011-01-18  Werner Lemberg  
5029
 
5030
	[truetype] Fix handling of MIRP instruction.
5031
 
5032
	Thanks to Greg Hitchcock who explained the issue.
5033
 
5034
	* src/truetype/ttinterp.c (Ins_MIRP): Replace a `>=' operator with
5035
	`>' since the description in the specification is incorrect.
5036
	This fixes, for example, glyph `two' in font `Helvetica Neue LT Com
5037
	65 medium' at 15ppem.
5038
 
5039
2011-01-15  suzuki toshiya  
5040
 
5041
	Fix ARM assembly code in include/freetype/config/ftconfig.h.
5042
 
5043
	* include/freetype/config/ftconfig.h (FT_MulFix_arm):
5044
	Copy the maintained code from builds/unix/ftconfig.in.
5045
	Old GNU binutils could not accept the reduced syntax
5046
	`orr %0, %2, lsl #16'.  Un-omitted syntax like RVCT,
5047
	`orr %0, %0, %2, lsl #16' is better.  Reported by
5048
	Johnson Y. Yan.  The bug report by Qt developers is
5049
	considered too.
5050
 
5051
	http://bugreports.qt.nokia.com/browse/QTBUG-6521
5052
 
5053
2011-01-15  Werner Lemberg  
5054
 
5055
	[raster] Make bbox handling the same as with Microsoft's rasterizer.
5056
 
5057
	Right before B/W rasterizing, the bbox gets simply rounded to
5058
	integers.  This fixes, for example, glyph `three' in font `Helvetica
5059
	Neue LT Com 65 Medium' at 11ppem.
5060
 
5061
	Thanks to Greg Hitchcock who explained this behaviour.
5062
 
5063
	* src/raster/ftrend1.c (ft_raster1_render): Implement it.
5064
 
5065
2011-01-15  suzuki toshiya  
5066
 
5067
	Copy -mcpu=* & -march=* options from CFLAGS to LDFLAGS.
5068
 
5069
	* builds/unix/configure.raw: Consider recent gcc-standard
5070
	flags to specify architecture in CFLAGS & LDFLAGS
5071
	harmonization.  Requested by Savannah bug #32114, to
5072
	support multilib feature of BuildRoot SDK correctly.
5073
 
5074
2011-01-15  suzuki toshiya  
5075
 
5076
	Fix off-by-one bug in CFLAGS & LDFLAGS harmonizer.
5077
 
5078
	* builds/unix/configure.raw: Some important options that
5079
	included in CFLAGS but not in LDFLAGS are copied to
5080
	LDFLAGS, but the last option in CFLAGS was not checked.
5081
 
5082
2011-01-13  Werner Lemberg  
5083
 
5084
	[raster] Add undocumented drop-out rule to the other bbox side also.
5085
 
5086
	* src/raster/ftraster.c (Vertical_Sweep_Drop,
5087
	Horizontal_Sweep_Drop): Implement it.
5088
 
5089
2011-01-13  Werner Lemberg  
5090
 
5091
	[raster] Reduce jitter value.
5092
 
5093
	This catches a rendering problem with glyph `x' from Tahoma at
5094
	10ppem.  It seems that the increase of the precision in the change
5095
	from 2009-06-11 makes a larger jitter value unnecessary.
5096
 
5097
	* src/raster/ftraster.c (Set_High_Precision): Implement it.
5098
 
5099
2011-01-13  Werner Lemberg  
5100
 
5101
	[raster] Handle drop-outs at glyph borders according to Microsoft.
5102
 
5103
	If a drop-out rule would switch on a pixel outside of the glyph's
5104
	bounding box, use the right (or top) pixel instead.  This is an
5105
	undocumented feature, but some fonts like `Helvetica Neue LT Com 65
5106
	Medium' heavily rely on it.
5107
 
5108
	Thanks to Greg Hitchcock who explained this behaviour.
5109
 
5110
	* src/raster/ftraster.c (Vertical_Sweep_Drop,
5111
	Horizontal_Sweep_Drop): Implement it.
5112
 
5113
2011-01-09  suzuki toshiya  
5114
 
5115
	[cache] Fix Savannah bug #31923, patch drafted by Harsha.
5116
 
5117
	When a node comparator changes the cached nodes during the
5118
	search of a node matching with queried properties, the
5119
	pointers obtained before the function should be updated to
5120
	prevent the dereference to freed or reallocated nodes.
5121
	To minimize the rescan of the linked list, the update is
5122
	executed when the comparator notifies the change of cached
5123
	nodes. This change depends previous change:
5124
	38b272ffbbdaae276d636aec4ef84af407d16181
5125
 
5126
	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Rescan the
5127
	top node if the cached nodes are changed.
5128
	* src/cache/ftccache.c (FTC_Cache_Lookup): Ditto.
5129
 
5130
2011-01-09  suzuki toshiya  
5131
 
5132
	[cache] Notice if a cache query induced the node list change.
5133
 
5134
	Some node comparators (comparing the cache node contents and the
5135
	properties specified by the query) can flush the cache node to
5136
	prevent the cache inflation.  The change may invalidate the pointers
5137
	to the node obtained before the node comparison, so it should be
5138
	noticed to the caller.  The problem caused by the cache node
5139
	changing is reported by Harsha, see Savannah bug #31923.
5140
 
5141
	* src/cache/ftccache.h (FTC_Node_CompareFunc): Add new argument
5142
	`FT_Bool* list_changed' to indicate the change of the cached nodes
5143
	to the caller.
5144
	(FTC_CACHE_LOOKUP_CMP): Watch the change of the cached nodes by
5145
	`_list_changed'.
5146
	(FTC_CACHE_TRYLOOP_END): Take new macro argument `_list_changed'
5147
	and update it when `FTC_Manager_FlushN' flushes any nodes.
5148
 
5149
	* src/cache/ftccback.h (ftc_snode_compare): Updated to fit with new
5150
	FTC_Node_CompareFunc type.
5151
	(ftc_gnode_compare): Ditto.
5152
 
5153
	* src/cache/ftcbasic.c: Include FT_INTERNAL_OBJECTS_H to use
5154
	TRUE/FALSE macros.
5155
	(ftc_basic_gnode_compare_faceid): New argument `FT_Bool*
5156
	list_changed' to indicate the change of the cache nodes (anyway, it
5157
	is always FALSE).
5158
 
5159
	* src/cache/ftccmap.c: Include FT_INTERNAL_OBJECTS_H to use
5160
	TRUE/FALSE macros.
5161
	(ftc_cmap_node_compare): New argument `FT_Bool* list_changed' to
5162
	indicate the change of the cache nodes (anyway, it is always FALSE).
5163
	(ftc_cmap_node_remove_faceid): Ditto.
5164
 
5165
	* src/cache/ftccache.c (FTC_Cache_NewNode): Pass a NULL pointer to
5166
	`FTC_CACHE_TRYLOOP_END', because the result is not needed.
5167
	(FTC_Cache_Lookup): Watch the change of the cache nodes by
5168
	`list_changed'.
5169
	(FTC_Cache_RemoveFaceID): Ditto.
5170
 
5171
	* src/cache/ftcglyph.c: Include FT_INTERNAL_OBJECTS_H to use
5172
	TRUE/FALSE macros.
5173
	(ftc_gnode_compare): New argument `FT_Bool* list_changed' to
5174
	indicate the change of the cache nodes (anyway, it is always FALSE).
5175
	(FTC_GNode_Compare): New argument `FT_Bool* list_changed' to be
5176
	passed to `ftc_gnode_compare'.
5177
	* src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto.
5178
 
5179
	* src/cache/ftcsbits.c (ftc_snode_compare): New argument `FT_Bool*
5180
	list_changed' to indicate the change of the cache nodes, anyway.  It
5181
	is updated by `FTC_CACHE_TRYLOOP'.
5182
	(FTC_SNode_Compare): New argument `FT_Bool* list_changed' to be
5183
	passed to `ftc_snode_compare'.
5184
	* src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto.
5185
 
5186
2011-01-09  suzuki toshiya  
5187
 
5188
	[cache] Fit `FTC_GNode_Compare' to `FTC_Node_CompareFunc'.
5189
 
5190
	* src/cache/ftcglyph.h (FTC_GNode_Compare): Add the 3rd
5191
	argument `FTC_Cache  cache' to fit FTC_Node_CompareFunc
5192
	prototype.
5193
	* src/cache/ftcglyph.c (FTC_GNode_Compare): Ditto. Anyway,
5194
	`cache' is not used by its child `ftc_gnode_compare'.
5195
 
5196
2011-01-09  suzuki toshiya  
5197
 
5198
	[cache] Deduplicate the code to get the top node by a hash.
5199
 
5200
	There are several duplicated code fragments getting the top node
5201
	from a cache by a given hash, like:
5202
 
5203
	    idx = hash & cache->mask;
5204
	    if ( idx < cache->p )
5205
	      idx = hash & ( cache->mask * 2 + 1 );
5206
	    pnode = cache->buckets + idx;
5207
 
5208
	To remove duplication, a cpp-macro to do same work
5209
	`FTC_NODE__TOP_FOR_HASH' is introduced.  For non-inlined
5210
	configuration, non-`ftc_get_top_node_for_hash' is also introduced.
5211
 
5212
	* src/cache/ftccache.h (FTC_NODE__TOP_FOR_HASH): Declare
5213
	and implement inlined version.
5214
	(FTC_CACHE_LOOKUP_CMP): Use `FTC_NODE__TOP_FOR_HASH'.
5215
	* src/cache/ftccache.c (ftc_get_top_node_for_hash): Non-inlined
5216
	version.
5217
	(ftc_node_hash_unlink): Use `FTC_NODE__TOP_FOR_HASH'.
5218
	(ftc_node_hash_link): Ditto.
5219
	(FTC_Cache_Lookup): Ditto.
5220
 
5221
2011-01-09  suzuki toshiya  
5222
 
5223
	[cache] inline-specific functions are conditionalized.
5224
 
5225
	* src/cache/ftcglyph.c (FTC_GNode_Compare): Conditionalized for
5226
	inlined configuration.  This function is a thin wrapper of
5227
	`ftc_gnode_compare' for inlined `FTC_CACHE_LOOKUP_CMP' (see
5228
	`nodecmp' argument).  Under non-inlined configuration,
5229
	`ftc_gnode_compare' is invoked by `FTC_Cache_Lookup', via
5230
	`FTC_Cache->clazz.node_compare'.
5231
 
5232
	* src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto.
5233
	* src/cache/ftcsbits.c (FTC_SNode_Compare): Ditto, for
5234
	`ftc_snode_compare'.
5235
	* src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto.
5236
 
5237
2011-01-09  suzuki toshiya  
5238
 
5239
	[cache] Correct a type mismatch under non-inlined config.
5240
 
5241
	* src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): `FTC_GCache_Lookup'
5242
	takes the node via a pointer `FTC_Node*', differently from cpp-macro
5243
	`FTC_CACHE_LOOKUP_CMP'.
5244
 
5245
2011-01-06  suzuki toshiya  
5246
 
5247
	Update Jamfile to include Bzip2 support.
5248
 
5249
	* Jamfile: Include src/bzip2 to project.
5250
	Comments for lzw, gzip, bzip2 are changed to clarify that
5251
	they are for compressed PCF fonts, not others.
5252
	(e.g. compressed BDF fonts are not supported yet)
5253
 
5254
2011-01-05  suzuki toshiya  
5255
 
5256
	Update Symbian project files to include Bzip2 support.
5257
 
5258
	Currently, it provides `FT_Stream_OpenBzip2' that returns
5259
	unimplemented error always, to prevent unresolved symbol
5260
	error for the applications designed for Unix systems.
5261
 
5262
	* builds/symbian/bld.inf: Include ftbzip2.h.
5263
	* builds/symbian/freetype.mmp: Include ftbzip2.c.
5264
 
5265
2011-01-05  suzuki toshiya  
5266
 
5267
	Update classic MacOS makefiles to include Bzip2 support.
5268
 
5269
	Currently, it provides `FT_Stream_OpenBzip2' that returns
5270
	unimplemented error always, to prevent unresolved symbol
5271
	error for the applications designed for Unix systems.
5272
 
5273
	* builds/mac/FreeType.m68k_cfm.make.txt: Include ftbzip2.c.o.
5274
	* builds/mac/FreeType.m68k_far.make.txt: Ditto.
5275
	* builds/mac/FreeType.ppc_carbon.make.txt: Include ftbzip2.c.x.
5276
	* builds/mac/FreeType.ppc_classic.make.txt: Ditto.
5277
 
5278
2011-01-05  suzuki toshiya  
5279
 
5280
	Update Amiga makefiles to include Bzip2 support.
5281
 
5282
	Currently, it provides `FT_Stream_OpenBzip2' that returns
5283
	unimplemented error always, to prevent unresolved symbol
5284
	error for the applications designed for Unix systems.
5285
 
5286
	* builds/amiga/makefile: Include bzip2.ppc.o built from ftbzip2.c.
5287
	* builds/amiga/makefile.os4: Include bzip2.o built from ftbzip2.c.
5288
	* builds/amiga/smakefile: Ditto.
5289
 
5290
2011-01-05  suzuki toshiya  
5291
 
5292
	Update pkg-config tools to reflect Bzip2 support.
5293
 
5294
	* builds/unix/freetype-config.in: Include `-lbz2' to
5295
	--libs output, if built with Bzip2 support.
5296
	* builds/unix/freetype2.in: Ditto.
5297
 
5298
2011-01-05  suzuki toshiya  
5299
 
5300
	* builds/unix/configure.raw: Remove `SYSTEM_BZ2LIB' macro.
5301
 
5302
	SYSTEM_ZLIB is used to switch the builtin zlib source
5303
	or system zlib source out of FreeType2.  But ftbzip2
5304
	module has no builtin bzip2 library and always requires
5305
	system bzip2 library.  Thus SYSTEM_BZ2LIB is always yes,
5306
	it is not used.
5307
 
5308
2011-01-03  Werner Lemberg  
5309
 
5310
	*/rules.mk: Handle `*pic.c' files.
5311
 
5312
2010-12-31  Werner Lemberg  
5313
 
5314
	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 64.
5315
	Problem reported by Tom Bishop .
5316
 
5317
2010-12-31  Werner Lemberg  
5318
 
5319
	Improve bzip2 support.
5320
 
5321
	* include/freetype/ftmoderr.h: Add bzip2.
5322
 
5323
	* docs/INSTALL.ANY, docs/CHANGES: Updated.
5324
 
5325
	* src/pcf/README: Updated.
5326
	* include/freetype/internal/pcftypes.h: Obsolete, removed.
5327
 
5328
2010-12-31  Joel Klinghed  
5329
 
5330
	Add bzip2 compression support to handle *.pcf.bz2 files.
5331
 
5332
	* builds/unix/configure.raw: Test for libbz2 library.
5333
 
5334
	* devel/ftoption.h, include/freetype/config/ftoption.h
5335
	(FT_CONFIG_OPTION_USE_BZIP2): Define.
5336
	* include/freetype/config/ftheader.h (FT_BZIP2_H): Define.
5337
 
5338
	* include/freetype/ftbzip2.h: New file.
5339
 
5340
	* src/bzip2/*: New files.
5341
 
5342
	* src/pcf/pcf.h: s/gzip_/comp_/.
5343
	* src/pcf/pcfdrvr.c: Include FT_BZIP2_H.
5344
	s/gzip_/comp_/.
5345
	(PCF_Face_Init): Handle bzip2 compressed files.
5346
 
5347
	* docs/formats.txt, modules.cfg: Updated.
5348
 
5349
2010-12-25  Harsha  
5350
 
5351
	Apply Savannah patch #7422.
5352
 
5353
	If we encounter a space in a string then the sbit buffer is NULL,
5354
	height and width are 0s.  So the check in ftc_snode_compare will
5355
	always pass for spaces (comparision with 255).  Here the comments
5356
	above the condition are proper but the implementation is not.  When
5357
	we create an snode I think it is the proper way to initialize the
5358
	width to 255 and then put a check for being equal to 255 in snode
5359
	compare function.
5360
 
5361
	* src/cache/ftcsbits.c (FTC_SNode_New): Initialize sbit widths with
5362
	value 255.
5363
	(ftc_snode_compare): Fix condition.
5364
 
5365
2010-12-13  Werner Lemberg  
5366
 
5367
	Fix parameter handling of `FT_Set_Renderer'.
5368
	Reported by Kirill Tishin .
5369
 
5370
	* src/base/ftobjs.c (FT_Set_Renderer): Increment `parameters'.
5371
 
5372
2010-12-09  Werner Lemberg  
5373
 
5374
	[cff] Allow `hlineto' and `vlineto' without arguments.
5375
 
5376
	We simply ignore such instructions.  This is invalid, but it doesn't
5377
	harm; and indeed, there exist such subsetted fonts in PDFs.
5378
 
5379
	Reported by Albert Astals Cid .
5380
 
5381
	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
5382
	[cff_op_hlineto]: Ignore instruction if there aren't any arguments
5383
	on the stack.
5384
 
5385
2010-11-28  Werner Lemberg  
5386
 
5387
	* Version 2.4.4 released.
5388
	=========================
5389
 
5390
 
5391
	Tag sources with `VER-2-4-4'.
5392
 
5393
	* docs/CHANGES: Updated.
5394
 
5395
	* docs/VERSION.DLL: Update documentation and bump version number to
5396
	2.4.4
5397
 
5398
	* README, Jamfile (RefDoc),
5399
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
5400
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
5401
	builds/win32/visualc/freetype.dsp,
5402
	builds/win32/visualc/freetype.vcproj,
5403
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
5404
	builds/win32/visualce/freetype.vcproj,
5405
	builds/win32/visualce/index.html,
5406
	builds/wince/vc2005-ce/freetype.vcproj,
5407
	builds/wince/vc2005-ce/index.html,
5408
	builds/wince/vc2008-ce/freetype.vcproj,
5409
	builds/wince/vc2008-ce/index.html: s/2.4.3/2.4.4/, s/243/244/.
5410
 
5411
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
5412
 
5413
	* builds/unix/configure.raw (version_info): Set to 12:2:6.
5414
 
5415
2010-11-28  Alexei Podtelezhnikov  
5416
 
5417
	[ftsmooth]: Minor code simplification.
5418
 
5419
	* src/smooth/ftgrays (gray_render_cubic): Do only one comparison
5420
	instead of two.
5421
 
5422
2010-11-26  Johnson Y. Yan  
5423
 
5424
	[truetype] Better multi-threading support.
5425
 
5426
	* src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone
5427
	references.
5428
 
5429
2010-11-23  John Tytgat  
5430
 
5431
	* src/psaux/t1decode.c (t1_decoder_parse_charstring): Expand
5432
	start_point, check_points, add_point, add_point1, close_contour
5433
	macros.
5434
	Remove add_contour macro.
5435
	Return error code from t1_builder_start_point and
5436
	t1_builder_check_points when there was one (instead of returning 0).
5437
 
5438
2010-11-22  suzuki toshiya  
5439
 
5440
	[truetype] Identify the tricky fonts by cvt/fpgm/prep checksums.
5441
	Some Latin TrueType fonts are still expected to be unhinted.
5442
	Fix Savannah bug #31645.
5443
 
5444
	* src/truetype/ttobjs.c (tt_check_trickyness): Divided to...
5445
	(tt_check_trickyness_family): this checking family name, and
5446
	(tt_check_trickyness_sfnt_ids): this checking cvt/fpgm/prep.
5447
	(tt_get_sfnt_checksum): Function to retrieve the sfnt checksum
5448
	for specified subtable even if cleared by lazy PDF generators.
5449
	(tt_synth_sfnt_checksum): Function to calculate the checksum.
5450
 
5451
2010-11-18  Werner Lemberg  
5452
 
5453
	[truetype] Fix `loca' handling for inconsistent number of glyphs.
5454
	Reported by Johnson Y. Yan .
5455
 
5456
	* src/truetype/ttpload.c (tt_face_load_loca): While sanitizing,
5457
	handle case where `loca' is the last table in the font.
5458
 
5459
2010-11-18  Werner Lemberg  
5460
 
5461
	[sfnt] Ignore all errors while loading `OS/2' table.
5462
	Suggested by Johnson Y. Yan .
5463
 
5464
	* src/sfnt/sfobjs.c (sfnt_load_face): Do it.
5465
 
5466
2010-11-18  Johnson Y. Yan  
5467
 
5468
	[type1] Fix matrix normalization.
5469
 
5470
	* src/type1/t1load.c (parse_font_matrix): Handle sign of scaling
5471
	factor.
5472
 
5473
2010-11-18  Werner Lemberg  
5474
 
5475
	[type1] Improve guard against malformed data.
5476
	Based on a patch submitted by Johnson Y. Yan
5477
	
5478
 
5479
	* src/type1/t1load.c (read_binary_data): Check `size'.
5480
 
5481
2010-11-17  Werner Lemberg  
5482
 
5483
	[sfnt] While tracing, output table checksums also.
5484
 
5485
	* src/sfnt/ttload.c (tt_face_load_font_dir): Do it.
5486
 
5487
2010-11-04  suzuki toshiya  
5488
 
5489
	[UVS] Fix `find_variant_selector_charmap', Savannah bug #31545.
5490
 
5491
	Since 2010-07-04, `find_variant_selector_charmap' returns
5492
	the first cmap subtable always under rogue-compatible
5493
	configuration, it causes NULL pointer dereference and
5494
	make UVS-related functions crashed.
5495
 
5496
	* src/base/ftobjs.c (Fix find_variant_selector_charmap):
5497
	Returns UVS cmap correctly.
5498
 
5499
2010-11-01  Alexei Podtelezhnikov  
5500
 
5501
	[ftsmooth] Improve rendering.
5502
 
5503
	* src/smooth/ftsmooth.c (gray_render_conic): Since version 2.4.3,
5504
	cubic deviations have been estimated _after_ UPSCALE, whereas
5505
	conic ones have been evaluated _before_ UPSCALE, which produces
5506
	inferior rendering results.  Fix this.
5507
	Partially undo change from 2010-10-15 by using ONE_PIXEL/4; this has
5508
	been tested with demo images sent to the mailing list.  See
5509
 
5510
	  http://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html
5511
 
5512
	and later mails in this thread.
5513
 
5514
2010-10-28  Werner Lemberg  
5515
 
5516
	[ftraster] Minor fixes.
5517
 
5518
	Reported by Tom Bishop .
5519
 
5520
	* src/raster/ftraster.c (ULong): Remove unused typedef.
5521
	(TWorker): Remove unused variable `precision_mask'.
5522
 
5523
2010-10-28  Werner Lemberg  
5524
 
5525
	[ftraster] Fix rendering.
5526
 
5527
	Problem reported by Tom Bishop ; see
5528
	thread starting with
5529
 
5530
	  http://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html
5531
 
5532
	* src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv
5533
	since the involved multiplication exceeds 32 bits.
5534
 
5535
2010-10-25  suzuki toshiya  
5536
 
5537
	Revert a change of `_idx' type in `FTC_CACHE_LOOKUP_CMP'.
5538
 
5539
	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Revert
5540
	the type of `_idx' from FT_PtrDist (by previous change)
5541
	to original FT_UFast, to match with FT_CacheRec.
5542
 
5543
2010-10-24  suzuki toshiya  
5544
 
5545
	[cache] Change the hash types to FT_PtrDist.
5546
 
5547
	On LLP64 platforms (e.g. Win64), FT_ULong (32-bit)
5548
	variables are inappropriate to calculate hash values
5549
	from the memory address (64-bit).  The hash variables
5550
	are extended from FT_ULong to FT_PtrDist and new
5551
	hashing macro functions are introduced.  The hash
5552
	values on 16-bit memory platforms are changed, but
5553
	ILP32 and LP64 are not changed.  The hash value in
5554
	the cache subsystem is not reverted to the memory
5555
	address, so using signed type FT_PtrDist is safe.
5556
 
5557
	* src/cache/ftccache.h (_FTC_FACE_ID_HASH): New hash
5558
	function to replace `FTC_FACE_ID_HASH' for portability.
5559
	* src/cache/ftcmanag.h (FTC_SCALER_HASH): Replace
5560
	`FTC_FACE_ID_HASH' by `_FTC_FACE_ID_HASH'.
5561
	* src/cache/ftccmap.c (FTC_CMAP_HASH): Ditto.
5562
 
5563
	* src/cache/ftccache.h (FTC_NodeRec): The type of the
5564
	member `hash' is changed from FT_UInt32 to FT_PtrDist.
5565
 
5566
	* src/cache/ftccache.h (FTC_Cache_Lookup): The type of the
5567
	argument `hash' is changed from FT_UInt32 to FT_PtrDist.
5568
	(FTC_Cache_NewNode): Ditto.
5569
	* src/cache/ftccache.c (ftc_cache_add): Ditto.
5570
	(FTC_Cache_Lookup): Ditto.  (FTC_Cache_NewNode): Ditto.
5571
	* src/cache/ftcglyph.h (FTC_GCache_Lookup): Ditto.
5572
	* src/cache/ftcglyph.c (FTC_GCache_Lookup): Ditto.
5573
 
5574
	* src/cache/ftcbasic.c (FTC_ImageCache_Lookup): The type
5575
	of the internal variable `hash' is changed to FT_PtrDist
5576
	from FT_UInt32.  (FTC_ImageCache_LookupScaler): Ditto.
5577
	(FTC_SBitCache_Lookup): Ditto.
5578
	(FTC_SBitCache_LookupScaler): Ditto.
5579
	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto.
5580
	* src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Ditto.
5581
	Also the type of the internal variable `_idx' is changed to
5582
	FT_PtrDist from FT_UFast for better pointer calculation.
5583
 
5584
2010-10-24  suzuki toshiya  
5585
 
5586
	[cache] Hide internal macros incompatible with LLP64.
5587
 
5588
	`FT_POINTER_TO_ULONG', `FTC_FACE_ID_HASH', and
5589
	`FTC_IMAGE_TYPE_HASH' are enclosed by
5590
	FT_CONFIG_OPTION_OLD_INTERNALS and hidden from
5591
	normal clients.
5592
 
5593
	For the history of these macros, see the investigation:
5594
	http://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html
5595
 
5596
2010-10-24  suzuki toshiya  
5597
 
5598
	Change the type of `FT_MEM_VAL' from FT_ULong to FT_PtrDist.
5599
 
5600
	On LLP64 platforms (e.g. Win64), unsigned long (32-bit)
5601
	cannot cover the memory address (64-bit).  `FT_MEM_VAL' is
5602
	used for hashing only and not dereferred, so using signed
5603
	type FT_PtrDist is safe.
5604
 
5605
	* src/base/ftdbgmem.c (FT_MEM_VAL): Change the type of the
5606
	return value from FT_ULong to FT_PtrDist.
5607
	(ft_mem_table_resize): The type of hash is changed to
5608
	FT_PtrDist.  (ft_mem_table_get_nodep): Ditto.
5609
 
5610
2010-10-24  suzuki toshiya  
5611
 
5612
	Replace "%lx" for memory address by "%p", LLP64 platforms.
5613
 
5614
	On LLP64 platforms (e.g. Win64), long (32-bit) cannot cover
5615
	the memory address (64-bit).  Also the casts from the pointer
5616
	type to long int should be removed to preserve the address
5617
	correctly.
5618
 
5619
	* src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p".
5620
	(End_Profile) Ditto.
5621
	* src/truetype/ttinterp.c (Init_Context): Ditto.
5622
 
5623
2010-10-15  Alexei Podtelezhnikov  
5624
 
5625
	Fix thinko in spline flattening.
5626
 
5627
	FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL.
5628
 
5629
	* src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and
5630
	replace it everywhere with ONE_PIXEL/8.
5631
 
5632
2010-10-13  suzuki toshiya  
5633
 
5634
	[raccess] Skip unrequired resource access rules by Darwin VFS.
5635
 
5636
	When a resource fork access rule by Darwin VFS could open the
5637
	resource fork but no font is found in it, the rest of rules
5638
	by Darwin VFS are skipped.  It reduces the warnings of the
5639
	deprecated resource fork access method by recent Darwin kernel.
5640
	Fix MacPorts ticket #18859:
5641
		http://trac.macports.org/ticket/18859
5642
 
5643
	* src/base/ftobjs.c (load_face_in_embedded_rfork):
5644
	When `FT_Stream_New' returns FT_Err_Cannot_Open_Stream, it
5645
	means that the file is possible to be `fopen'-ed but zero-sized.
5646
	Also there is a case that the resource fork is not zero-sized,
5647
	but no supported font exists in it.  If a rule by Darwin VFS
5648
	falls into such cases, there is no need to try other Darwin VFS
5649
	rules anymore.  Such cases are marked by vfs_rfork_has_no_font.
5650
	If it is TRUE, the Darwin VFS rules are skipped.
5651
 
5652
2010-10-13  suzuki toshiya  
5653
 
5654
	[raccess] Grouping resource access rules based on Darwin VFS.
5655
 
5656
	MacOS X/Darwin kernel supports a few tricky methods to access
5657
	a resource fork via ANSI C or POSIX interface.  Current resource
5658
	fork accessor tries all possible methods to support all kernels.
5659
	But if a method could open a resource fork but no font is found,
5660
	there is no need to try other methods older than tested method.
5661
	To determine whether the rule index is for Darwin VFS, a local
5662
	function `ftrfork.c::raccess_rule_by_darwin_vfs' is introduced.
5663
	To use this function in ftobjs.c etc but it should be inlined,
5664
	it is exposed by ftbase.h.
5665
 
5666
	* src/base/ftrfork.c (FT_RFork_Rule): New enum type to identify
5667
	the rules to access the resource fork.
5668
	(raccess_guess_rec): New structure to bind the rule function and
5669
	rule enum type.
5670
	(FT_Raccess_Guess): The list of the rule functions is replaced by
5671
	(raccess_guess_table): This.  This is exposed to be used by other
5672
	intra module functions.
5673
	(raccess_rule_by_darwin_vfs): A function to return a boolean
5674
	if the rule specified by the rule index is based on Darwin VFS.
5675
 
5676
2010-10-13  suzuki toshiya  
5677
 
5678
	Prevent to open a FT_Stream for zero-sized file on non-Unix.
5679
 
5680
	builds/unix/ftsystem.c prevents to open an useless stream from
5681
	zero-sized file and returns FT_Err_Cannot_Open_Stream, but the
5682
	stream drivers for ANSI C, Amiga and VMS return useless streams.
5683
	For cross-platform consistency, all stream drivers should act
5684
	same.
5685
 
5686
	* src/base/ftsystem.c (FT_Stream_Open): If the size of the opened
5687
	file is zero, FT_Err_Cannot_Open_Stream is returned.
5688
	* builds/amiga/src/base/ftsystem.c (FT_Stream_Open): Ditto.
5689
	* src/vms/ftsystem.c (FT_Stream_Open): Ditto.
5690
 
5691
2010-10-12  Werner Lemberg  
5692
 
5693
	[truetype] Fix Savannah bug #31310.
5694
 
5695
	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against
5696
	invalid `runcnt' values.
5697
 
5698
2010-10-08  Chris Liddell  
5699
 
5700
	[sfnt] Fix Savannah bug #31275.
5701
 
5702
	* src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H.
5703
 
5704
2010-10-06  Werner Lemberg  
5705
 
5706
	[truetype] Improve error handling of `SHZ' bytecode instruction.
5707
	Problem reported by Chris Evans .
5708
 
5709
	* src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'.
5710
 
5711
2010-10-05  Werner Lemberg  
5712
 
5713
	Fix Savannah bug #31253.
5714
	Patch submitted by an anonymous reporter.
5715
 
5716
	* configure: Use `awk' instead of `sed' to manipulate output of `ls
5717
	-id'.
5718
 
5719
2010-10-03  Werner Lemberg  
5720
 
5721
	* Version 2.4.3 released.
5722
	=========================
5723
 
5724
 
5725
	Tag sources with `VER-2-4-3'.
5726
 
5727
	* docs/CHANGES: Updated.
5728
 
5729
	* docs/VERSION.DLL: Update documentation and bump version number to
5730
	2.4.3
5731
 
5732
	* README, Jamfile (RefDoc),
5733
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
5734
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
5735
	builds/win32/visualc/freetype.dsp,
5736
	builds/win32/visualc/freetype.vcproj,
5737
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
5738
	builds/win32/visualce/freetype.vcproj,
5739
	builds/win32/visualce/index.html,
5740
	builds/wince/vc2005-ce/freetype.vcproj,
5741
	builds/wince/vc2005-ce/index.html,
5742
	builds/wince/vc2008-ce/freetype.vcproj,
5743
	builds/wince/vc2008-ce/index.html: s/2.4.2/2.4.3/, s/242/243/.
5744
 
5745
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
5746
 
5747
	* builds/unix/configure.raw (version_info): Set to 12:1:6.
5748
 
5749
2010-10-03  Werner Lemberg  
5750
 
5751
	Avoid `configure' issues with symbolic links.
5752
	Based on a patch from Alexander Stohr .
5753
 
5754
	* configure: Compare directories using `ls -id'.
5755
	Check existence of `reference' subdirectory before creating it.
5756
 
5757
2010-10-02  Werner Lemberg  
5758
 
5759
	[sfnt] Fix Savannah bug #31088 (sort of).
5760
 
5761
	* src/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64
5762
	function entries.
5763
 
5764
2010-10-02  Werner Lemberg  
5765
 
5766
	[smooth] Fix splitting of cubics for negative values.
5767
 
5768
	Reported by Róbert Márki ; see
5769
	http://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html.
5770
 
5771
	* src/smooth/ftgrays.c (gray_render_cubic): Fix thinko.
5772
 
5773
2010-10-01  suzuki toshiya  
5774
 
5775
	[truetype] Fix Savannah bug #31040.
5776
 
5777
	* src/truetype/ttinterp.c (free_buffer_in_size): Remove.
5778
	(TT_RunIns): Updated.
5779
 
5780
2010-09-20  suzuki toshiya  
5781
 
5782
	[sfnt] Make error message filling NULL names less verbose.
5783
 
5784
	* src/sfnt/ttpost.c (load_format_20): Showing 1 summary message
5785
	when we fill `post' names by NULL, instead of per-entry message.
5786
 
5787
2010-09-20  Graham Asher  
5788
	    David Bevan  
5789
 
5790
	[smooth] Fix and improve spline flattening.
5791
 
5792
	This fixes the flattening of cubic, S-shaped curves and speeds up
5793
	the handling of both the conic and cubic arcs.
5794
 
5795
	See the discussions on the freetype-devel mailing list in late
5796
	August and September 2010 for details.
5797
 
5798
	* src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): New macro.
5799
	(TWorker): Remove `conic_level' and `cubic_level' elements.
5800
	(gray_render_conic): Simplify algorithm.
5801
	(gray_render_cubic): New algorithm; details are given in the code
5802
	comments.
5803
	(gray_convert_glyph): Remove heuristics.
5804
 
5805
2010-09-19  Werner Lemberg  
5806
 
5807
	Minor fixes.
5808
 
5809
	* src/cff/cffload.c (cff_charset_compute_cids): `charset->sids[i]'
5810
	is `FT_UShort'.
5811
	(cff_index_access_element): Don't use additions in comparison.
5812
	* src/sfnt/ttpost.c (load_format_20): Make `post_limit' of type
5813
	`FT_Long'.
5814
	Don't use additions in comparison.
5815
	Improve tracing messages.
5816
	(load_format_25, load_post_names): Make `post_limit' of type
5817
	`FT_Long'.
5818
 
5819
2010-09-19  suzuki toshiya  
5820
 
5821
	[cff] Truncate the element length at the end of the stream.
5822
	See Savannah bug #30975.
5823
 
5824
	* src/cff/cffload.c (cff_index_access_element): `off2', the offset
5825
	to the next element is truncated at the end of the stream to prevent
5826
	invalid I/O.  As `off1', the offset to the requested element has
5827
	been checked by `FT_STREAM_SEEK', `off2' should be checked
5828
	similarly.
5829
 
5830
2010-09-19  suzuki toshiya  
5831
 
5832
	[cff] Ignore CID > 0xFFFFU.
5833
	See Savannah bug #30975.
5834
 
5835
	* src/cff/cffload.c (cff_charset_compute_cids): Ignore CID if
5836
	greater than 0xFFFFU.  CFF font spec does not mention maximum CID in
5837
	the font, but PostScript and PDF spec define that maximum CID is
5838
	0xFFFFU.
5839
 
5840
2010-09-19  suzuki toshiya  
5841
 
5842
	[cff] Make trace message in` cff_charset_load' verbose.
5843
	See Savannah bug #30975.
5844
 
5845
	* src/cff/cffload.c (cff_charset_load): Report the original `nleft'
5846
	and truncated `nleft'.
5847
 
5848
2010-09-19  suzuki toshiya  
5849
 
5850
	[cff] Correct `max_cid' from CID array length to max CID.
5851
	See Savannah bug #30975.
5852
 
5853
	* src/cff/cffload.c (cff_charset_compute_cids): Don't increment
5854
	max_cid after detecting max CID.  The array CFF_Charset->cids is
5855
	allocated by max_cid + 1.
5856
	(cff_charset_cid_to_gindex): Permit CID is less than or equal to
5857
	CFF_Charset->max_cid.
5858
	* src/cff/cffobjs.c (cff_face_init): FT_Face->num_glyphs is
5859
	calculated as CFF_Charset->max_cid + 1.
5860
 
5861
2010-09-19  suzuki toshiya  
5862
 
5863
	[truetype] Sanitize the broken offsets in `loca'.
5864
	See Savannah bug #31040.
5865
 
5866
	* src/truetype/ttpload.c (tt_face_get_location): If `pos1', the
5867
	offset to the requested entry in `glyf' exceeds the end of the
5868
	table, return offset=0, length=0.  If `pos2', the offset to the next
5869
	entry in `glyf' exceeds the end of the table, truncate the entry
5870
	length at the end of `glyf' table.
5871
 
5872
2010-09-19  suzuki toshiya  
5873
 
5874
	[sfnt] Prevent overrunning in `post' table parser.
5875
	See Savannah bug #31040.
5876
 
5877
	* src/sfnt/ttpost.c (load_post_names): Get the length of `post'
5878
	table and pass the limit of `post' table to `load_format_20' and
5879
	`load_format_25'.
5880
	(load_format_20): Stop the parsing when we reached at the limit of
5881
	`post' table.  If more glyph names are required, they are filled by
5882
	NULL names.
5883
 
5884
2010-09-17  suzuki toshiya  
5885
 
5886
	[truetype] Don't duplicate size->twilight structure to be freed.
5887
	See Savannah bug #31040 for detail.
5888
 
5889
	* src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate
5890
	FT_GlyphZoneRec size->twilight to be freed.  If duplicated,
5891
	`FT_FREE' erases the duplicated pointers only and leave original
5892
	pointers.  They can cause the double-free crash when the burst
5893
	errors occur in TrueType interpreter and `free_buffer_in_size' is
5894
	invoked repeatedly.
5895
 
5896
2010-09-15  Werner Lemberg  
5897
 
5898
	Make bytecode debugging with FontForge work again.
5899
 
5900
	* src/truetype/ttinterp.c (TT_RunIns): Don't call
5901
	`free_buffer_in_size' in case of error if a debugger is active.
5902
 
5903
2010-09-14  Werner Lemberg  
5904
 
5905
	Improve tracing messages.
5906
 
5907
	* src/truetype/ttinterp.c (TT_RunIns): Improve wording of tracing
5908
	message.
5909
	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Add
5910
	tracing message.
5911
	* src/truetype/ttgload.c (tt_loader_init): Add tracing message.
5912
	* src/cache/ftcsbits.c (ftc_snode_load): Emit tracing message if
5913
	glyph doesn't fit into a small bitmap container.
5914
 
5915
2010-09-13  Werner Lemberg  
5916
 
5917
	Fix minor issues reported by .
5918
 
5919
	* src/autofit/aflatin.c (af_latin_compute_stem_width): Remove
5920
	redundant conditional check.
5921
	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Ditto.
5922
	* src/cff/cffload.c (cff_encoding_load): Remove conditional check
5923
	which always evaluates to `true'.
5924
	* src/pshinter/pshalgo.c (ps_glyph_interpolate_strong_points):
5925
	Ditto.
5926
	* src/truetype/ttinterp.c (Ins_IUP): Ditto.
5927
	* src/cid/cidgload.c (cid_slot_load_glyph): Don't check for NULL if
5928
	value is already dereferenced.
5929
	* src/winfonts/winfnt.c (FNT_Load_Glyph): Fix check of `face'.
5930
 
5931
2010-08-31  suzuki toshiya  
5932
 
5933
	Ignore the environmental setting of LIBTOOL.
5934
	Patch is suggested by Adrian Bunk, to prevent unexpected
5935
	reflection of environmental LIBTOOL.  See:
5936
	http://savannah.nongnu.org/patch/?7290
5937
 
5938
	* builds/unix/unix-cc.in: LIBTOOL is unconditionally set to
5939
	$(FT_LIBTOOL_DIR)/libtool.  FT_LIBTOOL_DIR is set to $(BUILD_DIR)
5940
	by default.
5941
	* configure: When configured for the building out of source tee,
5942
	FT_LIBTOOL_DIR is set to $(OBJ_DIR).
5943
 
5944
2010-08-31  suzuki toshiya  
5945
 
5946
	[truetype] Decrease the trace level catching the interpreter error.
5947
 
5948
	* src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level
5949
	showing the error when the interpreter returns with an error,
5950
	from` FT_TRACE7' to `FT_TRACE1'.
5951
 
5952
2010-08-30  suzuki toshiya  
5953
 
5954
	[truetype] Prevent bytecode reuse after the interpretation error.
5955
 
5956
	* src/truetype/ttinterp.c (free_buffer_in_size): New function to
5957
	free the buffer allocated during the interpretation of this glyph.
5958
	(TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if
5959
	an error occurs in the bytecode interpretation.  The interpretation
5960
	of invalid bytecode may break the function definitions and referring
5961
	them in later interpretation is danger.  By unsetting these flags,
5962
	`fpgm' and `prep' tables are executed again in next interpretation.
5963
 
5964
	This fixes Savannah bug #30798, reported by Robert Święcki.
5965
 
5966
2010-08-29  Werner Lemberg  
5967
 
5968
	[ftraster] Pacify compiler.
5969
 
5970
	* src/raster/ftraster.c (ft_black_new) [_STANDALONE_]: `memory' is
5971
	not used.
5972
 
5973
2010-08-29  Werner Lemberg  
5974
 
5975
	[cff] Allow SIDs >= 65000.
5976
 
5977
	* src/cff/cffload.c (cff_charset_load): Fix change from 2009-03-20:
5978
	The threshold for SIDs is not applicable here.  I misinterpreted the
5979
	`SID values 65000 and above are available for implementation use'
5980
	sentence in the CFF specification.
5981
 
5982
	Problem reported by Ivan Ninčić .
5983
 
5984
2010-08-28  suzuki toshiya  
5985
 
5986
	Force hinting when the font lacks its familyname.
5987
 
5988
	In Type42 or Type11 font embedded in PostScript & PDF, TrueType sfnt
5989
	stream may lack `name' table because they are not required.  Hinting
5990
	for nameless fonts is safer for PDFs including embedded Chinese
5991
	fonts.  Written by David Bevan, see:
5992
 
5993
	http://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html
5994
	http://lists.freedesktop.org/archives/poppler/2010-August/006310.html
5995
 
5996
	* src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by
5997
	nameless font is given, TRUE is returned to enable hinting.
5998
 
5999
2010-08-28  suzuki toshiya  
6000
 
6001
	Register yet another tricky TrueType font.
6002
 
6003
	* src/truetype/ttobjs.c (tt_check_trickyness): Add `HuaTianKaiTi?',
6004
	a Kaishu typeface paired with `HuaTianSongTi?' by Huatian
6005
	Information Industry.
6006
 
6007
2010-08-17  Teijo Kinnunen 
6008
 
6009
	[cache] Fix Savannah bug #30788.
6010
 
6011
	* src/cache/ftccache.c (FTC_Cache_Clear): Check `cache->buckets' for
6012
	NULL too.
6013
 
6014
2010-08-10  Werner Lemberg  
6015
 
6016
	Try to fix Savannah bug #30717 (and probably #30719 too).
6017
 
6018
	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another
6019
	overflow test for `width' and `height'.
6020
 
6021
2010-08-06  Werner Lemberg  
6022
 
6023
	* Version 2.4.2 released.
6024
	=========================
6025
 
6026
 
6027
	Tag sources with `VER-2-4-2'.
6028
 
6029
	* docs/CHANGES: Updated.
6030
 
6031
	* docs/VERSION.DLL: Update documentation and bump version number to
6032
	2.4.2
6033
 
6034
	* README, Jamfile (RefDoc),
6035
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
6036
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
6037
	builds/win32/visualc/freetype.dsp,
6038
	builds/win32/visualc/freetype.vcproj,
6039
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
6040
	builds/win32/visualce/freetype.vcproj,
6041
	builds/win32/visualce/index.html,
6042
	builds/wince/vc2005-ce/freetype.vcproj,
6043
	builds/wince/vc2005-ce/index.html,
6044
	builds/wince/vc2008-ce/freetype.vcproj,
6045
	builds/wince/vc2008-ce/index.html: s/2.4.1/2.4.2/, s/241/242/.
6046
 
6047
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
6048
 
6049
	* builds/unix/configure.raw (version_info): Set to 12:0:6.
6050
 
6051
2010-08-06  suzuki toshiya  
6052
 
6053
	Fix Savannah bug #30648.
6054
 
6055
	* src/base/ftobjs.c (FT_Done_Library): Specify the order of font
6056
	drivers during the face closing process.  Type42 faces should be
6057
	closed before TrueType faces, because a Type42 face refers to
6058
	another internal TrueType face which is created from sfnt[] array on
6059
	the memory.
6060
 
6061
2010-08-06  Yuriy Kaminskiy  
6062
 
6063
	[raster] Fix valgrind warning.
6064
 
6065
	* src/raster/ftraster.c (Decompose_Curve) : Access point[0]
6066
	only if we don't hit `limit'.
6067
 
6068
2010-08-06  suzuki toshiya  
6069
 
6070
	Fix Savannah bug #30658.
6071
 
6072
	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check that the total
6073
	length of collected POST segments does not overrun the allocated
6074
	buffer.
6075
 
6076
2010-08-06  Yuriy Kaminskiy  
6077
 
6078
	Fix conditional usage of FT_MulFix_i386.
6079
	With -ansi flag, gcc does not define `i386', only `__i386__'.
6080
 
6081
	* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in:
6082
	s/i386/__i386__/.
6083
 
6084
2010-08-05  Werner Lemberg  
6085
 
6086
	[truetype] Fix Savannah bug #30657.
6087
 
6088
	* src/truetype/ttinterp.c (BOUNDSL): New macro.
6089
	Change `BOUNDS' to `BOUNDSL' where appropriate.
6090
 
6091
	* src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of
6092
	`cvtSize'.
6093
 
6094
2010-08-05  Werner Lemberg  
6095
 
6096
	[type42] Fix Savannah bug #30656.
6097
 
6098
	* src/type42/t42parse.c (t42_parse_sfnts): Protect against negative
6099
	string_size.
6100
	Fix comparison.
6101
 
6102
2010-08-05  suzuki toshiya  
6103
 
6104
	[cff] Don't use any values in decoder after parsing error.
6105
 
6106
	* src/cff/cffgload.c (cff_slot_load): Skip the evaluations
6107
	of the values in decoder, if `cff_decoder_parse_charstrings'
6108
	returns any error.
6109
 
6110
2010-08-04  Werner Lemberg  
6111
 
6112
	Fix Savannah bug #30644.
6113
 
6114
	* src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison.
6115
 
6116
2010-08-04  Werner Lemberg  
6117
 
6118
	`make devel' fails if FT_CONFIG_OPTION_OLD_INTERNALS is set.
6119
 
6120
	* devel/ftoption.h: Synchronize with
6121
	include/freetype/config/ftoption.h.
6122
 
6123
2010-08-04  suzuki toshiya  
6124
 
6125
	[cff] Improve stack overflow test.
6126
 
6127
	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Check stack
6128
	after execution of operations too.
6129
 
6130
2010-07-18  Werner Lemberg  
6131
 
6132
	Add reference counters and to FT_Library and FT_Face objects.
6133
 
6134
	* include/freetype/freetype.h (FT_Reference_Face): New function.
6135
	* include/freetype/ftmodapi.h (FT_Rererence_Library): New function.
6136
 
6137
	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec,
6138
	FT_LibraryRec): New field `refcount'.
6139
 
6140
	* src/base/ftobjs.c (FT_Open_Face, FT_New_Library): Handle
6141
	`refcount'.
6142
	(FT_Reference_Face, FT_Reference_Library): Implement new functions.
6143
	(FT_Done_Face, FT_Done_Library): Handle `refcount'.
6144
 
6145
	* docs/CHANGES: Updated.
6146
 
6147
2010-07-18  Werner Lemberg  
6148
 
6149
	* Version 2.4.1 released.
6150
	=========================
6151
 
6152
 
6153
	Tag sources with `VER-2-4-1'.
6154
 
6155
	* docs/CHANGES: Updated.
6156
 
6157
	* docs/VERSION.DLL: Update documentation and bump version number to
6158
	2.4.1.
6159
 
6160
	* README, Jamfile (RefDoc),
6161
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
6162
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
6163
	builds/win32/visualc/freetype.dsp,
6164
	builds/win32/visualc/freetype.vcproj,
6165
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
6166
	builds/win32/visualce/freetype.vcproj,
6167
	builds/win32/visualce/index.html,
6168
	builds/wince/vc2005-ce/freetype.vcproj,
6169
	builds/wince/vc2005-ce/index.html,
6170
	builds/wince/vc2008-ce/freetype.vcproj,
6171
	builds/wince/vc2008-ce/index.html: s/2.4.0/2.4.1/, s/240/241/.
6172
 
6173
	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
6174
 
6175
	* builds/unix/configure.raw (version_info): Set to 11:1:5.
6176
 
6177
2010-07-17  Werner Lemberg  
6178
 
6179
	[cff] Final try to fix `hintmask' and `cntrmask' limit check.
6180
 
6181
	Problem reported by Tobias Wolf .
6182
 
6183
	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
6184
	: Sigh.  I'm apparently too silly to fix this
6185
	correctly in less than three tries.
6186
 
6187
2010-07-12  Werner Lemberg  
6188
 
6189
	* Version 2.4.0 released.
6190
	=========================
6191
 
6192
 
6193
	Tag sources with `VER-2-4-0'.
6194
 
6195
	* docs/CHANGES: Updated.
6196
 
6197
	* docs/VERSION.DLL: Update documentation and bump version number to
6198
	2.4.0.
6199
 
6200
	* README, Jamfile (RefDoc),
6201
	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
6202
	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
6203
	builds/win32/visualc/freetype.dsp,
6204
	builds/win32/visualc/freetype.vcproj,
6205
	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
6206
	builds/win32/visualce/freetype.vcproj,
6207
	builds/win32/visualce/index.html,
6208
	builds/wince/vc2005-ce/freetype.vcproj,
6209
	builds/wince/vc2005-ce/index.html,
6210
	builds/wince/vc2008-ce/freetype.vcproj,
6211
	builds/wince/vc2008-ce/index.html: s/2.3.12/2.4.0/, s/2312/240/.
6212
 
6213
	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 4.
6214
	(FREETYPE_PATCH): Set to 0.
6215
 
6216
	* builds/unix/configure.raw (version_info): Set to 11:0:5.
6217
 
6218
2010-07-12  Werner Lemberg  
6219
 
6220
	Remove C++ warnings.
6221
 
6222
	*/*: Initialize pointers where necessary to make g++ happy.
6223
 
6224
2010-07-12  malc  
6225
	    Richard Henderson  
6226
 
6227
	Fix type-punning issues with C++.
6228
 
6229
	* include/freetype/internal/ftmemory.h (FT_ASSIGNP) [__cplusplus]:
6230
	Emulate a `typeof' operator with an inline template which uses
6231
	`static_cast'.
6232
 
6233
2010-07-11  Werner Lemberg  
6234
 
6235
	Fix C++ compilation issue.
6236
 
6237
	* src/tools/apinames.c (names_dump) : Fix
6238
	type of `dot' variable.
6239
 
6240
2010-07-10  suzuki toshiya  
6241
 
6242
	Fix another case reported in Savannah bug #30373.
6243
	Permit a face for Type1, Type42 and CFF without charmap,
6244
	patch by Tor Andersson.
6245
 
6246
	* src/type1/t1objs.c (T1_Face_Init): Reset the error if it
6247
	is FT_Err_No_Unicode_Glyph_Name.
6248
	* src/type42/t42objs.c (T42_Face_Init): Ditto.
6249
	* src/cff/cffobjs.c (cff_face_init): Ditto.
6250
 
6251
2010-07-09  suzuki toshiya  
6252
 
6253
	Use defined macros to set {platform,encoding}_id.
6254
 
6255
	* src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to
6256
	set charmap.{platfom,encoding}_id.
6257
	* src/pcf/pcfdrivr.c: Ditto.
6258
	* src/winfonts/winfnt.c: Ditto.
6259
	* src/type1/t1objs.c: Ditto.
6260
	* src/type42/t42objs.c: Ditto.
6261
	* src/cff/cffobjs.c: Ditto.
6262
	* src/pfr/pfrobjs.c: Ditto.
6263
 
6264
2010-07-09  suzuki toshiya  
6265
 
6266
	Fix Savannah bug #30373.
6267
	Too serious check of errors by `FT_CMap_New' since 2010-07-04
6268
	is fixed. Reported by Tor Andersson.
6269
 
6270
	* include/freetype/fterrdef.h
6271
	(PSnames_Err_No_Unicode_Glyph_Name): New error code to
6272
	indicate the Unicode charmap synthesis failed because
6273
	no Unicode glyph name is found.
6274
 
6275
	* src/psnames/psmodule.c (ps_unicodes_init): Return
6276
	PSnames_Err_No_Unicode_Glyph_Name when no Unicode glyph name
6277
	is found in the font.
6278
	* src/cff/cffcmap.c (cff_cmap_unicode_init): Return
6279
	CFF_Err_No_Unicode_Glyph_Name when no SID is available.
6280
 
6281
	* src/type1/t1objs.c (T1_Face_Init): Proceed if `FT_CMap_New'
6282
	is failed by the lack of Unicode glyph name.
6283
	* src/type42/t42objs.c (T42_Face_Init): Ditto.
6284
	* src/cff/cffobjs.c (cff_face_init): Ditto.
6285
 
6286
2010-07-09  Ken Sharp  
6287
 
6288
	Make ftraster.c compile in stand-alone mode with MSVC compiler.
6289
 
6290
	* src/raster/ftmisc.h (FT_Int64) [_WIN32, _WIN64]: Fix typedef
6291
	since there is no `inttypes.h' for MSVC.
6292
 
6293
2010-07-08  Werner Lemberg  
6294
 
6295
	[truetype] Fix Savannah bug #30361.
6296
 
6297
	* src/truetype/ttinterp.c (Ins_IUP): Fix bounds check.
6298
 
6299
2010-07-06  Werner Lemberg  
6300
 
6301
	Pacify compiler.
6302
 
6303
	* src/cff/cffload.c (cff_index_get_pointers): Initialize
6304
	`new_bytes'.
6305
 
6306
2010-07-05  Eugene A. Shatokhin  
6307
 
6308
	Fix Savannah bug #27648.
6309
 
6310
	* src/base/ftobjs.c (ft_remove_renderer, FT_Add_Module): Call
6311
	`raster_done' only if we have an outline glyph format.
6312
 
6313
2010-07-05  Werner Lemberg  
6314
 
6315
	Fix Savannah bug #30030.
6316
 
6317
	* builds/win32/*/freetype.vcproj: Add ftxf86.c.
6318
 
6319
2010-07-05  Werner Lemberg  
6320
 
6321
	[cff] Next try to fix `hintmask' and `cntrmask' limit check.
6322
 
6323
	Problem reported by malc .
6324
 
6325
	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
6326
	: It is possible that there is just a single byte
6327
	after the `hintmask' or `cntrmask', e.g., a `return' instruction.
6328
 
6329
2010-07-04  suzuki toshiya  
6330
 
6331
	Restrict the number of the charmaps in a rogue-compatible mode.
6332
	Fix for Savannah bug #30059.
6333
 
6334
	* src/cache/ftccmap.c (FTC_CMapCache_Lookup): Replace `16' the
6335
	minimum character code passed by a legacy rogue client by...
6336
	* include/freetype/config/ftoption.h (FT_MAX_CHARMAP_CACHEABLE):
6337
	This.  It is undefined when FT_CONFIG_OPTION_OLD_INTERNALS is
6338
	undefined (thus the rogue client compatibility is not required).
6339
 
6340
	* src/cff/cffobjs.c (cff_face_init): Abort the automatic
6341
	selection or synthesis of Unicode cmap subtable when the charmap
6342
	index exceeds FT_MAX_CHARMAP_CACHEABLE.
6343
	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Issue error message
6344
	when the charmap index exceeds FT_MAX_CHARMAP_CACHEABLE.
6345
 
6346
	* src/base/ftobjs.c (find_unicode_charmap): When Unicode charmap
6347
	is found after FT_MAX_CHARMAP_CACHEABLE, ignore it and search
6348
	earlier one.
6349
	(find_variant_selector_charmap): When UVS charmap is found after
6350
	FT_MAX_CHARMAP_CACHEABLE, ignore it and search earlier one.
6351
	(FT_Select_Charmap): When a charmap matching with requested
6352
	encoding but after FT_MAX_CHARMAP_CACHEABLE, ignore and search
6353
	earlier one.
6354
	(FT_Set_Charmap): When a charmap matching with requested
6355
	charmap but after FT_MAX_CHARMAP_CACHEABLE, ignore and search
6356
	earlier one.
6357
	(FT_Get_Charmap_Index): When a requested charmap is found
6358
	after FT_MAX_CHARMAP_CACHEABLE, return the inverted charmap
6359
	index.
6360
 
6361
2010-07-04  Werner Lemberg  
6362
 
6363
	TrueType hinting is no longer patented.
6364
 
6365
	* include/freetype/config/ftoption.h, devel/ftoption.h
6366
	(TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define.
6367
	(TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine.
6368
 
6369
	* docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated.
6370
	* docs/TRUETYPE, docs/PATENTS: Removed.
6371
 
6372
2010-07-04  suzuki toshiya  
6373
 
6374
	Check error value by `FT_CMap_New'.
6375
 
6376
	* src/cff/cffobjs.c (cff_face_init): Check error value by
6377
	`FT_CMap_New'.
6378
	* src/pfr/pfrobjs.c (pfr_face_init): Ditto.
6379
	* src/type1/t1jobjs.c (T1_Face_Init): Ditto.
6380
	* src/type42/t42jobjs.c (T42_Face_Init): Ditto.
6381
 
6382
2010-07-03  Werner Lemberg  
6383
 
6384
	Make ftgrays.c compile stand-alone again.
6385
 
6386
	* src/smooth/ftgrays.c [_STANDALONE_]: Include `stddef.h'.
6387
	(FT_INT_MAX, FT_PtrDist)[_STANDALONE_]: Define.
6388
 
6389
2010-07-02  suzuki toshiya  
6390
 
6391
	Additional fix for Savannah bug #30306.
6392
 
6393
	* src/base/ftobjs.c (Mac_Read_POST_Resource): If the type of the
6394
	POST fragment is 0, the segment is completely ignored.  The declared
6395
	length of the segment is not cared at all.  According to Adobe
6396
	Technical Note 5040, type 0 segment is a comment only and should not
6397
	be loaded for the interpreter.  Reported by Robert Święcki.
6398
 
6399
2010-07-01  Werner Lemberg  
6400
 
6401
	[truetype] Protect against code range underflow.
6402
 
6403
	* src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow
6404
	negative IP values.
6405
 
6406
2010-07-01  Werner Lemberg  
6407
 
6408
	[truetype] Add rudimentary tracing for bytecode instructions.
6409
 
6410
	* src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New
6411
	array.
6412
	(TT_RunIns): Trace opcodes.
6413
 
6414
2010-06-30  Werner Lemberg  
6415
 
6416
	[smooth] Fix Savannah bug #30263.
6417
 
6418
	* src/smooth/ftgrays.c (gray_render_span): Use cast to `unsigned
6419
	int' to avoid integer overflow.
6420
 
6421
	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Use smaller
6422
	threshold values for `width' and `height'.  This is not directly
6423
	related to the bug fix but makes sense anyway.
6424
 
6425
2010-07-01  suzuki toshiya  
6426
 
6427
	Initial fix for Savannah bug #30306.
6428
 
6429
	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check `rlen', the
6430
	length of fragment declared in the POST fragment header, and prevent
6431
	an underflow in length calculation.  Some fonts set the length to
6432
	zero in spite of the existence of a following 16bit `type'.
6433
	Reported by Robert Święcki.
6434
 
6435
2010-07-01  suzuki toshiya  
6436
 
6437
	Additional fix for Savannah bug #30248 and #30249.
6438
 
6439
	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check the buffer size
6440
	during gathering PFB fragments embedded in LaserWriter PS font for
6441
	Macintosh.  Reported by Robert Święcki.
6442
 
6443
2010-06-30  Alexei Podtelezhnikov  
6444
 
6445
	Minor optimizations by avoiding divisions.
6446
 
6447
	* src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning):
6448
	Replace divisions with multiplication in comparisons.
6449
 
6450
2010-06-29  Werner Lemberg  
6451
 
6452
	Fix minor tracing issues.
6453
 
6454
	* src/cff/cffgload.c, src/truetype/ttgload.c: Adjust tracing levels.
6455
 
6456
2010-06-27  Werner Lemberg  
6457
 
6458
	[cff] Really fix `hintmask' and `cntrmask' limit check.
6459
 
6460
	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
6461
	: Fix thinko and handle tracing also.
6462
 
6463
2010-06-27  Werner Lemberg  
6464
 
6465
	Fix valgrind warning.
6466
 
6467
	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Initialize
6468
	`result' array.
6469
 
6470
2010-06-27  Werner Lemberg  
6471
 
6472
	[cff] Fix memory leak.
6473
 
6474
	* src/cff/cffgload.c (cff_operator_seac): Free charstrings even in
6475
	case of errors.
6476
 
6477
2010-06-27  Werner Lemberg  
6478
 
6479
	[cff] Protect against invalid `hintmask' and `cntrmask' operators.
6480
 
6481
	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
6482
	: Ensure that we don't exceed `limit' while parsing
6483
	the bit masks of the `hintmask' and `cntrmask' operators.
6484
 
6485
2010-06-26  Werner Lemberg  
6486
 
6487
	Fix PFR change 2010-06-24.
6488
 
6489
	* src/pfr/pfrgload.c (pfr_glyph_load_simple): Really protect against
6490
	invalid indices.
6491
 
6492
2010-06-26  Werner Lemberg  
6493
 
6494
	Improve PFR tracing messages.
6495
 
6496
	* src/pfr/pfrgload.c (pfr_glyph_load_rec): Emit tracing messages for
6497
	simple and compound glyph offsets.
6498
 
6499
2010-06-26  Werner Lemberg  
6500
 
6501
	Fix last PFR change.
6502
 
6503
	* src/pfr/pfrobjs.c (pfr_face_init): Fix rejection logic.
6504
 
6505
2010-06-26  Werner Lemberg  
6506
 
6507
	[sfnt] Fix Savannah bug #30262.
6508
 
6509
	* src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth'
6510
	arbitrarily to 100 to avoid stack exhaustion.
6511
 
6512
2010-06-26  Werner Lemberg  
6513
 
6514
	Add some memory checks (mainly for debugging).
6515
 
6516
	* src/base/ftstream.c (FT_Stream_EnterFrame): Exit with error
6517
	if the frame size is larger than the stream size.
6518
 
6519
	* src/base/ftsystem.c (ft_ansi_stream_io): Exit with error if
6520
	seeking a position larger than the stream size.
6521
 
6522
2010-06-25  Werner Lemberg  
6523
 
6524
	[pfr] Fix Savannah bug #30261.
6525
 
6526
	* src/pfr/pfrobjs.c (pfr_face_init): Reject fonts which contain
6527
	neither outline nor bitmap glyphs.
6528
 
6529
2010-06-25  Werner Lemberg  
6530
 
6531
	[cff] Fix Savannah bug #30254.
6532
 
6533
	* src/cff/cffload.c (cff_index_get_pointers): Do sanity check for
6534
	first offset also.
6535
 
6536
2010-06-25  suzuki toshiya  
6537
 
6538
	Initial fix for Savannah bug #30248 and #30249.
6539
 
6540
	* src/base/ftobjs.c (Mac_Read_POST_Resource): Check the error during
6541
	reading a PFB fragment embedded in LaserWriter PS font for Macintosh.
6542
	Reported by Robert Święcki.
6543
 
6544
2010-06-24  Werner Lemberg  
6545
 
6546
	[pcf] Fix Savannah bug #30247.
6547
 
6548
	* src/pcf/pcfread.c (pcf_get_metrics): Disallow (invalid) fonts with
6549
	zero metrics.
6550
 
6551
2010-06-24  Graham Asher  
6552
 
6553
	* src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm.
6554
	The previous version was too aggressive, as demonstrated in
6555
	http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html.
6556
 
6557
2010-06-24  Werner Lemberg  
6558
 
6559
	*/*: Use module specific error names where appropriate.
6560
 
6561
2010-06-24  Werner Lemberg  
6562
 
6563
	[sfnt] Fix Savannah bug #30236.
6564
 
6565
	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Improve check for pointer
6566
	to `cmap_table'.
6567
 
6568
2010-06-24  Werner Lemberg  
6569
 
6570
	[pfr] Fix Savannah bug #30235.
6571
 
6572
	* src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against
6573
	invalid indices if there aren't any coordinates for indexing.
6574
 
6575
2010-06-24  Werner Lemberg  
6576
 
6577
	[bdf]: Font properties are optional.
6578
 
6579
	* src/bdf/bdflib.c (_bdf_readstream): Use special error code to
6580
	indicate a redo operation.
6581
	(_bdf_parse_start): Handle `CHARS' keyword here too and pass current
6582
	input line to `_bdf_parse_glyph'.
6583
 
6584
2010-06-23  Werner Lemberg  
6585
 
6586
	[bdf] Fix Savannah bug #30220.
6587
 
6588
	* include/freetype/fterrdef.h
6589
	(BDF_Err_Missing_Fontboundingbox_Field): New error code.
6590
 
6591
	* src/bdf/bdflib.c (_bdf_parse_start): Check for missing
6592
	`FONTBOUNDINGBOX' field.
6593
	Avoid memory leak if there are multiple `FONT' lines (which is
6594
	invalid but doesn't hurt).
6595
 
6596
2010-06-21  Werner Lemberg  
6597
 
6598
	[pfr] Fix Savannah bug #30168.
6599
 
6600
	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Limit the number of
6601
	subglyphs to avoid endless recursion.
6602
 
6603
2010-06-20  Werner Lemberg  
6604
 
6605
	[psaux] Fix Savannah bug #30145.
6606
 
6607
	* src/psaux/psobjs.c (t1_builder_add_contour): Protect against
6608
	`outline == NULL' which might happen in invalid fonts.
6609
 
6610
2010-06-19  Werner Lemberg  
6611
 
6612
	[bdf] Fix Savannah bug #30135.
6613
 
6614
	* src/bdf/bdflib.c (_bdf_list_join): Don't modify value in static
6615
	string `empty'.
6616
	(_bdf_parse_glyph): Avoid memory leak in case of error.
6617
 
6618
2010-06-15  Werner Lemberg  
6619
 
6620
	[autofit] Fix Savannah bug #30108.
6621
 
6622
	* src/autofit/afglobal.c (af_face_globals_compute_script_coverage):
6623
	Properly mask AF_DIGIT bit in comparison.
6624
 
6625
2010-06-11  Werner Lemberg  
6626
 
6627
	[pshinter] Fix Savannah bug #30106.
6628
 
6629
	Point numbers for FreeType's implementation of hinting masks are
6630
	collected before the final number of points of a glyph has been
6631
	determined; in particular, the code for handling the `endchar'
6632
	opcode can reduce the number of points.
6633
 
6634
	* src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Assure that
6635
	`end_point' is not larger than `glyph->num_points'.
6636
 
6637
2010-06-11  Werner Lemberg  
6638
 
6639
	[cff]: Improve debugging output.
6640
 
6641
	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
6642
	: Implement it.
6643
 
6644
2010-06-10  Graham Asher  
6645
 
6646
	ftgrays: Speed up rendering of small cubic splines.
6647
 
6648
	* src/smooth/ftgrays.c (gray_render_cubic): Implement new,
6649
	simplified algorithm to find out whether the spline can be replaced
6650
	with two straight lines.  See this thread for more:
6651
 
6652
	  http://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html
6653
 
6654
2010-06-09  Werner Lemberg  
6655
 
6656
	[cff] Fix Savannah bug #30082.
6657
 
6658
	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
6659
	: Protect against stack underflow.
6660
 
6661
2010-06-08  Werner Lemberg  
6662
 
6663
	[cff] Fix Savannah bug #30053.
6664
 
6665
	* src/cff/cffparse.c (cff_parse_real): Handle border case where
6666
	`fraction_length' has value 10.
6667
 
6668
2010-06-07  Werner Lemberg  
6669
 
6670
	Fix Savannah bug #30052.
6671
	This bug has been introduced with commit 2415cbf3.
6672
 
6673
	* src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect
6674
	against endless loop in case of corrupted font header data.
6675
 
6676
2010-05-26  Werner Lemberg  
6677
 
6678
	Remove unused variable.
6679
	Found by Graham.
6680
 
6681
	* src/autofit/afhints.c (af_glyph_hints_reload): Remove unused
6682
	variable `first' in first block.
6683
 
6684
2010-05-22  Werner Lemberg  
6685
 
6686
	Fix various memory problems found by linuxtesting.org.
6687
 
6688
	* src/base/ftgxval.c (FT_TrueTypeGX_Free, FT_ClassicKern_Free),
6689
	src/base/ftotval.c (FT_OpenType_Free), src/base/ftpfr.c
6690
	(ft_pfr_check): Check `face'.
6691
 
6692
	* src/base/ftobjs.c (FT_Get_Charmap_Index): Check `charmap' and
6693
	`charmap->face'.
6694
	(FT_Render_Glyph): Check `slot->face'.
6695
	(FT_Get_SubGlyph_Info): Check `glyph->subglyphs'.
6696
 
6697
2010-05-22  Werner Lemberg  
6698
 
6699
	autofit: Remove dead code.
6700
	Suggested by Graham.
6701
 
6702
	* src/autofit/afhints.c (af_glyph_hints_compute_inflections):
6703
	Removed.
6704
	(af_glyph_hints_reload): Remove third argument.
6705
	Update all callers.
6706
 
6707
2010-05-21  Bram Tassyns  
6708
 
6709
	[cff] Fix Savannah bug #27987.
6710
 
6711
	* src/cff/cffobjs.c (remove_subset_prefix): New function.
6712
	(cff_face_init): Use it to adjust `cffface->family_name'.
6713
 
6714
2010-05-20  Werner Lemberg  
6715
 
6716
	TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'.
6717
 
6718
	Acroread does the same.
6719
 
6720
	* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Call
6721
	`Update_Max' to adjust size of instructions array if necessary and
6722
	add a rough safety check.
6723
 
6724
	(load_truetype_glyph): Save `loader->byte_len' before recursive
6725
	call.
6726
 
6727
	* src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max):
6728
	Declare it as FT_LOCAL.
6729
 
6730
2010-05-18  Hongbo Ni  
6731
 
6732
	Apply Savannah patch #7196.
6733
 
6734
	* src/cff/cffgload.c (cff_slot_load): Prevent crash if CFF subfont
6735
	index is out of range.
6736
 
6737
2010-05-11  Werner Lemberg  
6738
 
6739
	* docs/formats.txt: Give pointer to PCF documentation.
6740
	Information provided by Alan Coopersmith
6741
	.
6742
 
6743
2010-05-10  Ken Sharp  
6744
 
6745
	[psaux] Fix Savannah bug #29846.
6746
 
6747
	Previously we discovered fonts which used `setcurrentpoint' to set
6748
	the initial point of a contour to 0,0.  This caused FreeType to
6749
	raise an error, because the `setcurrentpoint' operator is only
6750
	supposed to be used with the results from an OtherSubr subroutine.
6751
 
6752
	This was fixed by simply ignoring the error and carrying on.
6753
 
6754
	Now we have found a font which uses setcurrentpoint to actually
6755
	establish a non-zero point for a contour during the course of a
6756
	glyph program.  FWIW, these files may be produced by an application
6757
	called `Intaglio' on the Mac, when converting TrueType fonts to
6758
	Type 1.
6759
 
6760
	The fix allows the new invalid behaviour, the old invalid behaviour
6761
	and real proper usage of the operator to work the same way as Adobe
6762
	interpreters apparently do.
6763
 
6764
	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make
6765
	`setcurrentpoint' use the top two elements of the stack to establish
6766
	unconditionally the current x and y coordinates.
6767
 
6768
	Make the `flex' subroutine handling (OtherSubr 0) put the current
6769
	x,y coordinates onto the stack, instead of two dummy uninitialised
6770
	values.
6771
 
6772
2010-04-14  Ken Sharp  
6773
 
6774
	[psaux] Fix Savannah bug #29444.
6775
 
6776
	* src/psaux/psobjs.c (t1_builder_start_point): Accept (invalid)
6777
	`lineto' immediately after `hsbw', in accordance with Acrobat, GS,
6778
	and others.
6779
 
6780
2010-04-14  Michał Cichoń  
6781
 
6782
	[psaux] Fix Savannah bug #27999.
6783
 
6784
	* src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): Only remove
6785
	selected entry, not all.
6786
 
6787
2010-04-06  Jonathan Kew  
6788
 
6789
	[truetype] Add overflow check to `fvar' table.
6790
 
6791
	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis and instance
6792
	count.
6793
 
6794
2010-04-05  Ken Sharp  
6795
 
6796
	[raster] Fix Savannah bug #29335.
6797
 
6798
	* src/raster/ftraster.c (Line_Up): Use slow multiplication to
6799
	prevent overflow.  This shouldn't have any serious impact on speed,
6800
	however.
6801
 
6802
2010-04-05  Werner Lemberg  
6803
 
6804
	Add new function `FT_Library_SetLcdFilterWeights'.
6805
 
6806
	This is based on code written by Lifter
6807
	.  It fixes
6808
	FreeDesktop bug #27386.
6809
 
6810
	* src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New
6811
	function.
6812
 
6813
	* include/freetype/ftlcdfil.h: Updated.
6814
 
6815
	* docs/CHANGES: Updated.
6816
 
6817
2010-04-01  John Tytgat  
6818
 
6819
	[truetype] Fix Savannah bug #29404.
6820
 
6821
	* src/truetype/ttgload.c: Revert change 2752bd1a (check on bit 1
6822
	of `head' table of TrueType fonts).
6823
 
6824
2010-03-14  suzuki toshiya  
6825
 
6826
	Fix `multi build' for Tytgat's CFF driver improvement.
6827
 
6828
	* src/base/cffload.h (cff_index_get_name): Added.
6829
 
6830
2010-03-12  suzuki toshiya  
6831
 
6832
	Remove duplicated inclusion of `FT_OUTLINE_H' in ftobjs.c.
6833
 
6834
	* src/base/ftobjs.c: Remove 2nd inclusion of `FT_OUTLINE_H'.
6835
 
6836
2010-03-11  Chris Liddell  
6837
 
6838
	[raster] Fix Savannah bug #27442.
6839
 
6840
	* src/raster/ftraster.c (ft_black_reset): Fix `buffer_size'.
6841
 
6842
2010-03-09  Werner Lemberg  
6843
 
6844
	[cff] Remove unused variable.
6845
	Reported by Graham.
6846
 
6847
	* src/cff/cffparse.c (cff_parse_real): Remove `rest'.
6848
 
6849
2010-03-02  John Tytgat  
6850
 
6851
	[cff] Improve CFF string (especially glyphname) lookup performance.
6852
 
6853
	We do this by avoiding memory allocation and file I/O.  This is
6854
	Savannah patch #7104.
6855
 
6856
	* src/cff/cfftypes.h: Include PS cmaps service and
6857
	FT_INTERNAL_POSTSCRIPT_HINTS_H.
6858
	(CFF_SubFontRec): Remove `num_local_subrs'.
6859
	(CFF_FontRec): Add `num_strings', `strings', and `string_pool'
6860
	fields.
6861
	Remove `string_index' and `num_global_subrs' fields.
6862
	Use real types instead of `void' for `pshinter' and `psnames' fields.
6863
 
6864
	* src/cff/cffload.c: Don't include PS cmaps service.
6865
	(cff_index_get_pointers): Add `pool' parameter which allows to
6866
	insert an extra NUL character for each String INDEX entry.
6867
	(cff_index_get_name): Make it a local function.
6868
	(cff_index_get_string): New function.
6869
	(cff_subfont_load): Updated.
6870
	(cff_font_load): Initialize `num_strings', `strings', and
6871
	`string_pool' fields in the `CFF_FontRec' structure.
6872
	(cff_index_get_sid_string): Use `cff_index_get_string' instead of
6873
	`cff_index_get_name'.
6874
	(cff_font_done): Updated.
6875
 
6876
	* src/cff/cffload.h: Don't include PS cmaps service.
6877
	(cff_index_get_string): Added.
6878
	(cff_index_get_sid_string): Updated.
6879
 
6880
	* src/cff/cffobjs.c: Don't include PS cmaps service and
6881
	FT_INTERNAL_POSTSCRIPT_HINTS_H.
6882
	(cff_size_get_globals_funcs, cff_slot_init): Updated.
6883
	(cff_face_init): Follow `cff_index_get_name',
6884
	`cff_index_get_string', and `cff_index_get_sid_string' changes.
6885
 
6886
	* src/cff/cffcmap.c (cff_sid_free_glyph_name): Removed.
6887
	(cff_sid_to_glyph_name): Use `cff_index_get_cid_string'.
6888
	(cff_cmap_unicode_init): Updated.
6889
 
6890
	* src/cff/cffdrivr.c: Don't include PS cmap service.
6891
	(cff_get_glyph_name): Avoid unnecessary lookup for POSTSCRIPT_CMAPS
6892
	service.
6893
	(cff_get_glyph_name, cff_ps_get_font_info, cff_get_ros): Follow API
6894
	`cff_index_get_sid_string' change.
6895
	(cff_get_name_index): Use `cff_index_get_string' instead of
6896
	`cff_index_get_name'.
6897
 
6898
	* src/cff/cffgload.c: Don't include FT_INTERNAL_POSTSCRIPT_HINTS_H.
6899
	(cff_decoder_init, cff_decoder_prepare): Updated.
6900
 
6901
2010-02-27  Werner Lemberg  
6902
 
6903
	Simplify code.
6904
	Suggested by Behdad.
6905
 
6906
	* src/base/ftobjs.c (FT_Get_First_Char): Don't use a loop since we
6907
	call FT_Get_Next_Char anyway if necessary.
6908
 
6909
2010-02-26  Behdad Esfahbod  
6910
 
6911
	Improve handling of invalid glyph indices in char->index functions.
6912
 
6913
	* src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Use a
6914
	loop.
6915
 
6916
2010-02-18  Chris Liddell  
6917
 
6918
	[truetype] Fix Savannah bug #28905.
6919
 
6920
	Initialize phantom points before calling the incremental interface
6921
	to update glyph metrics.
6922
 
6923
	* src/truetype/ttgload.c (tt_get_metrics_incr_overrides)
6924
	[FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from...
6925
	(tt_get_metrics): This.
6926
	Updated.
6927
	(load_truetype_glyph): Use tt_get_metrics_incr_overrides.
6928
 
6929
----------------------------------------------------------------------------
6930
 
6931
Copyright 2010-2013 by
6932
David Turner, Robert Wilhelm, and Werner Lemberg.
6933
 
6934
This file is part of the FreeType project, and may only be used, modified,
6935
and distributed under the terms of the FreeType project license,
6936
LICENSE.TXT.  By continuing to use, modify, or distribute this file you
6937
indicate that you have read the license and understand and accept it
6938
fully.
6939
 
6940
 
6941
Local Variables:
6942
version-control: never
6943
coding: utf-8
6944
End: