msvc: use our version of the .vcproj
[crawl:crawl-freetype.git] / ChangeLog.21
1 2005-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
11 2005-06-07  Detlef Würkner  <TetiSoft@apg.lahn.de>
12
13         * builds/amiga/*: Added copyright notes, reworked some comments.
14
15 2005-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
29 2005-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
38 2005-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
44 2005-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
56 2005-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
69 2005-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
77 2005-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
86 2005-05-26  Werner Lemberg  <wl@gnu.org>
87
88         * docs/GPL.txt: Update postal address of FSF.
89
90 2005-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
99 2005-05-24  Werner Lemberg  <wl@gnu.org>
100
101         * docs/CHANGES: Updated.
102
103 2005-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
120 2005-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
128 2005-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
137 2005-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
164 2005-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_CACE_TRYLOOP_END.
174
175 2005-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
180 2005-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
198 2005-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
204 2005-05-20  Werner Lemberg  <wl@gnu.org>
205
206         * docs/CHANGES: Updated.
207
208 2005-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
238 2005-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
250 2005-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
270 2005-05-18  Werner Lemberg  <wl@gnu.org>
271
272         * docs/announce: Start updating.
273
274         * docs/CHANGES: Updated.
275
276 2005-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
281 2005-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
287 2005-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
296 2005-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
313 2005-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
319 2005-05-08  Werner Lemberg  <wl@gnu.org>
320
321         * include/freetype/internal/ftserv.h (FT_FACE_FIND_GLOBAL_SERVICE)
322         [__cplusplus]: Fix typo.
323
324 2005-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/ttcmac.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
341 2005-05-07  Werner Lemberg  <wl@gnu.org>
342
343         * src/truetype/ttpload.c (tt_face_get_location): Fix typo.
344
345 2005-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
350 2005-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
364 2005-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
378 2005-04-28  Werner Lemberg  <wl@gnu.org>
379
380         * docs/TODO: Updated.
381
382 2005-04-24  Werner Lemberg  <wl@gnu.org>
383
384         * src/otvalid/otvcommn.c
385         (otv_GSUBGPOS_have_MarkAttachmentType_flag): Handle table == 0.
386
387 2005-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
398 2005-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
408 2005-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
420 2005-04-13  Werner Lemberg  <wl@gnu.org>
421
422         * docs/TODO: Updated.
423
424         * autogen.sh: Use `--force' for all commands.
425
426 2005-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
431 2005-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
436 2005-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
446 2005-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
451 2005-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
456 2005-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
461 2005-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
473 2005-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
481 2005-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
507 2005-03-23  Werner Lemberg  <wl@gnu.org>
508
509         * tests/*: Removed.
510
511 2005-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
528 2005-03-22  David Turner  <david@freetype.org>
529
530         * src/autohint/*: Removed.
531         * Jamfile: Updated.
532
533 2005-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
579 2005-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
584 2005-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
592 2005-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
607 2005-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_Sizes): Handle fractional sizes
621         more carefully.  This fixes Savannah bug #12263.
622
623 2005-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
631 2005-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
641 2005-03-04  Werner Lemberg  <wl@gnu.org>
642
643         * src/base/ftutil.c: Include FT_INTERNAL_OBJECTS_H.
644
645 2005-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
677 2005-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
720 2005-03-03  Werner Lemberg  <wl@gnu.org>
721
722         * devel/ftoption.h: Updated to recent changes.
723
724 2005-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
734 2005-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_metricsc_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
781 2005-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
795 2005-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
849 2005-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
854 2005-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
934 2005-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
982 2005-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
995 2005-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
1000 2005-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/psobjc.c (skip_string, ps_parser_skip_PS_token,
1018         ps_tobytes): Add error messages.
1019
1020 2005-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
1026 2005-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
1037 2005-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
1045 2005-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
1050 2005-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
1057 2005-02-04  Werner Lemberg  <wl@gnu.org>
1058
1059         * src/otlayout/*: Removed.  Obsolete.
1060
1061 2004-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
1079 2004-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
1084 2004-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
1090 2004-12-26  Werner Lemberg  <wl@gnu.org>
1091
1092         * Jamfile (FT2_COMPONENTS): Add `otvalid'.
1093
1094 2004-12-25  Werner Lemberg  <wl@gnu.org>
1095
1096         * src/base/ftbitmap.c (FT_Bitmap_Convert): Fix compiler warning.
1097
1098 2004-12-15  Werner Lemberg  <wl@gnu.org>
1099
1100         * vms_make.com: Add ftbitmap.obj.
1101
1102 2004-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/ftchapter.s: Updated.
1116
1117 2004-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
1124 2004-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
1130 2004-12-08  Werner Lemberg  <wl@gnu.org>
1131
1132         * src/base/ftobjs.c (ft_glyphslot_clear): Reset `lsb_delta' and
1133         `rsb_delta'.
1134
1135 2004-12-05  Werner Lemberg  <wl@gnu.org>
1136
1137         * builds/unix/install.mk (install): Use $(OBJ_BUILD) for ftconfig.h.
1138
1139 2004-12-03  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
1140
1141         * include/freetype/ttnameid.h: Updated to latest
1142         specifications from Microsoft.
1143
1144 2004-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
1152 2004-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_extrama, ft_get_orientation): Removed.
1163         (FT_GlyphSlot_Embolden): Use FT_Outline_Get_Orientation.
1164
1165 2004-11-23  Fernando Papa  <fpapa@netgate.com.uy>
1166
1167         * src/truetype/ttinterp.h: Fix typo.
1168
1169 2004-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
1178 2004-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
1184 2004-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
1189 2004-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
1201 2004-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
1209 2004-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
1221 2004-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
1227 2004-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
1236 2004-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
1249 2004-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
1259 2004-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
1275 2004-10-09  Werner Lemberg  <wl@gnu.org>
1276
1277         * docs/CHANGES: Updated.
1278
1279 2004-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
1288 2004-09-10  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
1289
1290         * vms_make.com: Updated.
1291
1292 2004-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
1318 2004-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
1324 2004-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
1329 2004-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
1361 2004-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
1367 2004-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
1375 2004-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
1404 2004-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
1413 2004-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
1419 2004-08-27  Mathieu Malaterre  <mathieu@malaterre.com>
1420
1421         * src/base/ftmac.c: Handle OS_INLINE for xlc compiler also.
1422
1423 2004-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
1449 2004-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
1527 2004-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
1533 2004-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
1555 2004-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
1592 2004-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
1634 2004-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
1684 2004-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
1781 2004-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
1787 2004-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
1819 2004-08-11  Detlef Würkner  <TetiSoft@apg.lahn.de>
1820
1821         * src/base/ftrfork.c (FT_Raccess_Guess)
1822         [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_FORK]: Remove compiler
1823         warnings.
1824
1825 2004-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
1830 2004-08-05  David Turner  <david@freetype.org>
1831
1832         `Activate' gray-scale specifing 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/truetyep/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
1851 2004-08-02  George Williams  <gww@silcom.com>
1852
1853         * src/base/ftobjs.c (FT_Attach_File): Initialize `open.stream'.
1854
1855 2004-08-01  Werner Lemberg  <wl@gnu.org>
1856
1857         * docs/CHANGES: Updated.
1858
1859 2004-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\1fRead_AFM.
1872         Update all callers.
1873
1874 2004-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
1880 2004-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
1886 2004-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
1891 2004-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
1902 2004-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
1907 2004-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
1913 2004-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
1918 2004-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
1940 2004-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
1947 2004-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
1955 2004-07-13  Werner Lemberg  <wl@gnu.org>
1956
1957         * src/base/ftstroke.c (ft_stroke_border_reverse): Removed.  Unused.
1958
1959 2004-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
1970 2004-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
1985 2004-06-26  Peter Kovar  <peter.kovar@r3.roburnet.sk>
1986
1987         * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
1988
1989 2004-06-25  Werner Lemberg  <wl@gnu.org>
1990
1991         * src/type1/t1afm.c (afm_atoindex): Fix boundary test.  Reported
1992         by Dirck Blaskey.
1993
1994 2004-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
2004 2004-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
2013 2004-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
2045 2004-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_COMPOMENT): 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
2065 2004-06-21  Werner Lemberg  <wl@gnu.org>
2066
2067         * docs/CHANGES: Updated.
2068
2069 2004-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
2077 2004-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
2083 2004-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
2088 2004-06-11  Werner Lemberg  <wl@gnu.org>
2089
2090         * docs/CHANGES: Updated.
2091
2092 2004-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
2102 2004-06-08  David Turner  <david@freetype.org>
2103
2104         * include/freetype/freetype.h (FT_GlyphMetrics): 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/ftbasic.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
2147 2004-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
2152 2004-06-04  Werner Lemberg  <wl@gnu.org>
2153
2154         * docs/CHANGES: Updated.
2155
2156 2004-06-04  David Chester  <davidchester@gmx.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
2166 2004-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
2179 2004-06-02  Werner Lemberg  <wl@gnu.org>
2180
2181         * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler
2182         warnings.
2183
2184 2004-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
2191 2004-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
2203 2004-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
2208 2004-05-15  Werner Lemberg  <wl@gnu.org>
2209
2210         * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name.
2211
2212 2004-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
2217 2004-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
2222 2004-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
2268 2004-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
2288 2004-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' und update all users.
2293
2294 2004-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
2308 2004-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
2314 2004-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
2319 2004-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
2335 2004-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
2340 2004-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
2366 2004-05-04  Steve Hartwell  <shspamsink@comcast.net>
2367
2368         * src/truetype/ttobjs.c (tt_driver_done): Fix typo.
2369
2370 2004-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
2426 2004-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
2441 2004-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
2446 2004-04-29  Werner Lemberg  <wl@gnu.org>
2447
2448         * docs/formats.txt: Add more information on PFR format.
2449
2450 2004-04-28  Werner Lemberg  <wl@gnu.org>
2451
2452         * docs/formats.txt: New file.
2453         * docs/CHANGES: Updated.
2454
2455 2004-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
2462 2004-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
2467 2004-04-25  George Williams  <gww@silcom.com>
2468
2469         * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo.
2470
2471 2004-04-25  Werner Lemberg  <wl@gnu.org>
2472
2473         * src/truetype/Jamfile, docs/CHANGES: Updated.
2474
2475 2004-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
2483 2004-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
2554 2004-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
2575 2004-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
2580 2004-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
2603 2004-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
2611 2004-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
2617 2004-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
2629 2004-04-16  Werner Lemberg  <wl@gnu.org>
2630
2631         * builds/unix/freetype-config.in (usage): Fix and improve usage
2632         information.
2633
2634 2004-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
2647 2004-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
2652 2004-04-14  Werner Lemberg  <wl@gnu.org>
2653
2654         * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro.
2655
2656 2004-04-14  Alex Strelnikov  <ptktyrf@mail.ru>
2657
2658         * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case
2659         of error.
2660
2661 2004-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
2673 2004-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
2678 2004-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
2694 2004-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
2706 2004-04-11  Werner Lemberg  <wl@gnu.org>
2707
2708         * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h.
2709
2710 2004-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
2717 2004-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
2725 2004-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
2738 2004-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
2747 2004-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
2752 2004-03-27  Werner Lemberg  <wl@gnu.org>
2753
2754         * src/base/descrip.mms (OBJS): Add ftbbox.obj.
2755
2756 2004-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
2780 2004-03-21  Werner Lemberg  <wl@gnu.org>
2781
2782         * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing.
2783
2784 2004-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
2789 2004-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
2799 2004-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
2815 2004-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
2835 2004-03-03  Werner Lemberg  <wl@gnu.org>
2836
2837         * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code.
2838
2839 2004-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
2860 2004-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_string_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
2874 2004-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
2886 2004-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
2892 2004-02-25  Werner Lemberg  <wl@gnu.org>
2893
2894         * docs/CHANGES: Updated.
2895
2896 2004-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_fpopen.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
2926 2004-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
2932 2004-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
2937 2004-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
2954 2004-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
2994 2004-02-23  Werner Lemberg  <wl@gnu.org>
2995
2996         * docs/CHANGES: Updated.
2997
2998         * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H.
2999
3000 2004-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
3010 2004-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
3017 2004-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
3026 2004-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
3035 2004-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
3040 2004-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
3050 2004-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
3088 2004-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
3095 2004-02-15  Werner Lemberg  <wl@gnu.org>
3096
3097         * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo.
3098
3099 2004-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
3108 2004-02-14  Werner Lemberg  <wl@gnu.org>
3109
3110         * src/type1/t1load.c (parse_dict): Initialize `start_binary'.
3111
3112 2004-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
3118 2004-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
3123 2004-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
3128 2004-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
3166 2004-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
3172 2004-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
3177 2004-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
3190 2004-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
3198 2004-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
3204 2004-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
3209 2004-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
3215 2004-02-02  Werner Lemberg  <wl@gnu.org>
3216
3217         * src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands