Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

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