[License] set FTL license to avoid license conflict
[platform/upstream/freetype2.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_CACHE_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/ttcmap.c: Use SFNT_Err_Ok where appropriate.
331
332         (tt_cmap0_validate, tt_cmap2_validate, tt_cmap6_validate,
333         tt_cmap8_validate, tt_cmap10_validate, tt_cmap12_validate): Use
334         `FT_Error' as return type.
335         (tt_cmap4_validate): Use `FT_Error' as return type.
336         Return error code for unsorted cmap.
337         (tt_cmap4_char_index, tt_cmap4_char_next): Use old code for unsorted
338         cmaps.
339         (tt_face_build_cmaps): Set `unsorted' variable in cmap.
340
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_Size): 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_metrics_scale): Don't call
760         AF_SCALER_EQUAL_SCALES.
761         (af_latin_hints_compute_segments): Change return type to FT_Error.
762         Update all callers.
763         Improve segment allocation.
764         (af_latin_hints_compute_edges): Change return type to FT_Error.
765         Update all callers.
766         Improve edge allocation and link handling.
767         (af_latin_hints_detect_features): Change return type to FT_Error.
768         Update all callers.
769
770         * src/autofit/aflatin.h: Updated.
771
772         * src/autofit/afloader.c (af_loader_load_g)
773         <FT_GLYPH_FORMAT_OUTLINE>: Assure axis->num_edges > 1.  This fixes
774         a bug with certain fonts.
775
776         * include/freetype/config/ftmodule.h: The auto-fitter is now the
777         only supported auto-hinting module.
778
779         * include/freetype/config/ftstdlib.h (FT_INT_MAX): New macro.
780
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/psobjs.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/ftchapters.h: 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_extrema, 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_RFORK]: 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 specifying hinting within the TrueType
1833         bytecode interpreter.  This is an experimental feature which
1834         should probably be made optional.
1835
1836         * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
1837         load_truetype_glyph): Move the code to set the pedantic_hinting flag
1838         to...
1839         (TT_Load_Glyph): Here.
1840         Set `grayscale' flag except for `FT_LOAD_TARGET_MONO'.
1841
1842         * src/truetype/ttinterp.c (Ins_GETINFO): Return MS rasterizer
1843         version 1.7.
1844         Return rotation and stretching info only if glyph is rotated or
1845         stretched, respectively.
1846         Handle grayscale info.
1847
1848         * src/truetype/ttinterp.h (TT_ExecContextRec): Add `grayscale'
1849         member.
1850
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_Read_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_COMPONENT): Move up.
2052         (PCF_Face_Init): Simplify code.
2053
2054         * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'.
2055
2056         * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start),
2057         src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/.
2058
2059         * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs.
2060         Set `default_glyph'.
2061         (BDF_Glyph_Load): Use `default_glyph' for undefined glyph.
2062
2063         * docs/CHANGES: Updated.
2064
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_Glyph_Metrics): Move `lsb_delta'
2105         and `rsb_delta' elements to...
2106         (FT_GlyphSlotRec): Here to retain binary compatibility with older
2107         FreeType versions.
2108         Update all users.
2109
2110         * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning.
2111
2112         * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization
2113         of slot->metrics.width and slot->metrics.height when loading a
2114         Windows FNT glyph.  Thanks to Huw Davies.
2115
2116         * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change
2117         return type to FT_Bool.
2118
2119         * src/cache/ftcbasic.c (ftc_basic_family_compare): Change return
2120         type to FT_Bool.
2121
2122         * src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make
2123         the former call the latter, not vice versa.
2124         (FTC_Cache_Done, ftc_cache_done): Ditto.
2125
2126         * src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make
2127         the former call the latter, not vice versa.
2128         (FTC_GCache_Init, ftc_gcache_init): Ditto.
2129         (FTC_GCache_Done, ftc_gcache_done): Ditto.
2130
2131         * src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the
2132         former call the latter, not vice versa.
2133         (FTC_INode_Weight, ftc_inode_weight): Ditto.
2134
2135         * src/cache/ftcmanag.c (ftc_size_node_compare,
2136         ftc_size_node_compare_faceid, ftc_face_node_compare): Change return
2137         type to FT_Bool.
2138
2139         * src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the
2140         former call the latter, not vice versa.
2141         (FTC_SNode_Weight, ftc_snode_weight): Ditto.
2142         (FTC_SNode_Compare, ftc_snode_compare): Ditto.
2143
2144         * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache
2145         sub-system.
2146
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@qmx.net>
2157
2158         Improve inter-letter spacing for autohinted glyphs.
2159
2160         * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements
2161         `lsb_delta' and `rsb_delta'.
2162
2163         * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and
2164         `rsb_delta' in slot->metrics and tune side bearings slightly.
2165
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' and 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_strong_points): Use PSH_STRONG_THRESHOLD_MAXIMUM.
2868         (psh_glyph_find_blue_points): New function.  Needed for fonts like
2869         p052003l.pfb (URW Palladio L Roman) which have flex curves at the
2870         base line within blue zones, but the flex curves aren't covered by
2871         hints.
2872         (ps_hints_apply): Use psh_glyph_find_blue_points.
2873
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_fopen.h.
2903         STREAM_FILE [__MWERKS__]: New macro.
2904         (ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions.
2905         (file_spec_from_path) [__MWERKS__]: Updated #if statement.
2906         (get_file_type, make_lwfn_spec): Use `const' for argument.
2907         (is_dfont) [TARGET_API_MAC_CARBON]: Removed.
2908         (count_face_sfnt, count_faces): New functions.
2909         (parse_fond): Do some range checking.
2910         (read_lwfn): Change type of second argument.
2911         No longer call FSpOpenResFile.
2912         (OpenFileAsResource): New function.
2913         (FT_New_Face_From_LWFN): Use `const' for second argument.
2914         Use OpenFileAsResource.
2915         (FT_New_Face_From_Suitcase): Change type of second argument.
2916         No longer call FSpOpenResFile.
2917         Loop over all resource indices.
2918         (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed.
2919         (FT_GetFile_From_Mac_Name): Use `const' for first argument.
2920         (ResourceForkSize): Removed.
2921         (FT_New_Face): Updated to use new functions.
2922         (FT_New_Face_From_FSSpec): New function.
2923
2924         * include/freetype/ftmac.h: Updated.
2925
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
3218         outside of /Subrs or /CharStrings.  This can happen if there is
3219         additional code manipulating those two arrays so that FreeType
3220         doesn't recognize them properly.
3221         (T1_Open_Face): Improve an error message.
3222
3223 2004-02-01  Werner Lemberg  <wl@gnu.org>
3224
3225         * src/type1/t1load.c (parse_charstrings): Exit immediately if
3226         there are no elements in /CharStrings.  This is needed for fonts
3227         like Optima-Oblique which not only define /CharStrings but access it
3228         also.
3229
3230 2004-02-01  David Turner  <david@freetype.org>
3231
3232         * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources.
3233
3234         * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP)
3235         <FTC_INLINE>: Provide macro version which doesn't use inline code.
3236         * include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP)
3237         <FTC_INLINE>: Ditto.
3238         Use FTC_MRULIST_LOOKUP_CMP.
3239         * include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New
3240         macro.
3241         (FTC_MRULIST_LOOKUP): Use it.
3242
3243         * src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated.
3244         * src/cache/ftcbasic.c: Fix compiler warnings.
3245         * src/cache/ftcmanag.c (FTC_Manager_LookupSize,
3246         FTC_Manager_LookupFace) <FTC_INLINE>: Use FTC_MRULIST_LOOKUP_CMP.
3247         * src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after
3248         heavy testing).
3249
3250         * Jamfile: Updating `refdoc' target, and adding `autohint' to the
3251         list of modules to build.  Both the autohinter and autofitter will
3252         be built by default.  But which one will be used is determined by
3253         the content of `ftmodule.h'.
3254
3255         * src/autofit/*: Many updates, but the code is still buggy...
3256
3257 2004-01-31  Werner Lemberg  <wl@gnu.org>
3258
3259         * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of
3260         accent offset.
3261         Update code similarly to the seac support for Type 1 fonts.
3262         (cff_decoder_parse_charstrings) <cff_op_endchar>: Fix magnitude
3263         of accent offset.
3264         Don't hint glyphs twice if seac is emulated.
3265         <cff_op_flex>: Assign correct point tags.
3266         * docs/CHANGES: Updated.
3267
3268 2004-01-30  Werner Lemberg  <wl@gnu.org>
3269
3270         * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not
3271         FT_MEM_COPY, for copying the private dict.
3272
3273         * src/type1/t1load.c (parse_subrs): Assign number of subrs only
3274         in first run.
3275         (parse_charstrings): Parse /CharStrings in second run without
3276         assigning values.
3277         (parse_dict): Skip all /CharStrings arrays but the first.  We need
3278         this for non-standard fonts like `Optima' which have different
3279         outlines depending on the resolution.  Note that there is no
3280         guarantee that we get fitting /Subrs and /CharStrings arrays; this
3281         can only be done by a real PS interpreter.
3282
3283 2004-01-29  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
3284
3285         * builds/win32/visualc/index.html: New file, giving detailed
3286         explanations about forcing CR+LF line endings for the VC++ project
3287         files.
3288
3289 2004-01-22  Garrick Meeker  <garrick@digitalanarchy.com>
3290
3291         * src/cff/cffload.c (cff_subfont_load): Initialize `dict'.
3292
3293 2004-01-22  Werner Lemberg  <wl@gnu.org>
3294
3295         Add support for the hexadecimal representation of binary data
3296         started with `StartData' in CID-keyed Type 1 fonts.
3297
3298         * include/freetype/internal/t1types.h (CID_FaceRec): Add new
3299         members `binary_data' and `cid_stream'.
3300
3301         * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'.
3302         (cid_hex_to_binary): New auxiliary function.
3303         (cid_face_open): Add new argument `face_index' to return quickly
3304         if less than zero.  Updated all callers.
3305         Call `cid_hex_to_binary', then open and assign memory stream to
3306         `face->cid_stream' if `parser->binary_length' is non-zero.
3307         * src/cid/cidload.h: Updated.
3308
3309         * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and
3310         `cid_stream'.
3311
3312         * src/cid/cidparse.c (cid_parser_new): Check arguments to
3313         `StartData' and set parser->binary_length accordingly.
3314         * src/cid/cidparse.h (CID_Parser): New member `binary_length'.
3315
3316         * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'.
3317
3318         * docs/CHANGES: Updated.
3319
3320 2004-01-21  Werner Lemberg  <wl@gnu.org>
3321
3322         include/freetype/config/ftstdlib.h (ft_atoi): Replaced with...
3323         (ft_atol): This.
3324         * src/base/ftdbgmem.c: s/atol/ft_atol/.
3325         * src/type42/t42drivr.c: s/ft_atoi/ft_atol/.
3326
3327 2004-01-20  Masatake YAMATO  <jet@gyve.org>
3328
3329         * include/freetype/ftcache.h: Delete duplicated definition of
3330         FTC_FaceID.
3331
3332         * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap
3333         Info service function if the cmap comes from sfnt.  Return 0 if the
3334         cmap is synthesized in cff module.
3335
3336 2004-01-20  David Turner  <david@freetype.org>
3337
3338         * src/cache/ftcmanag.c (ftc_size_node_compare): Call
3339         FT_Activate_Size.
3340
3341 2004-01-20  Werner Lemberg  <wl@gnu.org>
3342
3343         * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one
3344         CR, LF, or CR/LF after `eexec'.
3345
3346 2004-01-18  David Turner  <david@freetype.org>
3347
3348         * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler
3349         warning.
3350
3351         * src/tools/docmaker/*: Updating beautifier tool.
3352
3353 2004-01-15  David Turner  <david@freetype.org>
3354
3355         * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix
3356         infinite loop bug.
3357
3358         * include/freetype/ftstroke.h: Include FT_GLYPH_H.
3359         (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New
3360         declarations.
3361
3362         * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H.
3363         (FT_Outline_GetOutsideBorder): Inverse result.
3364         (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New
3365         functions.
3366         (FT_Stroker_EndSubPath): Close path if needed.
3367         (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind.
3368
3369         * include/freetype/cache/ftcmanag.h (FTC_ScalerRec,
3370         FTC_Manager_LookupSize): Moved to...
3371         * include/freetype/ftcache.h (FTC_ScalerRec,
3372         FTC_Manager_LookupSize): Here.
3373
3374         * src/tools/docmaker/docbeauty.py: New file to beautify the
3375         documentation comments (e.g., to convert them to single block border
3376         mode).
3377         * src/tools/docmaker/docmaker.py (file_exists, make_file_list):
3378         Moved to...
3379         * src/tools/docmaker/utils.py (file_exists, make_file_list): Here.
3380
3381 2004-01-14  David Turner  <david@freetype.org>
3382
3383         * include/freetype/internal/ftmemory.h (FT_ARRAY_COPY,
3384         FT_ARRAY_MOVE): New macros to make copying arrays easier.
3385         Updated all relevant code to use them.
3386
3387 2004-01-14  Werner Lemberg  <wl@gnu.org>
3388
3389         * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier.
3390         Use number of charstrings as argument to CFF_Load_FD_Select (as
3391         documented in the CFF specs).
3392
3393 2004-01-13  Graham Asher  <graham.asher@btinternet.com>
3394
3395         * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of
3396         `glyph->memory' up to free arrays properly in case of failure.
3397
3398 2004-01-10  Masatake YAMATO  <jet@gyve.org>
3399
3400         Make `FT_Get_CMap_Language_ID' work with CFF.  Bug reported by
3401         Steve Hartwell <shspamsink@comcast.net>.
3402
3403         * src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H.
3404         (cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP.
3405         (cff_get_cmap_info): New function.
3406         (cff_service_get_cmap_info) New entry for cff_services.
3407
3408         * src/sfnt/ttcmap0.c: Exit loop after a format match has been found.
3409         Suggested by Steve Hartwell <shspamsink@comcast.net>.
3410
3411 2004-01-03  Masatake YAMATO  <jet@gyve.org>
3412
3413         * src/base/ftobjs.c (destroy_charmaps): New function.
3414         (destroy_face, open_face): Use `destroy_charmaps'.
3415
3416 2004-01-01  Werner Lemberg  <wl@gnu.org>
3417
3418         * docs/CHANGES: Updated.
3419
3420 2004-01-01  Michael Jansson  <mjan@em2-solutions.com>
3421
3422         * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of
3423         size->metrics.descender.
3424
3425 2003-12-31  Wolfgang Domröse  <porthos.domroese@harz.de>
3426
3427         * src/cff/cffgload.c (cff_decoder_parse_charstrings)
3428         [FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4.
3429         <cff_op_flex1>: Change type of dx and dy to FT_Pos and remove
3430         cast for accessing arguments.
3431
3432 2003-12-31  Werner Lemberg  <wl@gnu.org>
3433
3434         * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous
3435         change.  It's not necessary.
3436
3437 2003-12-29  Smith Charles  <smith.charles@free.fr>
3438
3439         * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated
3440         flags set' correctly.
3441
3442 2003-12-29  Werner Lemberg  <wl@gnu.org>
3443
3444         * src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating
3445         `full' and `weight' properly.
3446         * src/cff/cffgload.c (cff_decoder_parse_charstrings)
3447         <cff_op_hintmask> [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for
3448         tracing output.
3449
3450 2003-12-26  Werner Lemberg  <wl@gnu.org>
3451
3452         * include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func):
3453         Use FT_UInt for ppem values.
3454         * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for
3455         ppem values.
3456         * src/sfnt/ttsbit.h: Updated.
3457
3458         * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values
3459         larger than -0FFFF.
3460
3461 2003-12-25  Werner Lemberg  <wl@gnu.org>
3462
3463         * src/base/fttrigon.c, src/base/ftgloadr.c: Include
3464         FT_INTERNAL_OBJECTS_H.
3465
3466         * src/base/ftstroke.c (FT_Outline_GetInsideBorder,
3467         FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with
3468         C++ compilers.
3469
3470         * src/cache/ftcmru.c, include/freetype/cache/ftcmru.h:
3471         s/select/selection/ to avoid compiler warning.
3472         * src/cff/cffload.h: s/select/ftselect/ to avoid potential
3473         compiler warning.
3474
3475 2003-12-24  Werner Lemberg  <wl@gnu.org>
3476
3477         * src/cache/ftcsbits.c (FTC_SNode_Weight):
3478         s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/.
3479
3480 2003-12-24  David Turner  <david@freetype.org>
3481
3482         * Fixed compilation problems in the cache sub-system.
3483
3484         * Partial updates to src/autofit.
3485
3486         * Jamfile (FT2_COMPONENTS): Add autofit module.
3487
3488 2003-12-23  Werner Lemberg  <wl@gnu.org>
3489
3490         * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle
3491         CID-keyed fonts.
3492
3493 2003-12-23  David Turner  <david@freetype.org>
3494
3495         * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND,
3496         FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_PIX_CEIL): New macros.
3497         They are used to avoid compiler warnings with very pedantic compilers.
3498         Note that `(x) & -64' causes a warning if (x) is not signed.  Use
3499         `(x) & ~63' instead!
3500         Updated all related code.
3501
3502         Add support for extraction of `inside' and `outside' borders.
3503
3504         * src/base/ftstroke.c (FT_StrokerBorder): New enumeration.
3505         (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder,
3506         FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions.
3507         (FT_StrokeBorderRec): New boolean member `valid'.
3508         (ft_stroke_border_get_counts): Updated.
3509         * include/freetype/ftstroke.h: Updated.
3510
3511 2003-12-22  Werner Lemberg  <wl@gnu.org>
3512
3513         * include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions
3514         to describe the `charset' field in FT_WinFNT_HeaderRec.
3515         * src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to
3516         FT_ENCODING_NONE except for FT_WinFNT_ID_MAC.
3517
3518         * include/freetype/freetype.h (FT_Encoding): Improve comment,
3519         based on work by Detlef Würkner <TetiSoft@apg.lahn.de>.
3520
3521         * docs/CHANGES: Updated.
3522
3523 2003-12-22  David Turner  <david@freetype.org>
3524
3525         * include/freetype/ftcache.h,
3526         include/freetype/cache/ftcmanag.h,
3527         include/freetype/cache/ftccache.h,
3528         include/freetype/cache/ftcmanag.h,
3529         include/freetype/cache/ftcmru.h (added),
3530         include/freetype/cache/ftlru.h (removed),
3531         include/freetype/cache/ftcsbits.h,
3532         include/freetype/cache/ftcimage.h,
3533         include/freetype/cache/ftcglyph.h,
3534         src/cache/ftcmru.c,
3535         src/cache/ftcmanag.c,
3536         src/cache/ftccache.c,
3537         src/cache/ftcglyph.c,
3538         src/cache/ftcimage.c,
3539         src/cache/ftcsbits.c,
3540         src/cache/ftccmap.c,
3541         src/cache/ftcbasic.c (added),
3542         src/cache/ftlru.c (removed):
3543
3544           *Complete* rewrite of the cache sub-system to `solve' the
3545           following points:
3546
3547             - all public APIs have been moved to FT_CACHE_H, everything
3548               under `include/freetype/cache' is only needed by client
3549               applications that want to implement their own caches
3550
3551             - a new function named FTC_Manager_RemoveFaceID to deal
3552               with the uninstallation of FaceIDs
3553
3554             - the image and sbit cache are now abstract classes, that
3555               can be extended much more easily by client applications
3556
3557             - better performance in certain areas.  Further optimizations
3558               to come shortly anyway...
3559
3560             - the FTC_CMapCache_Lookup function has changed its signature,
3561               charmaps can now only be retrieved by index
3562
3563             - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace
3564               FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in
3565               private header for the moment)
3566
3567 2003-12-21  Werner Lemberg  <wl@gnu.org>
3568
3569         * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword
3570         is encountered.
3571
3572 2003-12-19  Werner Lemberg  <wl@gnu.org>
3573
3574         * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32.  For
3575         example, the Japanese Hiragino font already contains 15 subfonts.
3576
3577         * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for
3578         CID-keyed fonts.
3579
3580         * devel/ftoption.h: Define FT_DEBUG_MEMORY.
3581
3582 2003-12-18  Werner Lemberg  <wl@gnu.org>
3583
3584         * include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro.
3585         * src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values.
3586
3587 2003-12-18  Werner Lemberg  <wl@gnu.org>
3588
3589         * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of
3590         `cid_count' to `FT_ULong'.
3591
3592         * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids'
3593         array.
3594
3595         * src/cff/cffload.c (cff_charset_done): Free `cids' array.
3596         (cff_font_load): Create cids array only for CID-keyed fonts which
3597         are subsetted.
3598
3599         * src/cff/cffobjs.c (cff_face_init): Check the availability of
3600         the PSNames modules for non-pure CFFs also.
3601         Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't
3602         CID-keyed.
3603
3604         * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h.
3605
3606 2003-12-17  Werner Lemberg  <wl@gnu.org>
3607
3608         * src/sfnt/sfobjs.c (sfnt_init_face): Don't set
3609         FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post'
3610         table.
3611
3612         * docs/CHANGES: Updated.
3613
3614 2003-12-17  Masatake YAMATO  <jet@gyve.org>
3615
3616         Add new function FT_Get_CMap_Language_ID to extract the language ID
3617         for TrueType/sfnt fonts.
3618
3619         * include/freetype/internal/services/svttcmap.h: New file.
3620         * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add
3621         svttcmap.h.
3622
3623         * src/sfnt/sfdriver.c: Include ttcmap0.h.
3624         (tt_service_get_cmap_info): New service.
3625         (sfnt_services): Updated.
3626
3627         * src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions.
3628         (tt_cmap*_class_rec): Add tt_cmap*_get_info members.
3629         (tt_get_cmap_info): New function.
3630         * src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H.
3631         (TT_CMap_ClassRec): New field `get_cmap_info'.
3632         (tt_get_cmap_info): New declaration.
3633
3634         * src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H.
3635         (FT_Get_CMap_Language_ID): New function implementation.
3636         * include/freetype/tttables.h (FT_Get_CMap_Language_ID): New
3637         function declaration.
3638
3639 2003-12-16  Werner Lemberg  <wl@gnu.org>
3640
3641         * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed.  Obsolete.
3642
3643         * include/freetype/internal/sfnt.h (SFNT_Interface): Remove
3644         obsolete fields `load_charmap' and `free_charmap'.
3645         (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed.
3646         * src/sfnt/sfnt.c: Don't include ttcmap.c.
3647         * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c.
3648         * src/sfnt/ttload.c: Don't include ttcmap.h.
3649         * src/sfnt/sfdriver.c: Don't include ttcmap.h.
3650         (sfnt_interface): Updated.
3651
3652         * include/freetype/internal/tttypes.h (TT_TableDirRec,
3653         TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec,
3654         TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6,
3655         TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func,
3656         TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed.
3657         Obsolete.
3658         * src/cff/cffobjs.h (CFF_CharMapRec): Removed.  Obsolete.
3659
3660 2003-12-15  Werner Lemberg  <wl@gnu.org>
3661
3662         * docs/CHANGES: Updated.
3663
3664 2003-12-15  Wolfgang Domröse  <porthos.domroese@harz.de>
3665
3666         * builds/atari/*: New directory for building FreeType 2 on Atari
3667         with the PureC compiler.
3668
3669 2003-12-12  Wolfgang Domröse  <porthos.domroese@harz.de>
3670
3671         * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add
3672         cast.
3673         * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return
3674         value is either 0 or 1.
3675
3676 2003-12-12  Werner Lemberg  <wl@gnu.org>
3677
3678         * src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message.
3679         (cff_get_name_index): Return if no PSNames service is available.
3680         (cff_ps_has_glyph_names): Handle CID-keyed fonts correctly.
3681         * src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for
3682         CID-keyed fonts.  This is the inverse mapping of `sids'.
3683         * src/cff/cffload.c (cff_charset_load): New argument `invert'.
3684         Initialize charset->cids if `invert' is set.
3685         (cff_font_load): In call to cff_charset_load, set `invert' to true
3686         for CID-keyed fonts.
3687         * src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID
3688         and map it to the real glyph index.
3689
3690         * docs/CHANGES: Updated.
3691
3692 2003-12-11  Werner Lemberg  <wl@gnu.org>
3693
3694         * src/cff/cffobjs.c (cff_face_init): Don't set
3695         FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts.
3696         Don't construct a cmap for CID-keyed fonts.
3697
3698 2003-12-10  Werner Lemberg  <wl@gnu.org>
3699
3700         Use implementation specific SID value 0xFFFF to indicate that
3701         a dictionary element is missing.
3702
3703         * src/cff/cffload.c (cff_subfont_load): Initialize all fields
3704         which hold SIDs to 0xFFFF.
3705         (cff_index_get_sid_string): Handle SID value 0xFFFF.
3706         Handle case where `psnames' is zero.
3707         (cff_font_load): Updated.
3708         Don't load encoding for CID-keyed CFFs.
3709
3710         * src/cff/cffobjs.c (cff_face_init): Updated.
3711         Don't check for PSNames module if font is CID-keyed.
3712         Compute style name properly (using the same algorithm as in the
3713         CID driver).
3714         Fix computation of style flags.
3715
3716         * src/cff/cfftoken.h: Comment out handling of base_font_name.
3717         Rename `postscript' field to `embedded_postscript'
3718         * src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name'
3719         and `postscript'.
3720
3721 2003-12-10  Detlef Würkner  <TetiSoft@apg.lahn.de>
3722
3723         * src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone
3724         of the similar BDF function).
3725         (pcf_service_bdf): Use it.
3726
3727 2003-12-09  Werner Lemberg  <wl@gnu.org>
3728
3729         * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES
3730         only if a `post' table is present.
3731
3732 2003-12-09  George Williams  <gww@silcom.com>
3733
3734         * src/base/ftobjs.c (load_mac_face): Recent versions of Linux
3735         support Mac's HFS+ file system, thus enable code to read /rsrc on
3736         non-Macintosh platforms also.
3737
3738 2003-12-08  Werner Lemberg  <wl@gnu.org>
3739
3740         * include/freetype/internal/psaux.h (PS_TableRec): Change type
3741         of `lengths' to FT_PtrDist.
3742         (T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist.
3743         * include/freetype/internal/t1types.h (T1_FontRec): Change type
3744         of `subrs_len' and `charstrings_len' to FT_PtrDist.
3745
3746         * src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk'
3747         variable with better solution.
3748         (IsMacResource): Remove unused variable `map_len'.
3749         Replace `junk' variable with better solution.
3750         (FT_Open_Face) [!FT_MACINTOSH]: Add conditional
3751         FT_CONFIG_OPTION_MAC_FONTS.
3752
3753 2003-12-08  Wolfgang Domröse  <porthos.domroese@harz.de>
3754
3755         * src/autohint/ahhint.c (ah_hinter_hint_edges,
3756         ah_hinter_align_strong_points): Add some casts.
3757
3758         * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type
3759         of `pos' to FT_Long.
3760
3761         * src/base/ftobjs.c (Mac_Read_POST_Resource,
3762         Mac_Read_sfnt_Resource): Change type of `len' to FT_Long.
3763
3764         * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'.
3765
3766 2003-12-07  Werner Lemberg  <wl@gnu.org>
3767
3768         * docs/raster.txt: New file, taken from FreeType 1 and completely
3769         revised.
3770
3771 2003-12-04  Masatake YAMATO  <jet@gyve.org>
3772
3773         * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for
3774         t1_interface.  t1_interface is used.
3775
3776 2003-11-27  David Turner  <david@freetype.org>
3777
3778         * src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of
3779         2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are
3780         the scaling values for outline units, not for metric units.
3781
3782 2003-11-25  Werner Lemberg  <wl@gnu.org>
3783
3784         * src/base/ftcalc.c, include/freetype/internal/ftcalc.h
3785         (FT_MulDiv_No_Round): Surround code with `#ifdef
3786         TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'.
3787
3788 2003-11-23  Werner Lemberg  <wl@gnu.org>
3789
3790         * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and
3791         64 bit version).
3792         * include/freetype/internal/ftcalc.h: Updated.
3793
3794         * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro.
3795         (TT_INT64): Removed.
3796         (DO_DIV): Use TT_MULDIV_NO_ROUND.
3797
3798         * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use
3799         metrics->x_scale and metrics->y_scale.
3800
3801 2003-11-22  Rogier van Dalen  <R.C.van.Dalen@umail.leidenuniv.nl>
3802
3803         * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro.
3804         (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New
3805         functions.  Similar to Direct_Move, Direct_Move_X, and
3806         Direct_Move_Y but without touching.
3807         (Compute_Funcs): Use new functions.
3808
3809         (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
3810         Round_Up_To_Grid, Round_To_Double_Grid, Round_Super,
3811         Round_Super_45): Fix rounding of value zero.
3812
3813         (DO_DIV): Don't use TT_MULDIV.
3814
3815         (Ins_SHC): This instruction actually touches the points.
3816         (Ins_MSIRP): Fix undocumented behaviour.
3817
3818         * src/truetype/ttinterp.h (TT_ExecContextRec): Updated.
3819
3820 2003-11-22  Werner Lemberg  <wl@gnu.org>
3821
3822         * docs/VERSION.DLL, docs/CHANGES: Updated.
3823
3824         * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and
3825         metrics->y_scale really precise.
3826
3827         (FT_Load_Glyph): Update computation of linearHoriAdvance and
3828         linearVertAdvance.
3829
3830         * src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC.
3831
3832 2003-11-22  David Turner  <david@freetype.org>
3833
3834         * src/autofit/*: More updates.
3835
3836         * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
3837         * builds/unix/configure.ac (version_info): Set to 9:6:3.
3838         * README: Updated.
3839
3840 2003-11-13  John A. Boyd Jr.  <jaboydjr@netwalk.com>
3841
3842         * src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c
3843         (pcf_interpret_style): Replace spaces with dashes in properties
3844         SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing.
3845
3846 2003-11-11  Werner Lemberg  <wl@gnu.org>
3847
3848         * docs/CHANGES: Updated.
3849
3850 2003-11-11  John A. Boyd Jr.  <jaboydjr@netwalk.com>
3851
3852         Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF
3853         fonts.
3854
3855         * src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function.
3856         (BDF_Face_Init): Don't handle style properties but call
3857         bdf_interpret_style.
3858
3859         * src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function.
3860         (pcf_load_font): Don't handle style properties but call
3861         pcf_interpret_style.
3862
3863 2003-11-07  Werner Lemberg  <wl@gnu.org>
3864
3865
3866         * Version 2.1.7 released.
3867         =========================
3868
3869
3870         * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
3871
3872         * builds/unix/ft2unix.h: Fix comments.
3873
3874         * builds/unix/ftconfig.in: Synchronized with ANSI version.
3875         Use `#undef' in templates as recommended in the autoconf
3876         documentation.
3877         Since real `#undef' lines don't survive during configuration, use
3878         `/undef' instead; the postprocessing facility of the
3879         AC_CONFIG_HEADERS autoconf macro converts them to `#undef'.
3880
3881         * builds/unix/install.mk (install): Install Unix version of
3882         `ftconfig.h'.
3883
3884         * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro
3885         to include the correct `ftconfig.h' file.
3886
3887         * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed.
3888         (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59.
3889
3890         * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59.
3891
3892         * builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of
3893         AC_CONFIG_HEADER to create ftconfig.h, and use second argument
3894         to replace `/undef' with `#undef'.
3895         Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap.
3896         Use AS_HELP_STRING in AC_ARG_WITH.
3897         Update syntax to autoconf 2.59.
3898
3899         * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
3900         --copy' from libtool 1.5.
3901         * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
3902         automake 1.7.8.
3903         * builds/unix/configure: Regenerated with autoconf 2.59.
3904         * builds/unix/config.guess, builds/unix/config.sub: Updated from
3905         `config' CVS module at subversions.gnu.org
3906         * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
3907         `texinfo' CVS module at subversions.gnu.org.
3908
3909         * builds/vms/ftconfig.h: Synchronized with ANSI version.
3910
3911         * docs/CUSTOMIZE: Fix documentation error.
3912         * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated.
3913
3914         * builds/freetype.mk (refdoc): Updated --title.
3915
3916 2003-11-07  David Turner  <david@freetype.org>
3917
3918
3919         * Version 2.1.6 released.
3920         =========================
3921
3922
3923         * install: Removed.  Obsolete.
3924
3925 2003-11-04  Werner Lemberg  <wl@gnu.org>
3926
3927         * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H.
3928         (sfnt_service_sfnt_table): New service.
3929         (sfnt_services): Updated.
3930
3931         * docs/license.txt: Reworded.
3932
3933 2003-11-03  Werner Lemberg  <wl@gnu.org>
3934
3935         * include/freetype/*: Add a guard to all public header files which
3936         load FT_FREETYPE_H to reject freetype.h from FreeType 1.
3937
3938 2003-11-02  Patrick Welche  <prlw1@newn.cam.ac.uk>
3939
3940         * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect
3941         first argument of AC_DEFUN with brackets to avoid possible
3942         expansion.
3943
3944 2003-11-02  Werner Lemberg  <wl@gnu.org>
3945
3946         * include/freetype/cache/ftcglyph.h: Don't include stddef.h.
3947
3948         * include/freetype/freetype.h: Fix check for ft2build.h.
3949
3950 2003-11-01  Werner Lemberg  <wl@gnu.org>
3951
3952         * include/freetype/freetype.h: Check that ft2build.h has been
3953         loaded first.
3954
3955         * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied
3956         patch.
3957
3958 2003-10-31  Detlef Würkner  <TetiSoft@apg.lahn.de>
3959
3960         * src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names):
3961         Fix parameter order in calls to FT_FACE_FIND_SERVICE.
3962
3963 2003-10-31  Werner Lemberg  <wl@gnu.org>
3964
3965         * include/freetype/internal/ftserv.h
3966         (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed.  Unused.
3967
3968         * src/type42/t42drivr.c (t42_services): Updated.
3969
3970 2003-10-29  David Turner  <david@freetype.org>
3971
3972         * include/freetype/internal/bdftypes.h: Removed.  Obsolete.
3973         * src/base/ftbdf.c: Updated.
3974
3975         * include/freetype/internal/cfftypes.h: Moved to...
3976         * src/cff/cfftypes.h: This place since no other module needs to
3977         know about those types.
3978
3979         * include/freetype/internal/t42types.h: Moved to...
3980         * src/type42/t42types.h: This place since no other module needs to
3981         know about those types.
3982
3983         * include/freetype/internal/services/svbdf.h: Include FT_BDF_H.
3984
3985         * include/freetype/internal/services/svpsname.h: Renamed to...
3986         * include/freetype/internal/services/svpscmap.h: This.
3987         Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and
3988         `POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere.
3989
3990         * include/freetype/internal/services/svpsinfo.h: New file, providing
3991         PostScript info service.
3992
3993         * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H,
3994         FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and
3995         svpsinfo.h.
3996         * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H,
3997         FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed.
3998
3999         * src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and
4000         FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and
4001         FT_SERVICE_POSTSCRIPT_INFO_H.
4002         (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new
4003         POSTSCRIPT_INFO service.
4004
4005         * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
4006         (cff_ps_has_glyph_names): New function.
4007         (cff_service_ps_info): New service.
4008         (cff_services): Updated.
4009
4010         * src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't
4011         include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly.
4012
4013         * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
4014         (cid_ps_get_font_info): New function.
4015         (cid_service_ps_info): New service.
4016         (cid_services): Updated.
4017
4018         * src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
4019         (t1_ps_get_font_info, t1_ps_has_glyph_names): New functions.
4020         (t1_service_ps_info): New service.
4021         (t1_services): Updated.
4022
4023         * src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
4024         (t42_ps_get_font_info, t42_ps_has_glyph_names): New functions.
4025         (t42_service_ps_info): New service.
4026
4027         * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H
4028         but t42types.h directly.
4029
4030         * src/psnames/psmodule.c (psnames_interface, psnames_services):
4031         Renamed to...
4032         (pscmaps_interface, pscmaps_services): This.
4033         Updated all users.
4034
4035
4036         * src/gzip/infblock.c (inflate_blocks): Remove compiler warning.
4037
4038 2003-10-22  Werner Lemberg  <wl@gnu.org>
4039
4040         * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'.
4041
4042         * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec'
4043         is real.
4044
4045         * src/type42/t42parse.c (t42_parse_encoding): Improve boundary
4046         checking while parsing.
4047
4048         * docs/CHANGES: Updated.
4049
4050 2003-10-21  Josselin Mouette  <joss@debian.org>
4051
4052         * include/freetype/internal/t1types.h (T1_FontRec): `paint_type'
4053         and `stroke_width' aren't pointers.
4054
4055         * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c
4056         (T1_Face_Done): Don't free `paint_type' and `stroke_width'.
4057
4058 2003-10-20  Graham Asher  <graham.asher@btinternet.com>
4059
4060         * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'.
4061
4062 2003-10-19  Werner Lemberg  <wl@gnu.org>
4063
4064         * src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from
4065         2003-08-18 introduced a severe bug (FT_Render_Glyph was called
4066         twice under some circumstances, causing strange results).  This
4067         is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'.
4068
4069         * src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'.
4070         * src/psaux/psobjs.c (ps_tobytes): Initialize `n'.
4071         * src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'.
4072
4073 2003-10-16  Werner Lemberg  <wl@gnu.org>
4074
4075         Completely revised Type 42 parser.  It now handles both fonts
4076         produced with ttftot42 (tested version 0.3.1) and
4077         TrueTypeToType42.ps (tested version May 2001; it is necessary to
4078         fix the broken header comment to be `%!PS-TrueTypeFont...').
4079
4080         * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth
4081         parameter to `FT_UInt'.
4082         * src/type42/t42objs.h: Updated.
4083
4084         * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory'
4085         to FT_Bool.
4086         (T42_Loader): Change type of `num_chars' and `num_glyphs' to
4087         FT_UInt.
4088         Add `swap_table' element.
4089         * src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed,
4090         T1_ToCoordArray, T1_ToTokenArray): Removed.
4091         (T1_ToBytes): New macro.
4092         (t42_is_alpha, t42_hexval): Removed.
4093         (t42_is_space): Handle `\0'.
4094         (t42_parse_encoding): Updated to use new PostScript parser routines
4095         from psaux.
4096         Handle `/Encoding [ ... ]' also.
4097         (T42_Load_Status): New enumeration.
4098         (t42_parse_sfnts): Updated to use new PostScript parser routines
4099         from psaux.
4100         (t42_parse_charstrings): Updated to use new PostScript parser
4101         routines from psaux.
4102         Handle `/CharStrings << ... >>' also.
4103         Don't expect that /.notdef is the first element in dictionary.  Copy
4104         code from type1 module to handle this.
4105         (t42_parse_dict): Updated to use new PostScript parser routines
4106         from psaux.
4107         Remove code for synthetic fonts (which can't occur in Type 42
4108         fonts).
4109         (t42_loader_done): Release `swap_table'.
4110
4111         * src/psaux/psobjs.c (skip_string): Increase `cur' properly.
4112
4113         * src/type1/t1load.c (parse_charstrings): Make test for `.notdef'
4114         faster.
4115
4116 2003-10-15  Graham Asher  <graham.asher@btinternet.com>
4117
4118         * src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c
4119         (fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty,
4120         _num_bdf_properties), src/gzip/infutil.c (inflate_mask),
4121         src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td),
4122         src/gzip/inftrees.h (inflate_trees_fixed), src/gzip/inftrees.c
4123         (inflate_trees_fixed): Decorate with more `const' to avoid
4124         writable global variables which are disallowed on ARM.
4125
4126 2003-10-08  Werner Lemberg  <wl@gnu.org>
4127
4128         * src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove
4129         code specially for synthetic fonts; this is handled elsewhere.
4130         (parse_encoding): Remove code specially for synthetic fonts; this is
4131         handled elsewhere.
4132         Improve boundary checking while parsing.
4133         (parse_dict): Improve boundary checking while parsing.
4134         Use ft_memcmp to simplify code.
4135
4136 2003-10-07  Werner Lemberg  <wl@gnu.org>
4137
4138         * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic
4139         fonts properly.
4140         (parse_charstrings): Copy correct number of characters into
4141         `name_table'.
4142
4143 2003-10-06  Werner Lemberg  <wl@gnu.org>
4144
4145         Heavy modification of the PS parser to handle comments and strings
4146         correctly.  This doesn't slow down the loading of PS fonts
4147         significantly since charstrings aren't affected.
4148
4149         * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to...
4150         (ft_isxdigit): This.  Updated all callers.
4151         (ft_isdigit): New alias to `isdigit'.
4152
4153         * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed
4154         `skip_alpha' to `skip_PS_token'.
4155         Add parameter to `to_bytes' and change some argument types.
4156
4157         * src/psaux/psauxmod.c (ps_parser_funcs): Updated.
4158         * src/psaux/psobjs.c (ft_char_table): New array to map character
4159         codes (ASCII and EBCDIC) of digits to numbers.
4160         (OP): New auxiliary macro holding either `>=' or `<' depending on
4161         the character encoding.
4162         (skip_comment): New function.
4163         (skip_spaces): Use it.
4164         (skip_alpha): Removed.
4165         (skip_literal_string, skip_string): New functions.
4166         (ps_parser_skip_PS_token): New function.  This is a better
4167         replacement of...
4168         (ps_parser_skip_alpha): Removed.
4169         (ps_parser_to_token, ps_parser_to_token_array): Updated.
4170         (T1Radix): Rewritten, using `ft_char_table'.
4171         (t1_toint): Renamed to...
4172         (ps_toint): This.  Update all callers.
4173         Use `ft_char_table'.
4174         (ps_tobytes): Add parameter to handle delimiters and change some
4175         argument types.
4176         Use `ft_char_table'.
4177         (t1_tofixed): Renamed to...
4178         (ps_tofixed): This.  Update all callers.
4179         Use `ft_char_table'.
4180         (t1_tocoordarray): Renamed and updated to...
4181         (ps_tocoordarray): This.  Update all callers.
4182         (t1_tofixedarray): Renamed and updated to...
4183         (ps_tofixedarray): This.  Update all callers.
4184         (t1_tobool): Renamed to...
4185         (ps_tobool): This.  Update all callers.
4186         (ps_parser_load_field): Updated.
4187         (ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS'
4188         everywhere.
4189         (ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array,
4190         ps_parser_to_fixed_array): Skip spaces.  Updated.
4191         (ps_parser_to_bytes): Add parameter to handle delimiters and change
4192         some argument types.  Updated.
4193         * src/psaux/psobjs.h: Updated.
4194
4195         * src/cid/cidload.c (cid_parse_dict): Updated.
4196         * src/cid/cidparse.c (cid_parser_new): Check whether the `StartData'
4197         token was really found.
4198         * src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed
4199         to...
4200         (cid_parser_skip_PS_token): This.
4201
4202         * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean
4203         fields.
4204         (T1_Skip_Alpha): Replaced with...
4205         (T1_Skip_PS_Token): This new macro.
4206         * src/type1/t1parse.c (hexa_value): Removed.
4207         (T1_Get_Private_Dict): Use `ft_isxdigit' and
4208         `psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal
4209         encoding.
4210         After decrypting, replace the four random bytes at the beginning
4211         with whitespace.
4212         * src/type1/t1load.c (t1_allocate_blend): Use proper error values.
4213         (parser_blend_design_positions, parse_blend_design_map,
4214         parse_weight_vector): Updated.
4215         (is_space): Handle `\f' also.
4216         (is_name_char): Removed.
4217         (read_binary_data): Updated.
4218         (parse_encoding): Use `ft_isdigit'.
4219         Updated.
4220         (parse_subrs): Updated.
4221         (TABLE_EXTEND): New macro.
4222         (parse_charstrings): Updated.
4223         Provide a workaround for buggy fonts which have more entries in the
4224         /CharStrings dictionary then expected; the function now adds some
4225         slots and skips entries which still exceed the new limit.
4226         (parse_dict): Updated.
4227         Terminate on the token `closefile'.
4228
4229         * src/type42/t42parse.c (T1_Skip_Alpha): Replaced with...
4230         (T1_Skip_PS_Token): This new macro.  Updated all callers.
4231         (t42_parse_encoding): Use `ft_isdigit'.
4232
4233
4234         * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_Ok if
4235         success.
4236
4237 2003-10-05  Werner Lemberg  <wl@gnu.org>
4238
4239         * include/freetype/ftmodule.h: Renamed to...
4240         * include/freetype/ftmodapi.h: This to avoid duplicate file names.
4241         * include/freetype/config/ftheader.h (FT_MODULE_H): Updated.
4242
4243 2003-10-04  Werner Lemberg  <wl@gnu.org>
4244
4245         * src/base/ftoutln.c (FT_OrientationExtremumRec,
4246         FT_Outline_Get_Orientation): Trivial typo fixes to make it compile.
4247
4248 2003-10-02  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
4249
4250         * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset'
4251         has four bytes, not two.
4252         Fix all users.
4253         (fnt_font_load, FNT_Load_Glyph): Add more font validity tests.
4254
4255 2003-10-01  David Turner  <david@freetype.org>
4256
4257         * src/autofit/*: Adding first source files of the new multi-script
4258         `auto-fitter'.
4259
4260         * include/freetype/ftoutln.h (FT_Orientation): New enumeration.
4261         (FT_Outline_Get_Orientation): New declaration.
4262
4263         * src/base/ftoutln.c (FT_OrientationExtremumRec): New structure.
4264         (ft_orientation_extremum_compute): New auxiliary function.
4265         (FT_Outline_Get_Orientation): New function to compute the fill
4266         orientation of a given glyph outline.
4267
4268         * include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed
4269         trivial bug which could crash the font engine when a cached service
4270         pointer was retrieved.
4271
4272 2003-09-30  Werner Lemberg  <wl@gnu.org>
4273
4274         * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is
4275         found.
4276
4277         * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE,
4278         IS_T1_SPACE): Removed.
4279         (PFB_Tag): Removed.
4280         (read_pfb_tag): Don't use PFB_Tag.
4281
4282         * src/type42/t42parse.c (t42_is_space): Handle `\f' also.
4283         (t42_parse_encoding): Handle synthetic fonts.
4284
4285 2003-09-29  Werner Lemberg  <wl@gnu.org>
4286
4287         * include/freetype/internal/t1types.h: Don't include
4288         FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H.
4289         * src/truetype/ttobjs.c: Don't include
4290         FT_SERVICE_POSTSCRIPT_NAMES_H.
4291
4292 2003-09-29  David Turner  <david@freetype.org>
4293
4294         Added new service to handle glyph name dictionaries, replacing the
4295         old internal header named `psnames.h' by `services/svpsname.h'.
4296         Note that this is different from `services/svpostnm.h' which only
4297         handles the retrieval of PostScript font names for a given face.
4298         (Should we merge these two services into a single header?)
4299
4300         * include/freetype/internal/psnames.h: Removed.  Most of its
4301         contents is moved to...
4302         * include/freetype/internal/services/svpsname.h: New file.
4303
4304         * include/freetype/internal/services/svpostnm.h
4305         (FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with...
4306         (FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro.
4307         (PsName): Service named changed to...
4308         (PsFontName): This.
4309         Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and
4310         `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere.
4311
4312         * include/freetype/internal/internal.h
4313         (FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed.
4314         * include/freetype/internal/psaux.h: Include
4315         FT_SERVICE_POSTSCRIPT_NAMES_H.
4316         (T1_DecoderRec): Updated type of `psnames'.
4317         * include/freetype/internal/t1types.h: Don't include
4318         FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4319         Include FT_INTERNAL_OBJECTS_H.
4320         * include/freetype/internal/t42types.h: Don't include
4321         FT_INTERNAL_POSTSCRIPT_NAMES_H.
4322         * include/freetype/internal/tttypes.h (TT_FaceRec): Updated.
4323
4324         * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed
4325         order of parameters.  All callers updated.
4326         (FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service
4327         globally, checking all modules.
4328         (FT_ServiceCacheRec): Updated.
4329         (FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing
4330         `svpsname.h'.
4331
4332         * include/freetype/internal/ftobjs.h, src/base/ftobjs.c
4333         (ft_module_get_service): New function.
4334
4335         * src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4336         but FT_SERVICE_POSTSCRIPT_NAMES_H.
4337         (cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES
4338         service.
4339         * src/cff/cffcmap.c (cff_cmap_unicode_init): Updated.
4340         * src/cff/cffload.c, src/cff/cffload.h:  Don't include
4341         FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4342         (cff_index_get_sid_string): Updated.
4343         * src/cff/cffobjs.c:  Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4344         but FT_SERVICE_POSTSCRIPT_NAMES_H.
4345         (cff_face_init): Use new POSTSCRIPT_NAMES service.
4346         * src/cff/cffobjs.h:  Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4347         but FT_SERVICE_POSTSCRIPT_NAMES_H.
4348
4349         * src/cid/cidobjs.c:  Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4350         but FT_SERVICE_POSTSCRIPT_NAMES_H.
4351         (cid_face_init): Use new POSTSCRIPT_NAMES service.
4352         * src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H.
4353
4354         * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use
4355         new POSTSCRIPT_NAMES service.
4356         * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode,
4357         t1_decode_init): Use new POSTSCRIPT_NAMES service.
4358         * src/psaux/t1cmap.h, src/psaux/t1decode.h: Don't include
4359         FT_INTERNAL_POSTSCRIPT_NAMES_H.
4360
4361         * src/psnames/psmodule.c:  Don't include
4362         FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4363         (ps_build_unicode_table): Renamed to...
4364         (ps_unicodes_init): This.
4365         (ps_lookup_unicode): Renamed to...
4366         (ps_unicodes_char_index): This.
4367         (ps_next_unicode): Renamed to...
4368         (ps_unicodes_char_next): This.
4369         (psnames_interface): Updated.
4370         (psnames_services): New services list.
4371         (psnames_get_service): New function.
4372         (psnames_module_class): Updated.
4373
4374         * src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4375         but FT_SERVICE_POSTSCRIPT_NAMES_H.
4376         (sfnt_init_face): Use new POSTSCRIPT_NAMES service.
4377         * src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
4378         but FT_SERVICE_POSTSCRIPT_NAMES_H.
4379         (tt_face_get_ps_name): Updated.
4380
4381         * src/truetype/ttobjs.c:  Don't include
4382         FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4383
4384         * src/type1/t1driver.c:  Don't include
4385         FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4386         * src/type1/t1objs.c:  Don't include
4387         FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4388         (T1_Face_Init): Use new POSTSCRIPT_NAMES service.
4389
4390         * src/type42/t42drivr.c (t42_get_ps_name): Renamed to...
4391         (t42_get_ps_font_name): This.
4392         (t42_service_ps_name): Renamed to...
4393         (t42_service_ps_font_name): This.
4394         (t42_services): Updated.
4395         * src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES
4396         service.
4397         * src/type42/t42objs.h:  Don't include
4398         FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
4399
4400
4401         * src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before
4402         testing its validity.  Reported by Henry Maddocks
4403         <maddocks@metservice.com>.
4404
4405 2003-09-21  Werner Lemberg  <wl@gnu.org>
4406
4407         * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE):
4408         Fix compilation warning (s/pptr/Pptr/).
4409
4410         * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H,
4411         FT_INTERNAL_FNT_TYPES_H): Removed.
4412
4413 2003-09-21  David Turner  <david@freetype.org>
4414
4415         Migrating the PFR and WINFNT drivers to the new service-based
4416         internal API.
4417
4418         * include/freetype/internal/fnttypes.h: Removed.  Most of its data
4419         are moved to winfnt.h and...
4420         * include/freetype/internal/services/svwinfnt.h: New file.
4421
4422         * include/freetype/internal/pfr.h: Removed.  Most of its data are
4423         moved to...
4424         * include/freetype/internal/services/svpfr.h: New file.
4425
4426         * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
4427         FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing
4428         pointer type argument.
4429         Updated all callers.
4430         Update macro names of services header files.
4431
4432         * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code.
4433
4434         * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of
4435         FT_INTERNAL_PFR_H.
4436         (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning,
4437         FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'.
4438
4439         * src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of
4440         FT_INTERNAL_FNT_TYPES_H.
4441         (FT_Get_WinFNT_Header): Use service provided in `WINFNT'.
4442
4443         * src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and
4444         FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H.
4445         (pfr_service_bdf): Updated.
4446         (pfr_services): New services list.
4447         (pfr_get_service): New function.
4448         (pfr_driver_class): Updated.
4449
4450         * src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and
4451         FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H.
4452         (winfnt_get_header, winfnt_get_service): New functions.
4453         (winfnt_service_rec): New structure providing WINFNT services.
4454         (winfnt_services): New services list.
4455         (winfnt_driver_class): Updated.
4456         * src/winfonts/winfnt.h: Add most of the removed fnttypes.h data.
4457
4458         * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo.
4459
4460         * src/type1/t1driver.c (t1_service_ps_name): Fix typo.
4461
4462         * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c,
4463         src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c,
4464         src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler
4465         warnings.
4466
4467 2003-09-19  David Bevan  <dbevan@emtex.com>
4468
4469         * src/type1/t1parse.c (pfb_tag_fields): Removed.
4470         (read_pfb_tag): Fix code so that it doesn't fail on end-of-file
4471         indicator (0x8003).
4472         * docs/CHANGES: Updated.
4473
4474 2003-09-16  Werner Lemberg  <wl@gnu.org>
4475
4476         * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
4477         FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type.
4478         Ugly, I know, but this is needed for compilation with C++ --
4479         maybe someone knows a better solution?
4480         Updated all callers.
4481
4482         * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove
4483         C++ compiler warnings.
4484
4485         * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property):
4486         Fix order of arguments passed to FT_FACE_FIND_SERVICE.
4487
4488 2003-09-15  Werner Lemberg  <wl@gnu.org>
4489
4490         Avoid header files with identical names.
4491
4492         * include/freetype/internal/services/bdf.h: Renamed to...
4493         * include/freetype/internal/services/svbdf.h: This.
4494         Add copyright notice.
4495         * include/freetype/internal/services/glyfdict.h: Renamed to...
4496         * include/freetype/internal/services/svgldict.h: This.
4497         Add copyright notice.
4498         * include/freetype/internal/services/multmast.h: Renamed to...
4499         * include/freetype/internal/services/svmm.h: This.
4500         Add copyright notice.
4501         Add FT_BEGIN_HEADER and FT_END_HEADER.
4502         * include/freetype/internal/services/sfnt.h: Renamed to...
4503         * include/freetype/internal/services/svsfnt.h: This.
4504         Add copyright notice.
4505         * include/freetype/internal/services/postname.h: Renamed to...
4506         * include/freetype/internal/services/svpostnm.h: This.
4507         Add copyright notice.
4508         * include/freetype/internal/services/xf86name.h: Renamed to...
4509         * include/freetype/internal/services/svxf86nm.h: This.
4510         Add copyright notice.
4511
4512         * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and
4513         FT_END_HEADER.
4514         Add copyright notice.
4515         Update macro names of services header files.
4516
4517         * builds/freetype.mk (SERVICES_DIR): New variable.
4518         (BASE_H): Add services header files.
4519
4520 2003-09-11  Werner Lemberg  <wl@gnu.org>
4521
4522         * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'.
4523
4524         * src/cff/cffdrivr.c: Don't load headers twice.
4525
4526         * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro.
4527         * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H.
4528
4529         * src/cff/cffcmap.c: Include `cfferrs.h'.
4530         * src/pfr/pfrdrivr.c: Include `pfrerror.h'.
4531         * src/sfnt/sfdriver.c: Include `sferrors.h'.
4532         * src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'.
4533
4534 2003-09-11  David Turner  <david@freetype.org>
4535
4536         Introducing the concept of `module services'.  This is the first
4537         step towards a massive simplification of the engine's internals, in
4538         order to get rid of various numbers of hacks.
4539
4540         Note that these changes will break source & binary compatibility for
4541         authors of external font drivers.
4542
4543         * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT,
4544         FT_DUMMY_STMNT): New macros.
4545
4546         * include/freetype/internal/ftserv.h: New file, containing the new
4547         structures and macros to provide `services'.
4548
4549         * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H,
4550         FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H):
4551         Removed, obsolete.
4552         (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'.
4553
4554         * include/freetype/internal/services/bdf.h,
4555         include/freetype/internal/services/glyfdict.h,
4556         include/freetype/internal/services/postname.h,
4557         include/freetype/internal/services/xf86name.h: New files.
4558
4559         * include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func,
4560         FT_Set_MM_Blend_Func): Function pointers moved (in modified form)
4561         to...
4562         * include/freetype/internal/services/multmast.h: New file.
4563
4564         * include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface'
4565         is now of type `FT_Module_Requester'.
4566         (SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers
4567         moved (in modified form) to...
4568         * include/freetype/internal/services/sfnt.h: New file.
4569
4570         * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function
4571         pointer moved (in modified form) to `services/sfnt.h'.
4572
4573         * include/freetype/ftmodule.h (FT_Module_Interface): Make it a
4574         a typedef to `FT_Pointer'.
4575
4576         * include/freetype/internal/tttypes.h (TT_FaceRec): Add
4577         `postscript_name'.
4578         * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
4579         `postscript_name'.
4580         Add `services' element.
4581         (FT_LibraryRec): Remove `meta_class'.
4582
4583         * src/base/ftbdf.c: Include FT_SERVICE_BDF_H.
4584         (test_font_type): Removed.
4585         (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services
4586         provided in `FT_SERVICE_ID_BDF'.
4587
4588         * src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H.
4589         (ft_face_get_mm_service): New auxiliary function to get services
4590         from `FT_SERVICE_ID_MULTI_MASTERS'.
4591         (FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates,
4592         FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'.
4593
4594         * src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
4595         FT_SERVICE_GLYPH_DICT_H.
4596         (ft_service_list_lookup): New function to get a specific service.
4597         (destroy_face): Updated.
4598         (Mac_Read_POST_Resource): Simplify some code.
4599         (IsMacResource): Fix warnings.
4600         (FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in
4601         `FT_SERVICE_ID_GLYPH_DICT'.
4602         (FT_Get_Postscript_Name): Use service provided in
4603         `FT_SERVICE_ID_POSTSCRIPT_NAME'.
4604         (FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in
4605         `FT_SERVICE_ID_SFNT_TABLE'.
4606
4607         * src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H.
4608         (FT_Get_X11_Font_Format): Use service provided in
4609         `FT_SERVICE_ID_XF86_NAME'.
4610
4611         * src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and
4612         FT_SERVICE_XFREE86_NAME_H.
4613         (bdf_get_charset_id): New function.
4614         (bdf_service_bdf): New structure providing BDF services.
4615         (bdf_services): New services list.
4616         (bdf_driver_requester): Use `ft_service_list_lookup'.
4617
4618         * src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and
4619         FT_SERVICE_GLYPH_DICT_H.
4620         (cff_service_glyph_dict): New structure providing CFF services.
4621         (cff_services): New services list.
4622         (cff_get_interface): Use `ft_service_list_lookup'.
4623
4624         * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
4625         FT_SERVICE_XFREE86_NAME_H.
4626         (cid_service_ps_name): New structure providing CID services.
4627         (cid_services): New services list.
4628         (cid_get_interface): Use `ft_service_list_lookup'.
4629
4630         * src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and
4631         FT_SERVICE_XFREE86_NAME_H.
4632         (pcf_service_bdf): New structure providing PCF services.
4633         (pcf_services): New services list.
4634         (pcf_driver_requester): Use `ft_service_list_lookup'.
4635
4636         * src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and
4637         FT_SERVICE_POSTSCRIPT_NAME_H.
4638         (get_sfnt_glyph_name): Renamed to...
4639         (sfnt_get_glyph_name): This.
4640         (get_sfnt_postscript_name): Renamed to...
4641         (sfnt_get_ps_name): This.
4642         Updated.
4643         (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures
4644         providing services.
4645         (sfnt_services): New services list.
4646         (sfnt_get_interface): Use `ft_service_list_lookup'.
4647
4648         * src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H.
4649         (tt_services): New services list.
4650         (tt_get_interface): Use `ft_service_list_lookup'.
4651
4652         * src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H,
4653         FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and
4654         FT_SERVICE_POSTSCRIPT_NAME_H.
4655         (t1_service_glyph_dict, t1_service_ps_name,
4656         t1_service_multi_masters): New structures providing Type 1 services.
4657         (t1_services): New services list.
4658         (Get_Interface): Use `ft_service_list_lookup'.
4659
4660         * src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H,
4661         FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H.
4662         (t42_service_glyph_dict, t42_service_ps_name): New structures
4663         providing Type 42 services.
4664         (t42_services): New services list.
4665         (T42_Get_Interface): Use `ft_service_list_lookup'.
4666
4667
4668         * README, docs/CHANGES: Updating version numbers for 2.1.6, and
4669         removing obsolete warnings in the documentation.
4670         * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
4671         * builds/unix/configure.ac (version_info): Set to 9:5:3.
4672         * builds/unix/configure: Regenerated.
4673
4674         * include/freetype/internal/ftcore.h,
4675         include/freetype/internal/ftexcept.h,
4676         include/freetype/internal/fthash.h,
4677         include/freetype/internal/ftobject.h: Removed.  Obsolete.
4678
4679 2003-09-09  David Turner  <david@freetype.org>
4680
4681         Fixing PFR kerning support.  The tables within the font file contain
4682         (charcode,charcode) kerning pairs, we need to convert them to
4683         (gindex,gindex).
4684
4685         * src/base/ftpfr.c (ft_pfr_check): Fix serious typo.
4686         * src/pfr/pfrload.c: Remove dead code.
4687         (pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs):
4688         New functions.
4689         (pfr_phy_font_done): Free `kern_pairs'.
4690         (pfr_phy_font_load): Call `pfr_sort_kerning_pairs'.
4691         * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction.
4692         * src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro.
4693         (PFR_KernPairRec): Make `kerning' an FT_Int.
4694         (PFR_PhyFontRec): New element `kern_pairs'.
4695         (PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and
4696         PFR_KERN_2BYTE_ADJ were erroneously reversed.
4697
4698         * include/freetype/ftoption.h: Commenting out the macro
4699         TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
4700
4701 2003-09-02  David Turner  <david@freetype.org>
4702
4703
4704         * Version 2.1.5 released.
4705         =========================
4706
4707
4708 2003-08-31  Manish Singh  <yosh@gimp.org>
4709
4710         * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but
4711         FT_MEM_MOVE.
4712
4713 2003-08-30  Werner Lemberg  <wl@gnu.org>
4714
4715         * include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312,
4716         FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New
4717         enumerations of FT_Encoding.  The FT_ENCODING_MS_* variants except
4718         FT_ENCODING_MS_SYMBOL are now deprecated.
4719         Updated all users.
4720         * docs/CHANGES: Document it.
4721
4722 2003-08-27  Werner Lemberg  <wl@gnu.org>
4723
4724         * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters
4725         for spacing.
4726
4727 2003-08-27  Mike FABIAN  <mfabian@suse.de>
4728
4729         * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c
4730         (BDF_Face_Init): Accept lowercase characters for slant and weight.
4731
4732 2003-08-18  David Turner  <david@freetype.org>
4733
4734         * include/freetype/config/ftoption.h: Disabling TrueType bytecode
4735         interpreter until the UNPATENTED_HINTING works as advertised.
4736
4737         * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for
4738         setting `load_flags'.
4739
4740         * Jamfile: Adding the `refdoc' target to the Jamfile in order to
4741         build the API Reference in `docs/reference' automatically.
4742
4743         * include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h,
4744         src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of
4745         `italic_angle', `underline_position', and `underline_thickness' to
4746         their previous values (i.e., long, short, and ushort) in order to
4747         avoid breaking binary compatibility.
4748
4749         * include/freetype/ttunpat.h: Fixing documentation comment.
4750
4751         * include/freetype/config/ftoption.h, devel/ftoption.h
4752         (TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING): Replaced with...
4753         (TT_CONFIG_OPTION_UNPATENTED_HINTING): This.  Updated all users.
4754         (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed.
4755
4756         * include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed.
4757         (FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro.  Use this with
4758         `FT_Set_Debug_Hook' to get the same effect as the removed
4759         TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING.
4760
4761         * src/truetype/ttobjs.c (tt_face_init): Use
4762         `FT_DEBUG_HOOK_UNPATENTED_HINTING'.
4763
4764 2003-08-06  Werner Lemberg  <wl@gnu.org>
4765
4766         * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
4767         (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix
4768         previous change.
4769
4770 2003-08-05  Werner Lemberg  <wl@gnu.org>
4771
4772         * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
4773         (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply
4774         font matrix to advance width also.
4775         * docs/CHANGES: Updated.
4776
4777 2003-07-26  Werner Lemberg  <wl@gnu.org>
4778
4779         * builds/unix/configure.ac (version_info): Set to 9:4:3.
4780         * builds/unix/configure: Updated.
4781         * docs/CHANGES, docs/VERSION.DLL: Updated.
4782
4783         * include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16
4784         also breaks binary compatibility.  Reintroduce an unsigned integer
4785         at the old position of `flags' called `reserved'.
4786
4787 2003-07-25  Werner Lemberg  <wl@gnu.org>
4788
4789         Make API reference valid HTML 4.01 transitional.
4790
4791         * src/tools/docmaker/tohtml.py (html_header_1): Add doctype
4792         and charset.
4793         (html_header_2): Fix style elements and add some more.
4794         Fix syntax.
4795         (block_header, block_footer, description_header, description_footer,
4796         marker_header, marker_footer, source_header, source_footer,
4797         chapter_header): Don't use <center>...</center> but `align=center'
4798         table attribute.
4799         (chapter_inter, chapter_footer): Add <li> and use special <ul>
4800         class.
4801         Use double quotes around table widths given in percent.
4802         (keyword_prefix, keyword_suffix): Don't change font color directly
4803         but use a new <span> class.
4804         (section_synopsis_header, section_synopsis_footer): Don't change
4805         color.
4806         (code_header, code_footer): Don't change font color directly but
4807         use a special <pre> class.
4808         (print_html_field): <tr> gets the `valign' attribute, not <table>.
4809         (print_html_field_list): Ditto.
4810         (index_exit): Don't use <center>...</center> but `align=center'
4811         table attribute.
4812         (section_enter): Ditto.
4813         (toc_exit): Don't emit </table>.
4814         (block_enter): Use <h4><a>, not <a><h4>.
4815         (__init__): Fix tag order in self.html_footer.
4816
4817 2003-07-25  David Turner  <david@freetype.org>
4818
4819         This change reimplements fix from 2003-05-30 without breaking
4820         binary compatibility.
4821
4822         * include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle',
4823         `is_fixed_pitch', `underline_position', `underline_thickness' are
4824         reverted to be normal values.
4825
4826         * include/freetype/internal/psaux.h (T1_FieldType): Remove
4827         `T1_FIELD_TYPE_BOOL_P', `T1_FIELD_TYPE_INTEGER_P',
4828         `T1_FIELD_TYPE_FIXED_P', `T1_FIELD_TYPE_FIXED_1000_P'.
4829         (T1_FIELD_TYPE_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P,
4830         T1_FIELD_FIXED_1000_P): Removed.
4831         (T1_FIELD_TYPE_BOOL): Renamed to...
4832         (T1_FIELD_BOOL): New macro.  Updated all callers.
4833
4834         * src/type42/t42parse.c: `italic_angle', `is_fixed_pitch',
4835         `underline_position', `underline_thickness', `paint_type',
4836         `stroke_width' are reverted to be normal values.
4837         (T42_KEYWORD_COUNT): New macro.
4838         (t42_parse_dict): New array `keyword_flags' to mark that a value has
4839         already been assigned to a dictionary entry.
4840         * src/type42/t42objs.c (T42_Face_Init, T42_Face_Done): Updated.
4841
4842         * src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch',
4843         `underline_position', `underline_thickness' are reverted to be
4844         normal values.
4845         * src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated.
4846
4847         * src/psaux/psobjs.c (ps_parser_load_field): Updated.
4848
4849         * src/type1/t1tokens.h: `italic_angle', `is_fixed_pitch',
4850         `underline_position', `underline_thickness', `paint_type',
4851         `stroke_width' are reverted to be normal values.
4852         * src/type1/t1objs.c (T1_Face_Done, T1_Face_Init): Updated.
4853         * src/type1/t1load.c (T1_FIELD_COUNT): New macro.
4854         (parse_dict): Add parameter for keyword flags.
4855         Record only first instance of a field.
4856         (T1_Open_Face): New array `keyword_flags'.
4857
4858 2003-07-24  Werner Lemberg  <wl@gnu.org>
4859
4860         * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
4861         * builds/unix/configure.ac (version_info): Set to 10:0:3.
4862         * builds/unix/configure: Updated.
4863         * builds/freetype.mk (refdoc): Fix --title.
4864
4865         * docs/CHANGES, docs/VERSION.DLL, README: Updated.
4866
4867         * src/tools/docmaker/sources.py (re_crossref): Fix regular
4868         expression to handle trailing punctuation characters.
4869         * src/tools/docmaker/tohtml.py (make_html_word): Updated.
4870
4871         * docs/release: New file.
4872
4873 2003-07-23  YAMANO-UCHI Hidetoshi  <mer@din.or.jp>
4874
4875         * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New
4876         member function `to_bytes'.
4877
4878         * src/psaux/psauxmod.c (ps_parser_funcs): New member
4879         `ps_parser_to_bytes'.
4880         (psaux_module_class): Increase version to 0x20000L.
4881
4882         * src/psaux/psobjs.c (IS_T1_LINESPACE): Add \f.
4883         (IS_T1_NULLSPACE): New macro.
4884         (IS_T1_SPACE): Add it.
4885         (skip_spaces, skip_alpha): New functions.
4886         (ps_parser_skip_spaces, ps_parser_skip_alpha): Use them.
4887         (ps_tobytes, ps_parser_to_bytes): New functions.
4888
4889 2003-07-07  Werner Lemberg  <wl@gnu.org>
4890
4891         * builds/freetype.mk (DOC_DIR): New variable.
4892         (refdoc): Use *_DIR variables.
4893         (distclean): Remove documentation files.
4894
4895         * builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'.
4896
4897         * configure: Set DOC_DIR variable.
4898
4899 2003-07-07  Patrik Hägglund  <patrik.hagglund@bredband.net>
4900
4901         * builds/freetype.mk (refdoc): New target to build the
4902         documentation.
4903         (.PHONY): Updated.
4904
4905         * include/freetype/freetype.h: Improve documentation of FT_CharMap.
4906         * include/freetype/ftimage,h: Fix documentation of FT_OUTLINE_FLAGS.
4907         * include/freetype/tttables.h: Document FT_Sfnt_Tag.
4908
4909 2003-07-06  Werner Lemberg  <wl@gnu.org>
4910
4911         * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfread.c
4912         (pcf_load_font): Fix computation of height if PIXEL_SIZE property is
4913         missing.
4914
4915 2003-07-01  Werner Lemberg  <wl@gnu.org>
4916
4917         * src/cache/ftcsbits.c (ftc_sbit_node_compare): Only add `size' if
4918         there is no error.  Reported by Knut St. Osmundsen
4919         <bird-freetype@anduin.net>.
4920
4921 2003-06-30  Werner Lemberg  <wl@gnu.org>
4922
4923         A new try to synchronize bitmap font access.
4924
4925         * include/freetype/freetype.h (FT_Bitmap_Size): `height' is now
4926         defined to return the baseline-to-baseline distance.  This was
4927         already the value returned by the BDF and PCF drivers.
4928
4929         The `width' field now gives the average width.  I wasn't able to
4930         find something better.  It should be taken as informative only.
4931
4932         New fields `size', `x_ppem', and `y_ppem'.
4933
4934         * src/pcf/pcfread.c (pcf_load_font): Updated to properly fill
4935         FT_Bitmap_Size.
4936         Do proper rounding and conversion from 72.27 to 72 points.
4937
4938         * src/bdf/bdfdrivr.c (BDF_Face_Init): Updated to properly fill
4939         FT_Bitmap_Size.
4940         Do proper rounding and conversion from 72.27 to 72 points.
4941
4942         * src/sfnt/sfobjs.c (sfnt_load_face): Updated to properly fill
4943         FT_Bitmap_Size.
4944
4945         * src/winfonts/winfnt.c (FNT_Face_Init): Updated to properly fill
4946         FT_Bitmap_Size.
4947
4948 2003-06-29  Werner Lemberg  <wl@gnu.org>
4949
4950         Redesigning the FNT driver to return multiple faces, not multiple
4951         strikes.  At least one font (app850.fon from WinME) contains
4952         different FNT charmaps for its subfonts.  Consequently, the previous
4953         design of having multiple bitmap strikes in a single font face fails
4954         since we have only one charmap per face.
4955
4956         * include/freetype/internal/fnttypes.h (FNT_Size_Rec): Removed.
4957         (FNT_FaceRec): Remove `num_fonts' field and replace `fonts' with
4958         `font'.
4959
4960         * src/base/ftwinfnt.c (FT_Get_WinFNT_Header): Updated.
4961
4962         * src/winfonts/winfnt.c (fnt_font_load): Don't set pixel_width equal
4963         to pixel_height.
4964         (fnt_face_done_fonts): Removed.
4965         (fnt_face_get_dll_fonts): Renamed to...
4966         (fnt_face_get_dll_font): This.  Add second function argument to
4967         select face index.
4968         Updated to load just one subfont.
4969         (fnt_font_done, FNT_Face_Done): Updated.
4970         (FNT_Face_Init): Handle `face_index'.
4971         Updated.
4972         (FNT_Size_Set_Pixels): Simplified; similar to BDF and PCF, the
4973         bitmap width is now ignored.
4974         (FNT_Load_Glyph): Updated.
4975         Fix glyph index computation.
4976         (winfnt_driver_class): Updated.
4977
4978 2003-06-25  Owen Taylor  <otaylor@redhat.com>
4979
4980         * src/sfnt/ttload.c (tt_face_load_hdmx): Don't assign
4981         num_records until we actually decide to load the table,
4982         otherwise, we'll segfault in tt_face_free_hdmx.
4983
4984 2003-06-24  Werner Lemberg  <wl@gnu.org>
4985
4986         * src/cff/cffdrivr.c (cff_get_glyph_name): Protect against zero
4987         glyph name pointer.  Reported by Mikey Anbary <manbary@vizrt.com>.
4988
4989 2003-06-23  Werner Lemberg  <wl@gnu.org>
4990
4991         * src/tools/glnames.py: Updated to AGL 2.0.
4992         * src/psnames/pstables.h: Regenerated.
4993
4994 2003-06-22  Werner Lemberg  <wl@gnu.org>
4995
4996         * include/freetype/cache/ftcglyph.h, include/freetype/ttnameid.h,
4997         src/base/ftcalc.c, src/base/fttrigon.c, src/cff/cffgload.c,
4998         src/otlayout/otlgsub.c, src/pshinter/pshrec.c,
4999         src/psnames/psmodule.c, src/sfnt/sfobjs.c, src/truetype/ttdriver.c:
5000         Decorate constants with `U' and `L' if appropriate.
5001
5002         * include/freetype/ftmoderr.h: Updated to include recent module
5003         additions.
5004
5005         * src/pshinter/pshnterr.h (FT_ERR_BASE): Define as
5006         `FT_Mod_Err_PShinter'.
5007         * src/type42/t42error.h (FT_ERR_BASE): Define as
5008         `FT_Mod_Err_Type42'.
5009
5010         * src/pshinter/pshrec.h (PS_HINTS_MAGIC): Removed.  Not used.
5011
5012         * include/freetype/config/ftconfig.h [__MWERKS__]: Define FT_LONG64
5013         and FT_INT64.
5014
5015 2003-06-21  Werner Lemberg  <wl@gnu.org>
5016
5017         * src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in
5018         computation of glyph_index.
5019         (FNT_Size_Set_Pixels): To find a strike, first check pixel_height
5020         only, then try to find a better hit by comparing pixel_width also.
5021         Without this fix it isn't possible to access all strikes.
5022         Also compute metrics.max_advance to be in sync with other bitmap
5023         drivers.
5024
5025         * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code.
5026         (FT_Set_Pixel_Sizes): Assign value to `metrics' after validation of
5027         arguments.
5028
5029 2003-06-20  Werner Lemberg  <wl@gnu.org>
5030
5031         Synchronize computation of height and width for bitmap strikes.  The
5032         `width' field in the FT_Bitmap_Size structure is now only useful to
5033         enumerate different strikes.  The `max_advance' field of the
5034         FT_Size_Metrics structure should be used to get the (maximum) width
5035         of a strike.
5036
5037         * src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for
5038         computing `available_sizes->width' but make it always equal to
5039         `available_sizes->height'.
5040
5041         * src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for
5042         computing `available_sizes->width' but make it always equal to
5043         `available_sizes->height'.
5044
5045         * src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single
5046         argument to function.
5047
5048         * src/psnames/psmodule.c (ps_unicode_value): Handle `.' after
5049         `uniXXXX' and `uXXXX[X[X]]'.
5050
5051 2003-06-19  Werner Lemberg  <wl@gnu.org>
5052
5053         * src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/.
5054         * src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c:
5055         s/FT_Err_/FTC_Err_/.
5056         * src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/.
5057         * src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/.
5058         * src/psaux/t1cmap.c: Include psauxerr.h.
5059         s/FT_Err_/PSaux_Err_/.
5060         * src/pshinter/pshnterr.h: New file.
5061         * src/pshinter/rules.mk: Updated.
5062         * src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h.
5063         s/FT_Err_/PSH_Err_/.
5064         * src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c:
5065         s/FT_Err_/PFR_Err_/.
5066         * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
5067         src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/.
5068         * src/truetype/ttgload.c: s/FT_Err_/TT_Err_/.
5069         * src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define
5070         FT_ERR_PREFIX and FT_ERR_BASE.
5071         s/FT_Err_/Gzip_Err_/.
5072
5073 2003-06-19  Dirck Blaskey  <listtarget@danbala.com>
5074
5075         * src/cff/cffload (cff_encoding_load): `nleft' must be FT_UInt,
5076         otherwise adding 1 might wrap the result.
5077
5078 2003-06-18  Werner Lemberg  <wl@gnu.org>
5079
5080         * src/psnames/psmodule.c (ps_unicode_value): Add support to
5081         recognize `uXXXX[X[X]]' glyph names.
5082         Don't handle glyph names starting with `uni' which have more than
5083         four digits.
5084
5085 2003-06-16  Werner Lemberg  <wl@gnu.org>
5086
5087         * include/freetype/freetype.h (FT_Open_Flags): Replaced with
5088         #defines for the constants.
5089         (FT_Open_Args): Change type of `flags' to FT_UInt.
5090         (FT_GlyphSlot): Move `flags' to FT_Slot_Internal.
5091
5092         * include/freetype/ftimage.h (FT_Outline_Flags, FT_Raster_Flag):
5093         Replaced with #defines for the constants.
5094
5095         * include/freetype/internal/ftobjs.h (FT_Slot_Internal): New
5096         field `flags' (from FT_GlyphSlot).
5097         Updated all affected source files.
5098         (FT_GLYPH_OWN_BITMAP): New macro (from ftgloadr.h).
5099
5100         * include/freetype/internal/ftgloadr.h (FT_GLYPH_OWN_BITMAP): Moved
5101         to ftobjs.h.
5102
5103         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Use dummy
5104         FT_GlyphSlot_Internal object.
5105
5106 2003-06-15  Werner Lemberg  <wl@gnu.org>
5107
5108         * builds/compiler/gcc.mk, builds/compiler/gcc-dev.mk (CFLAGS):
5109         Add -fno-strict-aliasing to get rid of zillion warnings from gcc
5110         version 3.3.
5111
5112 2003-06-14  Werner Lemberg  <wl@gnu.org>
5113
5114         * include/freetype/ftglyph.h (ft_glyph_bbox_unscaled,
5115         ft_glyph_bbox_subpixels, ft_glyph_bbox_gridfit,
5116         ft_glyph_bbox_truncate, ft_glyph_bbox_pixels): Replaced with
5117         FT_GLYPH_BBOX_UNSCALED, FT_GLYPH_BBOX_SUBPIXELS,
5118         FT_GLYPH_BBOX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS.
5119         The lowercase variants are now (deprecated aliases) to the uppercase
5120         versions.
5121         Updated all other files.
5122
5123         * include/freetype/ftmodule.h (ft_module_font_driver,
5124         ft_module_renderer, ft_module_hinter, ft_module_styler,
5125         ft_module_driver_scalable, ft_module_driver_no_outlines,
5126         ft_module_driver_has_hinter): Replaced with FT_MODULE_FONT_DRIVER,
5127         FT_MODULE_RENDERER, FT_MODULE_HINTER, FT_MODULE_STYLER,
5128         FT_MODULE_DRIVER_SCALABLE, FT_MODULE_DRIVER_NO_OUTLINES,
5129         FT_MODULE_DRIVER_HAS_HINTER.
5130         The lowercase variants are now (deprecated aliases) to the uppercase
5131         versions.
5132         Updated all other files.
5133
5134         * src/base/ftglyph.c (FT_Glyph_Get_CBox): Handle bbox_mode better
5135         as enumeration.
5136
5137         * src/pcf/pcfdrivr.c (pcf_driver_class), src/winfonts/winfnt.c
5138         (winfnt_driver_class), src/bdf/bdfdrivr.c (bdf_driver_class): Add
5139         the FT_MODULE_DRIVER_NO_OUTLINES flag.
5140
5141 2003-06-13  Detlef Würkner  <TetiSoft@apg.lahn.de>
5142
5143         * src/pfr/pfrobjs.c (pfr_slot_load): Apply font matrix.
5144
5145 2003-06-13  Werner Lemberg  <wl@gnu.org>
5146
5147         * builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also.
5148
5149         * builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for
5150         EMX gcc compiler.
5151         * builds/dos/detect.mk: Add target `emx'.
5152
5153         * builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't
5154         like a trailing semicolon; add a dummy command.
5155
5156         * src/cid/cidload.c: Remove parse_font_bbox code (already enclosed
5157         with #if 0 ... #endif).
5158
5159         * src/type1/t1tokens.h: Handle /FontName.
5160         * src/type1/t1load.c (parse_font_name): Removed.
5161         Remove parse_font_bbox code (already enclosed with #if 0 ...
5162         #endif).
5163
5164         * src/type42/t42parse.c (t42_parse_font_name): Removed.
5165         Remove t42_parse_font_bbox code (already enclosed with #if 0 ...
5166         #endif).
5167         (t42_keywords): Handle /FontName with T1_FIELD_KEY.
5168
5169 2003-06-12  Werner Lemberg  <wl@gnu.org>
5170
5171         * include/freetype/internal/psaux.h (T1_FieldType): Add
5172         T1_FIELD_TYPE_KEY.
5173         (T1_FIELD_KEY): New macro.
5174         * src/psaux/psobjs.c (ps_parser_load_field): Handle
5175         T1_FIELD_TYPE_KEY.
5176
5177         * src/cid/cidtoken.h: Use T1_FIELD_KEY for /CIDFontName.
5178
5179 2003-06-11  Alexander Malmberg  <alexander@malmberg.org>
5180
5181         * src/cache/ftlru.c (FT_LruList_Remove_Selection): Decrease
5182         number of nodes.
5183         (FT_LruList_Lookup): Fix assertion for out-of-memory case.
5184
5185 2003-06-11  Werner Lemberg  <wl@gnu.org>
5186
5187         * src/cid/cidload.c (cid_decrypt): Removed.
5188         (cid_read_subrs): Use t1_decrypt from psaux module.
5189         * src/cid/cidload.h: Updated.
5190         * src/cid/cidgload.c (cid_load_glyph): Use t1_decrypt from psaux
5191         module.
5192
5193 2003-06-10  Werner Lemberg  <wl@gnu.org>
5194
5195         * src/cid/cidobjs.c: Apply change 2003-05-31 from <Ron.Dev@gmx.de>.
5196         Compute style flags.
5197         Fix computation of root->height.
5198         * src/cid/cidtoken.h: Handle FontBBox.
5199         * src/cid/cidload.c (cid_load_keyword): Handle
5200         T1_FIELD_LOCATION_BBOX.
5201         (parse_font_bbox): Commented out.
5202         (cid_field_records): Comment out element for parsing FontBBox.
5203
5204         * src/type42/t42parse.c (t42_parse_font_bbox): Commented out.
5205         (t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with
5206         T1_FIELD_CALLBACK.
5207         (t42_parse_font_bbox): Commented out.
5208         (t42_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
5209         * src/type42/t42objs.c (T42_Face_Init): Apply change 2003-05-31
5210         from <Ron.Dev@gmx.de>.
5211
5212 2003-06-09  George Williams  <gww@silcom.com>
5213
5214         * src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's
5215         TrueType specification.
5216         (Ins_MDRP, Ins_MIRP): Fix single width cut-in test.
5217
5218 2003-06-09  Detlef Würkner  <TetiSoft@apg.lahn.de>
5219
5220         * src/gzip/ftgzip.c: (inflate_mask): Replaced with...
5221         (NO_INFLATE_MASK): This.
5222         * src/gzip/infutil.h: Declare `inflate_mask' conditionally by
5223         NO_INFLATE_MASK.
5224
5225 2003-06-09  Alexis S. L. Carvalho  <alexis@cecm.usp.br>
5226
5227         * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END
5228         correctly.
5229
5230 2003-06-09  Wolfgang Domröse  <porthos.domroese@harz.de>
5231
5232         * src/pshinter/pshglob.c (psh_globals_new): Change calculation of
5233         dim->stdw.count to avoid compiler problem.
5234
5235         * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block
5236         variables to the beginning of the function to avoid compiler
5237         problems.
5238         Add casts necessary for 16bit compilers.
5239
5240 2003-06-09  Werner Lemberg  <wl@gnu.org>
5241
5242         * src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c.
5243         (PFR_DRV_H): Add pfrtypes.h.
5244
5245         * include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/.
5246
5247 2003-06-08  Karl Schultz  <kschultz@rsinc.com>
5248
5249         * src/pfr/pfrsbit.c (pfr_bitwriter_init): Change type of third
5250         argument to FT_Bool.
5251         (pfr_lookup_bitmap_data): Change type of third and fourth argument
5252         to FT_UInt.  Updated caller.
5253         (pfr_load_bitmap_bits): Change type of fourth argument to FT_Bool.
5254
5255 2003-06-08  Werner Lemberg  <wl@gnu.org>
5256
5257         Completely revised FreeType's make management.
5258
5259         . In all makefiles `/' is used as the path separator.  The
5260           conversion to the real path separators is done as late as
5261           possible using $(subst ...).
5262
5263         . $(HOSTSEP) no longer exists.  Now, $(SEP) gives the path separator
5264           for the operating system, and the new $(COMPILER_SEP) the path
5265           separator for the compiler tools.
5266
5267         . $(BUILD) has been renamed to $(BUILD_DIR).  In general, all
5268           directory variables end with `_DIR'.  The variants ending in `_'
5269           (like `BASE_' have been removed).
5270
5271         The following ChangeLog entries only describe changes which are
5272         not related to the redesign.
5273
5274         * builds/beos/beos-def.mk (BUILD_DIR): Fix typo.
5275         * builds/compiler/watcom.mk (LINK_LIBRARY): Fix linker call to avoid
5276         overlong arguments as suggested by J. Ali Harlow
5277         <ali@avrc.city.ac.uk>.
5278         * builds/dos/dos-wat.mk: New file.
5279         * builds/freetype.mk (FREETYPE_H): Include header files from the
5280         `devel' subdirectory.
5281
5282         * builds/os2/os2-dev.mk, builds/unix/unixddef.mk,
5283         builds/unix/unixddef.mk, builds/win32/w32-bccd.mk,
5284         builds/win32/w32-dev.mk (BUILD_DIR): Fix path.
5285
5286         * builds/unix/configure.ac, builds/unix/configure: Updated.
5287         * builds/unix/unix-def.in (DISTCLEAN): Add `freetype2.pc'.
5288
5289 2003-06-07  Werner Lemberg  <wl@gnu.org>
5290
5291         * src/base/ftmac.c (FT_New_Face_From_SFNT): s/rlen/sfnt_size/ to
5292         make it compile.
5293
5294         * devel/ftoption.h: Updated.
5295
5296 2003-06-07  Detlef Würkner  <TetiSoft@apg.lahn.de>
5297
5298         * include/freetype/internal/psaux.h, src/truetype/ttgload.h:
5299         s/index/idx/ to fix compiler warnings.
5300
5301         * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Use more `volatile' to
5302         fix compiler warning.
5303
5304         * src/gzip/ftgzip.c (BUILDFIXED): Removed.
5305         * src/gzip/inftrees.c (inflate_trees_fixed) [!BUILDFIXED]: Use
5306         FT_UNUSED to remove compiler warning.
5307
5308 2003-06-06  Werner Lemberg  <wl@gnu.org>
5309
5310         * include/freetype/ftstroker.h: Renamed to...
5311         * include/freetype/ftstroke.h: This.
5312
5313         * src/base/ftstroker.c: Renamed to...
5314         * src/base/ftstroke.c: This.
5315
5316         * include/freetype/config/ftheader.h (FT_STROKER_H): Updated.
5317
5318         * src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk:
5319         Updated.
5320
5321         * src/pcf/pcfdriver.c: Renamed to...
5322         * src/pcf/pcfdrivr.c: This.
5323         * src/pcf/pcfdriver.h: Renamed to...
5324         * src/pcf/pcfdrivr.h: This.
5325
5326         * src/pcf/Jamfile, src/pcf/rules.mk: Updated.
5327
5328 2003-06-05  Wenlin Institute (Tom Bishop)  <wenlin@wenlin.com>
5329
5330         * src/base/ftmac.c (file_spec_from_path) [TARGET_API_MAC_CARBON]:
5331         Add `#if !defined(__MWERKS__)'.
5332
5333 2003-06-05  Werner Lemberg  <wl@gnu.org>
5334
5335         * include/freetype/internal/psaux.h (T1_FieldType): Add
5336         T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
5337         (T1_FIELD_FIXED_1000, T1_FIELD_FIXED_1000_P): New macros.
5338         * src/psaux/psobjs.c (ps_parser_load_field): Handle
5339         T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
5340
5341         * src/cff/cffparse.c (cff_kind_fixed_thousand): New enumeration.
5342         (CFF_FIELD_FIXED_1000): New macro.
5343         (cff_parser_run): Handle cff_kind_fixed_thousand.
5344         * src/cff/cfftoken.h: Use CFF_FIELD_FIXED_1000 for blue_scale.
5345         * src/cff/cffload (cff_subfont_load): Fix default values of
5346         expansion_factor and blue_scale.
5347
5348         * src/cid/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000
5349         for blue_scale.
5350
5351         * src/pshinter/pshglob.c (psh_globals_new): Fix default value of
5352         blue_scale.
5353
5354 2003-06-04  Wolfgang Domröse  <porthos.domroese@harz.de>
5355
5356         * include/freetype/internal/ftdriver.h,
5357         include/freetype/internal/ftobjs.h,
5358         include/freetype/internal/psaux.h, src/cid/cidgload.c,
5359         src/psaux/psobjs.c, src/psaux/t1decode.c, src/psaux/psobjs.h,
5360         src/pshinter/pshrec.c, src/pshinter/pshalgo.c,
5361         src/psnames/psmodule.c, src/raster/ftraster.c, src/sfnt/sfobjs.c,
5362         src/smooth/ftgrays.c, src/smooth/ftsmooth.c, src/truetype/ttobjs.c,
5363         src/truetype/ttdriver.c, src/truetype/ttgload.c, src/type1/t1afm.c,
5364         src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1load.c,
5365         src/type1/t1objs.c, src/type42/t42parse.c, src/type42/t42parse.h:
5366         Many casts and slight argument type changes to make it work with
5367         a 16bit compiler.
5368
5369 2003-06-04  Werner Lemberg  <wl@gnu.org>
5370
5371         * include/freetype/config/ftoption.h: Defining
5372         TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING by default is a bad idea
5373         since some fonts (e.g. Arial) produce worse results than without
5374         hinting.  Reverted.
5375
5376 2003-06-04  Werner Lemberg  <wl@gnu.org>
5377
5378         * src/truetype/ttgload.c (load_truetype_glyph)
5379         [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Call
5380         FT_GlyphLoader_CheckPoints before adding phantom points.  This fixes
5381         a segfault bug with fonts (e.g. htst3.ttf) which have nested
5382         subglyphs more than one level deep.  Reported by Anthony Fok.
5383
5384         * include/freetype/config/ftoption.h: Define
5385         TT_CONFIG_OPTION_BYTECODE_INTERPRETER,
5386         TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, and
5387         TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to make it the new
5388         default.
5389
5390 2003-06-03  Werner Lemberg  <wl@gnu.org>
5391
5392         * src/autohint/ahhint.c (ah_hinter_hint_edges): Removed.  Just a
5393         wrapper for ah_hint_edges.
5394         (ah_hint_edges): Renamed to...
5395         (ah_hinter_hint_edges): This.
5396
5397         * src/base/ftobjs.c (FT_Set_Hint_Flags): Removed.  Unused.
5398
5399         * include/freetype/internal/ftobjs.h (FT_Face_InternalRec),
5400         include/freetype/internal/psaux.h (T1_DecoderRec),
5401         src/cff/cffgload.h (CFF_Builder): Remove `hint_flags' field.
5402         Unused.
5403
5404         * src/cff/cffgload.c (cff_builder_init): Updated.
5405         (cff_decoder_parse_charstrings) <cff_op_endchar>: Call hinter->apply
5406         with decoder->hint_mode instead of builder->hint_flags.
5407         * src/psaux/t1decode.c (t1_decoder_init): Updated.
5408
5409         * src/base/ftstroker.c (ft_stroke_border_export): s/index/idx/.
5410
5411         * src/sfnt/sfobjs.c (sfnt_load_face): Commented out code which
5412         increased root->height by 15% if the line gap was zero.  There exist
5413         fonts (containing e.g. form drawing characters) which intentionally
5414         have a zero line gap value.
5415
5416         * src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj):
5417         Removed.  Unused.
5418         Updated all callers.
5419
5420 2003-06-02  Werner Lemberg  <wl@gnu.org>
5421
5422         * src/cff/cffobjs.c (cff_face_init): Use symbolic names for
5423         Adobe specific encoding IDs (there was a wrong EID value for custom
5424         encoding).
5425
5426         * src/cff/cffcmap.h (CFF_CMapStdRec): Remove `count'.
5427         * src/cff/cffcmap.c (cff_cmap_encoding_init,
5428         cff_cmap_encoding_done): Updated.
5429         (cff_cmap_encoding_char_index, cff_cmap_encoding_char_next): Use
5430         256 as limit for character code.
5431
5432 2003-06-01  Werner Lemberg  <wl@gnu.org>
5433
5434         * src/winfonts/winfnt.c (FNT_Load_Glyph): Revert change from
5435         2003-03-20.
5436
5437 2003-05-31  Werner Lemberg  <wl@gnu.org>
5438
5439         * include/freetype/fttrigon.h (FT_Vector_Normalize): Removed.
5440
5441 2003-05-31    <Ron.Dev@gmx.de>
5442
5443         * src/type1/t1objs.c (T1_Face_Init): Improve algorithm for guessing
5444         the font style by ignoring spaces and hyphens.
5445
5446         * builds/unix/freetype2.in: Fix `Version' field.
5447
5448 2003-05-30  Werner Lemberg  <wl@gnu.org>
5449
5450         Avoid overwriting of numeric font dictionary entries for synthetic
5451         fonts.  Additionally, some entries were handled as `integer' instead
5452         of `number'.
5453
5454         * include/freetype/internal/psaux.h (T1_FieldType): Add
5455         T1_FIELD_TYPE_BOOL_P, T1_FIELD_TYPE_INTEGER_P, and
5456         T1_FIELD_TYPE_FIXED_P.
5457         (T1_FIELD_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P): New macros.
5458         * src/psaux/psobjs.c (ps_parser_load_field): Handle new field types.
5459
5460         * include/freetype/internal/cfftypes.h (CFF_FontRecDict),
5461         src/cff/cfftoken.h: Change type of underline_position and
5462         underline_thickness to FT_Fixed.
5463         * src/cff/cffload.c (cff_subfont_load): Fix default values of
5464         underline_position and underline_thickness.
5465         * src/cff/cffobjs.c (cff_face_init): Set underline_position
5466         and underline_thickness in `root'.
5467
5468         * include/freetype/internal/t1types.h (T1_Font): Change point_type
5469         and stroke_width to pointers.
5470         * include/freetype/t1tables.h (PS_FontInfo): Change italic_angle,
5471         is_fixed_pitch, underline_position, and underline_thickness to
5472         pointers.
5473         * src/type1/t1tokens.h: Change italic_angle, is_fixed_pitch,
5474         underline_position, and underline_thickness to pointers.  Change
5475         the type of the latter two to `fixed'.
5476         Change type of stroke_width to `fixed' and make it a pointer.
5477         Change paint_type to pointer.
5478         * src/type1/t1objs.c (T1_Face_Done): Updated.
5479         (T1_Face_Init): Updated.
5480         Fix assignment of underline_position and underline_thickness.
5481
5482         * src/cid/cidtoken.h: Change italic_angle, is_fixed_pitch,
5483         underline_position, and underline_thickness to pointers.  Change
5484         the type of the latter two to `fixed'.
5485         Change type of stroke_width to `fixed'.
5486         * src/cid/cidobjs.c (cid_face_done): Updated.
5487         (cid_face_init): Updated.
5488         Fix assignment of underline_position and underline_thickness.
5489
5490         * src/type42/t42parse.c: Change italic_angle, is_fixed_pitch,
5491         underline_position, and underline_thickness to pointers.  Change the
5492         type of the latter two to `fixed'.
5493         Change type of stroke_width to `fixed' and make it a pointer.
5494         Change paint_type to pointer.
5495         * src/type42/t42objs.c (T42_Face_Init): Updated.
5496         Fix assignment of underline_position and underline_thickness.
5497         (T42_Face_Done): Updated.
5498
5499         * src/base/ftobjs.c (open_face_from_buffer): Fix compiler warning.
5500         * src/pshinter/pshglob.c, src/pshinter/pshglob.h
5501         (psh_globals_set_scale): Make it a local function.
5502
5503         * test/gview.c: Fix renaming ps3->ps typo.
5504         Formatting.
5505
5506 2003-05-29  Werner Lemberg  <wl@gnu.org>
5507
5508         * src/pshinter/pshalgo1.[ch], src/pshinter/pshalgo2.[ch]: Removed.
5509         * src/pshinter/pshalgo.h: Removed.
5510
5511         * src/pshinter/pshalgo3.[ch]: Renamed to...
5512         * src/pshinter/pshalgo.[ch]: New files.
5513         s/PSH3/PSH/.
5514         s/psh3/psh/.
5515         s/ps3/ps/.
5516
5517         * src/pshinter/pshrec.c, src/pshinter/pshinter.c: Updated.
5518         * src/pshinter/rules.mk, src/pshinter/Jamfile: Updated.
5519
5520         * src/pshinter/pshglob.[ch] (psh_dimension_snap_width): Commented
5521         out.
5522
5523         * tests/gview.c: Remove code for pshalgo1 and pshalgo2.
5524         Updated.
5525
5526 2003-05-28  Martin Zinser  <zinser@decus.de>
5527
5528         * vms_make.com: Reworked support for shareable images on VMS.  The
5529         first version was kind of a hack; the current implementation of the
5530         procedure to extract the required symbols is much cleaner.
5531
5532         Reworked creation of MMS files, avoiding a number of temporary files
5533         which were created in the previous version.
5534
5535         Further work on creating descrip.mms files on the fly.
5536
5537         * builds/vms/descrip.mms, src/autohint/descrip.mms,
5538         src/type1/descrip.mms: Removed.
5539
5540 2003-05-28  Werner Lemberg  <wl@gnu.org>
5541
5542         * src/pshinter/pshalgo3.c (psh3_glyph_compute_extrema): Skip
5543         contours with only a single point to avoid segfault.
5544
5545         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Activate code for
5546         handling `origin'.
5547
5548 2003-05-24  Werner Lemberg  <wl@gnu.org>
5549
5550         * src/autohint/ahtypes.h (AH_OPTION_NO_STRONG_INTERPOLATION):
5551         Removed since unused.
5552
5553 2003-05-21  Werner Lemberg  <wl@gnu.org>
5554
5555         * include/freetype/config/ftstdlib.h (ft_strcat): New wrapper macro
5556         for strcat.
5557
5558         * src/base/ftmac.c (create_lwfn_name): s/isupper/ft_isupper/.
5559         (parse_font): s/memcpy/ft_memcpy/.
5560         (is_dfont) [TARGET_API_MAC_CARBON]: s/memcmp/ft_memcmp/.
5561         * src/base/ftobjs.c (load_mac_face) [FT_MACINTOSH]:
5562         s/strlen/ft_strlen/.
5563         s/strcat/ft_strcat/.
5564         s/strcpy/ft_strcpy/.
5565         * src/gzip/zutil.h: s/memset/ft_memset/.
5566         s/memcmp/ft_memcmp/.
5567
5568         * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
5569         (PCF_Face_Init): Test for charset registry case-insensitively.
5570
5571         * src/gzip/ftgzip.c (ft_gzip_file_io): Revert change from yesterday;
5572         it has already been fixed differently.
5573
5574         * src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around
5575         if-clause.
5576
5577 2003-05-21  Martin Zinser  <zinser@decus.de>
5578
5579         * t1load.c (parse_blend_axis_types): Fix compiler warning.
5580
5581         * descrip.mms: Removed.  Now created by...
5582
5583         * vms_make.com: New file.
5584
5585 2003-05-21  Weiqi Gao  <weiqigao@networkusa.net>
5586
5587         * src/gzip/ftgzip.c (ft_gzip_file_io): Avoid zero value of `delta'
5588         to prevent infinite loop.
5589
5590 2003-05-21  Lars Clausen  <lrclause@cs.uiuc.edu>
5591
5592         * docs/VERSION.DLL: Provide better autoconf snippet to check
5593         FreeType version.
5594
5595 2003-05-21  Werner Lemberg  <wl@gnu.org>
5596
5597         * src/base/ftobjs.c (open_face): Free `internal' not
5598         `face->internal' in case of error to avoid possible segfault.
5599
5600         * src/pshinter/pshalgo3.c (ps3_hints_apply): Check whether we
5601         actually have an outline.
5602
5603 2003-05-20  David Chester  <davidchester@qmx.net>
5604
5605         * src/pshinter/pshalgo3.c (ps3_hints_apply): Try to optimize
5606         y_scale so that the top of non-capital letters is aligned on a pixel
5607         boundary whenever possible.
5608
5609         * src/autohint/ahhint.c (ah_hint_edges): Make sure that lowercase
5610         m's maintain their symmetry.
5611
5612 2003-05-20  Werner Lemberg  <wl@gnu.org>
5613
5614         * src/autohint/ahhint.c (ah_hinter_load_glyph): Oops!  David's
5615         patch from yesterday has been resolved already in a different
5616         way.  Reverted.
5617
5618 2003-05-19  David Chester  <davidchester@qmx.net>
5619
5620         * src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale
5621         y_scale locally but face->size->metrics.y_scale.
5622
5623 2003-05-19  David Turner  <david@freetype.org>
5624
5625         * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start
5626         value for `hi' to avoid infinite loop.
5627
5628 2003-05-18  Yong Sun  <sunyong@njstar.com>
5629
5630         * src/raster/ftraster.c (Insert_Y_Turn): Fix overflow test.
5631
5632 2003-05-18  Werner Lemberg  <wl@gnu.org>
5633
5634         * include/freetype/config/ftoption.h [FT_CONFIG_OPTION_MAC_FONTS]:
5635         New macro.
5636         * src/base/ftobjs.c: Use it to control mac font support on non-mac
5637         platforms.
5638
5639 2003-05-17  George Williams  <gww@silcom.com>
5640
5641         Implement partial support of Mac fonts on non-Mac platforms.
5642
5643         * src/base/ftobjs.c (memory_stream_close, new_memory_stream,
5644         open_face_from_buffer, Mac_Read_POST_Resource,
5645         Mac_Read_sfnt_Resource, IsMacResource, IsMacBinary, load_mac_face)
5646         [!FT_MACINTOSH]: New functions.
5647         (FT_Open_Face) [!FT_MACINTOSH]: Use load_mac_face.
5648
5649 2003-05-17  Werner Lemberg  <wl@gnu.org>
5650
5651         * src/base/ftobjs.c (FT_Load_Glyph): Scale linear advance width only
5652         if FT_FACE_FLAG_SCALABLE is set (otherwise we have a division by
5653         zero since FNT and friends don't define `face->units_per_EM').
5654
5655 2003-05-15  David Turner  <david@freetype.org>
5656
5657         * src/base/fttrigon.c (FT_Vector_Rotate): Avoid rounding errors
5658         for small values.
5659
5660 2003-05-15  Werner Lemberg  <wl@gnu.org>
5661
5662         * src/autohint/ahtypes.h (AH_PointRec): Remove unused `in_angle'
5663         and `out_angle' fields.
5664
5665 2003-05-14  George Williams  <gww@silcom.com>
5666
5667         * src/base/ftmac.c (FT_New_Face_From_SFNT): Handle CFF files also.
5668
5669 2003-05-14  Werner Lemberg  <wl@gnu.org>
5670
5671         * include/freetype/freetype.h: Fix typo in comment
5672         (FT_HAS_FIXED_SIZES).
5673
5674 2003-05-10  Dan Williams  <dan@bigw.org>
5675
5676         * builds/unix/aclocal.m4: Comment out definition of
5677         `allow_undefined_flag' for Darwin 1.3.
5678         * builds/unix/configure.ac: Add option --with-old-mac-fonts.
5679         * builds/unix/ltmain.sh: Fix version numbering for Darwin 1.3.
5680         * builds/unix/configure: Regenerated.
5681
5682         * include/freetype/config/ftconfig.h: Fix conditions for defining
5683         `FT_MACINTOSH'.
5684         * src/base/ftbase.c: Include `ftmac.c' conditionally.
5685         * src/base/ftmac.c: Handle __GNUC__.
5686
5687 2003-05-07  YAMANO-UCHI Hidetoshi  <mer@din.or.jp>
5688
5689         * src/cid/cidload.c (is_alpha): Removed.
5690         (cid_parse_dict): Use `cid_parser_skip_alpha' instead of `is_alpha'.
5691
5692 2003-05-07  Werner Lemberg  <wl@gnu.org>
5693
5694         * src/autohint/ahoptim.c, src/autohint/ahoptim.h: Obsolete, removed.
5695
5696 2003-05-07  David Turner  <david@freetype.org>
5697
5698         * src/autohint/ahglyph.c (ah_setup_uv): Exchange `for' loop and
5699         `switch' statement to make it run faster.
5700         (ah_outline_compute_segments): Reset `segment->score' and
5701         `segment->link'.
5702         (ah_outline_link_segments): Provide alternative code which does
5703         the same but runs much faster.
5704         Handle major direction also.
5705         (ah_outline_compute_edges): Scale `edge_distance_threshold' down
5706         after rounding instead of scaling comparison value in loop.
5707
5708         * src/autohint/ahhint.c (ah_hinter_align_strong_points): Provide
5709         alternative code which runs faster.
5710         Handle `before->scale == 0'.
5711
5712         * src/autohint/ahtypes.h (AH_SegmentRec): Move some fields down.
5713         (AH_EdgeRec): Move some fields in structure.
5714         New field `scale'.
5715
5716         * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Use binary search.
5717
5718 2003-05-02  Werner Lemberg  <wl@gnu.org>
5719
5720         * src/autohint/ahoptim.c (LOG): Renamed to...
5721         (AH_OPTIM_LOG): This.
5722         (AH_Dump_Springs): Fix log message format.
5723
5724         * src/autohint/ahhint.c (ah_hint_edges_3): Renamed to...
5725         (ah_hint_edges): This.
5726
5727 2002-05-02  Keith Packard  <keithp@keithp.com>
5728
5729         * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Initialize `max_advance'.
5730
5731 2003-05-01  Werner Lemberg  <wl@gnu.org>
5732
5733         * src/autohint/ahglyph.c (ah_test_extrema): Renamed to...
5734         (ah_test_extremum): This.
5735
5736 2003-04-28  Werner Lemberg  <wl@gnu.org>
5737
5738         * builds/unix/configure.ac: Generate `freetype.pc' from
5739         `freetype.in'.
5740         * builds/unix/configure: Regenerated.
5741         * builds/unix/install.mk (install, uninstall): Handle `freetype.pc'.
5742
5743 2003-04-28  Gustavo J. A. M. Carneiro  <gjc@inescporto.pt>
5744
5745         * builds/unix/freetype2.in: New file.  Contains building information
5746         for the `pkg-config' package.
5747
5748 2003-04-28  David Turner  <david@freetype.org>
5749
5750         * src/base/ftobjs.c (FT_Load_Glyph): Fix boundary check for
5751         `glyph_index'.
5752
5753 2003-04-25:  Graham Asher  <graham.asher@btinternet.com>
5754
5755         Added the optional unpatented hinting system for TrueType.  It
5756         allows typefaces which need hinting to produce correct glyph forms
5757         (e.g., Chinese typefaces from Dynalab) to work acceptably without
5758         infringing Apple patents.  This system is compiled only if
5759         TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in
5760         ftoption.h.
5761
5762         * include/freetype/ttunpat.h: New file.  Defines
5763         FT_PARAM_TAG_UNPATENTED_HINTING.
5764
5765         * include/freetype/config/ftheader.h (FT_TRUETYPE_UNPATENTED_H): New
5766         macro to use when including ttunpat.h.
5767
5768         * include/freetype/config/ftoption.h
5769         (TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
5770         TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): New configuration macros
5771         (not defined, but in comments) for the unpatented hinting system.
5772
5773         * include/freetype/internal/tttypes.h (TT_FaceRec)
5774         [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: New element `FT_Bool
5775         unpatented_hinting'.
5776
5777         * src/truetype/ttinterp.c (NO_APPLE_PATENT, APPLE_THRESHOLD):
5778         Removed.
5779         (GUESS_VECTOR): New macro.
5780         (TT_Run_Context) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
5781         Set `both_x_axis'.
5782         (tt_default_graphics_state)
5783         [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Updated.
5784         (Current_Ratio) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
5785         Handle `unpatented_hinting'.
5786         (Direct_Move) [NO_APPLE_PATENT]: Removed.
5787         [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
5788         (Project, FreeProject)
5789         [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
5790         (Compute_Funcs) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
5791         Implement unpatented hinting.
5792         (DO_SPVTCA, DO_SFVTCA, DO_SPVTL, DO_SFVTL, DO_SPVFS, DO_SFVFS,
5793         Ins_SDPVTL): Call `GUESS_VECTOR'.
5794         (DO_GPV, DO_GFV) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
5795         Handle `unpatented_hinting'.
5796         (Compute_Point_Displacement) [NO_APPLE_PATENT]: Removed.
5797         [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
5798         hinting.
5799         (Move_Zp2_Point, Ins_SHPIX, Ins_DELTAP, Ins_DELTAC)
5800         [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
5801         hinting.
5802         (TT_RunIns): Updated.
5803
5804         * src/truetype/ttobjs.c
5805         [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Include
5806         FT_TRUETYPE_UNPATENTED_H.
5807         (tt_face_init) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
5808         TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING]: Check
5809         FT_PARAM_TAG_UNPATENTED_HINTING.
5810
5811         * src/truetype/ttobjs.h (TT_GraphicsState)
5812         [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Add `both_x_axis'.
5813
5814 2003-04-25  Werner Lemberg  <wl@gnu.org>
5815
5816         * src/bdf/bdflib.c (hash_bucket, hash_lookup): Use `const' for first
5817         argument.
5818         (bdf_get_font_property): Use `const' for third argument.
5819         Updated all callers.
5820         * src/bdf/bdfdrivr.c (BDF_Face_Init): Set pixel width and height
5821         similar to the PCF driver.
5822         * src/bdf/bdf.h (_hashnode): Use `const' for `key'.
5823         Updated.
5824
5825         * src/gzip/ftgzip.c: C++ doesn't like that the array `inflate_mask'
5826         is declared twice.  It is perhaps better to modify the zlib source
5827         files directly instead of this hack.
5828         (zcalloc, zfree, ft_gzip_stream_close, ft_gzip_stream_io): Add casts
5829         to make build with g++ successful.
5830
5831 2003-04-24  Manish Singh  <yosh@gimp.org>
5832
5833         * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
5834         (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Split on `-'
5835         also for searching the style name.
5836
5837 2003-04-24  David Turner  <david@freetype.org>
5838
5839         * src/pcf/pcfread.c (pcf_load_font): Fixed the computation of
5840         face->num_glyphs.  We must increase the value by 1 to respect the
5841         convention that glyph index 0 always corresponds to the `missing
5842         glyph'.
5843
5844 2003-04-24  Werner Lemberg  <wl@gnu.org>
5845
5846         * builds/unix/unix-cc.in (CFLAGS): Add @CPPFLAGS@.
5847
5848 2003-04-24  Dieter Baron  <dillo@netbsd.org>
5849
5850         * builds/unix/freetype-config.in (cflags): Emit FreeType 2's include
5851         files first.  Otherwise there are conflicts with FreeType 1
5852         installed simultaneously.
5853
5854 2003-04-23  Werner Lemberg  <wl@gnu.org>
5855
5856         Fixing bugs reported by Nelson Beebe.
5857
5858         * src/base/ftstroker.c (FT_Stroker_ParseOutline): Remove unused
5859         variable `in_path'.
5860
5861         * src/base/ftobjs (ft_glyphslot_set_bitmap): Change type of
5862         second argument to `FT_Byte*'.
5863         * include/freetype/internal/ftobjs.h: Updated.
5864
5865         * src/bdf/bdflib.c (_bdf_readstream): Remove unused variable `res'.
5866         (_bdf_parse_glyphs): Remove unused variable `next'.
5867         Mark `call_data' as unused.
5868
5869         * src/cache/ftlru.c (FT_LruList_Lookup): Remove unused variable
5870         `plast'.
5871
5872         * src/pcf/pcfread.c (pcf_seek_to_table_type): Slight recoding to
5873         actually use `error'.
5874         (pcf_load_font): Remove unused variable `avgw'.
5875
5876         * src/pfr/pfrobjs.c (pfr_face_get_kerning): Change return type
5877         to `void'.
5878         Mark `error' as unused.
5879         * src/pfr/pfrobjs.h: Updated.
5880         * src/pfr/pfrdrivr.c (pfr_get_kerning): Updated.
5881
5882         * src/sfnt/ttload.c (sfnt_dir_check): Remove unused variable
5883         `format_tag'.
5884
5885         * src/sfnt/ttcmap0.c (tt_cmap6_validate, tt_cmap10_validate): Remove
5886         unused variable `start'.
5887         (tt_cmap10_char_next): Remove unused variable `result'
5888
5889         * src/sfnt/sfobjs.c (tt_face_get_name): Mark `error' as unused.
5890
5891         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Mark `error' as
5892         unused.
5893
5894         * src/type1/t1objs.c (T1_Face_Init): Remove unused variable
5895         `pshinter'.
5896
5897         * src/type1/t1gload.c (T1_Load_Glyph): Use `glyph_data_loaded'
5898         only for FT_CONFIG_OPTION_INCREMENTAL.
5899
5900 2003-04-23  Akito Hirai  <akito@kde.gr.jp>
5901
5902         * src/sfnt/ttcmap0.c (tt_cmap4_validate): Provide a weak variant
5903         of the glyph ID bounding check if FT_VALIDATE_TIGHT is not active.
5904         Without this change, many CJK fonts from Dynalab are rejected.
5905
5906 2003-04-23  Joe Marcus Clarke  <marcus@FreeBSD.org>
5907
5908         * src/base/ftbdf.c (FT_Get_BDF_Property): Check for valid
5909         `get_interface'.
5910
5911 2003-04-23  Paul Miller  <paulm@profoundeffects.com>
5912
5913         * src/base/ftmac.c (parse_fond): Fix handling of style names.
5914
5915 2003-04-23  Werner Lemberg  <wl@gnu.org>
5916
5917         * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist
5918         instead of FT_UInt for `len'.
5919
5920 2003-04-22  Werner Lemberg  <wl@gnu.org>
5921
5922         * src/gzip/ftgzip.c (zcalloc) [!FT_CONFIG_OPTION_SYSTEM_ZLIB]:
5923         Convert K&R format to modern C usage.
5924         (FT_Stream_OpenGzip): Use long constant.
5925
5926 2003-04-21  Werner Lemberg  <wl@gnu.org>
5927
5928         * src/cache/ftccache.c (ftc_cache_lookup): Remove shadow declaration
5929         of `manager'.
5930
5931 2003-04-20  Werner Lemberg  <wl@gnu.org>
5932
5933         * doc/INSTALL.UNX: Cleaned up.
5934
5935 2003-04-09  Torrey Lyons  <torrey@mrcla.com>
5936
5937         * src/base/ftmac.c (open_face_from_buffer): Removed a double-free
5938         bug that had nasty consequences when trying to open an `invalid'
5939         font on a Mac.
5940
5941 2003-04-09  Mike Fabian  <mfabian@suse.de>
5942
5943         * src/bdf/bdfdrivr.h (BDF_encoding_el), src/pcf/pcf.h
5944         (PCF_EncodingRec): Changed FT_Short to FT_UShort in order to be able
5945         to access more than 32768 glyphs in fonts.
5946
5947 2003-04-08  David Turner  <david@freetype.org>
5948
5949
5950         * Version 2.1.4 released.
5951         =========================
5952
5953
5954 2003-04-03  Martin Muskens  <mmuskens@aurelon.com>
5955
5956         * src/type1/t1load.c (T1_Open_Face): Fixed the code to make it
5957         handle special cases where a font only contains a `.notdef' glyph
5958         (happens in PDF-embedded fonts).  Otherwise, FT_Panic was called.
5959
5960 2003-03-27  David Turner  <david@freetype.org>
5961
5962         * README: Updated.
5963
5964         * README.UNX: Removed (now replaced by docs/INSTALL.UNX).
5965
5966         * src/pshinter/pshalgo3.c: The hinter now performs as in 2.1.3 and
5967         will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is
5968         used.
5969         (psh3_dimension_quantize_len): Enabled.
5970         (psh3_hint_align): Enable commented code.
5971         (psh3_hint_align_light): Commented out.
5972
5973         * src/base/ftobjs.c (FT_Set_Char_Size): Changed the default
5974         computations to include rounding in all cases; this is required to
5975         provide accurate kerning data when native TrueType hinting is
5976         enabled.
5977
5978         * src/type1/t1load.c (is_name_char): The Type 1 loader now accepts
5979         more general names according to the PostScript specification (the
5980         previous one was too restrictive).
5981         (parse_font_name, parse_encoding, parse_charstrings, parse_dict):
5982         Use `is_name_char'.
5983         (parse_subrs): Handle empty arrays.
5984
5985 2003-03-20  David Turner  <david@freetype.org>
5986
5987         Serious rewriting of the documentation.
5988
5989         * docs/BUGS, docs/BUILD: Removed.
5990         * docs/DEBUG.TXT: Renamed to...
5991         * docs/DEBUG: This.
5992         * docs/CUSTOMIZE, docs/TRUETYPE, docs/UPGRADE.UNX: New files.
5993         * docs/INSTALL.ANY, docs/INSTALL.UNX, docs/INSTALL.GNU New files,
5994         containing platform specific information previously in INSTALL.
5995         * docs/readme.vms: Renamed to...
5996         * docs/INSTALL.VMS: This.
5997
5998         * docs/*: Updated.
5999
6000         Introduced three new functions to deal with glyph bitmaps within
6001         FT_GlyphSlot objects:
6002
6003           ft_glyphslot_free_bitmap
6004           ft_glyphslot_alloc_bitmap
6005           ft_glyphslot_set_bitmap
6006
6007         These functions are much more convenient to use than managing the
6008         FT_GLYPH_OWN_BITMAP flag manually.
6009
6010         * include/freetype/internal/ftobjs.h (ft_glyphslot_free_bitmap,
6011         ft_glyphslot_alloc_bitmap, ft_glyphslot_set_bitmap): New functions.
6012         * src/base/ftobjs.c: Implement them.
6013         (ft_glyphslot_done): Use ft_glyphslot_free_bitmap.
6014
6015         * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdriver.c
6016         (PCF_Glyph_Load): Remove unused variable `memory'.
6017         Use `ft_glyphslot_*' functions.
6018         Don't set `FT_GLYPH_OWN_BITMAP'.
6019
6020         * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Use
6021         `ft_glyphslot_alloc_bitmap'.
6022
6023         * src/sfnt/ttsbit.c (Load_SBit_Image): Change 5th argument to type
6024         `FT_GlyphSlot'.
6025         Adding argument `depth' to handle recursive calls.
6026         Use `ft_glyphslot_alloc_bitmap'.
6027         (tt_face_load_sbit_image): Remove unused variable `memory'.
6028         Don't handle `FT_GLYPH_OWN_BITMAP'.
6029         Update call to Load_SBit_Image.
6030
6031         * src/type42/t42objs.c (ft_glyphslot_clear): Renamed to...
6032         (t42_glyphslot_clear): This.  Updated caller.
6033         Call `ft_glyphslot_free_bitmap'.
6034
6035         * src/winfonts/winfnt.c (FNT_Load_Glyph): Use
6036         `ft_glyphslot_set_bitmap'.
6037         Don't handle `FT_GLYPH_OWN_BITMAP'.
6038
6039         * src/cache/ftlru.c (FT_LruList_Lookup): Fixed an invalid assertion
6040         check.
6041
6042         * src/autohint/ahglyph.c (ah_outline_load): Add two scaling
6043         arguments.
6044         * src/autohint/ahglyph.h: Updated.
6045         * src/autohint/ahhint.c (ah_hinter_load): Updated.
6046         * src/autohint/ahglobal.c (ah_hinter_compute_widths): Updated.
6047
6048         * src/cache/ftccache.c (ftc_family_done): Fixed small bug that could
6049         crash the cache in rare circumstances (mostly with broken fonts).
6050
6051 2003-03-15  David Turner  <david@freetype.org>
6052
6053         * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a small rounding
6054         bug.  Actually, it seems that previous versions of FreeType didn't
6055         perform TrueType rounding exactly as appropriate.
6056
6057 2003-03-14  David Turner  <david@freetype.org>
6058
6059         * src/truetype/ttdriver.c (Set_Char_Sizes): Fixing the small
6060         TrueType native rendering glitches; they came from a small rounding
6061         error.
6062
6063 2003-03-13  David Turner  <david@freetype.org>
6064
6065         Added new environment variables to control memory debugging with
6066         FreeType.  See the description of `FT2_DEBUG_MEMORY',
6067         `FT2_ALLOC_TOTAL_MAX' and `FT2_ALLOC_COUNT_MAX' in DEBUG.TXT.
6068
6069         * src/base/ftdbgmem.c (FT_MemTableRec): Add `alloc_count',
6070         `bound_total', `alloc_total_max', `bound_count', `alloc_count_max'.
6071         (ft_mem_debug_alloc): Handle new variables.
6072         (ft_mem_debug_init): s/FT_DEBUG_MEMORY/FT2_DEBUG_MEMORY/.
6073         Handle new environment variables.
6074         * docs/DEBUG.TXT: Updated.
6075
6076         Fixed the cache sub-system to correctly deal with out-of-memory
6077         conditions.
6078
6079         * src/cache/ftccache.c (ftc_node_destroy): Comment out generic
6080         check.
6081         (ftc_cache_lookup): Implement loop.
6082         * src/cache/ftccmap.c: Define FT_COMPONENT.
6083         * src/cache/ftcsbits.c (ftc_sbit_node_load): Handle
6084         FT_Err_Out_Of_Memory.
6085         * src/cache/ftlru.c: Include FT_INTERNAL_DEBUG_H.
6086         (FT_LruList_Lookup): Implement loop.
6087
6088         * src/pfr/pfrobjs.c (pfr_face_done): Fix memory leak.
6089         (pfr_face_init): Fixing compiler warnings.
6090
6091         * src/psaux/psobjs.c (reallocate_t1_table): Fixed a bug (memory
6092         leak) that only happened when a try to resize an array would end in
6093         an out-of-memory condition.
6094
6095         * src/smooth/ftgrays.c (gray_convert_glyph): Removed compiler
6096         warnings / volatile bug.
6097
6098         * src/truetype/ttobjs.c (tt_glyphzone_done): Removed segmentation
6099         fault that happened in tight memory environments.
6100
6101 2003-02-28  Pixel  <pixel@mandrakesoft.com>
6102
6103         * src/gzip/ftgzip.c (ft_gzip_file_done): Fixed memory leak: The ZLib
6104         stream was not properly finalized.
6105
6106 2003-02-25  Anthony Fok  <anthony@thizlinux.com>
6107
6108         * src/cache/ftccmap.c: Include FT_TRUETYPE_IDS_H.
6109         (ftc_cmap_family_init): The cmap cache now
6110         supports UCS-4 charmaps when available in Asian fonts.
6111
6112         * src/sfnt/ttload.c, src/base/ftobjs.c: Changed `asian' to `Asian'
6113         in comments.
6114
6115 2003-02-25  David Turner  <david@freetype.org>
6116
6117         * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Fixed a bug that
6118         caused FreeType to loop endlessly when trying to read certain
6119         compressed gzip files.  The following test reveals the bug:
6120
6121           touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
6122
6123         Several fixes to the PFR font driver:
6124
6125         - The list of available embedded bitmaps was not correctly set in
6126           the root FT_FaceRec structure describing the face.
6127
6128         - The glyph loader always tried to load the outlines when
6129           FT_LOAD_SBITS_ONLY was specified.
6130
6131         - The table loaded now scans for *undocumented* elements of a
6132           physical font's auxiliary data record.  This is necessary to
6133           retrieve the `real' family and style names.
6134
6135         NOTE THAT THESE CHANGES THE FAMILY NAME OF MANY PFR FONTS!
6136
6137         * src/pfr/pfrload.c (pfr_aux_name_load): New function.
6138         (pfr_phy_font_done): Free `family_name' and `style_name' also.
6139         Remove unused variables.
6140         (pfr_phy_font_load): Extract useful information from the auxiliary
6141         bytes.
6142
6143         * src/pfr/pfrobjs.c (pfr_face_done): Set pointers to NULL.
6144         (pfr_face_init): Provide fallback values for `family_name' and
6145         `style_name'.
6146         Handle strikes.
6147         (pfr_slot_load): Handle FT_LOAD_SBITS_ONLY.
6148         * src/pfr/pfrtypes.h (PFR_PhyFontRec): Add fields `ascent',
6149         `descent', `leading', `family_name', and `style_name'.
6150
6151         * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a rounding bug
6152         when computing the scale factors for a given character size in
6153         points with resolution.
6154
6155         * devel/ft2build.h, devel/ftoption.h: New files (in a new directory)
6156         which are special development versions of include/ft2build.h and
6157         include/freetype/config/ftoption.h, respectively.
6158
6159 2003-02-18  David Turner  <david@freetype.org>
6160
6161         Fixing the slight distortion problem that occurred due to the latest
6162         auto-hinter changes.
6163
6164         * src/base/ftobjs.c (ft_recompute_scaled_metrics): Fix rounding.
6165
6166         * src/truetype/ttdriver.c (Set_Char_Sizes): New variable `metrics2'.
6167         [!TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Removed.
6168
6169         * src/truetype/ttobjs.h (TT_SizeRec): New field `metrics'.
6170         * src/truetype/ttobjs.c (Reset_Outline_Size): Fix initialization of
6171         `metrics'.
6172         [FT_CONFIG_CHESTER_ASCENDER]: Code removed.
6173         (Reset_SBit_Size): Fix initialization of `metrics'.
6174
6175         * src/truetype/ttinterp.c (TT_Load_Context): Fix initialization of
6176         `exec->metrics'.
6177
6178         * src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width
6179         `correction' which seemed to provide more trouble than benefits.
6180
6181 2003-02-13  Graham Asher  <graham.asher@btinternet.com>
6182
6183         Changed the incremental loading interface in a way that makes it
6184         simpler and allows glyph metrics to be changed (e.g., by adding a
6185         constant, as required by CFF fonts) rather than just overridden.
6186         This was required to make the GhostScript-to-FreeType bridge work.
6187
6188         * src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_INCREMENTAL]:
6189         Allow metrics to be overridden.
6190         * src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]:
6191         Ditto.
6192
6193         * src/truetype/ttgload.c (load_truetype_glyph)
6194         [FT_CONFIG_OPTION_INCREMENTAL]: Simplify.
6195         (compute_glyph_metrics) [FT_CONFIG_OPTION_INCREMENTAL]: Code block
6196         moved down.
6197
6198         * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
6199         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
6200
6201         * include/freetype/ftincrem.h: Updated.
6202
6203 2003-01-31  David Turner  <david@freetype.org>
6204
6205         * docs/CHANGES, docs/VERSION.DLL, docs/TODO: Updating documentation
6206         for the 2.1.4 release.
6207
6208         * builds/win32/visualc/freetype.dsp,
6209         builds/win32/visualc/index.html: Updating the project file for
6210         2.1.4.
6211
6212         * src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c,
6213         src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c,
6214         src/gzip/infutil.c: Removed old-style (K&R)function definitions.
6215         This avoids warnings with Visual C++ at its most pedantic mode.
6216
6217         * src/pfr/pfrsbit.c: Removed compiler warnings.
6218
6219         * src/cache/ftccmap.c (ftc_cmap_family_init): Changed an FT_ERROR
6220         into an FT_TRACE1 since it caused `ftview' and others to dump too
6221         much junk when trying to display a waterfall with a font without a
6222         Unicode charmap (e.g.  SYMBOL.TTF).
6223
6224         Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last
6225         patch from David Chester, but with a much simpler (and saner)
6226         implementation.
6227
6228         * src/autohint/ahhint.c (ah_hinter_load_glyph)
6229         [FT_CONFIG_CHESTER_BLUE_SCALE]: Try to optimize the y_scale so that
6230         the top of non-capital letters is aligned on a pixel boundary
6231         whenever possible.
6232
6233         * src/base/ftobjs.c (FT_Set_Char_Size)
6234         [FT_CONFIG_CHESTER_BLUE_SCALE]: Round differently.
6235         * src/truetype/ttdriver.c (Set_Char_Sizes)
6236         [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Do some rounding only
6237         if this macro is defined.
6238
6239         * src/truetype/ttobjs.c (Reset_Outline_Size)
6240         [FT_CONFIG_CHESTER_ASCENDER]: Round differently.
6241
6242         * src/pshinter/pshalgo3.c: Improved the Postscript hinter.  Getting
6243         rid of stem snapping seems to work well here (though the stems are
6244         still slightly moved to increase contrast).
6245         (psh3_dimension_quantize_len): Commented out.
6246         (psh3_hint_align_light): New function.
6247         (psh3_hint_align): Comment out some code.
6248
6249         THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
6250         STILL SUCK.
6251
6252 2003-01-22  David Chester  <davidchester@qmx.net>
6253
6254         * src/autohint/ahhint.c (ah_compute_stem_width): Small fix to the
6255         stem width optimization.
6256
6257 2003-01-22  David Turner  <david@freetype.org>
6258
6259         Adding a new API `FT_Get_BDF_Property' to retrieve the BDF
6260         properties of a given PCF or BDF font.
6261
6262         * include/freetype/ftbdf.h (BDF_PropertyType): New enumeration.
6263         (BDF_Property, BDF_PropertyRec): New structure.
6264         FT_Get_BDF_Property): New function.
6265         * include/freetype/internal/bdftypes.h: Include FT_BDF_H.
6266         (BDF_GetPropertyFunc): New function pointer.
6267
6268         * src/base/ftbdf.c (test_font_type): New helper function.
6269         (FT_Get_BDF_Charset_ID): Use `test_font_type'.
6270         (FT_Get_BDF_Property): New function.
6271
6272         * src/bdf/bdfdrivr.c: Include FT_BDF_H.
6273         (bdf_get_bdf_property, bdf_driver_requester): New functions.
6274         (bdf_driver_class): Use `bdf_driver_requester'.
6275
6276         * src/pcf/pcfdrivr.c: Include FT_BDF_H.
6277         (pcf_get_bdf_property, pcf_driver_requester): New functions
6278         (pcf_driver_class): Use `pcf_driver_requester'.
6279
6280         * src/pcf/pcfread.c: Include `pcfread.h'.
6281         (pcf_find_property): Decorate it with FT_LOCAL_DEF.
6282         * src/pcf/pcfread.h: New file, providing `pcf_find_property'.
6283
6284         * src/sfnt/ttload.c (sfnt_dir_check): Relaxed the `head' table size
6285         verification to accept a few broken fonts who pad the size
6286         incorrectly (the table should be padded, but its `size' field
6287         shouldn't according to the specification).
6288
6289 2003-01-18  Werner Lemberg  <wl@gnu.org>
6290
6291         * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
6292         --copy' from libtool 1.4.3.
6293         * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
6294         automake 1.7.1.
6295         * builds/unix/configure: Regenerated with autoconf 2.54.
6296         * builds/unix/config.guess, builds/unix/config.sub: Updated from
6297         `config' CVS module at subversions.gnu.org.
6298         * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
6299         `automake' CVS module at subversions.gnu.org.
6300
6301 2003-01-15  David Turner  <david@freetype.org>
6302
6303         * include/freetype/freetype.h: Fixed documentation for
6304         FT_Size_Metrics.
6305
6306 2003-01-15  James Su  <suzhe@turbolinux.com.cn>
6307
6308         * src/gzip/ftgzip.c (ft_gzip_check_header): Bugfix: couldn't read
6309         certain gzip-ed font files (typo: `&&' -> `&').
6310
6311 2003-01-15  Huw D M Davies  <h.davies1@physics.ox.ac.uk>
6312
6313         Added a Windows .FNT specific API (mostly for Wine).  Also fixed a
6314         nasty bug in the header loader which would cause invalid memory
6315         overwrites.
6316
6317         * include/freetype/config/ftheader.h (FT_WINFONTS_H): New macro
6318         for ftwinfnt.h.
6319         * include/freetype/internal/fnttypes.h: Include FT_WINFONTS_H.
6320         (FNT_FontRec): Updated.
6321         Move Windows FNT definition to...
6322         * include/freetype/ftwinfnt.h: This new file.
6323         (FT_WinFNT_HeaderRec): Rename `reserved2' to `reserved1'.
6324         * src/base/ftwinfnt.c: New file, providing `FT_Get_WinFNT_Header'.
6325         * src/winfonts/winfnt.c (winfnt_header_fields): Updated.
6326         Rename `reserved2' to `reserved1'.
6327         (fnt_font_load): Updated.
6328
6329         * src/base/Jamfile, src/base/descrip.mms, src/base/rules.mk:
6330         Updated.
6331
6332 2003-01-14  Graham Asher  <graham.asher@btinternet.com>
6333
6334         * include/freetype/ftglyph.h, src/base/ftglyph.c: Added `const' to
6335         the type of the first argument to FT_Matrix_Multiply, which isn't
6336         changed -- this adds documentation and convenience.
6337
6338 2003-01-13  Graham Asher  <graham.asher@btinternet.com>
6339
6340         * src/sfnt/ttload.c (tt_face_load_metrics)
6341         [FT_CONFIG_OPTION_INCREMENTAL]: TrueType typefaces without
6342         horizontal metrics (without the `hmtx' table) are now tolerated if
6343         an incremental interface has been specified that has a
6344         get_glyph_metrics function, implying that metrics will be supplied
6345         from outside.  This happens for certain Type 42 fonts passed from
6346         GhostScript.
6347
6348 2003-01-11  David Chester  <davidchester@qmx.net>
6349
6350         Patches to the auto-hinter in order to slightly improve the output.
6351         Note that everything is controlled through the new
6352         FT_CONFIG_OPTION_CHESTER_HINTS defined in `ftoption.h'.  There are
6353         also individual FT_CONFIG_CHESTER_XXX macros to control individual
6354         `features'.
6355
6356         Note that all improvements are enabled by default, but can be
6357         tweaked for optimization and testing purposes.  The configuration
6358         macros will most likely disappear in the short future.
6359
6360         * include/freetype/config/ftoption.h
6361         (FT_CONFIG_OPTION_CHESTER_HINTS): New macro.
6362         (FT_CONFIG_CHESTER_{SMALL_F,ASCENDER,SERIF,STEM,BLUE_SCALE})
6363         [FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual
6364         features.
6365
6366         * src/autohint/ahglobal.c (blue_chars) [FT_CONFIG_CHESTER_SMALL_F]:
6367         Add blue zone for `fijkdbh'.
6368         * src/autohint/ahglobal.h (AH_IS_TOP_BLUE)
6369         [FT_CONFIG_CHESTER_SMALL_F]: Use `AH_BLUE_SMALL_F_TOP'.
6370         * src/autohint/ahglyph.c (ah_outline_compute_edges)
6371         [FT_CONFIG_CHESTER_SERIF]: Use `AH_EDGE_SERIF'.
6372         (ah_outline_compute_blue_edges) [FT_CONFIG_CHESTER_SMALL_F]:
6373         Increase threshold for `best_dist'.
6374         * src/autohint/ahhint.c (ah_compute_stem_width)
6375         [FT_CONFIG_CHESTER_SERIF]: Provide new version for improved serif
6376         handling.
6377         (ah_align_linked_edge) [FT_CONFIG_CHESTER_SERIF]: Use special
6378         version of `ah_compute_stem_width'.
6379         (ah_hint_edges_3) [FT_CONFIG_CHESTER_STEM]: A new algorithm for stem
6380         alignment when stem widths are less than 1.5 pixels wide centers the
6381         stem slightly off-center of the center of a pixel (this increases
6382         sharpness and consistency).
6383         [FT_CONFIG_CHESTER_SERIF]: Use special version of
6384         `ah_compute_stem_width'.
6385         * src/autohint/ahtypes.h [FT_CONFIG_CHESTER_SMALL_F]: Add
6386         `AH_BLUE_SMALL_F_TOP'.
6387
6388 2003-01-11  David Turner  <david@freetype.org>
6389
6390         * include/freetype/internal/fnttypes.h (WinFNT_HeaderRec): Increase
6391         size of `reserved2' to avoid memory overwrites.
6392
6393 2003-01-08  Huw Davies  <huw@codeweavers.com>
6394
6395         * src/winfonts/winfnt.c (winfnt_header_fields): Read 16 bytes into
6396         `reserved2', not `reserved'.
6397
6398         * src/base/ftobjs.c (find_unicode_charmap): Fixed the error code
6399         returned when the font doesn't contain a Unicode charmap.  This
6400         allows FT2 to load `symbol.ttf' and a few others correctly since the
6401         last release.
6402         (open_face): Fix return value.
6403
6404 2003-01-08  Owen Taylor  <owen@redhat.com>
6405
6406         Implemented the FT_RENDER_MODE_LIGHT hinting mode in the auto and
6407         postscript hinters.
6408
6409         * src/autohint/ahtypes.h (AH_HinterRec): Add `do_stem_adjust'.
6410         * src/autohint/ahhint.c (ah_compute_stem_width): Handle
6411         hinter->do_stem_adjust.
6412         (ah_hinter_load_glyph): Set hinter->do_stem_adjust.
6413
6414         * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add `do_stem_adjust'.
6415         * src/pshinter/pshalgo3.c (psh3_hint_align): Use `do_stem_adjust'.
6416         (ps3_hints_apply): Handle FT_RENDER_MODE_LIGHT.
6417
6418         * include/freetype/freetype.h (FT_Render_Mode): Add
6419         FT_RENDER_MODE_LIGHT.
6420
6421         * src/truetype/ttgload.c: Fixing the TrueType loader to handle
6422         invalid composites correctly by limiting the recursion depth.
6423         (TT_MAX_COMPOSITE_RECURSE): New macro.
6424         (load_truetype_glyph): Add argument `recurse_count'.
6425         Load a composite only if the numbers of contours is -1, emit error
6426         otherwise.
6427         (TT_Load_Glyph): Updated.
6428
6429 2003-01-08  David Turner  <david@freetype.org>
6430
6431         * Jamrules, Jamfile, Jamfile.in, src/*/Jamfile: Small changes to
6432         support the compilation of FreeType 2 as part of larger projects
6433         with their own configuration options (only with Jam).
6434
6435 2003-01-07  David Turner  <david@freetype.org>
6436
6437         * src/base/ftstroker.c: Probably the last bug-fixes to the stroker;
6438         the API is likely to change, however.
6439         (ft_stroke_border_close): Don't record empty paths.
6440         (ft_stroke_border_get_counts): Increase `num_points' also in for loop.
6441         (ft_stroke_border_export): Don't increase `write' twice in for loops.
6442         (ft_stroker_outside): Handle `phi' together with `theta'.
6443         (FT_Stroker_ParseOutline): New function.
6444
6445         * src/base/fttrigon.c (FT_Angle_Diff): Fixing function: It returned
6446         invalid values for large negative angle differences (resulting in
6447         incorrect stroker computations, among other things).
6448
6449         * src/cache/ftccache.c (ftc_node_hash_unlink): Removing incorrect
6450         assertion, and changing code to avoid hash table size contraction.
6451
6452         * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding
6453         `ftstroker' to default build, as optional component.
6454
6455 2002-12-26  David Turner  <david@freetype.org>
6456
6457         * src/gzip/adler32.c, src/gzip/infblock.c, src/gzip/inflate.c,
6458         src/gzip/inftrees.c, src/gzip/zconf.h, src/gzip/zlib.h,
6459         src/gzip/zutil.h: Updates to allow compilation without compiler
6460         warnings with LCC-Win32.
6461
6462         * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
6463         * builds/unix/configure.ac (version_info): Increased to 9:3:3.
6464         * builds/unix/configure: Regenerated.
6465         * docs/VERSION.DLL: Updated.
6466
6467 2002-12-23  Anthony Fok  <anthony@thizlinux.com>
6468
6469         * builds/unix/configure.ac, builds/unix/unix-cc.in (LINK_LIBRARY),
6470         builds/unix/unix-def.in (SYSTEM_ZLIB): Small fix to configure
6471         sub-system on Unix to allow other programs to correctly link with
6472         zlib when needed.
6473
6474 2002-12-19  David Turner  <david@freetype.org>
6475
6476         * include/freetype/internal/sfnt.h (SFNT_Load_Table_Func): New
6477         function pointer.
6478
6479         * include/freetype/tttables.h (FT_Load_Sfnt_Table): New function.
6480         * src/base/ftobjs.c: Implement it.
6481
6482         * src/sfnt/sfdriver.c (sfnt_get_interface): Handle `load_sfnt'
6483         module request.
6484
6485 2002-12-17  David Turner  <david@freetype.org>
6486
6487         * src/base/ftobjs.c (find_unicode_charmap): Added some comments to
6488         better explain what's happening there.
6489         (open_face): Included Graham Asher's fix to prevent faces without
6490         Unicode charmaps from loading.
6491
6492         * src/winfonts/winfnt.c: Included George Williams's fix to support
6493         version 2 fonts correctly.
6494         (winfnt_header_fields): Updated.
6495         (fnt_font_load): Handle version 2 fonts.
6496         (FNT_Load_Glyph): Updated.
6497
6498 2002-12-16  David Turner  <david@freetype.org>
6499
6500         * docs/VERSION.DLL: Updating document to better explain the
6501         differences between the three version numbers being used on Unix, as
6502         well as providing an autoconf fragment provided by Lars Clausen.
6503
6504         * src/smooth/ftgrays.c (gray_render_conic): Fixed small bug that
6505         prevented Bézier arcs with negative vertical coordinates to be
6506         rendered appropriately.
6507
6508 2002-12-02  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
6509
6510         * src/base/ftobjs.c: Modified the logic to get Unicode charmaps.
6511         Now it loads UCS-4 charmaps when there is one.
6512         (find_unicode_charmap): New function.
6513         (open_face): Refer to the above one.
6514         (FT_Select_Charmap): Idem.
6515
6516 2002-11-29  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
6517
6518         * include/freetype/ftgzip.h: Correct the name of the controlling
6519         macro (was __FTXF86_H__ ...).
6520
6521 2002-11-27  Vincent Caron  <v.caron@zerodeux.net>
6522
6523         * builds/unix/unix-def.in, builds/unix/freetype-config.in,
6524         builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c
6525         [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Adding support for system zlib
6526         installations if available on the target platform (Unix only).
6527
6528 2002-11-23  David Turner  <david@freetype.org>
6529
6530         * src/cff/cffload.c (cff_charset_load, cff_encoding_load): Modified
6531         charset loader to accept pre-defined charsets, even when the font
6532         contains fewer glyphs.  Also enforced more checks to ensure that we
6533         never overflow the character codes array in the encoding.
6534
6535 2002-11-22  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
6536
6537         * include/freetype/ttnameid.h: Updated to latest OpenType
6538         specification.
6539
6540 2002-11-18  David Turner  <david@freetype.org>
6541
6542
6543         * Version 2.1.3 released.
6544         =========================
6545
6546
6547 2002-11-07  David Turner  <david@freetype.org>
6548
6549         * src/cache/ftcsbits.c (ftc_sbit_node_load): Fixed a small bug that
6550         caused problems with embedded bitmaps.
6551
6552         * src/otlayout/otlayout.h, src/otlayout/otlconf.h,
6553         src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
6554         src/otlayout/otlparse.c, src/otlayout/otlparse.h,
6555         src/otlayout/otlutils.h: Updating the OpenType Layout code, adding
6556         support for the first GSUB lookups.  Nothing that really compiles
6557         for now though.
6558
6559         * src/autohint/ahhint.c (ah_align_serif_edge): Disabled serif stem
6560         width quantization.  It produces slightly better shapes though this
6561         is not distinguishable with many fonts.
6562         Remove other dead code.
6563
6564         * src/Jamfile, src/*/Jamfile: Simplified.
6565         Use $(FT2_SRC_DIR).
6566
6567 2002-11-06  David Turner  <david@freetype.org>
6568
6569         * include/freetype/freetype.h (FT_LOAD_TARGET_LIGHT): New macro.
6570         (FT_LOAD_TARGET, FT_LOAD_TARGET_MODE): Use `& 15' instead of `& 7'.
6571
6572 2002-11-05  David Turner  <david@freetype.org>
6573
6574         * include/freetype/config/ftoption.h, src/gzip/ftgzip.c: Added
6575         support for the FT_CONFIG_OPTION_SYSTEM_ZLIB option, used to specify
6576         the use of system-wide zlib.
6577
6578         Note that this macro, as well as
6579         TT_CONFIG_OPTION_BYTECODE_INTERPRETER, is not #undef-ed anymore.
6580         This allows the build system to define them depending on the
6581         configuration (typically by adding -D flags at compile time).
6582
6583         * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Removed compiler
6584         warnings in optimized mode relative to the `volatile' local
6585         variables.  This was not a compiler bug after all, but the fact that
6586         a pointer to a volatile variable is not the same as a volatile
6587         pointer to a variable :-)
6588
6589         The fix was to change
6590           `volatile FT_Byte* p'
6591         into
6592           `FT_Byte* volatile p'.
6593
6594         * src/pfr/pfrload.c (pfr_phy_font_load), src/pfr/pfrdrivr.c
6595         (pfr_get_metrics), src/gzip/inftrees.c: Removed compiler warnings in
6596         optimized modes.
6597
6598         * src/gzip/*.[hc]: Modified our zlib copy in order to prevent
6599         exporting any zlib function names outside of the component.  This
6600         prevents linking problems on some platforms, when applications want
6601         to link FreeType _and_ zlib together.
6602
6603 2002-11-05  Juliusz  <jch@pps.jussieu.fr>
6604
6605         * src/psaux/psobjs.c (ps_table_add): Modified increment loop in
6606         order to implement exponential behaviour.
6607
6608 2002-11-01  David Turner  <david@freetype.org>
6609
6610         Added PFR-specific public API.  Fixed the kerning retrieval routine
6611         (it returned invalid values when the outline and metrics resolution
6612         differ).
6613
6614         * include/freetype/ftpfr.h, include/freetype/internal/pfr.h: New
6615         files.
6616
6617         * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H): New
6618         macro for pfr.h.
6619
6620         * src/base/ftpfr.c: New file.
6621         * src/base/Jamfile, src/base/descrip.mms: Updated.
6622
6623         * src/pfr/pfrdrivr.c: Include FT_INTERNAL_PFR_H.
6624         (pfr_get_kerning, pfr_get_advance, pfr_get_metrics): New functions.
6625         (pfr_service_rec): New format interface.
6626         (pfr_driver_class): Use `pfr_service_rec'.
6627         Replace `pfr_face_get_kerning' with `pfr_get_kerning'.
6628         * src/pfr/pfrobjs.c: Remove dead code.
6629
6630         * src/base/ftobjs.c (ft_glyphslot_clear): Small internal fix to
6631         better support bitmap-based font formats.
6632
6633         * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix handling of
6634         `scale'.
6635         Fix arguments to `FT_Vector_From_Polar'.
6636
6637 2002-10-31  David Turner  <david@freetype.org>
6638
6639         Add support for automatic handling of gzip-compressed PCF files.
6640
6641         * src/gzip/*: New files, taken from the zlib package (except
6642         ftgzip.c).
6643
6644         * include/freetype/ftgzip.h, src/gzip/ftgzip.c: New files.
6645         * include/freetype/config/ftheader.h (FT_GZIP_H): New macro for
6646         `ftgzip.h'.
6647
6648         * src/pcf/pcfdriver.c: Include FT_GZIP_H and FT_ERRORS_H.
6649         (PCF_Face_Init): If normal open fails, try to open gzip stream.
6650         (PCF_Face_Done): Close gzip stream.
6651
6652         * include/freetype/internal/pcftypes.h (PCF_Public_FaceRec),
6653         src/pcf/pcf.h (PCF_FaceRec): Add `gzip_stream' and `gzip_source'.
6654
6655         * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_ZLIB):
6656         New macro.
6657         (T1_CONFIG_OPTION_DISABLE_HINTER, FT_CONFIG_OPTION_USE_CMAPS
6658         FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS,
6659         FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS): Removed.
6660
6661         (FT_EXPORT, FT_EXPORT_DEF, FT_DEBUG_LEVEL_ERROR,
6662         FT_DEBUG_LEVEL_TRACE, FT_DEBUG_MEMORY): Comment out definitions so
6663         that platform specific configuration file can override.
6664
6665         * include/freetype/internal/ftstream.h: Include FT_SYSTEM_H.
6666
6667 2002-10-30  David Turner  <david@freetype.org>
6668
6669         * FreeType 2.1.3rc3 released.
6670
6671 2002-10-25  David Turner  <david@freetype.org>
6672
6673         * include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro.
6674         (FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG.
6675
6676 2002-10-22  Giuseppe Ghibò  <ghibo@mandrakesoft.com>
6677
6678         * include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2.
6679
6680 2002-10-07  Werner Lemberg  <wl@gnu.org>
6681
6682         * include/freetype/freetype.h (FT_Open_Face): Use `const' for `args'
6683         (suggested by Graham).
6684         * src/base/ftobjs.c (FT_Open_Face): Updated.
6685         (ft_input_stream_new): Ditto.
6686
6687 2002-10-05  David Turner  <david@freetype.org>
6688
6689         Adding support for embedded bitmaps to the PFR driver, and rewriting
6690         its kerning loader/handler to use all kerning pairs in a physical
6691         font (and not just the first item).
6692
6693         * src/pfr/pfr.c: Include `pfrsbit.c'.
6694         * src/pfr/pfrgload.c: Include `pfrsbit.h'.
6695         * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): Rewritten.
6696         (pfr_phy_font_done, pfr_phy_font_load): Updated.
6697         * src/pfr/pfrobjs.c: Include `pfrsbit.h'.
6698         (pfr_face_init): Handle kerning and embedded bitmaps.
6699         (pfr_slot_load): Load embedded bitmaps.
6700         (PFR_KERN_INDEX): Removed.
6701         (pfr_face_get_kerning): Rewritten.
6702         * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h: New files.
6703         * src/pfr/pfrtypes.h (PFR_KernItemRec): New structure.
6704         (PFR_KERN_INDEX): New macro.
6705         (PFR_PhyFontRec): Add items for kerning and embedded bitmaps.
6706         * src/pfr/Jamfile (_sources) [FT2_MULTI]: Add `pfrsbit'.
6707
6708         * src/base/ftobjs.c (FT_Load_Glyph): Don't load bitmap fonts if
6709         FT_LOAD_NO_RECURSE is set.
6710         Load embedded bitmaps only if FT_LOAD_NO_BITMAP isn't set.
6711
6712         * src/tools/docmaker/content.py, src/tools/docmaker/sources.py,
6713         src/tools/docmaker/tohtml.py: Fixing a few nasty bugs.
6714
6715         * src/sfnt/ttcmap0.c (tt_cmap4_validate): The validator for format 4
6716         sub-tables is now capable of dealing with invalid `length' fields at
6717         the start of the sub-table.  This allows fonts like `mg______.ttf'
6718         (i.e.  Marriage) to return accurate charmaps.
6719
6720         * docs/CHANGES: Updated.
6721
6722 2002-10-05  Werner Lemberg  <wl@gnu.org>
6723
6724         * src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'.
6725         Update all callers.
6726         (TRUNC): Add cast to `TCoord'.
6727         Update all callers.
6728         (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and
6729         last_ey.
6730         Update all casts.
6731         (gray_render_line): Fix casts for `p' and `first'.
6732
6733 2002-10-02  Detlef Würkner  <TetiSoft@apg.lahn.de>
6734
6735         * src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t
6736         structure with FT_ALLOC instead of using the stack.
6737
6738 2002-09-27  Werner Lemberg  <wl@gnu.org>
6739
6740         * src/include/freetype/internal/tttypes.h (num_sbit_strikes,
6741         num_sbit_scales): Use `FT_ULong'.
6742         * src/sfnt/sfobjs.c (sfnt_load_face): Updated accordingly.
6743         * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Ditto.
6744         (find_sbit_image): Remove cast.
6745         * src/raster/ftrend1.c (ft_raster1_render): Fix cast.
6746
6747 2002-09-27  Wolfgang Domröse  <porthos.domroese@harz.de>
6748
6749         * src/sfnt/ttload.c (tt_face_load_names): Use cast.
6750         * src/sfnt/ttcmap.c (code_to_next2): Use long constant.
6751         (code_to_index4): Use cast.
6752         (code_to_index8_12): Fix cast.
6753         * src/sfnt/ttcmap0.c (tt_cmap4_char_next, tt_cmap8_char_index,
6754         tt_cmap12_char_index): Use cast for `result'.
6755         (tt_face_build_cmaps): Use cast.
6756         * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_ucs4): Use cast for
6757         `code'.
6758         (sfnt_load_face): Use FT_Int32 for `flags'.
6759
6760         * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
6761         gray_compute_cbox, gray_convert_glyph, gray_raster_reset): Add casts
6762         to `TCoord' and `int'.
6763         More 16bit fixes.
6764         s/FT_Pos/TPos/.
6765         * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts.
6766
6767 2002-09-26  Werner Lemberg  <wl@gnu.org>
6768
6769         * src/sfnt/ttpost.c (load_post_names, tt_face_free_ps_names,
6770         tt_face_get_ps_name): Replace switch statement with if clauses to
6771         make it more portable.
6772
6773         * src/cff/cffobjs.c (cff_face_init): Ditto.
6774
6775         * include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for
6776         `module_size'.
6777         * include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for
6778         `glyph_size'.
6779
6780         * src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to
6781         `FT_Render_Mode'.
6782         (FT_Render_Glyph_Internal): Change third parameter to
6783         `FT_Render_Mode'.
6784         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter
6785         to `FT_Render_Mode'.
6786
6787         * src/raster/ftrend1.c (ft_raster1_render): Change third parameter
6788         to `FT_Render_Mode'.
6789         * src/smooth/ftsmooth.c (ft_smooth_render, ft_smooth_render_lcd,
6790         ft_smooth_render_lcd_v): Ditto.
6791         (ft_smooth_render_generic): Change third and fifth parameter to
6792         `FT_Render_Mode'.
6793
6794         * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
6795         include/freetype/ftglyph.h: Updated.
6796
6797         * src/cff/cffdrivr.c (Load_Glyph), src/pcf/pcfdriver.c
6798         (PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load),
6799         src/winfonts/winfnt.c (FNT_Load_Glyph), src/t42/t42objs.c
6800         (T42_GlyphSlot_Load), src/bdf/bdfdrivr.c (BDF_Glyph_Load): Change
6801         fourth parameter to `FT_Int32'.
6802
6803         * src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters
6804         and declare them as unused.
6805
6806         * src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'.
6807
6808         * src/psnames/psnames.h (PS_Unicode_Value_Func): Change return
6809         value to FT_UInt32.
6810         * src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table):
6811         Updated accordingly.
6812
6813 2002-09-26  Wolfgang Domröse  <porthos.domroese@harz.de>
6814
6815         * src/cff/cffdrivr.c (Get_Kerning): Use FT_Long for `middle'.
6816         (cff_get_glyph_name): Use cast for result of ft_strlen.
6817         * src/cff/cffparse.c (cff_parse_real): User cast for assigning
6818         `exp'.
6819         * src/cff/cffload.c (cff_index_get_pointers): Use FT_ULong for
6820         some local variables.
6821         (cff_charset_load, cff_encoding_load): Use casts to FT_UInt for some
6822         switch statements.
6823         (cff_font_load): Use cast in call to CFF_Load_FD_Select.
6824         * src/cff/cffobjs.c (cff_size_init): Use more casts.
6825         (cff_face_init): Use FT_Int32 for `flags'.
6826         * src/cff/cffgload.c (cff_operator_seac): Use cast for assigning
6827         `adx' and `ady'.
6828         (cff_decoder_parse_charstrings): Use FT_ULong for third parameter.
6829         Use more casts.
6830         * src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'.
6831
6832         * src/cid/cidload.c (cid_read_subrs): Use FT_ULong for `len'.
6833         * src/cid/cidgload.c (cid_load_glyph): Add missing cast for
6834         `cid_get_offset'.
6835
6836         * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <18>: Use
6837         cast for `num_points'.
6838         (t1_decoder_init): Use cast for assigning `decoder->num_glyphs'.
6839
6840         * src/base/ftdebug.c (ft_debug_init): Use FT_Int.
6841         * include/freetype/internal/ftdriver.h (FT_Slot_LoadFunc): Use
6842         `FT_Int32' for fourth parameter.
6843         * src/base/ftobjs.c (open_face): Use cast for calling
6844         clazz->init_face.
6845
6846         * src/raster/ftraster.c (Set_High_Precision): Use `1' instead of
6847         `1L'.
6848         (Finalize_Profile_Table, Line_Up, ft_black_init): Use casts.
6849         * src/raster/ftrend1.c (ft_raster1_render): Ditto.
6850
6851         * src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long
6852         constant.
6853
6854 2002-09-26  Detlef Würkner  <TetiSoft@apg.lahn.de>
6855
6856         * builds/amiga/include/freetype/config/ftmodule.h: Updated.
6857
6858 2002-09-25  David Turner  <david@freetype.org>
6859
6860         * src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics
6861         hinting in the auto-hinter.  This produces much better anti-aliased
6862         text.
6863
6864         * docs/CHANGES: Updating the changes documentation.
6865
6866 2002-09-25  Anthony Fok  <anthony@thizlinux.com>
6867
6868         * src/sfnt/ttcmap0.c (tt_cmap4_validate, tt_cmap4_char_index,
6869         tt_cmap4_char_next): Added support for opens___.ttf (it contains a
6870         charmap that uses offset=0xFFFFU instead of 0x0000 to indicate a
6871         missing glyph).
6872
6873 2002-09-21  Wolfgang Domröse  <porthos.domroese@harz.de>
6874
6875         * src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be
6876         FT_Int32.
6877         * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph):
6878         Ditto.
6879
6880 2002-09-19  Wolfgang Domröse  <porthos.domroese@harz.de>
6881
6882         More 16bit fixes.
6883
6884         * src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'.
6885         (ah_hinter_compute_widths): Use FT_Pos for `dist'.
6886         Use AH_MAX_WIDTHS.
6887         * src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos
6888         for `delta'.
6889         (ah_outline_compute_edges): Replace some ints with FT_Int and
6890         FT_Pos.
6891         (ah_test_extrema): Clean up code.
6892         (ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to
6893         hold indices.
6894         * src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score'
6895         to FT_Pos.
6896
6897 2002-09-19  Werner Lemberg  <wl@gnu.org>
6898
6899         * builds/unix/config.guess, builds/unix/config.sub: Updated to
6900         recent versions.
6901
6902 2002-09-18  David Turner  <david@freetype.org>
6903
6904         * src/base/ftobjs.c (FT_Library_Version): Bugfix.
6905
6906         * FreeType 2.1.3rc2 (release candidate 2) is released!
6907
6908 2002-09-17  David Turner  <david@freetype.org>
6909
6910         * include/freetype/freetype.h, include/freetype/ftimage.h,
6911         include/freetype/ftstroker.h, include/freetype/ftsysio.h,
6912         include/freetype/ftsysmem.h, include/freetype/ttnameid.h: Updating
6913         the in-source documentation.
6914
6915         * src/tools/docmaker/tohtml.py: Updating the HTML formatter in the
6916         DocMaker tool.
6917
6918         * src/tools/docmaker.py: Removed.
6919
6920 2002-09-17  Werner Lemberg  <wl@gnu.org>
6921
6922         More 16bit fixes.
6923
6924         * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for
6925         second parameter.
6926
6927 2002-09-16  Werner Lemberg  <wl@gnu.org>
6928
6929         16bit fixes from Wolfgang Domröse.
6930
6931         * src/type1/t1parse.h (T1_ParserRec): Change type of `base_len'
6932         and `private_len' to FT_Long.
6933         * src/type1/t1parse.c (T1_Get_Private_Dict): Remove cast for
6934         `private_len'.
6935         * src/type1/t1load.c: Use FT_Int cast for most calls of T1_ToInt.
6936         Use FT_PtrDist where appropriate.
6937         (parse_encoding): Use FT_Long for `count' and `n'.
6938         (read_binary_data): Use FT_Long* for second parameter.
6939         * src/type1/t1afm.c (afm_atoindex): Use FT_PtrDist.
6940
6941         * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label.
6942         * src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable.
6943
6944 2002-09-14  Werner Lemberg  <wl@gnu.org>
6945
6946         Making ftgrays.c compile stand-alone again.
6947
6948         * include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_
6949         isn't defined.
6950         * src/smooth/ftgrays.c [_STANDALONE_]: Define ft_memset,
6951         FT_BEGIN_HEADER, FT_END_HEADER.
6952         (FT_MEM_ZERO): Define.
6953         (TRaster) [GRAYS_USE_GAMMA]: Use `unsigned char' instead of FT_Byte.
6954         (gray_render_span, gray_init_gamma): Don't use `FT_UInt'.
6955         Don't cast with `FT_Byte'.
6956         (grays_init_gamma): Don't use `FT_UInt'.
6957
6958 2002-09-14  Werner Lemberg  <wl@gnu.org>
6959
6960         * src/base/ftinit.c (FT_Add_Default_Modules): Improve error message.
6961         * src/pcf/pcfdriver.c (PCF_Face_Done): Improve tracing message.
6962         * include/freetype/config/ftoption.h (FT_MAX_MODULES): Increased
6963         to 32.
6964
6965 2002-09-10  Werner Lemberg  <wl@gnu.org>
6966
6967         * builds/unix/configure.ac (version_info): Set to 9:2:3.
6968         * builds/unix/configure: Regenerated.
6969         * docs/VERSION.DLL: Updated.
6970
6971 2002-09-09  David Turner  <david@freetype.org>
6972
6973         * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points),
6974         src/pshinter/pshalgo3.c (psh3_glyph_find_strong_points): Adding fix
6975         to prevent segfault when hints are provided in an empty glyph.
6976
6977         * src/cache/ftccache.i (GEN_CACHE_LOOKUP) [FT_DEBUG_LEVEL_ERROR]:
6978         Removed conditional code.  This fixes a bug that prevented
6979         compilation in debug mode of template instantiation.
6980
6981         * include/freetype/ftimage.h: Removed incorrect `zft_' definitions
6982         and updated constants documentation comments.
6983
6984         * src/cff/cffparse.c (cff_parser_run): Fixed the CFF table loader.
6985         It didn't accept empty arrays, and this prevented the loading of
6986         certain fonts.
6987
6988         * include/freetype/freetype.h (FT_FaceRec): Updating documentation
6989         comment.  The `descender' value is always *negative*, not positive.
6990
6991 2002-09-09  Owen Taylor  <owen@redhat.com>
6992
6993         * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation
6994         of bitmap metrics.
6995
6996 2002-09-08  David Turner  <david@freetype.org>
6997
6998         Various updates to correctly support subpixel rendering.
6999
7000         * include/freetype/config/ftmodule.h: Add two renderers for LCD.
7001
7002         * src/base/ftobjs.c (FT_Load_Glyph): Updated.
7003
7004         * src/smooth/ftsmooth.c (ft_smooth_render_lcd,
7005         ft_smooth_render_lcd_v): Set FT_PIXEL_MODE_LCD and
7006         FT_PIXEL_MODE_LCD_V, respectively.
7007
7008         * include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New
7009         structure.
7010         Updated all users.
7011         (FTC_ImageDesc): Removed.
7012         (FTC_ImageCache_Lookup): Second parameter is now of type
7013         `FTC_ImageType'.
7014         Updated all users.
7015         (FTC_IMAGE_DESC_COMPARE): Updated and renamed to...
7016         (FTC_IMAGE_TYPE_COMPARE): This.
7017         (FTC_IMAGE_DESC_HASH): Updated and renamed to...
7018         (FTC_IMAGE_TYPE_HASH): This.
7019
7020         * include/freetype/cache/ftcsbits.h (FTC_SBitRec): Field `num_grays'
7021         replaced with `max_grays'.
7022         `pitch' is now FT_Short.
7023         (FTC_SBitCache_Lookup): Second parameter is now of type
7024         `FTC_ImageType'.
7025         Updated all users.
7026
7027         * src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec):
7028         Updated.
7029         (ftc_image_node_init): Updated.
7030         Moved code to convert type flags to load flags to...
7031         (FTC_Image_Cache_Lookup): This function.
7032         (ftc_image_family_init): Updated.
7033
7034         * src/cache/ftcsbits.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
7035         Updated.
7036         (ftc_sbit_node_load): Updated.
7037         Moved code to convert type flags to load flags to...
7038         (FTC_SBitCache_Lookup): This function.
7039
7040         * src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with
7041         `do_*_snapping'.
7042         Update all users (with negation).
7043         * src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for
7044         `dist' for `delta' < 40.
7045
7046         * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with
7047         `do_*_snapping'.
7048         Update all users (with negation).
7049         * src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New
7050         function.
7051         (psh3_hint_align): Use it.
7052         Improve hinting code.
7053         [STRONGER]: Removed.
7054         (STRONGER): Removed.
7055
7056         * include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*):
7057         Removed.
7058
7059 2002-09-05  Werner Lemberg  <wl@gnu.org>
7060
7061         * src/cid/cidobjs.c (CID_Size_Init): Renamed to...
7062         (cid_size_init): This.
7063         * src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to...
7064         (t1_builder_add_point1): This.
7065
7066         Updated all affected code.
7067
7068         * src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
7069         * src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.
7070
7071 2002-09-04  David Turner  <david@freetype.org>
7072
7073         * include/freetype/freetype.h: Corrected the definition of
7074         ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of
7075         the erroneous FT_ENCODING_SYMBOL).
7076
7077         * builds/unix/unix-def.in (datadir): Initialize it (thanks to
7078         Anthony Fok).
7079
7080 2002-08-29  David Turner  <david@freetype.org>
7081
7082         Slight modification to the Postscript hinter to slightly increase
7083         the contrast of smooth hinting.  This is very similar to what the
7084         auto-hinter does when it comes to stem width computations.  However,
7085         it produces better results with well-hinted fonts.
7086
7087         * include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Add hint
7088         mode to `init' member function.
7089         (T1_DecoderRec): Add hint mode.
7090         * include/freetype/internal/pshints (T1_Hints_ApplyFunc,
7091         T2_Hints_ApplyFunc): Pass `hint_mode', not `hint_flags'.
7092         * src/psaux/t1decode.c (t1_decoder_init): Add hint mode argument.
7093         * src/pshinter/pshalgo1.c (ps1_hints_apply): Pass hint mode, not
7094         hint flags.
7095         * src/pshinter/pshalgo2.c (ps2_hints_apply): Ditto.
7096         * src/pshinter/pshalgo3.c (ps3_hints_apply): Ditto.
7097         (STRONGER): New macro.
7098         (psh3_hint_align, psh3_hint_table_align_hints): Pass `glyph' instead
7099         of `hint_flags'.
7100         Implement announced changes.
7101         * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control
7102         vertical and horizontal hints and snapping.
7103
7104         * README, docs/CHANGES: Updating for the 2.1.3 release.
7105
7106 2002-08-27  David Turner  <david@freetype.org>
7107
7108         * Massive re-formatting changes to many, many source files.  I don't
7109         want to list them all here.  The operations performed were all
7110         logical transformations of the sources:
7111
7112         - trying to convert all enums and constants to CAPITALIZED_STYLE,
7113           #with define definitions like
7114
7115             #define my_old_constants   MY_NEW_CONSTANT
7116
7117         - big, big update of the documentation comments
7118
7119         * include/freetype/freetype.h, src/base/ftobjs.c,
7120         src/smooth/ftsmooth.c, include/freetype/ftimage.h: Adding support
7121         for LCD-optimized rendering though the new constants/enums:
7122
7123           FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
7124           FT_PIXEL_MODE_LCD,  FT_PIXEL_MODE_LCD_V
7125
7126         This is still work in progress, don't expect everything to work
7127         correctly though most of the features have been implemented.
7128
7129         * Adding new FT_LOAD_XXX flags, used to specify both hinting and
7130         rendering targets:
7131
7132           FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
7133           FT_LOAD_TARGET_MONO   :: monochrome bitmaps
7134           FT_LOAD_TARGET_LCD    :: horizontal RGB/BGR decimated
7135                                    hinting & rendering
7136           FT_LOAD_TARGET_LCD_V  :: vertical RGB/BGR decimated
7137                                    hinting & rendering
7138
7139         Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
7140         behaviour of the font engine is _unchanged_.
7141
7142         * include/freetype/ftimage.h
7143         (FT_Outline_{Move,Line,Conic,Cubic}To_Func): Renamed to...
7144         (FT_Outline_{Move,Line,Conic,Cubic}ToFunc): This.
7145         (FT_Raster_Span_Func): Renamed to ...
7146         (FT_SpanFunc): This.
7147         (FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ...
7148         (FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This.
7149
7150         Updated all affected code.
7151
7152         * include/freetype/ftrender.h
7153         (FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed
7154         to ...
7155         (FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This.
7156         (FTRenderer_{render,transform,getCBox,setMode}): Renamed to ...
7157         (FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SetModeFunc}):
7158         This.
7159
7160         Updated all affected code.
7161
7162         * src/autohint/ahtypes.h (AH_Point, AH_Segment, AH_Edge, AH_Globals,
7163         AH_Face_Globals, AH_Outline, AH_Hinter): These typedefs are now
7164         pointers to the corresponding `*Rec' structures.  All source files
7165         have been updated accordingly.
7166
7167         * src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter.
7168         * src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element.
7169
7170         * src/cid/cidgload.c (CID_Compute_Max_Advance): Renamed to...
7171         (cid_face_compute_max_advance): This.
7172         (CID_Load_Glyph): Renamed to...
7173         (cid_slot_load_glyph): This.
7174         * src/cid/cidload.c (CID_Open_Face): Renamed to...
7175         (cid_face_open): This.
7176         * src/cid/cidobjs.c (CID_GlyphSlot_{Done,Init}): Renamed to...
7177         (cid_slot_{done,init}): This.
7178         (CID_Size_{Get_Globals_Funcs,Done,Reset): Renamed to...
7179         (cid_size_{get_globals_funcs,done,reset): This.
7180         (CID_Face_{Done,Init}): Renamed to...
7181         (cid_face_{done,init}): This.
7182         (CID_Driver_{Done,Init}: Renamed to...
7183         (cid_driver_{done,init}: This.
7184         * src/cid/cidparse.c (CID_{New,Done}_Parser): Renamed to...
7185         (cid_parser_{new,done}): This.
7186         * src/cid/cidparse.h (CID_Skip_{Spaces,Alpha}): Renamed to...
7187         (cid_parser_skip_{spaces,alpha}): This.
7188         (CID_To{Int,Fixed,CoordArray,FixedArray,Token,TokenArray}): Renamed
7189         to...
7190         (cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}):
7191         This.
7192         (CID_Load_{Field,Field_Table): Renamed to...
7193         (cid_parser_load_{field,field_table}): This.
7194         * src/cid/cidriver.c (CID_Get_Interface): Renamed to...
7195         (cid_get_interface): This.
7196
7197         Updated all affected code.
7198
7199         * src/psaux/psobjs.c (PS_Table_*): Renamed to...
7200         (ps_table_*): This.
7201         (T1_Builder_*): Renamed to...
7202         (t1_builder_*): This.
7203         * src/psaux/t1decode.c (T1_Decoder_*): Renamed to...
7204         (t1_decoder_*): This.
7205
7206         * src/psnames/psmodule.c (PS_*): Renamed to...
7207         (ps_*): This.
7208
7209         Updated all affected code.
7210
7211         * src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to...
7212         (sfnt_get_interface): This.
7213         * src/sfnt/sfobjs.c (SFNT_*): Renamed to...
7214         (sfnt_*): This.
7215         * src/sfnt/ttcmap.c (TT_CharMap_{Load,Free}): Renamed to...
7216         (tt_face_{load,free}_charmap): This.
7217         * src/sfnt/ttcmap0.c (TT_Build_CMaps): Renamed to...
7218         (tt_face_build_cmaps): This.
7219         * src/sfnt/ttload.c (TT_*): Renamed to...
7220         (tt_face_*): This.
7221         * src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to...
7222         (tt_post_default_names): This.
7223         (Load_*): Renamed to...
7224         (load_*): This.
7225         (TT_*): Renamed to...
7226         (tt_face_*): This.
7227         * src/sfnt/ttsbit.c (TT_*): Renamed to...
7228         (tt_face_*): This.
7229         ({Find,Load,Crop}_*): Renamed to...
7230         ({find,load,crop}_*): This.
7231
7232         Updated all affected code.
7233
7234         * src/smooth/ftsmooth.c (ft_smooth_render): Renamed to...
7235         (ft_smooth_render_generic): This.
7236         Make function more generic by adding vertical and horizontal scaling
7237         factors.
7238         (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v):
7239         New functions.
7240
7241         (ft_smooth_lcd_renderer_class, ft_smooth_lcdv_renderer_class): New
7242         classes.
7243
7244         * src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to...
7245         (tt_glyphzone_{done,new}): This.
7246         (TT_{Face,Size,Driver}_*): Renamed to...
7247         (tt_{face,size,driver}_*): This.
7248         * src/truetype/ttpload.c (TT_Load_Locations): Renamed to...
7249         (tt_face_load_loca): This.
7250         (TT_Load_Programs): Renamed to...
7251         (tt_face_load_fpgm): This.
7252         (TT_*): Renamed to...
7253         (tt_face_*): This.
7254
7255 2002-08-27  Werner Lemberg  <wl@gnu.org>
7256
7257         * docs/VERSION.DLL: New file.
7258
7259 2002-08-23  Graham Asher  <graham.asher@btinternet.com>
7260
7261         * src/cff/cffgload.c (cff_operator_seac)
7262         [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts (actually not
7263         incremental in the case of CFF but just using callbacks to get glyph
7264         recipes) pass the character code, not the glyph index, to the
7265         get_glyph_data function; they have no valid charset table.
7266
7267         * src/cff/cffload.c (cff_font_load): Removed special cases for
7268         FT_CONFIG_OPTION_INCREMENTAL, which are no longer necessary; CFF
7269         fonts provided via the incremental interface now have to conform
7270         more closely to the CFF font format.
7271
7272         * src/cff/cffload.h (cff_font_load): Removed argument now unneeded.
7273
7274         * src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load
7275         to conform with new signature.
7276
7277 2002-08-22  David Turner  <david@freetype.org>
7278
7279         * src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
7280         src/bdf/bdfdrivr.c: Removed compiler warnings.
7281
7282 2002-08-21  Werner Lemberg  <wl@gnu.org>
7283
7284         * src/pshinter/pshalgo3.c (psh3_glyph_compute_inflections,
7285         psh3_glyph_compute_extrema, psh3_hint_table_find_strong_point): Fix
7286         compiler warnings and resolve shadowing of local variables.
7287
7288 2002-08-21  David Turner  <david@freetype.org>
7289
7290         The automatic and Postscript hinter now automatically detect
7291         inflection points in glyph outlines and treats them specially.  This
7292         is very useful to prevent nasty effect like the disappearing
7293         diagonals of `S' and `s' in many, many fonts.
7294
7295         * src/autohint/ahtypes.h (ah_flag_inflection): New macro.
7296         * src/autohint/ahangles.c (ah_angle_diff): New function.
7297         * src/autohint/ahangles.h: Updated.
7298         * src/autohint/ahglyph.c (ah_outline_compute_inflections): New
7299         function.
7300         (ah_outline_detect_features): Use it.
7301         * src/autohint/ahhint.c (ah_hinter_align_strong_points)
7302         [!AH_OPTION_NO_WEAK_INTERPOLATION]: Handle inflection.
7303
7304         * src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py,
7305         src/tools/docmaker/tohtml.py: Updating the DocMaker tool.
7306
7307         * include/freetype/freetype.h: Changing the type of the `load_flags'
7308         parameter from `FT_Int' to `FT_Int32', this in order to support more
7309         options.  This should only break binary and/or source compatibility
7310         on 16-bit platforms (Atari?).
7311         (FT_LOAD_NO_AUTOHINT): New macro.
7312
7313         * src/base/ftobjs.c (FT_Load_Glyph): Updated.
7314         Handle FT_LOAD_NO_AUTOHINT.
7315         (FT_Load_Char): Updated.
7316
7317         * src/pshinter/pshalgo3.c, src/base/ftobjs.c, src/base/ftobject.c,
7318         src/autohint/ahglyph.c, include/freetype/freetype.h: Fixing typos
7319         and removing compiler warnings.
7320
7321 2002-08-20  Werner Lemberg  <wl@gnu.org>
7322
7323         * src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0.
7324
7325 2002-08-20  David Turner  <david@freetype.org>
7326
7327         * src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
7328         src/pshinter/pshglob.c, src/pshinter/pshrec.c,
7329         src/autohint/ahmodule.c [DEBUG_HINTER]: Removing compiler warnings
7330         (only used in development builds anyway).
7331
7332         Improve support of local extrema and stem edge points.
7333
7334         * src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec
7335         for `zones'.
7336         (PSH3_DIR_UP, PSH3_DIR_DOWN): Exchange values.
7337         (PSH3_DIR_HORIZONTAL, PSH3_DIR_VERTICAL): New macros.
7338         (PSH3_DIR_COMPARE, PSH3_DIR_IS_HORIZONTAL, PSH3_IS_VERTICAL): New
7339         macros.
7340         (PSH3_POINT_INFLEX): New enum.
7341         (psh3_point_{is,set}_{off,inflex}): New macros.
7342         (PSH3_POINT_{EXTREMUM,POSITIVE,NEGATIVE,EDGE_MIN,EDGE_MAX): New
7343         enum values.
7344         (psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}):
7345         New macros.
7346         (PSH3_PointRec): New members `flags2' and `org_v'.
7347         (PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros.
7348
7349         * src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler
7350         warnings.
7351         (COMPUTE_INFLEXS): New macro.
7352         (psh3_hint_align): Simplify some basic arithmetic computations.
7353         (psh3_point_is_extremum): Removed.
7354         (psh3_glyph_compute_inflections) [COMPUTE_INFLEXS]: New function.
7355         (psh3_glyph_init) [COMPUTE_INFLEXS]: Use it.
7356         (psh3_glyph_compute_extrema): New function.
7357         (PSH3_STRONG_THRESHOLD): Increased to 30.
7358         (psh3_hint_table_find_strong_point): Improved.
7359         (psh3_glyph_find_strong_points,
7360         psh3_glyph_interpolate_strong_points): Updated.
7361         (psh3_hints_apply): Use psh3_glyph_compute_extrema.
7362
7363         * test/gview.c (draw_ps3_hint, ps3_draw_control_points): New
7364         functions.
7365         Other small updates.
7366
7367         * Jamfile: Small updates.
7368
7369 2002-08-18  Arkadiusz Miskiewicz  <misiek@pld.ORG.PL>
7370
7371         * builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to
7372         make life easier for package maintainers.
7373
7374 2002-08-18  Werner Lemberg  <wl@gnu.org>
7375
7376         * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of
7377         horiBearingX.
7378         * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix computation of
7379         horiBearingY.
7380
7381 2002-08-16  George Williams  <gww@silcom.com>
7382
7383         Add support for Apple composite glyphs.
7384
7385         * include/freetype/config/ftoption.h
7386         (TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro.
7387
7388         * src/truetype/ttgload.c (OVERLAP_COMPOUND, SCALED_COMPONENT_OFFSET,
7389         UNSCALED_COMPONENT_OFFSET): New macros for additional OpenType
7390         glyph loading flags.
7391         (load_truetype_glyph): Implement it.
7392
7393 2002-08-16  Werner Lemberg  <wl@gnu.org>
7394
7395         * src/cff/cffgload.c (cff_free_glyph_data),
7396         src/cff/cffload.c (cff_font_load): Use FT_UNUSED.
7397
7398 2002-08-15  Werner Lemberg  <wl@gnu.org>
7399
7400         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'.
7401         * src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning.
7402
7403 2002-08-15  Graham Asher  <graham.asher@btinternet.com>
7404
7405         Implemented the incremental font loading system for the CFF driver.
7406         Tested using the GhostScript-to-FreeType bridge (under development).
7407
7408         * src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New
7409         functions.
7410         (cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use
7411         them.
7412         * src/cff/cffload.c (cff_font_load): Add `face' parameter.
7413         Load charset and encoding only if there are glyphs.
7414         [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts don't need
7415         character recipes.
7416         * src/cff/cffload.h, src/cff/cffobjs.c: Updated.
7417
7418         * src/cid/cidgload.c (cid_load_glyph)
7419         [FT_CONFIG_OPTION_INCREMENTAL]: Corrected the incremental font
7420         loading implementation to use the new system introduced on
7421         2002-08-01.
7422
7423 2002-08-06  Werner Lemberg  <wl@gnu.org>
7424
7425         * src/cff/cffcmap.c: Remove compiler warnings.
7426         * src/cache/ftccache.c, src/cache/ftccache.i,
7427         src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
7428         * src/cff/cffload.c: s/select/fdselect/.
7429         * src/raster/ftraster.c: s/wait/waiting/.
7430
7431 2002-08-01  Graham Asher  <graham.asher@btinternet.com>
7432
7433         * src/type1/t1load.c (T1_Open_Face): Tolerate a face with no
7434         charstrings if there is an incremental loading interface.  Type 1
7435         faces supplied by PostScript interpreters like GhostScript will
7436         typically not provide any charstrings at load time, so this is
7437         essential if they are to work.
7438
7439 2002-08-01  Graham Asher  <graham.asher@btinternet.com>
7440
7441         Modified incremental loading interface to be closer to David's
7442         preferences.  The header freetype.h is not now affected, the
7443         interface is specified via an FT_Parameter, the pointer to the
7444         interface is hidden in an internal part of the face record, and all
7445         the definitions are in ftincrem.h.
7446
7447         * include/freetype/freetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
7448         Removed.
7449         * include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]:
7450         Include FT_INCREMENTAL_H.
7451         (FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add
7452         `incremental_interface'.
7453
7454         * src/base/ftobjs.c (open_face, FT_Open_Face)
7455         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7456         * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
7457         Updated.
7458
7459         * src/truetype/ttgload.c (load_truetype_glyph)
7460         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7461         Free loaded glyph data properly.
7462         (compute_glyph_metrics, TT_Load_Glyph)
7463         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7464         * src/truetype/ttobjs.c (TT_Face_Init)
7465         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7466
7467         * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
7468         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7469         (T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
7470         Free loaded glyph data properly.
7471         (T1_Load_Glyph): Updated.
7472         [FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly.
7473
7474 2002-07-30  David Turner  <david@freetype.org>
7475
7476         * include/freetype/ftincrem.h: Adding new experimental header file
7477         to demonstrate a `cleaner' API to support incremental font loading.
7478
7479         * include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
7480
7481         * src/tools/docmaker/*: Adding new (more advanced) version of
7482         the DocMaker tool, using Python's sophisticated regexps.
7483
7484 2002-07-28  Werner Lemberg  <wl@gnu.org>
7485
7486         s/ft_memset/FT_MEM_SET/.
7487         s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate.
7488
7489 2002-07-27  Werner Lemberg  <wl@gnu.org>
7490
7491         * src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
7492
7493 2002-07-26  Werner Lemberg  <wl@gnu.org>
7494
7495         * src/truetype/ttgload.c (load_truetype_glyph)
7496         [FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/.
7497
7498         * src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning.
7499         * src/cff/cffload.c (cff_encoding_load): Remove `memory' variable.
7500         * src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames'
7501         variable.
7502         * src/truetype/ttgload.c (load_truetype_glyph): Remove statement
7503         without effect.
7504         * src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
7505
7506         * src/pshinter/pshalgo3.c (psh3_hint_table_record,
7507         psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error
7508         message.
7509
7510 2002-07-24  Graham Asher  <graham.asher@btinternet.com>
7511
7512         * src/truetype/ttobjs.c: Fix for bug reported by Sven Neumann
7513         [sven@gimp.org] on the FreeType development forum: `If
7514         FT_CONFIG_OPTION_INCREMENTAL is undefined (this is the default), the
7515         TrueType loader crashes in line 852 of src/truetype/ttgload.c when
7516         it tries to access face->glyph_locations.'
7517
7518 2002-07-18  Graham Asher  <graham.asher@btinternet.com>
7519
7520         Added types and structures to support incremental typeface loading.
7521         The FT_Incremental_Interface structure, defined in freetype.h, is
7522         designed to be passed to FT_Open_Face to provide callback functions
7523         to obtain glyph recipes and metrics, for fonts like those passed
7524         from PostScript that do not necessarily provide all, or any, glyph
7525         information, when first opened.
7526
7527         * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
7528         New configuration macro to enable incremental face loading.  By
7529         default it is not defined.
7530
7531         * include/freetype/freetype.h (FT_Basic_Glyph_Metrics,
7532         FT_Get_Glyph_Data_Func, FT_Get_Glyph_Metrics_Func,
7533         FT_Incremental_Interface_Funcs, FT_Incremental_Interface)
7534         [FT_CONFIG_OPTION_INCREMENTAL]: New.
7535         (FT_Open_Args, FT_FaceRec) [FT_CONFIG_OPTION_INCREMENTAL]: New field
7536         `incremental_interface'.
7537         (FT_Open_Flags) [FT_CONFIG_OPTION_INCREMENTAL]: New enum
7538         `ft_open_incremental'.
7539
7540         * include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H.
7541         (FT_Data): New structure to represent binary data.
7542
7543         * src/base/ftobjs.c (open_face) [FT_CONFIG_OPTION_INCREMENTAL]:
7544         Add parameter for incremental loading.
7545         (FT_Open_Face) [FT_CONFIG_OPTION_INCREMENTAL]: Use incremental
7546         interface.
7547
7548         * src/truetype/ttgload.c (load_truetype_glyph)
7549         [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
7550         for the TrueType driver.
7551         (compute_glyph_metrics): Return FT_Error.
7552         [FT_CONFIG_OPTION_INCREMENTAL]: Check for overriding metrics.
7553         (TT_Load_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Don't look for
7554         the glyph table while handling an incremental font.
7555         Get glyph offset.
7556
7557         * src/truetype/ttobjs.c (TT_Face_Init)
7558         [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading
7559         system for the TrueType driver.
7560
7561         * src/cid/cidgload.c (cid_load_glyph)
7562         [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
7563         for the CID driver.
7564
7565         * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
7566         Changes to support incremental Type 42 fonts: Assume a font has
7567         glyphs if it has an incremental interface object.
7568
7569         * src/type1/t1gload.c (T1_Parse_Glyph): Renamed to...
7570         (T1_Parse_Glyph_And_Get_Char_String): This.
7571         [FT_CONFIG_OPTION_INCREMENTAL]: Added support for incrementally
7572         loaded Type 1 faces.
7573         (T1_Parse_Glyph): New function.
7574         (T1_Load_Glyph): Updated.
7575
7576 2002-07-17  David Turner  <david@freetype.org>
7577
7578         Cleaning up the cache sub-system code; linear hashing is now the
7579         default.
7580
7581         * include/freetype/cache/ftccache.h, src/cache/ftccache.i,
7582         src/cache/ftccache.c [!FTC_CACHE_USE_LINEAR_HASHING]: Removed.
7583         (FTC_CACHE_USE_LINEAR_HASHING): Removed also.
7584
7585         FT_CONFIG_OPTION_USE_CMAPS is now the default.
7586
7587         * include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove
7588         `get_char_index' and `get_next_char'.
7589
7590         * include/freetype/config/ftoption.h,
7591         include/freetype/internal/tttypes.h, src/base/ftobjs.c,
7592         src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c,
7593         src/pfr/pfrdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
7594         src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c,
7595         src/type42/t42objs.c, src/winfonts/winfnt.c
7596         [!FT_CONFIG_OPTION_USE_CMAPS]: Removed.  The new cmap code is now
7597         the default.
7598
7599         * src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext):
7600         Removed.
7601         * src/type42/t42objs.h: Updated.
7602
7603         * src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char):
7604         Removed.
7605         (t1cid_driver_class): Updated.
7606         * src/truetype/ttdriver.c (tt_driver_class): Updated.
7607         * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Removed
7608         (t1_driver_class): Updated.
7609         * src/type42/t42drivr.c (t42_driver_class): Updated.
7610
7611         * src/base/ftobjs.c (open_face): Select Unicode cmap by default.
7612
7613         * src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that
7614         prevented OpenType fonts to be recognized by FreeType.
7615
7616 2002-07-11  David Turner  <david@freetype.org>
7617
7618         Changing the SFNT loader to check for SFNT-based font files
7619         differently.  We now ignore the range `helper' fields and check the
7620         `head' table's magic number instead.
7621
7622         * include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset'
7623         field.
7624
7625         * src/sfnt/ttload.c (sfnt_dir_check): New function.
7626         (TT_Load_SFNT_HeaderRec): Renamed to...
7627         (TT_Load_SFNT_Header): This.
7628         Implement new functionality.
7629         * src/sfnt/ttload.h: Updated.
7630         * src/sfnt/sfdriver.c (sfnt_interface): Updated.
7631
7632         * src/base/ftobject.c, src/base/fthash.c: Updated object sub-system
7633         and dynamic hash table implementation (still experimental, don't
7634         use).
7635         * include/freetype/internal/fthash.h: Updated.
7636         * include/freetype/internal/ftobjs.h (FT_LibraryRec): New member
7637         `meta_class'.
7638
7639         Fixing a bug in the Type 1 loader that prevented valid font bounding
7640         boxes to be loaded from multiple master fonts.
7641
7642         * include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field.
7643
7644         * include/freetype/internal/psaux.h (T1_FieldType): Add
7645         `T1_FIELD_TYPE_BBOX'.
7646         (T1_FieldLocation): Add `T1_FIELD_LOCATION_BBOX'.
7647         (T1_FIELD_BBOX): New macro.
7648
7649         * src/psaux/psobjs.c (PS_Parser_LoadField): Handle T1_FIELD_TYPE_BBOX.
7650         * src/type1/t1load.c (t1_allocate_blend): Create blend->bboxes.
7651         (T1_Done_Blend): Free blend->bboxes.
7652         (t1_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
7653         (parse_font_bbox): Commented out.
7654         (t1_keywords): Comment out `parse_font_bbox'.
7655         * src/type1/t1tokens.h: Define `FontBBox' field.
7656
7657 2002-07-10  David Turner  <david@freetype.org>
7658
7659         * src/cff/cffobjs.c: Small fix to select the Unicode charmap by
7660         default when needed.
7661         Small fix to allow OpenType fonts to support Adobe charmaps when
7662         needed.
7663
7664         * src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support
7665         charmaps for CFF fonts.
7666
7667         * src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated.
7668
7669         * include/freetype/internal/cfftypes.h (CFF_EncodingRec): Use
7670         fixed-length arrays for `sids' and `codes'.  Add `count' member.
7671         (CFF_FontRec): Add `psnames' member.
7672
7673         * src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffload.h,
7674         src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
7675         src/cffparse.h, src/cff/cffgload.c, src/cff/cffgload.h: Adding
7676         support for CFF charmaps, reformatting the sources, and removing
7677         some bugs in the Encoding and Charset loaders.
7678         Many fonts renamed to use lowercase only:
7679
7680           CFF_Builder_Init -> cff_builder_init
7681           CFF_Builder_Done -> cff_builder_done
7682           CFF_Init_Decoder -> cff_decoder_init
7683           CFF_Parse_CharStrings -> cff_decoder_parse_charstrings
7684           CFF_Load_Glyph -> cff_slot_load
7685           CFF_Init_Decoder -> cff_decoder_init
7686           CFF_Prepare_Decoder -> cff_decoder_prepare
7687           CFF_Get_Standard_Encoding -> cff_get_standard_encoding
7688           CFF_Access_Element -> cff_index_access_element
7689           CFF_Forget_Element -> cff_index_forget_element
7690           CFF_Get_Name -> cff_index_get_name
7691           CFF_Get_String -> cff_index_get_sid_string
7692           CFF_Get_FD -> cff_fd_select_get
7693           CFF_Done_Charset -> cff_charset_done
7694           CFF_Load_Charset -> cff_charset_load
7695           CFF_Done_Encoding -> cff_encoding_done
7696           CFF_Load_Encoding -> cff_encoding_load
7697           CFF_Done_SubFont -> cff_subfont_done
7698           CFF_Load_Font -> cff_font_load
7699           CFF_Done_Font -> cff_font_done
7700           CFF_Size_Get_Globals_Funcs -> cff_size_get_globals_funcs
7701           CFF_Size_Done -> cff_size_done
7702           CFF_Size_Init -> cff_size_init
7703           CFF_Size_Reset -> cff_size_reset
7704           CFF_GlyphSlot_Done -> cff_slot_done
7705           CFF_GlyphSlot_Init -> cff_slot_init
7706           CFF_StrCopy -> cff_strcpy
7707           CFF_Face_Init -> cff_face_init
7708           CFF_Face_Done -> cff_face_done
7709           CFF_Driver_Init -> cff_driver_init
7710           CFF_Driver_Done -> cff_driver_done
7711           CFF_Parser_Init -> cff_parser_init
7712           CFF_Parser_Run -> cff_parser_run
7713
7714           add_point -> cff_builder_add_point
7715           add_point1 -> cff_builder_add_point1
7716           add_contour -> cff_builder_add_contour
7717           close_contour -> cff_builder_close_contour
7718           cff_explicit_index -> cff_index_get_pointers
7719
7720 2002-07-09  Owen Taylor  <owen@redhat.com>
7721
7722         * src/pshinter/pshglob.c (psh_globals_new): Fixed a bug that
7723         prevented the hinter from using correct standard width and height
7724         values, resulting in hinting bugs with certain fonts (e.g. Utopia).
7725
7726 2002-07-07  David Turner  <david@freetype.org>
7727
7728         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Added code to return
7729         successfully when the function is called with a bitmap glyph (the
7730         previous code simply returned with an error).
7731
7732         * docs/DEBUG.TXT: Adding debugging support documentation.
7733
7734         * src/base/ftdebug.c (ft_debug_init), builds/win32/ftdebug.c
7735         (ft_debug_init), builds/amiga/src/ftdebug.c (ft_debug_init): Changed
7736         the syntax of the FT2_DEBUG environment variable used to control
7737         debugging output (i.e. logging and error messages).  It must now
7738         look like:
7739
7740           any:6 memory:4 io:3   or
7741           any:6,memory:4,io:3   or
7742           any:6;memory:4;io:3
7743
7744 2002-07-07  Owen Taylor  <owen@redhat.com>
7745
7746         * src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for
7747         blue fuzz.
7748         * src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field.
7749         * src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'.
7750
7751         Adding support for hinter-specific bit flags, and the new
7752         FT_Set_Hint_Flags high-level API.
7753
7754         * include/freetype/freetype.h (FT_Set_Hint_Flags): New function.
7755         (FT_HINT_NO_INTEGER_STEM, FT_HINT_NO_HSTEM_ALIGN,
7756         FT_HINT_NO_VSTEM_ALIGN): New macros.
7757
7758         * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
7759         `hint_flags' member.
7760
7761         * src/base/ftobjs.c (FT_Set_Hint_Flags): New function.
7762
7763         * include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags'
7764         member.
7765
7766         * include/freetype/internal/pshints.h (T1_Hints_ApplyFunc,
7767         T2_Hints_ApplyFunc): Add parameter to pass hint flags.
7768
7769         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings,
7770         T1_Decoder_Init): Use decoder->hint_flags.
7771         * src/cff/cffgload.h (CFF_Builder): Add `hint_flags' field.
7772         * src/cff/cffgload.c (CFF_Builder_Init): Set builder->hint_flags.
7773         (CFF_Parse_CharStrings): Updated.
7774         * src/pshinter/pshalgo1.c (ps1_hints_apply): Add parameter to handle
7775         hint flags (unused).
7776         * src/pshinter/pshalgo1.h: Updated.
7777         * src/pshinter/pshalgo2.c (ps2_hints_apply): Add parameter to handle
7778         hint flags (unused).
7779         * src/pshinter/pshalgo2.h: Updated.
7780         * src/pshinter/pshalgo3.c (ps3_hints_apply): Add parameter to handle
7781         hint flags.
7782         * src/pshinter/pshalgo3.h: Updated.
7783
7784 2002-07-04  David Turner  <david@freetype.org>
7785
7786         * src/pfr/pfrobjs.c (pfr_slot_load): Fixed a small bug that returned
7787         incorrect advances when the outline resolution was different from
7788         the metrics resolution.
7789
7790         * src/autohint/ahhint.c: Removing compiler warnings.
7791
7792         * src/autohint/ahglyph.c: s/FT_MEM_SET/FT_ZERO/ where appropriate.
7793         (ah_outline_link_segments): Slight improvements to the serif
7794         detection code.  More work is needed though.
7795
7796 2002-07-03  David Turner  <david@freetype.org>
7797
7798         Small improvements to the automatic hinter.  Uneven stem-widths have
7799         now disappeared and everything looks much better, even if there are
7800         still issues with serifed fonts.
7801
7802         * src/autohint/ahtypes.h (AH_Globals): Added `stds' array.
7803         * src/autohint/ahhint.c (OPTIM_STEM_SNAP): New #define.
7804         (ah_snap_width): Commented out.
7805         (ah_align_linked_edge): Renamed to...
7806         (ah_compute_stem_width): This.
7807         Don't allow uneven stem-widths.
7808         (ah_align_linked_edge): New function.
7809         (ah_align_serifed_edge): Don't strengthen serifs.
7810         (ah_hint_edges_3, ah_hinter_scale_globals): Updated.
7811
7812 2002-07-03  Owen Taylor  <owen@redhat.com>
7813
7814         Adding new algorithm based on Owen Taylor's recent work.
7815
7816         * src/pshinter/pshalgo3.c, src/pshinter/pshalgo3.h: New files.
7817         * src/pshinter/pshalgo.h: Updated.
7818         Use pshalgo3 by default.
7819         * src/pshinter/pshinter.c: Include pshalgo3.c.
7820
7821         * src/pshinter/Jamfile, src/pshinter/rules.mk: Updated.
7822
7823 2002-07-01  Owen Taylor  <owen@redhat.com>
7824
7825         * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points): Fix a bug
7826         where, if a glyph has more than hint mask, the second mask gets
7827         applied to points that should have been covered by the first mask.
7828
7829 2002-07-01  Keith Packard  <keithp@keithp.com>
7830
7831         * src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next):
7832         Fixing the cmap 8 and 12 parsing routines.
7833
7834 2002-07-01  David Turner  <david@freetype.org>
7835
7836         * src/base/ftsynth.c: Include FT_TRIGONOMETRY_H.
7837         (FT_Outline_Embolden): Renamed to...
7838         (FT_GlyphSlot_Embolden): This.
7839         Updated to new trigonometric functions.
7840         (FT_Outline_Oblique): Renamed to...
7841         (FT_GlyphSlot_Oblique): This.
7842         (ft_norm): Removed.
7843         * include/freetype/ftsynth.h: Updated.
7844
7845 2002-06-26  David Turner  <david@freetype.org>
7846
7847         * include/freetype/internal/ftobject.h: Updating the object
7848         sub-system definitions (still experimental).
7849
7850         * src/base/fthash.c (ft_hash_remove): Fixing a small reallocation
7851         bug.
7852
7853         * src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New
7854         functions.
7855         * include/freetype/fttrigon.h: Updated.
7856
7857
7858         Adding path stroker component (work in progress).
7859
7860         * include/freetype/ftstroker.h, src/base/ftstroker.c: New files.
7861         * src/base/Jamfile: Updated.
7862
7863         * include/freetype/config/ftheader.h (FT_STROKER_H): New macro.
7864
7865
7866         * src/truetype/ttgload.c (TT_Load_Composite_Glyph),
7867         src/base/ftoutln.c (FT_Vector_Transform): Fixed Werner's latest fix.
7868         FT_Vector_Transform wasn't buggy, the TrueType composite loader was.
7869
7870 2002-06-24  Werner Lemberg  <wl@gnu.org>
7871
7872         * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
7873
7874 2002-06-21  David Turner  <david@freetype.org>
7875
7876
7877         * Version 2.1.2 released.
7878         =========================
7879
7880
7881 2002-06-21  Roberto Alameda  <ojancano@geekmail.de>.
7882
7883         * include/freetype/internal/t42types.h (T42_Font): Removed since
7884         it is already in t42objs.h.
7885         (T42_Face): Use T1_FontRec.
7886
7887         * src/base/fttype1.c (FT_Get_PS_Font_Info): Updated.
7888         (FT_Has_PS_Glyph_Names): Check for type42 driver name also.
7889         * src/type42/t42objs.h: Include FT_INTERNAL_TYPE42_TYPES_H.
7890         (T42_Face): Removed since it is already in t42types.h.
7891
7892 2002-06-21  Detlef Würkner  <TetiSoft@apg.lahn.de>
7893
7894         * src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite
7895         glyphs.
7896
7897 2002-06-21  Sven Neumann  <sven@convergence.de>
7898
7899         * src/pfr/pfrtypes.h (PFR_KernPair): New structure.
7900         (PFR_PhyFont): Use it.
7901         (PFR_KernFlags): New enumeration.
7902         * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): New
7903         function.
7904         (pfr_phy_font_extra_items): Use it.
7905         (pfr_phy_font_done): Updated.
7906         * src/pfr/pfrobjs.c (pfr_face_init): Set kerning flag conditionally.
7907         (pfr_face_get_kerning): New function.
7908         * src/pfr/pfrobjs.h: Updated.
7909         * src/pfr/pfrdrivr.c (pfr_driver_class): Updated.
7910
7911 2002-06-21  David Turner  <david@freetype.org>
7912
7913         * README, docs/CHANGES: Preparing the 2.1.2 release.
7914
7915 2002-06-19  Detlef Würkner  <TetiSoft@apg.lahn.de>
7916
7917         * src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H.
7918         (t1_face_check_cast): Removed.
7919         (FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers
7920         also.
7921
7922 2002-06-19  Sebastien BARRE  <http://barre.nom.fr/contact.html#email>
7923
7924         * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning.
7925
7926 2002-06-19  Werner Lemberg  <wl@gnu.org>
7927
7928         * src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo
7929         (xy <-> yx).
7930         * src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with
7931         `||' to make code easier to read.
7932
7933 2002-06-18  Roberto Alameda  <ojancano@geekmail.de>.
7934
7935         * src/type42/t42objs.c (t42_check_size_change): Removed.
7936         (T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size
7937         instead.
7938         (T42_GlyphSlot_Load): Remove call to t42_check_size_change.
7939
7940 2002-06-18  Detlef Würkner  <TetiSoft@apg.lahn.de>
7941
7942         * src/psaux/t1cmap.c (t1_cmap_custom_char_index,
7943         t1_cmap_custom_char_next): Fix index computation -- indices start
7944         with 0 and not with cmap->first.
7945
7946         Provide default charmaps.
7947
7948         * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
7949         (PCF_Face_Init), src/pfr/pfrobjs.c (pfr_face_init),
7950         src/type1/t1objs (T1_Face_Init), src/winfonts/winfnt.c
7951         (FNT_Face_Init): Implement it.
7952
7953 2002-06-17  Sven Neumann  <sven@gimp.org>
7954
7955         * src/pfr/pfrobjs.c (pfr_face_init): Fix typo.
7956
7957 2002-06-16  Leonard Rosenthol  <leonardr@lazerware.com>
7958
7959         Updated Win32/VC++ projects to include the new PFR driver.
7960
7961         * builds/win32/visualc/freetype.dsp: Updated.
7962
7963 2002-06-16  Anthony Fok  <fok@debian.org>
7964
7965         Install freetype2.m4.
7966
7967         * builds/unix/install.mk (install, uninstall): Handle it.
7968
7969 2002-06-16  Detlef Würkner  <TetiSoft@apg.lahn.de>
7970
7971         Same fix for PFR driver.
7972
7973         * src/pfr/pfrcmap.c (pfr_cmap_char_index, pfr_cmap_char_next):
7974         Increase return value by 1.
7975         * src/pfr/pfrobjs.c (pfr_slot_load): Decrease index by 1.
7976
7977 2002-06-15  Detlef Würkner  <TetiSoft@apg.lahn.de>
7978
7979         Fix glyph indices to make index zero always the undefined glyph.
7980
7981         * src/bdf/bdfdrivr.c (bdf_cmap_init): Don't decrease
7982         cmap->num_encodings.
7983         (bdf_cmap_char_index, bdf_cmap_char_next, BDF_Get_Char_Index):
7984         Increase result by 1 for normal cases.
7985         (BDF_Glyph_Load): Decrease index by 1.
7986
7987         * src/pcf/pcfdriver.c (pcf_cmap_char_index, pcf_cmap_char_next,
7988         PCF_Char_Get_Index): Increase result by 1 for normal cases.
7989         (PCF_Glyph_Load): Decrease index by 1.
7990         * src/pcf/pcfread.c (pcf_get_encodings): Don't decrease j for
7991         allocating `encoding'.
7992
7993         * src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix
7994         bounding tests.
7995
7996 2002-06-14  Detlef Würkner  <TetiSoft@apg.lahn.de>
7997
7998         Add new cmap support to BDF driver.
7999
8000         * src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]:
8001         New structure.
8002         (bdf_cmap_init, bdf_cmap_done, bdf_cmap_char_index,
8003         bdf_cmap_char_next) [FT_CONFIG_OPTION_USE_CMAPS]: New functions.
8004         (BDF_Get_Char_Index) [!FT_CONFIG_OPTION_USE_CMAPS]: Use only
8005         conditionally.
8006         (BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords.
8007         Implement new cmap handling.
8008         (bdf_driver_class): Updated.
8009
8010 2002-06-14  Werner Lemberg  <wl@gnu.org>
8011
8012         * Makefile, configure, */*.mk, builds/unix/unix-def.in,
8013         docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/.
8014
8015 2002-06-12  Werner Lemberg  <wl@gnu.org>
8016
8017         * src/bdf/bdflib.c: s/FT_Short/short/ for consistency.
8018
8019 2002-06-11  David Turner  <david@freetype.org>
8020
8021         * builds/win32/ftdebug.c: Added a missing #endif.
8022
8023         * src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings.
8024
8025         Removed the bug in Type 42 driver that prevented un-hinted outlines
8026         to be loaded.
8027
8028         * src/type42/t42objs.c (T42_Face_Init): Call FT_Done_Size.
8029         (T42_Size_Init): Call FT_Activate_Size.
8030         (t42_check_size_change): New function.
8031         (T42_Size_SetChars, T42_Size_SetPixels): Use it.
8032         (ft_glyphslot_clear): Replace FT_MEM_SET with FT_ZERO.
8033         (T42_GlyphSlot_Load): Use t42_check_size_change.
8034         Initialize more fields of `glyph'.
8035
8036         * builds/win32/visualc/freetype.dsp: Updated.
8037
8038 2002-06-09  David Turner  <david@freetype.org>
8039
8040
8041         * Version 2.1.1 released.
8042         =========================
8043
8044
8045 2002-06-08  Juliusz Chroboczek  <jch@pps.jussieu.fr>
8046
8047         * include/freetype/internal/ftobjs.h, src/autohint/ahglyph.c,
8048         src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/smooth/ftgrays.c: Don't
8049         use `setjmp', `longjmp', and `jmp_buf' but `ft_setjmp', `ft_longjmp',
8050         and `ft_jmp_buf'.
8051         Removed direct references to <stdio.h> and <setjmp.h> when
8052         appropriate, to eventually replace them with a
8053         FT_CONFIG_STANDARD_LIBRARY_H.  Useful for the XFree86 Font Server
8054         backend based on FT2.
8055
8056         * src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value.
8057
8058 2002-06-08  David Turner  <david@freetype.org>
8059
8060         * src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused
8061         the function to return invalid values.
8062
8063         * src/cache/ftccache.i: Removing a typo that prevented
8064         the source's compilation.
8065
8066         * src/cache/ftccache.c (ftc_node_hash_unlink): Fixed a
8067         bug that caused nasty memory overwrites.  The hash table's
8068         buckets array wasn't correctly resized when shrunk.
8069
8070 2002-06-08  Detlef Würkner  <TetiSoft@apg.lahn.de>
8071
8072         * builds/amiga/smakefile, builds/amiga/makefile: Updated.
8073
8074 2002-06-08  Werner Lemberg  <wl@gnu.org>
8075
8076         * src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link)
8077         [FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code.
8078         Fix debugging messages.
8079         * src/cache/ftccache.i (GEN_CACHE_LOOKUP): Move declaration of
8080         `family' and `hash' up to make it compilable with g++.
8081
8082         * src/type42/t42error.h: New file.
8083         * src/type42/t42drivr.c, src/type42/t42objs.c,
8084         src/type42/t42parse.c: Use t42 error codes.
8085         * src/type42/rules.mk: Updated.
8086
8087         * src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.
8088
8089 2002-06-08  David Turner  <david@freetype.org>
8090
8091         * src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE,
8092         GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
8093         New macros.
8094         (ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
8095         ftc_cache_lookup.
8096         (FTC_CMapCache_Lookup): Updated.
8097
8098         Adding various experimental optimizations to the cache manager.
8099
8100         * include/freetype/cache/ftccache.h (FTC_CACHE_USE_INLINE,
8101         FTC_CACHE_USE_LINEAR_HASHING): New options.
8102         (FTC_CacheRec) [FTC_CACHE_USE_LINEAR_HASHING]: New elements `p',
8103         `mask', and `slack'.
8104
8105         * src/cache/ftccache.c (FTC_HASH_MAX_LOAD, FTC_HASH_MIN_LOAD,
8106         FTC_HASH_SUB_LOAD) [FTC_CACHE_USE_LINEAR_HASHING,
8107         FTC_HASH_INITIAL_SIZE]: New macros.
8108         (ftc_node_mru_link, ftc_node_mru_up): Optimized.
8109         (ftc_node_hash_unlink, ftc_node_hash_link)
8110         [FTC_CACHE_USE_LINEAR_HASHING]: New variants.
8111         (FTC_PRIMES_MIN, FTC_PRIMES_MAX, ftc_primes, ftc_prime_closest,
8112         FTC_CACHE_RESIZE_TEST, ftc_cache_resize)
8113         [!FTC_CACHE_USE_LINEAR_HASHING]: Define it conditionally.
8114         (ftc_cache_init, ftc_cache_clear) [FTC_CACHE_USE_LINEAR_HASHING]:
8115         Updated.
8116         (ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it.
8117
8118         * src/cache/ftccache.i: New file.
8119
8120         * src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE,
8121         GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
8122         New macros.
8123         (ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
8124         ftc_cache_lookup.
8125         (FTC_SBitCache_Lookup): Updated.
8126
8127         * src/type42/t42parse.c: Removing duplicate function.
8128
8129 2002-06-07  Graham Asher  <graham.asher@btinternet.com>
8130
8131         * src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition
8132         from FT_EXPORT_DEF to FT_BASE_DEF.
8133
8134 2002-06-07  David Turner  <david@freetype.org>
8135
8136         Fixed the bug that prevented the correct display of fonts with
8137         `ftview'.
8138
8139         * src/type42/t42drivr.c: Split into...
8140         * src/type42/t42drivr.h, src/type42/t42parse.c,
8141         src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c,
8142         src/type42/type42.c: New files.
8143
8144         (t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use
8145         `face->type1'.
8146
8147         (Get_Interface): Renamed to...
8148         (T42_Get_Interface): This.
8149         Updated.
8150         (T42_Open_Face, T42_Face_Done): Updated.
8151         (T42_Face_Init): Add new cmap support.
8152         Updated.
8153         (T42_Driver_Init, T42_Driver_Done, T42_Size_Init, T42_Size_Done,
8154         T42_GlyphSlot_Init, T42_GlyphSlot_Done): Updated.
8155         (Get_Char_Index, Get_Next_Char): Renamed to...
8156         (T42_CMap_CharIndex, T42_CMap_CharNext): This.
8157         Updated.
8158         (T42_Char_Size, T42_Pixel_Size): Renamed to...
8159         (T42_Size_SetChars, T42_Size_SetPixels): This.
8160         (T42_Load_Glyph): Renamed to...
8161         (T42_GlyphSlot_Load): This.
8162
8163         (t42_init_loader, t42_done_loader): Renamed to...
8164         (t42_loader_init, t42_loader_done): This.
8165         (T42_New_Parser, T42_Finalize_Parser): Renamed to...
8166         (t42_parser_init, t42_parser_done): This.
8167         (parse_dict): Renamed to...
8168         (t42_parse_dict): This.
8169         (is_alpha, is_space, hexval): Renamed to...
8170         (t42_is_alpha, t42_is_space, t42_hexval): This.
8171         (parse_font_name, parse_font_bbox, parse_font_matrix,
8172         parse_encoding, parse_sfnts, parse_charstrings, parse_dict):
8173         Renamed to...
8174         (t42_parse_font_name, t42_parse_font_bbox, t42_parse_font_matrix,
8175         t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings,
8176         t42_parse_dict): This.
8177         Updated.
8178
8179         (t42_keywords): Updated.
8180
8181         * src/type42/Jamfile, src/type42/descrip.mms: Updated.
8182
8183 2002-06-03  Werner Lemberg  <wl@gnu.org>
8184
8185         Add 8bpp support to BDF driver.
8186
8187         * src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp.
8188         * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto.
8189         * src/bdf/README: Updated.
8190
8191 2002-06-02  Detlef Würkner  <TetiSoft@apg.lahn.de>
8192
8193         * src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array.
8194
8195 2002-05-29  Detlef Würkner  <TetiSoft@apg.lahn.de>
8196
8197         * src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically.
8198         (_bdf_parse_glyphs): Use correct size for allocating
8199         `font->unencoded'.
8200         (bdf_load_font): Free array conditionally.
8201         Return proper error code in case of failure.
8202         * src/bdf/bdfdrivr.c (BDF_Face_Init): Make it more robust against
8203         unusual fonts.
8204
8205 2002-05-29  Werner Lemberg  <wl@gnu.org>
8206
8207         * src/bdf/descrip.mms, src/type42/descrip.mms: New files.
8208         * descrip.mms (all): Updated.
8209
8210         * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
8211         compilation.
8212         * src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.
8213
8214 2002-05-28  Detlef Würkner  <TetiSoft@apg.lahn.de>
8215
8216         * builds/amiga/makefile, builds/amiga/smakefile,
8217         amiga/include/freetype/config/ftmodule.h: Updated to include
8218         support for BDF and Type42 drivers.
8219
8220         * docs/modules.txt: Updated.
8221
8222 2005-05-28  David Turner  <david@freetype.org>
8223
8224         * docs/CHANGES: Updating file for next release (2.1.1).
8225
8226         * src/bdf/bdflib.c: Removing compiler warnings.
8227
8228         * include/freetype/ftxf86.h, src/base/ftxf86.c: New files.
8229         They provide a new API (FT_Get_X11_Font_Format) to retrieve an
8230         X11-compatible string describing the font format of a given face.
8231         This was put in a new optional base source file, corresponding to a
8232         new public header (named FT_XFREE86_H since this function should
8233         only be used within the XFree86 font server IMO).
8234
8235         * include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not
8236         documented yet).
8237
8238         * src/base/fttype1.c: New file, providing two new API functions
8239         (FT_Get_PS_Font_Info and FT_Has_PS_Glyph_Names).
8240         * include/freetype/t1tables.h: Updated.
8241
8242         * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms:
8243         Updating build control files for the new files `ftxf86.c' and
8244         `fttype1.c' in src/base.
8245
8246         * src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that
8247         prevented family blue zones substitution from happening correctly.
8248
8249         * include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding
8250         documentation comment.
8251
8252 2002-05-28  Werner Lemberg  <wl@gnu.org>
8253
8254         * src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT
8255         but FT_STREAM_READ.
8256         Declare `stream' variable.
8257
8258         * src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math
8259         with calls to `FT_MulDiv'.
8260
8261 2002-05-28  David Turner  <david@freetype.org>
8262
8263         Fixing the SFNT name table loader to support various buggy fonts.
8264         It now ignores empty name entries, entries with invalid pointer
8265         Offsets and certain fonts containing tables with broken
8266         `storageOffset' fields.
8267
8268         Name strings are now loaded on demand, which reduces the memory
8269         requirements for a given FT_Face tremendously (for example, the name
8270         table of Arial.ttf is about 10Kb and contains 70 names).
8271
8272         This is a temporary fix.  The whole name table loader and interface
8273         will be rewritten in a much more cleanly way shortly, once CSEH have
8274         been introduced in the sources.
8275
8276         * include/freetype/internal/tttypes.h (TT_NameEntryRec): Change
8277         type of `stringOffset' to FT_ULong.
8278         (TT_NameTableRec): Change type of `numNameRecords' and
8279         `storageOffset' to FT_UInt.
8280         Replace `storage' with `stream'.
8281         * src/base/ftnames.c (FT_Get_Sfnt_Name): Load name on demand.
8282         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
8283         Make code more robust.
8284         * src/sfnt/sfobjs.c (TT_NameEntry_ConvertFunc): New typedef.
8285         (tt_face_get_name): Use it.
8286         Make code more robust.
8287         * src/sfnt/ttload.c (TT_Load_Names): Use `static' for arrays.
8288         Handle invalid `storageOffset' data better.
8289         Set length fields to zero for invalid or ignored data.
8290         Remove code within FT_DEBUG_LEVEL_TRACE.
8291         (TT_Free_Names): Updated.
8292
8293 2002-05-24  Tim Mooney  <enchanter@users.sourceforge.net>
8294
8295         * builds/unix/ft-munmap.m4: New file, extracted FT_MUNMAP_DECL and
8296         FT_MUNMAP_PARAM from aclocal.m4 into here, so aclocal.m4 can be
8297         rebuilt from sources.  Set macro serial to 1, and use third argument
8298         to AC_DEFINE for our two custom symbols, so ftconfig.in could one day
8299         be rebuilt with autoheader (not recommended now, ftconfig.in is a
8300         custom source file)
8301
8302 2002-05-22  Werner Lemberg  <wl@gnu.org>
8303
8304         * include/freetype/config/ftheader.h (FT_BEZIER_H): Removed.
8305         (FT_BDF_H): New macro for accessing `ftbdf.h'.
8306
8307         * src/type42/t42drivr.c (hexval): Fix typo.
8308
8309 2002-05-21  Martin Muskens  <mmuskens@aurelon.com>
8310
8311         * src/psaux/psobjs.c (T1Radix): New function.
8312         (t1_toint): Use it to handle numbers in radix format.
8313
8314         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy
8315         for undocumented, obsolete opcode 15.
8316
8317 2002-05-21  David Turner  <david@freetype.org>
8318
8319         * src/bdf/bdflib.c: Removed compiler warning, and changed all tables
8320         to the `static const' storage specifier (instead of simply
8321         `static').
8322
8323         * src/type42/t42drivr.c (hexval): Use more efficient code.
8324         Removing compiler warnings.
8325         * src/bdf/bdfdrivr.c: Removing compiler warnings.
8326
8327         * include/freetype/internal/ftbdf.h, src/base/ftbdf.c,
8328         src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk
8329         (FT_Get_BDF_Charset_ID): New API to retrieve BDF-specific strings
8330         from a face.  This is much cleaner than accessing the internal types
8331         `BDF_Public_Face' defined in FT_INTERNAL_BDF_TYPES_H.
8332
8333 2002-05-21  Werner Lemberg  <wl@gnu.org>
8334
8335         * src/bdf/README: Mention Microsoft's SBIT tool.
8336
8337         * src/cff/cffdrivr.c, src/cid/cidriver.c, src/pcf/pcfdriver.c,
8338         src/truetype/ttdriver.c, src/type1/t1driver.c,
8339         src/winfonts/winfnt.c, src/type42/t42drivr.c, src/bdf/bdfdrivr.c
8340         [FT_CONFIG_OPTION_DYNAMIC_DRIVERS]: Completely removed.  It has
8341         been never used.
8342
8343 2002-05-21  Roberto Alameda  <ojancano@geekmail.de>.
8344
8345         * src/type42/t42drivr.c: s/T42_ENCODING_TYPE_/T1_ENCODING_TYPE_/.
8346         (parse_font_matrix): Remove unnecessary code.
8347         (parse_sfnts): Initialize some variables.
8348         (t42_driver_class) [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Use
8349         ft_module_driver_has_hinter conditionally.
8350         Moved some type 42 specific structure definitions to...
8351         * include/freetype/internal/t42types.h: New file.
8352         * include/freetype/internal/internal.h (FT_INTERNAL_T42_TYPES_H):
8353         New macro.
8354
8355 2002-05-20  Werner Lemberg  <wl@gnu.org>
8356
8357         * include/freetype/cache/ftcsbits.h (FTC_SBit): Added a new field
8358         `num_grays' for specifying the number of used gray levels.
8359         * src/cache/ftcsbits.c (ftc_sbit_node_load): Initialize it.
8360
8361 2002-05-19  Werner Lemberg  <wl@gnu.org>
8362
8363         Adding a driver for BDF fonts written by Francesco Zappa Nardelli
8364         <Francesco.Zappa.Nardelli@ens.fr>.  Heavily modified by me to
8365         better adapt it to FreeType, removing unneeded stuff.  Additionally,
8366         it now supports Mark Leisher's BDF extension for anti-aliased
8367         bitmap glyphs with 2 and 4 bpp.
8368
8369         * src/bdf/*: New driver.
8370         * include/freetype/internal/bdftypes.h: New file.
8371         * include/freetype/internal/fttrace.h: Added BDF driver components.
8372         * include/freetype/fterrdef.h: Added error codes for BDF driver.
8373         * include/freetype/config/ftmodule.h, src/Jamfile: Updated.
8374         * include/freetype/internal/internal.h (FT_INTERNAL_BDF_TYPES_H):
8375         New macro.
8376
8377         * include/freetype/config/ftstdlib.h (ft_sprintf): New alias for
8378         sprintf.
8379
8380 2002-05-18  Werner Lemberg  <wl@gnu.org>
8381
8382         * include/freetype/internal/fttrace.h: Added Type 42 driver
8383         component.
8384         * src/type42/t42drivr.c: Use it.
8385
8386         * include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H):
8387         New macro.
8388
8389 2002-05-17  Werner Lemberg  <wl@gnu.org>
8390
8391         * src/type42/Jamfile: New file.
8392
8393 2002-05-14  Werner Lemberg  <wl@gnu.org>
8394
8395         Adding a driver for Type42 fonts written by Roberto Alameda
8396         <ojancano@geekmail.de>.
8397
8398         * src/type42/*: New driver.
8399         * include/freetype/config/ftmodule.h, src/Jamfile: Updated.
8400         * include/freetype/config/ftstdlib.h (ft_xdigit, ft_memcmp,
8401         ft_atoi): New aliases for xdigit, memcmp, and atoi, respectively.
8402
8403 2002-05-12  Owen Taylor  <otaylor@redhat.com>
8404
8405         * src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables
8406         with a zero length value.
8407
8408 2002-05-12  Michael Pfeiffer  <michael.pfeiffer@utanet.at>
8409
8410         * builds/beos/beos.mk: Include `link-std.mk'.
8411
8412 2002-05-12  Werner Lemberg  <wl@gnu.org>
8413
8414         * src/type1/t1load.h (T1_Loader): Renamed to...
8415         (T1_LoaderRec): This.
8416         (T1_Loader): Now pointer to T1_LoaderRec.
8417         * src/type1/t1load.c: Updated.
8418
8419         * include/freetype/internal/t1types.h, src/type1/t1load.c,
8420         src/type1/t1objs.c:
8421         s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
8422
8423 2002-05-06  Werner Lemberg  <wl@gnu.org>
8424
8425         * README: Add a note regarding libttf vs. libfreetype.
8426
8427 2002-05-05  Werner Lemberg  <wl@gnu.org>
8428
8429         FreeType 2 can now be built in an external directory with the
8430         configure script also.
8431
8432         * builds/freetype.mk (INCLUDES): Add `OBJ_DIR'.
8433
8434         * builds/unix/detect.mk (have_mk): New variable to test for
8435         external build.
8436         (unix-def.mk): Defined according to value of `have_mk'.
8437         * builds/unix/unix.mk (have_mk): New variable to test for
8438         external build.
8439         Select include paths for unix-def.mk and unix-cc.mk according
8440         to value of `have_mk'.
8441         * builds/unix/unix-def.in (OBJ_BUILD): New variable.
8442         (DISTCLEAN): Use it.
8443         * builds/unix/unix-cc.in (LIBTOOL): Define default value only
8444         if not yet defined.
8445         * builds/unix/install.mk (install): Use `OBJ_BUILD' for installing
8446         freetype-config.
8447
8448         * configure: Don't depend on bash features.
8449         (ft2_dir, abs_curr_dir, abs_ft2_dir): New variables (code
8450         partially taken from Autoconf).
8451         Build a dummy Makefile if not building in source tree.
8452
8453         * docs/INSTALL: Document it.
8454
8455 2002-05-04  David Turner  <david@freetype.org>
8456
8457         * src/truetype/ttgload.c (TT_Load_Glyph): Finally fixing the last
8458         bug that prevented FreeType 2.x and FreeType 1.x to produce
8459         bit-by-bit identical monochrome glyph bitmaps with native TrueType
8460         hinting.  The culprit was a single-bit flag that wasn't set
8461         correctly by the TrueType glyph loader.
8462
8463         * src/otlayout/otlayout.h, src/otlayout/otlbase.c,
8464         src/otlayout/otlbase.h, src/otlayout/otlconf.h,
8465         src/otlayout/otlgdef.c, src/otlayout/otlgdef.h,
8466         src/otlayout/otlgpos.c, src/otlayout/otlgpos.h,
8467         src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
8468         src/otlayout/otljstf.c, src/otlayout/otljstf.h,
8469         src/otlayout/otltable.c, src/otlayout/otltable.h,
8470         src/otlayout/otltags.h: New OpenType Layout source files.  The
8471         module is still incomplete.
8472
8473 2002-05-02  Werner Lemberg  <wl@gnu.org>
8474
8475         * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo
8476         (0xFFFU -> 0xFFFFU).
8477
8478 2002-05-01  Werner Lemberg  <wl@gnu.org>
8479
8480         * docs/INSTALL: Fix URL of makepp.
8481
8482 2002-05-01  David Turner  <david@freetype.org>
8483
8484         * src/sfnt/sfobjs.c (tt_face_get_name): Fixing a bug that caused
8485         FreeType to crash when certain broken fonts (e.g. `hya6gb.ttf')
8486         were opened.
8487
8488         * src/sfnt/ttload.c (TT_Load_Names): Applied a small work-around to
8489         manage fonts containing a broken name table (e.g. `hya6gb.ttf').
8490
8491         * src/sfnt/ttcmap0.c (tt_cmap4_validate): Fixed over-restrictive
8492         validation test.  The charmap validator now accepts overlapping
8493         ranges in format 4 charmaps.
8494
8495         * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary
8496         search algorithm.  Certain fonts contain more than 170 distinct
8497         segments!
8498
8499         * include/freetype/config/ftstdlib.h: Adding an alias for the `exit'
8500         function.  This will be used in the near future to panic in case of
8501         unexpected exception (which shouldn't happen in theory).
8502
8503         * include/freetype/internal/fthash.h, src/base/fthash.c: New files.
8504         This is generic implementation of dynamic hash tables using a linear
8505         algorithm (to get rid of `stalls' during resizes).  In the future
8506         this will be used in at least three parts of the library: the cache
8507         sub-system, the object sub-system, and the memory debugger.
8508
8509         * src/base/Jamfile: Updated.
8510
8511         * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H,
8512         FT_INTERNAL_OBJECT_H): New macros.
8513
8514         * include/freetype/internal/ftcore.h: New file to group all new
8515         definitions related to exception handling and memory management.  It
8516         is very likely that this file will disappear or be renamed in the
8517         future.
8518
8519         * include/freetype/internal/ftobject.h, include/freetype/ftsysmem.h:
8520         Adding comments to better explain the object sub-system as well as
8521         the new memory manager interface.
8522
8523 2002-04-30  Wenlin Institute (Tom Bishop)  <wenlin@wenlin.com>
8524
8525         * src/base/ftmac.c (p2c_str): Removed.
8526         (file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for
8527         OS X.
8528         (is_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X.
8529         Handle `nameLen' <= 6 also.
8530         (parse_fond): Remove unused variable `name_table'.
8531         Use functionality of old p2c_str directly.
8532         Add safety checks.
8533         (read_lwfn): Initialize `size_p'.
8534         Check for size_p == NULL.
8535         (new_memory_stream, open_face_from_buffer): Updated to FreeType 2.1.
8536         (FT_New_Face_From_LWFN): Remove unused variable `memory'.
8537         Remove some dead code.
8538         (FT_New_Face_From_SFNT): Remove unused variable `stream'.
8539         (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Define only for
8540         OS X.
8541         (FT_New_Face_From_FOND): Remove unused variable `error'.
8542         (ResourceForkSize): New function.
8543         (FT_New_Face): Use it.
8544         Handle empty resource forks.
8545         Conditionalize some code for OS X.
8546         Add code to call normal loader as a fallback.
8547
8548 2002-04-30  Werner Lemberg  <wl@gnu.org>
8549
8550         `interface' is reserved on the Mac.
8551
8552         * include/freetype/ftoutln.h, include/freetype/internal/sfnt.h,
8553         src/base/ftoutln.c: s/interface/func_interface/.
8554         * src/base/ftbbox.c (FT_Outline_Get_BBox):
8555         s/interface/bbox_interface/.
8556         * src/cff/cffdrivr.c: s/interface/module_interface/.
8557         * src/cff/cffload.c, src/cff/cffload.h:
8558         s/interface/psnames_interface/.
8559         * src/cid/cidriver.c: s/interface/cid_interface/.
8560         * src/sfnt/sfdriver.c: s/interface/module_interface/.
8561         * src/smooth/ftgrays.c: s/interface/func_interface/.
8562         * src/truetype/ttdriver.c: s/interface/tt_interface/.
8563         * src/type1/t1driver.c: s/interface/t1_interface/.
8564
8565         Some more variable renames to avoid troubles on the Mac.
8566
8567         * src/raster/ftraster.c:
8568         s/Unknown|Ascending|Descending|Flat/\1_State/.
8569         * src/smooth/ftgrays.c: s/TScan/TCoord/.
8570
8571         Other changes for the Mac.
8572
8573         * include/freetype/config/ftconfig.h: Define FT_MACINTOSH for
8574         Mac platforms.
8575         * src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/.
8576
8577         * src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always
8578         an even number.
8579
8580 2002-04-29  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
8581
8582         * descrip.mms (all): Add pfr driver.
8583
8584 2002-04-28  Werner Lemberg  <wl@gnu.org>
8585
8586         * src/pfr/pfrerror.h: New file.
8587         * include/freetype/ftmoderr.h: Add PFR error codes.
8588         * src/pfr/pfrgload.c: Include pfrerror.h.
8589         Use PCF error codes.
8590         (pfr_extra_item_load_stem_snaps): Fix debug message.
8591         * src/pfr/pfrgload.c: Include pfrerror.h.
8592         Use PCF error codes.
8593         (pfr_extra_item_load_bitmap_info, pfr_glyph_load_simple,
8594         pfr_glyph_load_compound): Fix debug message.
8595         * src/pfr/pfrobjs.c: Include pfrerror.h.
8596         Use PCF error codes.
8597         (pfr_face_init): Return PFR_Err_Unknown_File_Format.
8598         * src/pfr/rules.mk (PFR_DRV_H): Include pfrerror.h.
8599
8600         * src/pcf/pcfdriver.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_CMAPS]:
8601         `root' -> `face->root'.
8602         * src/sfnt/ttcmap0.c (TT_Build_CMaps) [!FT_CONFIG_OPTION_USE_CMAPS]:
8603         Removed.
8604         * src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for
8605         FT_CONFIG_OPTION_USE_CMAPS.
8606
8607 2002-04-27  Werner Lemberg  <wl@gnu.org>
8608
8609         * src/cache/ftccache.c (ftc_cache_lookup),
8610         src/cache/ftccmap.c (ftc_cmap_family_init),
8611         src/cache/ftcmanag.c (ftc_family_table_alloc),
8612         src/cache/ftcsbits.c (FTC_SBit_Cache_Lookup): Use FTC_Err_*.
8613         src/cache/ftcimage.c (FTC_Image_Cache_Lookup): Use FTC_Err_*.
8614         (FTC_ImageCache_Lookup): Fix handling of invalid arguments.
8615
8616 2002-04-22  Werner Lemberg  <wl@gnu.org>
8617
8618         * builds/unix/configure.ac: Set `version_info' to 9:1:3 (FT2
8619         version 2.0.9 has 9:0:3).
8620         * builds/unix/configure: Regenerated (using autoconf 2.53).
8621
8622 2002-04-19  Werner Lemberg  <wl@gnu.org>
8623
8624         * src/pfr/pfrload.c (pfr_extra_items_parse): Fix debug message.
8625         (pfr_phy_font_load): s/size/Size/ for local variable to avoid
8626         compiler warning.
8627         * src/pfr/pfrobjs.c (pfr_face_init): Fix debug message.
8628         (pfr_slot_load): Remove redundant local variable.
8629
8630 2002-04-19  David Turner  <david@freetype.org>
8631
8632         Adding a PFR font driver to the FreeType sources.  Note that it
8633         doesn't support embedded bitmaps or kerning tables yet.
8634
8635         src/pfr/*: New files.
8636
8637         * include/freetype/config/ftmodule.h,
8638         include/freetype/internal/fttrace.h, src/Jamfile: Updated.
8639
8640         * src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c
8641         (T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback
8642         function.
8643
8644         * include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New
8645         macros.
8646
8647         * include/freetype/internal/ftstream.h (FT_NEXT_OFF3, FT_NEXT_UOFF3,
8648         FT_NEXT_OFF3_LE, FT_NEXT_UOFF3_LE): New macros to parse in-memory
8649         24-bit integers.
8650
8651 2002-04-18  David Turner  <david@freetype.org>
8652
8653         * src/base/ftobjs.c, builds/win32/ftdebug.c,
8654         builds/amiga/src/base/ftdebug.c: Version 2.1.0 couldn't be linked
8655         against applications in Win32 and Amiga builds due to changes to
8656         `src/base/ftdebug.c' that were not properly propagated to
8657         `builds/win32' and `builds/amiga'.  This has been fixed.
8658
8659         * include/freetype/internal/ftobject.h,
8660         include/freetype/internal/ftexcept.h, include/freetype/ftsysmem.h,
8661         include/freetype/ftsysio.h, src/base/ftsysmem.c, src/base/ftsysio.c:
8662         New experimental files.
8663
8664 2002-04-17  David Turner  <david@freetype.org>
8665
8666
8667         * Version 2.1.0 released.
8668         =========================
8669
8670
8671 2002-04-17  Michael Jansson  <mjan@em2-solutions.com>
8672
8673         * src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug
8674         that prevented the function to return the correct value.
8675
8676 2002-04-16  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
8677
8678         * src/pcf/pcfread.c (pcf_get_accel): Fix parsing of accelerator
8679         tables.
8680
8681 2002-04-15  David Turner  <david@freetype.org>
8682
8683         * docs/FTL.txt: Formatting.
8684
8685         * include/freetype/config/ftoption.h: Reduce the size of the
8686         render pool from 32kByte to 16kByte.
8687
8688         * src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler
8689         warning.
8690
8691         * include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed.
8692
8693         * docs/CHANGES: Preparing 2.1.0 release.
8694
8695 2002-04-13  Werner LEMBERG  <wl@gnu.org>
8696
8697         * src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid
8698         compiler warning.
8699
8700 2002-04-12  David Turner  <david@freetype.org>
8701
8702         * README.UNX: Updated the Unix-specific quick-compilation guide to
8703         warn about the GNU Make requirement at compile time.
8704
8705         * include/freetype/config/ftstdlib.h,
8706         include/freetype/config/ftconfig.h,
8707         include/freetype/config/ftheader.h,
8708         include/freetype/internal/ftmemory.h,
8709         include/freetype/internal/ftobjs.h,
8710
8711         src/autohint/ahoptim.c,
8712
8713         src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c,
8714         src/base/ftobjs.c, src/base/ftsystem.c,
8715
8716         src/cache/ftcimage.c, src/cache/ftcsbits.c,
8717
8718         src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffobjs.c,
8719
8720         src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
8721
8722         src/pcf/pcfdriver.c, src/pcf/pcfread.c,
8723
8724         src/psaux/t1cmap.c, src/psaux/t1decode.c,
8725
8726         src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
8727         src/pshinter/pshrec.c,
8728
8729         src/psnames/psmodule.c,
8730
8731         src/raster/ftraster.c,
8732
8733         src/sfnt/sfdriver.c, src/sfnt/ttload.c,
8734
8735         src/smooth/ftgrays.c,
8736
8737         src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c,
8738         src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c,
8739
8740         builds/unix/ftconfig.in, builds/vms/ftconfig.h,
8741
8742         builds/amiga/src/base/ftdebug.c:
8743
8744         Added the new configuration file `ftstdlib.h' used to define
8745         aliases for all ISO C library functions used by the engine
8746         (e.g. strlen, qsort, setjmp, etc.).
8747
8748         This eases the porting of FreeType 2 to environments like
8749         XFree86 modules/extensions.
8750
8751         Also removed many #include <string.h>, #include <stdlib.h>, etc.
8752         from the engine's sources where they are not needed.
8753
8754         * src/sfnt/ttpost.c: Use macro name for psnames.h.
8755
8756 2002-04-12  Vincent Caron  <v.caron@zerodeux.net>
8757
8758         * configure, builds/detect.mk: Updated the build system to print
8759         a warning message in case GNU Make isn't used to build the library.
8760
8761 2002-04-11  David Turner  <david@freetype.org>
8762
8763         * README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release.
8764
8765         * docs/FTL.txt: Updated license text to provide a preferred
8766         disclaimer and adjust copyright dates/extents.
8767
8768         * include/freetype/cache/ftcglyph.h: Removing obsolete (and
8769         confusing) comment.
8770
8771         * Jamfile.in: New file.
8772
8773 2002-04-11  Maxim Shemanarev  <mcseemagg@yahoo.com>
8774
8775         * src/smooth/ftgrays.c (gray_hline): Minor optimization.
8776
8777 2002-04-02  Werner Lemberg  <wl@gnu.org>
8778
8779         Fixes from the stable branch:
8780
8781         * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
8782         Removed.
8783         [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
8784         * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
8785         [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
8786
8787         * src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
8788         output of FreeType 1.
8789
8790         * src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
8791         bug that created un-even stem widths when hinting Postscript fonts.
8792
8793         * src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes.
8794
8795 2002-04-01  Werner Lemberg  <wl@gnu.org>
8796
8797         * src/truetype/ttgload.c: 16bit fixes.
8798         (TT_Load_Simple_Glyph): Improve debug messages.
8799         (load_truetype_glyph): Remove dead code.
8800         * src/truetype/ttinterp.c: 16bit fixes.
8801         * src/truetype/ttobjs.c: Ditto.
8802
8803         * include/freetype/ftsnames.h, include/freetype/internal/sfnt.h,
8804         src/cff/cffload.h, src/psaux/psobjs.h, src/truetype/ttinterp.[ch],
8805         src/sfnt/ttpost.h: s/index/idx/.
8806
8807 2002-03-31  Yao Zhang  <yaoz@vidar.niaaa.nih.gov>
8808
8809         * src/truetype/ttobjs.c (TT_Size_Init): Fix typo.
8810
8811 2002-03-31  Werner Lemberg  <wl@gnu.org>
8812
8813         * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/.
8814         * src/psaux/t1cmap.c: Ditto.
8815         * src/sfnt/ttcmap0.c: Ditto.
8816
8817         * include/freetype/internal/tttypes.h,
8818         include/freetype/internal/sfnt.h (TT_Goto_Table_Func): Renamed to ...
8819         (TT_Loader_GotoTableFunc): This.
8820         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix debug
8821         messages.
8822         * src/psnames/psmodule.c (psnames_interface)
8823         [!FT_CONFIG_OPTION_ADOBE_GLYPH_LIST]: Fix typo.
8824         * src/sfnt/sfdriver.c (get_sfnt_table): 16bit fix.
8825         * src/sfnt/ttcmap.c: 16bit fixes (0xFFFF -> 0xFFFFU).
8826         * src/sfnt/ttcmap0.c: 16bit fixes.
8827         (TT_Build_CMaps): Simplify debug messages.
8828         (tt_cmap12_char_next): Fix offset.
8829         * src/sfnt/ttload.c (TT_Load_Names, TT_Load_CMap): Fix debug
8830         messages.
8831         (TT_Load_OS2): 16bit fix.
8832
8833 2002-03-30  David Turner  <david@freetype.org>
8834
8835         * include/freetype/internal/tttypes.h: Adding comments to some of
8836         the TT_FaceRec fields.
8837
8838         * src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings.
8839
8840         * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}:
8841         New functions.
8842         (tt_face_get_name): Use them to properly extract an ascii font name.
8843
8844 2002-03-30  Werner Lemberg  <wl@gnu.org>
8845
8846         * include/freetype/t1tables.h (t1_blend_max): Fix typo.
8847         * src/base/ftstream.c: Simplify FT_ERROR calls.
8848         * src/cff/cffdrivr.c (cff_get_glyph_name): Fix debug message.
8849
8850         * src/cff/cffobjs.c (CFF_Driver_Init, CFF_Driver_Done)
8851         [TT_CONFIG_OPTION_EXTEND_ENGINE]: Removed.
8852         * src/cff/sfobjs.c (SFNT_Load_Face)
8853         [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
8854         * src/truetype/ttobjs.c (TT_Init_Driver, TT_Done_Driver)
8855         [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
8856
8857         * src/truetype/ttdriver.c, src/truetype/ttobjs.c,
8858         src/truetype/ttobjs.h: Renaming driver functions to the
8859         FT_<Subject>_<Action> scheme:
8860
8861           TT_Init_Driver => TT_Driver_Init
8862           TT_Done_Driver => TT_Driver_Done
8863           TT_Init_Face   => TT_Face_Init
8864           TT_Done_Face   => TT_Face_Done
8865           TT_Init_Size   => TT_Size_Init
8866           TT_Done_Size   => TT_Size_Done
8867           TT_Reset_Size  => TT_Size_Reset
8868
8869 2002-03-29  Werner Lemberg  <wl@gnu.org>
8870
8871         * builds/vms/ftconfig.h: Rename LOCAL_DEF and LOCAL_FUNC to
8872         FT_LOCAL and FT_LOCAL_DEF, respectively, as with other ftconfig.h
8873         files.
8874         * builds/unix/ftconfig.in: Add argument to FT_LOCAL and
8875         FT_LOCAL_DEF.
8876         * src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/.
8877         * builds/unix/configure.ac: Temporarily deactivate creation of
8878         ../../Jamfile.
8879         * builds/unix/configure: Updated.
8880
8881 2002-03-28  KUSANO Takayuki  <AE5T-KSN@asahi-net.or.jp>
8882
8883         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos.
8884
8885 2002-03-28  Werner Lemberg  <wl@gnu.org>
8886
8887         * include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix
8888         compiler warnings.
8889         * include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for
8890         some members.
8891         * src/base/ftapi.c (FT_New_Memory_Stream): Fix typos.
8892         * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Add
8893         cast.
8894         (t1_cmap_{standard,expert,custom,unicode}_class_rec): Use
8895         `FT_CALLBACK_TABLE_DEF'.
8896         * src/psaux/t1cmap.h: Updated.
8897         * src/sfnt/ttcmap0.c (TT_Build_CMaps): Use `ft_encoding_none'
8898         instead of zero.
8899         * src/type1/t1objs.c (T1_Face_Init): Use casts.
8900
8901 2002-03-26  David Turner  <david@freetype.org>
8902
8903         * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c:
8904         Fixed a small bug in the FT_CMaps support code.
8905
8906 2002-03-25  David Turner  <david@freetype.org>
8907
8908         * src/truetype/ttinterp.c (Norm): Replaced with...
8909         (TT_VecLen): This.
8910         (TT_MulFix14, TT_DotFix14): New functions.
8911         (Project, Dual_Project, Free_Project, Compute_Point_Displacement,
8912         Ins_SHPIX, Ins_MIAP, Ins_MIRP): Use them.
8913         [FT_CONFIG_OPTION_OLD_CALCS]: Removed all code.
8914
8915 2002-03-22  David Turner  <david@freetype.org>
8916
8917         * src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c:
8918         Various fixes to make the FT_CMaps support work correctly (more
8919         tests are still needed).
8920
8921         * include/freetype/internal/ftobjs.h, src/sfnt/Jamfile,
8922         src/sfnt/rules.mk, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
8923         src/sfnt/ttload.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Updated
8924         the SFNT charmap support to use FT_CMaps.
8925
8926         * include/freetype/fterrdef.h: New file.
8927         * include/freetype/fterrors.h: Include it.  It contains all error
8928         codes.
8929         * include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New
8930         macro.
8931
8932         * include/freetype/internal/ftmemory.h, and a lot of other files:
8933         Changed the names of memory macros.  Examples:
8934
8935           MEM_Set   => FT_MEM_SET
8936           MEM_Copy  => FT_MEM_COPY
8937           MEM_Move  => FT_MEM_MOVE
8938
8939           ALLOC     => FT_ALLOC
8940           FREE      => FT_FREE
8941           REALLOC   = >FT_REALLOC
8942
8943         FT_NEW was introduced to allocate a new object from a _typed_
8944         pointer.
8945
8946         Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by
8947         FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer
8948         arguments.
8949
8950         This results in _lots_ of sources being changed, but makes the code
8951         more generic and less error-prone.
8952
8953         * include/freetype/internal/ftstream.h, src/base/ftstream.c,
8954         src/cff/cffload.c, src/pcf/pcfread.c, src/sfnt/ttcmap.c,
8955         src/sfnt/ttcmap0.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
8956         src/sfnt/ttsbit.c, src/truetype/ttgload.c, src/truetype/ttpload.c,
8957         src/winfonts/winfnt.c: Changed the definitions of stream macros.
8958         Examples:
8959
8960           NEXT_Byte     => FT_NEXT_BYTE
8961           NEXT_Short    => FT_NEXT_SHORT
8962           NEXT_UShortLE => FT_NEXT_USHORT_LE
8963           READ_Short    => FT_READ_SHORT
8964           GET_Long      => FT_GET_LONG
8965           etc.
8966
8967         Also introduced the FT_PEEK_XXXX functions.
8968
8969         * src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented
8970         out function.
8971         (find_encoding): Removed.
8972         (CFF_Face_Init): Remove charmap support.
8973
8974         * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_CMAPS,
8975         TT_CONFIG_CMAP_FORMAT{0,2,4,6,8,10,12}): New macros to fine-tune
8976         support of cmaps.
8977
8978 2002-03-21  David Turner  <david@freetype.org>
8979
8980         * src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated
8981         to new FT_CMap definitions.
8982
8983         * src/psaux/t1cmap.h, src/psaux/t1cmap.c, src/type1/t1cmap.h,
8984         src/type1/t1cmap.c: Updating and moving the Type 1 FT_CMap support
8985         from `src/type1' to `src/psaux' since it is going to be shared by
8986         the Type 1 and CID font drivers.
8987
8988         * src/psaux/Jamfile, src/psaux/psaux.c, src/psaux/psauxmod.c,
8989         src/psaux/rules.mk, include/freetype/internal/psaux.h: Added support
8990         for Type 1 FT_CMaps.
8991
8992 2002-03-20  David Turner  <david@freetype.org>
8993
8994         * src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a
8995         memory allocation bug that was due to un-careful renaming of the
8996         FT_SubGlyph type.
8997
8998         * src/base/ftdbgmem.c (ft_mem_table_destroy): Fixed a small bug that
8999         caused the library to crash with Electric Fence when memory
9000         debugging is used.
9001
9002         * Renaming stream macros.  Examples:
9003
9004           FILE_Skip    => FT_STREAM_SKIP
9005           FILE_Read    => FT_STREAM_READ
9006           ACCESS_Frame => FT_FRAME_ENTER
9007           FORGET_Frame => FT_FRAME_EXIT
9008           etc.
9009
9010         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak.
9011
9012         * include/freetype/internal/ftobjs.h: Changing the definition of
9013         FT_CMap_CharNextFunc slightly.
9014
9015         * src/cff/*.c: Updating CFF type definitions.
9016
9017 2002-03-14  David Turner  <david@freetype.org>
9018
9019         * include/freetype/internal/autohint.h, src/autohint/ahmodule.c,
9020         src/base/ftapi.c, src/base/ftobjs.c: Updating the type definitions
9021         for the auto-hinter module.
9022
9023           FT_AutoHinter_Interface  => FT_AutoHinter_ServiceRec
9024           FT_AutoHinter_Interface* => FT_AutoHinter_Service
9025           etc.
9026
9027           FT_AutoHinter_Get_Global_Func  => FT_AutoHinter_GlobalGetFunc
9028           FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc
9029           etc.
9030
9031         * ahloader.h [_STANDALONE_]: Removed all conditional code.
9032
9033         * include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the
9034         type definitions of the CFF font driver.
9035
9036           CFF_Font  => CFF_FontRec
9037           CFF_Font* => CFF_Font
9038           etc.
9039
9040         * include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating
9041         type definitions of the Windows FNT font driver.
9042
9043         * include/freetype/internal/ftdriver.h,
9044         include/freetype/internal/ftobjs.h, src/base/ftapi.c,
9045         src/base/ftobjs.c, src/cff/cffdrivr.c, src/cff/cffdrivr.h,
9046         src/cid/cidriver.c, src/cid/cidriver.h, src/pcf/pcfdriver.c,
9047         src/pcf/pcfdriver.h, src/truetype/ttdriver.c,
9048         src/truetype/ttdriver.h, src/type1/t1driver.c, src/type1/t1driver.h,
9049         src/winfonts/winfnt.c, src/winfonts/winfnt.h: Updating type
9050         definitions for font drivers.
9051
9052           FTDriver_initFace      => FT_Face_InitFunc
9053           FTDriver_initGlyphSlot => FT_Slot_InitFunc
9054           etc.
9055
9056         * src/cid/cidobjs.c (CID_Face_Init): Remove dead code.
9057
9058         * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a
9059         few face method definitions:
9060
9061           FT_PSName_Requester     => FT_Face_GetPostscriptNameFunc
9062           FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc
9063           FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
9064
9065         * src/base/ftapi.c: New file.  It contains backward compatibility
9066         functions.
9067
9068         * include/freetype/internal/psaux.h, src/cid/cidload.c,
9069         src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h,
9070         src/psaux/t1decode.c, src/type1/t1load.c, src/type1/t1tokens.h:
9071         Updated common PostScript type definitions.
9072         Renamed all enumeration values like to uppercase variants:
9073
9074           t1_token_any      => T1_TOKEN_TYPE_ANY
9075           t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
9076           etc.
9077
9078         * include/freetype/internal/psglobal.h: Removed.
9079         * include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
9080         Updated.
9081
9082         * include/freetype/internal/tttypes.h,
9083         include/freetype/internal/sfnt.h, src/base/ftnames.c,
9084         src/cff/cffdrivr.c, src/sfnt/*.c, src/truetype/*.c: Updated
9085         SFNT/TrueType type definitions.
9086
9087         * include/freetype/freetype.h, include/freetype/internal/ftgloadr.h:
9088         Updating type definitions for the glyph loader.
9089
9090 2002-03-13  Antoine Leca  <antoine@oriolnet.com>
9091
9092         * include/freetype/config/ftoption.h: Changed the automatic
9093         detection of Microsoft C compilers to automatically support 64-bit
9094         integers only since revision 9.00 (i.e. >= Visual C++ 2.0).
9095
9096 2002-03-08  Werner Lemberg  <wl@gnu.org>
9097
9098         * src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset.
9099
9100 2002-03-07  Werner Lemberg  <wl@gnu.org>
9101
9102         * src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new,
9103         ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free,
9104         ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug,
9105         FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings.
9106         * src/base/ftcalc.c (FT_MulFix): Ditto.
9107         * src/cff/cffdrivr.c (cff_get_name_index): Ditto.
9108         * src/cff/cffobjs.c (CFF_Size_Get_Globals_Funcs, CFF_Size_Init,
9109         CFF_GlyphSlot_Init): Ditto.
9110         * src/cid/cidobjs.c (CID_GlyphSlot_Init,
9111         CID_Size_Get_Globals_Funcs): Ditto.
9112         * src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init):
9113         Ditto.
9114         * src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
9115         * src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
9116         variables.
9117
9118         * include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
9119         to...
9120         (T1_Builder_FuncsRec): This.
9121         (T1_Builder_Funcs): New typedef.
9122         (PSAux_Interface): Remove compiler warnings.
9123         * src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h
9124         (t1_builder_funcs): Updated.
9125
9126         * src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
9127         (PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
9128         (PSH_AlignmentRec): Updated.
9129
9130         * include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
9131         typo.
9132         * include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
9133         * src/base/ftstream (FT_Get_Char): Rename to...
9134         (FT_Stream_Get_Char): This.
9135
9136         * src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is
9137         a built-in function in gcc, causing warning messages with gcc 3.0.
9138         * src/autohint/ahglyph.c (ah_outline_load): Ditto.
9139         * src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto.
9140         * src/cache/ftcmanag.c (ftc_family_table_alloc,
9141         ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache):
9142         Ditto.
9143         * src/cff/cffload.c (cff_new_index, cff_done_index,
9144         cff_explicit_index, CFF_Access_Element, CFF_Forget_Element,
9145         CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font,
9146         CFF_Done_Font): Ditto.
9147         * src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto.
9148         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto.
9149         * src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit,
9150         ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3,
9151         * src/pshinter/pshalgo1.c (psh1_hint_table_record,
9152         psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto.
9153         * src/pshinter/pshalgo2.c (psh2_hint_table_record,
9154         psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto.
9155         * src/sfnt/ttpost.c (Load_Format_20, Load_Format_25,
9156         TT_Get_PS_Name): Ditto.
9157         * src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics,
9158         load_truetype_glyph): Ditto.
9159         * src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto.
9160         * src/type1/t1afm.c (T1_Get_Kerning): Ditto.
9161         * include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto.
9162
9163 2002-03-06  David Turner  <david@freetype.org>
9164
9165         * src/type1/t1objs.c (T1_Face_Init), src/cid/cidobjs.c
9166         (CID_Face_Init): Fixed another bug related to the
9167         ascender/descender/text height of Postscript fonts.
9168
9169         * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
9170         (psh2_print_zone): This.
9171         * src/pshinter/pshalgo1.c (print_zone): Renamed to ...
9172         (psh1_print_zone): This.
9173
9174         * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
9175         src/base/ftobjs.c: Adding the new FT_Library_Version API to return
9176         the library's current version in dynamic links.
9177         * src/base/ftinit.c (FT_Init_FreeType): Updated.
9178
9179 2002-03-06  Werner Lemberg  <wl@gnu.org>
9180
9181         * src/pshinter/pshglob.h (PSH_DimensionRec): s/std/stdw/.
9182         * src/pshinter/pshglob.c (psh_global_scale_widths,
9183         psh_dimension_snap_width, psh_globals_destroy, psh_globals_new):
9184         Ditto.
9185
9186 2002-03-05  David Turner  <david@freetype.org>
9187
9188         * src/type1/t1objs.c (T1_Face_Init), src/cff/cffobjs.c
9189         (CFF_Face_Init), src/cid/cidobjs.c (CID_Face_Init): Removing the bug
9190         that returned global BBox values in 16.16 fixed format (instead of
9191         integer font units).
9192
9193         * src/cid/cidriver.c (cid_get_postscript_name): Fixed a bug that
9194         caused the CID driver to return Postscript font names with a leading
9195         slash (`/') as in `/MOEKai-Regular'.
9196
9197         * src/sfnt/ttload.c (TT_Load_Names), src/sfnt/sfobjs.c (Get_Name),
9198         src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed the loader so
9199         that it accepts broken fonts like `foxjump.ttf', which made FreeType
9200         crash when trying to load them.
9201
9202         Also improved the name table parser to be able to load
9203         Windows-encoded entries before Macintosh or Unicode ones, since it
9204         seems some fonts don't have reliable values here anyway.
9205
9206         * include/freetype/internal/psnames.h: Add typedef for
9207         `PSNames_Service'.
9208
9209 2002-03-05  Werner Lemberg  <wl@gnu.org>
9210
9211         * builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool
9212         1.4.2.
9213         Apply a small patch for AIX to make shared libraries work (this
9214         patch is already in the CVS version of libtool).
9215
9216         * builds/unix/config.sub, builds/unix/config.guess: Updated to
9217         recent versions.
9218
9219         * builds/unix/configure.ac: Fix typo
9220         (AC_CONFIG_FILE->AC_CONFIG_FILES).
9221
9222         * builds/unix/configure: Regenerated.
9223
9224 2002-02-28  David Turner  <david@freetype.org>
9225
9226         * include/freetype/ftconfig.h: Changed `FT_LOCAL xxxx' to
9227         `FT_LOCAL( xxxx )' everywhere in the source.  The same goes for
9228         `FT_LOCAL_DEF xxxx' which is translated to `FT_LOCAL_DEF( xxxxx )'.
9229
9230         * include/freetype/freetype.h (FREETYPE_MINOR, FREETYPE_PATCH):
9231         Changing version to 2.1.0 to indicate an unstable branch.
9232         Added the declarations of FT_Get_First_Char and FT_Get_Next_Char.
9233
9234         * src/base/ftobjs.c: Implement FT_Get_First_Char and
9235         FT_Get_Next_Char.
9236
9237         * include/freetype/t1tables.h: Renaming structure types.  This
9238
9239           typedef  T1_Struct_
9240           {
9241           } T1_Struct;
9242
9243         becomes
9244
9245           typedef  PS_StructRec_
9246           {
9247           } PS_StructRec, *PS_Struct;
9248
9249           typedef PS_StructRec  T1_Struct;  /* backward compatibility */
9250
9251         Hence, we increase the coherency of the source code by effectively
9252         using the `Rec' prefix for structure types.
9253
9254 2002-02-27  David Turner  <david@freetype.org>
9255
9256         * src/sfnt/ttload.c (TT_Load_Names): Simplifying and securing the
9257         names table loader.  Invalid individual name entries are now handled
9258         correctly.  This allows the loading of very buggy fonts like
9259         `foxjump.ttf' without allocating tons of memory and causing crashes.
9260
9261         * src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still
9262         experimental) code for OpenType Layout tables validation and
9263         parsing.
9264
9265         * src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still
9266         experimental) code for Type 1 charmap processing.
9267
9268         * src/sfnt/ttcmap0.c: New file.  It contains a new, still
9269         experimental SFNT charmap processing support.
9270
9271         * include/freetype/internal/ftobjs.h: Adding validation support as
9272         well as internal charmap object definitions (FT_CMap != FT_CharMap).
9273
9274 2002-02-24  David Turner  <david@freetype.org>
9275
9276         * Renaming stream functions to the FT_<Subject>_<Action> scheme:
9277
9278           FT_Seek_Stream    => FT_Stream_Seek
9279           FT_Skip_Stream    => FT_Stream_Skip
9280           FT_Read_Stream    => FT_Stream_Read
9281           FT_Read_Stream_At => FT_Stream_Read_At
9282           FT_Access_Frame   => FT_Stream_Enter_Frame
9283           FT_Forget_Frame   => FT_Stream_Exit_Frame
9284           FT_Extract_Frame  => FT_Stream_Extract_Frame
9285           FT_Release_Frame  => FT_Stream_Release_Frame
9286           FT_Get_XXXX       => FT_Stream_Get_XXXX
9287           FT_Read_XXXX      => FT_Stream_Read_XXXX
9288
9289           FT_New_Stream( filename, stream ) =>
9290             FT_Stream_Open( stream, filename )
9291
9292             (The function doesn't create the FT_Stream structure, it simply
9293             initializes it for reading.)
9294
9295           FT_New_Memory_Stream( library, FT_Byte*  base, size, stream ) =>
9296             FT_Stream_Open_Memory( stream, const FT_Byte* base, size )
9297
9298           FT_Done_Stream  => FT_Stream_Close
9299           FT_Stream_IO    => FT_Stream_IOFunc
9300           FT_Stream_Close => FT_Stream_CloseFunc
9301
9302           ft_close_stream => ft_ansi_stream_close (in base/ftsystem.c only)
9303           ft_io_stream    => ft_ansi_stream_io    (in base/ftsystem.c only)
9304
9305         * src/base/ftutil.c: New file.  Contains all memory and list
9306         management code (previously in `ftobjs.c' and `ftlist.c',
9307         respectively).
9308
9309         * include/freetype/internal/ftobjs.h: Moving all code related to
9310         glyph loaders to ...
9311         * include/freetype/internal/ftgloadr.h: This new file.
9312         `FT_GlyphLoader' is now a pointer to the structure
9313         `FT_GlyphLoaderRec'.
9314         (ft_glyph_own_bitmap): Renamed to ...
9315         (FT_GLYPH_OWN_BITMAP): This.
9316         * src/base/ftobjs.c: Moving all code related to glyph loaders
9317         to ...
9318         * src/base/ftgloadr.c: This new file.
9319
9320 2002-02-22  Werner Lemberg  <wl@gnu.org>
9321
9322         * include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in
9323         enum to avoid compiler warnings.
9324
9325 2002-02-21  David Turner  <david@freetype.org>
9326
9327         Modified the debug sub-system initialization.  Trace levels can now
9328         be specified within the `FT2_DEBUG' environment variable.  See the
9329         comments within `ftdebug.c' for more details.
9330
9331         * src/base/ftdebug.c: (FT_SetTraceLevel): Removed.
9332         (ft_debug_init): New function.
9333         (ft_debug_dummy): Removed.
9334         Updated to changes in ftdebug.h
9335
9336         * include/freetype/internal/ftdebug.h: Always define
9337         FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE is defined.
9338         (FT_Assert): Renamed to ...
9339         (FT_ASSERT): This.
9340         Some stuff from ftdebug.h has been moved to ...
9341
9342         * include/freetype/internal/fttrace.h: New file, to define the trace
9343         levels used for debugging.  It is used both to define enums and
9344         toggle names for FT2_DEBUG.
9345
9346         * include/freetype/internal/internal.h: Updated.
9347
9348         * src/base/ftobjs.c, src/base/ftstream.c: Updated.
9349
9350         * include/freetype/internal/ftextend.h, src/base/ftextend.c:
9351         Removed.  Both files are now completely obsolete.
9352         * src/base/Jamfile, src/base/rules.mk: Updated.
9353
9354         * include/freetype/fterrors.h: Adding `#undef FT_ERR_CAT' and
9355         `#undef FT_ERR_XCAT' to avoid warnings with certain compilers (like
9356         LCC).
9357
9358         * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
9359         (psh2_print_zone): This to avoid errors during compilation of debug
9360         library.
9361
9362         * src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as
9363         `trace_smooth'.
9364
9365 2002-02-20  David Turner  <david@freetype.org>
9366
9367         * README: Adding `devel@freetype.org' address for bug reports.
9368
9369 2002-02-20  Werner Lemberg  <wl@gnu.org>
9370
9371         * builds/unix/install.mk (check): New dummy target.
9372         (.PHONY): Add it.
9373
9374 2002-02-19  Werner Lemberg  <wl@gnu.org>
9375
9376         * builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first.
9377
9378         * src/cache/ftccache.c (ftc_cache_resize): Mark `error' as unused
9379         to avoid compiler warning.
9380         * src/cff/cffload.c (CFF_Get_String): Ditto.
9381         * src/cff/cffobjs.c (CFF_StrCopy): Ditto.
9382         * src/psaux/psobjs.c (PS_Table_Done): Ditto.
9383         * src/pcf/pcfread.c (pcf_seek_to_table_type): Ditto.
9384         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
9385         (pcf_get_bitmaps): The same for `sizebitmaps'.
9386         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): The same for
9387         `orig_y'.
9388         (t1operator_seac): Comment out more dead code.
9389         * src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER'
9390         conditional.
9391         * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
9392         load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER'
9393         conditional.
9394
9395 2002-02-18  Werner Lemberg  <wl@gnu.org>
9396
9397         * src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused
9398         variables.
9399         * src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead
9400         of UNUSED.
9401         * src/autohint/ahmodule.c (ft_autohinter_reset): Ditto.
9402         * src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable
9403         swapping code.
9404         * src/pshinter/pshglob.h (PSH_Blue_Align): Add PSH_BLUE_ALIGN_NONE.
9405         * src/pshinter/pshglob.c (psh_blues_snap_stem): Use it.
9406         * src/pshinter/pshalgo1.c (psh1_hint_table_optimize): Ditto.
9407         * src/pshinter/pshalgo2.c (psh2_hint_align): Ditto.
9408         * include/freetype/internal/ftobjs.h (UNUSED): Removed.
9409
9410 2002-02-10  Roberto Alameda  <ojancano@geekmail.de>
9411
9412         Add support for ISOLatin1 PS encoding.
9413
9414         * include/freetype/freetype.h (ft_encoding_latin_1): New tag
9415         (`lat1').
9416         * include/freetype/internal/t1types.h (T1_Encoding_Type): Add
9417         `t1_encoding_isolatin1'.
9418         * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle
9419         ft_encoding_latin_1.
9420         * src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'.
9421         * src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'.
9422
9423 ----------------------------------------------------------------------------
9424
9425 Copyright (C) 2002-2020 by
9426 David Turner, Robert Wilhelm, and Werner Lemberg.
9427
9428 This file is part of the FreeType project, and may only be used, modified,
9429 and distributed under the terms of the FreeType project license,
9430 LICENSE.TXT.  By continuing to use, modify, or distribute this file you
9431 indicate that you have read the license and understand and accept it
9432 fully.
9433
9434
9435 Local Variables:
9436 version-control: never
9437 coding: utf-8
9438 End: