12005-06-08  Werner Lemberg  <wl@gnu.org>
2
3
4	* Version 2.1.10 released.
5	==========================
6
7
8	* src/pcf/readme: Renamed to...
9	* src/pcf/README: This.
10
112005-06-07  Detlef Würkner  <TetiSoft@apg.lahn.de>
12
13	* builds/amiga/*: Added copyright notes, reworked some comments.
14
152005-06-05  Werner Lemberg  <wl@gnu.org>
16
17	* Add copyright notices to all files which don't have one.
18
19	* docs/license.txt: Renamed to...
20	* docs/LICENSE.TXT: This.
21	* docs/FTL.txt: Renamed to...
22	* docs/FTL.TXT: This.
23	* docs/GPL.txt: Renamed to...
24	* docs/GPL.TXT: This.
25
26	* docs/PATENTS: Slightly reworded.  Suggested by Sylvain Beucler
27	<beuc@gnu.org>.
28
292005-06-04  Werner Lemberg  <wl@gnu.org>
30
31	* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
32	FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
33	FT_Outline_CubicToFunc, FT_Raster_RenderFunc),
34	include/freetype/ftrender.h (FT_Glyph_TransformFunc,
35	FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Don't use
36	`const' to stay compatible with FreeType 2.1.9.
37
382005-06-01  Adam D. Moss  <adam@gimp.org>
39
40	* src/base/ftstroke.c (ft_stroker_inside): Revert `sigma' patch from
41	2004-07-11; this gives much better results under normal
42	circumstances.
43
442005-05-30  Chia I Wu  <b90201047@ntu.edu.tw>
45
46	* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Minor
47	documentation improvements.
48
49	* include/freetype/ftoutln.h (FT_Outline_Embolden): Fix typos.
50
51	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Add support for bitmap
52	of pixel_mode FT_PIXEL_MODE_GRAY2 or FT_PIXEL_MODE_GRAY4.
53	If xstr is larger than 8 and bitmap is of pixel_mode
54	FT_PIXEL_MODE_MONO, set xstr to 8 instead of returning error.
55
562005-05-29  Chia I Wu  <b90201047@ntu.edu.tw>
57
58	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Fix emboldening bitmap
59	of mode FT_PIXEL_MODE_GRAY.  Also add support for mode
60	FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V.
61	(ft_bitmap_assure_buffer): FT_PIXEL_MODE_LCD and FT_PIXEL_MODE_LCD_V
62	should have ppb (pixel per byte) 1.
63	Zero the padding when there's no need to allocate memory.
64
65	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle slot->advance
66	too.
67	More suited emboldening strength.
68
692005-05-28  Chia I Wu  <b90201047@ntu.edu.tw>
70
71	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Handle negative pitch.
72	Handle FT_PIXEL_MODE_GRAY with num_gray != 256.
73	Improve speed for FT_PIXEL_MODE_GRAY.
74	(ft_bitmap_assure_buffer): Accept FT_PIXEL_MODE_LCD and
75	FT_PIXEL_MODE_LCD_V.
76
772005-05-27  Chia I Wu  <b90201047@ntu.edu.tw>
78
79	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Initialize `error'.
80
81	* src/base/ftobjs.c (ft_cmap_done_internal): New function.
82	(FT_CMap_Done): Remove cmap from cmap list.
83	(destroy_charmaps, FT_CMap_New): Don't call FT_CMap_Done but
84	ft_cmap_done_internal.
85
862005-05-26  Werner Lemberg  <wl@gnu.org>
87
88	* docs/GPL.txt: Update postal address of FSF.
89
902005-05-26  Chia I Wu  <b90201047@ntu.edu.tw>
91
92	* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Improve
93	documentation.
94
95	* src/base/ftsynth.c (FT_BOLD_THRESHOLD): Removed.
96	(FT_GlyphSlot_Embolden): Check whether slot is bitmap owner.
97	Always modify the metrics.
98
992005-05-24  Werner Lemberg  <wl@gnu.org>
100
101	* docs/CHANGES: Updated.
102
1032005-05-24  Chia I Wu  <b90201047@ntu.edu.tw>
104
105	* include/freetype/ftbitmap.h (FT_Bitmap_Embolden): New declaration.
106
107	* include/freetype/ftoutln.h (FT_Outline_Embolden): New declaration.
108
109	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): New auxiliary
110	function.
111	(FT_Bitmap_Embolden): New function.
112
113	* src/base/ftoutln.c (FT_Outline_Embolden): New function.
114
115	* src/base/ftsynth.c: Don't include FT_INTERNAL_CALC_H and
116	FT_TRIGONOMETRY_H but FT_BITMAP_H.
117	(FT_GlyphSlot_Embolden): Use FT_Outline_Embolden or
118	FT_Bitmap_Embolden.
119
1202005-05-24  Werner Lemberg  <wl@gnu.org>
121
122	* configure: Always remove config.mk, builds/unix/unix-def.mk, and
123	builds/unix/unix-cc.mk.  This fixes repeated calls of the script.
124	Reported by Nelson Beebe and Behdad Esfahbod.
125
126	* README.CVS: Mention file permissions.
127
1282005-05-23  Werner Lemberg  <wl@gnu.org>
129
130	* builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk
131	(CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove
132	-fno-strict-aliasing.
133
134	* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c --
135	it is currently loaded from ttsbit.c.
136
1372005-05-23  Behdad Esfahbod  <behdad@cs.toronto.edu>
138
139	Say you have `(Foo*)x' and want to assign, pass, or return it as
140	`(Bar*)'.  If you simply say `x' or `(Bar*)x', then the C compiler
141	would warn you that type casting incompatible pointer types breaks
142	strict-aliasing.  The solution is to cast to `(void*)' instead which
143	is the generic pointer type, so the compiler knows that it should
144	make no strict-aliasing assumption on `x'.  But the problem with
145	`(void*)x' is that seems like in C++, unlike C, `void*' is not a
146	generic pointer type and assigning `void*' to `Bar*' without a cast
147	causes an error.  The solution is to cast to `Bar*' too, with
148	`(Bar*)(void*)x' as the result -- this is what the patch does.
149
150	* include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP),
151	include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove
152	cast on lvalue, use a temporary pointer instead.
153	Cast temporarily to (void*) to not break strict aliasing.
154
155	* include/freetype/internal/ftmemory.h (FT_MEM_ALLOC,
156	FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE),
157	src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*)
158	to not break strict aliasing.
159
160	* src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information.
161
162	* builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing.
163
1642005-05-23  David Turner  <dturner@freetype.org>
165
166	Fix Savannah bug #12213 (incorrect behaviour of the cache sub-system
167	in low-memory conditions).
168
169	* include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP,
170	FTC_CACHE_TRYLOOP_END): New macros.
171
172	* src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c
173	(ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACHE_TRYLOOP_END.
174
1752005-05-23  Werner Lemberg  <wl@gnu.org>
176
177	* src/base/rules.mk (BASE_SRC): Don't add ftsynth.c here but...
178	(BASE_EXT_SRC): Here.
179
1802005-05-22  Werner Lemberg  <wl@gnu.org>
181
182	* src/base/ftrfork.c (raccess_guess_apple_generic): Mark
183	`version_number' and `entry_length' as unused.
184	(raccess_guess_linux_double_from_file_name): Remove `memory'.
185	(raccess_make_file_name): Mark `error' as unused.
186
187	* src/bdf/bdflib.c (_bdf_parse_properties): Remove `memory'.
188
189	* src/cid/cidobjs.c (cid_face_init): Remove `psnames'.
190
191	* src/sfnt/sfobjs.c (sfnt_load_face): Remove `memory'.
192
193	* src/truetype/ttgxvar.c (ft_var_readpackedpoints,
194	ft_var_readpackeddeltas, ft_var_load_avar): Mark `error' as unused.
195
196	* src/base/rules.mk (BASE_SRC): Add ftsynth.c.
197
1982005-05-21  David Turner  <david@freetype.org>
199
200	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix a bug that
201	produced unpleasant artefacts when trying to embolden very sharp
202	corners.
203
2042005-05-20  Werner Lemberg  <wl@gnu.org>
205
206	* docs/CHANGES: Updated.
207
2082005-05-20  Chia I Wu  <b90201047@ntu.edu.tw>
209
210	* src/base/ftbitmap.c: Don't include FT_FREETYPE_H and FT_IMAGE_H
211	but FT_BITMAP_H.
212	(FT_Bitmap_Copy): New function (from ftglyph.c).
213
214	* include/freetype/ftbitmap.h (FT_Bitmap_Copy): New public
215	definition.
216
217	* src/base/ftglyph.c: Include FT_BITMAP_H.
218	(ft_bitmap_copy): Move to ftbitmap.c.
219	(ft_bitmap_glyph_init): Remove `memory' variable.
220	Create new bitmap object if FT_GLYPH_OWN_BITMAP isn't set.
221	(ft_bitmap_glyph_copy): Use FT_Bitmap_Copy.
222	(ft_bitmap_glyph_done): Use FT_Bitmap_Done.
223	(ft_outline_glyph_init): Use FT_Outline_Copy.
224
225	* src/base/ftoutln.c (FT_Outline_Copy): Handle source == target.
226	(FT_Outline_Done_Internal): Check for valid `memory' pointer.
227	(FT_Outline_Translate, FT_Outline_Reverse, FT_Outline_Render,
228	FT_Outline_Transform): Check for valid `outline' pointer.
229
230	* src/base/ftobjs.c (FT_New_GlyphSlot): Prepend glyph slot to
231	face->glyph, otherwise a new second glyph slot cannot be created.
232	(FT_Done_GlyphSlot): Fix memory leak.
233	(FT_Open_Face): Updated -- face->glyph is already managed by
234	FT_New_GlyphSlot.
235
236	* src/type42/t42objs.c (T42_GlyphSlot_Done): Updated.
237
2382005-05-20  Kirill Smelkov  <kirr@mns.spb.ru>
239
240	* include/freetype/ftimage.h (FT_Raster_Params),
241	include/freetype/ftoutln.h (FT_Outline_Translate,
242	FT_Outline_Transform), src/base/ftoutln.c (FT_Outline_Translate,
243	FT_Outline_Transform): Decorate parameters with `const' where
244	appropriate.
245	Update all callers.
246
247	* src/raster/ftraster.c (ft_black_reset), src/smooth/ftgrays.c
248	(gray_raster_reset): Remove `const' from `pool_base' argument.
249
2502005-05-18  Kirill Smelkov  <kirr@mns.spb.ru>
251
252	* src/raster/ftmisc.h: New file.  Only needed if ftraster.c is
253	compiled as stand-alone.
254
255	* src/raster/ftraster.c: Add comment how to compile as stand-alone.
256	s/FT_CONFIG_OPTION_STATIC_RASTER/FT_STATIC_RASTER/.
257	s/TT_STATIC_RASTER/FT_STATIC_RASTER/.
258	[_STANDALONE_]: Include ftimage.h and ftmisc.h.
259	(FT_TRACE1, FT_TRACE6, ft_memset, FT_MEM_ZERO): Define
260	conditionally.
261	(Render_Glyph, Render_Gray_Glyph): Return Raster_Err_None (or
262	Raster_Err_Unsupported).
263	(ft_black_new) [_STANDALONE_]: Fix type of `the_raster'.
264	(ft_black_init, ft_black_reset, ft_black_set_mode, ft_black_render):
265	Use `ras', not `raster'.
266	(ft_black_done): Use FT_UNUSED_RASTER.
267	(Horizontal_Sweep_Init, Horizontal_Sweep_Step,
268	Horizontal_Gray_Sweep_Span): Use FT_UNUSED_RASTER.
269
2702005-05-18  Werner Lemberg  <wl@gnu.org>
271
272	* docs/announce: Start updating.
273
274	* docs/CHANGES: Updated.
275
2762005-05-16  Vitaliy Pasternak  <v_a_pasternak@mail.ru>
277
278	* builds/win32/visualc/freetype.vcproj: Updated.
279	Exclude debug info for `Release' versions to reduce library size.
280
2812005-05-16  Werner Lemberg  <wl@gnu.org>
282
283	* src/base/ftobjs.c (FT_Open_Face): Make it work as documented, this
284	is, ignore `aface' completely if face_index < 0.  Reported by David
285	Osborn <spam@habitualhiatus.com>.
286
2872005-05-16  Kirill Smelkov  <kirr@mns.spb.ru>
288
289	* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
290	FT_Outline_LineTo_Func, FT_Outline_ConicToFunc,
291	FT_Outline_CubicToFunc), src/smooth/ftgrays.c (gray_render_conic,
292	gray_render_cubic, gray_move_to, gray_line_to, gray_conic_to,
293	gray_cubic_to, gray_render_span, gray_sweep): Decorate parameters
294	with `const' where appropriate.
295
2962005-05-11  Kirill Smelkov  <kirr@mns.spb.ru>
297
298	* include/freetype/ftimage.h (FT_Raster_RenderFunc),
299	include/freetype/ftrender.h (FT_Glyph_TransformFunc,
300	FT_Renderer_Render_Func, FT_Renderer_TransformFunc),
301	src/base/ftglyph.c (ft_outline_glyph_transform),
302	src/raster/ftrend1.c (ft_raster1_transform, ft_raster1_render),
303	src/smooth/ftgrays.c (FT_Outline_Decompose, gray_raster_render),
304	src/smooth/ftsmooth.c (ft_smooth_transform,
305	ft_smooth_render_generic, ft_smooth_render, ft_smooth_render_lcd,
306	ft_smooth_render_lcd_v): Decorate parameters with `const' where
307	appropriate.
308
309	* src/raster/ftraster.c (RASTER_RENDER_POOL): Removed.  Obsolete.
310	(ft_black_render): Decorate parameters with `const' where
311	appropriate.
312
3132005-05-11  Werner Lemberg  <wl@gnu.org>
314
315	* src/sfnt/ttcmap.c (tt_cmap4_set_range): Fix typo (FT_PEEK_SHORT ->
316	FT_PEEK_USHORT) which caused crashes.  Reported by Ismail Donmez
317	<ismail@kde.org.tr>.
318
3192005-05-08  Werner Lemberg  <wl@gnu.org>
320
321	* include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE)
322	[__cplusplus]: Fix typo.
323
3242005-05-07  Werner Lemberg  <wl@gnu.org>
325
326	Handle unsorted SFNT type 4 cmaps correctly (reported by Dirck
327	Blaskey <listtarget@danbala.com>).
328
329	* src/sfnt/ttcmap.h (TT_CMap): Add member `unsorted'.
330	* src/sfnt/ttcmap.c: Use SFNT_Err_Ok where appropriate.
331
332	(tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate,
333	tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use
334	`FT_Error' as return type.
335	(tt_cmap4_validate): Use `FT_Error' as return type.
336	Return error code for unsorted cmap.
337	(tt_cmap4_char_index, tt_cmap4_char_next): Use old code for unsorted
338	cmaps.
339	(tt_face_build_cmaps): Set `unsorted' variable in cmap.
340
3412005-05-07  Werner Lemberg  <wl@gnu.org>
342
343	* src/truetype/ttpload.c (tt_face_get_location): Fix typo.
344
3452005-05-06  Werner Lemberg  <wl@gnu.org>
346
347	* src/cff/cffobjs.c (cff_face_init): Set ppem value in top
348	dictionary for SFNT-based CFF.
349
3502005-05-05  Werner Lemberg  <wl@gnu.org>
351
352	Handle malformed `loca' table entries.
353
354	* docs/TODO: Add some bugs which should be fixed.
355
356	* include/freetype/internal/tttypes.h (TT_FaceRec): Add `glyf_len'
357	element.
358
359	* src/truetype/ttpload.c (tt_face_load_loca): Get length of `glyf'
360	table.
361	(tt_face_get_location): Fix computation of `asize' for malformed
362	`loca' entries.
363
3642005-05-01  David Turner  <david@freetype.org>
365
366	* Jamfile: Remove `otvalid' from the list of compiled modules.
367
368	* include/freetype/internal/ftserv.h: Add compiler pragmas to get
369	rid of annoying warnings with Visual C++ compiler in maximum warning
370	mode.
371
372	* src/autofit/afhints.c, src/autofit/aflatin.c, src/base/ftstroke.c,
373	src/bdf/bdfdrivr.c, src/cache/ftcbasic.c, src/cache/ftccmap.c,
374	src/cache/ftcmanag.c, src/cff/cffload.c, src/cid/cidload.c,
375	src/lzw/zopen.c, src/otvalid/otvgdef.c, src/pcf/pcfread.c,
376	src/sfnt/sfobjs.c, src/truetype/ttgxvar.c: Remove compiler warnings.
377
3782005-04-28  Werner Lemberg  <wl@gnu.org>
379
380	* docs/TODO: Updated.
381
3822005-04-24  Werner Lemberg  <wl@gnu.org>
383
384	* src/otvalid/otvcommn.c
385	(otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0.
386
3872005-04-16  Werner Lemberg  <wl@gnu.org>
388
389	* src/cff/cffobjs.c (cff_face_init): Set default upem value in top
390	font dict also.
391	Handle font matrix settings in subfonts.
392
393	* src/cff/cffgload.c (cff_slot_load): Use the correct font matrix
394	for CID-keyed fonts with subfonts.
395
396	* docs/formats.txt: Updated.
397
3982005-04-14  Kirill Smelkov  <kirr@mns.spb.ru>
399
400	* include/freetype/freetype.h (FT_Vector_Transform),
401	include/freetype/ftimage.h (FT_Raster_Params),
402	include/freetype/ftoutln.h, src/base/ftoutln.c (FT_Outline_Get_CBox,
403	FT_Outline_Copy, FT_Outline_Transform, FT_Vector_Transform,
404	FT_Outline_Get_Bitmap), src/raster/ftraster.c (ft_black_render),
405	src/smooth/ftgrays.c (gray_raster_render): Decorate parameters with
406	`const' where appropriate.
407
4082005-04-14  Werner Lemberg  <wl@gnu.org>
409
410	* src/type1/t1load.c (parse_charstrings): Catch this non-standard
411	beginning of the /CharStrings dictionary:
412
413	  /CharStrings 118 dict def
414	  Private begin
415	  CharStrings begin
416
417	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix arguments
418	to call of tt_sbit_decoder_load_bitmap.
419
4202005-04-13  Werner Lemberg  <wl@gnu.org>
421
422	* docs/TODO: Updated.
423
424	* autogen.sh: Use `--force' for all commands.
425
4262005-04-09  Werner Lemberg  <wl@gnu.org>
427
428	* src/pshinter/pshalgo.c (ps_hints_apply): Change scaling values
429	only if `fitted' is not zero.
430
4312005-04-06  Werner Lemberg  <wl@gnu.org>
432
433	* src/truetype/ttgload.c (tt_face_get_metrics) [FT_OPTIMIZE_MEMORY]:
434	Fix typo which sometimes causes wrong metrics for the last glyph.
435
4362005-04-04  David Turner  <david@freetype.org>
437
438	* devel/ftoption.h, include/freetype/config/ftoption.h
439	(FT_OPTIMIZE_MEMORY): Comment out this macro for the upcoming 2.1.10
440	release.
441	(*_CHESTER_*): Removed.  No longer used.
442
443	* src/autofit/afhints.c (af_axis_hints_new_segment,
444	af_axis_hints_new_edge): Small tweak to use less heap memory.
445
4462005-04-03  Werner Lemberg  <wl@gnu.org>
447
448	* src/type1/t1parse.c (T1_New_Parser): Relax the check for a valid
449	first line in the font.
450
4512005-04-03  Werner Lemberg  <wl@gnu.org>
452
453	* docs/CHANGES, include/freetype/freetype.h: Improve documentation
454	of FT_Set_Pixel_Sizes and FT_Set_Char_Size.
455
4562005-03-26  Detlef Würkner  <TetiSoft@apg.lahn.de>
457
458	* builds/amiga/src/base/ftsystem.c (ft_amiga_stream_io): Fix buffer
459	offsets after a large read.
460
4612005-03-26  Werner Lemberg  <wl@gnu.org>
462
463	* src/autofit/afglobal.c (af_face_globals_get_metrics):
464	s/index/gidx/.
465
466	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Fix compiler
467	warnings.
468
469	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
470
471	* src/sfnt/ttsbit0.h: Dummy file for build with `make'.
472
4732005-03-26  Detlef Würkner  <TetiSoft@apg.lahn.de>
474
475	Update of the Amiga port.
476
477	* builds/amiga/makefile, builds/amiga/makefile.os4,
478	builds/amiga/smakefile: Included the base extension files
479	(ftbitmap.c, ftotval.c, ftpfr.c, ftstroke.c, ftxf86.c).
480
4812005-03-25  Detlef Würkner  <TetiSoft@apg.lahn.de>
482
483	Update of the Amiga port.
484
485	* builds/amiga/makefile, builds/amiga/smakefile: Handle new modules.
486
487	* builds/amiga/makefile.os4: Makefile for AmigaOS4 SDK.
488
489	* builds/amiga/README: Updated.
490
491	* builds/amiga/include/freetype/config/ftconfig.h: Handle gcc for
492	AmigaOS4.
493
494	* builds/amiga/include/freetype/config/ftmodule.h: Handle new
495	modules.
496
497	* builds/amiga/src/base/ftdebug.c: Updated to current version of
498	default ftdebug.c.
499	Add various include files and macros to have proper support for
500	both AmigaOS4 and older AmigaOS versions.
501	Don't declare KVPrintF explicitly.
502	Replace getenv with GetVar.
503	Actually enable debugging code.
504
505	* builds/amiga/src/base/ftsystem.c: Major rewrite.
506
5072005-03-23  Werner Lemberg  <wl@gnu.org>
508
509	* tests/*: Removed.
510
5112005-03-23  Werner Lemberg  <wl@gnu.org>
512
513	* docs/CHANGES, docs/INSTALL.ANY: Updated.
514
515	* include/freetype/ftmoderr.h: Replace `Autohint' with `Autofit'.
516	Add `OTvalid'.
517
518	* src/autofit/aferrors.h: New file.
519
520	* src/autofit/afglobal.c, src/autofit/afhints.c,
521	src/autofit/aflatin.c, src/autofit/afloader.c: s/FT_Err_/AF_Err_/.
522	Include aferrors.h.
523
524	* src/autofit/rules.mk (AUTOF_DRV_H): Include aferrors.h.
525
526	* src/otvalid/otverror.h: s/FT_Mod_Err_OTV/FT_Mod_Err_OTvalid/.
527
5282005-03-22  David Turner  <david@freetype.org>
529
530	* src/autohint/*: Removed.
531	* Jamfile: Updated.
532
5332005-03-15  David Turner  <david@freetype.org>
534
535	* src/bdf/bdflib.c: Remove compiler warnings.
536	(hash_rehash, hash_init): Don't call FT_MEM_ZERO.
537	(_bdf_list_t): Add `memory' field.
538	(_bdf_list_init, _bdf_list_done, _bdf_list_ensure): New functions.
539	(_bdf_shift, _bdf_join): Rename to...
540	(_bdf_list_shift, _bdf_list_join): This.
541	(_bdf_split): Renamed to...
542	(_bdf_list_split): This.  Use new functions.
543	(bdf_internal_readstream): Removed.
544	(NO_SKIP): New macro.
545	(_bdf_readstream): Rewritten.
546	(bdf_create_property, _bdf_add_comment): Improve allocation.
547	(_bdf_set_default_spacing, _bdf_parse_glyphs): Updated.  Improve
548	allocation.
549	(_bdf_parse_properties, _bdf_parse_start): Updated.
550	(bdf_load_font): Updated to use new functions.
551
552	* src/type1/t1parse.c (check_type1_format): New function.
553	(T1_New_Parser): Use it to check font header before allocating
554	anything on the heap.
555
556	* src/type42/t42parse.c (t42_parser_init): Modify functions to check
557	the font header before allocating anything on the heap.
558
559	* include/freetype/internal/ftmemory.h (FT_ARRAY_MAX,
560	FT_ARRAY_CHECK): New macros.
561
562	* src/base/ftstream.c (FT_Stream_TryRead): New function.
563	* include/freetype/internal/ftstream.h: Updated.
564
565	* src/pcf/pcfread.c (pcf_read_TOC), src/pcf/pcfutil.c
566	(BitOrderInvert, TwoByteSwap, FourByteSwap): Minor fixes and
567	simplifications.  Try to protect the PCF driver from doing stupid
568	things with broken fonts.
569
570	* src/lzw/ftlzw.c (FT_Stream_OpenLZW): Check the LZW header before
571	doing anything else.  This avoids unnecessary heap allocations
572	(400KByte of heap memory for the LZW decoder).
573
574	* src/gzip/ftgzip.c (FT_Stream_OpenGzip): Ditto for the gzip
575	decoder, although the code savings are smaller.
576
577	* docs/CHANGES: Updated.
578
5792005-03-10  David Turner  <david@freetype.org>
580
581	* src/tools/glnames.py: Add comment to explain the compression
582	being used for the Adobe Glyph List.
583
5842005-03-10  Werner Lemberg  <wl@gnu.org>
585
586	* src/truetype/ttpload.c (tt_face_load_cvt, tt_face_load_fpgm):
587	Fix serious typo which prevented correct TT rendering.
588
589	* include/freetype/internal/ftmemory.h: Undo change from 2005-03-03.
590	To suppress warnings it is sufficient to use `-fno-strict-aliasing'.
591
5922005-03-10  Werner Lemberg  <wl@gnu.org>
593
594	* src/tools/glnames.py: Formatted.
595	Format output to be in sync with other FreeType code.
596	Import `re' and `os.path'.
597	(StringTable) <__init__>: Add parameter to initialize master table
598	name.
599	(StringTable) <dump>: Don't pass master table name.
600	(StringTable) <dump_sublist>: Emit explanatory comment.
601	Simplify and make output more human readable.
602	(t1_bias, glyph_list, adobe_glyph_names): Removed.  Unused.
603	(main): Use `basename' for file name in header.
604
605	* src/psnames/pstables.h: Regenerated.
606
6072005-03-09  David Turner  <david@freetype.org>
608
609	* src/tools/glnames.py: Rewrite the generator for the `pstables.h'
610	header file which contains various constant tables related to glyph
611	names.  It now uses a different, more compact storage scheme that
612	saves about 20KB.  This also closes Savannah bug #12262.
613
614	* src/psnames/pstables.h: Regenerated.
615
616	* src/psnames/psmodule.c (ps_unicode_value): Use
617	`ft_get_adobe_glyph_index', a new function defined in `pstables.h'.
618	(ps_get_macintosh_name, ps_get_standard_strings): Updated.
619
620	* src/base/ftobjs.c (FT_Set_Char_Size): Handle fractional sizes
621	more carefully.  This fixes Savannah bug #12263.
622
6232005-03-06  David Turner  <david@freetype.org>
624
625	* src/otvalid/otvgsub.c, src/otvalid/otvgpos.c: Make static tables
626	constant.
627
628	* src/autofit/aflatin.c (af_latin_metrics_init): Fix Savannah bug
629	#12212 (auto-hinter refuses to work if no Unicode charmap in font).
630
6312005-03-05  Werner Lemberg  <wl@gnu.org>
632
633	* autogen.sh: New script for bootstrapping.
634
635	* README.CVS: New file which documents bootstrapping.
636
637	* builds/unix/aclocal.m4, builds/unix/config.guess,
638	builds/unix/config.sub, builds/unix/configure,
639	builds/unix/ltmain.sh: Removed.
640
6412005-03-04  Werner Lemberg  <wl@gnu.org>
642
643	* src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H.
644
6452005-03-03  Werner Lemberg  <wl@gnu.org>
646
647	Various fixes for C and C++ compiling.
648
649	* src/autofit/*: Add copyright messages.
650
651	* src/autofit/afhints.c (af_glyph_hints_done): Don't use
652	`AF_Dimension' but `int' for loop counter.
653
654	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Don't use
655	`AF_Dimension' but `int' for loop counter.
656	Use proper enumeration value for `render_mode'.
657	(af_latin_metrics_scale_dim): Don't shadow variables.
658	(af_latin_hints_compute_segments): Use proper cast for `major_dir'
659	and `segment_dir'.
660	(af_latin_align_linked_edge, af_latin_hint_edges): Fix arguments of call to
661	`af_latin_compute_stem_width'.
662	(af_latin_hints_apply): Don't use `AF_Dimension' but `int' for loop
663	counter.
664
665	* src/base/ftdbgmem.c (ft_mem_table_get_source, FT_DumpMemory): Use
666	proper cast for memory allocation.
667
668	* src/cff/cffdrivr.c (cff_get_kerning): Use proper cast for
669	initialization of `sfnt'.
670
671	* src/sfnt/sfdriver.c: Include `ttkern.h'.
672
673	* src/sfnt/ttkern.c (tt_face_get_kerning): Don't shadow variables.
674
675	* src/truetype/ttgload.c: Include `ttpload.h'.
676
6772005-03-03  David Turner  <david@freetype.org>
678
679	* include/freetype/internal/ftmemory.h (FT_ALLOC, FT_REALLOC,
680	FT_QALLOC, FT_QREALLOC) [gcc >= 3.3]: Provide macro versions which
681	avoid compiler warnings.
682	(FT_NEW, FT_NEW_ARRAY, FT_RENEW_ARRAY, FT_QNEW, FT_QNEW_ARRAY,
683	FT_QRENEW_ARRAY, FT_ALLOC_ARRAY, FT_REALLOC_ARRAY): Updated.
684
685	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
686	FT_FACE_FIND_GLOBAL_SERVICE, FT_FACE_LOOKUP_SERVICE) [__cplusplus]:
687	Provide macro versions which avoid compiler warnings.
688
689	* src/base/ftutil.c (ft_highpow2): New utility function.
690
691	* include/freetype/internal/ftobjs.h: Updated.
692
693	* src/pfr/pfrload.c (pfr_get_gindex, pfr_compare_kern_pairs,
694	pfr_sort_kerning_pairs): Don't define if FT_OPTIMIZE_MEMORY is set.
695	(pfr_phy_font_done): Don't handle `kern_pairs' if FT_OPTIMIZE_MEMORY
696	is set.
697	(pfr_phy_font_load): Don't call `pfr_sort_kerning_pairs' if
698	FT_OPTIMIZE_MEMORY is set.
699
700	* src/pfr/pfrobjs.c (pfr_slot_load): Comment out some code which
701	doesn't work with broken fonts.
702	(pfr_face_get_kerning) [FT_OPTIMIZE_MEMORY]: Implement.
703
704	* src/pfr/pfrtypes.h (PFR_KernItemRec): Optimize member types.
705	(PFR_NEXT_KPAIR): New macro.
706	(PFR_PhyFontRec): Don't define `kern_pairs' if FT_OPTIMIZE_MEMORY is
707	set.
708
709	* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Introduce
710	temporary variable to avoid gcc warning.
711	(tt_face_load_sbit_image): Mark unused variables with FT_UNUSED.
712
713	* src/truetype/ttpload.c (tt_face_load_loca) [FT_OPTIMIZE_MEMORY]:
714	Remove redundant variable.
715
716	* include/freetype/config/ftmodule.h: Moving the order of drivers to
717	speed up font loading.  The PCF and BDF loaders are still slow and
718	consume far too much memory.
719
7202005-03-03  Werner Lemberg  <wl@gnu.org>
721
722	* devel/ftoption.h: Updated to recent changes.
723
7242005-03-02  Werner Lemberg  <wl@gnu.org>
725
726	* src/autofit/afdummy.c, src/autofit/afdummy.h
727	(af_dummy_script_class): Fix type.
728
729	* src/autofit/aflatin.c, src/autofit/aflatin.h
730	(af_latin_script_class): Fix type.
731
732	* src/autofit/rules.mk (AUTOF_DRV_SRC): Fix typo.
733
7342005-03-01  David Turner  <david@freetype.org>
735
736	* src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning),
737	src/sfnt/ttsbit0.c (tt_face_load_sbit_strikes,
738	tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_compound,
739	tt_sbit_decoder_load_image), src/sfnt/ttload.c
740	(tt_face_load_metrics): Remove compiler warnings
741	-- redundant variables, missing initializations, etc.
742
743	* src/sfnt/ttsbit.h: Handle FT_OPTIMIZE_MEMORY.
744
745	* src/autofit/rules.mk, src/autofit/module.mk,
746	src/autofit/afangles.h: New files.
747
748	* src/autofit/afhints.c (af_axis_hints_new_segment,
749	af_axis_hints_new_edge): New functions.
750	(af_glyph_hints_done): Do proper deallocation.
751	(af_glyph_hints_reload): Only reallocate points array.  This
752	drastically reduces heap usage.
753
754	* src/autofit/afhints.h (AF_PointRec, AF_SegmentRec): Optimize
755	member types and positions.
756	(AF_AxisHintsRec): Add `max_segments' and `max_edges'.
757	(af_axis_hints_new_segment, af_axis_hints_new_edge): New prototypes.
758
759	* src/autofit/aflatin.c (af_latin_metrics_scale): Don't call
760	AF_SCALER_EQUAL_SCALES.
761	(af_latin_hints_compute_segments): Change return type to FT_Error.
762	Update all callers.
763	Improve segment allocation.
764	(af_latin_hints_compute_edges): Change return type to FT_Error.
765	Update all callers.
766	Improve edge allocation and link handling.
767	(af_latin_hints_detect_features): Change return type to FT_Error.
768	Update all callers.
769
770	* src/autofit/aflatin.h: Updated.
771
772	* src/autofit/afloader.c (af_loader_load_g)
773	<FT_GLYPH_FORMAT_OUTLINE>: Assure axis->num_edges > 1.  This fixes
774	a bug with certain fonts.
775
776	* include/freetype/config/ftmodule.h: The auto-fitter is now the
777	only supported auto-hinting module.
778
779	* include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro.
780
7812005-02-28  Werner Lemberg  <wl@gnu.org>
782
783	* src/truetype/ttpload.c (tt_face_load_loca): Fix typo.
784
785	* src/sfnt/ttkern.c: Include `ttkern.h'.
786	(FT_COMPONENT): Updated.
787
788	* include/freetype/internal/fttrace.h: Add entry for `ttkern'.
789
790	* src/sfnt/ttsbit0.c: s/FT_Err_/SFNT_Err_/.
791	Decorate constants with `U' and `L' where necessary.
792
793	* src/sfnt/ttcmap.c (tt_cmap4_next): Remove unused variable.
794
7952005-02-28  David Turner  <david@freetype.org>
796
797	* src/base/ftdbgmem.c (FT_DumpMemory): Added sorting of memory
798	sources according to decreasing maximum cumulative allocations.
799	(ft_mem_source_compare): New auxiliary function.
800
801	* src/sfnt/ttsbit0.c: New file, implementing a heap-optimized
802	embedded bitmap loader.
803
804	* src/sfnt/ttsbit.c: Include `ft2build.h', FT_INTERNAL_DEBUG_H,
805	FT_INTERNAL_STREAM_H, FT_TRUETYPE_TAGS_H.
806	Load `ttsbit0.c' if FT_OPTIMIZE_MEMORY is set, otherwise use
807	file contents.
808	(tt_face_load_sbit_strikes): Set up root fields to indicate the
809	strikes.  This fixes Savannah bug #12107.
810	Use `static' keyword for `sbit_line_metrics_field',
811	`strike_start_fields', `strike_end_fields'.
812
813	* include/freetype/internal/tttypes.h (TT_FaceRec): Define
814	`sbit_table', `sbit_table_size', `sbit_num_strikes' if
815	FT_OPTIMIZE_MEMORY is set.
816	Don't define `num_sbit_strikes' and `sbit_strikes' if
817	FT_OPTIMIZE_MEMORY is set.
818
819	* src/cff/cffobjs.c (sbit_size_reset): Handle FT_OPTIMIZE_MEMORY.
820
821	* src/sfnt/sfobjs.c (sfnt_load_face): Fixed bug that prevented
822	loading SFNT fonts without a `kern' table.
823	Properly pass root->face_flags.
824	Remove code for TT_CONFIG_OPTION_EMBEDDED_BITMAPS.
825
826	* src/sfnt/sfdriver.c (sfnt_interface)
827	[TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Don't use `tt_find_sbit_image'
828	and `tt_load_sbit_metrics'.
829
830	* src/sfnt/ttcmap.c: Optimize linear charmap scanning for Format 4.
831	(OPT_CMAP4): New macro.
832	(TT_CMap4Rec) [OPT_CMAP4]: New structure.
833	(tt_cmap4_init, tt_cmap4_set_range, tt_cmap4_next, tt_cmap4_reset)
834	[OPT_CMAP4]: New functions.
835	(tt_cmap4_char_next) [OPT_CMAP4]: Use `tt_cmap4_next' and
836	`tt_cmap4_reset'.
837	(tt_cmap4_class_rec) [OPT_CMAP4]: Use `TT_CMap4Rec' and
838	`tt_cmap4_init'.
839
840	* src/truetype/ttobjs.c (Reset_SBit_Size): Handle
841	FT_OPTIMIZE_MEMORY.
842
843	* src/autofit/afhints.h (AF_PointRec, AF_SegmentRec, AF_EdgeRec):
844	Optimize member types.
845
846	* src/autofit/afloader.c (af_loader_done): Call
847	`af_glyph_hints_done'.
848
8492005-02-27  David Turner  <david@freetype.org>
850
851	* src/sfnt/ttkern.c (tt_face_load_kern): Fix a small bug which
852	caused invalid (random) return values for the horizontal kerning.
853
8542005-02-25  David Turner  <david@freetype.org>
855
856	Implement several memory optimizations to drastically reduce the
857	heap usage of FreeType, especially in the case of memory-mapped
858	files.  The idea is to avoid loading and decoding tables in the
859	heap, and instead access the raw data whenever possible (i.e., when
860	it doesn't compromise performance).
861
862	This has several benefits: For example, opening vera.ttf now uses
863	just a small amount of memory (even when the FT_Library footprint is
864	accounted for), until you start loading glyphs.  Even then, you save
865	at least 20KB compared to the non-optimized case.  Performance of
866	various operations, including open and close, has also been
867	dramatically improved.
868
869	More optimizations to come, especially for the auto-hinter.
870
871	* include/freetype/internal/sfnt.h (TT_Face_GetKerningFunc): New
872	function type.
873	(SFNT_Interface): Add it.
874
875	* include/freetype/internal/tttypes.h (TT_HdmxEntryRec, TT_HdmxRec,
876	TT_Kern0_PairRec): Don't define if FT_OPTIMIZE_MEMORY is set.
877	(TT_FaceRec): Define `horz_metrics', `horz_metrics_size',
878	`vert_metrics', `vert_metrics_size', `hdmx_table',
879	`hdmx_table_size', `hdmx_record_count', `hdmx_record_size',
880	`hdmx_record_sizes', `kern_table', `kern_table_size,
881	`num_kern_tables', `kern_avail_bits', `kern_order_bits' if
882	FT_OPTIMIZE_MEMORY is set.
883	Don't define `hdmx', `num_kern_pairs', `kern_table_index',
884	`kern_pairs' if FT_OPTIMIZE_MEMORY is set.
885
886	* src/base/ftdbgmem.c (ft_mem_table_set): Don't shadow variable.
887	Fix compiler warning.
888
889	* src/cff/cffdrivr.c (Get_Kerning): Renamed to...
890	(cff_get_kerning): This.  Simplify.
891	(cff_driver_class): Updated.
892
893	* src/sfnt/Jamfile (_sources): Add `ttkern'.
894	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add `ttkern.c'.
895
896	* src/sfnt/sfdriver.c (sfnt_interface): Add `tt_face_get_kerning'.
897
898	* src/sfnt/sfnt.c: Include `ttkern.c'.
899
900	* src/sfnt/sfobjs.c: Include `ttkern.h'.
901	(sfnt_load_face): Consider the `kern' and `gasp' table as optional.
902	(sfnt_done_face): Call `tt_face_done_kern'.
903	Handle horizontal metrics for FT_OPTIMIZE_MEMORY.
904
905	* src/sfnt/ttkern.c, src/sfnt/ttkern.h: New files.  Code has been
906	taken from `ttload.c' and `ttload.h'.
907	Provide special versions of `tt_face_load_kern',
908	`tt_face_get_kerning', and `tt_face_done_kern' for
909	FT_OPTIMIZE_MEMORY.
910
911	* src/sfnt/ttload.c (tt_face_load_metrics, tt_face_load_hdmx,
912	tt_face_free_hdmx): Provide version for FT_OPTIMIZE_MEMORY.
913	(tt_face_load_kern, tt_kern_pair_compare, TT_KERN_INDEX): Moved to
914	`ttkern.c'.
915
916	* src/sfnt/ttload.h: Updated.
917
918	* src/sfnt/ttsbit.c (sbit_metrics_field): Add `static' keyword.
919
920	* src/truetype/ttdriver.c (Get_Kerning): Renamed to...
921	(tt_get_kerning): This.  Simplify.
922	(tt_driver_class): Updated.
923
924	* src/truetype/ttgload.c (TT_Get_Metrics): Renamed to...
925	(tt_face_get_metrics): This.  Provide version for FT_OPTIMIZE_MEMORY.
926	Update all callers.
927	(Get_Advance_Widths): Replaced with...
928	(Get_Advance_WidthPtr): This.  Provide version for
929	FT_OPTIMIZE_MEMORY.
930	Update all callers.
931
932	* src/truetype/ttgload.h: Updated.
933
9342005-02-22  David Turner  <david@freetype.org>
935
936	* src/base/ftdbgmem.c: Partly rewritten.  Added the ability to list
937	all allocation sites in the memory debugger.  Also a new function
938	FT_DumpMemory() was added.  It is only available in builds with
939	FT_DEBUG_MEMORY defined, and you must declare it in your own code to
940	use it, i.e., with something like:
941
942	  extern void FT_DumpMemory( FT_Memory );
943
944	  ...
945
946	  FT_DumpMemory( memory );
947
948	* include/freetype/config/ftoption.h
949	(TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Comment out definition --
950	again.
951	(FT_OPTIMIZE_MEMORY): New configuration macro to control various
952	optimizations for reducing the heap footprint of memory-mapped
953	TrueType files.
954
955	* include/freetype/internal/ftmemory.h (FT_ARRAY_ZERO): New
956	convenience macro.
957
958	* include/freetype/internal/tttypes.h (TT_FaceRec)
959	[FT_OPTIMIZE_MEMORY]: Use optimized types for `num_locations' and
960	`glyph_locations'.
961
962	* src/truetype/ttgload.c (load_truetype_glyph): Call
963	`tt_face_get_location'.
964
965	* src/truetype/ttobjs.c (tt_face_init)
966	[FT_CONFIG_OPTION_INCREMENTAL]: Improve error handling.
967	(tt_face_done): Call `tt_face_done_loca'.
968
969	* src/truetype/ttpload.c (tt_face_get_location, tt_face_done_loca):
970	New functions.  If FT_OPTIMIZE_MEMORY is set, the locations table is
971	read directly from memory-mapped streams, instead of being decoded
972	into the heap.
973	(tt_face_load_loca) [FT_OPTIMIZE_MEMORY]: New implementation.
974	(tt_face_load_cvt, tt_face_load_fpgm): Only load table if the
975	bytecode interpreter is compiled in.
976
977	* src/truetype/ttpload.h: Updated.
978
979	* src/autohint/ahglyph.c (ah_outline_load): Improve allocation
980	logic.
981
9822005-02-20  Werner Lemberg  <wl@gnu.org>
983
984	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
985	--copy' from libtool 1.5.14.
986	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
987	automake 1.9.4.
988
989	* builds/unix/config.guess, builds/unix/config.sub: Updated from
990	`config' CVS module at subversions.gnu.org.
991
992	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
993	`texinfo' CVS module at subversions.gnu.org.
994
9952005-02-14  Werner Lemberg  <wl@gnu.org>
996
997	* src/cff/cffcmap.c (cff_cmap_unicode_init): Don't try to build
998	a cmap for a CID-keyed font which doesn't have SIDs.
999
10002005-02-13  Werner Lemberg  <wl@gnu.org>
1001
1002	* src/type1/t1load.c (read_binary_data): Return more meaningful
1003	value.
1004	(parse_encoding, parse_subrs, parse_charstrings, parse_dict): Check
1005	parser error value after call to T1_Skip_PS_Token (where necessary).
1006
1007	* src/type1/t1parse.c (T1_Get_Private_Dict): Check parser error
1008	value after call to T1_Skip_PS_Token.
1009
1010	* src/cid/cidparse.c (cid_parser_new): Check parser error value
1011	after call to cid_parser_skip_PS_token.
1012
1013	* src/type42/t42parse.c (t42_parse_encoding, t42_parse_sfnts,
1014	t42_parse_charstrings, t42_parse_dict): Check parser error value
1015	after call to T1_Skip_PS_Token (where necessary).
1016
1017	* src/psaux/psobjs.c (skip_string, ps_parser_skip_PS_token,
1018	ps_tobytes): Add error messages.
1019
10202005-02-12  Werner Lemberg  <wl@gnu.org>
1021
1022	* configure: Output more variables to the created Makefile so that
1023	it can be used for ft2demos also (if the FT2DEMOS variable is
1024	defined).
1025
10262005-02-10  David Turner  <david@freetype.org>
1027
1028	* src/pfr/pfrgload.c (pfr_glyph_load): Fix an unbounded growing
1029	dynamic array when loading a glyph from a PFR font (Savannah bug
1030	#11921).
1031
1032	* src/base/ftbitmap.c (FT_Bitmap_Convert): Small improvements to the
1033	conversion function (mainly stupid optimization).
1034
1035	* src/base/Jamfile: Adding ftbitmap.c to the list of compiled files.
1036
10372005-02-10  Werner Lemberg  <wl@gnu.org>
1038
1039	* builds/unix/freetype-config.in: Add new flag `--ftversion' to
1040	return the FreeType version.  Suggested by George Williams
1041	<gww@silcom.com>.
1042
1043	* docs/CHANGES: Updated.
1044
10452005-02-09  Werner Lemberg  <wl@gnu.org>
1046
1047	* src/otvalid/otvmod.c (otv_validate): Deallocate arrays in case
1048	of error.  Reported by YAMANO-UCHI Hidetoshi <mer@din.or.jp>.
1049
10502005-02-08  Werner Lemberg  <wl@gnu.org>
1051
1052	* src/psaux/t1decode.c (t1_decoder_parse_charstrings)
1053	<op_closepath>: Accept `T1_Parse_Have_Moveto' state also which can
1054	happen in empty glyphs.  Reported by Ian Brown
1055	<ian.brown@printsoft.de> (Savannah bug #11856).
1056
10572005-02-04  Werner Lemberg  <wl@gnu.org>
1058
1059	* src/otlayout/*: Removed.  Obsolete.
1060
10612004-12-28  Werner Lemberg  <wl@gnu.org>
1062
1063	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
1064	--copy' from libtool 1.5.10.
1065	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
1066	automake 1.9.4.
1067	* builds/unix/configure: Regenerated with autoconf 2.59b.
1068
1069	* builds/unix/config.guess, builds/unix/config.sub: Updated from
1070	`config' CVS module at subversions.gnu.org.
1071
1072	* builds/unix/install-sh: Updated from
1073	`texinfo' CVS module at subversions.gnu.org.
1074
1075	* builds/unix/ftsystem.c (FT_Stream_Open): Add proper cast for
1076	ft_alloc.
1077	Fix compiler warning.
1078
10792004-12-27  Dirck Blaskey  <listtarget@danbala.com>
1080
1081	* src/cff/cffobjs.c (cff_face_init): Improve computation of
1082	FT_STYLE_BOLD_FLAG.
1083
10842004-12-27  Werner Lemberg  <wl@gnu.org>
1085
1086	* src/cff/cffobjs.c (cff_face_init): A CFF within an SFNT can have
1087	only a single font.  This is undocumented but has been verified on
1088	the opentype list.
1089
10902004-12-26  Werner Lemberg  <wl@gnu.org>
1091
1092	* Jamfile (FT2_COMPONENTS): Add `otvalid'.
1093
10942004-12-25  Werner Lemberg  <wl@gnu.org>
1095
1096	* src/base/ftbitmap.c (FT_Bitmap_Convert): Fix compiler warning.
1097
10982004-12-15  Werner Lemberg  <wl@gnu.org>
1099
1100	* vms_make.com: Add ftbitmap.obj.
1101
11022004-12-14  Werner Lemberg  <wl@gnu.org>
1103
1104	* src/base/ftbitmap.c, include/freetype/ftbitmap.h: New files for
1105	handling various bitmap formats.
1106
1107	* include/freetype/config/ftheader.h (FT_BITMAP_H): New macro.
1108
1109	* src/base/rules.mk (BASE_EXT_SRC): Add ftbitmap.c.
1110
1111	* src/bdf/bdfdrivr.c (BDF_Glyph_Load): Don't convert bitmaps to 8bpp
1112	but return them as-is.
1113
1114	* docs/CHANGES: Mention new bitmap API.
1115	* include/freetype/ftchapters.h: Updated.
1116
11172004-12-11  Robert Clark  <freetype@ratty.org.uk>
1118
1119	* src/base/ftobjs.c (FT_Get_Kerning): Make kerning amount
1120	dependent on ppem by scaling down for ppem < 25, then do normal
1121	rounding.  This gives slightly better results than rounding towards
1122	zero.
1123
11242004-12-09  Werner Lemberg  <wl@gnu.org>
1125
1126	* src/base/ftobjs.c (FT_Get_Kerning): Always round towards zero
1127	for FT_KERNING_DEFAULT.  This greatly enhances the kerning for
1128	small ppem values.
1129
11302004-12-08  Werner Lemberg  <wl@gnu.org>
1131
1132	* src/base/ftobjs.c (ft_glyphslot_clear): Reset `lsb_delta' and
1133	`rsb_delta'.
1134
11352004-12-05  Werner Lemberg  <wl@gnu.org>
1136
1137	* builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h.
1138
11392004-12-03  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
1140
1141	* include/freetype/ttnameid.h: Updated to latest
1142	specifications from Microsoft.
1143
11442004-11-26  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
1145
1146	* vms_make.com: Include ftbbox.c.
1147	Fix `ccopt'.
1148	Handle `otvalid' module.
1149	Update `vmslib.dat' default values.
1150	Fixes to `libs.opt'.
1151
11522004-11-23  Anders Kaseorg  <anders@kaseorg.com>
1153
1154	* src/base/ftoutln.c (FT_OrientationExtremumRec,
1155	ft_orientation_extremum_compute): Removed.
1156	(FT_Outline_Get_Orientation): Rewritten, simplified.
1157
1158	* src/autohint/ahglyph.c: Include FT_OUTLINE_H.
1159	(ah_test_extremum, ah_get_orientation): Removed.
1160	(ah_outline_load): Use FT_Outline_Get_Orientation.
1161
1162	* src/base/ftsynth.c (ft_test_extrema, ft_get_orientation): Removed.
1163	(FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation.
1164
11652004-11-23  Fernando Papa  <fpapa@netgate.com.uy>
1166
1167	* src/truetype/ttinterp.h: Fix typo.
1168
11692004-11-22  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
1170
1171	* builds/win32/detect.mk: Corrected logic that detects Windows NT to
1172	use the previous change even if win32 is forced.  Corrected
1173	detection of win32 on Win9X.
1174
1175	* builds/dos/detect.mk: Added same correction as for win32 about
1176	COPY on Windows NT.  Detection of plain DOS 7.x.
1177
11782004-11-22  Werner Lemberg  <wl@gnu.org>
1179
1180	* builds/detect.mk: Undo change from 2004-11-20.
1181	* builds/win32/detect.mk: If the `OS' environment variable contains
1182	`Windows_NT', use `cmd.exe /c copy' for copying files.
1183
11842004-11-20  Werner Lemberg  <wl@gnu.org>
1185
1186	* builds/detect.mk (dos_setup): Use `cmd.exe' for copying
1187	$(CONFIG_MK) to force lowercase file name under Windows.
1188
11892004-11-19  Werner Lemberg  <wl@gnu.org>
1190
1191	Fix a serious bug in the TT hinter.
1192
1193	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Don't shift
1194	points vertically before hinting.
1195
1196	* docs/CHANGES: Updated.
1197
1198	* src/cache/ftcglyph.c (FTC_GNode_UnselectFamily,
1199	FTC_GCache_Lookup): A new try to fix comparison with zero.
1200
12012004-11-16  Werner Lemberg  <wl@gnu.org>
1202
1203	* builds/unix/configure.ac: Add `-fno-strict-aliasing' if gcc is
1204	used.
1205	* builds/unix/configure: Regenerated.
1206	* builds/unix/config.guess, builds/unix/config.sub: Updated from
1207	`config' CVS module at subversions.gnu.org.
1208
12092004-11-16  Dr. Martin P.J. Zinser  <zinser@decus.de>
1210
1211	* src/cache/ftcglyph.c (FTC_GNode_UnselectFamily,
1212	FTC_GCache_Lookup): Fix comparison with zero.
1213
1214	* docs/INSTALL.VMS: Updated.
1215
1216	* vms_make.com: Updated.  All `descrip.mms' files are now created
1217	automatically.
1218
1219	* src/*/descrip.mms: Removed.
1220
12212004-11-16  Owen Taylor  <otaylor@redhat.com>
1222
1223	* builds/unix/freetype-config.in: Suppress -L$libdir for
1224	/usr/lib64 as well as /usr/lib.  (Reported by Dan Winship -
1225	https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=139199)
1226
12272004-11-11  Werner Lemberg  <wl@gnu.org>
1228
1229	* src/cff/cffdrivr.c (cff_service_ps_info): Updated.
1230	* src/cid/cidriver.c (cid_service_ps_info): Updated.
1231	* src/type42/t42drivr.c (t42_ps_get_font_private): New function.
1232	(t42_service_ps_info): Updated.
1233
1234	* src/type42/t42parse.c (t42_parse_dict): Remove compiler warning.
1235
12362004-11-11  David Bevan  <dbevan@emtex.com>
1237
1238	Add new function FT_Get_PS_Font_Private().
1239
1240	* include/freetype/internal/services/svpsinfo.h
1241	(PS_GetFontPrivateFunc): New service function.
1242
1243	* include/freetype/t1tables.h, src/base/fttype1.c
1244	(FT_Get_PS_Font_Private): New function.
1245
1246	* src/type1/t1driver.c (t1_ps_get_font_private): New function.
1247	(t1_service_ps_info): Updated.
1248
12492004-10-13  Werner Lemberg  <wl@gnu.org>
1250
1251	* include/freetype/config/ftstdlib.h: Include `stddef.h'.
1252	(ft_ptrdiff_t): Define.
1253
1254	* include/freetype/fttypes.h (FT_PtrDist): Use `ft_ptrdiff_t'.
1255
1256	* src/cid/cidload.c (cid_parse_dict), src/type1/t1load.c
1257	(parse_dict): Fix compiler warning.
1258
12592004-10-11  Joshua Neal  <jneal@csdaily.com>
1260
1261	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Check for pointer
1262	overflow.
1263
1264	* src/sfnt/ttload.c (tt_face_load_hdmx): Protect against bad input.
1265	Don't use FT_QNEW_ARRAY but FT_NEW_ARRAY to make deallocation work
1266	in case of failure.
1267
1268	* src/sfnt/ttsbit.c (Load_SBit_Range): Check range intervals.
1269	(tt_face_load_sbit_strikes): Allocate `strike_sbit_ranges' after
1270	frame test.
1271
1272	* src/truetype/ttgload.c (TTLoad_Simple_Glyph): Add assertion for
1273	`flag'.
1274
12752004-10-09  Werner Lemberg  <wl@gnu.org>
1276
1277	* docs/CHANGES: Updated.
1278
12792004-10-09  Boris Letocha  <b.letocha@cz.gmc.net>
1280
1281	Fix handling of NPUSHW if skipped in data stream.
1282
1283	* src/truetype/ttinterp.c (opcode_length): Set value for NPUSHW
1284	to -2.
1285	(SkipCode, TT_RunIns): Use opcode_length value for computation of
1286	bytes to be skipped.
1287
12882004-09-10  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
1289
1290	* vms_make.com: Updated.
1291
12922004-09-09  Werner Lemberg  <wl@gnu.org>
1293
1294	Adding OpenType validation module.  The code is based on the
1295	(unfinished) `otlayout' module but has been heavily modified to make
1296	it much more compact.
1297
1298	* src/otvalid/*: New module.
1299
1300	* include/freetype/ftotval.h, src/base/ftotval.c,
1301	include/freetype/internal/services/svotval.h: New files.
1302
1303	* include/freetype/config/ftmodule.h: Add otv_module_class.
1304	* include/freetype/config/ftheader.h (FT_OPENTYPE_VALIDATE_H): New
1305	macro.
1306	* include/freetype/internal/ftserv.h
1307	(FT_SERVICE_OPENTYPE_VALIDATE_H): New macro.
1308	* include/freetype/internal/fttrace.h (otvmodule, otvcommon,
1309	otvbase, otvgdef, otvgpos, otvgsub, otvjstf): New trace components.
1310
1311	* include/freetype/ftchapters.h: Updated.
1312
1313	* src/base/Jamfile (Library), src/base/descrip.mms (OBJS),
1314	src/base/rules.mk (BASE_EXT_SRC): Updated.
1315
1316	* docs/CHANGES: Updated.
1317
13182004-09-08  Werner Lemberg  <wl@gnu.org>
1319
1320	* src/tools/docmaker/sources.py (re_source_block_format2) <column>:
1321	Use lookahead assertion to not match `*/'.  This removes spurious
1322	insertions of `/' in the HTML output.
1323
13242004-09-07  Werner Lemberg  <wl@gnu.org>
1325
1326	* src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Fix call to
1327	FT_NEW_ARRAY.
1328
13292004-09-04  Werner Lemberg  <wl@gnu.org>
1330
1331	* include/freetype/internal/ftobjs.h: Don't include
1332	FT_CONFIG_STANDARD_LIBRARY_H.
1333	(FT_Validator, FT_ValidationLevel, FT_ValidatorRec, FT_VALIDATOR,
1334	ft_validator_init, ft_validator_run, ft_validator_error, FT_INVALID,
1335	FT_INVALID_TOO_SHORT, FT_INVALID_OFFSET, FT_INVALID_FORMAT,
1336	FT_INVALID_GLYPH_ID, FT_INVALID_DATA): Move to...
1337
1338	* include/freetype/internal/ftvalid.h: New file.
1339	Make FT_INVALID return module-specific error codes.
1340
1341	* include/freetype/internal/internal.h (FT_INTERNAL_VALIDATE_H): New
1342	macro.
1343
1344	* include/freetype/fterrors.h: Undefine FT_ERR_PREFIX only if
1345	FT_KEEP_ERR_PREFIX isn't defined.
1346
1347	* src/base/ftobjs.c: Include FT_INTERNAL_VALIDATE_H.
1348
1349	* src/sfnt/ttcmap.h: Don't include FT_INTERNAL_OBJECTS_H but
1350	FT_INTERNAL_VALIDATE_H.
1351
1352	* src/sfnt/ttcmap.c: Don't include FT_INTERNAL_OBJECTS_H but
1353	FT_INTERNAL_VALIDATE_H.
1354	Include sferrors.h before FT_INTERNAL_VALIDATE_H.
1355	s/FT_Err_Ok/SFNT_Err_Ok/.
1356
1357	* src/sfnt/sferrors.h: Define FT_KEEP_ERR_PREFIX.
1358
1359	* src/type1/t1afm.c: Include t1errors.h.
1360
13612004-09-03  Werner Lemberg  <wl@gnu.org>
1362
1363	* src/base/ftdebug.c (ft_debug_init): Highest debug level is 7,
1364	not 6.
1365	* docs/DEBUG: Updated.
1366
13672004-08-30  Werner Lemberg  <wl@gnu.org>
1368
1369	* include/freetype/tttags.h (TTAG_BASE, TTAG_GDEF, TTAG_GPOS,
1370	TTAG_JSTF): New tags.
1371
1372	* include/freetype/fttypes.h (FT_Bytes, FT_Tag): New typedefs.
1373	(FT_Int): Add `signed'.
1374
13752004-08-29  Werner Lemberg  <wl@gnu.org>
1376
1377	* src/otlayout/otlgpos.c (otl_gpos_subtable_validate): Add argument
1378	to pass number of lookups.
1379	Update all callers.
1380	Don't call otl_lookup_list_validate but otl_lookup_validate.
1381	(otl_gpos_validate): Call otl_lookup_list_validate instead of
1382	otl_gpos_subtable_validate.
1383
1384	* src/otlayout/otlgpos.h: Updated.
1385
1386	* src/otlayout/otljstf.c (otl_jstf_max_validate): Add argument to
1387	pass number of lookups.
1388	Update all callers.
1389
1390
1391	* src/cff/cffparse.c (cff_parse_real): s/exp/exponent/ to avoid
1392	compiler warning.
1393
1394
1395	* src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Renamed to...
1396	* src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: This.
1397	* src/sfnt/Jamfile, src/sfnt/rules.mk, src/sfnt/sfdriver.c,
1398	src/sfnt/sfnt.c, src/sfnt/sfobjs.c: Updated.
1399
1400
1401	* builds/compiler/gcc-dev.mk (CFLAGS): Don't add `-Wnested-externs'
1402	if compiler is g++ (v3.3.3 emits a warning otherwise).
1403
14042004-08-28  Werner Lemberg  <wl@gnu.org>
1405
1406	* src/otlayout/otlgpos.c (otl_value_length): Return number of bytes,
1407	not number of 16bit entities.
1408	(otl_gpos_lookup2_validate): Check class definition tables for
1409	format 2.
1410	Fix loop for format 2.
1411	(otl_liga_mark2_validate): Fix offset for otl_anchor_validate.
1412
14132004-08-27  Werner Lemberg  <wl@gnu.org>
1414
1415	* src/base/ftmac.c: Don't include truetype/ttobjs.h.
1416	Don't include type1/t1objs.h.
1417	(FT_New_Face_From_FSSpec) [!__MWERKS__]: Remove compiler warnings.
1418
14192004-08-27  Mathieu Malaterre  <mathieu@malaterre.com>
1420
1421	* src/base/ftmac.c: Handle OS_INLINE for xlc compiler also.
1422
14232004-08-27  Werner Lemberg  <wl@gnu.org>
1424
1425	* src/otlayout/otlayout.h: Add copyright.
1426	(OTL_INVALID_OFFSET): Removed.
1427
1428	* src/otlayout/otlgdef.h: Include otlayout.h.
1429	Comment out inclusion of otltable.h.
1430
1431	* src/otlayout/otlgpos.c (otl_gpos_lookup4_validate): Fix call
1432	to otl_base_array_validate.
1433	(otl_liga_mark2_validate): Fix `for' loop.
1434
1435	* src/otlayout/otlgsub.c (otl_ligature_validate): Check `glyph_id',
1436	not components array.
1437
1438	* src/otlcommn.c (otl_lookup_get_count, otl_feature_get_count):
1439	Comment out.
1440	(otl_lookup_list_get_count, otl_feature_list_get_count): Activate.
1441	(otl_feature_list_validate, otl_gsubgpos_get_lookup_count):
1442	s/otl_lookup_get_count/otl_lookup_list_get_count/.
1443	(otl_script_list_validate):
1444	s/otl_feature_get_count/otl_feature_list_get_count/.
1445	(otl_script_validate): Call otl_lang_validate for default language.
1446
1447	* src/otlayout/otlcommn.h: Updated.
1448
14492004-08-16  Werner Lemberg  <wl@gnu.org>
1450
1451	* src/otlayout/otlgpos.c (otl_gpos_lookup1_validate,
1452	otl_gpos_lookup2_validate, otl_gpos_lookup3_validate,
1453	otl_gpos_lookup4_validate, otl_gpos_lookup5_validate,
1454	otl_gpos_lookup6_validate, otl_gpos_lookup9_validate,
1455	otl_gpos_validate): Update
1456	function arguments.
1457	(otl_gpos_lookup7_validate, otl_gpos_lookup8_validate): Update
1458	function arguments.
1459	Handle NULL offsets correctly.
1460	Check sequence and lookup indices for format 3.
1461	(otl_pos_rule_validate, otl_chain_pos_rule_validate): Add argument
1462	to pass lookup count.
1463	Check sequence and glyph indices.
1464	(otl_gpos_subtable_validate): Update function arguments.
1465	Update callers.
1466
1467	* src/otlayout/otlgpos.h: Updated.
1468
1469	* src/otlayout/otlgsub.c (otl_gsub_lookup1_validate,
1470	otl_gsub_lookup3_validate, otl_gsub_lookup8_validate): Update
1471	function arguments.
1472	Add glyph index checks.
1473	(otl_sequence_validate, otl_alternate_set_validate,
1474	otl_ligature_validate): Add argument to pass glyph count.
1475	Update callers.
1476	Add glyph index check.
1477	(otl_gsub_lookup2_validate, otl_gsub_lookup4_validate): Update
1478	function arguments.
1479	(otl_ligature_set_validate): Add argument to pass glyph count.
1480	Update caller.
1481	(otl_sub_class_rule_validate,
1482	otl_sub_class_rule_set_validate): Removed.
1483	(otl_sub_rule_validate, otl_chain_sub_rule_validate): Add argument
1484	to pass lookup count.
1485	Update callers.
1486	Add lookup index check.
1487	(otl_sub_rule_set_validate, otl_chain_sub_rule_set_validate): Add
1488	argument to pass lookup count.
1489	Update callers.
1490	(otl_gsub_lookup5_validate): Update function arguments.
1491	Handle NULL offsets correctly.
1492	Don't call otl_sub_class_rule_set_validate but
1493	otl_sub_rule_set_validate.
1494	Check sequence and lookup indices for format 3.
1495	(otl_gsub_lookup6_validate): Update function arguments.
1496	Handle NULL offsets correctly.
1497	Check sequence and lookup indices for format 3.
1498	(otl_gsub_lookup7_validate, otl_gsub_validate): Update function
1499	arguments.
1500
1501	* src/otlayout/otlgsub.h: Updated.
1502
1503	* src/otlayout/otlbase.c (otl_base_validate): Handle NULL offsets
1504	correctly.
1505
1506	* src/otlayout/otlcommn.c (otl_class_definition_validate): Fix
1507	compiler warning.
1508	(otl_coverage_get_first, otl_coverage_get_last): New functions.
1509	(otl_lookup_validate): Add arguments to pass lookup and glyph
1510	counts.
1511	Update callers.
1512	(otl_lookup_list_validate): Add argument to pass glyph count.
1513	Update callers.
1514
1515	* src/otlayout/otlcommn.h: Updated.
1516
1517	* src/otlayout/otljstf.c (otl_jstf_extender_validate,
1518	otl_jstf_max_validate, otl_jstf_script_validate,
1519	otl_jstf_priority_validate, otl_jstf_lang_validate): Add parameter
1520	to validate glyph indices.
1521	Update callers.
1522	(otl_jstf_validate): Add parameter which specifies number of glyphs
1523	in font.
1524
1525	* src/otlayout/otljstf.h: Updated.
1526
15272004-08-15  Werner Lemberg  <wl@gnu.org>
1528
1529	* src/otlayout/otlgpos.c (otl_liga_mark2_validate): Add parameter
1530	to handle possible NULL values properly.
1531	Update all callers.
1532
15332004-08-15  Werner Lemberg  <wl@gnu.org>
1534
1535	* src/otlayout/gpos.c: Rename counting variables to be more
1536	meaningful.
1537	Add copyright.
1538	(otl_liga_attach_validate): Renamed to...
1539	(otl_liga_mark2_validate): This.
1540	Update all callers.
1541	(otl_mark2_array_validate): Removed.
1542	(otl_gpos_lookup6_validate): Call otl_liga_mark2_validate, not
1543	otl_mark2_array_validate.
1544	(otl_pos_class_set_validate, otl_pos_class_rule_validate): Removed.
1545	(otl_gpos_lookup7_validate): Complete code for format 2.
1546	(otl_chain_pos_class_rule_validate,
1547	otl_chain_pos_class_set_validate): Removed.
1548	(otl_gpos_lookup8_validate): Don't call
1549	otl_chain_pos_class_set_validate but
1550	otl_chain_pos_rule_set_validate.
1551	Simplify some code.
1552
1553	* src/otlayout/otlgpos.h: Add copyright.
1554
15552004-08-14  Werner Lemberg  <wl@gnu.org>
1556
1557	* src/otlayout/otljstf.c (otl_jstf_gsub_mods_validate): Removed.
1558	(otl_jstf_gpos_mods_validate): Renamed to...
1559	(otl_jstf_gsubgpos_mods_validate): This.
1560	Test whether lookup_count is zero.
1561	(otl_jstf_priority_validate): Use otl_jstf_gsubgpos_mods_validate.
1562	(otl_jstf_validate): Initialize gsub_lookup_count and
1563	gpos_lookup_count if gsub or gpos is zero.
1564
1565	* src/otlayout/otlgsub.c: Rename counting variables to be more
1566	meaningful.
1567	Add copyright.
1568	(otl_gsub_lookup1_validate): Simplify code.
1569	(otl_gsub_lookup2_validate, otl_gsub_lookup3_validate,
1570	otl_gsub_lookup4_validate, otl_gsub_lookup7_validate): Remove unused
1571	variables.
1572	(otl_gsub_lookup5_validate): Remove unused variable.
1573	Fix call to otl_sub_rule_set_validate and
1574	otl_sub_class_rule_set_validate.
1575	(otl_chain_sub_class_rule_validate,
1576	otl_chain_sub_class_set_validate): Removed.
1577	(otl_gsub_lookup6_validate): Remove unused variable.
1578	Fix call to otl_chain_sub_rule_set_validate.
1579	(otl_gsub_lookup7_validate): Handle lookup type 8 also.
1580	(otl_gsub_lookup8_validate: New function.
1581	(otl_gsub_lookup1_apply, otl_gsub_lookup2_apply,
1582	otl_gsub_lookup3_apply): Commented out.
1583	(otl_gsub_validate_funcs): Add otl_gsub_lookup7_validate and
1584	otl_gsub_lookup8_validate.
1585	(otl_gsub_validate): Updated.
1586
1587	* src/otlayout/otlgsub.h: Add copyright.
1588
1589	* src/otlayout/otlcommn.c, src/otlayout/otlcommn.h
1590	(otl_coverage_get_index): Comment out.
1591
15922004-08-13  Werner Lemberg  <wl@gnu.org>
1593
1594	* src/otlayout/otlcommn.c (otl_gsubgpos_get_lookup_count): New
1595	function.
1596	* src/otlayout/otlcommn.h: Updated.
1597
1598	* src/otlayout/otlbase.c: Rename counting variables to be more
1599	meaningful.
1600	Add copyright message.
1601	* src/otlayout/otlbase.h: Add copyright message.
1602
1603	* src/otlayout/otlgdef.c: Rename counting variables to be more
1604	meaningful.
1605	Add copyright message.
1606	Use OTL_CHECK everywhere.
1607	(otl_caret_value_validate): Remove unused variable.
1608	(otl_gdef_validate): All tables are optional.
1609	* src/otlayout/otlgdef.h: Add copyright message.
1610
1611	* src/otlayout/otljstf.c: Rename counting variables to be more
1612	meaningful.
1613	Add copyright message.
1614	(otl_jstf_gsub_mods_validate, otl_jstf_gpos_mods_validate): Add
1615	parameter to pass lookup count.
1616	Update all callers.
1617	Check lookup array.
1618	(otl_jstf_max_validate):
1619	s/otl_gpos_subtable_check/otl_gpos_subtable_validate/.
1620	(otl_jstf_priority_validate, otl_jstf_lang_validate,
1621	otl_jstf_script_validate): Add two parameters to pass lookup counts.
1622	Update all callers.
1623	(otl_jstf_validate): Add two parameters to pass GPOS and GSUB
1624	table offsets; use otl_gsubgpos_get_lookup_count to convert extract
1625	lookup counts.
1626	Fix typo.
1627	* src/otlayout/otljstf.h: Updated.
1628	Add copyright message.
1629
1630	* src/otlayout/otlgpos.c (otl_gpos_subtable_validate): New function.
1631	(otl_gpos_validate): Use it.
1632	* src/otlayout/otlgpos.h: Updated.
1633
16342004-08-13  Werner Lemberg  <wl@gnu.org>
1635
1636	* src/otlayout/otcommn.c: Use OTL_CHECK everywhere.
1637	(otl_coverage_validate): Initialize `p',
1638	s/count/num_glyphs/.
1639	s/start_cover/start_coverage/.
1640	(otl_coverage_get_index): Return OTL_Long, not OTL_Int.
1641	Remove unused variables.
1642	(otl_class_definition_validate): s/count/num_glyphs/.
1643	Remove unused variables.
1644	(otl_class_definition_get_value, otl_device_table_get_start,
1645	otl_device_table_get_end, otl_device_table_get_delta,
1646	otl_lookup_get_table, otl_lookup_list_get_count,
1647	otl_lookup_list_get_lookup, otl_lookup_list_get_table,
1648	otl_feature_get_lookups, otl_feature_list_get_count,
1649	otl_feature_list_get_feature, otl_lang_get_count,
1650	otl_lang_get_req_feature, otl_lang_get_features): Commented out
1651	temporarily until we really need it.
1652	(otl_lookup_validate): Removed.
1653	(otl_lookup_table_validate): Renamed to ...
1654	(otl_lookup_validate): This.  Update callers.
1655	(otl_lookup_list_validate): Remove already commented out definition
1656	and move the other definition up.
1657	(otl_feature_validate): Add parameter to pass number of lookups.
1658	Update callers.
1659	Check lookup indices.
1660	(otl_feature_list_validate): Add parameter to pass lookup table.
1661	Update callers.
1662	(otl_lang_validate): Add parameter to pass number of features.
1663	Update callers.
1664	Handle req_feature and check feature indices.
1665	(otl_script_validate): Add parameter to pass number of features.
1666	Update callers.
1667	(otl_script_list_validate): Add parameter to pass feature table.
1668	Update callers.
1669
1670	* src/otlayout/otcommn.h: s/LOCALDEF/LOCAL/.
1671	Comment out the same functions as in otcommn.c.
1672	(otl_script_list_get_script): Removed.
1673
1674	* src/otlayout/otlgsub.c (otl_gsub_lookup1_apply): Change `index' to
1675	type OTL_Long.
1676	(otl_gsub_lookup2_apply, otl_gsub_lookup3_apply): Change `index' to
1677	type OTL_Long.
1678	Fix test.
1679	(otl_gsub_validate): Fix order of validation.
1680
1681	* src/otlayout/otlgpos.c (otl_gpos_validate): Fix order of
1682	validation.
1683
16842004-08-12  Werner Lemberg  <wl@gnu.org>
1685
1686	Make otlayout module compile (without actually working).
1687
1688	* src/otlayout/*: s/OTL_Valid/OTL_Validator/.
1689	s/NULL/0/.
1690
1691	* src/otlayout/otlayout.h: Fix various typos.
1692	(OTL_Bool): New typedef.
1693	(OTL_Int, OTL_Long, OTL_Int16, OTL_Int32): Use `signed' keyword.
1694	(OTL_Err_InvalidArgument): Removed.
1695	(OTL_Err_InvalidData, OTL_Err_InvalidSize): New enum values.
1696	(OTL_MAKE_TAG): Add missing parenthesis.
1697	(OTL_INVALID_DATA): Use OTL_Err_InvalidData.
1698	(OTL_INVALID_TOO_SHORT): Use OTL_Err_InvalidSize.
1699	(OTL_INVALID_FORMAT, OTL_INVALID_OFFSET): New macros.
1700
1701	* src/otlayout/otlgpos.c: s/FT_/OTL_/.
1702	s/OTL_Short/OTL_Int16/.
1703	(otl_gpos_pairset_validate): Add return type.
1704	(otl_base_array_validate): Fix call to otl_anchor_validate.
1705	(otl_liga_array_validate): Fix call to otl_liga_attach_validate.
1706	(otl_gpos_lookup5_validate): Fix typos.
1707	(otl_gpos_lookup6_validate): Fix call to otl_mark2_array_validate.
1708	(otl_gpos_lookup7_validate): Comment out unfinished code.
1709	Fix typos.
1710
1711	* src/otlayout/otlgsub.c: Add forward declaration for
1712	otl_gsub_validate_funcs.
1713	(otl_gsub_lookup1_apply, otl_gsub_lookup2_apply,
1714	otl_gsub_lookup3_apply): Fix call to otl_parser_check_property.
1715	s/otl_coverage_lookup/otl_coverage_get_index/.
1716	(otl_ligature_validate): Add missing variable declaration.
1717	(otl_sub_rule_validate): Fix typo.
1718	(otl_sub_class_rule_validate): Add missing variable declaration.
1719	Fix typo.
1720	(otl_gsub_lookup5_validate): Fix typo.
1721	(otl_gsub_lookup6_validate): Fix call to
1722	otl_chain_sub_class_set_validate.
1723	(otl_gsub_validate_funcs): Don't use `const'.
1724
1725	* src/otlayout/otlcommn.c (otl_class_definition_get_value,
1726	otl_device_table_validate, otl_device_table_get_delta,
1727	otl_lookup_validate, otl_script_validate): Add missing
1728	variable declarations.
1729	(otl_lookup_list_validate): Comment out first definition.
1730	(otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.
1731	(otl_feature_list_validate):
1732	s/otl_feature_table_validate/otl_feature_validate/.
1733	(otl_script_list_validate):
1734	s/otl_script_table_validate/otl_script_validate/.
1735
1736	* src/otlayout/otlcommn.h: Comment out first declaration.
1737	(otl_lookup_list_foreach, otl_feature_list_foreach): Comment out.
1738
1739	* src/otlayout/otlbase.c (otl_base_coord_validate): Fix call to
1740	otl_device_table_validate.
1741	(otl_base_script_validate): Add missing variable declarations.
1742	(otl_base_script_list_validate): Fix call to
1743	otl_base_script_validate.
1744	(otl_axis_table_validate): Fix calls to otl_base_tag_list_validate
1745	and otl_base_script_list_validate.
1746	(otl_base_validate): Fix calls to otl_axis_table_validate.
1747
1748	* src/otlayout/otlgdef.c (otl_attach_list_validate): Fix call to
1749	otl_attach_point_validate.
1750	(otl_caret_value_validate): Add missing variable declaration.
1751	Fix call to otl_device_table_validate.
1752	(otl_ligature_glyph_validate): Fix call to otl_caret_value_validate.
1753	(otl_ligature_caret_list_validate): Fix call to
1754	otl_ligature_glyph_validate.
1755	(otl_gdef_validate): Fix calls to otl_class_definition_validate,
1756	otl_attach_list_validate, otl_ligature_caret_list_validate, and
1757	otl_class_definition_validate.
1758
1759	* src/otlayout/otltable.h (otl_table_validate, otl_table_init,
1760	otl_table_set_script): Comment out.
1761
1762	* src/otlayout/otlparse.h (OTL_ParserRec):
1763	s/OTL_Alternate/OTL_GSUB_Alternate/.
1764	(OTL_ParseError): Add OTL_Err_Parser_Memory and
1765	OTL_Err_Parser_Internal.
1766	(otl_parser_error): Fix typo.
1767	(otl_parser_check_property): Remove third argument.
1768
1769	* src/otlayout/otlparse.c (otl_string_ensure):
1770	s/OTL_Parse_Err_Memory/OTL_Err_Parser_Memory/.
1771	(OTL_STRING_ENSURE, otl_parser_error, otl_parser_get_index,
1772	otl_parser_replace_1, otl_parser_replace_n): Fix typos.
1773	(OTL_PARSER_UNCOVERED): Removed.
1774	(otl_parser_check_property): Remove third argument.
1775
1776	* src/otlayout/otljstf.c (otl_jstf_priority_validate): Add missing
1777	variable declaration.
1778
1779	* src/otlayout/otlutils.h (OTL_MEM_REALLOC): Fix typo.
1780
17812004-08-11  Danny  <dannyboynow@yahoo.com>
1782
1783	* src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close
1784	to NULL.  This allows custom close functions to delete the FT_STREAM
1785	object.
1786
17872004-08-11  Werner Lemberg  <wl@gnu.org>
1788
1789	Add API to get information about SFNT tables.
1790
1791	* include/freetype/internal/services/svsfnt.h
1792	(FT_SFNT_Table_Info_Func): New typedef.
1793	(SFNT_Table): Add it.
1794
1795	* src/base/ftobjs (FT_Sfnt_Table_Info): New function.
1796
1797	* include/freetype/tttables.h: Updated.
1798
1799	* src/sfnt/sfdriver.c (sfnt_table_info): New function.
1800	(sfnt_service_sfnt_table): Add it.
1801
1802	* docs/CHANGES: Updated.
1803
1804
1805	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 10.
1806
1807	* builds/unix/configure.ac (version_info): Set to 9:8:3.
1808	* builds/unix/configure: Updated.
1809
1810	* builds/win32/visualc/index.html,
1811	builds/win32/visualc/freetype.dsp,
1812	builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
1813
1814	* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
1815	s/2.1.9/2.1.10/.
1816
1817	* docs/CHANGES, docs/VERSION.DLL: Updated.
1818
18192004-08-11  Detlef Würkner  <TetiSoft@apg.lahn.de>
1820
1821	* src/base/ftrfork.c (FT_Raccess_Guess)
1822	[!FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK]: Remove compiler
1823	warnings.
1824
18252004-08-06  Adam Piotrowski  <st_intel@poczta.onet.pl>
1826
1827	* src/pfr/pfrload.c (pfr_sort_kerning_pairs): Single-byte
1828	adjustments are unsigned, not signed.
1829
18302004-08-05  David Turner  <david@freetype.org>
1831
1832	`Activate' gray-scale specifying hinting within the TrueType
1833	bytecode interpreter.  This is an experimental feature which
1834	should probably be made optional.
1835
1836	* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
1837	load_truetype_glyph): Move the code to set the pedantic_hinting flag
1838	to...
1839	(TT_Load_Glyph): Here.
1840	Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'.
1841
1842	* src/truetype/ttinterp.c (Ins_GETINFO): Return MS rasterizer
1843	version 1.7.
1844	Return rotation and stretching info only if glyph is rotated or
1845	stretched, respectively.
1846	Handle grayscale info.
1847
1848	* src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale'
1849	member.
1850
18512004-08-02  George Williams  <gww@silcom.com>
1852
1853	* src/base/ftobjs.c (FT_Attach_File): Initialize `open.stream'.
1854
18552004-08-01  Werner Lemberg  <wl@gnu.org>
1856
1857	* docs/CHANGES: Updated.
1858
18592004-08-01  George Williams  <gww@silcom.com>
1860
1861	FreeType now can read kerning values from PFM files.
1862
1863	* src/type1/t1afm.c (T1_Done_AFM): Renamed to...
1864	(T1_Done_Metrics): This.
1865	Update all callers.
1866	(T1_Read_AFM): Make it static.
1867	Don't enter and leave a frame.
1868	(LITTLE_ENDIAN_USHORT, LITTLE_ENDIAN_UINT): New macros.
1869	(T1_Read_PFM): New function.
1870	(T1_Read_Metrics): New higher-level function to be used instead of
1871	T1_Read_AFM.
1872	Update all callers.
1873
18742004-07-31  Werner Lemberg  <wl@gnu.org>
1875
1876	* src/pcf/pcfread (pcf_load_font), src/bdf/bdfdrivr.c
1877	(BDF_Face_Init), src/truetype/ttgxvar (TT_Get_MM_Var,
1878	tt_face_vary_cvt): Fix compiler warnings.
1879
18802004-07-26  Søren Sandmann  <sandmann@daimi.au.dk>
1881
1882	* src/pcf/pcfread.c (pcf_interpret_style): Always allocate memory for
1883	face->style_name.
1884	* src/pcf/pcfdrivr.c (PCF_Face_Done): Free `style_name'.
1885
18862004-07-26  Darren J Longhorn  <darren.longhorn@redcom.co.uk>
1887
1888	* include/freetype/config/ftconfig.h (FT_SIZEOF_LONG): Recognize
1889	five-byte `long' (which is avoided then).
1890
18912004-07-25  Detlef Würkner  <TetiSoft@apg.lahn.de>
1892
1893	* src/pcf/pcfdrivr.c (PCF_Set_Pixel_Size): Compare heights, not
1894	ppem values.
1895	(PCF_Set_Point_Size): Don't call PCF_Set_Pixel_Size but provide own
1896	code to compare ppem values.
1897	* src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Compare heights, not
1898	ppem values.
1899	(BDF_Set_Point_Size): Don't call BDF_Set_Pixel_Size but provide own
1900	code to compare ppem values.
1901
19022004-07-25  Kornfeld Eliyahu Peter  <peter@e-kadmon.net>
1903
1904	* src/sfnt/sfobjs.c (sfnt_load_face): Handle
1905	TT_NAME_ID_PREFERRED_FAMILY and TT_NAME_ID_PREFERRED_SUBFAMILY.
1906
19072004-07-24  Derek B. Noonburg  <derekn@foolabs.com>
1908
1909	* src/cff/cffload.c (cff_font_load): Always create inverse mapping.
1910	Even if the charstring count is the same as the CID count, it is
1911	still possible that the font uses a different CID -> GID mapping.
1912
19132004-07-23  Werner Lemberg  <wl@gnu.org>
1914
1915	* src/truetype/ttobjs.c (tt_face_init): Accept 0x00020000 format tag
1916	found in some Arphic fonts made for Chinese version of Windows 3.1.
1917
19182004-07-17  David Turner  <david@freetype.org>
1919
1920	Fixed a dangling pointer bug in the cache code that happened in very
1921	rare cases, i.e., when a new family object was destroyed by an
1922	out-of-memory condition during a glyph node initialization.  The
1923	function FTC_Cache_Lookup would flush the cache and restart the
1924	lookup with a bad pointer.
1925
1926	* include/freetype/cache/ftcglyph.h (FTC_FAMILY_TREE): New macro.
1927	(FTC_GCACHE_LOOKUP_CMP): Use it.
1928	Handle reference count in `num_nodes' correctly.
1929
1930	* src/cache/ftcglyph.c (FTC_GNode_UnselectFamily): Use
1931	FTC_FAMILY_FREE.
1932	(FTC_GCache_Lookup): Handle reference count in `num_nodes' correctly.
1933
1934	* src/cache/ftcmanag.c (FTC_Manager_FlushN): Fixed a cache flushing
1935	bug.
1936
1937	* src/truetype/ttinterp.c (Normalize): Fixed a bug that caused
1938	long and unnecessary delays while normalizing huge vectors.
1939
19402004-07-15  Werner Lemberg  <wl@gnu.org>
1941
1942	* docs/CHANGES: Updated.
1943
1944	* src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix compiler
1945	warning.
1946
19472004-07-15  David Turner  <david@freetype.org>
1948
1949	* src/base/ftstroke.c (FT_Stroker_ParseOutline): Single points
1950	are not stroked, preventing a bug with pala.ttf and other
1951	fonts.
1952
1953	* include/freetype/ftstroke.h: Updating documentation comments.
1954
19552004-07-13  Werner Lemberg  <wl@gnu.org>
1956
1957	* src/base/ftstroke.c (ft_stroke_border_reverse): Removed.  Unused.
1958
19592004-07-12  David Turner  <david@freetype.org>
1960
1961	* src/base/ftstroke.c (ft_stroke_border_close): Add second parameter
1962	to indicate reversion of points.
1963	Update all callers.
1964	(ft_stroke_border_reverse): Fix initialization of `point1' and
1965	`tag1'.
1966
1967	* src/cache/ftcsbits.c (ftc_snode_load): Fixing advance computation
1968	for transformed glyphs.
1969
19702004-07-11  David Turner  <david@freetype.org>
1971
1972	Fix bugs that prevented the stroker to correctly generate stroked
1973	paths from closed paths, i.e., nearly all glyphs in vectorial fonts.
1974
1975	The code is still _very_ buggy though; treat with special care.
1976
1977	* src/base/ftstroke.c (FT_STROKE_TAG_BEGIN_END): New macro.
1978	(ft_stroke_border_reverse): New function.
1979	(ft_stroker_inside): Remove local variable `sigma'; use different
1980	threshold.
1981	(ft_stroker_add_reverse_left): Switch begin/end tags if necessary.
1982	(FT_Stroker_EndSubPath): Call ft_stroker_inside and
1983	ft_stroke_border_reverse.
1984
19852004-06-26  Peter Kovar  <peter.kovar@r3.roburnet.sk>
1986
1987	* src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
1988
19892004-06-25  Werner Lemberg  <wl@gnu.org>
1990
1991	* src/type1/t1afm.c (afm_atoindex): Fix boundary test.  Reported
1992	by Dirck Blaskey.
1993
19942004-06-24  David Turner  <david@freetype.org>
1995
1996
1997	* Version 2.1.9 released.
1998	=========================
1999
2000
2001	* src/truetype/ttgload.c, src/truetype/ttxgvar.c: Removing
2002	compiler warnings.
2003
20042004-06-23  Werner Lemberg  <wl@gnu.org>
2005
2006	* include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare
2007	FT_QAlloc_Debug and FT_QRealloc_Debug.
2008
2009	* src/base/ftutil.c (FT_QAlloc): Fix error and debug messages.
2010	(FT_QRealloc): Call FT_QAlloc if original pointer is NULL.
2011	Fix error message.
2012
20132004-06-23  David Turner  <david@freetype.org>
2014
2015	* include/freetype/internal/ftmemory.h, src/base/ftutil.c
2016	(FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug,
2017	FT_QRealloc_Debug): New functions that perform allocation without
2018	zero-ing out the corresponding blocks.
2019
2020	* include/freetype/internal/ftmemory.h (FT_MEM_QALLOC,
2021	FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY,
2022	FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY,
2023	FT_QRENEW_ARRAY): New macros.
2024
2025	* src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC.
2026	* src/gzip/ftgzip.c (FT_Stream_OpenGzip):  Use FT_QNEW_ARRAY.
2027	* src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY.
2028
2029	* src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics,
2030	tt_face_load_gasp): Use FT_QNEW_ARRAY.
2031	(tt_face_load_kern): Use FT_QNEW_ARRAY.
2032	Small optimization in the kerning table verifier; this speeds up
2033	TrueType face opening by about 7%.
2034	(tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC.
2035
2036	* include/freetype/config/ftmodule.h: Changed the order of modules,
2037	putting TrueType and Type 1 first.  This dramatically improves the
2038	performance of face open/close operations.  For example, putting the
2039	TrueType driver first in the list results in a 5x speedup when
2040	opening `Vera.ttf'.
2041
2042	The very problem is that both the PCF and BDF drivers do a lot more
2043	than necessary to detect that they cannot handle a font file.
2044
20452004-06-22  Werner Lemberg  <wl@gnu.org>
2046
2047	* src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties,
2048	pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve
2049	debugging messages.
2050
2051	* src/pcf/pcfdrivr.c (FT_COMPONENT): Move up.
2052	(PCF_Face_Init): Simplify code.
2053
2054	* src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'.
2055
2056	* src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start),
2057	src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/.
2058
2059	* src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs.
2060	Set `default_glyph'.
2061	(BDF_Glyph_Load): Use `default_glyph' for undefined glyph.
2062
2063	* docs/CHANGES: Updated.
2064
20652004-06-21  Werner Lemberg  <wl@gnu.org>
2066
2067	* docs/CHANGES: Updated.
2068
20692004-06-21  David Turner  <david@freetype.org>
2070
2071	* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
2072	load_truetype_glyph): Don't access (unrounded)
2073	`TT_Size.root.metrics' but (rounded) `TT_Size.metrics'.  This fixes
2074	a scaling bug that caused incorrect rendering when the bytecode
2075	interpreter was enabled.
2076
20772004-06-14  Huw D M Davies  <h.davies1@physics.ox.ac.uk>
2078
2079	* src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem
2080	based on pixel_width and pixel_height.
2081	(FNT_Size_Set_Pixels): Updated.
2082
20832004-06-14  Werner Lemberg  <wl@gnu.org>
2084
2085	* src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h.
2086	Reported by Hyvärinen Jyrki Juhani.
2087
20882004-06-11  Werner Lemberg  <wl@gnu.org>
2089
2090	* docs/CHANGES: Updated.
2091
20922004-06-10  David Turner  <david@freetype.org>
2093
2094	* src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c,
2095	src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed.
2096	Obsolete.
2097
2098	* src/raster/ftraster.c (Alignment, PAlignment): New union to fix
2099	problems with 64bit systems.
2100	(AlignProfileSize): Use it.
2101
21022004-06-08  David Turner  <david@freetype.org>
2103
2104	* include/freetype/freetype.h (FT_Glyph_Metrics): Move `lsb_delta'
2105	and `rsb_delta' elements to...
2106	(FT_GlyphSlotRec): Here to retain binary compatibility with older
2107	FreeType versions.
2108	Update all users.
2109
2110	* src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning.
2111
2112	* src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization
2113	of slot->metrics.width and slot->metrics.height when loading a
2114	Windows FNT glyph.  Thanks to Huw Davies.
2115
2116	* include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change
2117	return type to FT_Bool.
2118
2119	* src/cache/ftcbasic.c (ftc_basic_family_compare): Change return
2120	type to FT_Bool.
2121
2122	* src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make
2123	the former call the latter, not vice versa.
2124	(FTC_Cache_Done, ftc_cache_done): Ditto.
2125
2126	* src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make
2127	the former call the latter, not vice versa.
2128	(FTC_GCache_Init, ftc_gcache_init): Ditto.
2129	(FTC_GCache_Done, ftc_gcache_done): Ditto.
2130
2131	* src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the
2132	former call the latter, not vice versa.
2133	(FTC_INode_Weight, ftc_inode_weight): Ditto.
2134
2135	* src/cache/ftcmanag.c (ftc_size_node_compare,
2136	ftc_size_node_compare_faceid, ftc_face_node_compare): Change return
2137	type to FT_Bool.
2138
2139	* src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the
2140	former call the latter, not vice versa.
2141	(FTC_SNode_Weight, ftc_snode_weight): Ditto.
2142	(FTC_SNode_Compare, ftc_snode_compare): Ditto.
2143
2144	* src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache
2145	sub-system.
2146
21472004-06-05  Werner Lemberg  <wl@gnu.org>
2148
2149	* src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and
2150	`rsb_delta' in slot->metrics and tune side bearings slightly.
2151
21522004-06-04  Werner Lemberg  <wl@gnu.org>
2153
2154	* docs/CHANGES: Updated.
2155
21562004-06-04  David Chester  <davidchester@qmx.net>
2157
2158	Improve inter-letter spacing for autohinted glyphs.
2159
2160	* include/freetype/freetype.h (FT_Glyph_Metrics): Add elements
2161	`lsb_delta' and `rsb_delta'.
2162
2163	* src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and
2164	`rsb_delta' in slot->metrics and tune side bearings slightly.
2165
21662004-06-04  David Turner  <david@freetype.org>
2167
2168	* src/autofit/*: Important fixes to the auto-fitter.  The output
2169	now seems to be 100% equivalent to the auto-hinter, while being
2170	about 2% faster (which proves that script-specific algorithm
2171	selection isn't a performance problem).
2172
2173	To test it, change `autohint' to `autofit' in
2174	<freetype/config/ftmodule.h> and recompile.
2175
2176	A few more testing is needed before making this the official
2177	auto-hinting module.
2178
21792004-06-02  Werner Lemberg  <wl@gnu.org>
2180
2181	* src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler
2182	warnings.
2183
21842004-06-01  Werner Lemberg  <wl@gnu.org>
2185
2186	* src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English
2187	name record for the Apple platform is preferred to a non-English
2188	entry for the Microsoft platform.  Problem reported by HANDA
2189	Ken'ichi.
2190
21912004-05-19  George Williams  <gww@silcom.com>
2192
2193	* src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New
2194	auxiliary functions.
2195	(T1_Get_MM_Var): Provide axis tags.
2196	Use mm_axis_unmap and mm_weights_unmap to provide default values
2197	for design and normalized axis coordinates.
2198
2199	* include/freetype/t1tables.h (PS_DesignMapRec): Change type of
2200	`design_points' to FT_Long.
2201	Update all users.
2202
22032004-05-17  Werner Lemberg  <wl@gnu.org>
2204
2205	* src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases.
2206	Reported by Mikey Anbary <manbary@vizrt.com>.
2207
22082004-05-15  Werner Lemberg  <wl@gnu.org>
2209
2210	* src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name.
2211
22122004-05-15  George Williams  <gww@silcom.com>
2213
2214	* src/sfnt/ttload.c (tt_face_load_max_profile): Always set
2215	face->root.num_glyphs.
2216
22172004-05-14  Masatake YAMATO  <jet@gyve.org>
2218	    George Williams  <gww@silcom.com>
2219
2220	* src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly.
2221
22222004-05-14  Werner Lemberg  <wl@gnu.org>
2223
2224	* src/cache/ftcbasic.c (ftc_basic_family_compare,
2225	ftc_basic_family_init, ftc_basic_family_get_count,
2226	ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
2227	ftc_basic_gnode_compare_faceid): Adjust parameters and return types
2228	to prototypes given in header files from include/freetype/cache.
2229	Use casts to proper types locally.
2230	(ftc_basic_image_family_class, ftc_basic_image_cache_class,
2231	ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove
2232	casts.
2233
2234	* src/cache/ftccback.h: Adjust parameters and return types to
2235	prototypes given in header files from include/freetype/cache.
2236
2237	* src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new,
2238	ftc_inode_weight): Adjust parameters and return types to prototypes
2239	given in header files from include/freetype/cache.  Use casts to
2240	proper types locally.
2241
2242	* src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new,
2243	ftc_snode_weight, ftc_snode_compare): Adjust parameters and return
2244	types to prototypes given in header files from
2245	include/freetype/cache.  Use casts to proper types locally.
2246
2247	* src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new,
2248	ftc_cmap_node_weight, ftc_cmap_node_compare,
2249	ftc_cmap_node_remove_faceid): Adjust parameters and return types to
2250	prototypes given in header files from include/freetype/cache.  Use
2251	casts to proper types locally.
2252	(ftc_cmap_cache_class): Remove casts.
2253
2254	* src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init,
2255	ftc_gcache_done): Adjust parameters and return types to prototypes
2256	given in header files from include/freetype/cache.  Use casts to
2257	proper types locally.
2258
2259	* src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare,
2260	ftc_size_node_init, ftc_size_node_reset,
2261	ftc_size_node_compare_faceid, ftc_face_node_init,
2262	ftc_face_node_done, ftc_face_node_compare: Adjust parameters and
2263	return types to prototypes given in header files from
2264	include/freetype/cache.  Use casts to proper types locally.
2265
2266	(ftc_size_list_class, ftc_face_list_class): Remove casts.
2267
22682004-05-13  Werner Lemberg  <wl@gnu.org>
2269
2270	* src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done):
2271	Use FT_Module as parameter and do a cast to FT_AutoHinter locally.
2272	(autohint_module_class): Remove casts.
2273
2274	* src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy,
2275	ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init,
2276	ft_outline_glyph_done, ft_outline_glyph_copy,
2277	ft_outline_glyph_transform, ft_outline_glyph_bbox,
2278	ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast
2279	to FT_XXXGlyph locally.
2280	Use FT_CALLBACK_DEF throughout.
2281	(ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts.
2282
2283	* src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done,
2284	bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter
2285	and do a cast to BDF_CMap locally.
2286	(bdf_cmap_class): Remove casts.
2287
22882004-05-12  Werner Lemberg  <wl@gnu.org>
2289
2290	* src/cff/cffgload.h (CFF_Builder): Remove `error'.
2291	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace
2292	`Memory_Error' with `Fail' and update all users.
2293
22942004-05-11  Werner Lemberg  <wl@gnu.org>
2295
2296	* include/freetype/internal/psaux.h (T1_ParseState): New
2297	enumeration.
2298	(T1_BuilderRec): Replace `path_begun' with `parse_state'.
2299	Remove `error'.
2300	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace
2301	`Memory_Error' with `Fail' and update all users.
2302	Don't use `builder->error'.
2303	Replace `path_begun' with `parse_state' and check parsing states.
2304
2305	* src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point):
2306	Replace `path_begun' with `parse_state' and check parsing states.
2307
23082004-05-10  George Williams  <gww@silcom.com>
2309
2310	* src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case
2311	of error -- `avar' is optional so we can't rely on tt_done_blend
2312	being called automatically.
2313
23142004-05-09  George Williams  <gww@silcom.com>
2315
2316	* src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix
2317	error handling.
2318
23192004-05-07  Werner Lemberg  <wl@gnu.org>
2320
2321	* src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init,
2322	pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done,
2323	pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are
2324	typecast to the proper PFR_XXX types within the function.
2325	Update code accordingly.
2326
2327	* src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance,
2328	pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX
2329	arguments which are typecast to the proper PFR_XXX types within the
2330	function.
2331	Update code accordingly.
2332	Use FT_CALLBACK_DEF throughout.
2333	(pfr_metrics_service_rec, pfr_driver_class): Remove casts.
2334
23352004-05-06  Masatake YAMATO  <jet@gyve.org>
2336
2337	* src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM.
2338	(*): Rename local variable OffsetToData to offsetToData.
2339
23402004-05-06  Werner Lemberg  <wl@gnu.org>
2341
2342	* src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset,
2343	cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access
2344	root fields directly.
2345	* src/cff/cffdrivr.c (Load_Glyph): Access root fields directly.
2346
2347	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current
2348	frame before calling TT_Vary_Get_Glyph_Deltas.
2349
2350	* src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for
2351	consistency.
2352	(pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index,
2353	pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which
2354	are typecast to the proper PCF_XXX types within the function.
2355	Update code accordingly.
2356	(pcf_cmap_class): Remove casts.
2357	(PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use
2358	PCF_XXX but FT_XXX arguments which are typecast to the proper
2359	PCF_XXX types within the function.
2360	Update code accordingly.
2361	Use FT_CALLBACK_DEF throughout.
2362	(PCF_Set_Point_Size): New wrapper function.
2363	(PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF.
2364	(pcf_driver_class): Remove casts.
2365
23662004-05-04  Steve Hartwell  <shspamsink@comcast.net>
2367
2368	* src/truetype/ttobjs.c (tt_driver_done): Fix typo.
2369
23702004-05-04  Werner Lemberg  <wl@gnu.org>
2371
2372	* src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init,
2373	BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which
2374	are typecast to the proper BDF_XXX types within the function.
2375	Update code accordingly.
2376	Use FT_CALLBACK_DEF throughout.
2377	(BDF_Set_Point_Size): New wrapper function.
2378	(bdf_driver_class): Remove casts.
2379
2380	* src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface):
2381	Don't use CFF_XXX but FT_XXX arguments which are typecast to the
2382	proper CFF_XXX types within the function.
2383	Update code accordingly.
2384	Use FT_CALLBACK_DEF throughout.
2385	(cff_driver_class): Remove casts.
2386
2387	* src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done,
2388	cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init,
2389	cff_face_init, cff_face_done, cff_driver_init, cff_driver_done):
2390	Don't use CFF_XXX but FT_XXX arguments which are typecast to the
2391	proper CFF_XXX types within the function.
2392	Update code accordingly.
2393	(cff_point_size_reset): New wrapper function.
2394
2395	* src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done,
2396	cid_slot_init, cid_size_done, cid_size_init, cid_size_reset,
2397	cid_face_done, cid_face_init, cid_driver_init, cid_driver_done):
2398	Don't use CID_XXX but FT_XXX arguments which are typecast to the
2399	proper CID_XXX types within the function.
2400	Update code accordingly.
2401	(cid_point_size_reset): New wrapper function.
2402
2403	* src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph):
2404	Don't use CID_XXX but FT_XXX arguments which are typecast to the
2405	proper CID_XXX types within the function.
2406	Update code accordingly.
2407
2408	* src/cid/cidriver.c (cid_get_interface):
2409	Don't use CID_XXX but FT_XXX arguments which are typecast to the
2410	proper CID_XXX types within the function.
2411	Update code accordingly.
2412	Use FT_CALLBACK_DEF.
2413	(t1cid_driver_class): Remove casts.
2414
2415	* src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF.
2416	* src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local
2417	variables (this is done later).
2418	(ft_var_load_avar): Fix call to FT_FRAME_ENTER.
2419	(TT_Get_MM_Var): Fix size for `fvar_fields'.
2420	(TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables
2421	correctly.
2422
2423	* src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if
2424	current size is zero.
2425
24262004-05-03  Steve Hartwell  <shspamsink@comcast.net>
2427
2428	* src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init,
2429	tt_face_done, tt_size_init, tt_size_done, tt_driver_init,
2430	tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are
2431	typecast to the proper TT_XXX types within the function.
2432	Update code accordingly.
2433
2434	* src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes,
2435	Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but
2436	FT_XXX arguments which are typecast to the proper TT_XXX types
2437	within the function.
2438	Update code accordingly.
2439	(tt_driver_class): Remove casts.
2440
24412004-05-02  Werner Lemberg  <wl@gnu.org>
2442
2443	* src/sfnt/ttload.c (tt_face_free_names): Check that `table->names'
2444	is not NULL.  Reported by Gordon Childs <gchilds@quickcut.com.au>.
2445
24462004-04-29  Werner Lemberg  <wl@gnu.org>
2447
2448	* docs/formats.txt: Add more information on PFR format.
2449
24502004-04-28  Werner Lemberg  <wl@gnu.org>
2451
2452	* docs/formats.txt: New file.
2453	* docs/CHANGES: Updated.
2454
24552004-04-28  Masatake YAMATO  <jet@gyve.org>
2456
2457	* include/freetype/internal/tttypes.h (GX_BlendRec_)
2458	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo.
2459
2460	* src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo.
2461
24622004-04-27  Masatake YAMATO  <jet@gyve.org>
2463
2464	* src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF
2465	for function declarations.
2466
24672004-04-25  George Williams  <gww@silcom.com>
2468
2469	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo.
2470
24712004-04-25  Werner Lemberg  <wl@gnu.org>
2472
2473	* src/truetype/Jamfile, docs/CHANGES: Updated.
2474
24752004-04-24  Werner Lemberg  <wl@gnu.org>
2476
2477	* src/pcf/pcfdrivr.c: Revert change from 2004-04-17.
2478	* src/pcf/pcfutil.c: Use FT_LOCAL_DEF.
2479	* src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H.
2480	Use FT_BEGIN_HEADER and FT_END_HEADER.
2481	Use FT_LOCAL.
2482
24832004-04-24  George Williams  <gww@silcom.com>
2484
2485	Add support for Apple's distortable font technology (in GX fonts).
2486
2487	* devel/ftoption.h, include/freetype/config/ftoption.h
2488	(TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro.
2489
2490	* include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style,
2491	FT_MM_Var): New structures.
2492	(FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
2493	FT_Set_Var_Blend_Coordinates): New function declarations.
2494
2495	* include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func,
2496	FT_Set_Var_Design_Func): New typedefs.
2497	Update MultiMasters service.
2498
2499	* include/freetype/internal/tttypes.h
2500	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H.
2501	(GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef.
2502	(TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend'
2503	and `blend'.
2504
2505	* include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New
2506	macros.
2507
2508	* include/freetype/internal/fttrace.h: Add `ttgxvar'.
2509
2510	* src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
2511	FT_Set_Var_Blend_Coordinates): New functions.
2512
2513	* src/sfnt/sfobjs.c (sfnt_load_face)
2514	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS
2515	flag for GX var fonts.
2516
2517	* src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files.
2518
2519	* src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
2520	ttgxvar.c.
2521
2522	* src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
2523	FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h.
2524	(tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]:
2525	New service.
2526	(tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated.
2527
2528	* src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
2529	ttgxvar.h.
2530	(TT_Process_Simple_Glyph, load_truetype_glyph)
2531	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Support GX var fonts.
2532
2533	* src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
2534	ttgxvar.h.
2535	(tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
2536	tt_done_blend.
2537
2538	* src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
2539	ttgxvar.h.
2540	(tt_face_load_cvt)  [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
2541	tt_face_vary_cvt.
2542
2543	* src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c.
2544
2545	* src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var
2546	and T1_Set_Var_Design.
2547
2548	* src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros.
2549	(T1_Get_MM_Var, T1_Set_Var_Design): New functions.
2550
2551	* src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New
2552	function declarations.
2553
25542004-04-23  Werner Lemberg  <wl@gnu.org>
2555
2556	* include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename
2557	declaration and move to...
2558	* include/freetype/freetype.h (FT_Get_Charmap_Index): Here.
2559	(FREETYPE_PATCH): Set to 9.
2560
2561	* src/base/ftobjs.c (FT_Get_Charmap_Index): New function.
2562
2563	* builds/unix/configure.ac (version_info): Set to 9:7:3.
2564	* builds/unix/configure: Updated.
2565
2566	* builds/win32/visualc/index.html,
2567	builds/win32/visualc/freetype.dsp,
2568	builds/win32/visualc/freetype.vcproj: s/218/219/.
2569
2570	* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
2571	s/2.1.8/2.1.9/.
2572
2573	* docs/CHANGES, docs/VERSION.DLL: Updated.
2574
25752004-04-21  Werner Lemberg  <wl@gnu.org>
2576
2577	* src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c
2578	(ps_parser_load_field): Use FT_CHAR_BIT.
2579
25802004-04-21  David Turner  <david@freetype.org>
2581
2582
2583	* Version 2.1.8 released.
2584	=========================
2585
2586
2587	* src/cff/cffobjs.c (cff_face_init): Fix a small memory leak.
2588
2589	* src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c
2590	(af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name):
2591	Remove compiler warnings.
2592
2593	* src/autofit/aftypes.h: Undefine AF_DEBUG.
2594
2595	* src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf,
2596	pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c
2597	(ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict,
2598	t42_service_ps_font_name): Decorate data arrays with `const' to
2599	avoid populating the `.data' segment.
2600
2601	* src/lzw/Jamfile: New file.
2602
26032004-04-20  Werner Lemberg  <wl@gnu.org>
2604
2605	* src/psaux/psobjs.c (T1Radix): Renamed to...
2606	(ps_radix): This.
2607	Update current cursor position.
2608
2609	* docs/CHANGES: Updated.
2610
26112004-04-18  Werner Lemberg  <wl@gnu.org>
2612
2613	* src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph),
2614	src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to
2615	FT_UInt.  From Lex Warners.
2616
26172004-04-17  Chisato Yamauchi  <cyamauch@a.phys.nagoya-u.ac.jp>
2618
2619	* src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change
2620	from 2004-03-19.
2621
2622	* src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'.
2623
2624	* src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with
2625	`static'.
2626	Remove unused function `RepadBitmap'.
2627	* src/pcf/pcfdrivr.c: Don't include pcfutil.h.
2628
26292004-04-16  Werner Lemberg  <wl@gnu.org>
2630
2631	* builds/unix/freetype-config.in (usage): Fix and improve usage
2632	information.
2633
26342004-04-15  Werner Lemberg  <wl@gnu.org>
2635
2636	* builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define
2637	FT_CHAR_BIT.
2638
2639	* src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if
2640	glyph is vertically distorted or mirrored.
2641
2642	* src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly
2643	for embedded bitmaps.
2644
2645	* docs/CHANGES: Updated.
2646
26472004-04-15  bytesoftware  <bytesoftware@btinternet.com>
2648
2649	* include/freetype/config/ftconfig.h, src/base/ftstream.c
2650	(FT_Stream_ReadFields): More fixes using FT_CHAR_BIT.
2651
26522004-04-14  Werner Lemberg  <wl@gnu.org>
2653
2654	* include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro.
2655
26562004-04-14  Alex Strelnikov  <ptktyrf@mail.ru>
2657
2658	* src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case
2659	of error.
2660
26612004-04-14  Werner Lemberg  <wl@gnu.org>
2662
2663	* src/base/ftmac.c [__GNUC__]: Define OS_INLINE.
2664	* builds/unix/configure.ac: Don't try to remove `-ansi' compilation
2665	switch on the Mac.
2666
2667	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
2668	--copy' from libtool 1.5.6.
2669	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
2670	automake 1.8a.
2671	* builds/unix/configure: Regenerated with autoconf 2.59a.
2672
26732004-04-13  Werner Lemberg  <wl@gnu.org>
2674
2675	* include/freetype/config/ftconfig.h: Use CHAR_BIT to define
2676	size of FT_SIZEOF_xxx.
2677
26782004-04-12  Chisato Yamauchi  <cyamauch@a.phys.nagoya-u.ac.jp>
2679
2680	* include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func,
2681	TT_Load_SBit_Metrics_Func): New typedefs.
2682	(SFNT_Interface): Add find_sbit_image and load_sbit_metrics.
2683
2684	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
2685	* src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New
2686	declarations.
2687	* src/sfnt/ttsbit.c (find_sbit_image): Renamed to...
2688	(tt_find_sbit_image): This.
2689	Updated all callers.
2690	(load_sbit_metrics): Renamed to...
2691	(tt_load_sbit_metrics): This.
2692	Updated all callers.
2693
26942004-04-12  Werner Lemberg  <wl@gnu.org>
2695
2696	* configure: Accept makepp also.
2697
2698	* builds/unix/detect.mk: Use proper path to unix-def.mk.
2699	* builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove.
2700	* builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define.
2701	Use BUILD_DIR.
2702
2703	* docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update
2704	documentation on makepp.
2705
27062004-04-11  Werner Lemberg  <wl@gnu.org>
2707
2708	* src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h.
2709
27102004-04-10  Werner Lemberg  <wl@gnu.org>
2711
2712	* src/lzw/ftlzw.c: Include zopen.h dependent on
2713	FT_CONFIG_OPTION_USE_LZW.
2714
2715	* src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings.
2716
27172004-04-02  Werner Lemberg  <wl@gnu.org>
2718
2719	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
2720	--copy' from libtool 1.5.2.
2721	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
2722	automake 1.8a.
2723	* builds/unix/configure: Regenerated with autoconf 2.59a.
2724
27252004-04-01  Werner Lemberg  <wl@gnu.org>
2726
2727	* builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of
2728	AC_COMPILE_IFELSE.
2729	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
2730	automake 1.8a.
2731	* builds/unix/configure: Regenerated with autoconf 2.59a.
2732	* builds/unix/config.guess, builds/unix/config.sub: Updated from
2733	`config' CVS module at subversions.gnu.org.
2734	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
2735	`texinfo' CVS module at subversions.gnu.org.
2736	* builds/freetype.mk (refdoc): Updated.
2737
27382004-03-31  Werner Lemberg  <wl@gnu.org>
2739
2740	Handle broken FNT files which don't have a trailing NULL byte
2741	in the face name string.
2742
2743	* src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'.
2744	* src/winfonts/winfnt.c (fnt_font_done): Free font->family_name.
2745	(FNT_Face_Init): Append a final zero byte to the font face name.
2746
27472004-03-30  Werner Lemberg  <wl@gnu.org>
2748
2749	* src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from
2750	2004-03-19.
2751
27522004-03-27  Werner Lemberg  <wl@gnu.org>
2753
2754	* src/base/descrip.mms (OBJS): Add ftbbox.obj.
2755
27562004-03-26  George Williams  <gww@silcom.com>
2757
2758	Add vertical phantom points.
2759
2760	* include/freetype/internal/tttypes.h (TT_LoaderRec): Add
2761	`top_bearing', `vadvance', `pp3', and `pp4'.
2762
2763	* src/autofit/afloader.c (af_loader_load_g): Handle two more points.
2764
2765	* src/autohint/ahhint.c (ah_hinter_load): Handle two more points.
2766	* src/truetype/ttgload.c (Get_VMetrics): New function.
2767	(TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more
2768	points.
2769	(load_truetype_glyph): Use Get_VMetrics.
2770	Handle two more points.
2771	(compute_glyph_metrics): Thanks to vertical phantom points we now
2772	can always compute `advance_height' and `top_bearing'.
2773	* src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom
2774	points.
2775
2776
2777	* src/autohint/ahglyph.c (ah_outline_load): Fix allocation of
2778	`news'.
2779
27802004-03-21  Werner Lemberg  <wl@gnu.org>
2781
2782	* src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing.
2783
27842004-03-20  Steve Hartwell  <shspamsink@comcast.net>
2785
2786	* src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL
2787	value for `selection' as `select all'.
2788
27892004-03-19  Steve Hartwell  <shspamsink@comcast.net>
2790
2791	* src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index
2792	values > 0 if loading non-TTC fonts.
2793
2794	* src/base/ftmac.c (open_face_from_buffer): Set positive face_index
2795	to zero before calling FT_Open_Face.
2796
2797	* docs/CHANGES: Updated.
2798
27992004-03-04  Werner Lemberg  <wl@gnu.org>
2800
2801	* Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp,
2802	builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h:
2803	Add LZW module.
2804
2805	* Jamfile.in: Removed.
2806
2807	* docs/CHANGES: Updated.
2808
2809	* include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/,
2810	s/ABS/FT_ABS/.  Updated all callers.
2811
2812	* src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c
2813	(PCF_Face_Init): Use FT_ERROR_BASE.
2814
28152004-03-04  Albert Chin  <china@thewrittenword.com>
2816
2817	Add support for PCF fonts compressed with LZW (extension .pcf.Z,
2818	created with `compress').
2819
2820	* include/freetype/config/ftoption.h, devel/ftoption.h
2821	(FT_CONFIG_OPTION_USE_LZW): New macro.
2822
2823	* include/freetype/ftlzw.h: New file.
2824	* include/freetype/config/ftheader.h (FT_LZW_H): New macro for
2825	ftlzw.h.
2826
2827	* src/lzw/*: New files.
2828
2829	* src/pcf/pcfdrivr.c: Include FT_LZW_H.
2830	(PCF_Face_Init): Try LZW also.
2831
2832	* src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate.
2833	Beautify.
2834
28352004-03-03  Werner Lemberg  <wl@gnu.org>
2836
2837	* src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code.
2838
28392004-03-02  Werner Lemberg  <wl@gnu.org>
2840
2841	Add embedded bitmap support to CFF driver.
2842
2843	* src/cff/cffobjs.h (CFF_SizeRec): New structure.
2844
2845	* src/cff/cffgload.c (cff_builder_init): Updated.
2846	(cff_slot_load): Updated.
2847	[TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit.
2848
2849	* src/cff/cffobjs.c (sbit_size_reset)
2850	[TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function.
2851	(cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated.
2852	(cff_size_reset): Updated.
2853	[TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset.
2854
2855	* src/cff/cffdrivr.c (Load_Glyph): Updated.
2856	(cff_driver_class): Use CFF_SizeRec.
2857
2858	* docs/CHANGES: Updated.
2859
28602004-03-01  Werner Lemberg  <wl@gnu.org>
2861
2862	* src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use
2863	FT_RoundFix but FT_PIX_ROUND.
2864	(psh_blues_snap_stem): Don't use blue_shift but blue_threshold.
2865
2866	* src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro.
2867	(psh_glyph_find_strong_points): Use PSH_STRONG_THRESHOLD_MAXIMUM.
2868	(psh_glyph_find_blue_points): New function.  Needed for fonts like
2869	p052003l.pfb (URW Palladio L Roman) which have flex curves at the
2870	base line within blue zones, but the flex curves aren't covered by
2871	hints.
2872	(ps_hints_apply): Use psh_glyph_find_blue_points.
2873
28742004-02-27  Garrick Meeker  <garrick@digitalanarchy.com>
2875
2876	* builds/unix/configure.ac: Fix compiler flags for
2877	`--with-old-mac-fonts'.
2878	* builds/unix/configure: Regenerated.
2879
2880	* src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/.
2881	(FT_New_Face_From_Resource): New function.
2882	(FT_New_Face): Use FT_New_Face_From_Resource.
2883	(FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource.
2884	[__MWERKS__]: Don't include FSp_fopen.h.
2885
28862004-02-26  Werner Lemberg  <wl@gnu.org>
2887
2888	* src/pshinter/pshglob.c (psh_globals_new): Fix value of
2889	`dim->stdw.count'.
2890	Don't assign default values to blue scale and blue shift.
2891
28922004-02-25  Werner Lemberg  <wl@gnu.org>
2893
2894	* docs/CHANGES: Updated.
2895
28962004-02-25  Garrick Meeker  <garrick@digitalanarchy.com>
2897	    Steve Hartwell  <shspamsink@comcast.net>
2898
2899	Improve MacOS fond support.  Provide a new API
2900	`FT_New_Face_From_FSSpec' similar to `FT_New_Face'.
2901
2902	* src/base/ftmac.c [__MWERKS__]: Include FSp_fopen.h.
2903	STREAM_FILE [__MWERKS__]: New macro.
2904	(ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions.
2905	(file_spec_from_path) [__MWERKS__]: Updated #if statement.
2906	(get_file_type, make_lwfn_spec): Use `const' for argument.
2907	(is_dfont) [TARGET_API_MAC_CARBON]: Removed.
2908	(count_face_sfnt, count_faces): New functions.
2909	(parse_fond): Do some range checking.
2910	(read_lwfn): Change type of second argument.
2911	No longer call FSpOpenResFile.
2912	(OpenFileAsResource): New function.
2913	(FT_New_Face_From_LWFN): Use `const' for second argument.
2914	Use OpenFileAsResource.
2915	(FT_New_Face_From_Suitcase): Change type of second argument.
2916	No longer call FSpOpenResFile.
2917	Loop over all resource indices.
2918	(FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed.
2919	(FT_GetFile_From_Mac_Name): Use `const' for first argument.
2920	(ResourceForkSize): Removed.
2921	(FT_New_Face): Updated to use new functions.
2922	(FT_New_Face_From_FSSpec): New function.
2923
2924	* include/freetype/ftmac.h: Updated.
2925
29262004-02-24  Malcolm Taylor  <mtaylor@clear.net.nz>
2927
2928	* src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>:
2929	Handle case where outline->num_vedges is zero while computing hinted
2930	metrics.
2931
29322004-02-24  Gordon Childs  <gchilds@quickcut.com.au>
2933
2934	* src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value
2935	for `count'.
2936
29372004-02-24  Werner Lemberg  <wl@gnu.org>
2938
2939	* include/freetype/t1tables.h (PS_PrivateRec): Add
2940	`expansion_factor'.
2941
2942	* src/pshinter/pshglob (psh_blues_scale_zones): Fix computation
2943	of blues->no_overshoots -- `blues_scale' is stored with a
2944	magnification of 1000, and `scale' returns fractional pixels.
2945
2946	* src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift',
2947	`blue_fuzz', `expansion_factor', and `blue_scale' according to the
2948	Type 1 specification.
2949
2950	* src/type1/t1tokens.h: Handle `ExpansionFactor'.
2951
2952	* docs/CHANGES: Updated.
2953
29542004-02-24  Masatake YAMATO  <jet@gyve.org>
2955
2956	Provide generic access to MacOS resource forks.
2957
2958	* src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New
2959	files.
2960
2961	* src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H.
2962	(Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments
2963	`resource_listoffset' and `resource_data' and adapt code
2964	accordingly.  These values are calculated outside of the function
2965	now.
2966	Add new argument `offsets'.
2967	(IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and
2968	`FT_Raccess_Get_DataOffsets'.
2969	(load_face_in_embedded_rfork): New function.
2970	(load_mac_face): Use load_face_in_embedded_rfork.
2971	(ft_input_stream_new): Renamed to...
2972	(FT_Stream_New): This.  Use FT_BASE_DEF.  Updated all callers.
2973	(ft_input_stream_free): Renamed to...
2974	(FT_Stream_Free): This.  Use FT_BASE_DEF.  Updated all callers.
2975
2976	* src/base/ftbase.c: Include ftrfork.c.
2977
2978	* src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated.
2979
2980	* include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H):
2981	New macro.
2982
2983	* include/freetype/internal/fttrace.h: Added `rfork' as a new
2984	trace definition.
2985
2986	* include/freetype/internal/ftstream.h: Declare FT_Stream_New and
2987	FT_Stream_Free.
2988
2989	* include/freetype/config/ftoption.h, devel/ftoption.h
2990	(FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option.
2991
2992	* include/freetype/config/ftstdlib.h (ft_strrchr): New macro.
2993
29942004-02-23  Werner Lemberg  <wl@gnu.org>
2995
2996	* docs/CHANGES: Updated.
2997
2998	* include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H.
2999
30002004-02-23  Masatake YAMATO  <jet@gyve.org>
3001
3002	Provide a simple API to control FreeType's tracing levels.
3003
3004	* include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
3005	FT_Trace_Get_Name): New declarations.
3006
3007	* src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New
3008	functions.
3009
30102004-02-23  David Turner  <david@freetype.org>
3011
3012	* src/autofit/afhints.c, src/autofit/afhints.h,
3013	src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave
3014	bugs have been fixed.  The auto-fitter works, doesn't crash, but
3015	still produces unexpected results...
3016
30172004-02-21  Werner Lemberg  <wl@gnu.org>
3018
3019	* src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold
3020	the accepted shift for strong points in fractional pixels (which
3021	is a heuristic value).
3022	(psh_glyph_find_strong_points): Compute threshold for
3023	psh_hint_table_find_strong_points.
3024	(psh_hint_table_find_strong_point): Add parameter to pass threshold.
3025
30262004-02-20  Werner Lemberg  <wl@gnu.org>
3027
3028	* src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call
3029	ps_mask_table_alloc but ps_mask_table_last.
3030	(ps_hints_t2mask): Use correct position and number for vertical
3031	and horizontal hinter mask bits.
3032
3033	* docs/CHANGES: Updated.
3034
30352004-02-19  Werner Lemberg  <wl@gnu.org>
3036
3037	* src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling.
3038	* src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning.
3039
30402004-02-18  Werner Lemberg  <wl@gnu.org>
3041
3042	* include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly.
3043
3044	* src/base/ftglyph.c (ft_bitmap_glyph_class,
3045	ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF.
3046
3047	* src/smooth/ftsmooth.c (ft_smooth_render): Handle
3048	FT_RENDER_MODE_LIGHT.
3049
30502004-02-17  Werner Lemberg  <wl@gnu.org>
3051
3052	Fix callback functions in cache module.
3053
3054	* src/cache/ftccback.h: New file for callback declarations.
3055
3056	* src/cache/ftcbasic.c (ftc_basic_family_compare,
3057	ftc_basic_family_init, ftc_basic_family_get_count,
3058	ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
3059	ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF.
3060	(ftc_basic_image_family_class, ftc_basic_image_cache_class,
3061	ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class):
3062	Use FT_CALLBACK_TABLE_DEF and local wrapper functions.
3063
3064	* src/cache/ftccache.c: Include ftccback.h.
3065	(ftc_cache_init, ftc_cache_done): New wrapper functions which use
3066	FT_LOCAL_DEF.
3067
3068	* src/cache/ftccmap.c: Include ftccback.h.
3069	(ftc_cmap_cache_class): Use local wrapper functions.
3070
3071	* src/cache/ftcglyph.c: Include ftccback.h.
3072	(ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper
3073	functions which use FT_LOCAL_DEF.
3074
3075	* src/cache/ftcimage.c: Include ftccback.h.
3076	(ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper
3077	functions which use FT_LOCAL_DEF.
3078
3079	* src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class):
3080	Use FT_CALLBACK_TABLE_DEF.
3081
3082	* src/cache;/ftcsbits.c: Include ftccback.h.
3083	(ftc_snode_free, ftc_snode_new, ftc_snode_weight,
3084	ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF.
3085
3086	* src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h.
3087
30882004-02-17  Masatake YAMATO  <jet@gyve.org>
3089
3090	* include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo
3091	(FT_EXPORT_DEF -> FT_EXPORT).
3092
3093	* include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto.
3094
30952004-02-15  Werner Lemberg  <wl@gnu.org>
3096
3097	* src/base/ftobjs.c (FT_Set_Char_Size): Fix typo.
3098
30992004-02-14  Masatake YAMATO  <jet@gyve.org>
3100
3101	* builds/unix/ftsystem.c: Include errno.h.
3102	(ft_close_stream): Renamed to...
3103	(ft_close_stream_by_munmap): This.
3104	(ft_close_stream_by_free): New function.
3105	(FT_Stream_Open): Use fallback method if mmap fails.
3106	Use proper function for closing the stream.
3107
31082004-02-14  Werner Lemberg  <wl@gnu.org>
3109
3110	* src/type1/t1load.c (parse_dict): Initialize `start_binary'.
3111
31122004-02-13  Robert Etheridge  <roberte@stcc.cc.tx.us>
3113
3114	* src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c
3115	(T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation
3116	of underline_position and underline_thickness.
3117
31182004-02-12  Werner Lemberg  <wl@gnu.org>
3119
3120	* src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if
3121	ppem values don't change.  Suggested by Graham Asher.
3122
31232004-02-11  Werner Lemberg  <wl@gnu.org>
3124
3125	* src/cid/cidload.c (cid_face_open): Always allocate
3126	face->cid_stream so that we can deallocate it safely.
3127
31282004-02-10  Werner Lemberg  <wl@gnu.org>
3129
3130	Make the PS parser more tolerant w.r.t. non-standard font data.  In
3131	general, an error is only reported in case of a syntax error; a
3132	wrong type is now simply ignored (if possible).  To be independent
3133	of the order of various MM-specific keywords, the parse_shared_dict
3134	routine has been removed -- the PS parser is now capable to skip
3135	this data.  It no longer fails on parsing e.g.
3136
3137	  dup /WeightVector exch def
3138
3139	Since the token following /WeightVector isn't `[' (starting an
3140	array) it is simply ignored.
3141
3142	* include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a
3143	new internal error value.
3144
3145	* src/type1/t1load.c (parse_blend_axis_types,
3146	parse_blend_design_positions, parse_blend_design_map): Return
3147	T1_Err_Ignore if no proper array is following the keyword.
3148	(parse_weight_vector): Use T1_ToTokenArray, initializing `blend'
3149	structure, if necessary.
3150	Return T1_Err_Ignore if no proper array is following the keyword.
3151	(parse_shared_dict): Removed.
3152	(parse_encoding): Set parser->root.error to return T1_Err_Ignore
3153	if no result can be obtained.
3154	Check for errors before accessing `elements' array.
3155	(t1_keywords): Remove /shareddict.
3156	(parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore.
3157	Set keyword_flag only in case of success.
3158	Check error code if skipping an unrecognized token.
3159	(T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend
3160	if blend commands haven't set up a proper MM font.
3161
3162	* src/psaux/psobjs.c (ps_parser_load_field_table): Remove special
3163	code for synthetic fonts.
3164	Return PSaux_Err_Ignore if no proper value has been found.
3165
31662004-02-09  Werner Lemberg  <wl@gnu.org>
3167
3168	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
3169	<cff_op_endchar>: Preserve glyph width before calling
3170	cff_operator_seac.
3171
31722004-02-09  Martin Muskens  <mmuskens@aurelon.com>
3173
3174	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special
3175	first argument for `hintmask' and `cntrmask' operators also.
3176
31772004-02-08  Werner Lemberg  <wl@gnu.org>
3178
3179	* builds/unix/configure.in: Call AC_SUBST for `enable_shared',
3180	`hardcode_libdir_flag_spec', and `wl'.
3181	* builds/unix/configure: Regenerated.
3182
3183	* builds/unix/freetype-config.in: Make --prefix and --exec-prefix
3184	actually work.
3185	Report a proper --rpath (or -R) value for --libs argument if a
3186	shared library has been built.
3187
3188	* docs/CHANGES: Updated.
3189
31902004-02-07  Keith Packard  <keithp@keithp.com>
3191
3192	* src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix
3193	computation of various vertical and horizontal metric values.
3194
3195	* src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font):
3196	Ditto.
3197
31982004-02-07  Werner Lemberg  <wl@gnu.org>
3199
3200	* builds/win32/visualc/index.html,
3201	builds/win32/visualc/freetype.dsp,
3202	builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated.
3203
32042004-02-07  Vitaliy Pasternak  <v_a_pasternak@mail.ru>
3205
3206	* builds/win32/visualc/freetype.sln,
3207	builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003.
3208
32092004-02-03  Werner Lemberg  <wl@gnu.org>
3210
3211	* include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP):
3212	Initialize `node'.
3213	* src/type1/t1load.c (parse_dict): Initialize `have_integer'.
3214
32152004-02-02  Werner Lemberg  <wl@gnu.org>
3216
3217	* src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands
3218	outside of /Subrs or /CharStrings.  This can happen if there is
3219	additional code manipulating those two arrays so that FreeType
3220	doesn't recognize them properly.
3221	(T1_Open_Face): Improve an error message.
3222
32232004-02-01  Werner Lemberg  <wl@gnu.org>
3224
3225	* src/type1/t1load.c (parse_charstrings): Exit immediately if
3226	there are no elements in /CharStrings.  This is needed for fonts
3227	like Optima-Oblique which not only define /CharStrings but access it
3228	also.
3229
32302004-02-01  David Turner  <david@freetype.org>
3231
3232	* src/sfnt/Jamfile: Removing `ttcmap' from the list of sources.
3233
3234	* include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP)
3235	<FTC_INLINE>: Provide macro version which doesn't use inline code.
3236	* include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP)
3237	<FTC_INLINE>: Ditto.
3238	Use FTC_MRULIST_LOOKUP_CMP.
3239	* include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New
3240	macro.
3241	(FTC_MRULIST_LOOKUP): Use it.
3242
3243	* src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated.
3244	* src/cache/ftcbasic.c: Fix compiler warnings.
3245	* src/cache/ftcmanag.c (FTC_Manager_LookupSize,
3246	FTC_Manager_LookupFace) <FTC_INLINE>: Use FTC_MRULIST_LOOKUP_CMP.
3247	* src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after
3248	heavy testing).
3249
3250	* Jamfile: Updating `refdoc' target, and adding `autohint' to the
3251	list of modules to build.  Both the autohinter and autofitter will
3252	be built by default.  But which one will be used is determined by
3253	the content of `ftmodule.h'.
3254
3255	* src/autofit/*: Many updates, but the code is still buggy...
3256
32572004-01-31  Werner Lemberg  <wl@gnu.org>
3258
3259	* src/cff/cffgload.c (cff_operator_seac): Fix magnitude of
3260	accent offset.
3261	Update code similarly to the seac support for Type 1 fonts.
3262	(cff_decoder_parse_charstrings) <cff_op_endchar>: Fix magnitude
3263	of accent offset.
3264	Don't hint glyphs twice if seac is emulated.
3265	<cff_op_flex>: Assign correct point tags.
3266	* docs/CHANGES: Updated.
3267
32682004-01-30  Werner Lemberg  <wl@gnu.org>
3269
3270	* src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not
3271	FT_MEM_COPY, for copying the private dict.
3272
3273	* src/type1/t1load.c (parse_subrs): Assign number of subrs only
3274	in first run.
3275	(parse_charstrings): Parse /CharStrings in second run without
3276	assigning values.
3277	(parse_dict): Skip all /CharStrings arrays but the first.  We need
3278	this for non-standard fonts like `Optima' which have different
3279	outlines depending on the resolution.  Note that there is no
3280	guarantee that we get fitting /Subrs and /CharStrings arrays; this
3281	can only be done by a real PS interpreter.
3282
32832004-01-29  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
3284
3285	* builds/win32/visualc/index.html: New file, giving detailed
3286	explanations about forcing CR+LF line endings for the VC++ project
3287	files.
3288
32892004-01-22  Garrick Meeker  <garrick@digitalanarchy.com>
3290
3291	* src/cff/cffload.c (cff_subfont_load): Initialize `dict'.
3292
32932004-01-22  Werner Lemberg  <wl@gnu.org>
3294
3295	Add support for the hexadecimal representation of binary data
3296	started with `StartData' in CID-keyed Type 1 fonts.
3297
3298	* include/freetype/internal/t1types.h (CID_FaceRec): Add new
3299	members `binary_data' and `cid_stream'.
3300
3301	* src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'.
3302	(cid_hex_to_binary): New auxiliary function.
3303	(cid_face_open): Add new argument `face_index' to return quickly
3304	if less than zero.  Updated all callers.
3305	Call `cid_hex_to_binary', then open and assign memory stream to
3306	`face->cid_stream' if `parser->binary_length' is non-zero.
3307	* src/cid/cidload.h: Updated.
3308
3309	* src/cid/cidobjs.c (cid_face_done): Free `binary_data' and
3310	`cid_stream'.
3311
3312	* src/cid/cidparse.c (cid_parser_new): Check arguments to
3313	`StartData' and set parser->binary_length accordingly.
3314	* src/cid/cidparse.h (CID_Parser): New member `binary_length'.
3315
3316	* src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'.
3317
3318	* docs/CHANGES: Updated.
3319
33202004-01-21  Werner Lemberg  <wl@gnu.org>
3321
3322	include/freetype/config/ftstdlib.h (ft_atoi): Replaced with...
3323	(ft_atol): This.
3324	* src/base/ftdbgmem.c: s/atol/ft_atol/.
3325	* src/type42/t42drivr.c: s/ft_atoi/ft_atol/.
3326
33272004-01-20  Masatake YAMATO  <jet@gyve.org>
3328
3329	* include/freetype/ftcache.h: Delete duplicated definition of
3330	FTC_FaceID.
3331
3332	* src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap
3333	Info service function if the cmap comes from sfnt.  Return 0 if the
3334	cmap is synthesized in cff module.
3335
33362004-01-20  David Turner  <david@freetype.org>
3337
3338	* src/cache/ftcmanag.c (ftc_size_node_compare): Call
3339	FT_Activate_Size.
3340
33412004-01-20  Werner Lemberg  <wl@gnu.org>
3342
3343	* src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one
3344	CR, LF, or CR/LF after `eexec'.
3345
33462004-01-18  David Turner  <david@freetype.org>
3347
3348	* src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler
3349	warning.
3350
3351	* src/tools/docmaker/*: Updating beautifier tool.
3352
33532004-01-15  David Turner  <david@freetype.org>
3354
3355	* src/base/ftoutln.c (ft_orientation_extremum_compute): Fix
3356	infinite loop bug.
3357
3358	* include/freetype/ftstroke.h: Include FT_GLYPH_H.
3359	(FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New
3360	declarations.
3361
3362	* src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H.
3363	(FT_Outline_GetOutsideBorder): Inverse result.
3364	(FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New
3365	functions.
3366	(FT_Stroker_EndSubPath): Close path if needed.
3367	(FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind.
3368
3369	* include/freetype/cache/ftcmanag.h (FTC_ScalerRec,
3370	FTC_Manager_LookupSize): Moved to...
3371	* include/freetype/ftcache.h (FTC_ScalerRec,
3372	FTC_Manager_LookupSize): Here.
3373
3374	* src/tools/docmaker/docbeauty.py: New file to beautify the
3375	documentation comments (e.g., to convert them to single block border
3376	mode).
3377	* src/tools/docmaker/docmaker.py (file_exists, make_file_list):
3378	Moved to...
3379	* src/tools/docmaker/utils.py (file_exists, make_file_list): Here.
3380
33812004-01-14  David Turner  <david@freetype.org>
3382
3383	* include/freetype/internal/ftmemory.h (FT_ARRAY_COPY,
3384	FT_ARRAY_MOVE): New macros to make copying arrays easier.
3385	Updated all relevant code to use them.
3386
33872004-01-14  Werner Lemberg  <wl@gnu.org>
3388
3389	* src/cff/cffload.c (cff_font_load): Load charstrings_index earlier.
3390	Use number of charstrings as argument to CFF_Load_FD_Select (as
3391	documented in the CFF specs).
3392
33932004-01-13  Graham Asher  <graham.asher@btinternet.com>
3394
3395	* src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of
3396	`glyph->memory' up to free arrays properly in case of failure.
3397
33982004-01-10  Masatake YAMATO  <jet@gyve.org>
3399
3400	Make `FT_Get_CMap_Language_ID' work with CFF.  Bug reported by
3401	Steve Hartwell <shspamsink@comcast.net>.
3402
3403	* src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H.
3404	(cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP.
3405	(cff_get_cmap_info): New function.
3406	(cff_service_get_cmap_info) New entry for cff_services.
3407
3408	* src/sfnt/ttcmap0.c: Exit loop after a format match has been found.
3409	Suggested by Steve Hartwell <shspamsink@comcast.net>.
3410
34112004-01-03  Masatake YAMATO  <jet@gyve.org>
3412
3413	* src/base/ftobjs.c (destroy_charmaps): New function.
3414	(destroy_face, open_face): Use `destroy_charmaps'.
3415
34162004-01-01  Werner Lemberg  <wl@gnu.org>
3417
3418	* docs/CHANGES: Updated.
3419
34202004-01-01  Michael Jansson  <mjan@em2-solutions.com>
3421
3422	* src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of
3423	size->metrics.descender.
3424
34252003-12-31  Wolfgang Domröse  <porthos.domroese@harz.de>
3426
3427	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
3428	[FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4.
3429	<cff_op_flex1>: Change type of dx and dy to FT_Pos and remove
3430	cast for accessing arguments.
3431
34322003-12-31  Werner Lemberg  <wl@gnu.org>
3433
3434	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous
3435	change.  It's not necessary.
3436
34372003-12-29  Smith Charles  <smith.charles@free.fr>
3438
3439	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated
3440	flags set' correctly.
3441
34422003-12-29  Werner Lemberg  <wl@gnu.org>
3443
3444	* src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating
3445	`full' and `weight' properly.
3446	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
3447	<cff_op_hintmask> [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for
3448	tracing output.
3449
34502003-12-26  Werner Lemberg  <wl@gnu.org>
3451
3452	* include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func):
3453	Use FT_UInt for ppem values.
3454	* src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for
3455	ppem values.
3456	* src/sfnt/ttsbit.h: Updated.
3457
3458	* src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values
3459	larger than -0FFFF.
3460
34612003-12-25  Werner Lemberg  <wl@gnu.org>
3462
3463	* src/base/fttrigon.c, src/base/ftgloadr.c: Include
3464	FT_INTERNAL_OBJECTS_H.
3465
3466	* src/base/ftstroke.c (FT_Outline_GetInsideBorder,
3467	FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with
3468	C++ compilers.
3469
3470	* src/cache/ftcmru.c, include/freetype/cache/ftcmru.h:
3471	s/select/selection/ to avoid compiler warning.
3472	* src/cff/cffload.h: s/select/ftselect/ to avoid potential
3473	compiler warning.
3474
34752003-12-24  Werner Lemberg  <wl@gnu.org>
3476
3477	* src/cache/ftcsbits.c (FTC_SNode_Weight):
3478	s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/.
3479
34802003-12-24  David Turner  <david@freetype.org>
3481
3482	* Fixed compilation problems in the cache sub-system.
3483
3484	* Partial updates to src/autofit.
3485
3486	* Jamfile (FT2_COMPONENTS): Add autofit module.
3487
34882003-12-23  Werner Lemberg  <wl@gnu.org>
3489
3490	* src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle
3491	CID-keyed fonts.
3492
34932003-12-23  David Turner  <david@freetype.org>
3494
3495	* include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND,
3496	FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_PIX_CEIL): New macros.
3497	They are used to avoid compiler warnings with very pedantic compilers.
3498	Note that `(x) & -64' causes a warning if (x) is not signed.  Use
3499	`(x) & ~63' instead!
3500	Updated all related code.
3501
3502	Add support for extraction of `inside' and `outside' borders.
3503
3504	* src/base/ftstroke.c (FT_StrokerBorder): New enumeration.
3505	(FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder,
3506	FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions.
3507	(FT_StrokeBorderRec): New boolean member `valid'.
3508	(ft_stroke_border_get_counts): Updated.
3509	* include/freetype/ftstroke.h: Updated.
3510
35112003-12-22  Werner Lemberg  <wl@gnu.org>
3512
3513	* include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions
3514	to describe the `charset' field in FT_WinFNT_HeaderRec.
3515	* src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to
3516	FT_ENCODING_NONE except for FT_WinFNT_ID_MAC.
3517
3518	* include/freetype/freetype.h (FT_Encoding): Improve comment,
3519	based on work by Detlef Würkner <TetiSoft@apg.lahn.de>.
3520
3521	* docs/CHANGES: Updated.
3522
35232003-12-22  David Turner  <david@freetype.org>
3524
3525	* include/freetype/ftcache.h,
3526	include/freetype/cache/ftcmanag.h,
3527	include/freetype/cache/ftccache.h,
3528	include/freetype/cache/ftcmanag.h,
3529	include/freetype/cache/ftcmru.h (added),
3530	include/freetype/cache/ftlru.h (removed),
3531	include/freetype/cache/ftcsbits.h,
3532	include/freetype/cache/ftcimage.h,
3533	include/freetype/cache/ftcglyph.h,
3534	src/cache/ftcmru.c,
3535	src/cache/ftcmanag.c,
3536	src/cache/ftccache.c,
3537	src/cache/ftcglyph.c,
3538	src/cache/ftcimage.c,
3539	src/cache/ftcsbits.c,
3540	src/cache/ftccmap.c,
3541	src/cache/ftcbasic.c (added),
3542	src/cache/ftlru.c (removed):
3543
3544	  *Complete* rewrite of the cache sub-system to `solve' the
3545	  following points:
3546
3547	    - all public APIs have been moved to FT_CACHE_H, everything
3548	      under `include/freetype/cache' is only needed by client
3549	      applications that want to implement their own caches
3550
3551	    - a new function named FTC_Manager_RemoveFaceID to deal
3552	      with the uninstallation of FaceIDs
3553
3554	    - the image and sbit cache are now abstract classes, that
3555	      can be extended much more easily by client applications
3556
3557	    - better performance in certain areas.  Further optimizations
3558	      to come shortly anyway...
3559
3560	    - the FTC_CMapCache_Lookup function has changed its signature,
3561	      charmaps can now only be retrieved by index
3562
3563	    - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace
3564	      FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in
3565	      private header for the moment)
3566
35672003-12-21  Werner Lemberg  <wl@gnu.org>
3568
3569	* src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword
3570	is encountered.
3571
35722003-12-19  Werner Lemberg  <wl@gnu.org>
3573
3574	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32.  For
3575	example, the Japanese Hiragino font already contains 15 subfonts.
3576
3577	* src/cff/cffload.c (cff_font_load): Deallocate `sids' array for
3578	CID-keyed fonts.
3579
3580	* devel/ftoption.h: Define FT_DEBUG_MEMORY.
3581
35822003-12-18  Werner Lemberg  <wl@gnu.org>
3583
3584	* include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro.
3585	* src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values.
3586
35872003-12-18  Werner Lemberg  <wl@gnu.org>
3588
3589	* src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of
3590	`cid_count' to `FT_ULong'.
3591
3592	* src/cff/cffgload.c (cff_slot_load): Take care of empty `cids'
3593	array.
3594
3595	* src/cff/cffload.c (cff_charset_done): Free `cids' array.
3596	(cff_font_load): Create cids array only for CID-keyed fonts which
3597	are subsetted.
3598
3599	* src/cff/cffobjs.c (cff_face_init): Check the availability of
3600	the PSNames modules for non-pure CFFs also.
3601	Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't
3602	CID-keyed.
3603
3604	* src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h.
3605
36062003-12-17  Werner Lemberg  <wl@gnu.org>
3607
3608	* src/sfnt/sfobjs.c (sfnt_init_face): Don't set
3609	FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post'
3610	table.
3611
3612	* docs/CHANGES: Updated.
3613
36142003-12-17  Masatake YAMATO  <jet@gyve.org>
3615
3616	Add new function FT_Get_CMap_Language_ID to extract the language ID
3617	for TrueType/sfnt fonts.
3618
3619	* include/freetype/internal/services/svttcmap.h: New file.
3620	* include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add
3621	svttcmap.h.
3622
3623	* src/sfnt/sfdriver.c: Include ttcmap0.h.
3624	(tt_service_get_cmap_info): New service.
3625	(sfnt_services): Updated.
3626
3627	* src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions.
3628	(tt_cmap*_class_rec): Add tt_cmap*_get_info members.
3629	(tt_get_cmap_info): New function.
3630	* src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H.
3631	(TT_CMap_ClassRec): New field `get_cmap_info'.
3632	(tt_get_cmap_info): New declaration.
3633
3634	* src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H.
3635	(FT_Get_CMap_Language_ID): New function implementation.
3636	* include/freetype/tttables.h (FT_Get_CMap_Language_ID): New
3637	function declaration.
3638
36392003-12-16  Werner Lemberg  <wl@gnu.org>
3640
3641	* src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed.  Obsolete.
3642
3643	* include/freetype/internal/sfnt.h (SFNT_Interface): Remove
3644	obsolete fields `load_charmap' and `free_charmap'.
3645	(TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed.
3646	* src/sfnt/sfnt.c: Don't include ttcmap.c.
3647	* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c.
3648	* src/sfnt/ttload.c: Don't include ttcmap.h.
3649	* src/sfnt/sfdriver.c: Don't include ttcmap.h.
3650	(sfnt_interface): Updated.
3651
3652	* include/freetype/internal/tttypes.h (TT_TableDirRec,
3653	TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec,
3654	TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6,
3655	TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func,
3656	TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed.
3657	Obsolete.
3658	* src/cff/cffobjs.h (CFF_CharMapRec): Removed.  Obsolete.
3659
36602003-12-15  Werner Lemberg  <wl@gnu.org>
3661
3662	* docs/CHANGES: Updated.
3663
36642003-12-15  Wolfgang Domröse  <porthos.domroese@harz.de>
3665
3666	* builds/atari/*: New directory for building FreeType 2 on Atari
3667	with the PureC compiler.
3668
36692003-12-12  Wolfgang Domröse  <porthos.domroese@harz.de>
3670
3671	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add
3672	cast.
3673	* src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return
3674	value is either 0 or 1.
3675
36762003-12-12  Werner Lemberg  <wl@gnu.org>
3677
3678	* src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message.
3679	(cff_get_name_index): Return if no PSNames service is available.
3680	(cff_ps_has_glyph_names): Handle CID-keyed fonts correctly.
3681	* src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for
3682	CID-keyed fonts.  This is the inverse mapping of `sids'.
3683	* src/cff/cffload.c (cff_charset_load): New argument `invert'.
3684	Initialize charset->cids if `invert' is set.
3685	(cff_font_load): In call to cff_charset_load, set `invert' to true
3686	for CID-keyed fonts.
3687	* src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID
3688	and map it to the real glyph index.
3689
3690	* docs/CHANGES: Updated.
3691
36922003-12-11  Werner Lemberg  <wl@gnu.org>
3693
3694	* src/cff/cffobjs.c (cff_face_init): Don't set
3695	FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts.
3696	Don't construct a cmap for CID-keyed fonts.
3697
36982003-12-10  Werner Lemberg  <wl@gnu.org>
3699
3700	Use implementation specific SID value 0xFFFF to indicate that
3701	a dictionary element is missing.
3702
3703	* src/cff/cffload.c (cff_subfont_load): Initialize all fields
3704	which hold SIDs to 0xFFFF.
3705	(cff_index_get_sid_string): Handle SID value 0xFFFF.
3706	Handle case where `psnames' is zero.
3707	(cff_font_load): Updated.
3708	Don't load encoding for CID-keyed CFFs.
3709
3710	* src/cff/cffobjs.c (cff_face_init): Updated.
3711	Don't check for PSNames module if font is CID-keyed.
3712	Compute style name properly (using the same algorithm as in the
3713	CID driver).
3714	Fix computation of style flags.
3715
3716	* src/cff/cfftoken.h: Comment out handling of base_font_name.
3717	Rename `postscript' field to `embedded_postscript'
3718	* src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name'
3719	and `postscript'.
3720
37212003-12-10  Detlef Würkner  <TetiSoft@apg.lahn.de>
3722
3723	* src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone
3724	of the similar BDF function).
3725	(pcf_service_bdf): Use it.
3726
37272003-12-09  Werner Lemberg  <wl@gnu.org>
3728
3729	* src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES
3730	only if a `post' table is present.
3731
37322003-12-09  George Williams  <gww@silcom.com>
3733
3734	* src/base/ftobjs.c (load_mac_face): Recent versions of Linux
3735	support Mac's HFS+ file system, thus enable code to read /rsrc on
3736	non-Macintosh platforms also.
3737
37382003-12-08  Werner Lemberg  <wl@gnu.org>
3739
3740	* include/freetype/internal/psaux.h (PS_TableRec): Change type
3741	of `lengths' to FT_PtrDist.
3742	(T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist.
3743	* include/freetype/internal/t1types.h (T1_FontRec): Change type
3744	of `subrs_len' and `charstrings_len' to FT_PtrDist.
3745
3746	* src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk'
3747	variable with better solution.
3748	(IsMacResource): Remove unused variable `map_len'.
3749	Replace `junk' variable with better solution.
3750	(FT_Open_Face) [!FT_MACINTOSH]: Add conditional
3751	FT_CONFIG_OPTION_MAC_FONTS.
3752
37532003-12-08  Wolfgang Domröse  <porthos.domroese@harz.de>
3754
3755	* src/autohint/ahhint.c (ah_hinter_hint_edges,
3756	ah_hinter_align_strong_points): Add some casts.
3757
3758	* src/base/ftoutln.c (FT_OrientationExtremumRec): Change type
3759	of `pos' to FT_Long.
3760
3761	* src/base/ftobjs.c (Mac_Read_POST_Resource,
3762	Mac_Read_sfnt_Resource): Change type of `len' to FT_Long.
3763
3764	* src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'.
3765
37662003-12-07  Werner Lemberg  <wl@gnu.org>
3767
3768	* docs/raster.txt: New file, taken from FreeType 1 and completely
3769	revised.
3770
37712003-12-04  Masatake YAMATO  <jet@gyve.org>
3772
3773	* src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for
3774	t1_interface.  t1_interface is used.
3775
37762003-11-27  David Turner  <david@freetype.org>
3777
3778	* src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of
3779	2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are
3780	the scaling values for outline units, not for metric units.
3781
37822003-11-25  Werner Lemberg  <wl@gnu.org>
3783
3784	* src/base/ftcalc.c, include/freetype/internal/ftcalc.h
3785	(FT_MulDiv_No_Round): Surround code with `#ifdef
3786	TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'.
3787
37882003-11-23  Werner Lemberg  <wl@gnu.org>
3789
3790	* src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and
3791	64 bit version).
3792	* include/freetype/internal/ftcalc.h: Updated.
3793
3794	* src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro.
3795	(TT_INT64): Removed.
3796	(DO_DIV): Use TT_MULDIV_NO_ROUND.
3797
3798	* src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use
3799	metrics->x_scale and metrics->y_scale.
3800
38012003-11-22  Rogier van Dalen  <R.C.van.Dalen@umail.leidenuniv.nl>
3802
3803	* src/truetype/ttinterp.c (CUR_Func_move_orig): New macro.
3804	(Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New
3805	functions.  Similar to Direct_Move, Direct_Move_X, and
3806	Direct_Move_Y but without touching.
3807	(Compute_Funcs): Use new functions.
3808
3809	(Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
3810	Round_Up_To_Grid, Round_To_Double_Grid, Round_Super,
3811	Round_Super_45): Fix rounding of value zero.
3812
3813	(DO_DIV): Don't use TT_MULDIV.
3814
3815	(Ins_SHC): This instruction actually touches the points.
3816	(Ins_MSIRP): Fix undocumented behaviour.
3817
3818	* src/truetype/ttinterp.h (TT_ExecContextRec): Updated.
3819
38202003-11-22  Werner Lemberg  <wl@gnu.org>
3821
3822	* docs/VERSION.DLL, docs/CHANGES: Updated.
3823
3824	* src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and
3825	metrics->y_scale really precise.
3826
3827	(FT_Load_Glyph): Update computation of linearHoriAdvance and
3828	linearVertAdvance.
3829
3830	* src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC.
3831
38322003-11-22  David Turner  <david@freetype.org>
3833
3834	* src/autofit/*: More updates.
3835
3836	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
3837	* builds/unix/configure.ac (version_info): Set to 9:6:3.
3838	* README: Updated.
3839
38402003-11-13  John A. Boyd Jr.  <jaboydjr@netwalk.com>
3841
3842	* src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c
3843	(pcf_interpret_style): Replace spaces with dashes in properties
3844	SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing.
3845
38462003-11-11  Werner Lemberg  <wl@gnu.org>
3847
3848	* docs/CHANGES: Updated.
3849
38502003-11-11  John A. Boyd Jr.  <jaboydjr@netwalk.com>
3851
3852	Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF
3853	fonts.
3854
3855	* src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function.
3856	(BDF_Face_Init): Don't handle style properties but call
3857	bdf_interpret_style.
3858
3859	* src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function.
3860	(pcf_load_font): Don't handle style properties but call
3861	pcf_interpret_style.
3862
38632003-11-07  Werner Lemberg  <wl@gnu.org>
3864
3865
3866	* Version 2.1.7 released.
3867	=========================
3868
3869
3870	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
3871
3872	* builds/unix/ft2unix.h: Fix comments.
3873
3874	* builds/unix/ftconfig.in: Synchronized with ANSI version.
3875	Use `#undef' in templates as recommended in the autoconf
3876	documentation.
3877	Since real `#undef' lines don't survive during configuration, use
3878	`/undef' instead; the postprocessing facility of the
3879	AC_CONFIG_HEADERS autoconf macro converts them to `#undef'.
3880
3881	* builds/unix/install.mk (install): Install Unix version of
3882	`ftconfig.h'.
3883
3884	* builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro
3885	to include the correct `ftconfig.h' file.
3886
3887	* builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed.
3888	(FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59.
3889
3890	* builds/unix/freetype2.m4: Updated syntax to autoconf 2.59.
3891
3892	* builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of
3893	AC_CONFIG_HEADER to create ftconfig.h, and use second argument
3894	to replace `/undef' with `#undef'.
3895	Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap.
3896	Use AS_HELP_STRING in AC_ARG_WITH.
3897	Update syntax to autoconf 2.59.
3898
3899	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
3900	--copy' from libtool 1.5.
3901	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
3902	automake 1.7.8.
3903	* builds/unix/configure: Regenerated with autoconf 2.59.
3904	* builds/unix/config.guess, builds/unix/config.sub: Updated from
3905	`config' CVS module at subversions.gnu.org
3906	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
3907	`texinfo' CVS module at subversions.gnu.org.
3908
3909	* builds/vms/ftconfig.h: Synchronized with ANSI version.
3910
3911	* docs/CUSTOMIZE: Fix documentation error.
3912	* docs/CHANGES, docs/VERSION.DLL, docs/release: Updated.
3913
3914	* builds/freetype.mk (refdoc): Updated --title.
3915
39162003-11-07  David Turner  <david@freetype.org>
3917
3918
3919	* Version 2.1.6 released.
3920	=========================
3921
3922
3923	* install: Removed.  Obsolete.
3924
39252003-11-04  Werner Lemberg  <wl@gnu.org>
3926
3927	* src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H.
3928	(sfnt_service_sfnt_table): New service.
3929	(sfnt_services): Updated.
3930
3931	* docs/license.txt: Reworded.
3932
39332003-11-03  Werner Lemberg  <wl@gnu.org>
3934
3935	* include/freetype/*: Add a guard to all public header files which
3936	load FT_FREETYPE_H to reject freetype.h from FreeType 1.
3937
39382003-11-02  Patrick Welche  <prlw1@newn.cam.ac.uk>
3939
3940	* builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect
3941	first argument of AC_DEFUN with brackets to avoid possible
3942	expansion.
3943
39442003-11-02  Werner Lemberg  <wl@gnu.org>
3945
3946	* include/freetype/cache/ftcglyph.h: Don't include stddef.h.
3947
3948	* include/freetype/freetype.h: Fix check for ft2build.h.
3949
39502003-11-01  Werner Lemberg  <wl@gnu.org>
3951
3952	* include/freetype/freetype.h: Check that ft2build.h has been
3953	loaded first.
3954
3955	* src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied
3956	patch.
3957
39582003-10-31  Detlef Würkner  <TetiSoft@apg.lahn.de>
3959
3960	* src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names):
3961	Fix parameter order in calls to FT_FACE_FIND_SERVICE.
3962
39632003-10-31  Werner Lemberg  <wl@gnu.org>
3964
3965	* include/freetype/internal/ftserv.h
3966	(FT_SERVICE_POSTSCRIPT_NAMES_H): Removed.  Unused.
3967
3968	* src/type42/t42drivr.c (t42_services): Updated.
3969
39702003-10-29  David Turner  <david@freetype.org>
3971
3972	* include/freetype/internal/bdftypes.h: Removed.  Obsolete.
3973	* src/base/ftbdf.c: Updated.
3974
3975	* include/freetype/internal/cfftypes.h: Moved to...
3976	* src/cff/cfftypes.h: This place since no other module needs to
3977	know about those types.
3978
3979	* include/freetype/internal/t42types.h: Moved to...
3980	* src/type42/t42types.h: This place since no other module needs to
3981	know about those types.
3982
3983	* include/freetype/internal/services/svbdf.h: Include FT_BDF_H.
3984
3985	* include/freetype/internal/services/svpsname.h: Renamed to...
3986	* include/freetype/internal/services/svpscmap.h: This.
3987	Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and
3988	`POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere.
3989
3990	* include/freetype/internal/services/svpsinfo.h: New file, providing
3991	PostScript info service.
3992
3993	* include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H,
3994	FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and
3995	svpsinfo.h.
3996	* include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H,
3997	FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed.
3998
3999	* src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and
4000	FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and
4001	FT_SERVICE_POSTSCRIPT_INFO_H.
4002	(FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new
4003	POSTSCRIPT_INFO service.
4004
4005	* src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
4006	(cff_ps_has_glyph_names): New function.
4007	(cff_service_ps_info): New service.
4008	(cff_services): Updated.
4009
4010	* src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't
4011	include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly.
4012
4013	* src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
4014	(cid_ps_get_font_info): New function.
4015	(cid_service_ps_info): New service.
4016	(cid_services): Updated.
4017
4018	* src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
4019	(t1_ps_get_font_info, t1_ps_has_glyph_names): New functions.
4020	(t1_service_ps_info): New service.
4021	(t1_services): Updated.
4022
4023	* src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
4024	(t42_ps_get_font_info, t42_ps_has_glyph_names): New functions.
4025	(t42_service_ps_info): New service.
4026
4027	* src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H
4028	but t42types.h directly.
4029
4030	* src/psnames/psmodule.c (psnames_interface, psnames_services):
4031	Renamed to...
4032	(pscmaps_interface, pscmaps_services): This.
4033	Updated all users.
4034
4035
4036	* src/gzip/infblock.c (inflate_blocks): Remove compiler warning.
4037
40382003-10-22  Werner Lemberg  <wl@gnu.org>
4039
4040	* src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'.
4041
4042	* src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec'
4043	is real.
4044
4045	* src/type42/t42parse.c (t42_parse_encoding): Improve boundary
4046	checking while parsing.
4047
4048	* docs/CHANGES: Updated.
4049
40502003-10-21  Josselin Mouette  <joss@debian.org>
4051
4052	* include/freetype/internal/t1types.h (T1_FontRec): `paint_type'
4053	and `stroke_width' aren't pointers.
4054
4055	* src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c
4056	(T1_Face_Done): Don't free `paint_type' and `stroke_width'.
4057
40582003-10-20  Graham Asher  <graham.asher@btinternet.com>
4059
4060	* src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'.
4061
40622003-10-19  Werner Lemberg  <wl@gnu.org>
4063
4064	* src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from
4065	2003-08-18 introduced a severe bug (FT_Render_Glyph was called
4066	twice under some circumstances, causing strange results).  This
4067	is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'.
4068
4069	* src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'.
4070	* src/psaux/psobjs.c (ps_tobytes): Initialize `n'.
4071	* src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'.
4072
40732003-10-16  Werner Lemberg  <wl@gnu.org>
4074
4075	Completely revised Type 42 parser.  It now handles both fonts
4076	produced with ttftot42 (tested version 0.3.1) and
4077	TrueTypeToType42.ps (tested version May 2001; it is necessary to
4078	fix the broken header comment to be `%!PS-TrueTypeFont...').
4079
4080	* src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth
4081	parameter to `FT_UInt'.
4082	* src/type42/t42objs.h: Updated.
4083
4084	* src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory'
4085	to FT_Bool.
4086	(T42_Loader): Change type of `num_chars' and `num_glyphs' to
4087	FT_UInt.
4088	Add `swap_table' element.
4089	* src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed,
4090	T1_ToCoordArray, T1_ToTokenArray): Removed.
4091	(T1_ToBytes): New macro.
4092	(t42_is_alpha, t42_hexval): Removed.
4093	(t42_is_space): Handle `\0'.
4094	(t42_parse_encoding): Updated to use new PostScript parser routines
4095	from psaux.
4096	Handle `/Encoding [ ... ]' also.
4097	(T42_Load_Status): New enumeration.
4098	(t42_parse_sfnts): Updated to use new PostScript parser routines
4099	from psaux.
4100	(t42_parse_charstrings): Updated to use new PostScript parser
4101	routines from psaux.
4102	Handle `/CharStrings << ... >>' also.
4103	Don't expect that /.notdef is the first element in dictionary.  Copy
4104	code from type1 module to handle this.
4105	(t42_parse_dict): Updated to use new PostScript parser routines
4106	from psaux.
4107	Remove code for synthetic fonts (which can't occur in Type 42
4108	fonts).
4109	(t42_loader_done): Release `swap_table'.
4110
4111	* src/psaux/psobjs.c (skip_string): Increase `cur' properly.
4112
4113	* src/type1/t1load.c (parse_charstrings): Make test for `.notdef'
4114	faster.
4115
41162003-10-15  Graham Asher  <graham.asher@btinternet.com>
4117
4118	* src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c
4119	(fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty,
4120	_num_bdf_properties), src/gzip/infutil.c (inflate_mask),
4121	src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td),
4122	src/gzip/inftrees.h (inflate_trees_fixed), src/gzip/inftrees.c
4123	(inflate_trees_fixed): Decorate with more `const' to avoid
4124	writable global variables which are disallowed on ARM.
4125
41262003-10-08  Werner Lemberg  <wl@gnu.org>
4127
4128	* src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove
4129	code specially for synthetic fonts; this is handled elsewhere.
4130	(parse_encoding): Remove code specially for synthetic fonts; this is
4131	handled elsewhere.
4132	Improve boundary checking while parsing.
4133	(parse_dict): Improve boundary checking while parsing.
4134	Use ft_memcmp to simplify code.
4135
41362003-10-07  Werner Lemberg  <wl@gnu.org>
4137
4138	* src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic
4139	fonts properly.
4140	(parse_charstrings): Copy correct number of characters into
4141	`name_table'.
4142
41432003-10-06  Werner Lemberg  <wl@gnu.org>
4144
4145	Heavy modification of the PS parser to handle comments and strings
4146	correctly.  This doesn't slow down the loading of PS fonts
4147	significantly since charstrings aren't affected.
4148
4149	* include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to...
4150	(ft_isxdigit): This.  Updated all callers.
4151	(ft_isdigit): New alias to `isdigit'.
4152
4153	* include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed
4154	`skip_alpha' to `skip_PS_token'.
4155	Add parameter to `to_bytes' and change some argument types.
4156
4157	* src/psaux/psauxmod.c (ps_parser_funcs): Updated.
4158	* src/psaux/psobjs.c (ft_char_table): New array to map character
4159	codes (ASCII and EBCDIC) of digits to numbers.
4160	(OP): New auxiliary macro holding either `>=' or `<' depending on
4161	the character encoding.
4162	(skip_comment): New function.
4163	(skip_spaces): Use it.
4164	(skip_alpha): Removed.
4165	(skip_literal_string, skip_string): New functions.
4166	(ps_parser_skip_PS_token): New function.  This is a better
4167	replacement of...
4168	(ps_parser_skip_alpha): Removed.
4169	(ps_parser_to_token, ps_parser_to_token_array): Updated.
4170	(T1Radix): Rewritten, using `ft_char_table'.
4171	(t1_toint): Renamed to...
4172	(ps_toint): This.  Update all callers.
4173	Use `ft_char_table'.
4174	(ps_tobytes): Add parameter to handle delimiters and change some
4175	argument types.
4176	Use `ft_char_table'.
4177	(t1_tofixed): Renamed to...
4178	(ps_tofixed): This.  Update all callers.
4179	Use `ft_char_table'.
4180	(t1_tocoordarray): Renamed and updated to...
4181	(ps_tocoordarray): This.  Update all callers.
4182	(t1_tofixedarray): Renamed and updated to...
4183	(ps_tofixedarray): This.  Update all callers.
4184	(t1_tobool): Renamed to...
4185	(ps_tobool): This.  Update all callers.
4186	(ps_parser_load_field): Updated.
4187	(ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS'
4188	everywhere.
4189	(ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array,
4190	ps_parser_to_fixed_array): Skip spaces.  Updated.
4191	(ps_parser_to_bytes): Add parameter to handle delimiters and change
4192	some argument types.  Updated.
4193	* src/psaux/psobjs.h: Updated.
4194
4195	* src/cid/cidload.c (cid_parse_dict): Updated.
4196	* src/cid/cidparse.c (cid_parser_new): Check whether the `StartData'
4197	token was really found.
4198	* src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed
4199	to...
4200	(cid_parser_skip_PS_token): This.
4201
4202	* src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean
4203	fields.
4204	(T1_Skip_Alpha): Replaced with...
4205	(T1_Skip_PS_Token): This new macro.
4206	* src/type1/t1parse.c (hexa_value): Removed.
4207	(T1_Get_Private_Dict): Use `ft_isxdigit' and
4208	`psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal
4209	encoding.
4210	After decrypting, replace the four random bytes at the beginning
4211	with whitespace.
4212	* src/type1/t1load.c (t1_allocate_blend): Use proper error values.
4213	(parser_blend_design_positions, parse_blend_design_map,
4214	parse_weight_vector): Updated.
4215	(is_space): Handle `\f' also.
4216	(is_name_char): Removed.
4217	(read_binary_data): Updated.
4218	(parse_encoding): Use `ft_isdigit'.
4219	Updated.
4220	(parse_subrs): Updated.
4221	(TABLE_EXTEND): New macro.
4222	(parse_charstrings): Updated.
4223	Provide a workaround for buggy fonts which have more entries in the
4224	/CharStrings dictionary then expected; the function now adds some
4225	slots and skips entries which still exceed the new limit.
4226	(parse_dict): Updated.
4227	Terminate on the token `closefile'.
4228
4229	* src/type42/t42parse.c (T1_Skip_Alpha): Replaced with...
4230	(T1_Skip_PS_Token): This new macro.  Updated all callers.
4231	(t42_parse_encoding): Use `ft_isdigit'.
4232
4233
4234	* src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_Ok if
4235	success.
4236
42372003-10-05  Werner Lemberg  <wl@gnu.org>
4238
4239	* include/freetype/ftmodule.h: Renamed to...
4240	* include/freetype/ftmodapi.h: This to avoid duplicate file names.
4241	* include/freetype/config/ftheader.h (FT_MODULE_H): Updated.
4242
42432003-10-04  Werner Lemberg  <wl@gnu.org>
4244
4245	* src/base/ftoutln.c (FT_OrientationExtremumRec,
4246	FT_Outline_Get_Orientation): Trivial typo fixes to make it compile.
4247
42482003-10-02  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
4249
4250	* src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset'
4251	has four bytes, not two.
4252	Fix all users.
4253	(fnt_font_load, FNT_Load_Glyph): Add more font validity tests.
4254
42552003-10-01  David Turner  <david@freetype.org>
4256
4257	* src/autofit/*: Adding first source files of the new multi-script
4258	`auto-fitter'.
4259
4260	* include/freetype/ftoutln.h (FT_Orientation): New enumeration.
4261	(FT_Outline_Get_Orientation): New declaration.
4262
4263	* src/base/ftoutln.c (FT_OrientationExtremumRec): New structure.
4264	(ft_orientation_extremum_compute): New auxiliary function.
4265	(FT_Outline_Get_Orientation): New function to compute the fill
4266	orientation of a given glyph outline.
4267
4268	* include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed
4269	trivial bug which could crash the font engine when a cached service
4270	pointer was retrieved.
4271
42722003-09-30  Werner Lemberg  <wl@gnu.org>
4273
4274	* src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is
4275	found.
4276
4277	* src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE,
4278	IS_T1_SPACE): Removed.
4279	(PFB_Tag): Removed.
4280	(read_pfb_tag): Don't use PFB_Tag.
4281
4282	* src/type42/t42parse.c (t42_is_space): Handle `\f' also.
4283	(t42_parse_encoding): Handle synthetic fonts.
4284
42852003-09-29  Werner Lemberg  <wl@gnu.org>
4286
4287	* include/freetype/internal/t1types.h: Don't include
4288	FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H.
4289	* src/truetype/ttobjs.c: Don't include
4290	FT_SERVICE_POSTSCRIPT_NAMES_H.
4291
42922003-09-29  David Turner  <david@freetype.org>
4293
4294	Added new service to handle glyph name dictionaries, replacing the
4295	old internal header named `psnames.h' by `services/svpsname.h'.
4296	Note that this is different from `services/svpostnm.h' which only
4297	handles the retrieval of PostScript font names for a given face.
4298	(Should we merge these two services into a single header?)
4299
4300	* include/freetype/internal/psnames.h: Removed.  Most of its
4301	contents is moved to...
4302	* include/freetype/internal/services/svpsname.h: New file.
4303
4304	* include/freetype/internal/services/svpostnm.h
4305	(FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with...
4306	(FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro.
4307	(PsName): Service named changed to...
4308	(PsFontName): This.
4309	Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and
4310	`POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere.
4311
4312	* include/freetype/internal/internal.h
4313	(FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed.
4314	* include/freetype/internal/psaux.h: Include
4315	FT_SERVICE_POSTSCRIPT_NAMES_H.
4316	(T1_DecoderRec): Updated type of `psnames'.
4317	* include/freetype/internal/t1types.h: Don't include
4318	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4319	Include FT_INTERNAL_OBJECTS_H.
4320	* include/freetype/internal/t42types.h: Don't include
4321	FT_INTERNAL_POSTSCRIPT_NAMES_H.
4322	* include/freetype/internal/tttypes.h (TT_FaceRec): Updated.
4323
4324	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed
4325	order of parameters.  All callers updated.
4326	(FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service
4327	globally, checking all modules.
4328	(FT_ServiceCacheRec): Updated.
4329	(FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing
4330	`svpsname.h'.
4331
4332	* include/freetype/internal/ftobjs.h, src/base/ftobjs.c
4333	(ft_module_get_service): New function.
4334
4335	* src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4336	but FT_SERVICE_POSTSCRIPT_NAMES_H.
4337	(cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES
4338	service.
4339	* src/cff/cffcmap.c (cff_cmap_unicode_init): Updated.
4340	* src/cff/cffload.c, src/cff/cffload.h:  Don't include
4341	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4342	(cff_index_get_sid_string): Updated.
4343	* src/cff/cffobjs.c:  Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4344	but FT_SERVICE_POSTSCRIPT_NAMES_H.
4345	(cff_face_init): Use new POSTSCRIPT_NAMES service.
4346	* src/cff/cffobjs.h:  Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4347	but FT_SERVICE_POSTSCRIPT_NAMES_H.
4348
4349	* src/cid/cidobjs.c:  Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4350	but FT_SERVICE_POSTSCRIPT_NAMES_H.
4351	(cid_face_init): Use new POSTSCRIPT_NAMES service.
4352	* src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H.
4353
4354	* src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use
4355	new POSTSCRIPT_NAMES service.
4356	* src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode,
4357	t1_decode_init): Use new POSTSCRIPT_NAMES service.
4358	* src/psaux/t1cmap.h, src/psaux/t1decode.h: Don't include
4359	FT_INTERNAL_POSTSCRIPT_NAMES_H.
4360
4361	* src/psnames/psmodule.c:  Don't include
4362	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4363	(ps_build_unicode_table): Renamed to...
4364	(ps_unicodes_init): This.
4365	(ps_lookup_unicode): Renamed to...
4366	(ps_unicodes_char_index): This.
4367	(ps_next_unicode): Renamed to...
4368	(ps_unicodes_char_next): This.
4369	(psnames_interface): Updated.
4370	(psnames_services): New services list.
4371	(psnames_get_service): New function.
4372	(psnames_module_class): Updated.
4373
4374	* src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4375	but FT_SERVICE_POSTSCRIPT_NAMES_H.
4376	(sfnt_init_face): Use new POSTSCRIPT_NAMES service.
4377	* src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4378	but FT_SERVICE_POSTSCRIPT_NAMES_H.
4379	(tt_face_get_ps_name): Updated.
4380
4381	* src/truetype/ttobjs.c:  Don't include
4382	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4383
4384	* src/type1/t1driver.c:  Don't include
4385	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4386	* src/type1/t1objs.c:  Don't include
4387	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4388	(T1_Face_Init): Use new POSTSCRIPT_NAMES service.
4389
4390	* src/type42/t42drivr.c (t42_get_ps_name): Renamed to...
4391	(t42_get_ps_font_name): This.
4392	(t42_service_ps_name): Renamed to...
4393	(t42_service_ps_font_name): This.
4394	(t42_services): Updated.
4395	* src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES
4396	service.
4397	* src/type42/t42objs.h:  Don't include
4398	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4399
4400
4401	* src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before
4402	testing its validity.  Reported by Henry Maddocks
4403	<maddocks@metservice.com>.
4404
44052003-09-21  Werner Lemberg  <wl@gnu.org>
4406
4407	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE):
4408	Fix compilation warning (s/pptr/Pptr/).
4409
4410	* include/freetype/internal/internal.h (FT_INTERNAL_PFR_H,
4411	FT_INTERNAL_FNT_TYPES_H): Removed.
4412
44132003-09-21  David Turner  <david@freetype.org>
4414
4415	Migrating the PFR and WINFNT drivers to the new service-based
4416	internal API.
4417
4418	* include/freetype/internal/fnttypes.h: Removed.  Most of its data
4419	are moved to winfnt.h and...
4420	* include/freetype/internal/services/svwinfnt.h: New file.
4421
4422	* include/freetype/internal/pfr.h: Removed.  Most of its data are
4423	moved to...
4424	* include/freetype/internal/services/svpfr.h: New file.
4425
4426	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
4427	FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing
4428	pointer type argument.
4429	Updated all callers.
4430	Update macro names of services header files.
4431
4432	* src/base/ftobjs.c (FT_Get_Name_Index): Simplified code.
4433
4434	* src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of
4435	FT_INTERNAL_PFR_H.
4436	(ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning,
4437	FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'.
4438
4439	* src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of
4440	FT_INTERNAL_FNT_TYPES_H.
4441	(FT_Get_WinFNT_Header): Use service provided in `WINFNT'.
4442
4443	* src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and
4444	FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H.
4445	(pfr_service_bdf): Updated.
4446	(pfr_services): New services list.
4447	(pfr_get_service): New function.
4448	(pfr_driver_class): Updated.
4449
4450	* src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and
4451	FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H.
4452	(winfnt_get_header, winfnt_get_service): New functions.
4453	(winfnt_service_rec): New structure providing WINFNT services.
4454	(winfnt_services): New services list.
4455	(winfnt_driver_class): Updated.
4456	* src/winfonts/winfnt.h: Add most of the removed fnttypes.h data.
4457
4458	* src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo.
4459
4460	* src/type1/t1driver.c (t1_service_ps_name): Fix typo.
4461
4462	* src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c,
4463	src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c,
4464	src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler
4465	warnings.
4466
44672003-09-19  David Bevan  <dbevan@emtex.com>
4468
4469	* src/type1/t1parse.c (pfb_tag_fields): Removed.
4470	(read_pfb_tag): Fix code so that it doesn't fail on end-of-file
4471	indicator (0x8003).
4472	* docs/CHANGES: Updated.
4473
44742003-09-16  Werner Lemberg  <wl@gnu.org>
4475
4476	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
4477	FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type.
4478	Ugly, I know, but this is needed for compilation with C++ --
4479	maybe someone knows a better solution?
4480	Updated all callers.
4481
4482	* src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove
4483	C++ compiler warnings.
4484
4485	* src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property):
4486	Fix order of arguments passed to FT_FACE_FIND_SERVICE.
4487
44882003-09-15  Werner Lemberg  <wl@gnu.org>
4489
4490	Avoid header files with identical names.
4491
4492	* include/freetype/internal/services/bdf.h: Renamed to...
4493	* include/freetype/internal/services/svbdf.h: This.
4494	Add copyright notice.
4495	* include/freetype/internal/services/glyfdict.h: Renamed to...
4496	* include/freetype/internal/services/svgldict.h: This.
4497	Add copyright notice.
4498	* include/freetype/internal/services/multmast.h: Renamed to...
4499	* include/freetype/internal/services/svmm.h: This.
4500	Add copyright notice.
4501	Add FT_BEGIN_HEADER and FT_END_HEADER.
4502	* include/freetype/internal/services/sfnt.h: Renamed to...
4503	* include/freetype/internal/services/svsfnt.h: This.
4504	Add copyright notice.
4505	* include/freetype/internal/services/postname.h: Renamed to...
4506	* include/freetype/internal/services/svpostnm.h: This.
4507	Add copyright notice.
4508	* include/freetype/internal/services/xf86name.h: Renamed to...
4509	* include/freetype/internal/services/svxf86nm.h: This.
4510	Add copyright notice.
4511
4512	* include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and
4513	FT_END_HEADER.
4514	Add copyright notice.
4515	Update macro names of services header files.
4516
4517	* builds/freetype.mk (SERVICES_DIR): New variable.
4518	(BASE_H): Add services header files.
4519
45202003-09-11  Werner Lemberg  <wl@gnu.org>
4521
4522	* builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'.
4523
4524	* src/cff/cffdrivr.c: Don't load headers twice.
4525
4526	* include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro.
4527	* src/base/ftobjs.c: Include FT_SERVICE_SFNT_H.
4528
4529	* src/cff/cffcmap.c: Include `cfferrs.h'.
4530	* src/pfr/pfrdrivr.c: Include `pfrerror.h'.
4531	* src/sfnt/sfdriver.c: Include `sferrors.h'.
4532	* src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'.
4533
45342003-09-11  David Turner  <david@freetype.org>
4535
4536	Introducing the concept of `module services'.  This is the first
4537	step towards a massive simplification of the engine's internals, in
4538	order to get rid of various numbers of hacks.
4539
4540	Note that these changes will break source & binary compatibility for
4541	authors of external font drivers.
4542
4543	* include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT,
4544	FT_DUMMY_STMNT): New macros.
4545
4546	* include/freetype/internal/ftserv.h: New file, containing the new
4547	structures and macros to provide `services'.
4548
4549	* include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H,
4550	FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H):
4551	Removed, obsolete.
4552	(FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'.
4553
4554	* include/freetype/internal/services/bdf.h,
4555	include/freetype/internal/services/glyfdict.h,
4556	include/freetype/internal/services/postname.h,
4557	include/freetype/internal/services/xf86name.h: New files.
4558
4559	* include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func,
4560	FT_Set_MM_Blend_Func): Function pointers moved (in modified form)
4561	to...
4562	* include/freetype/internal/services/multmast.h: New file.
4563
4564	* include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface'
4565	is now of type `FT_Module_Requester'.
4566	(SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers
4567	moved (in modified form) to...
4568	* include/freetype/internal/services/sfnt.h: New file.
4569
4570	* include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function
4571	pointer moved (in modified form) to `services/sfnt.h'.
4572
4573	* include/freetype/ftmodule.h (FT_Module_Interface): Make it a
4574	a typedef to `FT_Pointer'.
4575
4576	* include/freetype/internal/tttypes.h (TT_FaceRec): Add
4577	`postscript_name'.
4578	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
4579	`postscript_name'.
4580	Add `services' element.
4581	(FT_LibraryRec): Remove `meta_class'.
4582
4583	* src/base/ftbdf.c: Include FT_SERVICE_BDF_H.
4584	(test_font_type): Removed.
4585	(FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services
4586	provided in `FT_SERVICE_ID_BDF'.
4587
4588	* src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H.
4589	(ft_face_get_mm_service): New auxiliary function to get services
4590	from `FT_SERVICE_ID_MULTI_MASTERS'.
4591	(FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates,
4592	FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'.
4593
4594	* src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
4595	FT_SERVICE_GLYPH_DICT_H.
4596	(ft_service_list_lookup): New function to get a specific service.
4597	(destroy_face): Updated.
4598	(Mac_Read_POST_Resource): Simplify some code.
4599	(IsMacResource): Fix warnings.
4600	(FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in
4601	`FT_SERVICE_ID_GLYPH_DICT'.
4602	(FT_Get_Postscript_Name): Use service provided in
4603	`FT_SERVICE_ID_POSTSCRIPT_NAME'.
4604	(FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in
4605	`FT_SERVICE_ID_SFNT_TABLE'.
4606
4607	* src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H.
4608	(FT_Get_X11_Font_Format): Use service provided in
4609	`FT_SERVICE_ID_XF86_NAME'.
4610
4611	* src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and
4612	FT_SERVICE_XFREE86_NAME_H.
4613	(bdf_get_charset_id): New function.
4614	(bdf_service_bdf): New structure providing BDF services.
4615	(bdf_services): New services list.
4616	(bdf_driver_requester): Use `ft_service_list_lookup'.
4617
4618	* src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and
4619	FT_SERVICE_GLYPH_DICT_H.
4620	(cff_service_glyph_dict): New structure providing CFF services.
4621	(cff_services): New services list.
4622	(cff_get_interface): Use `ft_service_list_lookup'.
4623
4624	* src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
4625	FT_SERVICE_XFREE86_NAME_H.
4626	(cid_service_ps_name): New structure providing CID services.
4627	(cid_services): New services list.
4628	(cid_get_interface): Use `ft_service_list_lookup'.
4629
4630	* src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and
4631	FT_SERVICE_XFREE86_NAME_H.
4632	(pcf_service_bdf): New structure providing PCF services.
4633	(pcf_services): New services list.
4634	(pcf_driver_requester): Use `ft_service_list_lookup'.
4635
4636	* src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and
4637	FT_SERVICE_POSTSCRIPT_NAME_H.
4638	(get_sfnt_glyph_name): Renamed to...
4639	(sfnt_get_glyph_name): This.
4640	(get_sfnt_postscript_name): Renamed to...
4641	(sfnt_get_ps_name): This.
4642	Updated.
4643	(sfnt_service_glyph_dict, sfnt_service_ps_name): New structures
4644	providing services.
4645	(sfnt_services): New services list.
4646	(sfnt_get_interface): Use `ft_service_list_lookup'.
4647
4648	* src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H.
4649	(tt_services): New services list.
4650	(tt_get_interface): Use `ft_service_list_lookup'.
4651
4652	* src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H,
4653	FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and
4654	FT_SERVICE_POSTSCRIPT_NAME_H.
4655	(t1_service_glyph_dict, t1_service_ps_name,
4656	t1_service_multi_masters): New structures providing Type 1 services.
4657	(t1_services): New services list.
4658	(Get_Interface): Use `ft_service_list_lookup'.
4659
4660	* src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H,
4661	FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H.
4662	(t42_service_glyph_dict, t42_service_ps_name): New structures
4663	providing Type 42 services.
4664	(t42_services): New services list.
4665	(T42_Get_Interface): Use `ft_service_list_lookup'.
4666
4667
4668	* README, docs/CHANGES: Updating version numbers for 2.1.6, and
4669	removing obsolete warnings in the documentation.
4670	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
4671	* builds/unix/configure.ac (version_info): Set to 9:5:3.
4672	* builds/unix/configure: Regenerated.
4673
4674	* include/freetype/internal/ftcore.h,
4675	include/freetype/internal/ftexcept.h,
4676	include/freetype/internal/fthash.h,
4677	include/freetype/internal/ftobject.h: Removed.  Obsolete.
4678
46792003-09-09  David Turner  <david@freetype.org>
4680
4681	Fixing PFR kerning support.  The tables within the font file contain
4682	(charcode,charcode) kerning pairs, we need to convert them to
4683	(gindex,gindex).
4684
4685	* src/base/ftpfr.c (ft_pfr_check): Fix serious typo.
4686	* src/pfr/pfrload.c: Remove dead code.
4687	(pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs):
4688	New functions.
4689	(pfr_phy_font_done): Free `kern_pairs'.
4690	(pfr_phy_font_load): Call `pfr_sort_kerning_pairs'.
4691	* src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction.
4692	* src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro.
4693	(PFR_KernPairRec): Make `kerning' an FT_Int.
4694	(PFR_PhyFontRec): New element `kern_pairs'.
4695	(PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and
4696	PFR_KERN_2BYTE_ADJ were erroneously reversed.
4697
4698	* include/freetype/ftoption.h: Commenting out the macro
4699	TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
4700
47012003-09-02  David Turner  <david@freetype.org>
4702
4703
4704	* Version 2.1.5 released.
4705	=========================
4706
4707
47082003-08-31  Manish Singh  <yosh@gimp.org>
4709
4710	* src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but
4711	FT_MEM_MOVE.
4712
47132003-08-30  Werner Lemberg  <wl@gnu.org>
4714
4715	* include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312,
4716	FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New
4717	enumerations of FT_Encoding.  The FT_ENCODING_MS_* variants except
4718	FT_ENCODING_MS_SYMBOL are now deprecated.
4719	Updated all users.
4720	* docs/CHANGES: Document it.
4721
47222003-08-27  Werner Lemberg  <wl@gnu.org>
4723
4724	* src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters
4725	for spacing.
4726
47272003-08-27  Mike FABIAN  <mfabian@suse.de>
4728
4729	* src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c
4730	(BDF_Face_Init): Accept lowercase characters for slant and weight.
4731
47322003-08-18  David Turner  <david@freetype.org>
4733
4734	* include/freetype/config/ftoption.h: Disabling TrueType bytecode
4735	interpreter until the UNPATENTED_HINTING works as advertised.
4736
4737	* src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for
4738	setting `load_flags'.
4739
4740	* Jamfile: Adding the `refdoc' target to the Jamfile in order to
4741	build the API Reference in `docs/reference' automatically.
4742
4743	* include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h,
4744	src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of
4745	`italic_angle', `underline_position', and `underline_thickness' to
4746	their previous values (i.e., long, short, and ushort) in order to
4747	avoid breaking binary compatibility.
4748
4749	* include/freetype/ttunpat.h: Fixing documentation comment.
4750
4751	* include/freetype/config/ftoption.h, devel/ftoption.h
4752	(TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING): Replaced with...
4753	(TT_CONFIG_OPTION_UNPATENTED_HINTING): This.  Updated all users.
4754	(TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed.
4755
4756	* include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed.
4757	(FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro.  Use this with
4758	`FT_Set_Debug_Hook' to get the same effect as the removed
4759	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING.
4760
4761	* src/truetype/ttobjs.c (tt_face_init): Use
4762	`FT_DEBUG_HOOK_UNPATENTED_HINTING'.
4763
47642003-08-06  Werner Lemberg  <wl@gnu.org>
4765
4766	* src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
4767	(cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix
4768	previous change.
4769
47702003-08-05  Werner Lemberg  <wl@gnu.org>
4771
4772	* src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
4773	(cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply
4774	font matrix to advance width also.
4775	* docs/CHANGES: Updated.
4776
47772003-07-26  Werner Lemberg  <wl@gnu.org>
4778
4779	* builds/unix/configure.ac (version_info): Set to 9:4:3.
4780	* builds/unix/configure: Updated.
4781	* docs/CHANGES, docs/VERSION.DLL: Updated.
4782
4783	* include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16
4784	also breaks binary compatibility.  Reintroduce an unsigned integer
4785	at the old position of `flags' called `reserved'.
4786
47872003-07-25  Werner Lemberg  <wl@gnu.org>
4788
4789	Make API reference valid HTML 4.01 transitional.
4790
4791	* src/tools/docmaker/tohtml.py (html_header_1): Add doctype
4792	and charset.
4793	(html_header_2): Fix style elements and add some more.
4794	Fix syntax.
4795	(block_header, block_footer, description_header, description_footer,
4796	marker_header, marker_footer, source_header, source_footer,
4797	chapter_header): Don't use <center>...</center> but `align=center'
4798	table attribute.
4799	(chapter_inter, chapter_footer): Add <li> and use special <ul>
4800	class.
4801	Use double quotes around table widths given in percent.
4802	(keyword_prefix, keyword_suffix): Don't change font color directly
4803	but use a new <span> class.
4804	(section_synopsis_header, section_synopsis_footer): Don't change
4805	color.
4806	(code_header, code_footer): Don't change font color directly but
4807	use a special <pre> class.
4808	(print_html_field): <tr> gets the `valign' attribute, not <table>.
4809	(print_html_field_list): Ditto.
4810	(index_exit): Don't use <center>...</center> but `align=center'
4811	table attribute.
4812	(section_enter): Ditto.
4813	(toc_exit): Don't emit </table>.
4814	(block_enter): Use <h4><a>, not <a><h4>.
4815	(__init__): Fix tag order in self.html_footer.
4816
48172003-07-25  David Turner  <david@freetype.org>
4818
4819	This change reimplements fix from 2003-05-30 without breaking
4820	binary compatibility.
4821
4822	* include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle',
4823	`is_fixed_pitch', `underline_position', `underline_thickness' are
4824	reverted to be normal values.
4825
4826	* include/freetype/internal/psaux.h (T1_FieldType): Remove
4827	`T1_FIELD_TYPE_BOOL_P', `T1_FIELD_TYPE_INTEGER_P',
4828	`T1_FIELD_TYPE_FIXED_P', `T1_FIELD_TYPE_FIXED_1000_P'.
4829	(T1_FIELD_TYPE_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P,
4830	T1_FIELD_FIXED_1000_P): Removed.
4831	(T1_FIELD_TYPE_BOOL): Renamed to...
4832	(T1_FIELD_BOOL): New macro.  Updated all callers.
4833
4834	* src/type42/t42parse.c: `italic_angle', `is_fixed_pitch',
4835	`underline_position', `underline_thickness', `paint_type',
4836	`stroke_width' are reverted to be normal values.
4837	(T42_KEYWORD_COUNT): New macro.
4838	(t42_parse_dict): New array `keyword_flags' to mark that a value has
4839	already been assigned to a dictionary entry.
4840	* src/type42/t42objs.c (T42_Face_Init, T42_Face_Done): Updated.
4841
4842	* src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch',
4843	`underline_position', `underline_thickness' are reverted to be
4844	normal values.
4845	* src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated.
4846
4847	* src/psaux/psobjs.c (ps_parser_load_field): Updated.
4848
4849	* src/type1/t1tokens.h: `italic_angle', `is_fixed_pitch',
4850	`underline_position', `underline_thickness', `paint_type',
4851	`stroke_width' are reverted to be normal values.
4852	* src/type1/t1objs.c (T1_Face_Done, T1_Face_Init): Updated.
4853	* src/type1/t1load.c (T1_FIELD_COUNT): New macro.
4854	(parse_dict): Add parameter for keyword flags.
4855	Record only first instance of a field.
4856	(T1_Open_Face): New array `keyword_flags'.
4857
48582003-07-24  Werner Lemberg  <wl@gnu.org>
4859
4860	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
4861	* builds/unix/configure.ac (version_info): Set to 10:0:3.
4862	* builds/unix/configure: Updated.
4863	* builds/freetype.mk (refdoc): Fix --title.
4864
4865	* docs/CHANGES, docs/VERSION.DLL, README: Updated.
4866
4867	* src/tools/docmaker/sources.py (re_crossref): Fix regular
4868	expression to handle trailing punctuation characters.
4869	* src/tools/docmaker/tohtml.py (make_html_word): Updated.
4870
4871	* docs/release: New file.
4872
48732003-07-23  YAMANO-UCHI Hidetoshi  <mer@din.or.jp>
4874
4875	* include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New
4876	member function `to_bytes'.
4877
4878	* src/psaux/psauxmod.c (ps_parser_funcs): New member
4879	`ps_parser_to_bytes'.
4880	(psaux_module_class): Increase version to 0x20000L.
4881
4882	* src/psaux/psobjs.c (IS_T1_LINESPACE): Add \f.
4883	(IS_T1_NULLSPACE): New macro.
4884	(IS_T1_SPACE): Add it.
4885	(skip_spaces, skip_alpha): New functions.
4886	(ps_parser_skip_spaces, ps_parser_skip_alpha): Use them.
4887	(ps_tobytes, ps_parser_to_bytes): New functions.
4888
48892003-07-07  Werner Lemberg  <wl@gnu.org>
4890
4891	* builds/freetype.mk (DOC_DIR): New variable.
4892	(refdoc): Use *_DIR variables.
4893	(distclean): Remove documentation files.
4894
4895	* builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'.
4896
4897	* configure: Set DOC_DIR variable.
4898
48992003-07-07  Patrik Hägglund  <patrik.hagglund@bredband.net>
4900
4901	* builds/freetype.mk (refdoc): New target to build the
4902	documentation.
4903	(.PHONY): Updated.
4904
4905	* include/freetype/freetype.h: Improve documentation of FT_CharMap.
4906	* include/freetype/ftimage,h: Fix documentation of FT_OUTLINE_FLAGS.
4907	* include/freetype/tttables.h: Document FT_Sfnt_Tag.
4908
49092003-07-06  Werner Lemberg  <wl@gnu.org>
4910
4911	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfread.c
4912	(pcf_load_font): Fix computation of height if PIXEL_SIZE property is
4913	missing.
4914
49152003-07-01  Werner Lemberg  <wl@gnu.org>
4916
4917	* src/cache/ftcsbits.c (ftc_sbit_node_compare): Only add `size' if
4918	there is no error.  Reported by Knut St. Osmundsen
4919	<bird-freetype@anduin.net>.
4920
49212003-06-30  Werner Lemberg  <wl@gnu.org>
4922
4923	A new try to synchronize bitmap font access.
4924
4925	* include/freetype/freetype.h (FT_Bitmap_Size): `height' is now
4926	defined to return the baseline-to-baseline distance.  This was
4927	already the value returned by the BDF and PCF drivers.
4928
4929	The `width' field now gives the average width.  I wasn't able to
4930	find something better.  It should be taken as informative only.
4931
4932	New fields `size', `x_ppem', and `y_ppem'.
4933
4934	* src/pcf/pcfread.c (pcf_load_font): Updated to properly fill
4935	FT_Bitmap_Size.
4936	Do proper rounding and conversion from 72.27 to 72 points.
4937
4938	* src/bdf/bdfdrivr.c (BDF_Face_Init): Updated to properly fill
4939	FT_Bitmap_Size.
4940	Do proper rounding and conversion from 72.27 to 72 points.
4941
4942	* src/sfnt/sfobjs.c (sfnt_load_face): Updated to properly fill
4943	FT_Bitmap_Size.
4944
4945	* src/winfonts/winfnt.c (FNT_Face_Init): Updated to properly fill
4946	FT_Bitmap_Size.
4947
49482003-06-29  Werner Lemberg  <wl@gnu.org>
4949
4950	Redesigning the FNT driver to return multiple faces, not multiple
4951	strikes.  At least one font (app850.fon from WinME) contains
4952	different FNT charmaps for its subfonts.  Consequently, the previous
4953	design of having multiple bitmap strikes in a single font face fails
4954	since we have only one charmap per face.
4955
4956	* include/freetype/internal/fnttypes.h (FNT_Size_Rec): Removed.
4957	(FNT_FaceRec): Remove `num_fonts' field and replace `fonts' with
4958	`font'.
4959
4960	* src/base/ftwinfnt.c (FT_Get_WinFNT_Header): Updated.
4961
4962	* src/winfonts/winfnt.c (fnt_font_load): Don't set pixel_width equal
4963	to pixel_height.
4964	(fnt_face_done_fonts): Removed.
4965	(fnt_face_get_dll_fonts): Renamed to...
4966	(fnt_face_get_dll_font): This.  Add second function argument to
4967	select face index.
4968	Updated to load just one subfont.
4969	(fnt_font_done, FNT_Face_Done): Updated.
4970	(FNT_Face_Init): Handle `face_index'.
4971	Updated.
4972	(FNT_Size_Set_Pixels): Simplified; similar to BDF and PCF, the
4973	bitmap width is now ignored.
4974	(FNT_Load_Glyph): Updated.
4975	Fix glyph index computation.
4976	(winfnt_driver_class): Updated.
4977
49782003-06-25  Owen Taylor  <otaylor@redhat.com>
4979
4980	* src/sfnt/ttload.c (tt_face_load_hdmx): Don't assign
4981	num_records until we actually decide to load the table,
4982	otherwise, we'll segfault in tt_face_free_hdmx.
4983
49842003-06-24  Werner Lemberg  <wl@gnu.org>
4985
4986	* src/cff/cffdrivr.c (cff_get_glyph_name): Protect against zero
4987	glyph name pointer.  Reported by Mikey Anbary <manbary@vizrt.com>.
4988
49892003-06-23  Werner Lemberg  <wl@gnu.org>
4990
4991	* src/tools/glnames.py: Updated to AGL 2.0.
4992	* src/psnames/pstables.h: Regenerated.
4993
49942003-06-22  Werner Lemberg  <wl@gnu.org>
4995
4996	* include/freetype/cache/ftcglyph.h, include/freetype/ttnameid.h,
4997	src/base/ftcalc.c, src/base/fttrigon.c, src/cff/cffgload.c,
4998	src/otlayout/otlgsub.c, src/pshinter/pshrec.c,
4999	src/psnames/psmodule.c, src/sfnt/sfobjs.c, src/truetype/ttdriver.c:
5000	Decorate constants with `U' and `L' if appropriate.
5001
5002	* include/freetype/ftmoderr.h: Updated to include recent module
5003	additions.
5004
5005	* src/pshinter/pshnterr.h (FT_ERR_BASE): Define as
5006	`FT_Mod_Err_PShinter'.
5007	* src/type42/t42error.h (FT_ERR_BASE): Define as
5008	`FT_Mod_Err_Type42'.
5009
5010	* src/pshinter/pshrec.h (PS_HINTS_MAGIC): Removed.  Not used.
5011
5012	* include/freetype/config/ftconfig.h [__MWERKS__]: Define FT_LONG64
5013	and FT_INT64.
5014
50152003-06-21  Werner Lemberg  <wl@gnu.org>
5016
5017	* src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in
5018	computation of glyph_index.
5019	(FNT_Size_Set_Pixels): To find a strike, first check pixel_height
5020	only, then try to find a better hit by comparing pixel_width also.
5021	Without this fix it isn't possible to access all strikes.
5022	Also compute metrics.max_advance to be in sync with other bitmap
5023	drivers.
5024
5025	* src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code.
5026	(FT_Set_Pixel_Sizes): Assign value to `metrics' after validation of
5027	arguments.
5028
50292003-06-20  Werner Lemberg  <wl@gnu.org>
5030
5031	Synchronize computation of height and width for bitmap strikes.  The
5032	`width' field in the FT_Bitmap_Size structure is now only useful to
5033	enumerate different strikes.  The `max_advance' field of the
5034	FT_Size_Metrics structure should be used to get the (maximum) width
5035	of a strike.
5036
5037	* src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for
5038	computing `available_sizes->width' but make it always equal to
5039	`available_sizes->height'.
5040
5041	* src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for
5042	computing `available_sizes->width' but make it always equal to
5043	`available_sizes->height'.
5044
5045	* src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single
5046	argument to function.
5047
5048	* src/psnames/psmodule.c (ps_unicode_value): Handle `.' after
5049	`uniXXXX' and `uXXXX[X[X]]'.
5050
50512003-06-19  Werner Lemberg  <wl@gnu.org>
5052
5053	* src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/.
5054	* src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c:
5055	s/FT_Err_/FTC_Err_/.
5056	* src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/.
5057	* src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/.
5058	* src/psaux/t1cmap.c: Include psauxerr.h.
5059	s/FT_Err_/PSaux_Err_/.
5060	* src/pshinter/pshnterr.h: New file.
5061	* src/pshinter/rules.mk: Updated.
5062	* src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h.
5063	s/FT_Err_/PSH_Err_/.
5064	* src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c:
5065	s/FT_Err_/PFR_Err_/.
5066	* src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
5067	src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/.
5068	* src/truetype/ttgload.c: s/FT_Err_/TT_Err_/.
5069	* src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define
5070	FT_ERR_PREFIX and FT_ERR_BASE.
5071	s/FT_Err_/Gzip_Err_/.
5072
50732003-06-19  Dirck Blaskey  <listtarget@danbala.com>
5074
5075	* src/cff/cffload (cff_encoding_load): `nleft' must be FT_UInt,
5076	otherwise adding 1 might wrap the result.
5077
50782003-06-18  Werner Lemberg  <wl@gnu.org>
5079
5080	* src/psnames/psmodule.c (ps_unicode_value): Add support to
5081	recognize `uXXXX[X[X]]' glyph names.
5082	Don't handle glyph names starting with `uni' which have more than
5083	four digits.
5084
50852003-06-16  Werner Lemberg  <wl@gnu.org>
5086
5087	* include/freetype/freetype.h (FT_Open_Flags): Replaced with
5088	#defines for the constants.
5089	(FT_Open_Args): Change type of `flags' to FT_UInt.
5090	(FT_GlyphSlot): Move `flags' to FT_Slot_Internal.
5091
5092	* include/freetype/ftimage.h (FT_Outline_Flags, FT_Raster_Flag):
5093	Replaced with #defines for the constants.
5094
5095	* include/freetype/internal/ftobjs.h (FT_Slot_Internal): New
5096	field `flags' (from FT_GlyphSlot).
5097	Updated all affected source files.
5098	(FT_GLYPH_OWN_BITMAP): New macro (from ftgloadr.h).
5099
5100	* include/freetype/internal/ftgloadr.h (FT_GLYPH_OWN_BITMAP): Moved
5101	to ftobjs.h.
5102
5103	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Use dummy
5104	FT_GlyphSlot_Internal object.
5105
51062003-06-15  Werner Lemberg  <wl@gnu.org>
5107
5108	* builds/compiler/gcc.mk, builds/compiler/gcc-dev.mk (CFLAGS):
5109	Add -fno-strict-aliasing to get rid of zillion warnings from gcc
5110	version 3.3.
5111
51122003-06-14  Werner Lemberg  <wl@gnu.org>
5113
5114	* include/freetype/ftglyph.h (ft_glyph_bbox_unscaled,
5115	ft_glyph_bbox_subpixels, ft_glyph_bbox_gridfit,
5116	ft_glyph_bbox_truncate, ft_glyph_bbox_pixels): Replaced with
5117	FT_GLYPH_BBOX_UNSCALED, FT_GLYPH_BBOX_SUBPIXELS,
5118	FT_GLYPH_BBOX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS.
5119	The lowercase variants are now (deprecated aliases) to the uppercase
5120	versions.
5121	Updated all other files.
5122
5123	* include/freetype/ftmodule.h (ft_module_font_driver,
5124	ft_module_renderer, ft_module_hinter, ft_module_styler,
5125	ft_module_driver_scalable, ft_module_driver_no_outlines,
5126	ft_module_driver_has_hinter): Replaced with FT_MODULE_FONT_DRIVER,
5127	FT_MODULE_RENDERER, FT_MODULE_HINTER, FT_MODULE_STYLER,
5128	FT_MODULE_DRIVER_SCALABLE, FT_MODULE_DRIVER_NO_OUTLINES,
5129	FT_MODULE_DRIVER_HAS_HINTER.
5130	The lowercase variants are now (deprecated aliases) to the uppercase
5131	versions.
5132	Updated all other files.
5133
5134	* src/base/ftglyph.c (FT_Glyph_Get_CBox): Handle bbox_mode better
5135	as enumeration.
5136
5137	* src/pcf/pcfdrivr.c (pcf_driver_class), src/winfonts/winfnt.c
5138	(winfnt_driver_class), src/bdf/bdfdrivr.c (bdf_driver_class): Add
5139	the FT_MODULE_DRIVER_NO_OUTLINES flag.
5140
51412003-06-13  Detlef Würkner  <TetiSoft@apg.lahn.de>
5142
5143	* src/pfr/pfrobjs.c (pfr_slot_load): Apply font matrix.
5144
51452003-06-13  Werner Lemberg  <wl@gnu.org>
5146
5147	* builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also.
5148
5149	* builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for
5150	EMX gcc compiler.
5151	* builds/dos/detect.mk: Add target `emx'.
5152
5153	* builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't
5154	like a trailing semicolon; add a dummy command.
5155
5156	* src/cid/cidload.c: Remove parse_font_bbox code (already enclosed
5157	with #if 0 ... #endif).
5158
5159	* src/type1/t1tokens.h: Handle /FontName.
5160	* src/type1/t1load.c (parse_font_name): Removed.
5161	Remove parse_font_bbox code (already enclosed with #if 0 ...
5162	#endif).
5163
5164	* src/type42/t42parse.c (t42_parse_font_name): Removed.
5165	Remove t42_parse_font_bbox code (already enclosed with #if 0 ...
5166	#endif).
5167	(t42_keywords): Handle /FontName with T1_FIELD_KEY.
5168
51692003-06-12  Werner Lemberg  <wl@gnu.org>
5170
5171	* include/freetype/internal/psaux.h (T1_FieldType): Add
5172	T1_FIELD_TYPE_KEY.
5173	(T1_FIELD_KEY): New macro.
5174	* src/psaux/psobjs.c (ps_parser_load_field): Handle
5175	T1_FIELD_TYPE_KEY.
5176
5177	* src/cid/cidtoken.h: Use T1_FIELD_KEY for /CIDFontName.
5178
51792003-06-11  Alexander Malmberg  <alexander@malmberg.org>
5180
5181	* src/cache/ftlru.c (FT_LruList_Remove_Selection): Decrease
5182	number of nodes.
5183	(FT_LruList_Lookup): Fix assertion for out-of-memory case.
5184
51852003-06-11  Werner Lemberg  <wl@gnu.org>
5186
5187	* src/cid/cidload.c (cid_decrypt): Removed.
5188	(cid_read_subrs): Use t1_decrypt from psaux module.
5189	* src/cid/cidload.h: Updated.
5190	* src/cid/cidgload.c (cid_load_glyph): Use t1_decrypt from psaux
5191	module.
5192
51932003-06-10  Werner Lemberg  <wl@gnu.org>
5194
5195	* src/cid/cidobjs.c: Apply change 2003-05-31 from <Ron.Dev@gmx.de>.
5196	Compute style flags.
5197	Fix computation of root->height.
5198	* src/cid/cidtoken.h: Handle FontBBox.
5199	* src/cid/cidload.c (cid_load_keyword): Handle
5200	T1_FIELD_LOCATION_BBOX.
5201	(parse_font_bbox): Commented out.
5202	(cid_field_records): Comment out element for parsing FontBBox.
5203
5204	* src/type42/t42parse.c (t42_parse_font_bbox): Commented out.
5205	(t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with
5206	T1_FIELD_CALLBACK.
5207	(t42_parse_font_bbox): Commented out.
5208	(t42_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
5209	* src/type42/t42objs.c (T42_Face_Init): Apply change 2003-05-31
5210	from <Ron.Dev@gmx.de>.
5211
52122003-06-09  George Williams  <gww@silcom.com>
5213
5214	* src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's
5215	TrueType specification.
5216	(Ins_MDRP, Ins_MIRP): Fix single width cut-in test.
5217
52182003-06-09  Detlef Würkner  <TetiSoft@apg.lahn.de>
5219
5220	* src/gzip/ftgzip.c: (inflate_mask): Replaced with...
5221	(NO_INFLATE_MASK): This.
5222	* src/gzip/infutil.h: Declare `inflate_mask' conditionally by
5223	NO_INFLATE_MASK.
5224
52252003-06-09  Alexis S. L. Carvalho  <alexis@cecm.usp.br>
5226
5227	* src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END
5228	correctly.
5229
52302003-06-09  Wolfgang Domröse  <porthos.domroese@harz.de>
5231
5232	* src/pshinter/pshglob.c (psh_globals_new): Change calculation of
5233	dim->stdw.count to avoid compiler problem.
5234
5235	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block
5236	variables to the beginning of the function to avoid compiler
5237	problems.
5238	Add casts necessary for 16bit compilers.
5239
52402003-06-09  Werner Lemberg  <wl@gnu.org>
5241
5242	* src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c.
5243	(PFR_DRV_H): Add pfrtypes.h.
5244
5245	* include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/.
5246
52472003-06-08  Karl Schultz  <kschultz@rsinc.com>
5248
5249	* src/pfr/pfrsbit.c (pfr_bitwriter_init): Change type of third
5250	argument to FT_Bool.
5251	(pfr_lookup_bitmap_data): Change type of third and fourth argument
5252	to FT_UInt.  Updated caller.
5253	(pfr_load_bitmap_bits): Change type of fourth argument to FT_Bool.
5254
52552003-06-08  Werner Lemberg  <wl@gnu.org>
5256
5257	Completely revised FreeType's make management.
5258
5259	. In all makefiles `/' is used as the path separator.  The
5260	  conversion to the real path separators is done as late as
5261	  possible using $(subst ...).
5262
5263	. $(HOSTSEP) no longer exists.  Now, $(SEP) gives the path separator
5264	  for the operating system, and the new $(COMPILER_SEP) the path
5265	  separator for the compiler tools.
5266
5267	. $(BUILD) has been renamed to $(BUILD_DIR).  In general, all
5268	  directory variables end with `_DIR'.  The variants ending in `_'
5269	  (like `BASE_' have been removed).
5270
5271	The following ChangeLog entries only describe changes which are
5272	not related to the redesign.
5273
5274	* builds/beos/beos-def.mk (BUILD_DIR): Fix typo.
5275	* builds/compiler/watcom.mk (LINK_LIBRARY): Fix linker call to avoid
5276	overlong arguments as suggested by J. Ali Harlow
5277	<ali@avrc.city.ac.uk>.
5278	* builds/dos/dos-wat.mk: New file.
5279	* builds/freetype.mk (FREETYPE_H): Include header files from the
5280	`devel' subdirectory.
5281
5282	* builds/os2/os2-dev.mk, builds/unix/unixddef.mk,
5283	builds/unix/unixddef.mk, builds/win32/w32-bccd.mk,
5284	builds/win32/w32-dev.mk (BUILD_DIR): Fix path.
5285
5286	* builds/unix/configure.ac, builds/unix/configure: Updated.
5287	* builds/unix/unix-def.in (DISTCLEAN): Add `freetype2.pc'.
5288
52892003-06-07  Werner Lemberg  <wl@gnu.org>
5290
5291	* src/base/ftmac.c (FT_New_Face_From_SFNT): s/rlen/sfnt_size/ to
5292	make it compile.
5293
5294	* devel/ftoption.h: Updated.
5295
52962003-06-07  Detlef Würkner  <TetiSoft@apg.lahn.de>
5297
5298	* include/freetype/internal/psaux.h, src/truetype/ttgload.h:
5299	s/index/idx/ to fix compiler warnings.
5300
5301	* src/sfnt/ttcmap0.c (tt_face_build_cmaps): Use more `volatile' to
5302	fix compiler warning.
5303
5304	* src/gzip/ftgzip.c (BUILDFIXED): Removed.
5305	* src/gzip/inftrees.c (inflate_trees_fixed) [!BUILDFIXED]: Use
5306	FT_UNUSED to remove compiler warning.
5307
53082003-06-06  Werner Lemberg  <wl@gnu.org>
5309
5310	* include/freetype/ftstroker.h: Renamed to...
5311	* include/freetype/ftstroke.h: This.
5312
5313	* src/base/ftstroker.c: Renamed to...
5314	* src/base/ftstroke.c: This.
5315
5316	* include/freetype/config/ftheader.h (FT_STROKER_H): Updated.
5317
5318	* src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk:
5319	Updated.
5320
5321	* src/pcf/pcfdriver.c: Renamed to...
5322	* src/pcf/pcfdrivr.c: This.
5323	* src/pcf/pcfdriver.h: Renamed to...
5324	* src/pcf/pcfdrivr.h: This.
5325
5326	* src/pcf/Jamfile, src/pcf/rules.mk: Updated.
5327
53282003-06-05  Wenlin Institute (Tom Bishop)  <wenlin@wenlin.com>
5329
5330	* src/base/ftmac.c (file_spec_from_path) [TARGET_API_MAC_CARBON]:
5331	Add `#if !defined(__MWERKS__)'.
5332
53332003-06-05  Werner Lemberg  <wl@gnu.org>
5334
5335	* include/freetype/internal/psaux.h (T1_FieldType): Add
5336	T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
5337	(T1_FIELD_FIXED_1000, T1_FIELD_FIXED_1000_P): New macros.
5338	* src/psaux/psobjs.c (ps_parser_load_field): Handle
5339	T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
5340
5341	* src/cff/cffparse.c (cff_kind_fixed_thousand): New enumeration.
5342	(CFF_FIELD_FIXED_1000): New macro.
5343	(cff_parser_run): Handle cff_kind_fixed_thousand.
5344	* src/cff/cfftoken.h: Use CFF_FIELD_FIXED_1000 for blue_scale.
5345	* src/cff/cffload (cff_subfont_load): Fix default values of
5346	expansion_factor and blue_scale.
5347
5348	* src/cid/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000
5349	for blue_scale.
5350
5351	* src/pshinter/pshglob.c (psh_globals_new): Fix default value of
5352	blue_scale.
5353
53542003-06-04  Wolfgang Domröse  <porthos.domroese@harz.de>
5355
5356	* include/freetype/internal/ftdriver.h,
5357	include/freetype/internal/ftobjs.h,
5358	include/freetype/internal/psaux.h, src/cid/cidgload.c,
5359	src/psaux/psobjs.c, src/psaux/t1decode.c, src/psaux/psobjs.h,
5360	src/pshinter/pshrec.c, src/pshinter/pshalgo.c,
5361	src/psnames/psmodule.c, src/raster/ftraster.c, src/sfnt/sfobjs.c,
5362	src/smooth/ftgrays.c, src/smooth/ftsmooth.c, src/truetype/ttobjs.c,
5363	src/truetype/ttdriver.c, src/truetype/ttgload.c, src/type1/t1afm.c,
5364	src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1load.c,
5365	src/type1/t1objs.c, src/type42/t42parse.c, src/type42/t42parse.h:
5366	Many casts and slight argument type changes to make it work with
5367	a 16bit compiler.
5368
53692003-06-04  Werner Lemberg  <wl@gnu.org>
5370
5371	* include/freetype/config/ftoption.h: Defining
5372	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING by default is a bad idea
5373	since some fonts (e.g. Arial) produce worse results than without
5374	hinting.  Reverted.
5375
53762003-06-04  Werner Lemberg  <wl@gnu.org>
5377
5378	* src/truetype/ttgload.c (load_truetype_glyph)
5379	[TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Call
5380	FT_GlyphLoader_CheckPoints before adding phantom points.  This fixes
5381	a segfault bug with fonts (e.g. htst3.ttf) which have nested
5382	subglyphs more than one level deep.  Reported by Anthony Fok.
5383
5384	* include/freetype/config/ftoption.h: Define
5385	TT_CONFIG_OPTION_BYTECODE_INTERPRETER,
5386	TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, and
5387	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to make it the new
5388	default.
5389
53902003-06-03  Werner Lemberg  <wl@gnu.org>
5391
5392	* src/autohint/ahhint.c (ah_hinter_hint_edges): Removed.  Just a
5393	wrapper for ah_hint_edges.
5394	(ah_hint_edges): Renamed to...
5395	(ah_hinter_hint_edges): This.
5396
5397	* src/base/ftobjs.c (FT_Set_Hint_Flags): Removed.  Unused.
5398
5399	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec),
5400	include/freetype/internal/psaux.h (T1_DecoderRec),
5401	src/cff/cffgload.h (CFF_Builder): Remove `hint_flags' field.
5402	Unused.
5403
5404	* src/cff/cffgload.c (cff_builder_init): Updated.
5405	(cff_decoder_parse_charstrings) <cff_op_endchar>: Call hinter->apply
5406	with decoder->hint_mode instead of builder->hint_flags.
5407	* src/psaux/t1decode.c (t1_decoder_init): Updated.
5408
5409	* src/base/ftstroker.c (ft_stroke_border_export): s/index/idx/.
5410
5411	* src/sfnt/sfobjs.c (sfnt_load_face): Commented out code which
5412	increased root->height by 15% if the line gap was zero.  There exist
5413	fonts (containing e.g. form drawing characters) which intentionally
5414	have a zero line gap value.
5415
5416	* src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj):
5417	Removed.  Unused.
5418	Updated all callers.
5419
54202003-06-02  Werner Lemberg  <wl@gnu.org>
5421
5422	* src/cff/cffobjs.c (cff_face_init): Use symbolic names for
5423	Adobe specific encoding IDs (there was a wrong EID value for custom
5424	encoding).
5425
5426	* src/cff/cffcmap.h (CFF_CMapStdRec): Remove `count'.
5427	* src/cff/cffcmap.c (cff_cmap_encoding_init,
5428	cff_cmap_encoding_done): Updated.
5429	(cff_cmap_encoding_char_index, cff_cmap_encoding_char_next): Use
5430	256 as limit for character code.
5431
54322003-06-01  Werner Lemberg  <wl@gnu.org>
5433
5434	* src/winfonts/winfnt.c (FNT_Load_Glyph): Revert change from
5435	2003-03-20.
5436
54372003-05-31  Werner Lemberg  <wl@gnu.org>
5438
5439	* include/freetype/fttrigon.h (FT_Vector_Normalize): Removed.
5440
54412003-05-31    <Ron.Dev@gmx.de>
5442
5443	* src/type1/t1objs.c (T1_Face_Init): Improve algorithm for guessing
5444	the font style by ignoring spaces and hyphens.
5445
5446	* builds/unix/freetype2.in: Fix `Version' field.
5447
54482003-05-30  Werner Lemberg  <wl@gnu.org>
5449
5450	Avoid overwriting of numeric font dictionary entries for synthetic
5451	fonts.  Additionally, some entries were handled as `integer' instead
5452	of `number'.
5453
5454	* include/freetype/internal/psaux.h (T1_FieldType): Add
5455	T1_FIELD_TYPE_BOOL_P, T1_FIELD_TYPE_INTEGER_P, and
5456	T1_FIELD_TYPE_FIXED_P.
5457	(T1_FIELD_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P): New macros.
5458	* src/psaux/psobjs.c (ps_parser_load_field): Handle new field types.
5459
5460	* include/freetype/internal/cfftypes.h (CFF_FontRecDict),
5461	src/cff/cfftoken.h: Change type of underline_position and
5462	underline_thickness to FT_Fixed.
5463	* src/cff/cffload.c (cff_subfont_load): Fix default values of
5464	underline_position and underline_thickness.
5465	* src/cff/cffobjs.c (cff_face_init): Set underline_position
5466	and underline_thickness in `root'.
5467
5468	* include/freetype/internal/t1types.h (T1_Font): Change point_type
5469	and stroke_width to pointers.
5470	* include/freetype/t1tables.h (PS_FontInfo): Change italic_angle,
5471	is_fixed_pitch, underline_position, and underline_thickness to
5472	pointers.
5473	* src/type1/t1tokens.h: Change italic_angle, is_fixed_pitch,
5474	underline_position, and underline_thickness to pointers.  Change
5475	the type of the latter two to `fixed'.
5476	Change type of stroke_width to `fixed' and make it a pointer.
5477	Change paint_type to pointer.
5478	* src/type1/t1objs.c (T1_Face_Done): Updated.
5479	(T1_Face_Init): Updated.
5480	Fix assignment of underline_position and underline_thickness.
5481
5482	* src/cid/cidtoken.h: Change italic_angle, is_fixed_pitch,
5483	underline_position, and underline_thickness to pointers.  Change
5484	the type of the latter two to `fixed'.
5485	Change type of stroke_width to `fixed'.
5486	* src/cid/cidobjs.c (cid_face_done): Updated.
5487	(cid_face_init): Updated.
5488	Fix assignment of underline_position and underline_thickness.
5489
5490	* src/type42/t42parse.c: Change italic_angle, is_fixed_pitch,
5491	underline_position, and underline_thickness to pointers.  Change the
5492	type of the latter two to `fixed'.
5493	Change type of stroke_width to `fixed' and make it a pointer.
5494	Change paint_type to pointer.
5495	* src/type42/t42objs.c (T42_Face_Init): Updated.
5496	Fix assignment of underline_position and underline_thickness.
5497	(T42_Face_Done): Updated.
5498
5499	* src/base/ftobjs.c (open_face_from_buffer): Fix compiler warning.
5500	* src/pshinter/pshglob.c, src/pshinter/pshglob.h
5501	(psh_globals_set_scale): Make it a local function.
5502
5503	* test/gview.c: Fix renaming ps3->ps typo.
5504	Formatting.
5505
55062003-05-29  Werner Lemberg  <wl@gnu.org>
5507
5508	* src/pshinter/pshalgo1.[ch], src/pshinter/pshalgo2.[ch]: Removed.
5509	* src/pshinter/pshalgo.h: Removed.
5510
5511	* src/pshinter/pshalgo3.[ch]: Renamed to...
5512	* src/pshinter/pshalgo.[ch]: New files.
5513	s/PSH3/PSH/.
5514	s/psh3/psh/.
5515	s/ps3/ps/.
5516
5517	* src/pshinter/pshrec.c, src/pshinter/pshinter.c: Updated.
5518	* src/pshinter/rules.mk, src/pshinter/Jamfile: Updated.
5519
5520	* src/pshinter/pshglob.[ch] (psh_dimension_snap_width): Commented
5521	out.
5522
5523	* tests/gview.c: Remove code for pshalgo1 and pshalgo2.
5524	Updated.
5525
55262003-05-28  Martin Zinser  <zinser@decus.de>
5527
5528	* vms_make.com: Reworked support for shareable images on VMS.  The
5529	first version was kind of a hack; the current implementation of the
5530	procedure to extract the required symbols is much cleaner.
5531
5532	Reworked creation of MMS files, avoiding a number of temporary files
5533	which were created in the previous version.
5534
5535	Further work on creating descrip.mms files on the fly.
5536
5537	* builds/vms/descrip.mms, src/autohint/descrip.mms,
5538	src/type1/descrip.mms: Removed.
5539
55402003-05-28  Werner Lemberg  <wl@gnu.org>
5541
5542	* src/pshinter/pshalgo3.c (psh3_glyph_compute_extrema): Skip
5543	contours with only a single point to avoid segfault.
5544
5545	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Activate code for
5546	handling `origin'.
5547
55482003-05-24  Werner Lemberg  <wl@gnu.org>
5549
5550	* src/autohint/ahtypes.h (AH_OPTION_NO_STRONG_INTERPOLATION):
5551	Removed since unused.
5552
55532003-05-21  Werner Lemberg  <wl@gnu.org>
5554
5555	* include/freetype/config/ftstdlib.h (ft_strcat): New wrapper macro
5556	for strcat.
5557
5558	* src/base/ftmac.c (create_lwfn_name): s/isupper/ft_isupper/.
5559	(parse_font): s/memcpy/ft_memcpy/.
5560	(is_dfont) [TARGET_API_MAC_CARBON]: s/memcmp/ft_memcmp/.
5561	* src/base/ftobjs.c (load_mac_face) [FT_MACINTOSH]:
5562	s/strlen/ft_strlen/.
5563	s/strcat/ft_strcat/.
5564	s/strcpy/ft_strcpy/.
5565	* src/gzip/zutil.h: s/memset/ft_memset/.
5566	s/memcmp/ft_memcmp/.
5567
5568	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
5569	(PCF_Face_Init): Test for charset registry case-insensitively.
5570
5571	* src/gzip/ftgzip.c (ft_gzip_file_io): Revert change from yesterday;
5572	it has already been fixed differently.
5573
5574	* src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around
5575	if-clause.
5576
55772003-05-21  Martin Zinser  <zinser@decus.de>
5578
5579	* t1load.c (parse_blend_axis_types): Fix compiler warning.
5580
5581	* descrip.mms: Removed.  Now created by...
5582
5583	* vms_make.com: New file.
5584
55852003-05-21  Weiqi Gao  <weiqigao@networkusa.net>
5586
5587	* src/gzip/ftgzip.c (ft_gzip_file_io): Avoid zero value of `delta'
5588	to prevent infinite loop.
5589
55902003-05-21  Lars Clausen  <lrclause@cs.uiuc.edu>
5591
5592	* docs/VERSION.DLL: Provide better autoconf snippet to check
5593	FreeType version.
5594
55952003-05-21  Werner Lemberg  <wl@gnu.org>
5596
5597	* src/base/ftobjs.c (open_face): Free `internal' not
5598	`face->internal' in case of error to avoid possible segfault.
5599
5600	* src/pshinter/pshalgo3.c (ps3_hints_apply): Check whether we
5601	actually have an outline.
5602
56032003-05-20  David Chester  <davidchester@qmx.net>
5604
5605	* src/pshinter/pshalgo3.c (ps3_hints_apply): Try to optimize
5606	y_scale so that the top of non-capital letters is aligned on a pixel
5607	boundary whenever possible.
5608
5609	* src/autohint/ahhint.c (ah_hint_edges): Make sure that lowercase
5610	m's maintain their symmetry.
5611
56122003-05-20  Werner Lemberg  <wl@gnu.org>
5613
5614	* src/autohint/ahhint.c (ah_hinter_load_glyph): Oops!  David's
5615	patch from yesterday has been resolved already in a different
5616	way.  Reverted.
5617
56182003-05-19  David Chester  <davidchester@qmx.net>
5619
5620	* src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale
5621	y_scale locally but face->size->metrics.y_scale.
5622
56232003-05-19  David Turner  <david@freetype.org>
5624
5625	* src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start
5626	value for `hi' to avoid infinite loop.
5627
56282003-05-18  Yong Sun  <sunyong@njstar.com>
5629
5630	* src/raster/ftraster.c (Insert_Y_Turn): Fix overflow test.
5631
56322003-05-18  Werner Lemberg  <wl@gnu.org>
5633
5634	* include/freetype/config/ftoption.h [FT_CONFIG_OPTION_MAC_FONTS]:
5635	New macro.
5636	* src/base/ftobjs.c: Use it to control mac font support on non-mac
5637	platforms.
5638
56392003-05-17  George Williams  <gww@silcom.com>
5640
5641	Implement partial support of Mac fonts on non-Mac platforms.
5642
5643	* src/base/ftobjs.c (memory_stream_close, new_memory_stream,
5644	open_face_from_buffer, Mac_Read_POST_Resource,
5645	Mac_Read_sfnt_Resource, IsMacResource, IsMacBinary, load_mac_face)
5646	[!FT_MACINTOSH]: New functions.
5647	(FT_Open_Face) [!FT_MACINTOSH]: Use load_mac_face.
5648
56492003-05-17  Werner Lemberg  <wl@gnu.org>
5650
5651	* src/base/ftobjs.c (FT_Load_Glyph): Scale linear advance width only
5652	if FT_FACE_FLAG_SCALABLE is set (otherwise we have a division by
5653	zero since FNT and friends don't define `face->units_per_EM').
5654
56552003-05-15  David Turner  <david@freetype.org>
5656
5657	* src/base/fttrigon.c (FT_Vector_Rotate): Avoid rounding errors
5658	for small values.
5659
56602003-05-15  Werner Lemberg  <wl@gnu.org>
5661
5662	* src/autohint/ahtypes.h (AH_PointRec): Remove unused `in_angle'
5663	and `out_angle' fields.
5664
56652003-05-14  George Williams  <gww@silcom.com>
5666
5667	* src/base/ftmac.c (FT_New_Face_From_SFNT): Handle CFF files also.
5668
56692003-05-14  Werner Lemberg  <wl@gnu.org>
5670
5671	* include/freetype/freetype.h: Fix typo in comment
5672	(FT_HAS_FIXED_SIZES).
5673
56742003-05-10  Dan Williams  <dan@bigw.org>
5675
5676	* builds/unix/aclocal.m4: Comment out definition of
5677	`allow_undefined_flag' for Darwin 1.3.
5678	* builds/unix/configure.ac: Add option --with-old-mac-fonts.
5679	* builds/unix/ltmain.sh: Fix version numbering for Darwin 1.3.
5680	* builds/unix/configure: Regenerated.
5681
5682	* include/freetype/config/ftconfig.h: Fix conditions for defining
5683	`FT_MACINTOSH'.
5684	* src/base/ftbase.c: Include `ftmac.c' conditionally.
5685	* src/base/ftmac.c: Handle __GNUC__.
5686
56872003-05-07  YAMANO-UCHI Hidetoshi  <mer@din.or.jp>
5688
5689	* src/cid/cidload.c (is_alpha): Removed.
5690	(cid_parse_dict): Use `cid_parser_skip_alpha' instead of `is_alpha'.
5691
56922003-05-07  Werner Lemberg  <wl@gnu.org>
5693
5694	* src/autohint/ahoptim.c, src/autohint/ahoptim.h: Obsolete, removed.
5695
56962003-05-07  David Turner  <david@freetype.org>
5697
5698	* src/autohint/ahglyph.c (ah_setup_uv): Exchange `for' loop and
5699	`switch' statement to make it run faster.
5700	(ah_outline_compute_segments): Reset `segment->score' and
5701	`segment->link'.
5702	(ah_outline_link_segments): Provide alternative code which does
5703	the same but runs much faster.
5704	Handle major direction also.
5705	(ah_outline_compute_edges): Scale `edge_distance_threshold' down
5706	after rounding instead of scaling comparison value in loop.
5707
5708	* src/autohint/ahhint.c (ah_hinter_align_strong_points): Provide
5709	alternative code which runs faster.
5710	Handle `before->scale == 0'.
5711
5712	* src/autohint/ahtypes.h (AH_SegmentRec): Move some fields down.
5713	(AH_EdgeRec): Move some fields in structure.
5714	New field `scale'.
5715
5716	* src/sfnt/ttcmap0.c (tt_cmap4_char_next): Use binary search.
5717
57182003-05-02  Werner Lemberg  <wl@gnu.org>
5719
5720	* src/autohint/ahoptim.c (LOG): Renamed to...
5721	(AH_OPTIM_LOG): This.
5722	(AH_Dump_Springs): Fix log message format.
5723
5724	* src/autohint/ahhint.c (ah_hint_edges_3): Renamed to...
5725	(ah_hint_edges): This.
5726
57272002-05-02  Keith Packard  <keithp@keithp.com>
5728
5729	* src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Initialize `max_advance'.
5730
57312003-05-01  Werner Lemberg  <wl@gnu.org>
5732
5733	* src/autohint/ahglyph.c (ah_test_extrema): Renamed to...
5734	(ah_test_extremum): This.
5735
57362003-04-28  Werner Lemberg  <wl@gnu.org>
5737
5738	* builds/unix/configure.ac: Generate `freetype.pc' from
5739	`freetype.in'.
5740	* builds/unix/configure: Regenerated.
5741	* builds/unix/install.mk (install, uninstall): Handle `freetype.pc'.
5742
57432003-04-28  Gustavo J. A. M. Carneiro  <gjc@inescporto.pt>
5744
5745	* builds/unix/freetype2.in: New file.  Contains building information
5746	for the `pkg-config' package.
5747
57482003-04-28  David Turner  <david@freetype.org>
5749
5750	* src/base/ftobjs.c (FT_Load_Glyph): Fix boundary check for
5751	`glyph_index'.
5752
57532003-04-25:  Graham Asher  <graham.asher@btinternet.com>
5754
5755	Added the optional unpatented hinting system for TrueType.  It
5756	allows typefaces which need hinting to produce correct glyph forms
5757	(e.g., Chinese typefaces from Dynalab) to work acceptably without
5758	infringing Apple patents.  This system is compiled only if
5759	TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in
5760	ftoption.h.
5761
5762	* include/freetype/ttunpat.h: New file.  Defines
5763	FT_PARAM_TAG_UNPATENTED_HINTING.
5764
5765	* include/freetype/config/ftheader.h (FT_TRUETYPE_UNPATENTED_H): New
5766	macro to use when including ttunpat.h.
5767
5768	* include/freetype/config/ftoption.h
5769	(TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
5770	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): New configuration macros
5771	(not defined, but in comments) for the unpatented hinting system.
5772
5773	* include/freetype/internal/tttypes.h (TT_FaceRec)
5774	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: New element `FT_Bool
5775	unpatented_hinting'.
5776
5777	* src/truetype/ttinterp.c (NO_APPLE_PATENT, APPLE_THRESHOLD):
5778	Removed.
5779	(GUESS_VECTOR): New macro.
5780	(TT_Run_Context) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
5781	Set `both_x_axis'.
5782	(tt_default_graphics_state)
5783	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Updated.
5784	(Current_Ratio) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
5785	Handle `unpatented_hinting'.
5786	(Direct_Move) [NO_APPLE_PATENT]: Removed.
5787	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
5788	(Project, FreeProject)
5789	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
5790	(Compute_Funcs) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
5791	Implement unpatented hinting.
5792	(DO_SPVTCA, DO_SFVTCA, DO_SPVTL, DO_SFVTL, DO_SPVFS, DO_SFVFS,
5793	Ins_SDPVTL): Call `GUESS_VECTOR'.
5794	(DO_GPV, DO_GFV) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
5795	Handle `unpatented_hinting'.
5796	(Compute_Point_Displacement) [NO_APPLE_PATENT]: Removed.
5797	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
5798	hinting.
5799	(Move_Zp2_Point, Ins_SHPIX, Ins_DELTAP, Ins_DELTAC)
5800	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
5801	hinting.
5802	(TT_RunIns): Updated.
5803
5804	* src/truetype/ttobjs.c
5805	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Include
5806	FT_TRUETYPE_UNPATENTED_H.
5807	(tt_face_init) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
5808	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING]: Check
5809	FT_PARAM_TAG_UNPATENTED_HINTING.
5810
5811	* src/truetype/ttobjs.h (TT_GraphicsState)
5812	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Add `both_x_axis'.
5813
58142003-04-25  Werner Lemberg  <wl@gnu.org>
5815
5816	* src/bdf/bdflib.c (hash_bucket, hash_lookup): Use `const' for first
5817	argument.
5818	(bdf_get_font_property): Use `const' for third argument.
5819	Updated all callers.
5820	* src/bdf/bdfdrivr.c (BDF_Face_Init): Set pixel width and height
5821	similar to the PCF driver.
5822	* src/bdf/bdf.h (_hashnode): Use `const' for `key'.
5823	Updated.
5824
5825	* src/gzip/ftgzip.c: C++ doesn't like that the array `inflate_mask'
5826	is declared twice.  It is perhaps better to modify the zlib source
5827	files directly instead of this hack.
5828	(zcalloc, zfree, ft_gzip_stream_close, ft_gzip_stream_io): Add casts
5829	to make build with g++ successful.
5830
58312003-04-24  Manish Singh  <yosh@gimp.org>
5832
5833	* src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
5834	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Split on `-'
5835	also for searching the style name.
5836
58372003-04-24  David Turner  <david@freetype.org>
5838
5839	* src/pcf/pcfread.c (pcf_load_font): Fixed the computation of
5840	face->num_glyphs.  We must increase the value by 1 to respect the
5841	convention that glyph index 0 always corresponds to the `missing
5842	glyph'.
5843
58442003-04-24  Werner Lemberg  <wl@gnu.org>
5845
5846	* builds/unix/unix-cc.in (CFLAGS): Add @CPPFLAGS@.
5847
58482003-04-24  Dieter Baron  <dillo@netbsd.org>
5849
5850	* builds/unix/freetype-config.in (cflags): Emit FreeType 2's include
5851	files first.  Otherwise there are conflicts with FreeType 1
5852	installed simultaneously.
5853
58542003-04-23  Werner Lemberg  <wl@gnu.org>
5855
5856	Fixing bugs reported by Nelson Beebe.
5857
5858	* src/base/ftstroker.c (FT_Stroker_ParseOutline): Remove unused
5859	variable `in_path'.
5860
5861	* src/base/ftobjs (ft_glyphslot_set_bitmap): Change type of
5862	second argument to `FT_Byte*'.
5863	* include/freetype/internal/ftobjs.h: Updated.
5864
5865	* src/bdf/bdflib.c (_bdf_readstream): Remove unused variable `res'.
5866	(_bdf_parse_glyphs): Remove unused variable `next'.
5867	Mark `call_data' as unused.
5868
5869	* src/cache/ftlru.c (FT_LruList_Lookup): Remove unused variable
5870	`plast'.
5871
5872	* src/pcf/pcfread.c (pcf_seek_to_table_type): Slight recoding to
5873	actually use `error'.
5874	(pcf_load_font): Remove unused variable `avgw'.
5875
5876	* src/pfr/pfrobjs.c (pfr_face_get_kerning): Change return type
5877	to `void'.
5878	Mark `error' as unused.
5879	* src/pfr/pfrobjs.h: Updated.
5880	* src/pfr/pfrdrivr.c (pfr_get_kerning): Updated.
5881
5882	* src/sfnt/ttload.c (sfnt_dir_check): Remove unused variable
5883	`format_tag'.
5884
5885	* src/sfnt/ttcmap0.c (tt_cmap6_validate, tt_cmap10_validate): Remove
5886	unused variable `start'.
5887	(tt_cmap10_char_next): Remove unused variable `result'
5888
5889	* src/sfnt/sfobjs.c (tt_face_get_name): Mark `error' as unused.
5890
5891	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Mark `error' as
5892	unused.
5893
5894	* src/type1/t1objs.c (T1_Face_Init): Remove unused variable
5895	`pshinter'.
5896
5897	* src/type1/t1gload.c (T1_Load_Glyph): Use `glyph_data_loaded'
5898	only for FT_CONFIG_OPTION_INCREMENTAL.
5899
59002003-04-23  Akito Hirai  <akito@kde.gr.jp>
5901
5902	* src/sfnt/ttcmap0.c (tt_cmap4_validate): Provide a weak variant
5903	of the glyph ID bounding check if FT_VALIDATE_TIGHT is not active.
5904	Without this change, many CJK fonts from Dynalab are rejected.
5905
59062003-04-23  Joe Marcus Clarke  <marcus@FreeBSD.org>
5907
5908	* src/base/ftbdf.c (FT_Get_BDF_Property): Check for valid
5909	`get_interface'.
5910
59112003-04-23  Paul Miller  <paulm@profoundeffects.com>
5912
5913	* src/base/ftmac.c (parse_fond): Fix handling of style names.
5914
59152003-04-23  Werner Lemberg  <wl@gnu.org>
5916
5917	* src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist
5918	instead of FT_UInt for `len'.
5919
59202003-04-22  Werner Lemberg  <wl@gnu.org>
5921
5922	* src/gzip/ftgzip.c (zcalloc) [!FT_CONFIG_OPTION_SYSTEM_ZLIB]:
5923	Convert K&R format to modern C usage.
5924	(FT_Stream_OpenGzip): Use long constant.
5925
59262003-04-21  Werner Lemberg  <wl@gnu.org>
5927
5928	* src/cache/ftccache.c (ftc_cache_lookup): Remove shadow declaration
5929	of `manager'.
5930
59312003-04-20  Werner Lemberg  <wl@gnu.org>
5932
5933	* doc/INSTALL.UNX: Cleaned up.
5934
59352003-04-09  Torrey Lyons  <torrey@mrcla.com>
5936
5937	* src/base/ftmac.c (open_face_from_buffer): Removed a double-free
5938	bug that had nasty consequences when trying to open an `invalid'
5939	font on a Mac.
5940
59412003-04-09  Mike Fabian  <mfabian@suse.de>
5942
5943	* src/bdf/bdfdrivr.h (BDF_encoding_el), src/pcf/pcf.h
5944	(PCF_EncodingRec): Changed FT_Short to FT_UShort in order to be able
5945	to access more than 32768 glyphs in fonts.
5946
59472003-04-08  David Turner  <david@freetype.org>
5948
5949
5950	* Version 2.1.4 released.
5951	=========================
5952
5953
59542003-04-03  Martin Muskens  <mmuskens@aurelon.com>
5955
5956	* src/type1/t1load.c (T1_Open_Face): Fixed the code to make it
5957	handle special cases where a font only contains a `.notdef' glyph
5958	(happens in PDF-embedded fonts).  Otherwise, FT_Panic was called.
5959
59602003-03-27  David Turner  <david@freetype.org>
5961
5962	* README: Updated.
5963
5964	* README.UNX: Removed (now replaced by docs/INSTALL.UNX).
5965
5966	* src/pshinter/pshalgo3.c: The hinter now performs as in 2.1.3 and
5967	will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is
5968	used.
5969	(psh3_dimension_quantize_len): Enabled.
5970	(psh3_hint_align): Enable commented code.
5971	(psh3_hint_align_light): Commented out.
5972
5973	* src/base/ftobjs.c (FT_Set_Char_Size): Changed the default
5974	computations to include rounding in all cases; this is required to
5975	provide accurate kerning data when native TrueType hinting is
5976	enabled.
5977
5978	* src/type1/t1load.c (is_name_char): The Type 1 loader now accepts
5979	more general names according to the PostScript specification (the
5980	previous one was too restrictive).
5981	(parse_font_name, parse_encoding, parse_charstrings, parse_dict):
5982	Use `is_name_char'.
5983	(parse_subrs): Handle empty arrays.
5984
59852003-03-20  David Turner  <david@freetype.org>
5986
5987	Serious rewriting of the documentation.
5988
5989	* docs/BUGS, docs/BUILD: Removed.
5990	* docs/DEBUG.TXT: Renamed to...
5991	* docs/DEBUG: This.
5992	* docs/CUSTOMIZE, docs/TRUETYPE, docs/UPGRADE.UNX: New files.
5993	* docs/INSTALL.ANY, docs/INSTALL.UNX, docs/INSTALL.GNU New files,
5994	containing platform specific information previously in INSTALL.
5995	* docs/readme.vms: Renamed to...
5996	* docs/INSTALL.VMS: This.
5997
5998	* docs/*: Updated.
5999
6000	Introduced three new functions to deal with glyph bitmaps within
6001	FT_GlyphSlot objects:
6002
6003	  ft_glyphslot_free_bitmap
6004	  ft_glyphslot_alloc_bitmap
6005	  ft_glyphslot_set_bitmap
6006
6007	These functions are much more convenient to use than managing the
6008	FT_GLYPH_OWN_BITMAP flag manually.
6009
6010	* include/freetype/internal/ftobjs.h (ft_glyphslot_free_bitmap,
6011	ft_glyphslot_alloc_bitmap, ft_glyphslot_set_bitmap): New functions.
6012	* src/base/ftobjs.c: Implement them.
6013	(ft_glyphslot_done): Use ft_glyphslot_free_bitmap.
6014
6015	* src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdriver.c
6016	(PCF_Glyph_Load): Remove unused variable `memory'.
6017	Use `ft_glyphslot_*' functions.
6018	Don't set `FT_GLYPH_OWN_BITMAP'.
6019
6020	* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Use
6021	`ft_glyphslot_alloc_bitmap'.
6022
6023	* src/sfnt/ttsbit.c (Load_SBit_Image): Change 5th argument to type
6024	`FT_GlyphSlot'.
6025	Adding argument `depth' to handle recursive calls.
6026	Use `ft_glyphslot_alloc_bitmap'.
6027	(tt_face_load_sbit_image): Remove unused variable `memory'.
6028	Don't handle `FT_GLYPH_OWN_BITMAP'.
6029	Update call to Load_SBit_Image.
6030
6031	* src/type42/t42objs.c (ft_glyphslot_clear): Renamed to...
6032	(t42_glyphslot_clear): This.  Updated caller.
6033	Call `ft_glyphslot_free_bitmap'.
6034
6035	* src/winfonts/winfnt.c (FNT_Load_Glyph): Use
6036	`ft_glyphslot_set_bitmap'.
6037	Don't handle `FT_GLYPH_OWN_BITMAP'.
6038
6039	* src/cache/ftlru.c (FT_LruList_Lookup): Fixed an invalid assertion
6040	check.
6041
6042	* src/autohint/ahglyph.c (ah_outline_load): Add two scaling
6043	arguments.
6044	* src/autohint/ahglyph.h: Updated.
6045	* src/autohint/ahhint.c (ah_hinter_load): Updated.
6046	* src/autohint/ahglobal.c (ah_hinter_compute_widths): Updated.
6047
6048	* src/cache/ftccache.c (ftc_family_done): Fixed small bug that could
6049	crash the cache in rare circumstances (mostly with broken fonts).
6050
60512003-03-15  David Turner  <david@freetype.org>
6052
6053	* src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a small rounding
6054	bug.  Actually, it seems that previous versions of FreeType didn't
6055	perform TrueType rounding exactly as appropriate.
6056
60572003-03-14  David Turner  <david@freetype.org>
6058
6059	* src/truetype/ttdriver.c (Set_Char_Sizes): Fixing the small
6060	TrueType native rendering glitches; they came from a small rounding
6061	error.
6062
60632003-03-13  David Turner  <david@freetype.org>
6064
6065	Added new environment variables to control memory debugging with
6066	FreeType.  See the description of `FT2_DEBUG_MEMORY',
6067	`FT2_ALLOC_TOTAL_MAX' and `FT2_ALLOC_COUNT_MAX' in DEBUG.TXT.
6068
6069	* src/base/ftdbgmem.c (FT_MemTableRec): Add `alloc_count',
6070	`bound_total', `alloc_total_max', `bound_count', `alloc_count_max'.
6071	(ft_mem_debug_alloc): Handle new variables.
6072	(ft_mem_debug_init): s/FT_DEBUG_MEMORY/FT2_DEBUG_MEMORY/.
6073	Handle new environment variables.
6074	* docs/DEBUG.TXT: Updated.
6075
6076	Fixed the cache sub-system to correctly deal with out-of-memory
6077	conditions.
6078
6079	* src/cache/ftccache.c (ftc_node_destroy): Comment out generic
6080	check.
6081	(ftc_cache_lookup): Implement loop.
6082	* src/cache/ftccmap.c: Define FT_COMPONENT.
6083	* src/cache/ftcsbits.c (ftc_sbit_node_load): Handle
6084	FT_Err_Out_Of_Memory.
6085	* src/cache/ftlru.c: Include FT_INTERNAL_DEBUG_H.
6086	(FT_LruList_Lookup): Implement loop.
6087
6088	* src/pfr/pfrobjs.c (pfr_face_done): Fix memory leak.
6089	(pfr_face_init): Fixing compiler warnings.
6090
6091	* src/psaux/psobjs.c (reallocate_t1_table): Fixed a bug (memory
6092	leak) that only happened when a try to resize an array would end in
6093	an out-of-memory condition.
6094
6095	* src/smooth/ftgrays.c (gray_convert_glyph): Removed compiler
6096	warnings / volatile bug.
6097
6098	* src/truetype/ttobjs.c (tt_glyphzone_done): Removed segmentation
6099	fault that happened in tight memory environments.
6100
61012003-02-28  Pixel  <pixel@mandrakesoft.com>
6102
6103	* src/gzip/ftgzip.c (ft_gzip_file_done): Fixed memory leak: The ZLib
6104	stream was not properly finalized.
6105
61062003-02-25  Anthony Fok  <anthony@thizlinux.com>
6107
6108	* src/cache/ftccmap.c: Include FT_TRUETYPE_IDS_H.
6109	(ftc_cmap_family_init): The cmap cache now
6110	supports UCS-4 charmaps when available in Asian fonts.
6111
6112	* src/sfnt/ttload.c, src/base/ftobjs.c: Changed `asian' to `Asian'
6113	in comments.
6114
61152003-02-25  David Turner  <david@freetype.org>
6116
6117	* src/gzip/ftgzip.c (ft_gzip_file_fill_output): Fixed a bug that
6118	caused FreeType to loop endlessly when trying to read certain
6119	compressed gzip files.  The following test reveals the bug:
6120
6121	  touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
6122
6123	Several fixes to the PFR font driver:
6124
6125	- The list of available embedded bitmaps was not correctly set in
6126	  the root FT_FaceRec structure describing the face.
6127
6128	- The glyph loader always tried to load the outlines when
6129	  FT_LOAD_SBITS_ONLY was specified.
6130
6131	- The table loaded now scans for *undocumented* elements of a
6132	  physical font's auxiliary data record.  This is necessary to
6133	  retrieve the `real' family and style names.
6134
6135	NOTE THAT THESE CHANGES THE FAMILY NAME OF MANY PFR FONTS!
6136
6137	* src/pfr/pfrload.c (pfr_aux_name_load): New function.
6138	(pfr_phy_font_done): Free `family_name' and `style_name' also.
6139	Remove unused variables.
6140	(pfr_phy_font_load): Extract useful information from the auxiliary
6141	bytes.
6142
6143	* src/pfr/pfrobjs.c (pfr_face_done): Set pointers to NULL.
6144	(pfr_face_init): Provide fallback values for `family_name' and
6145	`style_name'.
6146	Handle strikes.
6147	(pfr_slot_load): Handle FT_LOAD_SBITS_ONLY.
6148	* src/pfr/pfrtypes.h (PFR_PhyFontRec): Add fields `ascent',
6149	`descent', `leading', `family_name', and `style_name'.
6150
6151	* src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a rounding bug
6152	when computing the scale factors for a given character size in
6153	points with resolution.
6154
6155	* devel/ft2build.h, devel/ftoption.h: New files (in a new directory)
6156	which are special development versions of include/ft2build.h and
6157	include/freetype/config/ftoption.h, respectively.
6158
61592003-02-18  David Turner  <david@freetype.org>
6160
6161	Fixing the slight distortion problem that occurred due to the latest
6162	auto-hinter changes.
6163
6164	* src/base/ftobjs.c (ft_recompute_scaled_metrics): Fix rounding.
6165
6166	* src/truetype/ttdriver.c (Set_Char_Sizes): New variable `metrics2'.
6167	[!TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Removed.
6168
6169	* src/truetype/ttobjs.h (TT_SizeRec): New field `metrics'.
6170	* src/truetype/ttobjs.c (Reset_Outline_Size): Fix initialization of
6171	`metrics'.
6172	[FT_CONFIG_CHESTER_ASCENDER]: Code removed.
6173	(Reset_SBit_Size): Fix initialization of `metrics'.
6174
6175	* src/truetype/ttinterp.c (TT_Load_Context): Fix initialization of
6176	`exec->metrics'.
6177
6178	* src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width
6179	`correction' which seemed to provide more trouble than benefits.
6180
61812003-02-13  Graham Asher  <graham.asher@btinternet.com>
6182
6183	Changed the incremental loading interface in a way that makes it
6184	simpler and allows glyph metrics to be changed (e.g., by adding a
6185	constant, as required by CFF fonts) rather than just overridden.
6186	This was required to make the GhostScript-to-FreeType bridge work.
6187
6188	* src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_INCREMENTAL]:
6189	Allow metrics to be overridden.
6190	* src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]:
6191	Ditto.
6192
6193	* src/truetype/ttgload.c (load_truetype_glyph)
6194	[FT_CONFIG_OPTION_INCREMENTAL]: Simplify.
6195	(compute_glyph_metrics) [FT_CONFIG_OPTION_INCREMENTAL]: Code block
6196	moved down.
6197
6198	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
6199	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
6200
6201	* include/freetype/ftincrem.h: Updated.
6202
62032003-01-31  David Turner  <david@freetype.org>
6204
6205	* docs/CHANGES, docs/VERSION.DLL, docs/TODO: Updating documentation
6206	for the 2.1.4 release.
6207
6208	* builds/win32/visualc/freetype.dsp,
6209	builds/win32/visualc/index.html: Updating the project file for
6210	2.1.4.
6211
6212	* src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c,
6213	src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c,
6214	src/gzip/infutil.c: Removed old-style (K&R)function definitions.
6215	This avoids warnings with Visual C++ at its most pedantic mode.
6216
6217	* src/pfr/pfrsbit.c: Removed compiler warnings.
6218
6219	* src/cache/ftccmap.c (ftc_cmap_family_init): Changed an FT_ERROR
6220	into an FT_TRACE1 since it caused `ftview' and others to dump too
6221	much junk when trying to display a waterfall with a font without a
6222	Unicode charmap (e.g.  SYMBOL.TTF).
6223
6224	Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last
6225	patch from David Chester, but with a much simpler (and saner)
6226	implementation.
6227
6228	* src/autohint/ahhint.c (ah_hinter_load_glyph)
6229	[FT_CONFIG_CHESTER_BLUE_SCALE]: Try to optimize the y_scale so that
6230	the top of non-capital letters is aligned on a pixel boundary
6231	whenever possible.
6232
6233	* src/base/ftobjs.c (FT_Set_Char_Size)
6234	[FT_CONFIG_CHESTER_BLUE_SCALE]: Round differently.
6235	* src/truetype/ttdriver.c (Set_Char_Sizes)
6236	[TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Do some rounding only
6237	if this macro is defined.
6238
6239	* src/truetype/ttobjs.c (Reset_Outline_Size)
6240	[FT_CONFIG_CHESTER_ASCENDER]: Round differently.
6241
6242	* src/pshinter/pshalgo3.c: Improved the Postscript hinter.  Getting
6243	rid of stem snapping seems to work well here (though the stems are
6244	still slightly moved to increase contrast).
6245	(psh3_dimension_quantize_len): Commented out.
6246	(psh3_hint_align_light): New function.
6247	(psh3_hint_align): Comment out some code.
6248
6249	THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
6250	STILL SUCK.
6251
62522003-01-22  David Chester  <davidchester@qmx.net>
6253
6254	* src/autohint/ahhint.c (ah_compute_stem_width): Small fix to the
6255	stem width optimization.
6256
62572003-01-22  David Turner  <david@freetype.org>
6258
6259	Adding a new API `FT_Get_BDF_Property' to retrieve the BDF
6260	properties of a given PCF or BDF font.
6261
6262	* include/freetype/ftbdf.h (BDF_PropertyType): New enumeration.
6263	(BDF_Property, BDF_PropertyRec): New structure.
6264	FT_Get_BDF_Property): New function.
6265	* include/freetype/internal/bdftypes.h: Include FT_BDF_H.
6266	(BDF_GetPropertyFunc): New function pointer.
6267
6268	* src/base/ftbdf.c (test_font_type): New helper function.
6269	(FT_Get_BDF_Charset_ID): Use `test_font_type'.
6270	(FT_Get_BDF_Property): New function.
6271
6272	* src/bdf/bdfdrivr.c: Include FT_BDF_H.
6273	(bdf_get_bdf_property, bdf_driver_requester): New functions.
6274	(bdf_driver_class): Use `bdf_driver_requester'.
6275
6276	* src/pcf/pcfdrivr.c: Include FT_BDF_H.
6277	(pcf_get_bdf_property, pcf_driver_requester): New functions
6278	(pcf_driver_class): Use `pcf_driver_requester'.
6279
6280	* src/pcf/pcfread.c: Include `pcfread.h'.
6281	(pcf_find_property): Decorate it with FT_LOCAL_DEF.
6282	* src/pcf/pcfread.h: New file, providing `pcf_find_property'.
6283
6284	* src/sfnt/ttload.c (sfnt_dir_check): Relaxed the `head' table size
6285	verification to accept a few broken fonts who pad the size
6286	incorrectly (the table should be padded, but its `size' field
6287	shouldn't according to the specification).
6288
62892003-01-18  Werner Lemberg  <wl@gnu.org>
6290
6291	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
6292	--copy' from libtool 1.4.3.
6293	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
6294	automake 1.7.1.
6295	* builds/unix/configure: Regenerated with autoconf 2.54.
6296	* builds/unix/config.guess, builds/unix/config.sub: Updated from
6297	`config' CVS module at subversions.gnu.org.
6298	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
6299	`automake' CVS module at subversions.gnu.org.
6300
63012003-01-15  David Turner  <david@freetype.org>
6302
6303	* include/freetype/freetype.h: Fixed documentation for
6304	FT_Size_Metrics.
6305
63062003-01-15  James Su  <suzhe@turbolinux.com.cn>
6307
6308	* src/gzip/ftgzip.c (ft_gzip_check_header): Bugfix: couldn't read
6309	certain gzip-ed font files (typo: `&&' -> `&').
6310
63112003-01-15  Huw D M Davies  <h.davies1@physics.ox.ac.uk>
6312
6313	Added a Windows .FNT specific API (mostly for Wine).  Also fixed a
6314	nasty bug in the header loader which would cause invalid memory
6315	overwrites.
6316
6317	* include/freetype/config/ftheader.h (FT_WINFONTS_H): New macro
6318	for ftwinfnt.h.
6319	* include/freetype/internal/fnttypes.h: Include FT_WINFONTS_H.
6320	(FNT_FontRec): Updated.
6321	Move Windows FNT definition to...
6322	* include/freetype/ftwinfnt.h: This new file.
6323	(FT_WinFNT_HeaderRec): Rename `reserved2' to `reserved1'.
6324	* src/base/ftwinfnt.c: New file, providing `FT_Get_WinFNT_Header'.
6325	* src/winfonts/winfnt.c (winfnt_header_fields): Updated.
6326	Rename `reserved2' to `reserved1'.
6327	(fnt_font_load): Updated.
6328
6329	* src/base/Jamfile, src/base/descrip.mms, src/base/rules.mk:
6330	Updated.
6331
63322003-01-14  Graham Asher  <graham.asher@btinternet.com>
6333
6334	* include/freetype/ftglyph.h, src/base/ftglyph.c: Added `const' to
6335	the type of the first argument to FT_Matrix_Multiply, which isn't
6336	changed -- this adds documentation and convenience.
6337
63382003-01-13  Graham Asher  <graham.asher@btinternet.com>
6339
6340	* src/sfnt/ttload.c (tt_face_load_metrics)
6341	[FT_CONFIG_OPTION_INCREMENTAL]: TrueType typefaces without
6342	horizontal metrics (without the `hmtx' table) are now tolerated if
6343	an incremental interface has been specified that has a
6344	get_glyph_metrics function, implying that metrics will be supplied
6345	from outside.  This happens for certain Type 42 fonts passed from
6346	GhostScript.
6347
63482003-01-11  David Chester  <davidchester@qmx.net>
6349
6350	Patches to the auto-hinter in order to slightly improve the output.
6351	Note that everything is controlled through the new
6352	FT_CONFIG_OPTION_CHESTER_HINTS defined in `ftoption.h'.  There are
6353	also individual FT_CONFIG_CHESTER_XXX macros to control individual
6354	`features'.
6355
6356	Note that all improvements are enabled by default, but can be
6357	tweaked for optimization and testing purposes.  The configuration
6358	macros will most likely disappear in the short future.
6359
6360	* include/freetype/config/ftoption.h
6361	(FT_CONFIG_OPTION_CHESTER_HINTS): New macro.
6362	(FT_CONFIG_CHESTER_{SMALL_F,ASCENDER,SERIF,STEM,BLUE_SCALE})
6363	[FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual
6364	features.
6365
6366	* src/autohint/ahglobal.c (blue_chars) [FT_CONFIG_CHESTER_SMALL_F]:
6367	Add blue zone for `fijkdbh'.
6368	* src/autohint/ahglobal.h (AH_IS_TOP_BLUE)
6369	[FT_CONFIG_CHESTER_SMALL_F]: Use `AH_BLUE_SMALL_F_TOP'.
6370	* src/autohint/ahglyph.c (ah_outline_compute_edges)
6371	[FT_CONFIG_CHESTER_SERIF]: Use `AH_EDGE_SERIF'.
6372	(ah_outline_compute_blue_edges) [FT_CONFIG_CHESTER_SMALL_F]:
6373	Increase threshold for `best_dist'.
6374	* src/autohint/ahhint.c (ah_compute_stem_width)
6375	[FT_CONFIG_CHESTER_SERIF]: Provide new version for improved serif
6376	handling.
6377	(ah_align_linked_edge) [FT_CONFIG_CHESTER_SERIF]: Use special
6378	version of `ah_compute_stem_width'.
6379	(ah_hint_edges_3) [FT_CONFIG_CHESTER_STEM]: A new algorithm for stem
6380	alignment when stem widths are less than 1.5 pixels wide centers the
6381	stem slightly off-center of the center of a pixel (this increases
6382	sharpness and consistency).
6383	[FT_CONFIG_CHESTER_SERIF]: Use special version of
6384	`ah_compute_stem_width'.
6385	* src/autohint/ahtypes.h [FT_CONFIG_CHESTER_SMALL_F]: Add
6386	`AH_BLUE_SMALL_F_TOP'.
6387
63882003-01-11  David Turner  <david@freetype.org>
6389
6390	* include/freetype/internal/fnttypes.h (WinFNT_HeaderRec): Increase
6391	size of `reserved2' to avoid memory overwrites.
6392
63932003-01-08  Huw Davies  <huw@codeweavers.com>
6394
6395	* src/winfonts/winfnt.c (winfnt_header_fields): Read 16 bytes into
6396	`reserved2', not `reserved'.
6397
6398	* src/base/ftobjs.c (find_unicode_charmap): Fixed the error code
6399	returned when the font doesn't contain a Unicode charmap.  This
6400	allows FT2 to load `symbol.ttf' and a few others correctly since the
6401	last release.
6402	(open_face): Fix return value.
6403
64042003-01-08  Owen Taylor  <owen@redhat.com>
6405
6406	Implemented the FT_RENDER_MODE_LIGHT hinting mode in the auto and
6407	postscript hinters.
6408
6409	* src/autohint/ahtypes.h (AH_HinterRec): Add `do_stem_adjust'.
6410	* src/autohint/ahhint.c (ah_compute_stem_width): Handle
6411	hinter->do_stem_adjust.
6412	(ah_hinter_load_glyph): Set hinter->do_stem_adjust.
6413
6414	* src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add `do_stem_adjust'.
6415	* src/pshinter/pshalgo3.c (psh3_hint_align): Use `do_stem_adjust'.
6416	(ps3_hints_apply): Handle FT_RENDER_MODE_LIGHT.
6417
6418	* include/freetype/freetype.h (FT_Render_Mode): Add
6419	FT_RENDER_MODE_LIGHT.
6420
6421	* src/truetype/ttgload.c: Fixing the TrueType loader to handle
6422	invalid composites correctly by limiting the recursion depth.
6423	(TT_MAX_COMPOSITE_RECURSE): New macro.
6424	(load_truetype_glyph): Add argument `recurse_count'.
6425	Load a composite only if the numbers of contours is -1, emit error
6426	otherwise.
6427	(TT_Load_Glyph): Updated.
6428
64292003-01-08  David Turner  <david@freetype.org>
6430
6431	* Jamrules, Jamfile, Jamfile.in, src/*/Jamfile: Small changes to
6432	support the compilation of FreeType 2 as part of larger projects
6433	with their own configuration options (only with Jam).
6434
64352003-01-07  David Turner  <david@freetype.org>
6436
6437	* src/base/ftstroker.c: Probably the last bug-fixes to the stroker;
6438	the API is likely to change, however.
6439	(ft_stroke_border_close): Don't record empty paths.
6440	(ft_stroke_border_get_counts): Increase `num_points' also in for loop.
6441	(ft_stroke_border_export): Don't increase `write' twice in for loops.
6442	(ft_stroker_outside): Handle `phi' together with `theta'.
6443	(FT_Stroker_ParseOutline): New function.
6444
6445	* src/base/fttrigon.c (FT_Angle_Diff): Fixing function: It returned
6446	invalid values for large negative angle differences (resulting in
6447	incorrect stroker computations, among other things).
6448
6449	* src/cache/ftccache.c (ftc_node_hash_unlink): Removing incorrect
6450	assertion, and changing code to avoid hash table size contraction.
6451
6452	* src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding
6453	`ftstroker' to default build, as optional component.
6454
64552002-12-26  David Turner  <david@freetype.org>
6456
6457	* src/gzip/adler32.c, src/gzip/infblock.c, src/gzip/inflate.c,
6458	src/gzip/inftrees.c, src/gzip/zconf.h, src/gzip/zlib.h,
6459	src/gzip/zutil.h: Updates to allow compilation without compiler
6460	warnings with LCC-Win32.
6461
6462	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
6463	* builds/unix/configure.ac (version_info): Increased to 9:3:3.
6464	* builds/unix/configure: Regenerated.
6465	* docs/VERSION.DLL: Updated.
6466
64672002-12-23  Anthony Fok  <anthony@thizlinux.com>
6468
6469	* builds/unix/configure.ac, builds/unix/unix-cc.in (LINK_LIBRARY),
6470	builds/unix/unix-def.in (SYSTEM_ZLIB): Small fix to configure
6471	sub-system on Unix to allow other programs to correctly link with
6472	zlib when needed.
6473
64742002-12-19  David Turner  <david@freetype.org>
6475
6476	* include/freetype/internal/sfnt.h (SFNT_Load_Table_Func): New
6477	function pointer.
6478
6479	* include/freetype/tttables.h (FT_Load_Sfnt_Table): New function.
6480	* src/base/ftobjs.c: Implement it.
6481
6482	* src/sfnt/sfdriver.c (sfnt_get_interface): Handle `load_sfnt'
6483	module request.
6484
64852002-12-17  David Turner  <david@freetype.org>
6486
6487	* src/base/ftobjs.c (find_unicode_charmap): Added some comments to
6488	better explain what's happening there.
6489	(open_face): Included Graham Asher's fix to prevent faces without
6490	Unicode charmaps from loading.
6491
6492	* src/winfonts/winfnt.c: Included George Williams's fix to support
6493	version 2 fonts correctly.
6494	(winfnt_header_fields): Updated.
6495	(fnt_font_load): Handle version 2 fonts.
6496	(FNT_Load_Glyph): Updated.
6497
64982002-12-16  David Turner  <david@freetype.org>
6499
6500	* docs/VERSION.DLL: Updating document to better explain the
6501	differences between the three version numbers being used on Unix, as
6502	well as providing an autoconf fragment provided by Lars Clausen.
6503
6504	* src/smooth/ftgrays.c (gray_render_conic): Fixed small bug that
6505	prevented Bézier arcs with negative vertical coordinates to be
6506	rendered appropriately.
6507
65082002-12-02  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
6509
6510	* src/base/ftobjs.c: Modified the logic to get Unicode charmaps.
6511	Now it loads UCS-4 charmaps when there is one.
6512	(find_unicode_charmap): New function.
6513	(open_face): Refer to the above one.
6514	(FT_Select_Charmap): Idem.
6515
65162002-11-29  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
6517
6518	* include/freetype/ftgzip.h: Correct the name of the controlling
6519	macro (was __FTXF86_H__ ...).
6520
65212002-11-27  Vincent Caron  <v.caron@zerodeux.net>
6522
6523	* builds/unix/unix-def.in, builds/unix/freetype-config.in,
6524	builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c
6525	[FT_CONFIG_OPTION_SYSTEM_ZLIB]: Adding support for system zlib
6526	installations if available on the target platform (Unix only).
6527
65282002-11-23  David Turner  <david@freetype.org>
6529
6530	* src/cff/cffload.c (cff_charset_load, cff_encoding_load): Modified
6531	charset loader to accept pre-defined charsets, even when the font
6532	contains fewer glyphs.  Also enforced more checks to ensure that we
6533	never overflow the character codes array in the encoding.
6534
65352002-11-22  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
6536
6537	* include/freetype/ttnameid.h: Updated to latest OpenType
6538	specification.
6539
65402002-11-18  David Turner  <david@freetype.org>
6541
6542
6543	* Version 2.1.3 released.
6544	=========================
6545
6546
65472002-11-07  David Turner  <david@freetype.org>
6548
6549	* src/cache/ftcsbits.c (ftc_sbit_node_load): Fixed a small bug that
6550	caused problems with embedded bitmaps.
6551
6552	* src/otlayout/otlayout.h, src/otlayout/otlconf.h,
6553	src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
6554	src/otlayout/otlparse.c, src/otlayout/otlparse.h,
6555	src/otlayout/otlutils.h: Updating the OpenType Layout code, adding
6556	support for the first GSUB lookups.  Nothing that really compiles
6557	for now though.
6558
6559	* src/autohint/ahhint.c (ah_align_serif_edge): Disabled serif stem
6560	width quantization.  It produces slightly better shapes though this
6561	is not distinguishable with many fonts.
6562	Remove other dead code.
6563
6564	* src/Jamfile, src/*/Jamfile: Simplified.
6565	Use $(FT2_SRC_DIR).
6566
65672002-11-06  David Turner  <david@freetype.org>
6568
6569	* include/freetype/freetype.h (FT_LOAD_TARGET_LIGHT): New macro.
6570	(FT_LOAD_TARGET, FT_LOAD_TARGET_MODE): Use `& 15' instead of `& 7'.
6571
65722002-11-05  David Turner  <david@freetype.org>
6573
6574	* include/freetype/config/ftoption.h, src/gzip/ftgzip.c: Added
6575	support for the FT_CONFIG_OPTION_SYSTEM_ZLIB option, used to specify
6576	the use of system-wide zlib.
6577
6578	Note that this macro, as well as
6579	TT_CONFIG_OPTION_BYTECODE_INTERPRETER, is not #undef-ed anymore.
6580	This allows the build system to define them depending on the
6581	configuration (typically by adding -D flags at compile time).
6582
6583	* src/sfnt/ttcmap0.c (tt_face_build_cmaps): Removed compiler
6584	warnings in optimized mode relative to the `volatile' local
6585	variables.  This was not a compiler bug after all, but the fact that
6586	a pointer to a volatile variable is not the same as a volatile
6587	pointer to a variable :-)
6588
6589	The fix was to change
6590	  `volatile FT_Byte* p'
6591	into
6592	  `FT_Byte* volatile p'.
6593
6594	* src/pfr/pfrload.c (pfr_phy_font_load), src/pfr/pfrdrivr.c
6595	(pfr_get_metrics), src/gzip/inftrees.c: Removed compiler warnings in
6596	optimized modes.
6597
6598	* src/gzip/*.[hc]: Modified our zlib copy in order to prevent
6599	exporting any zlib function names outside of the component.  This
6600	prevents linking problems on some platforms, when applications want
6601	to link FreeType _and_ zlib together.
6602
66032002-11-05  Juliusz  <jch@pps.jussieu.fr>
6604
6605	* src/psaux/psobjs.c (ps_table_add): Modified increment loop in
6606	order to implement exponential behaviour.
6607
66082002-11-01  David Turner  <david@freetype.org>
6609
6610	Added PFR-specific public API.  Fixed the kerning retrieval routine
6611	(it returned invalid values when the outline and metrics resolution
6612	differ).
6613
6614	* include/freetype/ftpfr.h, include/freetype/internal/pfr.h: New
6615	files.
6616
6617	* include/freetype/internal/internal.h (FT_INTERNAL_PFR_H): New
6618	macro for pfr.h.
6619
6620	* src/base/ftpfr.c: New file.
6621	* src/base/Jamfile, src/base/descrip.mms: Updated.
6622
6623	* src/pfr/pfrdrivr.c: Include FT_INTERNAL_PFR_H.
6624	(pfr_get_kerning, pfr_get_advance, pfr_get_metrics): New functions.
6625	(pfr_service_rec): New format interface.
6626	(pfr_driver_class): Use `pfr_service_rec'.
6627	Replace `pfr_face_get_kerning' with `pfr_get_kerning'.
6628	* src/pfr/pfrobjs.c: Remove dead code.
6629
6630	* src/base/ftobjs.c (ft_glyphslot_clear): Small internal fix to
6631	better support bitmap-based font formats.
6632
6633	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix handling of
6634	`scale'.
6635	Fix arguments to `FT_Vector_From_Polar'.
6636
66372002-10-31  David Turner  <david@freetype.org>
6638
6639	Add support for automatic handling of gzip-compressed PCF files.
6640
6641	* src/gzip/*: New files, taken from the zlib package (except
6642	ftgzip.c).
6643
6644	* include/freetype/ftgzip.h, src/gzip/ftgzip.c: New files.
6645	* include/freetype/config/ftheader.h (FT_GZIP_H): New macro for
6646	`ftgzip.h'.
6647
6648	* src/pcf/pcfdriver.c: Include FT_GZIP_H and FT_ERRORS_H.
6649	(PCF_Face_Init): If normal open fails, try to open gzip stream.
6650	(PCF_Face_Done): Close gzip stream.
6651
6652	* include/freetype/internal/pcftypes.h (PCF_Public_FaceRec),
6653	src/pcf/pcf.h (PCF_FaceRec): Add `gzip_stream' and `gzip_source'.
6654
6655	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_ZLIB):
6656	New macro.
6657	(T1_CONFIG_OPTION_DISABLE_HINTER, FT_CONFIG_OPTION_USE_CMAPS
6658	FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS,
6659	FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS): Removed.
6660
6661	(FT_EXPORT, FT_EXPORT_DEF, FT_DEBUG_LEVEL_ERROR,
6662	FT_DEBUG_LEVEL_TRACE, FT_DEBUG_MEMORY): Comment out definitions so
6663	that platform specific configuration file can override.
6664
6665	* include/freetype/internal/ftstream.h: Include FT_SYSTEM_H.
6666
66672002-10-30  David Turner  <david@freetype.org>
6668
6669	* FreeType 2.1.3rc3 released.
6670
66712002-10-25  David Turner  <david@freetype.org>
6672
6673	* include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro.
6674	(FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG.
6675
66762002-10-22  Giuseppe Ghibò  <ghibo@mandrakesoft.com>
6677
6678	* include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2.
6679
66802002-10-07  Werner Lemberg  <wl@gnu.org>
6681
6682	* include/freetype/freetype.h (FT_Open_Face): Use `const' for `args'
6683	(suggested by Graham).
6684	* src/base/ftobjs.c (FT_Open_Face): Updated.
6685	(ft_input_stream_new): Ditto.
6686
66872002-10-05  David Turner  <david@freetype.org>
6688
6689	Adding support for embedded bitmaps to the PFR driver, and rewriting
6690	its kerning loader/handler to use all kerning pairs in a physical
6691	font (and not just the first item).
6692
6693	* src/pfr/pfr.c: Include `pfrsbit.c'.
6694	* src/pfr/pfrgload.c: Include `pfrsbit.h'.
6695	* src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): Rewritten.
6696	(pfr_phy_font_done, pfr_phy_font_load): Updated.
6697	* src/pfr/pfrobjs.c: Include `pfrsbit.h'.
6698	(pfr_face_init): Handle kerning and embedded bitmaps.
6699	(pfr_slot_load): Load embedded bitmaps.
6700	(PFR_KERN_INDEX): Removed.
6701	(pfr_face_get_kerning): Rewritten.
6702	* src/pfr/pfrsbit.c, src/pfr/pfrsbit.h: New files.
6703	* src/pfr/pfrtypes.h (PFR_KernItemRec): New structure.
6704	(PFR_KERN_INDEX): New macro.
6705	(PFR_PhyFontRec): Add items for kerning and embedded bitmaps.
6706	* src/pfr/Jamfile (_sources) [FT2_MULTI]: Add `pfrsbit'.
6707
6708	* src/base/ftobjs.c (FT_Load_Glyph): Don't load bitmap fonts if
6709	FT_LOAD_NO_RECURSE is set.
6710	Load embedded bitmaps only if FT_LOAD_NO_BITMAP isn't set.
6711
6712	* src/tools/docmaker/content.py, src/tools/docmaker/sources.py,
6713	src/tools/docmaker/tohtml.py: Fixing a few nasty bugs.
6714
6715	* src/sfnt/ttcmap0.c (tt_cmap4_validate): The validator for format 4
6716	sub-tables is now capable of dealing with invalid `length' fields at
6717	the start of the sub-table.  This allows fonts like `mg______.ttf'
6718	(i.e.  Marriage) to return accurate charmaps.
6719
6720	* docs/CHANGES: Updated.
6721
67222002-10-05  Werner Lemberg  <wl@gnu.org>
6723
6724	* src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'.
6725	Update all callers.
6726	(TRUNC): Add cast to `TCoord'.
6727	Update all callers.
6728	(TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and
6729	last_ey.
6730	Update all casts.
6731	(gray_render_line): Fix casts for `p' and `first'.
6732
67332002-10-02  Detlef Würkner  <TetiSoft@apg.lahn.de>
6734
6735	* src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t
6736	structure with FT_ALLOC instead of using the stack.
6737
67382002-09-27  Werner Lemberg  <wl@gnu.org>
6739
6740	* src/include/freetype/internal/tttypes.h (num_sbit_strikes,
6741	num_sbit_scales): Use `FT_ULong'.
6742	* src/sfnt/sfobjs.c (sfnt_load_face): Updated accordingly.
6743	* src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Ditto.
6744	(find_sbit_image): Remove cast.
6745	* src/raster/ftrend1.c (ft_raster1_render): Fix cast.
6746
67472002-09-27  Wolfgang Domröse  <porthos.domroese@harz.de>
6748
6749	* src/sfnt/ttload.c (tt_face_load_names): Use cast.
6750	* src/sfnt/ttcmap.c (code_to_next2): Use long constant.
6751	(code_to_index4): Use cast.
6752	(code_to_index8_12): Fix cast.
6753	* src/sfnt/ttcmap0.c (tt_cmap4_char_next, tt_cmap8_char_index,
6754	tt_cmap12_char_index): Use cast for `result'.
6755	(tt_face_build_cmaps): Use cast.
6756	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_ucs4): Use cast for
6757	`code'.
6758	(sfnt_load_face): Use FT_Int32 for `flags'.
6759
6760	* src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
6761	gray_compute_cbox, gray_convert_glyph, gray_raster_reset): Add casts
6762	to `TCoord' and `int'.
6763	More 16bit fixes.
6764	s/FT_Pos/TPos/.
6765	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts.
6766
67672002-09-26  Werner Lemberg  <wl@gnu.org>
6768
6769	* src/sfnt/ttpost.c (load_post_names, tt_face_free_ps_names,
6770	tt_face_get_ps_name): Replace switch statement with if clauses to
6771	make it more portable.
6772
6773	* src/cff/cffobjs.c (cff_face_init): Ditto.
6774
6775	* include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for
6776	`module_size'.
6777	* include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for
6778	`glyph_size'.
6779
6780	* src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to
6781	`FT_Render_Mode'.
6782	(FT_Render_Glyph_Internal): Change third parameter to
6783	`FT_Render_Mode'.
6784	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter
6785	to `FT_Render_Mode'.
6786
6787	* src/raster/ftrend1.c (ft_raster1_render): Change third parameter
6788	to `FT_Render_Mode'.
6789	* src/smooth/ftsmooth.c (ft_smooth_render, ft_smooth_render_lcd,
6790	ft_smooth_render_lcd_v): Ditto.
6791	(ft_smooth_render_generic): Change third and fifth parameter to
6792	`FT_Render_Mode'.
6793
6794	* include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
6795	include/freetype/ftglyph.h: Updated.
6796
6797	* src/cff/cffdrivr.c (Load_Glyph), src/pcf/pcfdriver.c
6798	(PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load),
6799	src/winfonts/winfnt.c (FNT_Load_Glyph), src/t42/t42objs.c
6800	(T42_GlyphSlot_Load), src/bdf/bdfdrivr.c (BDF_Glyph_Load): Change
6801	fourth parameter to `FT_Int32'.
6802
6803	* src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters
6804	and declare them as unused.
6805
6806	* src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'.
6807
6808	* src/psnames/psnames.h (PS_Unicode_Value_Func): Change return
6809	value to FT_UInt32.
6810	* src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table):
6811	Updated accordingly.
6812
68132002-09-26  Wolfgang Domröse  <porthos.domroese@harz.de>
6814
6815	* src/cff/cffdrivr.c (Get_Kerning): Use FT_Long for `middle'.
6816	(cff_get_glyph_name): Use cast for result of ft_strlen.
6817	* src/cff/cffparse.c (cff_parse_real): User cast for assigning
6818	`exp'.
6819	* src/cff/cffload.c (cff_index_get_pointers): Use FT_ULong for
6820	some local variables.
6821	(cff_charset_load, cff_encoding_load): Use casts to FT_UInt for some
6822	switch statements.
6823	(cff_font_load): Use cast in call to CFF_Load_FD_Select.
6824	* src/cff/cffobjs.c (cff_size_init): Use more casts.
6825	(cff_face_init): Use FT_Int32 for `flags'.
6826	* src/cff/cffgload.c (cff_operator_seac): Use cast for assigning
6827	`adx' and `ady'.
6828	(cff_decoder_parse_charstrings): Use FT_ULong for third parameter.
6829	Use more casts.
6830	* src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'.
6831
6832	* src/cid/cidload.c (cid_read_subrs): Use FT_ULong for `len'.
6833	* src/cid/cidgload.c (cid_load_glyph): Add missing cast for
6834	`cid_get_offset'.
6835
6836	* src/psaux/t1decode.c (t1_decoder_parse_charstrings) <18>: Use
6837	cast for `num_points'.
6838	(t1_decoder_init): Use cast for assigning `decoder->num_glyphs'.
6839
6840	* src/base/ftdebug.c (ft_debug_init): Use FT_Int.
6841	* include/freetype/internal/ftdriver.h (FT_Slot_LoadFunc): Use
6842	`FT_Int32' for fourth parameter.
6843	* src/base/ftobjs.c (open_face): Use cast for calling
6844	clazz->init_face.
6845
6846	* src/raster/ftraster.c (Set_High_Precision): Use `1' instead of
6847	`1L'.
6848	(Finalize_Profile_Table, Line_Up, ft_black_init): Use casts.
6849	* src/raster/ftrend1.c (ft_raster1_render): Ditto.
6850
6851	* src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long
6852	constant.
6853
68542002-09-26  Detlef Würkner  <TetiSoft@apg.lahn.de>
6855
6856	* builds/amiga/include/freetype/config/ftmodule.h: Updated.
6857
68582002-09-25  David Turner  <david@freetype.org>
6859
6860	* src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics
6861	hinting in the auto-hinter.  This produces much better anti-aliased
6862	text.
6863
6864	* docs/CHANGES: Updating the changes documentation.
6865
68662002-09-25  Anthony Fok  <anthony@thizlinux.com>
6867
6868	* src/sfnt/ttcmap0.c (tt_cmap4_validate, tt_cmap4_char_index,
6869	tt_cmap4_char_next): Added support for opens___.ttf (it contains a
6870	charmap that uses offset=0xFFFFU instead of 0x0000 to indicate a
6871	missing glyph).
6872
68732002-09-21  Wolfgang Domröse  <porthos.domroese@harz.de>
6874
6875	* src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be
6876	FT_Int32.
6877	* src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph):
6878	Ditto.
6879
68802002-09-19  Wolfgang Domröse  <porthos.domroese@harz.de>
6881
6882	More 16bit fixes.
6883
6884	* src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'.
6885	(ah_hinter_compute_widths): Use FT_Pos for `dist'.
6886	Use AH_MAX_WIDTHS.
6887	* src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos
6888	for `delta'.
6889	(ah_outline_compute_edges): Replace some ints with FT_Int and
6890	FT_Pos.
6891	(ah_test_extrema): Clean up code.
6892	(ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to
6893	hold indices.
6894	* src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score'
6895	to FT_Pos.
6896
68972002-09-19  Werner Lemberg  <wl@gnu.org>
6898
6899	* builds/unix/config.guess, builds/unix/config.sub: Updated to
6900	recent versions.
6901
69022002-09-18  David Turner  <david@freetype.org>
6903
6904	* src/base/ftobjs.c (FT_Library_Version): Bugfix.
6905
6906	* FreeType 2.1.3rc2 (release candidate 2) is released!
6907
69082002-09-17  David Turner  <david@freetype.org>
6909
6910	* include/freetype/freetype.h, include/freetype/ftimage.h,
6911	include/freetype/ftstroker.h, include/freetype/ftsysio.h,
6912	include/freetype/ftsysmem.h, include/freetype/ttnameid.h: Updating
6913	the in-source documentation.
6914
6915	* src/tools/docmaker/tohtml.py: Updating the HTML formatter in the
6916	DocMaker tool.
6917
6918	* src/tools/docmaker.py: Removed.
6919
69202002-09-17  Werner Lemberg  <wl@gnu.org>
6921
6922	More 16bit fixes.
6923
6924	* src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for
6925	second parameter.
6926
69272002-09-16  Werner Lemberg  <wl@gnu.org>
6928
6929	16bit fixes from Wolfgang Domröse.
6930
6931	* src/type1/t1parse.h (T1_ParserRec): Change type of `base_len'
6932	and `private_len' to FT_Long.
6933	* src/type1/t1parse.c (T1_Get_Private_Dict): Remove cast for
6934	`private_len'.
6935	* src/type1/t1load.c: Use FT_Int cast for most calls of T1_ToInt.
6936	Use FT_PtrDist where appropriate.
6937	(parse_encoding): Use FT_Long for `count' and `n'.
6938	(read_binary_data): Use FT_Long* for second parameter.
6939	* src/type1/t1afm.c (afm_atoindex): Use FT_PtrDist.
6940
6941	* src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label.
6942	* src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable.
6943
69442002-09-14  Werner Lemberg  <wl@gnu.org>
6945
6946	Making ftgrays.c compile stand-alone again.
6947
6948	* include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_
6949	isn't defined.
6950	* src/smooth/ftgrays.c [_STANDALONE_]: Define ft_memset,
6951	FT_BEGIN_HEADER, FT_END_HEADER.
6952	(FT_MEM_ZERO): Define.
6953	(TRaster) [GRAYS_USE_GAMMA]: Use `unsigned char' instead of FT_Byte.
6954	(gray_render_span, gray_init_gamma): Don't use `FT_UInt'.
6955	Don't cast with `FT_Byte'.
6956	(grays_init_gamma): Don't use `FT_UInt'.
6957
69582002-09-14  Werner Lemberg  <wl@gnu.org>
6959
6960	* src/base/ftinit.c (FT_Add_Default_Modules): Improve error message.
6961	* src/pcf/pcfdriver.c (PCF_Face_Done): Improve tracing message.
6962	* include/freetype/config/ftoption.h (FT_MAX_MODULES): Increased
6963	to 32.
6964
69652002-09-10  Werner Lemberg  <wl@gnu.org>
6966
6967	* builds/unix/configure.ac (version_info): Set to 9:2:3.
6968	* builds/unix/configure: Regenerated.
6969	* docs/VERSION.DLL: Updated.
6970
69712002-09-09  David Turner  <david@freetype.org>
6972
6973	* src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points),
6974	src/pshinter/pshalgo3.c (psh3_glyph_find_strong_points): Adding fix
6975	to prevent segfault when hints are provided in an empty glyph.
6976
6977	* src/cache/ftccache.i (GEN_CACHE_LOOKUP) [FT_DEBUG_LEVEL_ERROR]:
6978	Removed conditional code.  This fixes a bug that prevented
6979	compilation in debug mode of template instantiation.
6980
6981	* include/freetype/ftimage.h: Removed incorrect `zft_' definitions
6982	and updated constants documentation comments.
6983
6984	* src/cff/cffparse.c (cff_parser_run): Fixed the CFF table loader.
6985	It didn't accept empty arrays, and this prevented the loading of
6986	certain fonts.
6987
6988	* include/freetype/freetype.h (FT_FaceRec): Updating documentation
6989	comment.  The `descender' value is always *negative*, not positive.
6990
69912002-09-09  Owen Taylor  <owen@redhat.com>
6992
6993	* src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation
6994	of bitmap metrics.
6995
69962002-09-08  David Turner  <david@freetype.org>
6997
6998	Various updates to correctly support subpixel rendering.
6999
7000	* include/freetype/config/ftmodule.h: Add two renderers for LCD.
7001
7002	* src/base/ftobjs.c (FT_Load_Glyph): Updated.
7003
7004	* src/smooth/ftsmooth.c (ft_smooth_render_lcd,
7005	ft_smooth_render_lcd_v): Set FT_PIXEL_MODE_LCD and
7006	FT_PIXEL_MODE_LCD_V, respectively.
7007
7008	* include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New
7009	structure.
7010	Updated all users.
7011	(FTC_ImageDesc): Removed.
7012	(FTC_ImageCache_Lookup): Second parameter is now of type
7013	`FTC_ImageType'.
7014	Updated all users.
7015	(FTC_IMAGE_DESC_COMPARE): Updated and renamed to...
7016	(FTC_IMAGE_TYPE_COMPARE): This.
7017	(FTC_IMAGE_DESC_HASH): Updated and renamed to...
7018	(FTC_IMAGE_TYPE_HASH): This.
7019
7020	* include/freetype/cache/ftcsbits.h (FTC_SBitRec): Field `num_grays'
7021	replaced with `max_grays'.
7022	`pitch' is now FT_Short.
7023	(FTC_SBitCache_Lookup): Second parameter is now of type
7024	`FTC_ImageType'.
7025	Updated all users.
7026
7027	* src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec):
7028	Updated.
7029	(ftc_image_node_init): Updated.
7030	Moved code to convert type flags to load flags to...
7031	(FTC_Image_Cache_Lookup): This function.
7032	(ftc_image_family_init): Updated.
7033
7034	* src/cache/ftcsbits.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
7035	Updated.
7036	(ftc_sbit_node_load): Updated.
7037	Moved code to convert type flags to load flags to...
7038	(FTC_SBitCache_Lookup): This function.
7039
7040	* src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with
7041	`do_*_snapping'.
7042	Update all users (with negation).
7043	* src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for
7044	`dist' for `delta' < 40.
7045
7046	* src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with
7047	`do_*_snapping'.
7048	Update all users (with negation).
7049	* src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New
7050	function.
7051	(psh3_hint_align): Use it.
7052	Improve hinting code.
7053	[STRONGER]: Removed.
7054	(STRONGER): Removed.
7055
7056	* include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*):
7057	Removed.
7058
70592002-09-05  Werner Lemberg  <wl@gnu.org>
7060
7061	* src/cid/cidobjs.c (CID_Size_Init): Renamed to...
7062	(cid_size_init): This.
7063	* src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to...
7064	(t1_builder_add_point1): This.
7065
7066	Updated all affected code.
7067
7068	* src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
7069	* src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.
7070
70712002-09-04  David Turner  <david@freetype.org>
7072
7073	* include/freetype/freetype.h: Corrected the definition of
7074	ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of
7075	the erroneous FT_ENCODING_SYMBOL).
7076
7077	* builds/unix/unix-def.in (datadir): Initialize it (thanks to
7078	Anthony Fok).
7079
70802002-08-29  David Turner  <david@freetype.org>
7081
7082	Slight modification to the Postscript hinter to slightly increase
7083	the contrast of smooth hinting.  This is very similar to what the
7084	auto-hinter does when it comes to stem width computations.  However,
7085	it produces better results with well-hinted fonts.
7086
7087	* include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Add hint
7088	mode to `init' member function.
7089	(T1_DecoderRec): Add hint mode.
7090	* include/freetype/internal/pshints (T1_Hints_ApplyFunc,
7091	T2_Hints_ApplyFunc): Pass `hint_mode', not `hint_flags'.
7092	* src/psaux/t1decode.c (t1_decoder_init): Add hint mode argument.
7093	* src/pshinter/pshalgo1.c (ps1_hints_apply): Pass hint mode, not
7094	hint flags.
7095	* src/pshinter/pshalgo2.c (ps2_hints_apply): Ditto.
7096	* src/pshinter/pshalgo3.c (ps3_hints_apply): Ditto.
7097	(STRONGER): New macro.
7098	(psh3_hint_align, psh3_hint_table_align_hints): Pass `glyph' instead
7099	of `hint_flags'.
7100	Implement announced changes.
7101	* src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control
7102	vertical and horizontal hints and snapping.
7103
7104	* README, docs/CHANGES: Updating for the 2.1.3 release.
7105
71062002-08-27  David Turner  <david@freetype.org>
7107
7108	* Massive re-formatting changes to many, many source files.  I don't
7109	want to list them all here.  The operations performed were all
7110	logical transformations of the sources:
7111
7112	- trying to convert all enums and constants to CAPITALIZED_STYLE,
7113	  #with define definitions like
7114
7115	    #define my_old_constants   MY_NEW_CONSTANT
7116
7117	- big, big update of the documentation comments
7118
7119	* include/freetype/freetype.h, src/base/ftobjs.c,
7120	src/smooth/ftsmooth.c, include/freetype/ftimage.h: Adding support
7121	for LCD-optimized rendering though the new constants/enums:
7122
7123	  FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
7124	  FT_PIXEL_MODE_LCD,  FT_PIXEL_MODE_LCD_V
7125
7126	This is still work in progress, don't expect everything to work
7127	correctly though most of the features have been implemented.
7128
7129	* Adding new FT_LOAD_XXX flags, used to specify both hinting and
7130	rendering targets:
7131
7132	  FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
7133	  FT_LOAD_TARGET_MONO   :: monochrome bitmaps
7134	  FT_LOAD_TARGET_LCD    :: horizontal RGB/BGR decimated
7135	                           hinting & rendering
7136	  FT_LOAD_TARGET_LCD_V  :: vertical RGB/BGR decimated
7137	                           hinting & rendering
7138
7139	Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
7140	behaviour of the font engine is _unchanged_.
7141
7142	* include/freetype/ftimage.h
7143	(FT_Outline_{Move,Line,Conic,Cubic}To_Func): Renamed to...
7144	(FT_Outline_{Move,Line,Conic,Cubic}ToFunc): This.
7145	(FT_Raster_Span_Func): Renamed to ...
7146	(FT_SpanFunc): This.
7147	(FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ...
7148	(FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This.
7149
7150	Updated all affected code.
7151
7152	* include/freetype/ftrender.h
7153	(FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed
7154	to ...
7155	(FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This.
7156	(FTRenderer_{render,transform,getCBox,setMode}): Renamed to ...
7157	(FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SetModeFunc}):
7158	This.
7159
7160	Updated all affected code.
7161
7162	* src/autohint/ahtypes.h (AH_Point, AH_Segment, AH_Edge, AH_Globals,
7163	AH_Face_Globals, AH_Outline, AH_Hinter): These typedefs are now
7164	pointers to the corresponding `*Rec' structures.  All source files
7165	have been updated accordingly.
7166
7167	* src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter.
7168	* src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element.
7169
7170	* src/cid/cidgload.c (CID_Compute_Max_Advance): Renamed to...
7171	(cid_face_compute_max_advance): This.
7172	(CID_Load_Glyph): Renamed to...
7173	(cid_slot_load_glyph): This.
7174	* src/cid/cidload.c (CID_Open_Face): Renamed to...
7175	(cid_face_open): This.
7176	* src/cid/cidobjs.c (CID_GlyphSlot_{Done,Init}): Renamed to...
7177	(cid_slot_{done,init}): This.
7178	(CID_Size_{Get_Globals_Funcs,Done,Reset): Renamed to...
7179	(cid_size_{get_globals_funcs,done,reset): This.
7180	(CID_Face_{Done,Init}): Renamed to...
7181	(cid_face_{done,init}): This.
7182	(CID_Driver_{Done,Init}: Renamed to...
7183	(cid_driver_{done,init}: This.
7184	* src/cid/cidparse.c (CID_{New,Done}_Parser): Renamed to...
7185	(cid_parser_{new,done}): This.
7186	* src/cid/cidparse.h (CID_Skip_{Spaces,Alpha}): Renamed to...
7187	(cid_parser_skip_{spaces,alpha}): This.
7188	(CID_To{Int,Fixed,CoordArray,FixedArray,Token,TokenArray}): Renamed
7189	to...
7190	(cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}):
7191	This.
7192	(CID_Load_{Field,Field_Table): Renamed to...
7193	(cid_parser_load_{field,field_table}): This.
7194	* src/cid/cidriver.c (CID_Get_Interface): Renamed to...
7195	(cid_get_interface): This.
7196
7197	Updated all affected code.
7198
7199	* src/psaux/psobjs.c (PS_Table_*): Renamed to...
7200	(ps_table_*): This.
7201	(T1_Builder_*): Renamed to...
7202	(t1_builder_*): This.
7203	* src/psaux/t1decode.c (T1_Decoder_*): Renamed to...
7204	(t1_decoder_*): This.
7205
7206	* src/psnames/psmodule.c (PS_*): Renamed to...
7207	(ps_*): This.
7208
7209	Updated all affected code.
7210
7211	* src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to...
7212	(sfnt_get_interface): This.
7213	* src/sfnt/sfobjs.c (SFNT_*): Renamed to...
7214	(sfnt_*): This.
7215	* src/sfnt/ttcmap.c (TT_CharMap_{Load,Free}): Renamed to...
7216	(tt_face_{load,free}_charmap): This.
7217	* src/sfnt/ttcmap0.c (TT_Build_CMaps): Renamed to...
7218	(tt_face_build_cmaps): This.
7219	* src/sfnt/ttload.c (TT_*): Renamed to...
7220	(tt_face_*): This.
7221	* src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to...
7222	(tt_post_default_names): This.
7223	(Load_*): Renamed to...
7224	(load_*): This.
7225	(TT_*): Renamed to...
7226	(tt_face_*): This.
7227	* src/sfnt/ttsbit.c (TT_*): Renamed to...
7228	(tt_face_*): This.
7229	({Find,Load,Crop}_*): Renamed to...
7230	({find,load,crop}_*): This.
7231
7232	Updated all affected code.
7233
7234	* src/smooth/ftsmooth.c (ft_smooth_render): Renamed to...
7235	(ft_smooth_render_generic): This.
7236	Make function more generic by adding vertical and horizontal scaling
7237	factors.
7238	(ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v):
7239	New functions.
7240
7241	(ft_smooth_lcd_renderer_class, ft_smooth_lcdv_renderer_class): New
7242	classes.
7243
7244	* src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to...
7245	(tt_glyphzone_{done,new}): This.
7246	(TT_{Face,Size,Driver}_*): Renamed to...
7247	(tt_{face,size,driver}_*): This.
7248	* src/truetype/ttpload.c (TT_Load_Locations): Renamed to...
7249	(tt_face_load_loca): This.
7250	(TT_Load_Programs): Renamed to...
7251	(tt_face_load_fpgm): This.
7252	(TT_*): Renamed to...
7253	(tt_face_*): This.
7254
72552002-08-27  Werner Lemberg  <wl@gnu.org>
7256
7257	* docs/VERSION.DLL: New file.
7258
72592002-08-23  Graham Asher  <graham.asher@btinternet.com>
7260
7261	* src/cff/cffgload.c (cff_operator_seac)
7262	[FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts (actually not
7263	incremental in the case of CFF but just using callbacks to get glyph
7264	recipes) pass the character code, not the glyph index, to the
7265	get_glyph_data function; they have no valid charset table.
7266
7267	* src/cff/cffload.c (cff_font_load): Removed special cases for
7268	FT_CONFIG_OPTION_INCREMENTAL, which are no longer necessary; CFF
7269	fonts provided via the incremental interface now have to conform
7270	more closely to the CFF font format.
7271
7272	* src/cff/cffload.h (cff_font_load): Removed argument now unneeded.
7273
7274	* src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load
7275	to conform with new signature.
7276
72772002-08-22  David Turner  <david@freetype.org>
7278
7279	* src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
7280	src/bdf/bdfdrivr.c: Removed compiler warnings.
7281
72822002-08-21  Werner Lemberg  <wl@gnu.org>
7283
7284	* src/pshinter/pshalgo3.c (psh3_glyph_compute_inflections,
7285	psh3_glyph_compute_extrema, psh3_hint_table_find_strong_point): Fix
7286	compiler warnings and resolve shadowing of local variables.
7287
72882002-08-21  David Turner  <david@freetype.org>
7289
7290	The automatic and Postscript hinter now automatically detect
7291	inflection points in glyph outlines and treats them specially.  This
7292	is very useful to prevent nasty effect like the disappearing
7293	diagonals of `S' and `s' in many, many fonts.
7294
7295	* src/autohint/ahtypes.h (ah_flag_inflection): New macro.
7296	* src/autohint/ahangles.c (ah_angle_diff): New function.
7297	* src/autohint/ahangles.h: Updated.
7298	* src/autohint/ahglyph.c (ah_outline_compute_inflections): New
7299	function.
7300	(ah_outline_detect_features): Use it.
7301	* src/autohint/ahhint.c (ah_hinter_align_strong_points)
7302	[!AH_OPTION_NO_WEAK_INTERPOLATION]: Handle inflection.
7303
7304	* src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py,
7305	src/tools/docmaker/tohtml.py: Updating the DocMaker tool.
7306
7307	* include/freetype/freetype.h: Changing the type of the `load_flags'
7308	parameter from `FT_Int' to `FT_Int32', this in order to support more
7309	options.  This should only break binary and/or source compatibility
7310	on 16-bit platforms (Atari?).
7311	(FT_LOAD_NO_AUTOHINT): New macro.
7312
7313	* src/base/ftobjs.c (FT_Load_Glyph): Updated.
7314	Handle FT_LOAD_NO_AUTOHINT.
7315	(FT_Load_Char): Updated.
7316
7317	* src/pshinter/pshalgo3.c, src/base/ftobjs.c, src/base/ftobject.c,
7318	src/autohint/ahglyph.c, include/freetype/freetype.h: Fixing typos
7319	and removing compiler warnings.
7320
73212002-08-20  Werner Lemberg  <wl@gnu.org>
7322
7323	* src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0.
7324
73252002-08-20  David Turner  <david@freetype.org>
7326
7327	* src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
7328	src/pshinter/pshglob.c, src/pshinter/pshrec.c,
7329	src/autohint/ahmodule.c [DEBUG_HINTER]: Removing compiler warnings
7330	(only used in development builds anyway).
7331
7332	Improve support of local extrema and stem edge points.
7333
7334	* src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec
7335	for `zones'.
7336	(PSH3_DIR_UP, PSH3_DIR_DOWN): Exchange values.
7337	(PSH3_DIR_HORIZONTAL, PSH3_DIR_VERTICAL): New macros.
7338	(PSH3_DIR_COMPARE, PSH3_DIR_IS_HORIZONTAL, PSH3_IS_VERTICAL): New
7339	macros.
7340	(PSH3_POINT_INFLEX): New enum.
7341	(psh3_point_{is,set}_{off,inflex}): New macros.
7342	(PSH3_POINT_{EXTREMUM,POSITIVE,NEGATIVE,EDGE_MIN,EDGE_MAX): New
7343	enum values.
7344	(psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}):
7345	New macros.
7346	(PSH3_PointRec): New members `flags2' and `org_v'.
7347	(PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros.
7348
7349	* src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler
7350	warnings.
7351	(COMPUTE_INFLEXS): New macro.
7352	(psh3_hint_align): Simplify some basic arithmetic computations.
7353	(psh3_point_is_extremum): Removed.
7354	(psh3_glyph_compute_inflections) [COMPUTE_INFLEXS]: New function.
7355	(psh3_glyph_init) [COMPUTE_INFLEXS]: Use it.
7356	(psh3_glyph_compute_extrema): New function.
7357	(PSH3_STRONG_THRESHOLD): Increased to 30.
7358	(psh3_hint_table_find_strong_point): Improved.
7359	(psh3_glyph_find_strong_points,
7360	psh3_glyph_interpolate_strong_points): Updated.
7361	(psh3_hints_apply): Use psh3_glyph_compute_extrema.
7362
7363	* test/gview.c (draw_ps3_hint, ps3_draw_control_points): New
7364	functions.
7365	Other small updates.
7366
7367	* Jamfile: Small updates.
7368
73692002-08-18  Arkadiusz Miskiewicz  <misiek@pld.ORG.PL>
7370
7371	* builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to
7372	make life easier for package maintainers.
7373
73742002-08-18  Werner Lemberg  <wl@gnu.org>
7375
7376	* src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of
7377	horiBearingX.
7378	* src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix computation of
7379	horiBearingY.
7380
73812002-08-16  George Williams  <gww@silcom.com>
7382
7383	Add support for Apple composite glyphs.
7384
7385	* include/freetype/config/ftoption.h
7386	(TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro.
7387
7388	* src/truetype/ttgload.c (OVERLAP_COMPOUND, SCALED_COMPONENT_OFFSET,
7389	UNSCALED_COMPONENT_OFFSET): New macros for additional OpenType
7390	glyph loading flags.
7391	(load_truetype_glyph): Implement it.
7392
73932002-08-16  Werner Lemberg  <wl@gnu.org>
7394
7395	* src/cff/cffgload.c (cff_free_glyph_data),
7396	src/cff/cffload.c (cff_font_load): Use FT_UNUSED.
7397
73982002-08-15  Werner Lemberg  <wl@gnu.org>
7399
7400	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'.
7401	* src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning.
7402
74032002-08-15  Graham Asher  <graham.asher@btinternet.com>
7404
7405	Implemented the incremental font loading system for the CFF driver.
7406	Tested using the GhostScript-to-FreeType bridge (under development).
7407
7408	* src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New
7409	functions.
7410	(cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use
7411	them.
7412	* src/cff/cffload.c (cff_font_load): Add `face' parameter.
7413	Load charset and encoding only if there are glyphs.
7414	[FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts don't need
7415	character recipes.
7416	* src/cff/cffload.h, src/cff/cffobjs.c: Updated.
7417
7418	* src/cid/cidgload.c (cid_load_glyph)
7419	[FT_CONFIG_OPTION_INCREMENTAL]: Corrected the incremental font
7420	loading implementation to use the new system introduced on
7421	2002-08-01.
7422
74232002-08-06  Werner Lemberg  <wl@gnu.org>
7424
7425	* src/cff/cffcmap.c: Remove compiler warnings.
7426	* src/cache/ftccache.c, src/cache/ftccache.i,
7427	src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
7428	* src/cff/cffload.c: s/select/fdselect/.
7429	* src/raster/ftraster.c: s/wait/waiting/.
7430
74312002-08-01  Graham Asher  <graham.asher@btinternet.com>
7432
7433	* src/type1/t1load.c (T1_Open_Face): Tolerate a face with no
7434	charstrings if there is an incremental loading interface.  Type 1
7435	faces supplied by PostScript interpreters like GhostScript will
7436	typically not provide any charstrings at load time, so this is
7437	essential if they are to work.
7438
74392002-08-01  Graham Asher  <graham.asher@btinternet.com>
7440
7441	Modified incremental loading interface to be closer to David's
7442	preferences.  The header freetype.h is not now affected, the
7443	interface is specified via an FT_Parameter, the pointer to the
7444	interface is hidden in an internal part of the face record, and all
7445	the definitions are in ftincrem.h.
7446
7447	* include/freetype/freetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
7448	Removed.
7449	* include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]:
7450	Include FT_INCREMENTAL_H.
7451	(FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add
7452	`incremental_interface'.
7453
7454	* src/base/ftobjs.c (open_face, FT_Open_Face)
7455	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7456	* src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
7457	Updated.
7458
7459	* src/truetype/ttgload.c (load_truetype_glyph)
7460	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7461	Free loaded glyph data properly.
7462	(compute_glyph_metrics, TT_Load_Glyph)
7463	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7464	* src/truetype/ttobjs.c (TT_Face_Init)
7465	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7466
7467	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
7468	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7469	(T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7470	Free loaded glyph data properly.
7471	(T1_Load_Glyph): Updated.
7472	[FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly.
7473
74742002-07-30  David Turner  <david@freetype.org>
7475
7476	* include/freetype/ftincrem.h: Adding new experimental header file
7477	to demonstrate a `cleaner' API to support incremental font loading.
7478
7479	* include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
7480
7481	* src/tools/docmaker/*: Adding new (more advanced) version of
7482	the DocMaker tool, using Python's sophisticated regexps.
7483
74842002-07-28  Werner Lemberg  <wl@gnu.org>
7485
7486	s/ft_memset/FT_MEM_SET/.
7487	s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate.
7488
74892002-07-27  Werner Lemberg  <wl@gnu.org>
7490
7491	* src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
7492
74932002-07-26  Werner Lemberg  <wl@gnu.org>
7494
7495	* src/truetype/ttgload.c (load_truetype_glyph)
7496	[FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/.
7497
7498	* src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning.
7499	* src/cff/cffload.c (cff_encoding_load): Remove `memory' variable.
7500	* src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames'
7501	variable.
7502	* src/truetype/ttgload.c (load_truetype_glyph): Remove statement
7503	without effect.
7504	* src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
7505
7506	* src/pshinter/pshalgo3.c (psh3_hint_table_record,
7507	psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error
7508	message.
7509
75102002-07-24  Graham Asher  <graham.asher@btinternet.com>
7511
7512	* src/truetype/ttobjs.c: Fix for bug reported by Sven Neumann
7513	[sven@gimp.org] on the FreeType development forum: `If
7514	FT_CONFIG_OPTION_INCREMENTAL is undefined (this is the default), the
7515	TrueType loader crashes in line 852 of src/truetype/ttgload.c when
7516	it tries to access face->glyph_locations.'
7517
75182002-07-18  Graham Asher  <graham.asher@btinternet.com>
7519
7520	Added types and structures to support incremental typeface loading.
7521	The FT_Incremental_Interface structure, defined in freetype.h, is
7522	designed to be passed to FT_Open_Face to provide callback functions
7523	to obtain glyph recipes and metrics, for fonts like those passed
7524	from PostScript that do not necessarily provide all, or any, glyph
7525	information, when first opened.
7526
7527	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
7528	New configuration macro to enable incremental face loading.  By
7529	default it is not defined.
7530
7531	* include/freetype/freetype.h (FT_Basic_Glyph_Metrics,
7532	FT_Get_Glyph_Data_Func, FT_Get_Glyph_Metrics_Func,
7533	FT_Incremental_Interface_Funcs, FT_Incremental_Interface)
7534	[FT_CONFIG_OPTION_INCREMENTAL]: New.
7535	(FT_Open_Args, FT_FaceRec) [FT_CONFIG_OPTION_INCREMENTAL]: New field
7536	`incremental_interface'.
7537	(FT_Open_Flags) [FT_CONFIG_OPTION_INCREMENTAL]: New enum
7538	`ft_open_incremental'.
7539
7540	* include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H.
7541	(FT_Data): New structure to represent binary data.
7542
7543	* src/base/ftobjs.c (open_face) [FT_CONFIG_OPTION_INCREMENTAL]:
7544	Add parameter for incremental loading.
7545	(FT_Open_Face) [FT_CONFIG_OPTION_INCREMENTAL]: Use incremental
7546	interface.
7547
7548	* src/truetype/ttgload.c (load_truetype_glyph)
7549	[FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
7550	for the TrueType driver.
7551	(compute_glyph_metrics): Return FT_Error.
7552	[FT_CONFIG_OPTION_INCREMENTAL]: Check for overriding metrics.
7553	(TT_Load_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Don't look for
7554	the glyph table while handling an incremental font.
7555	Get glyph offset.
7556
7557	* src/truetype/ttobjs.c (TT_Face_Init)
7558	[FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading
7559	system for the TrueType driver.
7560
7561	* src/cid/cidgload.c (cid_load_glyph)
7562	[FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
7563	for the CID driver.
7564
7565	* src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
7566	Changes to support incremental Type 42 fonts: Assume a font has
7567	glyphs if it has an incremental interface object.
7568
7569	* src/type1/t1gload.c (T1_Parse_Glyph): Renamed to...
7570	(T1_Parse_Glyph_And_Get_Char_String): This.
7571	[FT_CONFIG_OPTION_INCREMENTAL]: Added support for incrementally
7572	loaded Type 1 faces.
7573	(T1_Parse_Glyph): New function.
7574	(T1_Load_Glyph): Updated.
7575
75762002-07-17  David Turner  <david@freetype.org>
7577
7578	Cleaning up the cache sub-system code; linear hashing is now the
7579	default.
7580
7581	* include/freetype/cache/ftccache.h, src/cache/ftccache.i,
7582	src/cache/ftccache.c [!FTC_CACHE_USE_LINEAR_HASHING]: Removed.
7583	(FTC_CACHE_USE_LINEAR_HASHING): Removed also.
7584
7585	FT_CONFIG_OPTION_USE_CMAPS is now the default.
7586
7587	* include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove
7588	`get_char_index' and `get_next_char'.
7589
7590	* include/freetype/config/ftoption.h,
7591	include/freetype/internal/tttypes.h, src/base/ftobjs.c,
7592	src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c,
7593	src/pfr/pfrdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
7594	src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c,
7595	src/type42/t42objs.c, src/winfonts/winfnt.c
7596	[!FT_CONFIG_OPTION_USE_CMAPS]: Removed.  The new cmap code is now
7597	the default.
7598
7599	* src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext):
7600	Removed.
7601	* src/type42/t42objs.h: Updated.
7602
7603	* src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char):
7604	Removed.
7605	(t1cid_driver_class): Updated.
7606	* src/truetype/ttdriver.c (tt_driver_class): Updated.
7607	* src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Removed
7608	(t1_driver_class): Updated.
7609	* src/type42/t42drivr.c (t42_driver_class): Updated.
7610
7611	* src/base/ftobjs.c (open_face): Select Unicode cmap by default.
7612
7613	* src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that
7614	prevented OpenType fonts to be recognized by FreeType.
7615
76162002-07-11  David Turner  <david@freetype.org>
7617
7618	Changing the SFNT loader to check for SFNT-based font files
7619	differently.  We now ignore the range `helper' fields and check the
7620	`head' table's magic number instead.
7621
7622	* include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset'
7623	field.
7624
7625	* src/sfnt/ttload.c (sfnt_dir_check): New function.
7626	(TT_Load_SFNT_HeaderRec): Renamed to...
7627	(TT_Load_SFNT_Header): This.
7628	Implement new functionality.
7629	* src/sfnt/ttload.h: Updated.
7630	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
7631
7632	* src/base/ftobject.c, src/base/fthash.c: Updated object sub-system
7633	and dynamic hash table implementation (still experimental, don't
7634	use).
7635	* include/freetype/internal/fthash.h: Updated.
7636	* include/freetype/internal/ftobjs.h (FT_LibraryRec): New member
7637	`meta_class'.
7638
7639	Fixing a bug in the Type 1 loader that prevented valid font bounding
7640	boxes to be loaded from multiple master fonts.
7641
7642	* include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field.
7643
7644	* include/freetype/internal/psaux.h (T1_FieldType): Add
7645	`T1_FIELD_TYPE_BBOX'.
7646	(T1_FieldLocation): Add `T1_FIELD_LOCATION_BBOX'.
7647	(T1_FIELD_BBOX): New macro.
7648
7649	* src/psaux/psobjs.c (PS_Parser_LoadField): Handle T1_FIELD_TYPE_BBOX.
7650	* src/type1/t1load.c (t1_allocate_blend): Create blend->bboxes.
7651	(T1_Done_Blend): Free blend->bboxes.
7652	(t1_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
7653	(parse_font_bbox): Commented out.
7654	(t1_keywords): Comment out `parse_font_bbox'.
7655	* src/type1/t1tokens.h: Define `FontBBox' field.
7656
76572002-07-10  David Turner  <david@freetype.org>
7658
7659	* src/cff/cffobjs.c: Small fix to select the Unicode charmap by
7660	default when needed.
7661	Small fix to allow OpenType fonts to support Adobe charmaps when
7662	needed.
7663
7664	* src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support
7665	charmaps for CFF fonts.
7666
7667	* src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated.
7668
7669	* include/freetype/internal/cfftypes.h (CFF_EncodingRec): Use
7670	fixed-length arrays for `sids' and `codes'.  Add `count' member.
7671	(CFF_FontRec): Add `psnames' member.
7672
7673	* src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffload.h,
7674	src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
7675	src/cffparse.h, src/cff/cffgload.c, src/cff/cffgload.h: Adding
7676	support for CFF charmaps, reformatting the sources, and removing
7677	some bugs in the Encoding and Charset loaders.
7678	Many fonts renamed to use lowercase only:
7679
7680	  CFF_Builder_Init -> cff_builder_init
7681	  CFF_Builder_Done -> cff_builder_done
7682	  CFF_Init_Decoder -> cff_decoder_init
7683	  CFF_Parse_CharStrings -> cff_decoder_parse_charstrings
7684	  CFF_Load_Glyph -> cff_slot_load
7685	  CFF_Init_Decoder -> cff_decoder_init
7686	  CFF_Prepare_Decoder -> cff_decoder_prepare
7687	  CFF_Get_Standard_Encoding -> cff_get_standard_encoding
7688	  CFF_Access_Element -> cff_index_access_element
7689	  CFF_Forget_Element -> cff_index_forget_element
7690	  CFF_Get_Name -> cff_index_get_name
7691	  CFF_Get_String -> cff_index_get_sid_string
7692	  CFF_Get_FD -> cff_fd_select_get
7693	  CFF_Done_Charset -> cff_charset_done
7694	  CFF_Load_Charset -> cff_charset_load
7695	  CFF_Done_Encoding -> cff_encoding_done
7696	  CFF_Load_Encoding -> cff_encoding_load
7697	  CFF_Done_SubFont -> cff_subfont_done
7698	  CFF_Load_Font -> cff_font_load
7699	  CFF_Done_Font -> cff_font_done
7700	  CFF_Size_Get_Globals_Funcs -> cff_size_get_globals_funcs
7701	  CFF_Size_Done -> cff_size_done
7702	  CFF_Size_Init -> cff_size_init
7703	  CFF_Size_Reset -> cff_size_reset
7704	  CFF_GlyphSlot_Done -> cff_slot_done
7705	  CFF_GlyphSlot_Init -> cff_slot_init
7706	  CFF_StrCopy -> cff_strcpy
7707	  CFF_Face_Init -> cff_face_init
7708	  CFF_Face_Done -> cff_face_done
7709	  CFF_Driver_Init -> cff_driver_init
7710	  CFF_Driver_Done -> cff_driver_done
7711	  CFF_Parser_Init -> cff_parser_init
7712	  CFF_Parser_Run -> cff_parser_run
7713
7714	  add_point -> cff_builder_add_point
7715	  add_point1 -> cff_builder_add_point1
7716	  add_contour -> cff_builder_add_contour
7717	  close_contour -> cff_builder_close_contour
7718	  cff_explicit_index -> cff_index_get_pointers
7719
77202002-07-09  Owen Taylor  <owen@redhat.com>
7721
7722	* src/pshinter/pshglob.c (psh_globals_new): Fixed a bug that
7723	prevented the hinter from using correct standard width and height
7724	values, resulting in hinting bugs with certain fonts (e.g. Utopia).
7725
77262002-07-07  David Turner  <david@freetype.org>
7727
7728	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Added code to return
7729	successfully when the function is called with a bitmap glyph (the
7730	previous code simply returned with an error).
7731
7732	* docs/DEBUG.TXT: Adding debugging support documentation.
7733
7734	* src/base/ftdebug.c (ft_debug_init), builds/win32/ftdebug.c
7735	(ft_debug_init), builds/amiga/src/ftdebug.c (ft_debug_init): Changed
7736	the syntax of the FT2_DEBUG environment variable used to control
7737	debugging output (i.e. logging and error messages).  It must now
7738	look like:
7739
7740	  any:6 memory:4 io:3   or
7741	  any:6,memory:4,io:3   or
7742	  any:6;memory:4;io:3
7743
77442002-07-07  Owen Taylor  <owen@redhat.com>
7745
7746	* src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for
7747	blue fuzz.
7748	* src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field.
7749	* src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'.
7750
7751	Adding support for hinter-specific bit flags, and the new
7752	FT_Set_Hint_Flags high-level API.
7753
7754	* include/freetype/freetype.h (FT_Set_Hint_Flags): New function.
7755	(FT_HINT_NO_INTEGER_STEM, FT_HINT_NO_HSTEM_ALIGN,
7756	FT_HINT_NO_VSTEM_ALIGN): New macros.
7757
7758	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
7759	`hint_flags' member.
7760
7761	* src/base/ftobjs.c (FT_Set_Hint_Flags): New function.
7762
7763	* include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags'
7764	member.
7765
7766	* include/freetype/internal/pshints.h (T1_Hints_ApplyFunc,
7767	T2_Hints_ApplyFunc): Add parameter to pass hint flags.
7768
7769	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings,
7770	T1_Decoder_Init): Use decoder->hint_flags.
7771	* src/cff/cffgload.h (CFF_Builder): Add `hint_flags' field.
7772	* src/cff/cffgload.c (CFF_Builder_Init): Set builder->hint_flags.
7773	(CFF_Parse_CharStrings): Updated.
7774	* src/pshinter/pshalgo1.c (ps1_hints_apply): Add parameter to handle
7775	hint flags (unused).
7776	* src/pshinter/pshalgo1.h: Updated.
7777	* src/pshinter/pshalgo2.c (ps2_hints_apply): Add parameter to handle
7778	hint flags (unused).
7779	* src/pshinter/pshalgo2.h: Updated.
7780	* src/pshinter/pshalgo3.c (ps3_hints_apply): Add parameter to handle
7781	hint flags.
7782	* src/pshinter/pshalgo3.h: Updated.
7783
77842002-07-04  David Turner  <david@freetype.org>
7785
7786	* src/pfr/pfrobjs.c (pfr_slot_load): Fixed a small bug that returned
7787	incorrect advances when the outline resolution was different from
7788	the metrics resolution.
7789
7790	* src/autohint/ahhint.c: Removing compiler warnings.
7791
7792	* src/autohint/ahglyph.c: s/FT_MEM_SET/FT_ZERO/ where appropriate.
7793	(ah_outline_link_segments): Slight improvements to the serif
7794	detection code.  More work is needed though.
7795
77962002-07-03  David Turner  <david@freetype.org>
7797
7798	Small improvements to the automatic hinter.  Uneven stem-widths have
7799	now disappeared and everything looks much better, even if there are
7800	still issues with serifed fonts.
7801
7802	* src/autohint/ahtypes.h (AH_Globals): Added `stds' array.
7803	* src/autohint/ahhint.c (OPTIM_STEM_SNAP): New #define.
7804	(ah_snap_width): Commented out.
7805	(ah_align_linked_edge): Renamed to...
7806	(ah_compute_stem_width): This.
7807	Don't allow uneven stem-widths.
7808	(ah_align_linked_edge): New function.
7809	(ah_align_serifed_edge): Don't strengthen serifs.
7810	(ah_hint_edges_3, ah_hinter_scale_globals): Updated.
7811
78122002-07-03  Owen Taylor  <owen@redhat.com>
7813
7814	Adding new algorithm based on Owen Taylor's recent work.
7815
7816	* src/pshinter/pshalgo3.c, src/pshinter/pshalgo3.h: New files.
7817	* src/pshinter/pshalgo.h: Updated.
7818	Use pshalgo3 by default.
7819	* src/pshinter/pshinter.c: Include pshalgo3.c.
7820
7821	* src/pshinter/Jamfile, src/pshinter/rules.mk: Updated.
7822
78232002-07-01  Owen Taylor  <owen@redhat.com>
7824
7825	* src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points): Fix a bug
7826	where, if a glyph has more than hint mask, the second mask gets
7827	applied to points that should have been covered by the first mask.
7828
78292002-07-01  Keith Packard  <keithp@keithp.com>
7830
7831	* src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next):
7832	Fixing the cmap 8 and 12 parsing routines.
7833
78342002-07-01  David Turner  <david@freetype.org>
7835
7836	* src/base/ftsynth.c: Include FT_TRIGONOMETRY_H.
7837	(FT_Outline_Embolden): Renamed to...
7838	(FT_GlyphSlot_Embolden): This.
7839	Updated to new trigonometric functions.
7840	(FT_Outline_Oblique): Renamed to...
7841	(FT_GlyphSlot_Oblique): This.
7842	(ft_norm): Removed.
7843	* include/freetype/ftsynth.h: Updated.
7844
78452002-06-26  David Turner  <david@freetype.org>
7846
7847	* include/freetype/internal/ftobject.h: Updating the object
7848	sub-system definitions (still experimental).
7849
7850	* src/base/fthash.c (ft_hash_remove): Fixing a small reallocation
7851	bug.
7852
7853	* src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New
7854	functions.
7855	* include/freetype/fttrigon.h: Updated.
7856
7857
7858	Adding path stroker component (work in progress).
7859
7860	* include/freetype/ftstroker.h, src/base/ftstroker.c: New files.
7861	* src/base/Jamfile: Updated.
7862
7863	* include/freetype/config/ftheader.h (FT_STROKER_H): New macro.
7864
7865
7866	* src/truetype/ttgload.c (TT_Load_Composite_Glyph),
7867	src/base/ftoutln.c (FT_Vector_Transform): Fixed Werner's latest fix.
7868	FT_Vector_Transform wasn't buggy, the TrueType composite loader was.
7869
78702002-06-24  Werner Lemberg  <wl@gnu.org>
7871
7872	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
7873
78742002-06-21  David Turner  <david@freetype.org>
7875
7876
7877	* Version 2.1.2 released.
7878	=========================
7879
7880
78812002-06-21  Roberto Alameda  <ojancano@geekmail.de>.
7882
7883	* include/freetype/internal/t42types.h (T42_Font): Removed since
7884	it is already in t42objs.h.
7885	(T42_Face): Use T1_FontRec.
7886
7887	* src/base/fttype1.c (FT_Get_PS_Font_Info): Updated.
7888	(FT_Has_PS_Glyph_Names): Check for type42 driver name also.
7889	* src/type42/t42objs.h: Include FT_INTERNAL_TYPE42_TYPES_H.
7890	(T42_Face): Removed since it is already in t42types.h.
7891
78922002-06-21  Detlef Würkner  <TetiSoft@apg.lahn.de>
7893
7894	* src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite
7895	glyphs.
7896
78972002-06-21  Sven Neumann  <sven@convergence.de>
7898
7899	* src/pfr/pfrtypes.h (PFR_KernPair): New structure.
7900	(PFR_PhyFont): Use it.
7901	(PFR_KernFlags): New enumeration.
7902	* src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): New
7903	function.
7904	(pfr_phy_font_extra_items): Use it.
7905	(pfr_phy_font_done): Updated.
7906	* src/pfr/pfrobjs.c (pfr_face_init): Set kerning flag conditionally.
7907	(pfr_face_get_kerning): New function.
7908	* src/pfr/pfrobjs.h: Updated.
7909	* src/pfr/pfrdrivr.c (pfr_driver_class): Updated.
7910
79112002-06-21  David Turner  <david@freetype.org>
7912
7913	* README, docs/CHANGES: Preparing the 2.1.2 release.
7914
79152002-06-19  Detlef Würkner  <TetiSoft@apg.lahn.de>
7916
7917	* src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H.
7918	(t1_face_check_cast): Removed.
7919	(FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers
7920	also.
7921
79222002-06-19  Sebastien BARRE  <http://barre.nom.fr/contact.html#email>
7923
7924	* src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning.
7925
79262002-06-19  Werner Lemberg  <wl@gnu.org>
7927
7928	* src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo
7929	(xy <-> yx).
7930	* src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with
7931	`||' to make code easier to read.
7932
79332002-06-18  Roberto Alameda  <ojancano@geekmail.de>.
7934
7935	* src/type42/t42objs.c (t42_check_size_change): Removed.
7936	(T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size
7937	instead.
7938	(T42_GlyphSlot_Load): Remove call to t42_check_size_change.
7939
79402002-06-18  Detlef Würkner  <TetiSoft@apg.lahn.de>
7941
7942	* src/psaux/t1cmap.c (t1_cmap_custom_char_index,
7943	t1_cmap_custom_char_next): Fix index computation -- indices start
7944	with 0 and not with cmap->first.
7945
7946	Provide default charmaps.
7947
7948	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
7949	(PCF_Face_Init), src/pfr/pfrobjs.c (pfr_face_init),
7950	src/type1/t1objs (T1_Face_Init), src/winfonts/winfnt.c
7951	(FNT_Face_Init): Implement it.
7952
79532002-06-17  Sven Neumann  <sven@gimp.org>
7954
7955	* src/pfr/pfrobjs.c (pfr_face_init): Fix typo.
7956
79572002-06-16  Leonard Rosenthol  <leonardr@lazerware.com>
7958
7959	Updated Win32/VC++ projects to include the new PFR driver.
7960
7961	* builds/win32/visualc/freetype.dsp: Updated.
7962
79632002-06-16  Anthony Fok  <fok@debian.org>
7964
7965	Install freetype2.m4.
7966
7967	* builds/unix/install.mk (install, uninstall): Handle it.
7968
79692002-06-16  Detlef Würkner  <TetiSoft@apg.lahn.de>
7970
7971	Same fix for PFR driver.
7972
7973	* src/pfr/pfrcmap.c (pfr_cmap_char_index, pfr_cmap_char_next):
7974	Increase return value by 1.
7975	* src/pfr/pfrobjs.c (pfr_slot_load): Decrease index by 1.
7976
79772002-06-15  Detlef Würkner  <TetiSoft@apg.lahn.de>
7978
7979	Fix glyph indices to make index zero always the undefined glyph.
7980
7981	* src/bdf/bdfdrivr.c (bdf_cmap_init): Don't decrease
7982	cmap->num_encodings.
7983	(bdf_cmap_char_index, bdf_cmap_char_next, BDF_Get_Char_Index):
7984	Increase result by 1 for normal cases.
7985	(BDF_Glyph_Load): Decrease index by 1.
7986
7987	* src/pcf/pcfdriver.c (pcf_cmap_char_index, pcf_cmap_char_next,
7988	PCF_Char_Get_Index): Increase result by 1 for normal cases.
7989	(PCF_Glyph_Load): Decrease index by 1.
7990	* src/pcf/pcfread.c (pcf_get_encodings): Don't decrease j for
7991	allocating `encoding'.
7992
7993	* src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix
7994	bounding tests.
7995
79962002-06-14  Detlef Würkner  <TetiSoft@apg.lahn.de>
7997
7998	Add new cmap support to BDF driver.
7999
8000	* src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]:
8001	New structure.
8002	(bdf_cmap_init, bdf_cmap_done, bdf_cmap_char_index,
8003	bdf_cmap_char_next) [FT_CONFIG_OPTION_USE_CMAPS]: New functions.
8004	(BDF_Get_Char_Index) [!FT_CONFIG_OPTION_USE_CMAPS]: Use only
8005	conditionally.
8006	(BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords.
8007	Implement new cmap handling.
8008	(bdf_driver_class): Updated.
8009
80102002-06-14  Werner Lemberg  <wl@gnu.org>
8011
8012	* Makefile, configure, */*.mk, builds/unix/unix-def.in,
8013	docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/.
8014
80152002-06-12  Werner Lemberg  <wl@gnu.org>
8016
8017	* src/bdf/bdflib.c: s/FT_Short/short/ for consistency.
8018
80192002-06-11  David Turner  <david@freetype.org>
8020
8021	* builds/win32/ftdebug.c: Added a missing #endif.
8022
8023	* src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings.
8024
8025	Removed the bug in Type 42 driver that prevented un-hinted outlines
8026	to be loaded.
8027
8028	* src/type42/t42objs.c (T42_Face_Init): Call FT_Done_Size.
8029	(T42_Size_Init): Call FT_Activate_Size.
8030	(t42_check_size_change): New function.
8031	(T42_Size_SetChars, T42_Size_SetPixels): Use it.
8032	(ft_glyphslot_clear): Replace FT_MEM_SET with FT_ZERO.
8033	(T42_GlyphSlot_Load): Use t42_check_size_change.
8034	Initialize more fields of `glyph'.
8035
8036	* builds/win32/visualc/freetype.dsp: Updated.
8037
80382002-06-09  David Turner  <david@freetype.org>
8039
8040
8041	* Version 2.1.1 released.
8042	=========================
8043
8044
80452002-06-08  Juliusz Chroboczek  <jch@pps.jussieu.fr>
8046
8047	* include/freetype/internal/ftobjs.h, src/autohint/ahglyph.c,
8048	src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/smooth/ftgrays.c: Don't
8049	use `setjmp', `longjmp', and `jmp_buf' but `ft_setjmp', `ft_longjmp',
8050	and `ft_jmp_buf'.
8051	Removed direct references to <stdio.h> and <setjmp.h> when
8052	appropriate, to eventually replace them with a
8053	FT_CONFIG_STANDARD_LIBRARY_H.  Useful for the XFree86 Font Server
8054	backend based on FT2.
8055
8056	* src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value.
8057
80582002-06-08  David Turner  <david@freetype.org>
8059
8060	* src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused
8061	the function to return invalid values.
8062
8063	* src/cache/ftccache.i: Removing a typo that prevented
8064	the source's compilation.
8065
8066	* src/cache/ftccache.c (ftc_node_hash_unlink): Fixed a
8067	bug that caused nasty memory overwrites.  The hash table's
8068	buckets array wasn't correctly resized when shrunk.
8069
80702002-06-08  Detlef Würkner  <TetiSoft@apg.lahn.de>
8071
8072	* builds/amiga/smakefile, builds/amiga/makefile: Updated.
8073
80742002-06-08  Werner Lemberg  <wl@gnu.org>
8075
8076	* src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link)
8077	[FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code.
8078	Fix debugging messages.
8079	* src/cache/ftccache.i (GEN_CACHE_LOOKUP): Move declaration of
8080	`family' and `hash' up to make it compilable with g++.
8081
8082	* src/type42/t42error.h: New file.
8083	* src/type42/t42drivr.c, src/type42/t42objs.c,
8084	src/type42/t42parse.c: Use t42 error codes.
8085	* src/type42/rules.mk: Updated.
8086
8087	* src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.
8088
80892002-06-08  David Turner  <david@freetype.org>
8090
8091	* src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE,
8092	GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
8093	New macros.
8094	(ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
8095	ftc_cache_lookup.
8096	(FTC_CMapCache_Lookup): Updated.
8097
8098	Adding various experimental optimizations to the cache manager.
8099
8100	* include/freetype/cache/ftccache.h (FTC_CACHE_USE_INLINE,
8101	FTC_CACHE_USE_LINEAR_HASHING): New options.
8102	(FTC_CacheRec) [FTC_CACHE_USE_LINEAR_HASHING]: New elements `p',
8103	`mask', and `slack'.
8104
8105	* src/cache/ftccache.c (FTC_HASH_MAX_LOAD, FTC_HASH_MIN_LOAD,
8106	FTC_HASH_SUB_LOAD) [FTC_CACHE_USE_LINEAR_HASHING,
8107	FTC_HASH_INITIAL_SIZE]: New macros.
8108	(ftc_node_mru_link, ftc_node_mru_up): Optimized.
8109	(ftc_node_hash_unlink, ftc_node_hash_link)
8110	[FTC_CACHE_USE_LINEAR_HASHING]: New variants.
8111	(FTC_PRIMES_MIN, FTC_PRIMES_MAX, ftc_primes, ftc_prime_closest,
8112	FTC_CACHE_RESIZE_TEST, ftc_cache_resize)
8113	[!FTC_CACHE_USE_LINEAR_HASHING]: Define it conditionally.
8114	(ftc_cache_init, ftc_cache_clear) [FTC_CACHE_USE_LINEAR_HASHING]:
8115	Updated.
8116	(ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it.
8117
8118	* src/cache/ftccache.i: New file.
8119
8120	* src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE,
8121	GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
8122	New macros.
8123	(ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
8124	ftc_cache_lookup.
8125	(FTC_SBitCache_Lookup): Updated.
8126
8127	* src/type42/t42parse.c: Removing duplicate function.
8128
81292002-06-07  Graham Asher  <graham.asher@btinternet.com>
8130
8131	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition
8132	from FT_EXPORT_DEF to FT_BASE_DEF.
8133
81342002-06-07  David Turner  <david@freetype.org>
8135
8136	Fixed the bug that prevented the correct display of fonts with
8137	`ftview'.
8138
8139	* src/type42/t42drivr.c: Split into...
8140	* src/type42/t42drivr.h, src/type42/t42parse.c,
8141	src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c,
8142	src/type42/type42.c: New files.
8143
8144	(t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use
8145	`face->type1'.
8146
8147	(Get_Interface): Renamed to...
8148	(T42_Get_Interface): This.
8149	Updated.
8150	(T42_Open_Face, T42_Face_Done): Updated.
8151	(T42_Face_Init): Add new cmap support.
8152	Updated.
8153	(T42_Driver_Init, T42_Driver_Done, T42_Size_Init, T42_Size_Done,
8154	T42_GlyphSlot_Init, T42_GlyphSlot_Done): Updated.
8155	(Get_Char_Index, Get_Next_Char): Renamed to...
8156	(T42_CMap_CharIndex, T42_CMap_CharNext): This.
8157	Updated.
8158	(T42_Char_Size, T42_Pixel_Size): Renamed to...
8159	(T42_Size_SetChars, T42_Size_SetPixels): This.
8160	(T42_Load_Glyph): Renamed to...
8161	(T42_GlyphSlot_Load): This.
8162
8163	(t42_init_loader, t42_done_loader): Renamed to...
8164	(t42_loader_init, t42_loader_done): This.
8165	(T42_New_Parser, T42_Finalize_Parser): Renamed to...
8166	(t42_parser_init, t42_parser_done): This.
8167	(parse_dict): Renamed to...
8168	(t42_parse_dict): This.
8169	(is_alpha, is_space, hexval): Renamed to...
8170	(t42_is_alpha, t42_is_space, t42_hexval): This.
8171	(parse_font_name, parse_font_bbox, parse_font_matrix,
8172	parse_encoding, parse_sfnts, parse_charstrings, parse_dict):
8173	Renamed to...
8174	(t42_parse_font_name, t42_parse_font_bbox, t42_parse_font_matrix,
8175	t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings,
8176	t42_parse_dict): This.
8177	Updated.
8178
8179	(t42_keywords): Updated.
8180
8181	* src/type42/Jamfile, src/type42/descrip.mms: Updated.
8182
81832002-06-03  Werner Lemberg  <wl@gnu.org>
8184
8185	Add 8bpp support to BDF driver.
8186
8187	* src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp.
8188	* src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto.
8189	* src/bdf/README: Updated.
8190
81912002-06-02  Detlef Würkner  <TetiSoft@apg.lahn.de>
8192
8193	* src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array.
8194
81952002-05-29  Detlef Würkner  <TetiSoft@apg.lahn.de>
8196
8197	* src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically.
8198	(_bdf_parse_glyphs): Use correct size for allocating
8199	`font->unencoded'.
8200	(bdf_load_font): Free array conditionally.
8201	Return proper error code in case of failure.
8202	* src/bdf/bdfdrivr.c (BDF_Face_Init): Make it more robust against
8203	unusual fonts.
8204
82052002-05-29  Werner Lemberg  <wl@gnu.org>
8206
8207	* src/bdf/descrip.mms, src/type42/descrip.mms: New files.
8208	* descrip.mms (all): Updated.
8209
8210	* src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
8211	compilation.
8212	* src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.
8213
82142002-05-28  Detlef Würkner  <TetiSoft@apg.lahn.de>
8215
8216	* builds/amiga/makefile, builds/amiga/smakefile,
8217	amiga/include/freetype/config/ftmodule.h: Updated to include
8218	support for BDF and Type42 drivers.
8219
8220	* docs/modules.txt: Updated.
8221
82222005-05-28  David Turner  <david@freetype.org>
8223
8224	* docs/CHANGES: Updating file for next release (2.1.1).
8225
8226	* src/bdf/bdflib.c: Removing compiler warnings.
8227
8228	* include/freetype/ftxf86.h, src/base/ftxf86.c: New files.
8229	They provide a new API (FT_Get_X11_Font_Format) to retrieve an
8230	X11-compatible string describing the font format of a given face.
8231	This was put in a new optional base source file, corresponding to a
8232	new public header (named FT_XFREE86_H since this function should
8233	only be used within the XFree86 font server IMO).
8234
8235	* include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not
8236	documented yet).
8237
8238	* src/base/fttype1.c: New file, providing two new API functions
8239	(FT_Get_PS_Font_Info and FT_Has_PS_Glyph_Names).
8240	* include/freetype/t1tables.h: Updated.
8241
8242	* src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms:
8243	Updating build control files for the new files `ftxf86.c' and
8244	`fttype1.c' in src/base.
8245
8246	* src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that
8247	prevented family blue zones substitution from happening correctly.
8248
8249	* include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding
8250	documentation comment.
8251
82522002-05-28  Werner Lemberg  <wl@gnu.org>
8253
8254	* src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT
8255	but FT_STREAM_READ.
8256	Declare `stream' variable.
8257
8258	* src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math
8259	with calls to `FT_MulDiv'.
8260
82612002-05-28  David Turner  <david@freetype.org>
8262
8263	Fixing the SFNT name table loader to support various buggy fonts.
8264	It now ignores empty name entries, entries with invalid pointer
8265	Offsets and certain fonts containing tables with broken
8266	`storageOffset' fields.
8267
8268	Name strings are now loaded on demand, which reduces the memory
8269	requirements for a given FT_Face tremendously (for example, the name
8270	table of Arial.ttf is about 10Kb and contains 70 names).
8271
8272	This is a temporary fix.  The whole name table loader and interface
8273	will be rewritten in a much more cleanly way shortly, once CSEH have
8274	been introduced in the sources.
8275
8276	* include/freetype/internal/tttypes.h (TT_NameEntryRec): Change
8277	type of `stringOffset' to FT_ULong.
8278	(TT_NameTableRec): Change type of `numNameRecords' and
8279	`storageOffset' to FT_UInt.
8280	Replace `storage' with `stream'.
8281	* src/base/ftnames.c (FT_Get_Sfnt_Name): Load name on demand.
8282	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
8283	Make code more robust.
8284	* src/sfnt/sfobjs.c (TT_NameEntry_ConvertFunc): New typedef.
8285	(tt_face_get_name): Use it.
8286	Make code more robust.
8287	* src/sfnt/ttload.c (TT_Load_Names): Use `static' for arrays.
8288	Handle invalid `storageOffset' data better.
8289	Set length fields to zero for invalid or ignored data.
8290	Remove code within FT_DEBUG_LEVEL_TRACE.
8291	(TT_Free_Names): Updated.
8292
82932002-05-24  Tim Mooney  <enchanter@users.sourceforge.net>
8294
8295	* builds/unix/ft-munmap.m4: New file, extracted FT_MUNMAP_DECL and
8296	FT_MUNMAP_PARAM from aclocal.m4 into here, so aclocal.m4 can be
8297	rebuilt from sources.  Set macro serial to 1, and use third argument
8298	to AC_DEFINE for our two custom symbols, so ftconfig.in could one day
8299	be rebuilt with autoheader (not recommended now, ftconfig.in is a
8300	custom source file)
8301
83022002-05-22  Werner Lemberg  <wl@gnu.org>
8303
8304	* include/freetype/config/ftheader.h (FT_BEZIER_H): Removed.
8305	(FT_BDF_H): New macro for accessing `ftbdf.h'.
8306
8307	* src/type42/t42drivr.c (hexval): Fix typo.
8308
83092002-05-21  Martin Muskens  <mmuskens@aurelon.com>
8310
8311	* src/psaux/psobjs.c (T1Radix): New function.
8312	(t1_toint): Use it to handle numbers in radix format.
8313
8314	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy
8315	for undocumented, obsolete opcode 15.
8316
83172002-05-21  David Turner  <david@freetype.org>
8318
8319	* src/bdf/bdflib.c: Removed compiler warning, and changed all tables
8320	to the `static const' storage specifier (instead of simply
8321	`static').
8322
8323	* src/type42/t42drivr.c (hexval): Use more efficient code.
8324	Removing compiler warnings.
8325	* src/bdf/bdfdrivr.c: Removing compiler warnings.
8326
8327	* include/freetype/internal/ftbdf.h, src/base/ftbdf.c,
8328	src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk
8329	(FT_Get_BDF_Charset_ID): New API to retrieve BDF-specific strings
8330	from a face.  This is much cleaner than accessing the internal types
8331	`BDF_Public_Face' defined in FT_INTERNAL_BDF_TYPES_H.
8332
83332002-05-21  Werner Lemberg  <wl@gnu.org>
8334
8335	* src/bdf/README: Mention Microsoft's SBIT tool.
8336
8337	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/pcf/pcfdriver.c,
8338	src/truetype/ttdriver.c, src/type1/t1driver.c,
8339	src/winfonts/winfnt.c, src/type42/t42drivr.c, src/bdf/bdfdrivr.c
8340	[FT_CONFIG_OPTION_DYNAMIC_DRIVERS]: Completely removed.  It has
8341	been never used.
8342
83432002-05-21  Roberto Alameda  <ojancano@geekmail.de>.
8344
8345	* src/type42/t42drivr.c: s/T42_ENCODING_TYPE_/T1_ENCODING_TYPE_/.
8346	(parse_font_matrix): Remove unnecessary code.
8347	(parse_sfnts): Initialize some variables.
8348	(t42_driver_class) [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Use
8349	ft_module_driver_has_hinter conditionally.
8350	Moved some type 42 specific structure definitions to...
8351	* include/freetype/internal/t42types.h: New file.
8352	* include/freetype/internal/internal.h (FT_INTERNAL_T42_TYPES_H):
8353	New macro.
8354
83552002-05-20  Werner Lemberg  <wl@gnu.org>
8356
8357	* include/freetype/cache/ftcsbits.h (FTC_SBit): Added a new field
8358	`num_grays' for specifying the number of used gray levels.
8359	* src/cache/ftcsbits.c (ftc_sbit_node_load): Initialize it.
8360
83612002-05-19  Werner Lemberg  <wl@gnu.org>
8362
8363	Adding a driver for BDF fonts written by Francesco Zappa Nardelli
8364	<Francesco.Zappa.Nardelli@ens.fr>.  Heavily modified by me to
8365	better adapt it to FreeType, removing unneeded stuff.  Additionally,
8366	it now supports Mark Leisher's BDF extension for anti-aliased
8367	bitmap glyphs with 2 and 4 bpp.
8368
8369	* src/bdf/*: New driver.
8370	* include/freetype/internal/bdftypes.h: New file.
8371	* include/freetype/internal/fttrace.h: Added BDF driver components.
8372	* include/freetype/fterrdef.h: Added error codes for BDF driver.
8373	* include/freetype/config/ftmodule.h, src/Jamfile: Updated.
8374	* include/freetype/internal/internal.h (FT_INTERNAL_BDF_TYPES_H):
8375	New macro.
8376
8377	* include/freetype/config/ftstdlib.h (ft_sprintf): New alias for
8378	sprintf.
8379
83802002-05-18  Werner Lemberg  <wl@gnu.org>
8381
8382	* include/freetype/internal/fttrace.h: Added Type 42 driver
8383	component.
8384	* src/type42/t42drivr.c: Use it.
8385
8386	* include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H):
8387	New macro.
8388
83892002-05-17  Werner Lemberg  <wl@gnu.org>
8390
8391	* src/type42/Jamfile: New file.
8392
83932002-05-14  Werner Lemberg  <wl@gnu.org>
8394
8395	Adding a driver for Type42 fonts written by Roberto Alameda
8396	<ojancano@geekmail.de>.
8397
8398	* src/type42/*: New driver.
8399	* include/freetype/config/ftmodule.h, src/Jamfile: Updated.
8400	* include/freetype/config/ftstdlib.h (ft_xdigit, ft_memcmp,
8401	ft_atoi): New aliases for xdigit, memcmp, and atoi, respectively.
8402
84032002-05-12  Owen Taylor  <otaylor@redhat.com>
8404
8405	* src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables
8406	with a zero length value.
8407
84082002-05-12  Michael Pfeiffer  <michael.pfeiffer@utanet.at>
8409
8410	* builds/beos/beos.mk: Include `link-std.mk'.
8411
84122002-05-12  Werner Lemberg  <wl@gnu.org>
8413
8414	* src/type1/t1load.h (T1_Loader): Renamed to...
8415	(T1_LoaderRec): This.
8416	(T1_Loader): Now pointer to T1_LoaderRec.
8417	* src/type1/t1load.c: Updated.
8418
8419	* include/freetype/internal/t1types.h, src/type1/t1load.c,
8420	src/type1/t1objs.c:
8421	s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
8422
84232002-05-06  Werner Lemberg  <wl@gnu.org>
8424
8425	* README: Add a note regarding libttf vs. libfreetype.
8426
84272002-05-05  Werner Lemberg  <wl@gnu.org>
8428
8429	FreeType 2 can now be built in an external directory with the
8430	configure script also.
8431
8432	* builds/freetype.mk (INCLUDES): Add `OBJ_DIR'.
8433
8434	* builds/unix/detect.mk (have_mk): New variable to test for
8435	external build.
8436	(unix-def.mk): Defined according to value of `have_mk'.
8437	* builds/unix/unix.mk (have_mk): New variable to test for
8438	external build.
8439	Select include paths for unix-def.mk and unix-cc.mk according
8440	to value of `have_mk'.
8441	* builds/unix/unix-def.in (OBJ_BUILD): New variable.
8442	(DISTCLEAN): Use it.
8443	* builds/unix/unix-cc.in (LIBTOOL): Define default value only
8444	if not yet defined.
8445	* builds/unix/install.mk (install): Use `OBJ_BUILD' for installing
8446	freetype-config.
8447
8448	* configure: Don't depend on bash features.
8449	(ft2_dir, abs_curr_dir, abs_ft2_dir): New variables (code
8450	partially taken from Autoconf).
8451	Build a dummy Makefile if not building in source tree.
8452
8453	* docs/INSTALL: Document it.
8454
84552002-05-04  David Turner  <david@freetype.org>
8456
8457	* src/truetype/ttgload.c (TT_Load_Glyph): Finally fixing the last
8458	bug that prevented FreeType 2.x and FreeType 1.x to produce
8459	bit-by-bit identical monochrome glyph bitmaps with native TrueType
8460	hinting.  The culprit was a single-bit flag that wasn't set
8461	correctly by the TrueType glyph loader.
8462
8463	* src/otlayout/otlayout.h, src/otlayout/otlbase.c,
8464	src/otlayout/otlbase.h, src/otlayout/otlconf.h,
8465	src/otlayout/otlgdef.c, src/otlayout/otlgdef.h,
8466	src/otlayout/otlgpos.c, src/otlayout/otlgpos.h,
8467	src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
8468	src/otlayout/otljstf.c, src/otlayout/otljstf.h,
8469	src/otlayout/otltable.c, src/otlayout/otltable.h,
8470	src/otlayout/otltags.h: New OpenType Layout source files.  The
8471	module is still incomplete.
8472
84732002-05-02  Werner Lemberg  <wl@gnu.org>
8474
8475	* src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo
8476	(0xFFFU -> 0xFFFFU).
8477
84782002-05-01  Werner Lemberg  <wl@gnu.org>
8479
8480	* docs/INSTALL: Fix URL of makepp.
8481
84822002-05-01  David Turner  <david@freetype.org>
8483
8484	* src/sfnt/sfobjs.c (tt_face_get_name): Fixing a bug that caused
8485	FreeType to crash when certain broken fonts (e.g. `hya6gb.ttf')
8486	were opened.
8487
8488	* src/sfnt/ttload.c (TT_Load_Names): Applied a small work-around to
8489	manage fonts containing a broken name table (e.g. `hya6gb.ttf').
8490
8491	* src/sfnt/ttcmap0.c (tt_cmap4_validate): Fixed over-restrictive
8492	validation test.  The charmap validator now accepts overlapping
8493	ranges in format 4 charmaps.
8494
8495	* src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary
8496	search algorithm.  Certain fonts contain more than 170 distinct
8497	segments!
8498
8499	* include/freetype/config/ftstdlib.h: Adding an alias for the `exit'
8500	function.  This will be used in the near future to panic in case of
8501	unexpected exception (which shouldn't happen in theory).
8502
8503	* include/freetype/internal/fthash.h, src/base/fthash.c: New files.
8504	This is generic implementation of dynamic hash tables using a linear
8505	algorithm (to get rid of `stalls' during resizes).  In the future
8506	this will be used in at least three parts of the library: the cache
8507	sub-system, the object sub-system, and the memory debugger.
8508
8509	* src/base/Jamfile: Updated.
8510
8511	* include/freetype/internal/internal.h (FT_INTERNAL_HASH_H,
8512	FT_INTERNAL_OBJECT_H): New macros.
8513
8514	* include/freetype/internal/ftcore.h: New file to group all new
8515	definitions related to exception handling and memory management.  It
8516	is very likely that this file will disappear or be renamed in the
8517	future.
8518
8519	* include/freetype/internal/ftobject.h, include/freetype/ftsysmem.h:
8520	Adding comments to better explain the object sub-system as well as
8521	the new memory manager interface.
8522
85232002-04-30  Wenlin Institute (Tom Bishop)  <wenlin@wenlin.com>
8524
8525	* src/base/ftmac.c (p2c_str): Removed.
8526	(file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for
8527	OS X.
8528	(is_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X.
8529	Handle `nameLen' <= 6 also.
8530	(parse_fond): Remove unused variable `name_table'.
8531	Use functionality of old p2c_str directly.
8532	Add safety checks.
8533	(read_lwfn): Initialize `size_p'.
8534	Check for size_p == NULL.
8535	(new_memory_stream, open_face_from_buffer): Updated to FreeType 2.1.
8536	(FT_New_Face_From_LWFN): Remove unused variable `memory'.
8537	Remove some dead code.
8538	(FT_New_Face_From_SFNT): Remove unused variable `stream'.
8539	(FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Define only for
8540	OS X.
8541	(FT_New_Face_From_FOND): Remove unused variable `error'.
8542	(ResourceForkSize): New function.
8543	(FT_New_Face): Use it.
8544	Handle empty resource forks.
8545	Conditionalize some code for OS X.
8546	Add code to call normal loader as a fallback.
8547
85482002-04-30  Werner Lemberg  <wl@gnu.org>
8549
8550	`interface' is reserved on the Mac.
8551
8552	* include/freetype/ftoutln.h, include/freetype/internal/sfnt.h,
8553	src/base/ftoutln.c: s/interface/func_interface/.
8554	* src/base/ftbbox.c (FT_Outline_Get_BBox):
8555	s/interface/bbox_interface/.
8556	* src/cff/cffdrivr.c: s/interface/module_interface/.
8557	* src/cff/cffload.c, src/cff/cffload.h:
8558	s/interface/psnames_interface/.
8559	* src/cid/cidriver.c: s/interface/cid_interface/.
8560	* src/sfnt/sfdriver.c: s/interface/module_interface/.
8561	* src/smooth/ftgrays.c: s/interface/func_interface/.
8562	* src/truetype/ttdriver.c: s/interface/tt_interface/.
8563	* src/type1/t1driver.c: s/interface/t1_interface/.
8564
8565	Some more variable renames to avoid troubles on the Mac.
8566
8567	* src/raster/ftraster.c:
8568	s/Unknown|Ascending|Descending|Flat/\1_State/.
8569	* src/smooth/ftgrays.c: s/TScan/TCoord/.
8570
8571	Other changes for the Mac.
8572
8573	* include/freetype/config/ftconfig.h: Define FT_MACINTOSH for
8574	Mac platforms.
8575	* src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/.
8576
8577	* src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always
8578	an even number.
8579
85802002-04-29  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
8581
8582	* descrip.mms (all): Add pfr driver.
8583
85842002-04-28  Werner Lemberg  <wl@gnu.org>
8585
8586	* src/pfr/pfrerror.h: New file.
8587	* include/freetype/ftmoderr.h: Add PFR error codes.
8588	* src/pfr/pfrgload.c: Include pfrerror.h.
8589	Use PCF error codes.
8590	(pfr_extra_item_load_stem_snaps): Fix debug message.
8591	* src/pfr/pfrgload.c: Include pfrerror.h.
8592	Use PCF error codes.
8593	(pfr_extra_item_load_bitmap_info, pfr_glyph_load_simple,
8594	pfr_glyph_load_compound): Fix debug message.
8595	* src/pfr/pfrobjs.c: Include pfrerror.h.
8596	Use PCF error codes.
8597	(pfr_face_init): Return PFR_Err_Unknown_File_Format.
8598	* src/pfr/rules.mk (PFR_DRV_H): Include pfrerror.h.
8599
8600	* src/pcf/pcfdriver.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_CMAPS]:
8601	`root' -> `face->root'.
8602	* src/sfnt/ttcmap0.c (TT_Build_CMaps) [!FT_CONFIG_OPTION_USE_CMAPS]:
8603	Removed.
8604	* src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for
8605	FT_CONFIG_OPTION_USE_CMAPS.
8606
86072002-04-27  Werner Lemberg  <wl@gnu.org>
8608
8609	* src/cache/ftccache.c (ftc_cache_lookup),
8610	src/cache/ftccmap.c (ftc_cmap_family_init),
8611	src/cache/ftcmanag.c (ftc_family_table_alloc),
8612	src/cache/ftcsbits.c (FTC_SBit_Cache_Lookup): Use FTC_Err_*.
8613	src/cache/ftcimage.c (FTC_Image_Cache_Lookup): Use FTC_Err_*.
8614	(FTC_ImageCache_Lookup): Fix handling of invalid arguments.
8615
86162002-04-22  Werner Lemberg  <wl@gnu.org>
8617
8618	* builds/unix/configure.ac: Set `version_info' to 9:1:3 (FT2
8619	version 2.0.9 has 9:0:3).
8620	* builds/unix/configure: Regenerated (using autoconf 2.53).
8621
86222002-04-19  Werner Lemberg  <wl@gnu.org>
8623
8624	* src/pfr/pfrload.c (pfr_extra_items_parse): Fix debug message.
8625	(pfr_phy_font_load): s/size/Size/ for local variable to avoid
8626	compiler warning.
8627	* src/pfr/pfrobjs.c (pfr_face_init): Fix debug message.
8628	(pfr_slot_load): Remove redundant local variable.
8629
86302002-04-19  David Turner  <david@freetype.org>
8631
8632	Adding a PFR font driver to the FreeType sources.  Note that it
8633	doesn't support embedded bitmaps or kerning tables yet.
8634
8635	src/pfr/*: New files.
8636
8637	* include/freetype/config/ftmodule.h,
8638	include/freetype/internal/fttrace.h, src/Jamfile: Updated.
8639
8640	* src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c
8641	(T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback
8642	function.
8643
8644	* include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New
8645	macros.
8646
8647	* include/freetype/internal/ftstream.h (FT_NEXT_OFF3, FT_NEXT_UOFF3,
8648	FT_NEXT_OFF3_LE, FT_NEXT_UOFF3_LE): New macros to parse in-memory
8649	24-bit integers.
8650
86512002-04-18  David Turner  <david@freetype.org>
8652
8653	* src/base/ftobjs.c, builds/win32/ftdebug.c,
8654	builds/amiga/src/base/ftdebug.c: Version 2.1.0 couldn't be linked
8655	against applications in Win32 and Amiga builds due to changes to
8656	`src/base/ftdebug.c' that were not properly propagated to
8657	`builds/win32' and `builds/amiga'.  This has been fixed.
8658
8659	* include/freetype/internal/ftobject.h,
8660	include/freetype/internal/ftexcept.h, include/freetype/ftsysmem.h,
8661	include/freetype/ftsysio.h, src/base/ftsysmem.c, src/base/ftsysio.c:
8662	New experimental files.
8663
86642002-04-17  David Turner  <david@freetype.org>
8665
8666
8667	* Version 2.1.0 released.
8668	=========================
8669
8670
86712002-04-17  Michael Jansson  <mjan@em2-solutions.com>
8672
8673	* src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug
8674	that prevented the function to return the correct value.
8675
86762002-04-16  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
8677
8678	* src/pcf/pcfread.c (pcf_get_accel): Fix parsing of accelerator
8679	tables.
8680
86812002-04-15  David Turner  <david@freetype.org>
8682
8683	* docs/FTL.txt: Formatting.
8684
8685	* include/freetype/config/ftoption.h: Reduce the size of the
8686	render pool from 32kByte to 16kByte.
8687
8688	* src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler
8689	warning.
8690
8691	* include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed.
8692
8693	* docs/CHANGES: Preparing 2.1.0 release.
8694
86952002-04-13  Werner LEMBERG  <wl@gnu.org>
8696
8697	* src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid
8698	compiler warning.
8699
87002002-04-12  David Turner  <david@freetype.org>
8701
8702	* README.UNX: Updated the Unix-specific quick-compilation guide to
8703	warn about the GNU Make requirement at compile time.
8704
8705	* include/freetype/config/ftstdlib.h,
8706	include/freetype/config/ftconfig.h,
8707	include/freetype/config/ftheader.h,
8708	include/freetype/internal/ftmemory.h,
8709	include/freetype/internal/ftobjs.h,
8710
8711	src/autohint/ahoptim.c,
8712
8713	src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c,
8714	src/base/ftobjs.c, src/base/ftsystem.c,
8715
8716	src/cache/ftcimage.c, src/cache/ftcsbits.c,
8717
8718	src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffobjs.c,
8719
8720	src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
8721
8722	src/pcf/pcfdriver.c, src/pcf/pcfread.c,
8723
8724	src/psaux/t1cmap.c, src/psaux/t1decode.c,
8725
8726	src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
8727	src/pshinter/pshrec.c,
8728
8729	src/psnames/psmodule.c,
8730
8731	src/raster/ftraster.c,
8732
8733	src/sfnt/sfdriver.c, src/sfnt/ttload.c,
8734
8735	src/smooth/ftgrays.c,
8736
8737	src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c,
8738	src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c,
8739
8740	builds/unix/ftconfig.in, builds/vms/ftconfig.h,
8741
8742	builds/amiga/src/base/ftdebug.c:
8743
8744	Added the new configuration file `ftstdlib.h' used to define
8745	aliases for all ISO C library functions used by the engine
8746	(e.g. strlen, qsort, setjmp, etc.).
8747
8748	This eases the porting of FreeType 2 to environments like
8749	XFree86 modules/extensions.
8750
8751	Also removed many #include <string.h>, #include <stdlib.h>, etc.
8752	from the engine's sources where they are not needed.
8753
8754	* src/sfnt/ttpost.c: Use macro name for psnames.h.
8755
87562002-04-12  Vincent Caron  <v.caron@zerodeux.net>
8757
8758	* configure, builds/detect.mk: Updated the build system to print
8759	a warning message in case GNU Make isn't used to build the library.
8760
87612002-04-11  David Turner  <david@freetype.org>
8762
8763	* README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release.
8764
8765	* docs/FTL.txt: Updated license text to provide a preferred
8766	disclaimer and adjust copyright dates/extents.
8767
8768	* include/freetype/cache/ftcglyph.h: Removing obsolete (and
8769	confusing) comment.
8770
8771	* Jamfile.in: New file.
8772
87732002-04-11  Maxim Shemanarev  <mcseemagg@yahoo.com>
8774
8775	* src/smooth/ftgrays.c (gray_hline): Minor optimization.
8776
87772002-04-02  Werner Lemberg  <wl@gnu.org>
8778
8779	Fixes from the stable branch:
8780
8781	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
8782	Removed.
8783	[FT_CONFIG_OPTION_OLD_CALCS]: Removed.
8784	* include/freetype/internal/ftcalc.h, src/base/ftcalc.c
8785	[FT_CONFIG_OPTION_OLD_CALCS]: Removed.
8786
8787	* src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
8788	output of FreeType 1.
8789
8790	* src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
8791	bug that created un-even stem widths when hinting Postscript fonts.
8792
8793	* src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes.
8794
87952002-04-01  Werner Lemberg  <wl@gnu.org>
8796
8797	* src/truetype/ttgload.c: 16bit fixes.
8798	(TT_Load_Simple_Glyph): Improve debug messages.
8799	(load_truetype_glyph): Remove dead code.
8800	* src/truetype/ttinterp.c: 16bit fixes.
8801	* src/truetype/ttobjs.c: Ditto.
8802
8803	* include/freetype/ftsnames.h, include/freetype/internal/sfnt.h,
8804	src/cff/cffload.h, src/psaux/psobjs.h, src/truetype/ttinterp.[ch],
8805	src/sfnt/ttpost.h: s/index/idx/.
8806
88072002-03-31  Yao Zhang  <yaoz@vidar.niaaa.nih.gov>
8808
8809	* src/truetype/ttobjs.c (TT_Size_Init): Fix typo.
8810
88112002-03-31  Werner Lemberg  <wl@gnu.org>
8812
8813	* src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/.
8814	* src/psaux/t1cmap.c: Ditto.
8815	* src/sfnt/ttcmap0.c: Ditto.
8816
8817	* include/freetype/internal/tttypes.h,
8818	include/freetype/internal/sfnt.h (TT_Goto_Table_Func): Renamed to ...
8819	(TT_Loader_GotoTableFunc): This.
8820	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix debug
8821	messages.
8822	* src/psnames/psmodule.c (psnames_interface)
8823	[!FT_CONFIG_OPTION_ADOBE_GLYPH_LIST]: Fix typo.
8824	* src/sfnt/sfdriver.c (get_sfnt_table): 16bit fix.
8825	* src/sfnt/ttcmap.c: 16bit fixes (0xFFFF -> 0xFFFFU).
8826	* src/sfnt/ttcmap0.c: 16bit fixes.
8827	(TT_Build_CMaps): Simplify debug messages.
8828	(tt_cmap12_char_next): Fix offset.
8829	* src/sfnt/ttload.c (TT_Load_Names, TT_Load_CMap): Fix debug
8830	messages.
8831	(TT_Load_OS2): 16bit fix.
8832
88332002-03-30  David Turner  <david@freetype.org>
8834
8835	* include/freetype/internal/tttypes.h: Adding comments to some of
8836	the TT_FaceRec fields.
8837
8838	* src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings.
8839
8840	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}:
8841	New functions.
8842	(tt_face_get_name): Use them to properly extract an ascii font name.
8843
88442002-03-30  Werner Lemberg  <wl@gnu.org>
8845
8846	* include/freetype/t1tables.h (t1_blend_max): Fix typo.
8847	* src/base/ftstream.c: Simplify FT_ERROR calls.
8848	* src/cff/cffdrivr.c (cff_get_glyph_name): Fix debug message.
8849
8850	* src/cff/cffobjs.c (CFF_Driver_Init, CFF_Driver_Done)
8851	[TT_CONFIG_OPTION_EXTEND_ENGINE]: Removed.
8852	* src/cff/sfobjs.c (SFNT_Load_Face)
8853	[TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
8854	* src/truetype/ttobjs.c (TT_Init_Driver, TT_Done_Driver)
8855	[TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
8856
8857	* src/truetype/ttdriver.c, src/truetype/ttobjs.c,
8858	src/truetype/ttobjs.h: Renaming driver functions to the
8859	FT_<Subject>_<Action> scheme:
8860
8861	  TT_Init_Driver => TT_Driver_Init
8862	  TT_Done_Driver => TT_Driver_Done
8863	  TT_Init_Face   => TT_Face_Init
8864	  TT_Done_Face   => TT_Face_Done
8865	  TT_Init_Size   => TT_Size_Init
8866	  TT_Done_Size   => TT_Size_Done
8867	  TT_Reset_Size  => TT_Size_Reset
8868
88692002-03-29  Werner Lemberg  <wl@gnu.org>
8870
8871	* builds/vms/ftconfig.h: Rename LOCAL_DEF and LOCAL_FUNC to
8872	FT_LOCAL and FT_LOCAL_DEF, respectively, as with other ftconfig.h
8873	files.
8874	* builds/unix/ftconfig.in: Add argument to FT_LOCAL and
8875	FT_LOCAL_DEF.
8876	* src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/.
8877	* builds/unix/configure.ac: Temporarily deactivate creation of
8878	../../Jamfile.
8879	* builds/unix/configure: Updated.
8880
88812002-03-28  KUSANO Takayuki  <AE5T-KSN@asahi-net.or.jp>
8882
8883	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos.
8884
88852002-03-28  Werner Lemberg  <wl@gnu.org>
8886
8887	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix
8888	compiler warnings.
8889	* include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for
8890	some members.
8891	* src/base/ftapi.c (FT_New_Memory_Stream): Fix typos.
8892	* src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Add
8893	cast.
8894	(t1_cmap_{standard,expert,custom,unicode}_class_rec): Use
8895	`FT_CALLBACK_TABLE_DEF'.
8896	* src/psaux/t1cmap.h: Updated.
8897	* src/sfnt/ttcmap0.c (TT_Build_CMaps): Use `ft_encoding_none'
8898	instead of zero.
8899	* src/type1/t1objs.c (T1_Face_Init): Use casts.
8900
89012002-03-26  David Turner  <david@freetype.org>
8902
8903	* src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c:
8904	Fixed a small bug in the FT_CMaps support code.
8905
89062002-03-25  David Turner  <david@freetype.org>
8907
8908	* src/truetype/ttinterp.c (Norm): Replaced with...
8909	(TT_VecLen): This.
8910	(TT_MulFix14, TT_DotFix14): New functions.
8911	(Project, Dual_Project, Free_Project, Compute_Point_Displacement,
8912	Ins_SHPIX, Ins_MIAP, Ins_MIRP): Use them.
8913	[FT_CONFIG_OPTION_OLD_CALCS]: Removed all code.
8914
89152002-03-22  David Turner  <david@freetype.org>
8916
8917	* src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c:
8918	Various fixes to make the FT_CMaps support work correctly (more
8919	tests are still needed).
8920
8921	* include/freetype/internal/ftobjs.h, src/sfnt/Jamfile,
8922	src/sfnt/rules.mk, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
8923	src/sfnt/ttload.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Updated
8924	the SFNT charmap support to use FT_CMaps.
8925
8926	* include/freetype/fterrdef.h: New file.
8927	* include/freetype/fterrors.h: Include it.  It contains all error
8928	codes.
8929	* include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New
8930	macro.
8931
8932	* include/freetype/internal/ftmemory.h, and a lot of other files:
8933	Changed the names of memory macros.  Examples:
8934
8935	  MEM_Set   => FT_MEM_SET
8936	  MEM_Copy  => FT_MEM_COPY
8937	  MEM_Move  => FT_MEM_MOVE
8938
8939	  ALLOC     => FT_ALLOC
8940	  FREE      => FT_FREE
8941	  REALLOC   = >FT_REALLOC
8942
8943	FT_NEW was introduced to allocate a new object from a _typed_
8944	pointer.
8945
8946	Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by
8947	FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer
8948	arguments.
8949
8950	This results in _lots_ of sources being changed, but makes the code
8951	more generic and less error-prone.
8952
8953	* include/freetype/internal/ftstream.h, src/base/ftstream.c,
8954	src/cff/cffload.c, src/pcf/pcfread.c, src/sfnt/ttcmap.c,
8955	src/sfnt/ttcmap0.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
8956	src/sfnt/ttsbit.c, src/truetype/ttgload.c, src/truetype/ttpload.c,
8957	src/winfonts/winfnt.c: Changed the definitions of stream macros.
8958	Examples:
8959
8960	  NEXT_Byte     => FT_NEXT_BYTE
8961	  NEXT_Short    => FT_NEXT_SHORT
8962	  NEXT_UShortLE => FT_NEXT_USHORT_LE
8963	  READ_Short    => FT_READ_SHORT
8964	  GET_Long      => FT_GET_LONG
8965	  etc.
8966
8967	Also introduced the FT_PEEK_XXXX functions.
8968
8969	* src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented
8970	out function.
8971	(find_encoding): Removed.
8972	(CFF_Face_Init): Remove charmap support.
8973
8974	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_CMAPS,
8975	TT_CONFIG_CMAP_FORMAT{0,2,4,6,8,10,12}): New macros to fine-tune
8976	support of cmaps.
8977
89782002-03-21  David Turner  <david@freetype.org>
8979
8980	* src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated
8981	to new FT_CMap definitions.
8982
8983	* src/psaux/t1cmap.h, src/psaux/t1cmap.c, src/type1/t1cmap.h,
8984	src/type1/t1cmap.c: Updating and moving the Type 1 FT_CMap support
8985	from `src/type1' to `src/psaux' since it is going to be shared by
8986	the Type 1 and CID font drivers.
8987
8988	* src/psaux/Jamfile, src/psaux/psaux.c, src/psaux/psauxmod.c,
8989	src/psaux/rules.mk, include/freetype/internal/psaux.h: Added support
8990	for Type 1 FT_CMaps.
8991
89922002-03-20  David Turner  <david@freetype.org>
8993
8994	* src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a
8995	memory allocation bug that was due to un-careful renaming of the
8996	FT_SubGlyph type.
8997
8998	* src/base/ftdbgmem.c (ft_mem_table_destroy): Fixed a small bug that
8999	caused the library to crash with Electric Fence when memory
9000	debugging is used.
9001
9002	* Renaming stream macros.  Examples:
9003
9004	  FILE_Skip    => FT_STREAM_SKIP
9005	  FILE_Read    => FT_STREAM_READ
9006	  ACCESS_Frame => FT_FRAME_ENTER
9007	  FORGET_Frame => FT_FRAME_EXIT
9008	  etc.
9009
9010	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak.
9011
9012	* include/freetype/internal/ftobjs.h: Changing the definition of
9013	FT_CMap_CharNextFunc slightly.
9014
9015	* src/cff/*.c: Updating CFF type definitions.
9016
90172002-03-14  David Turner  <david@freetype.org>
9018
9019	* include/freetype/internal/autohint.h, src/autohint/ahmodule.c,
9020	src/base/ftapi.c, src/base/ftobjs.c: Updating the type definitions
9021	for the auto-hinter module.
9022
9023	  FT_AutoHinter_Interface  => FT_AutoHinter_ServiceRec
9024	  FT_AutoHinter_Interface* => FT_AutoHinter_Service
9025	  etc.
9026
9027	  FT_AutoHinter_Get_Global_Func  => FT_AutoHinter_GlobalGetFunc
9028	  FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc
9029	  etc.
9030
9031	* ahloader.h [_STANDALONE_]: Removed all conditional code.
9032
9033	* include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the
9034	type definitions of the CFF font driver.
9035
9036	  CFF_Font  => CFF_FontRec
9037	  CFF_Font* => CFF_Font
9038	  etc.
9039
9040	* include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating
9041	type definitions of the Windows FNT font driver.
9042
9043	* include/freetype/internal/ftdriver.h,
9044	include/freetype/internal/ftobjs.h, src/base/ftapi.c,
9045	src/base/ftobjs.c, src/cff/cffdrivr.c, src/cff/cffdrivr.h,
9046	src/cid/cidriver.c, src/cid/cidriver.h, src/pcf/pcfdriver.c,
9047	src/pcf/pcfdriver.h, src/truetype/ttdriver.c,
9048	src/truetype/ttdriver.h, src/type1/t1driver.c, src/type1/t1driver.h,
9049	src/winfonts/winfnt.c, src/winfonts/winfnt.h: Updating type
9050	definitions for font drivers.
9051
9052	  FTDriver_initFace      => FT_Face_InitFunc
9053	  FTDriver_initGlyphSlot => FT_Slot_InitFunc
9054	  etc.
9055
9056	* src/cid/cidobjs.c (CID_Face_Init): Remove dead code.
9057
9058	* include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a
9059	few face method definitions:
9060
9061	  FT_PSName_Requester     => FT_Face_GetPostscriptNameFunc
9062	  FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc
9063	  FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
9064
9065	* src/base/ftapi.c: New file.  It contains backward compatibility
9066	functions.
9067
9068	* include/freetype/internal/psaux.h, src/cid/cidload.c,
9069	src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h,
9070	src/psaux/t1decode.c, src/type1/t1load.c, src/type1/t1tokens.h:
9071	Updated common PostScript type definitions.
9072	Renamed all enumeration values like to uppercase variants:
9073
9074	  t1_token_any      => T1_TOKEN_TYPE_ANY
9075	  t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
9076	  etc.
9077
9078	* include/freetype/internal/psglobal.h: Removed.
9079	* include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
9080	Updated.
9081
9082	* include/freetype/internal/tttypes.h,
9083	include/freetype/internal/sfnt.h, src/base/ftnames.c,
9084	src/cff/cffdrivr.c, src/sfnt/*.c, src/truetype/*.c: Updated
9085	SFNT/TrueType type definitions.
9086
9087	* include/freetype/freetype.h, include/freetype/internal/ftgloadr.h:
9088	Updating type definitions for the glyph loader.
9089
90902002-03-13  Antoine Leca  <antoine@oriolnet.com>
9091
9092	* include/freetype/config/ftoption.h: Changed the automatic
9093	detection of Microsoft C compilers to automatically support 64-bit
9094	integers only since revision 9.00 (i.e. >= Visual C++ 2.0).
9095
90962002-03-08  Werner Lemberg  <wl@gnu.org>
9097
9098	* src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset.
9099
91002002-03-07  Werner Lemberg  <wl@gnu.org>
9101
9102	* src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new,
9103	ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free,
9104	ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug,
9105	FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings.
9106	* src/base/ftcalc.c (FT_MulFix): Ditto.
9107	* src/cff/cffdrivr.c (cff_get_name_index): Ditto.
9108	* src/cff/cffobjs.c (CFF_Size_Get_Globals_Funcs, CFF_Size_Init,
9109	CFF_GlyphSlot_Init): Ditto.
9110	* src/cid/cidobjs.c (CID_GlyphSlot_Init,
9111	CID_Size_Get_Globals_Funcs): Ditto.
9112	* src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init):
9113	Ditto.
9114	* src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
9115	* src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
9116	variables.
9117
9118	* include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
9119	to...
9120	(T1_Builder_FuncsRec): This.
9121	(T1_Builder_Funcs): New typedef.
9122	(PSAux_Interface): Remove compiler warnings.
9123	* src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h
9124	(t1_builder_funcs): Updated.
9125
9126	* src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
9127	(PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
9128	(PSH_AlignmentRec): Updated.
9129
9130	* include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
9131	typo.
9132	* include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
9133	* src/base/ftstream (FT_Get_Char): Rename to...
9134	(FT_Stream_Get_Char): This.
9135
9136	* src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is
9137	a built-in function in gcc, causing warning messages with gcc 3.0.
9138	* src/autohint/ahglyph.c (ah_outline_load): Ditto.
9139	* src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto.
9140	* src/cache/ftcmanag.c (ftc_family_table_alloc,
9141	ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache):
9142	Ditto.
9143	* src/cff/cffload.c (cff_new_index, cff_done_index,
9144	cff_explicit_index, CFF_Access_Element, CFF_Forget_Element,
9145	CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font,
9146	CFF_Done_Font): Ditto.
9147	* src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto.
9148	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto.
9149	* src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit,
9150	ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3,
9151	* src/pshinter/pshalgo1.c (psh1_hint_table_record,
9152	psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto.
9153	* src/pshinter/pshalgo2.c (psh2_hint_table_record,
9154	psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto.
9155	* src/sfnt/ttpost.c (Load_Format_20, Load_Format_25,
9156	TT_Get_PS_Name): Ditto.
9157	* src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics,
9158	load_truetype_glyph): Ditto.
9159	* src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto.
9160	* src/type1/t1afm.c (T1_Get_Kerning): Ditto.
9161	* include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto.
9162
91632002-03-06  David Turner  <david@freetype.org>
9164
9165	* src/type1/t1objs.c (T1_Face_Init), src/cid/cidobjs.c
9166	(CID_Face_Init): Fixed another bug related to the
9167	ascender/descender/text height of Postscript fonts.
9168
9169	* src/pshinter/pshalgo2.c (print_zone): Renamed to ...
9170	(psh2_print_zone): This.
9171	* src/pshinter/pshalgo1.c (print_zone): Renamed to ...
9172	(psh1_print_zone): This.
9173
9174	* include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
9175	src/base/ftobjs.c: Adding the new FT_Library_Version API to return
9176	the library's current version in dynamic links.
9177	* src/base/ftinit.c (FT_Init_FreeType): Updated.
9178
91792002-03-06  Werner Lemberg  <wl@gnu.org>
9180
9181	* src/pshinter/pshglob.h (PSH_DimensionRec): s/std/stdw/.
9182	* src/pshinter/pshglob.c (psh_global_scale_widths,
9183	psh_dimension_snap_width, psh_globals_destroy, psh_globals_new):
9184	Ditto.
9185
91862002-03-05  David Turner  <david@freetype.org>
9187
9188	* src/type1/t1objs.c (T1_Face_Init), src/cff/cffobjs.c
9189	(CFF_Face_Init), src/cid/cidobjs.c (CID_Face_Init): Removing the bug
9190	that returned global BBox values in 16.16 fixed format (instead of
9191	integer font units).
9192
9193	* src/cid/cidriver.c (cid_get_postscript_name): Fixed a bug that
9194	caused the CID driver to return Postscript font names with a leading
9195	slash (`/') as in `/MOEKai-Regular'.
9196
9197	* src/sfnt/ttload.c (TT_Load_Names), src/sfnt/sfobjs.c (Get_Name),
9198	src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed the loader so
9199	that it accepts broken fonts like `foxjump.ttf', which made FreeType
9200	crash when trying to load them.
9201
9202	Also improved the name table parser to be able to load
9203	Windows-encoded entries before Macintosh or Unicode ones, since it
9204	seems some fonts don't have reliable values here anyway.
9205
9206	* include/freetype/internal/psnames.h: Add typedef for
9207	`PSNames_Service'.
9208
92092002-03-05  Werner Lemberg  <wl@gnu.org>
9210
9211	* builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool
9212	1.4.2.
9213	Apply a small patch for AIX to make shared libraries work (this
9214	patch is already in the CVS version of libtool).
9215
9216	* builds/unix/config.sub, builds/unix/config.guess: Updated to
9217	recent versions.
9218
9219	* builds/unix/configure.ac: Fix typo
9220	(AC_CONFIG_FILE->AC_CONFIG_FILES).
9221
9222	* builds/unix/configure: Regenerated.
9223
92242002-02-28  David Turner  <david@freetype.org>
9225
9226	* include/freetype/ftconfig.h: Changed `FT_LOCAL xxxx' to
9227	`FT_LOCAL( xxxx )' everywhere in the source.  The same goes for
9228	`FT_LOCAL_DEF xxxx' which is translated to `FT_LOCAL_DEF( xxxxx )'.
9229
9230	* include/freetype/freetype.h (FREETYPE_MINOR, FREETYPE_PATCH):
9231	Changing version to 2.1.0 to indicate an unstable branch.
9232	Added the declarations of FT_Get_First_Char and FT_Get_Next_Char.
9233
9234	* src/base/ftobjs.c: Implement FT_Get_First_Char and
9235	FT_Get_Next_Char.
9236
9237	* include/freetype/t1tables.h: Renaming structure types.  This
9238
9239	  typedef  T1_Struct_
9240	  {
9241	  } T1_Struct;
9242
9243	becomes
9244
9245	  typedef  PS_StructRec_
9246	  {
9247	  } PS_StructRec, *PS_Struct;
9248
9249	  typedef PS_StructRec  T1_Struct;  /* backward compatibility */
9250
9251	Hence, we increase the coherency of the source code by effectively
9252	using the `Rec' prefix for structure types.
9253
92542002-02-27  David Turner  <david@freetype.org>
9255
9256	* src/sfnt/ttload.c (TT_Load_Names): Simplifying and securing the
9257	names table loader.  Invalid individual name entries are now handled
9258	correctly.  This allows the loading of very buggy fonts like
9259	`foxjump.ttf' without allocating tons of memory and causing crashes.
9260
9261	* src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still
9262	experimental) code for OpenType Layout tables validation and
9263	parsing.
9264
9265	* src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still
9266	experimental) code for Type 1 charmap processing.
9267
9268	* src/sfnt/ttcmap0.c: New file.  It contains a new, still
9269	experimental SFNT charmap processing support.
9270
9271	* include/freetype/internal/ftobjs.h: Adding validation support as
9272	well as internal charmap object definitions (FT_CMap != FT_CharMap).
9273
92742002-02-24  David Turner  <david@freetype.org>
9275
9276	* Renaming stream functions to the FT_<Subject>_<Action> scheme:
9277
9278	  FT_Seek_Stream    => FT_Stream_Seek
9279	  FT_Skip_Stream    => FT_Stream_Skip
9280	  FT_Read_Stream    => FT_Stream_Read
9281	  FT_Read_Stream_At => FT_Stream_Read_At
9282	  FT_Access_Frame   => FT_Stream_Enter_Frame
9283	  FT_Forget_Frame   => FT_Stream_Exit_Frame
9284	  FT_Extract_Frame  => FT_Stream_Extract_Frame
9285	  FT_Release_Frame  => FT_Stream_Release_Frame
9286	  FT_Get_XXXX       => FT_Stream_Get_XXXX
9287	  FT_Read_XXXX      => FT_Stream_Read_XXXX
9288
9289	  FT_New_Stream( filename, stream ) =>
9290	    FT_Stream_Open( stream, filename )
9291
9292	    (The function doesn't create the FT_Stream structure, it simply
9293	    initializes it for reading.)
9294
9295	  FT_New_Memory_Stream( library, FT_Byte*  base, size, stream ) =>
9296	    FT_Stream_Open_Memory( stream, const FT_Byte* base, size )
9297
9298	  FT_Done_Stream  => FT_Stream_Close
9299	  FT_Stream_IO    => FT_Stream_IOFunc
9300	  FT_Stream_Close => FT_Stream_CloseFunc
9301
9302	  ft_close_stream => ft_ansi_stream_close (in base/ftsystem.c only)
9303	  ft_io_stream    => ft_ansi_stream_io    (in base/ftsystem.c only)
9304
9305	* src/base/ftutil.c: New file.  Contains all memory and list
9306	management code (previously in `ftobjs.c' and `ftlist.c',
9307	respectively).
9308
9309	* include/freetype/internal/ftobjs.h: Moving all code related to
9310	glyph loaders to ...
9311	* include/freetype/internal/ftgloadr.h: This new file.
9312	`FT_GlyphLoader' is now a pointer to the structure
9313	`FT_GlyphLoaderRec'.
9314	(ft_glyph_own_bitmap): Renamed to ...
9315	(FT_GLYPH_OWN_BITMAP): This.
9316	* src/base/ftobjs.c: Moving all code related to glyph loaders
9317	to ...
9318	* src/base/ftgloadr.c: This new file.
9319
93202002-02-22  Werner Lemberg  <wl@gnu.org>
9321
9322	* include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in
9323	enum to avoid compiler warnings.
9324
93252002-02-21  David Turner  <david@freetype.org>
9326
9327	Modified the debug sub-system initialization.  Trace levels can now
9328	be specified within the `FT2_DEBUG' environment variable.  See the
9329	comments within `ftdebug.c' for more details.
9330
9331	* src/base/ftdebug.c: (FT_SetTraceLevel): Removed.
9332	(ft_debug_init): New function.
9333	(ft_debug_dummy): Removed.
9334	Updated to changes in ftdebug.h
9335
9336	* include/freetype/internal/ftdebug.h: Always define
9337	FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE is defined.
9338	(FT_Assert): Renamed to ...
9339	(FT_ASSERT): This.
9340	Some stuff from ftdebug.h has been moved to ...
9341
9342	* include/freetype/internal/fttrace.h: New file, to define the trace
9343	levels used for debugging.  It is used both to define enums and
9344	toggle names for FT2_DEBUG.
9345
9346	* include/freetype/internal/internal.h: Updated.
9347
9348	* src/base/ftobjs.c, src/base/ftstream.c: Updated.
9349
9350	* include/freetype/internal/ftextend.h, src/base/ftextend.c:
9351	Removed.  Both files are now completely obsolete.
9352	* src/base/Jamfile, src/base/rules.mk: Updated.
9353
9354	* include/freetype/fterrors.h: Adding `#undef FT_ERR_CAT' and
9355	`#undef FT_ERR_XCAT' to avoid warnings with certain compilers (like
9356	LCC).
9357
9358	* src/pshinter/pshalgo2.c (print_zone): Renamed to ...
9359	(psh2_print_zone): This to avoid errors during compilation of debug
9360	library.
9361
9362	* src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as
9363	`trace_smooth'.
9364
93652002-02-20  David Turner  <david@freetype.org>
9366
9367	* README: Adding `devel@freetype.org' address for bug reports.
9368
93692002-02-20  Werner Lemberg  <wl@gnu.org>
9370
9371	* builds/unix/install.mk (check): New dummy target.
9372	(.PHONY): Add it.
9373
93742002-02-19  Werner Lemberg  <wl@gnu.org>
9375
9376	* builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first.
9377
9378	* src/cache/ftccache.c (ftc_cache_resize): Mark `error' as unused
9379	to avoid compiler warning.
9380	* src/cff/cffload.c (CFF_Get_String): Ditto.
9381	* src/cff/cffobjs.c (CFF_StrCopy): Ditto.
9382	* src/psaux/psobjs.c (PS_Table_Done): Ditto.
9383	* src/pcf/pcfread.c (pcf_seek_to_table_type): Ditto.
9384	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
9385	(pcf_get_bitmaps): The same for `sizebitmaps'.
9386	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): The same for
9387	`orig_y'.
9388	(t1operator_seac): Comment out more dead code.
9389	* src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER'
9390	conditional.
9391	* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
9392	load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER'
9393	conditional.
9394
93952002-02-18  Werner Lemberg  <wl@gnu.org>
9396
9397	* src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused
9398	variables.
9399	* src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead
9400	of UNUSED.
9401	* src/autohint/ahmodule.c (ft_autohinter_reset): Ditto.
9402	* src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable
9403	swapping code.
9404	* src/pshinter/pshglob.h (PSH_Blue_Align): Add PSH_BLUE_ALIGN_NONE.
9405	* src/pshinter/pshglob.c (psh_blues_snap_stem): Use it.
9406	* src/pshinter/pshalgo1.c (psh1_hint_table_optimize): Ditto.
9407	* src/pshinter/pshalgo2.c (psh2_hint_align): Ditto.
9408	* include/freetype/internal/ftobjs.h (UNUSED): Removed.
9409
94102002-02-10  Roberto Alameda  <ojancano@geekmail.de>
9411
9412	Add support for ISOLatin1 PS encoding.
9413
9414	* include/freetype/freetype.h (ft_encoding_latin_1): New tag
9415	(`lat1').
9416	* include/freetype/internal/t1types.h (T1_Encoding_Type): Add
9417	`t1_encoding_isolatin1'.
9418	* src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle
9419	ft_encoding_latin_1.
9420	* src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'.
9421	* src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'.
9422
9423----------------------------------------------------------------------------
9424
9425Copyright (C) 2002-2020 by
9426David Turner, Robert Wilhelm, and Werner Lemberg.
9427
9428This file is part of the FreeType project, and may only be used, modified,
9429and distributed under the terms of the FreeType project license,
9430LICENSE.TXT.  By continuing to use, modify, or distribute this file you
9431indicate that you have read the license and understand and accept it
9432fully.
9433
9434
9435Local Variables:
9436version-control: never
9437coding: utf-8
9438End:
9439