+FSCTL_DISMOUNT_VOLUME define
[reactos.git] / lib / freetype / ChangeLog
1 2003-03-27  David Turner  <david@freetype.org>
2
3    * README: udpated
4
5    * README.UNX: removed (now replaced by docs/INSTALL.UNX)
6
7    * src/pshinter/pshalgo3.c: the hinter now performs as in 2.1.3 and
8    will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is used
9
10    * src/base/ftobjs.c: changed the default computations to include rounding
11    in all cases, this is required to provide accurate kerning data when
12    native TrueType hinting is enabled.
13
14    * src/type1/t1load.c: the Type 1 loader now accepts more general names
15    according to the Postscript spec (the previous one was too restrictive)
16
17 2003-03-20  David Turner  <david@freetype.org>
18
19     * docs/*: serious rewriting of the documentation
20
21     * include/freetype/internal/ftobjs.h, src/base/ftobjs.c, src/bdf/bdfdrivr.c,
22     src/pcf/pcfdriver.c, src/pfr/pfrsbit.c, src/sfnt/ttsbit.c,
23     src/type42/t42objs.c, src/winfonts/winfnt.c: introduced three new functions
24     to deal with glyph bitmaps within FT_GlyphSlot objects. these are:
25
26       ft_glyphslot_free_bitmap
27       ft_glyphslot_alloc_bitmap
28       ft_glyphslot_set_bitmap
29
30     these are much more convenient to use than managing the FT_GLYPH_OWN_BITMAP
31     flag manually. the font drivers have been modified to use them as well.
32
33     * src/cache/ftlru.c: fixed an invalid assertion check
34
35     * src/autohint/ahglyph.h, src/autohint/ahglyph.c, src/autohint/ahglobal.c,
36     src/autohint/ahhint.c: fixed blue-scale problem
37
38     * src/cache/ftccache.c: fixed small bug that could crash the cache
39     in rare circumstances (mostly with broken fonts)
40
41
42 2003-03-15  David Turner  <david@freetype.org>
43
44     * src/truetyoe/ttdriver.c (Set_Char_Sizes): fixed a small rounding bug.
45     Actually, it seems that previous versions of FreeType didn't perform
46     TrueType rounding exactly as appropriate.
47
48 2003-03-14  David Turner  <david@freetype.org>
49
50     * src/truetype/ttdriver.c: fixing the small TrueType native rendering
51     glitches, they came from a small rounding error.
52
53 2003-03-13  David Turner  <david@freetype.org>
54
55     * src/base/ftdbgmem.c, docs/DEBUG.TXT: added new environment variables
56     to control memory debugging with FreeType. See the description of
57     "FT2_DEBUG_MEMORY", "FT2_ALLOC_TOTAL_MAX" and "FT2_ALLOC_COUNT_MAX"
58     in DEBUG.TXT
59
60     * src/cache/ftccache.c, src/cache/ftccmap.c, src/cache/ftcsbits.c,
61     ftlru.c: fixed the cache sub-system to correctly deal with out-of-memory
62     conditions.
63
64     * src/pfr/pfrobjs.c, src/pfr/pfrsbits.c: fixing compiler warnings and a
65     small memory leak
66
67     * src/psaux/psobjs.c (t1_reallocate_table): fixed a bug (memory leak) that
68     only happened when trying to resize an array would end in an OOM.
69
70     * src/smooth/ftgrays.c: removed compiler warnings / volatile bug
71
72     * src/truetype/ttobjs.c: removed segmentation fault that happened in
73     tight memory environments.
74
75 2003-02-28  Pixel  <pixel@mandrakesoft.com>
76
77     * src/gzip/ftgzip.c (ft_gzip_file_done): fixed memory leak, the ZLib
78     stream was not properly finalized
79
80 2003-02-25  Anthony Fok  <anthony@thizlinux.com>
81
82     * src/cache/ftccmap.c: the cmap cache now supports UCS-4 charmaps
83     when available in Asian fonts
84
85     * src/sfnt/ttload.c, src/base/ftobjs.c: changed "asian" to "Asian" in
86     comments
87
88 2003-02-25  David Turner  <david@freetype.org>
89
90     * src/gzip/ftgzip.c: fixed a bug that caused FreeType to loop endlessly
91     when trying to read certain compressed gzip files. The following test
92     could be used to reveal the bug:
93
94        touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
95
96
97     * src/pfr/pfrobjs.c, src/pfr/pfrload.c, src/pfr/pfrtypes.h: several
98     fixes to the PFR font driver:
99
100       - the list of available embedded bitmaps was not correctly set
101         in the root FT_FaceRec structure describing the face
102
103       - the glyph loader always tried to load the outlines when
104         FT_LOAD_SBITS_ONLY was specified
105
106       - the table loaded now scans for *undocumented* elements of a
107         physical font's auxiliary data record, this is necessary to
108         retrieve the "real" family and style names.
109
110         NOTE THAT THIS CHANGES THE FAMILY NAME OF MANY PFR FONTS !!
111
112     * src/truetype/ttdriver.c (Set_Char_Sizes): fixed a rounding bug when
113     computing the scale factors for a given character size in points with
114     resolution.
115
116
117 2003-02-18  David Turner  <david@freetype.org>
118
119     * src/truetype/ttdriver.c, src/truetype/ttobjs.h, src/truetype/ttobjs.c,
120     src/truetype/ttinterp.c, src/base/ftobjs.c: fixing the slight distortion
121     problem that occured due to the latest auto-hinter changes
122
123
124     * src/autohint/ahhint.c: disabled the advance width "correction" which
125     seemed to provide more trouble than benefits..
126
127 2003-02-13  Graham Asher  <graham.asher@btinternet.com>
128
129     * include/freetype/ftincrem.h, src/cff/cffgload.c, src/cid/cidgload.c,
130     src/truetype/ttgload.c, src/type1/t1gload.c
131     [FT_CONFIG_OPTION_INCREMENTAL]: I have changed the incremental loading
132     interface in a way that makes it simpler and allows glyph metrics to
133     be changed (e.g., by adding a constant, as required by CFF fonts)
134     rather than just overridden. This was required to make the GhsotScript-
135     to-FreeType bridge work.
136
137 2003-01-31  David Turner  <david@freetype.org>
138
139     * docs/CHANGES, docs/VERSION.DLL, docs/TODO: updating documentation for
140     the 2.1.4 release
141
142     * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
143     updating the project file for 2.1.4
144
145     * src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c,
146     src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c,
147     src/gzip/infutil.c: removed old-style (K&R)function definitions. This
148     avoids warnings with Visual C++ at its most pedantic mode.
149
150     * src/pfr/pfrsbit.c: removed compiler warnings
151
152     * src/cache/ftccmap.c: changed a FT_ERROR into a FT_TRACE1 since the
153     it caused "ftview" and others to dump too much junk when trying to
154     display a waterfall with a font without a Unicode charmap (e.g.
155     SYMBOL.TTF)
156
157     * src/autohint/ahtypes.h, src/autohint/ahhint.c, src/base/ftobjs.c,
158     src/truetype/ttobjs.c: implemented FT_CONFIG_CHESTER_BLUE_SCALE,
159     corresponding to the last patch from David Chester, but with a
160     much simpler (and saner) implementation.
161
162     * src/pshinter/pshalgo3.c: improved the Postscript hinter. Getting rid
163     of stem snapping seems to work well here (though the stems are still
164     slightly moved to increase contrast).
165
166     THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
167     STILL SUCK... I need to work this a bit
168
169 2003-01-22  David Chester  <davidchester@qmx.net>
170
171     * src/autohint/ahhint.c: small fix to the stem width optimisation
172
173 2003-01-22  David Turner  <david@freetype.org>
174
175     * include/freetype/ftbdf.h, include/freetype/internal/bdftypes.h,
176     src/base/ftbdf.c, src/bdf/bdfdrivr.c, src/pcf/pcfdrivr.c,
177     src/pcf/pcfread.h:
178
179       adding a new API, named FT_Get_BDF_Property to retrieve the BDF
180       properties of a given PCF or BDF font
181
182     * src/sfnt/ttload.c (sfnt_dir_check): relaxed the "head" table size
183     verification to accept a few broken fonts who pad the size incorrectly
184     (the table should be padded, but its "size" field shouldn't per se
185      the spec)
186
187 2003-01-18  Werner Lemberg  <wl@gnu.org>
188
189         * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
190         --copy' from libtool 1.4.3.
191         * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
192         automake 1.7.1.
193         * builds/unix/configure: Regenerated with autoconf 2.54.
194         * builds/unix/config.guess, builds/unix/config.sub: Updated from
195         `config' CVS module at subversions.gnu.org.
196         * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
197         `automake' CVS module at subversions.gnu.org.
198
199 2003-01-15  David Turner  <david@freetype.org>
200
201         * include/freetype/freetype.h: Fixed documentation for
202         FT_Size_Metrics.
203
204 2003-01-15  James Su  <suzhe@turbolinux.com.cn>
205
206         * src/gzip/ftgzip.c: Bugfix: couldn't read certain gzip-ed font
207         files.
208
209 2003-01-15  Huw D M Davies <h.davies1@physics.ox.ac.uk>
210
211         * include/freetype/config/ftheader.h,
212         include/freetype/internal/fnttypes.h, include/freetype/ftwinfnt.h,
213         src/base/winfnt.c, src/winfonts/winfnt.c, src/base/Jamfile,
214         src/base/rules.mk, src/base/descrip.mms: Added a Windows .FNT
215         specific API (mostly for Wine).  Also fixed a nasty bug in the
216         header loader which would cause invalid memory overwrites.
217
218 2003-01-14  Graham Asher  <graham.asher@btinternet.com>
219
220         * include/freetype/ftglyph.h, src/base/ftglyph.c: Added `const' to
221         the type of the first argument to FT_Matrix_Multiply, which isn't
222         changed -- this adds documentation and convenience.
223
224 2003-01-13  Graham Asher  <graham.asher@btinternet.com>
225
226         * src/sfnt/ttload.c (tt_face_load_metrics)
227         [FT_CONFIG_OPTION_INCREMENTAL]: TrueType typefaces without
228         horizontal metrics (without the `hmtx' table) are now tolerated if
229         an incremental interface has been specified that has a
230         get_glyph_metrics function, implying that metrics will be supplied
231         from outside.  This happens for certain Type 42 fonts passed from
232         GhostScript.
233
234 2003-01-11  David Chester  <davidchester@qmx.net>
235
236         * include/freetype/config/ftoption.h, src/autohint/ahglobal.h,
237         src/autohint/ahglobal.c, src/autohint/ahglyph.c,
238         src/autohint/ahtypes.h: Patches to the auto-hinter in order to
239         slightly improve the output.  Note that everything is controlled
240         through the new FT_CONFIG_OPTION_CHESTER_HINTS defined at the end of
241         "ftoption.h".  There are also individual FT_CONFIG_CHESTER_XXX
242         macros to control individual "features".
243
244         Note that all improvements are enabled by default, but can be
245         tweaked for optimization and testing purposes.  The configuration
246         macros will most likely disappear in the short future.
247
248 2003-01-11  David Turner  <david@freetype.org>
249
250         * include/freetype/internal/fnttypes.h: Fixed a structure field
251         definition to avoid memory overwrites.
252
253 2003-01-08  Huw Dawies  <huw@codeweavers.com>
254
255         * src/winfonts/winfnt.c: Read 16 bytes into "reserved2", not
256         "reserved".
257
258         * src/base/ftobjs.c (find_unicode_charmap): Fixed the error code
259         returned when the font doesn't contain a Unicode charmap.  This
260         allows FT2 to load "symbol.ttf" and a few others correctly since the
261         last release.
262
263 2003-01-08  Owen Taylor  <owen@redhat.com>
264
265         * src/autohint/ahtypes.h, src/autohint/ahhint.c,
266         src/pshinter/pshalgo3.h, src/pshinter/pshalgo3.c: Implemented the
267         FT_RENDER_MODE_LIGHT hinting mode in the auto and postscript
268         hinters.
269
270         * src/truetype/ttgload.c: Fixing the TrueType loader to handle
271         invalid composites correctly by limiting the recursion depth.
272
273 2003-01-08  David Turner  <david@freetype.org>
274
275         * Jamrules, Jamfile, Jamfile.in, src/*/Jamfile: Small changes to
276         support the compilation of FreeType 2 as part of larger projects
277         with their own configuration options (only with Jam).
278
279 2003-01-07  David Turner  <david@freetype.org>
280
281         * src/base/ftstroker.c: Probably the last bug-fixes to the stroker;
282         the API is likely to change, however.
283
284         * src/base/fttrigon.c (FT_Angle_Diff): Fixing function: It returned
285         invalid values for large negative angle differences (resulting in
286         incorrect stroker computations, among other things).
287
288         * src/cache/ftccache.c (ftc_node_unlink): Removing incorrect
289         assertion, and changing code to avoid hash table size contraction.
290
291         * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding
292         "ftstroker.obj" to default build, as optional component.
293
294 2002-12-26  David Turner  <david@freetype.org>
295
296         * src/gzip/adler32.c, src/gzip/infblock.c, src/gzip/inflate.c,
297         src/gzip/inftrees.c, src/gzip/zconf.h, src/gzip/zlib.h,
298         src/gzip/zutil.h: Updates to allow compilation without compiler
299         warnings with LCC-Win32.
300
301         * include/freetype/freetype.h, docs/VERSION.DLL,
302         builds/unix/configure.ac, builds/unix/configure: Updates for the
303         upcoming 2.1.4 release.
304
305 2002-12-23  Anthony Fok  <anthony@thizlinux.com>
306
307         * builds/unix/configure.ac, builds/unix/unix-cc.in,
308         builds/unix/unix-def.in: Small fix to configure sub-system on Unix
309         to allow other programs to correctly link with zlib when needed.
310
311 2002-12-17  David Turner  <david@freetype.org>
312
313         * src/base/ftobjs.c (find_unicode_charmap): Added some comments to
314         better explain what's happening there.
315
316         * src/base/ftobjs.c (open_face): Included Graham Asher's fix to
317         prevent faces without Unicode charmaps from loading.
318
319         * src/winfonts/winfnt.c: Included George Williams's fix to support
320         version 2 fonts correctly.
321
322 2002-12-16  David Turner  <david@freetype.org>
323
324         * docs/VERSION.DLL: Updating document to better explain the
325         differences between the three version numbers being used on Unix, as
326         well as providing an autoconf fragment provided by Lars Clausen.
327
328         * src/smooth/ftgrays.c (gray_render_conic): Fixed small bug that
329         prevented bezier arcs with negative vertical coordinates to be
330         rendered appropriately.
331
332 2002-12-02  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
333
334         * src/base/ftobjs.c: Modified the logic to get Unicode charmaps.
335         Now it loads UCS-4 charmaps when there is one.
336         * src/base/ftobjs.c (find_unicode_charmap): New function.
337         * src/base/ftobjs.c (open_face): Refer to the above one.
338         * src/base/ftobjs.c (FT_Select_Charmap): Idem.
339
340 2002-11-29  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
341
342         * include/freetype/ftgzip.h: Correct the name of the controlling
343         macro (was __FTXF86_H__ ...).
344
345 2002-11-27  Vincent Caron <v.caron@zerodeux.net>
346
347         * builds/unix/unix-def.in, builds/unix/freetype-config.in,
348         builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c:
349         Adding support for system zlib installations if available on the
350         target platform (Unix only).
351
352 2002-11-23  David Turner  <david@freetype.org>
353
354         * src/cff/cffload.c (cff_charser_load): Modified charset loader to
355         accept pre-defined charsets, even when the font contains fewer
356         glyphs.  Also enforced more checks to ensure that we never overflow
357         the character codes array in the encoding.
358
359 2002-11-18  David Turner  <david@freetype.org>
360
361
362         * Version 2.1.3 is released.
363         ============================
364
365
366 2002-11-07  David Turner  <david@freetype.org>
367
368         * src/cache/ftcsbit.c (ftc_sbit_node_load): Fixed a small bug that
369         caused problems with embedded bitmaps.
370
371         * src/otlayout/otlayout.h, src/otlyaout/otlconf.h,
372         src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
373         src/otlayout/otlparse.c, src/otlayout/otlparse.h,
374         src/otlayout/otlutils.h: Updating the OpenType Layout code, adding
375         support fot the first GSUB lookups.  Nothing that really compiles
376         for now though.
377
378         * src/autohint/ahhint.c: Disabled serif stem width quantization.  It
379         produces slightly better shapes though this is not distinguishable
380         with many fonts.
381
382 2002-11-05  David Turner  <david@freetype.org>
383
384         * include/freetype/config/ftoption.h, src/gzip/ftgzip.c: Added
385         support for the FT_CONFIG_OPTION_SYSTEM_ZLIB option, used to specify
386         the use of system-wide zlib.
387
388         Note that this macro, as well as
389         FT_CONFIG_OPTION_BYTECODE_INTERPRETER, is not #undef-ed anymore.
390         This allows the build system to define them depending on the
391         configuration (typically by adding -D flags at compile time).
392
393         * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Removed compiler
394         warnings in optimized mode relative to the "volatile" local
395         variables.  This was not a compiler bug after all, but the fact that
396         a pointer to a volatile variable is not the same than a volatile
397         pointer to a variable :-)
398
399         The fix was to change
400           `volatile FT_Byte* p'
401         into
402           `FT_Byte* volatile p'.
403
404         * src/pfr/pfrload.c, src/pfr/pfrdrivr.c, src/gzip/inftrees.c:
405         Removed compiler warnings in optimized modes.
406
407         * src/gzip/*.[hc]: Modified our zlib copy in order to prevent
408         exporting any zlib function names outside of the component.  This
409         prevents linking problems on some platforms, when applications want
410         to link FreeType _and_ zlib together.
411
412 2002-11-05  Juliusz  <jch@pps.jussieu.fr>
413
414         * src/psaux/psobjs.c (ps_table_add): Modified increment loop in
415         order to implement exponential behaviour.
416
417 2002-10-31  David Turner  <david@freetype.org>
418
419         * include/freetype/ftgzip.h, src/gzip/ftgzip.c: Adding support for
420         gzip compressed streams.
421
422         * src/pcf/pcfdriver.c: Adding automatic support for gzip-compressed
423         PCF files.
424
425 2002-10-30  David Turner  <david@freetype.org>
426
427         * FreeType 2.1.3rc3 released
428
429 2002-10-25  David Turner  <david@freetype.org>
430
431         * include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro.
432         (FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG.
433
434 2002-10-22  Giuseppe Ghibò <ghibo@mandrakesoft.com>
435
436         * include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2.
437
438 2002-10-07  Werner Lemberg  <wl@gnu.org>
439
440         * include/freetype/freetype.h (FT_Open_Face): Use `const' for `args'
441         (suggested by Graham).
442         * src/base/ftobjs.c (FT_Open_Face): Updated.
443         (ft_input_stream_new): Ditto.
444
445 2002-10-05  David Turner  <david@freetype.org>
446
447         Adding support for embedded bitmaps to the PFR driver, and rewriting
448         its kerning loader/handler to use all kerning pairs in a physical
449         font (and not just the first item).
450
451         * src/pfr/pfr.c: Include `pfrsbit.c'.
452         * src/pfr/pfrgload.c: Include `pfrsbit.h'.
453         * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): Rewritten.
454         (pfr_phy_font_done, pfr_phy_font_load): Updated.
455         * src/pfr/pfrobks.c: Include `pfrsbit.h'.
456         (pfr_face_init): Handle kerning and embedded bitmaps.
457         (pfr_slot_load): Load embedded bitmaps.
458         (PFR_KERN_INDEX): Removed.
459         (pfr_face_get_kerning): Rewritten.
460         * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h: New files.
461         * src/pfr/pfrtypes.h (PFR_KernItemRec): New structure.
462         (PFR_KERN_INDEX): New macro.
463         (PFR_PhyFontRec): Add items for kerning and embedded bitmaps.
464         * src/pfr/Jamfile (_sources) [FT2_MULTI]: Add `pfrsbit'.
465
466         * src/base/ftobjs.c (FT_Load_Glyph): Don't load bitmap fonts if
467         FT_LOAD_NO_RECURSE is set.
468         Load embedded bitmaps only if FT_LOAD_NO_BITMAP isn't set.
469
470         * src/tools/docmaker/content.py, src/tools/docmaker/sources.py,
471         src/tools/docmaker/tohtml.py: Fixing a few nasty bugs.
472
473         * src/sfnt/ttcmap0.c (tt_cmap4_validate): The validator for format 4
474         sub-tables is now capable of dealing with invalid "length" fields at
475         the start of the sub-table.  This allows fonts like "mg______.ttf"
476         (i.e.  Marriage) to return accurate charmaps.
477
478         * docs/CHANGES: Updated.
479
480 2002-10-05  Werner Lemberg  <wl@gnu.org>
481
482         * src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'.
483         Update all callers.
484         (TRUNC): Add cast to `TCoord'.
485         Update all callers.
486         (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and
487         last_ey.
488         Update all casts.
489         (gray_render_line): Fix casts for `p' and `first'.
490
491 2002-10-02  Detlef Würkner  <TetiSoft@apg.lahn.de>
492
493         * src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t
494         structure with FT_ALLOC instead of using the stack.
495
496 2002-09-27  Werner Lemberg  <wl@gnu.org>
497
498         * src/include/freetype/internal/tttypes.h (num_sbit_strikes,
499         num_sbit_scales): Use `FT_ULong'.
500         * src/sfnt/sfobjs.c (sfnt_load_face): Updated accordingly.
501         * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Ditto.
502         (find_sbit_image): Remove cast.
503         * src/raster/ftrend1.c (ft_raster1_render): Fix cast.
504
505 2002-09-27  Wolfgang Domröse  <porthos.domroese@harz.de>
506
507         * src/sfnt/ttload.c (tt_face_load_names): Use cast.
508         * src/sfnt/ttcmap.c (code_to_next2): Use long constant.
509         (code_to_index4): Use cast.
510         (code_to_index8_12): Fix cast.
511         * src/sfnt/ttcmap0.c (tt_cmap4_char_next, tt_cmap8_char_index,
512         tt_cmap12_char_index): Use cast for `result'.
513         (tt_face_build_cmaps): Use cast.
514         * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_ucs4): Use cast for
515         `code'.
516         (sfnt_load_face): Use FT_Int32 for `flags'.
517
518         * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
519         gray_compute_cbox, gray_convert_glyph, gray_raster_reset): Add casts
520         to `TCoord' and `int'.
521         More 16bit fixes.
522         s/FT_Pos/TPos/.
523         * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts.
524
525 2002-09-26  Werner Lemberg  <wl@gnu.org>
526
527         * src/sfnt/ttpost.c (load_post_names, tt_face_free_ps_names,
528         tt_face_get_ps_name): Replace switch statement with if clauses to
529         make it more portable.
530
531         * src/cff/cffobjs.c (cff_face_init): Ditto.
532
533         * include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for
534         `module_size'.
535         * include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for
536         `glyph_size'.
537
538         * src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to
539         `FT_Render_Mode'.
540         (FT_Render_Glyph_Internal): Change third parameter to
541         `FT_Render_Mode'.
542         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter
543         to `FT_Render_Mode'.
544
545         * src/raster/ftrend1.c (ft_raster1_render): Change third parameter
546         to `FT_Render_Mode'.
547         * src/smooth/ftsmooth.c (ft_smooth_render, ft_smooth_render_lcd,
548         ft_smooth_render_lcd_v): Ditto.
549         (ft_smooth_render_generic): Change third and fifth parameter to
550         `FT_Render_Mode'.
551
552         * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
553         include/freetype/ftglyph.h: Updated.
554
555         * src/cff/cffdrivr.c (Load_Glyph), src/pcf/pcfdriver.c
556         (PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load),
557         src/winfonts/winfnt.c (FNT_Load_Glyph), src/t42/t42objs.c
558         (T42_GlyphSlot_Load), src/bdf/bdfdrivr.c (BDF_Glyph_Load): Change
559         fourth parameter to `FT_Int32'.
560
561         * src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters
562         and declare them as unused.
563
564         * src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'.
565
566         * src/psnames/psnames.h (PS_Unicode_Value_Func): Change return
567         value to FT_UInt32.
568         * src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table):
569         Updated accordingly.
570
571 2002-09-26  Wolfgang Domröse  <porthos.domroese@harz.de>
572
573         * src/cff/cffdrivr.c (Get_Kerning): Use FT_Long for `middle'.
574         (cff_get_glyph_name): Use cast for result of ft_strlen.
575         * src/cff/cffparse.c (cff_parse_real): User cast for assigning
576         `exp'.
577         * src/cff/cffload.c (cff_index_get_pointers): Use FT_ULong for
578         some local variables.
579         (cff_charset_load, cff_encoding_load): Use casts to FT_UInt for some
580         switch statements.
581         (cff_font_load): Use cast in call to CFF_Load_FD_Select.
582         * src/cff/cffobjs.c (cff_size_init): Use more casts.
583         (cff_face_init): Use FT_Int32 for `flags'.
584         * src/cff/cffgload.c (cff_operator_seac): Use cast for assigning
585         `adx' and `ady'.
586         (cff_decoder_parse_charstrings): Use FT_ULong for third parameter.
587         Use more casts.
588         * src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'.
589
590         * src/cid/cidload.c (cid_read_subrs): Use FT_ULong for `len'.
591         * src/cid/cidgload.c (cid_load_glyph): Add missing cast for
592         `cid_get_offset'.
593
594         * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <18>: Use
595         cast for `num_points'.
596         (t1_decoder_init): Use cast for assigning `decoder->num_glyphs'.
597
598         * src/base/ftdebug.c (ft_debug_init): Use FT_Int.
599         * include/freetype/internal/ftdriver.h (FT_Slot_LoadFunc): Use
600         `FT_Int32' for fourth parameter.
601         * src/base/ftobjs.c (open_face): Use cast for calling
602         clazz->init_face.
603
604         * src/raster/ftraster.c (Set_High_Precision): Use `1' instead of
605         `1L'.
606         (Finalize_Profile_Table, Line_Up, ft_black_init): Use casts.
607         * src/raster/ftrend1.c (ft_raster1_render): Ditto.
608
609         * src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long
610         constant.
611
612 2002-09-26  Detlef Würkner  <TetiSoft@apg.lahn.de>
613
614         * builds/amiga/include/freetype/config/ftmodule.h: Updated.
615
616 2002-09-25  David Turner  <david@freetype.org>
617
618         * src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics
619         hinting in the auto-hinter.  This produces much better anti-aliased
620         text.
621
622         * docs/CHANGES: Updating the changes documentation.
623
624 2002-09-25  Anthony Fok  <anthony@thizlinux.com>
625
626         * src/sfnt/ttcmap0.c (tt_cmap4_validate, tt_cmap4_char_index,
627         tt_cmap4_char_next): Added support for opens___.ttf (it contains a
628         charmap that uses offset=0xFFFFU instead of 0x0000 to indicate a
629         missing glyph).
630
631 2002-09-21  Wolfgang Domröse  <porthos.domroese@harz.de>
632
633         * src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be
634         FT_Int32.
635         * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph):
636         Ditto.
637
638 2002-09-19  Wolfgang Domröse  <porthos.domroese@harz.de>
639
640         More 16bit fixes.
641
642         * src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'.
643         (ah_hinter_compute_widths): Use FT_Pos for `dist'.
644         Use AH_MAX_WIDTHS.
645         * src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos
646         for `delta'.
647         (ah_outline_compute_edges): Replace some ints with FT_Int and
648         FT_Pos.
649         (ah_test_extrema): Clean up code.
650         (ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to
651         hold indices.
652         * src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score'
653         to FT_Pos.
654
655 2002-09-19  Werner Lemberg  <wl@gnu.org>
656
657         * builds/unix/config.guess, builds/unix/config.sub: Updated to
658         recent versions.
659
660 2002-09-18  David Turner  <david@freetype.org>
661
662         * src/base/ftobjs.c (FT_Library_Version): Bugfix.
663
664         * FreeType 2.1.3rc2 (release candidate 2) is released!
665
666 2002-09-17  David Turner  <david@freetype.org>
667
668         * include/freetype/freetype.h, include/freetype/ftimage.h,
669         include/freetype/ftstroker.h, include/freetype/ftsysio.h,
670         include/freetype/ftsysmem.h, include/freetype/ttnameid.h: Updating
671         the in-source documentation.
672
673         * src/tools/docmaker/tohtml.py: Updating the HTML formatter in the
674         DocMaker tool.
675
676         * src/tools/docmaker.py: Removed.
677
678 2002-09-17  Werner Lemberg  <wl@gnu.org>
679
680         More 16bit fixes.
681
682         * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for
683         second parameter.
684
685 2002-09-16  Werner Lemberg  <wl@gnu.org>
686
687         16bit fixes from Wolfgang Domröse.
688
689         * src/type1/t1parse.h (T1_ParserRec): Change type of `base_len'
690         and `private_len' to FT_Long.
691         * src/type1/t1parse.c (T1_Get_Private_Dict): Remove cast for
692         `private_len'.
693         * src/type1/t1load.c: Use FT_Int cast for most calls of T1_ToInt.
694         Use FT_PtrDist where appropriate.
695         (parse_encoding): Use FT_Long for `count' and `n'.
696         (read_binary_data): Use FT_Long* for second parameter.
697         * src/type1/t1afm.c (afm_atoindex): Use FT_PtrDist.
698
699         * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label.
700         * src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable.
701
702 2002-09-14  Werner Lemberg  <wl@gnu.org>
703
704         Making ftgrays.c compile stand-alone again.
705
706         * include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_
707         isn't defined.
708         * src/smooth/ftgrays.c [_STANDALONE_]: Define ft_memset,
709         FT_BEGIN_HEADER, FT_END_HEADER.
710         (FT_MEM_ZERO): Define.
711         (TRaster) [GRAYS_USE_GAMMA]: Use `unsigned char' instead of FT_Byte.
712         (gray_render_span, gray_init_gamma): Don't use `FT_UInt'.
713         Don't cast with `FT_Byte'.
714         (grays_init_gamma): Don't use `FT_UInt'.
715
716 2002-09-14  Werner Lemberg  <wl@gnu.org>
717
718         * src/base/ftinit.c (FT_Add_Default_Modules): Improve error message.
719         * src/pcf/pcfdriver.c (PCF_Face_Done): Improve tracing message.
720         * include/freetype/config/ftoption.h (FT_MAX_MODULES): Increased
721         to 32.
722
723 2002-09-10  Werner Lemberg  <wl@gnu.org>
724
725         * builds/unix/configure.ac (version_info): Set to 9:2:3.
726         * builds/unix/configure: Regenerated.
727         * docs/VERSION.DLL: Updated.
728
729 2002-09-09  David Turner  <david@freetype.org>
730
731         * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points),
732         src/pshinter/pshalgo3.c (psh3_glyph_find_strong_points): Adding fix
733         to prevent seg fault when hints are provided in an empty glyph.
734
735         * src/cache/ftccache.i (GEN_CACHE_LOOKUP) [FT_DEBUG_LEVEL_ERROR]:
736         Removed conditional code.  This fixes a bug that prevented
737         compilation in debug mode of template instantiation.
738
739         * include/freetype/ftimage.h: Removed incorrect "zft_" definitions
740         and updated constants documentation comments.
741
742         * src/cff/cffparse.c (cff_parser_run): Fixed the CFF table loader.
743         It didn't accept empty arrays, and this prevented the loading of
744         certain fonts.
745
746         * include/freetype/freetype.h (FT_FaceRec): Updating documentation
747         comment.  The "descender" value is always *negative*, not positive.
748
749 2002-09-09  Owen Taylor  <owen@redhat.com>
750
751         * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation
752         of bitmap metrics.
753
754 2002-09-08  David Turner  <david@freetype.org>
755
756         Various updates to correctly support sub-pixel rendering.
757
758         * include/freetype/config/ftmodule.h: Add two renderers for LCD.
759
760         * src/base/ftobjs.c (FT_Load_Glyph): Updated.
761
762         * src/smooth/ftsmooth.c (ft_smooth_render_lcd,
763         ft_smooth_render_lcd_v): Set FT_PIXEL_MODE_LCD and
764         FT_PIXEL_MODE_LCD_V, respectively.
765
766         * include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New
767         structure.
768         Updated all users.
769         (FTC_ImageDesc): Removed.
770         (FTC_ImageCache_Lookup): Second parameter is now of type
771         `FTC_ImageType'.
772         Updated all users.
773         (FTC_IMAGE_DESC_COMPARE): Updated and renamed to...
774         (FTC_IMAGE_TYPE_COMPARE): This.
775         (FTC_IMAGE_DESC_HASH): Updated and renamed to...
776         (FTC_IMAGE_TYPE_HASH): This.
777
778         * include/freetype/cache/ftcsbits.h (FTC_SBitRec): Field `num_grays'
779         replaced with `max_grays'.
780         `pitch' is now FT_Short.
781         (FTC_SBitCache_Lookup): Second parameter is now of type
782         `FTC_ImageType'.
783         Updated all users.
784
785         * src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec):
786         Updated.
787         (ftc_image_node_init): Updated.
788         Moved code to convert type flags to load flags to...
789         (FTC_Image_Cache_Lookup): This function.
790         (ftc_image_family_init): Updated.
791
792         * src/cache/ftcsbit.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
793         Updated.
794         (ftc_sbit_node_load): Updated.
795         Moved code to convert type flags to load flags to...
796         (FTC_SBitCache_Lookup): This function.
797
798         * src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with
799         `do_*_snapping'.
800         Update all users (with negation).
801         * src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for
802         `dist' for `delta' < 40.
803
804         * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with
805         `do_*_snapping'.
806         Update all users (with negation).
807         * src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New
808         function.
809         (psh3_hint_align): Use it.
810         Improve hinting code.
811         [STRONGER]: Removed.
812         (STRONGER): Removed.
813
814         * include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*):
815         Removed.
816
817 2002-09-05  Werner Lemberg  <wl@gnu.org>
818
819         * src/cid/cidobjs.c (CID_Size_Init): Renamed to...
820         (cid_size_init): This.
821         * src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to...
822         (t1_builder_add_point1): This.
823
824         Updated all affected code.
825
826         * src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
827         * src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.
828
829 2002-09-04  David Turner  <david@freetype.org>
830
831         * include/freetype/freetype.h: Corrected the definition of
832         ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of
833         the erroneous FT_ENCODING_SYMBOL).
834
835         * builds/unix/unix-def.in (datadir): Initialize it (thanks to
836         Anthony Fok).
837
838 2002-08-29  David Turner  <david@freetype.org>
839
840         Slight modification to the Postscript hinter to slightly increase
841         the contrast of smooth hinting.  This is very similar to what the
842         auto-hinter does when it comes to stem width computations.  However,
843         it produces better results with well-hinted fonts.
844
845         * include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Add hint
846         mode to `init' member function.
847         (T1_DecoderRec): Add hint mode.
848         * include/freetype/internal/pshints (T1_Hints_ApplyFunc,
849         T2_Hints_ApplyFunc): Pass `hint_mode', not `hint_flags'.
850         * src/psaux/t1decode.c (t1_decoder_init): Add hint mode argument.
851         * src/pshinter/pshalgo1.c (ps1_hints_apply): Pass hint mode, not
852         hint flags.
853         * src/pshinter/pshalgo2.c (ps2_hints_apply): Ditto.
854         * src/pshinter/pshalgo3.c (ps3_hints_apply): Ditto.
855         (STRONGER): New macro.
856         (psh3_hint_align, psh3_hint_table_align_hints): Pass `glyph' instead
857         of `hint_flags'.
858         Implement announced changes.
859         * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control
860         vertical and horizontal hints and snapping.
861
862         * README, docs/CHANGES: Updating for the 2.1.3 release.
863
864 2002-08-27  David Turner  <david@freetype.org>
865
866         * Massive re-formatting changes to many, many source files.  I don't
867         want to list them all here.  The operations performed were all
868         logical transformations of the sources:
869
870         - trying to convert all enums and constants to CAPITALIZED_STYLE,
871           #with define definitions like
872
873             #define my_old_constants   MY_NEW_CONSTANT
874
875         - big, big update of the documentation comments
876
877         * include/freetype/freetype.h, src/base/ftobjs.c,
878         src/smooth/ftsmooth.c, include/freetype/ftimage.h: Adding support
879         for LCD-optimized rendering though the new constants/enums:
880
881           FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
882           FT_PIXEL_MODE_LCD,  FT_PIXEL_MODE_LCD_V
883
884         This is still work in progress, don't expect everything to work
885         correctly though most of the features have been implemented.
886
887         * Adding new FT_LOAD_XXX flags, used to specify both hinting and
888         rendering targets:
889
890           FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
891           FT_LOAD_TARGET_MONO   :: monochrome bitmaps
892           FT_LOAD_TARGET_LCD    :: horizontal RGB/BGR decimated
893                                    hinting & rendering
894           FT_LOAD_TARGET_LCD_V  :: vertical RGB/BGR decimated
895                                    hinting & rendering
896
897         Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
898         behaviour of the font engine is _unchanged_.
899
900         * include/freetype/ftimage.h
901         (FT_Outline_{Move,Line,Conic,Cubic}To_Func): Renamed to...
902         (FT_Outline_{Move,Line,Conic,Cubic}ToFunc): This.
903         (FT_Raster_Span_Func): Renamed to ...
904         (FT_SpanFunc): This.
905         (FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ...
906         (FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This.
907
908         Updated all affected code.
909
910         * include/freetype/ftrender.h
911         (FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed
912         to ...
913         (FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This.
914         (FTRenderer_{render,transform,getCBox,setMode}): Renamed to ...
915         (FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SeteModeFunc}):
916         This.
917
918         Updated all affected code.
919
920         * src/autohint/ahtypes.h (AH_Point, AH_Segment, AH_Edge, AH_Globals,
921         AH_Face_Globals, AH_Outline, AH_Hinter): These typedefs are now
922         pointers to the corresponding `*Rec' structures.  All source files
923         have been updated accordingly.
924
925         * src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter.
926         * src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element.
927
928         * src/cid/cidgload.c (CID_Compute_Max_Advance): Renamed to...
929         (cid_face_compute_max_advance): This.
930         (CID_Load_Glyph): Renamed to...
931         (cid_slot_load_glyph): This.
932         * src/cid/cidload.c (CID_Open_Face): Renamed to...
933         (cid_face_open): This.
934         * src/cid/cidobjs.c (CID_GlyphSlot_{Done,Init}): Renamed to...
935         (cid_slot_{done,init}): This.
936         (CID_Size_{Get_Globals_Funcs,Done,Reset): Renamed to...
937         (cid_size_{get_globals_funcs,done,reset): This.
938         (CID_Face_{Done,Init}): Renamed to...
939         (cid_face_{done,init}): This.
940         (CID_Driver_{Done,Init}: Renamed to...
941         (cid_driver_{done,init}: This.
942         * src/cid/cidparse.c (CID_{New,Done}_Parser): Renamed to...
943         (cid_parser_{new,done}): This.
944         * src/cid/cidparse.h (CID_Skip_{Spaces,Alpha}): Renamed to...
945         (cid_parser_skip_{spaces,alpha}): This.
946         (CID_To{Int,Fixed,CoordArray,FixedArray,Token,TokenArray}): Renamed
947         to...
948         (cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}):
949         This.
950         (CID_Load_{Field,Field_Table): Renamed to...
951         (cid_parser_load_{field,field_table}): This.
952         * src/cid/cidriver.c (CID_Get_Interface): Renamed to...
953         (cid_get_interface): This.
954
955         Updated all affected code.
956
957         * src/psaux/psobjs.c (PS_Table_*): Renamed to...
958         (ps_table_*): This.
959         (T1_Builder_*): Renamed to...
960         (t1_builder_*): This.
961         * src/psaux/t1decode.c (T1_Decoder_*): Renamed to...
962         (t1_decoder_*): This.
963
964         * src/psnames/psmodule.c (PS_*): Renamed to...
965         (ps_*): This.
966
967         Updated all affected code.
968
969         * src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to...
970         (sfnt_get_interface): This.
971         * src/sfnt/sfobjs.c (SFNT_*): Renamed to...
972         (sfnt_*): This.
973         * src/sfnt/ttcmap.c (TT_CharMap_{Load,Free}): Renamed to...
974         (tt_face_{load,free}_charmap): This.
975         * src/sfnt/ttcmap0.c (TT_Build_CMaps): Renamed to...
976         (tt_face_build_cmaps): This.
977         * src/sfnt/ttload.c (TT_*): Renamed to...
978         (tt_face_*): This.
979         * src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to...
980         (tt_post_default_names): This.
981         (Load_*): Renamed to...
982         (load_*): This.
983         (TT_*): Renamed to...
984         (tt_face_*): This.
985         * src/sfnt/ttsbit.c (TT_*): Renamed to...
986         (tt_face_*): This.
987         ({Find,Load,Crop}_*): Renamed to...
988         ({find,load,crop}_*): This.
989
990         Updated all affected code.
991
992         * src/smooth/ftsmooth.c (ft_smooth_render): Renamed to...
993         (ft_smooth_render_generic): This.
994         Make function more generic by adding vertical and horizontal scaling
995         factors.
996         (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v):
997         New functions.
998
999         (ft_smooth_locd_renderer_class, ft_smooth_lcdv_renderer_class): New
1000         classes.
1001
1002         * src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to...
1003         (tt_glyphzone_{done,new}): This.
1004         (TT_{Face,Size,Driver}_*): Renamed to...
1005         (tt_{face,size,driver}_*): This.
1006         * src/truetype/ttpload.c (TT_Load_Locations): Renamed to...
1007         (tt_face_load_loca): This.
1008         (TT_Load_Programs): Renamed to...
1009         (tt_face_load_fpgm): This.
1010         (TT_*): Renamed to...
1011         (tt_face_*): This.
1012
1013 2002-08-27  Werner Lemberg  <wl@gnu.org>
1014
1015         * docs/VERSION.DLL: New file.
1016
1017 2002-08-23  Graham Asher  <graham.asher@btinternet.com>
1018
1019         * src/cff/cffgload.c (cff_operator_seac)
1020         [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts (actually not
1021         incremental in the case of CFF but just using callbacks to get glyph
1022         recipes) pass the character code, not the glyph index, to the
1023         get_glyph_data function; they have no valid charset table.
1024
1025         * src/cff/cffload.c (cff_font_load): Removed special cases for
1026         FT_CONFIG_OPTION_INCREMENTAL, which are no longer necessary; CFF
1027         fonts provided via the incremental interface now have to conform
1028         more closely to the CFF font format.
1029
1030         * src/cff/cffload.h (cff_font_load): Removed argument now unneeded.
1031
1032         * src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load
1033         to conform with new signature.
1034
1035 2002-08-22  David Turner  <david@freetype.org>
1036
1037         * src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
1038         src/bdf/bdfdrivr.c: Removed compiler warnings.
1039
1040 2002-08-21  Werner Lemberg  <wl@gnu.org>
1041
1042         * src/pshinter/pshalgo3.c (psh3_glyph_compute_inflections,
1043         psh3_glyph_compute_extrema, psh3_hint_table_find_strong_point): Fix
1044         compiler warnings and resolve shadowing of local variables.
1045
1046 2002-08-21  David Turner  <david@freetype.org>
1047
1048         The automatic and Postscript hinter now automatically detect
1049         inflection points in glyph outlines and treats them specially.  This
1050         is very useful to prevent nasty effect like the disappearing
1051         diagonals of "S" and "s" in many, many fonts.
1052
1053         * src/autohint/ahtypes.h (ah_flag_inflection): New macro.
1054         * src/autohint/ahangles.c (ah_angle_diff): New function.
1055         * src/autohint/ahangles.h: Updated.
1056         * src/autohint/ahglyph.c (ah_outline_compute_inflections): New
1057         function.
1058         (ah_outline_detect_features): Use it.
1059         * src/autohint/ahhint.c (ah_hinter_align_strong_points)
1060         [!AH_OPTION_NO_WEAK_INTERPOLATION]: Handle inflection.
1061
1062         * src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py,
1063         src/tools/docmaker/tohtml.py: Updating the DocMaker tool.
1064
1065         * include/freetype/freetype.h: Changing the type of the "load_flags"
1066         parameter from "FT_Int" to "FT_Int32", this in order to support more
1067         options.  This should only break binary and/or source compatibility
1068         on 16-bit platforms (Atari?).
1069         (FT_LOAD_NO_AUTOHINT): New macro.
1070
1071         * src/base/ftobjs.c (FT_Load_Glyph): Updated.
1072         Handle FT_LOAD_NO_AUTOHINT.
1073         (FT_Load_Char): Updated.
1074
1075         * src/pshinter/pshalgo3.c, src/base/ftobjs.c, src/base/ftobject.c,
1076         src/autohint/ahglyph.c, include/freetype/freetype.h: Fixing typos
1077         and removing compiler warnings.
1078
1079 2002-08-20  Werner Lemberg  <wl@gnu.org>
1080
1081         * src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0.
1082
1083 2002-08-20  David Turner  <david@freetype.org>
1084
1085         * src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
1086         src/pshinter/pshglob.c, src/pshinter/pshrec.c,
1087         src/autohint/ahmodule.c [DEBUG_HINTER]: Removing compiler warnings
1088         (only used in development builds anyway).
1089
1090         Improve support of local extrema and stem edge points.
1091
1092         * src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec
1093         for `zones'.
1094         (PSH3_DIR_UP, PSH3_DIR_DOWN): Exchange values.
1095         (PSH3_DIR_HORIZONTAL, PSH3_DIR_VERTICAL): New macros.
1096         (PSH3_DIR_COMPARE, PSH3_DIR_IS_HORIZONTAL, PSH3_IS_VERTICAL): New
1097         macros.
1098         (PSH3_POINT_INFLEX): New enum.
1099         (psh3_point_{is,set}_{off,inflex}): New macros.
1100         (PSH3_POINT_{EXTREMUM,POSITIVE,NEGATIVE,EDGE_MIN,EDGE_MAX): New
1101         enum values.
1102         (psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}):
1103         New macros.
1104         (PSH3_PointRec): New members `flags2' and `org_v'.
1105         (PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros.
1106
1107         * src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler
1108         warnings.
1109         (COMPUTE_INFLEXS): New macro.
1110         (psh3_hint_align): Simplify some basic arithmetic computations.
1111         (psh3_point_is_extremum): Removed.
1112         (psh3_glyph_compute_inflections) [COMPUTE_INFLEXS]: New function.
1113         (psh3_glyph_init) [COMPUTE_INFLEXS]: Use it.
1114         (psh3_glyph_compute_extrema): New function.
1115         (PSH3_STRONG_THRESHOLD): Increased to 30.
1116         (psh3_hint_table_find_strong_point): Improved.
1117         (psh3_glyph_find_strong_points,
1118         psh3_glyph_interpolate_strong_points): Updated.
1119         (psh3_hints_apply): Use psh3_glyph_compute_extrema.
1120
1121         * test/gview.c (draw_ps3_hint, ps3_draw_control_points): New
1122         functions.
1123         Other small updates.
1124
1125         * Jamfile: Small updates.
1126
1127 2002-08-18  Arkadiusz Miskiewicz  <misiek@pld.ORG.PL>
1128
1129         * builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to
1130         make life easier for package maintainers.
1131
1132 2002-08-18  Werner Lemberg  <wl@gnu.org>
1133
1134         * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of
1135         horiBearingX.
1136         * src/bdf/bdfdrivr.c (BDF_GlyphLoad): Fix computation of
1137         horiBearingY.
1138
1139 2002-08-16  George Williams  <gww@silcom.com>
1140
1141         Add support for Apple composite glyphs.
1142
1143         * include/freetype/config/ftoption.h
1144         (TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro.
1145
1146         * src/truetype/ttgload.c (OVERLAP_COMPOUND, SCALED_COMPONENT_OFFSET,
1147         UNSCALED_COMPONENT_OFFSET): New macros for additional OpenType
1148         glyph loading flags.
1149         (load_truetype_glyph): Implement it.
1150
1151 2002-08-16  Werner Lemberg  <wl@gnu.org>
1152
1153         * src/cff/cffgload.c (cff_free_glyph_data),
1154         src/cff/cffload.c (cff_font_load): Use FT_UNUSED.
1155
1156 2002-08-15  Werner Lemberg  <wl@gnu.org>
1157
1158         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'.
1159         * src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning.
1160
1161 2002-08-15  Graham Asher  <graham.asher@btinternet.com>
1162
1163         Implemented the incremental font loading system for the CFF driver.
1164         Tested using the GhostScript-to-FreeType bridge (under development).
1165
1166         * src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New
1167         functions.
1168         (cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use
1169         them.
1170         * src/cff/cffload.c (cff_font_load): Add `face' parameter.
1171         Load charset and encoding only if there are glyphs.
1172         [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts don't need
1173         character recipes.
1174         * src/cff/cffload.h, src/cff/cffobjs.c: Updated.
1175
1176         * src/cid/cidgload.c (cid_load_glyph)
1177         [FT_CONFIG_OPTION_INCREMENTAL]: Corrected the incremental font
1178         loading implementation to use the new system introduced on
1179         2002-08-01.
1180
1181 2002-08-06  Werner Lemberg  <wl@gnu.org>
1182
1183         * src/cff/cffcmap.c: Remove compiler warnings.
1184         * src/cache/ftccache.c, src/cache/ftccache.i,
1185         src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
1186         * src/cff/cffload.c: s/select/fdselect/.
1187         * src/raster/ftraster.c: s/wait/waiting/.
1188
1189 2002-08-01  Graham Asher  <graham.asher@btinternet.com>
1190
1191         * src/type1/t1load.c (T1_Open_Face): Tolerate a face with no
1192         charstrings if there is an incremental loading interface.  Type 1
1193         faces supplied by PostScript interpreters like GhostScript will
1194         typically not provide any charstrings at load time, so this is
1195         essential if they are to work.
1196
1197 2002-08-01  Graham Asher  <graham.asher@btinternet.com>
1198
1199         Modified incremental loading interface to be closer to David's
1200         preferences.  The header freetype.h is not now affected, the
1201         interface is specified via an FT_Parameter, the pointer to the
1202         interface is hidden in an internal part of the face record, and all
1203         the definitions are in ftincrem.h.
1204
1205         * include/freetype/freeetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
1206         Removed.
1207         * include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]:
1208         Include FT_INCREMENTAL_H.
1209         (FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add
1210         `incremental_interface'.
1211
1212         * src/base/ftobjs.c (open_face, FT_Open_Face)
1213         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
1214         * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
1215         Updated.
1216
1217         * src/truetype/ttgload.c (load_truetype_glyph)
1218         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
1219         Free loaded glyph data properly.
1220         (compute_glyph_metrics, TT_Load_Glyph)
1221         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
1222         * src/truetype/ttobjs.c (TT_Face_Init)
1223         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
1224
1225         * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
1226         [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
1227         (T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
1228         Free loaded glyph data properly.
1229         (T1_Load_Glyph): Updated.
1230         [FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly.
1231
1232 2002-07-30  David Turner  <david@freetype.org>
1233
1234         * include/freetype/ftincrem.h: Adding new experimental header file
1235         to demonstrate a "cleaner" API to support incremental font loading.
1236
1237         * include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
1238
1239         * src/tools/docmaker/*: Adding new (more advanced) version of
1240         the DocMaker tool, using Python's sophisticated regexps.
1241
1242 2002-07-28  Werner Lemberg  <wl@gnu.org>
1243
1244         s/ft_memset/FT_MEM_SET/.
1245         s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate.
1246
1247 2002-07-27  Werner Lemberg  <wl@gnu.org>
1248
1249         * src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
1250
1251 2002-07-26  Werner Lemberg  <wl@gnu.org>
1252
1253         * src/truetype/ttgload.c (load_truetype_glyph)
1254         [FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/.
1255
1256         * src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning.
1257         * src/cff/cffload.c (cff_encoding_load): Remove `memory' variable.
1258         * src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames'
1259         variable.
1260         * src/truetype/ttgload.c (load_truetype_glyph): Remove statement
1261         without effect.
1262         * src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
1263
1264         * src/pshinter/pshalgo3.c (psh3_hint_table_record,
1265         psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error
1266         message.
1267
1268 2002-07-24  Graham Asher  <graham.asher@btinternet.com>
1269
1270         * src/truetype/ttobjs.c: Fix for bug reported by Sven Neumann
1271         [sven@gimp.org] on the FreeType development forum: "If
1272         FT_CONFIG_OPTION_INCREMENTAL is undefined (this is the default), the
1273         TrueType loader crashes in line 852 of src/truetype/ttgload.c when
1274         it tries to access face->glyph_locations."
1275
1276 2002-07-18  Graham Asher  <graham.asher@btinternet.com>
1277
1278         Added types and structures to support incremental typeface loading.
1279         The FT_Incremental_Interface structure, defined in freetype.h, is
1280         designed to be passed to FT_Open_Face to provide callback functions
1281         to obtain glyph recipes and metrics, for fonts like those passed
1282         from PostScript that do not necessarily provide all, or any, glyph
1283         information, when first opened.
1284
1285         * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
1286         New configuration macro to enable incremental face loading.  By
1287         default it is not defined.
1288
1289         * include/freetype/freetype.h (FT_Basic_Glyph_Metrics,
1290         FT_Get_Glyph_Data_Func, FT_Get_Glyph_Metrics_Func,
1291         FT_Incremental_Interface_Funcs, FT_Incremental_Interface)
1292         [FT_CONFIG_OPTION_INCREMENTAL]: New.
1293         (FT_Open_Args, FT_FaceRec) [FT_CONFIG_OPTION_INCREMENTAL]: New field
1294         `incremental_interface'.
1295         (FT_Open_Flags) [FT_CONFIG_OPTION_INCREMENTAL]: New enum
1296         `ft_open_incremental'.
1297
1298         * include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H.
1299         (FT_Data): New structure to represent binary data.
1300
1301         * src/base/ftobjs.c (open_face) [FT_CONFIG_OPTION_INCREMENTAL]:
1302         Add parameter for incremental loading.
1303         (FT_Open_Face) [FT_CONFIG_OPTION_INCREMENTAL]: Use incremental
1304         interface.
1305
1306         * src/truetype/ttgload.c (load_truetype_glyph)
1307         [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
1308         for the TrueType driver.
1309         (compute_glyph_metrics): Return FT_Error.
1310         [FT_CONFIG_OPTION_INCREMENTAL]: Check for overriding metrics.
1311         (TT_Load_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Don't look for
1312         the glyph table while handling an incremental font.
1313         Get glyph offset.
1314
1315         * src/truetype/ttobjs.c (TT_Face_Init)
1316         [FT_CONFIG_OPTION_INCOREMENTAL]: Added the incremental loading
1317         system for the TrueType driver.
1318
1319         * src/cid/cidgload.c (cid_load_glyph)
1320         [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
1321         for the CID driver.
1322
1323         * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
1324         Changes to support incremental Type 42 fonts: Assume a font has
1325         glyphs if it has an incremental interface object.
1326
1327         * src/type1/t1gload.c (T1_Parse_Glyph): Renamed to...
1328         (T1_Parse_Glyph_And_Get_Char_String): This.
1329         [FT_CONFIG_OPTION_INCREMENTAL]: Added support for incrementally
1330         loaded Type 1 faces.
1331         (T1_Parse_Glyph): New function.
1332         (T1_Load_Glyph): Updated.
1333
1334 2002-07-17  David Turner  <david@freetype.org>
1335
1336         Cleaning up the cache sub-system code; linear hashing is now the
1337         default.
1338
1339         * include/freetype/cache/ftccache.h, src/cache/ftccache.i,
1340         src/cache/ftccache.c [!FTC_CACHE_USE_LINEAR_HASHING]: Removed.
1341         (FTC_CACHE_USE_LINEAR_HASHING: Removed also.
1342
1343         FT_CONFIG_OPTION_USE_CMAPS is now the default.
1344
1345         * include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove
1346         `get_char_index' and `get_next_char'.
1347
1348         * include/freetype/config/ftoption.h,
1349         include/freetype/internal/tttypes.h, src/base/ftobjs.c,
1350         src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c,
1351         src/pfr/pfrdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
1352         src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c,
1353         src/type42/t42objs.c, src/winfonts/winfnt.c
1354         [!FT_CONFIG_OPTION_USE_CMAPS]: Removed.  The new cmap code is now
1355         the default.
1356
1357         * src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext):
1358         Removed.
1359         * src/type42/t42objs.h: Updated.
1360
1361         * src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char):
1362         Removed.
1363         (t1_cid_driver_class): Updated.
1364         * src/truetype/ttdriver.c (tt_driver_class): Updated.
1365         * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Removed
1366         (t1_driver_class): Updated.
1367         * src/type42/t42drivr.c (t42_driver_class): Updated.
1368
1369         * src/base/ftobjs.c (open_face): Select Unicode cmap by default.
1370
1371         * src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that
1372         prevented OpenType fonts to be recognized by FreeType.
1373
1374 2002-07-11  David Turner  <david@freetype.org>
1375
1376         Changing the SFNT loader to check for SFNT-based font files
1377         differently.  We now ignore the range "helper" fields and check the
1378         "head" table's magic number instead.
1379
1380         * include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset'
1381         field.
1382
1383         * src/sfnt/ttload.c (sfnt_dir_check): New function.
1384         (TT_Load_SFNT_HeaderRec): Renamed to...
1385         (TT_Load_SFNT_Header): This.
1386         Implement new functionality.
1387         * src/sfnt/ttload.h: Updated.
1388         * src/sfnt/sfdriver.c (sfnt_interface): Updated.
1389
1390         * src/base/ftobject.c, src/base/fthash.c: Updated object sub-system
1391         and dynamic hash table implementation (still experimental, don't
1392         use).
1393         * include/freetype/internal/fthash.h: Updated.
1394         * include/freetype/internal/ftobjs.h (FT_LibraryRec): New member
1395         `meta_class'.
1396
1397         Fixing a bug in the Type 1 loader that prevented valid font bounding
1398         boxes to be loaded from multiple master fonts.
1399
1400         * include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field.
1401
1402         * include/freetype/internal/psaux.h (T1_FieldType): Add
1403         `T1_FIELD_TYPE_BBOX'.
1404         (T1_FieldLocation): Add `T1_FIELD_LOCATION_BBOX'.
1405         (T1_FIELD_BBOX): New macro.
1406
1407         * src/psaux/psobjs.c (PS_Parser_LoadField): Handle T1_FIELD_TYPE_BBOX.
1408         * src/type1/t1load.c (t1_allocate_blend): Create blend->bboxes.
1409         (T1_Done_Blend): Free blend->bboxes.
1410         (t1_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
1411         (parse_font_bbox): Commented out.
1412         (t1_keywords): Comment out `parse_font_bbox'.
1413         * src/type1/t1tokens.h: Define `FontBBox' field.
1414
1415 2002-07-10  David Turner  <david@freetype.org>
1416
1417         * src/cff/cffobjs.c: Small fix to select the Unicode charmap by
1418         default when needed.
1419         Small fix to allow OpenType fonts to support Adobe charmaps when
1420         needed.
1421
1422         * src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support
1423         charmaps for CFF fonts.
1424
1425         * src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated.
1426
1427         * include/freetype/internal/cfftypes.h (CFF_EncodingRec): Use
1428         fixed-length arrays for `sids' and `codes'.  Add `count' member.
1429         (CFF_FontRec): Add `psnames' member.
1430
1431         * src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffload.h,
1432         src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
1433         src/cffparse.h, src/cff/cffgload.c, src/cff/cffgload.h: Adding
1434         support for CFF charmaps, reformatting the sources, and removing
1435         some bugs in the Encoding and Charset loaders.
1436         Many fonts renamed to use lowercase only:
1437
1438           CFF_Builder_Init -> cff_builder_init
1439           CFF_Builder_Done -> cff_builder_done
1440           CFF_Init_Decoder -> cff_decoder_init
1441           CFF_Parse_CharStrings -> cff_decoder_parse_charstrings
1442           CFF_Load_Glyph -> cff_slot_load
1443           CFF_Init_Decoder -> cff_decoder_init
1444           CFF_Prepare_Decoder -> cff_decoder_prepare
1445           CFF_Get_Standard_Encoding -> cff_get_standard_encoding
1446           CFF_Access_Element -> cff_index_access_element
1447           CFF_Forget_Element -> cff_index_forget_element
1448           CFF_Get_Name -> cff_index_get_name
1449           CFF_Get_String -> cff_index_get_sid_string
1450           CFF_Get_FD -> cff_fd_select_get
1451           CFF_Done_Charset -> cff_charset_done
1452           CFF_Load_Charset -> cff_charset_load
1453           CFF_Done_Encoding -> cff_encoding_done
1454           CFF_Load_Encoding -> cff_encoding_load
1455           CFF_Done_SubFont -> cff_subfont_done
1456           CFF_Load_Font -> cff_font_load
1457           CFF_Done_Font -> cff_font_done
1458           CFF_Size_Get_Global_Funcs -> cff_size_get_global_funcs
1459           CFF_Size_Done -> cff_size_done
1460           CFF_Size_Init -> cff_size_init
1461           CFF_Size_Reset -> cff_size_reset
1462           CFF_GlyphSlot_Done -> cff_slot_done
1463           CFF_GlyphSlot_Init -> cff_slot_init
1464           CFF_StrCopy -> cff_strcpy
1465           CFF_Face_Init -> cff_face_init
1466           CFF_Face_Done -> cff_face_done
1467           CFF_Driver_Init -> cff_driver_init
1468           CFF_Driver_Done -> cff_driver_done
1469           CFF_Parser_Init -> cff_parser_init
1470           CFF_Parser_Run -> cff_parser_run
1471
1472           add_point -> cff_builder_add_point
1473           add_point1 -> cff_builder_add_point1
1474           add_contour -> cff_builder_add_contour
1475           close_contour -> cff_builder_close_contour
1476           cff_explicit_index -> cff_index_get_pointers
1477
1478 2002-07-09  Owen Taylor  <owen@redhat.com>
1479
1480         * src/pshinter/pshglob.c (psh_globals_new): Fixed a bug that
1481         prevented the hinter from using correct standard width and height
1482         values, resulting in hinting bugs with certain fonts (e.g. Utopia).
1483
1484 2002-07-07  David Turner  <david@freetype.org>
1485
1486         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Added code to return
1487         successfully when the function is called with a bitmap glyph (the
1488         previous code simply returned with an error).
1489
1490         * docs/DEBUG.TXT: Adding debugging support documentation.
1491
1492         * src/base/ftdebug.c (ft_debug_init), builds/win32/ftdebug.c
1493         (ft_debug_init), builds/amiga/src/ftdebug.c (ft_debug_init): Changed
1494         the syntax of the FT2_DEBUG environment variable used to control
1495         debugging output (i.e. logging and error messages).  It must now
1496         look like:
1497
1498           any:6 memory:4 io:3   or
1499           any:6,memory:4,io:3   or
1500           any:6;memory:4;io:3
1501
1502 2002-07-07  Owen Taylor  <owen@redhat.com>
1503
1504         * src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for
1505         blue fuzz.
1506         * src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field.
1507         * src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'.
1508
1509         Adding support for hinter-specific bit flags, and the new
1510         FT_Set_Hint_Flags high-level API.
1511
1512         * include/freetype/freetype.h (FT_Set_Hint_Flags): New function.
1513         (FT_HINT_NO_INTEGER_STEM, FT_HINT_NO_HSTEM_ALIGN,
1514         FT_HINT_NO_VSTEM_ALIGN): New macros.
1515
1516         * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
1517         `hint_flags' member.
1518
1519         * src/base/ftobjs.c (FT_Set_Hint_Flags): New function.
1520
1521         * include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags'
1522         member.
1523
1524         * include/freetype/internal/pshints.h (T1_Hints_ApplyFunc,
1525         T2_Hints_ApplyFunc): Add parameter to pass hint flags.
1526
1527         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings,
1528         T1_Decoder_Init): Use decoder->hint_flags.
1529         * src/cff/cffgload.h (CFF_Builder): Add `hint_flags' field.
1530         * src/cff/cffgload.c (CFF_Builder_Init): Set builder->hint_flags.
1531         (CFF_Parse_CharStrings): Updated.
1532         * src/pshinter/pshalgo1.c (ps1_hints_apply): Add parameter to handle
1533         hint flags (unused).
1534         * src/pshinter/pshalgo1.h: Updated.
1535         * src/pshinter/pshalgo2.c (ps2_hints_apply): Add parameter to handle
1536         hint flags (unused).
1537         * src/pshinter/pshalgo2.h: Updated.
1538         * src/pshinter/pshalgo3.c (ps3_hints_apply): Add parameter to handle
1539         hint flags.
1540         * src/pshinter/pshalgo3.h: Updated.
1541
1542 2002-07-04  David Turner  <david@freetype.org>
1543
1544         * src/pfr/pfrobjs.c (pfr_slot_load): Fixed a small bug that returned
1545         incorrect advances when the outline resolution was different from
1546         the metrics resolution.
1547
1548         * src/autohint/ahhint.c: Removing compiler warnings.
1549
1550         * src/autohint/ahglyph.c: s/FT_MEM_SET/FT_ZERO/ where appropriate.
1551         (ah_outline_link_segments): Slight improvements to the serif
1552         detection code.  More work is needed though.
1553
1554 2002-07-03  David Turner  <david@freetype.org>
1555
1556         Small improvements to the automatic hinter.  Uneven stem-widths have
1557         now disappeared and everything looks much better, even if there are
1558         still issues with serifed fonts.
1559
1560         * src/autohint/ahtypes.h (AH_Globals): Added `stds' array.
1561         * src/autohint/ahhint.c (OPTIM_STEM_SNAP): New #define.
1562         (ah_snap_width): Commented out.
1563         (ah_align_linked_edge): Renamed to...
1564         (ah_compute_stem_width): This.
1565         Don't allow uneven stem-widths.
1566         (ah_align_linked_edge): New function.
1567         (ah_align_serifed_edge): Don't strengthen serifs.
1568         (ah_hint_edges_3, ah_hinter_scale_globals): Updated.
1569
1570 2002-07-03  Owen Taylor  <owen@redhat.com>
1571
1572         Adding new algorithm based on Owen Taylor's recent work.
1573
1574         * src/pshinter/pshalgo3.c, src/pshinter/pshalgo3.h: New files.
1575         * src/pshinter/pshalgo.h: Updated.
1576         Use pshalgo3 by default.
1577         * src/pshinter/pshinter.c: Include pshalgo3.c.
1578
1579         * src/pshinter/Jamfile, src/pshinter/rules.mk: Updated.
1580
1581 2002-07-01  Owen Taylor  <owen@redhat.com>
1582
1583         * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points): Fix a bug
1584         where, if a glyph has more than hint mask, the second mask gets
1585         applied to points that should have been covered by the first mask.
1586
1587 2002-07-01  Keith Packard  <keithp@keithp.com>
1588
1589         * src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next):
1590         Fixing the cmap 8 and 12 parsing routines.
1591
1592 2002-07-01  David Turner  <david@freetype.org>
1593
1594         * src/base/ftsynth.c: Include FT_TRIGONOMETRY_H.
1595         (FT_Outline_Embolden): Renamed to...
1596         (FT_GlyphSlot_Embolden): This.
1597         Updated to new trigonometric functions.
1598         (FT_Outline_Oblique): Renamed to...
1599         (FT_GlyphSlot_Oblique): This.
1600         (ft_norm): Removed.
1601         * include/freetype/ftsynth.h: Updated.
1602
1603 2002-06-26  David Turner  <david@freetype.org>
1604
1605         * include/freetype/internal/ftobject.h: Updating the object
1606         sub-system definitions (still experimental).
1607
1608         * src/base/fthash.c (ft_hash_remove): Fixing a small reallocation
1609         bug.
1610
1611         * src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New
1612         functions.
1613         * include/freetype/fttrigon.h: Updated.
1614
1615
1616         Adding path stroker component (work in progress).
1617
1618         * include/freetype/ftstroker.h, src/base/ftstroker.c: New files.
1619         * src/base/Jamfile: Updated.
1620
1621         * include/freetype/config/ftheader.h (FT_STROKER_H): New macro.
1622
1623
1624         * src/truetype/ttgload.c (TT_Load_Composite_Glyph),
1625         src/base/ftoutln.c (FT_Vector_Transform): Fixed Werner's latest fix.
1626         FT_Vector_Transform wasn't buggy, the TrueType composite loader was.
1627
1628 2002-06-24  Werner Lemberg  <wl@gnu.org>
1629
1630         * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
1631
1632 2002-06-21  David Turner  <david@freetype.org>
1633
1634
1635         * Version 2.1.2 released.
1636         =========================
1637
1638
1639 2002-06-21  Roberto Alameda  <ojancano@geekmail.de>.
1640
1641         * include/freetype/internal/t42types.h (T42_Font): Removed since
1642         it is already in t42objs.h.
1643         (T42_Face): Use T1_FontRec.
1644
1645         * src/base/fttype1.c (FT_Get_PS_Font_Info): Updated.
1646         (FT_Has_PS_Glyph_Names): Check for type42 driver name also.
1647         * src/type42/t42objs.h: Include FT_INTERNAL_TYPE42_TYPES_H.
1648         (T42_Face): Removed since it is already in t42types.h.
1649
1650 2002-06-21  Detlef Würkner  <TetiSoft@apg.lahn.de>
1651
1652         * src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite
1653         glyphs.
1654
1655 2002-06-21  Sven Neumann  <sven@convergence.de>
1656
1657         * src/prf/pfrtypes.h (PFR_KernPair): New structure.
1658         (PFR_PhyFont): Use it.
1659         (PFR_KernFlags): New enumeration.
1660         * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): New
1661         function.
1662         (pfr_phy_font_extra_items): Use it.
1663         (pfr_phy_font_done): Updated.
1664         * src/pfr/pfrobjs.c (pfr_face_init): Set kerning flag conditionally.
1665         (pfr_face_get_kerning): New function.
1666         * src/pfr/pfrobjs.h: Updated.
1667         * src/pfr/pfrdrivr.c (pfr_driver_class): Updated.
1668
1669 2002-06-21  David Turner  <david@freetype.org>
1670
1671         * README, docs/CHANGES: Preparing the 2.1.2 release.
1672
1673 2002-06-19  Detlef Würkner  <TetiSoft@apg.lahn.de>
1674
1675         * src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H.
1676         (t1_face_check_cast): Removed.
1677         (FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers
1678         also.
1679
1680 2002-06-19  Sebastien BARRE  <sebastien@barre.nom.fr>
1681
1682         * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning.
1683
1684 2002-06-19  Werner Lemberg  <wl@gnu.org>
1685
1686         * src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo
1687         (xy <-> yx).
1688         * src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with
1689         `||' to make code easier to read.
1690
1691 2002-06-18  Roberto Alameda  <ojancano@geekmail.de>.
1692
1693         * src/type42/t42objs.c (t42_check_size_change): Removed.
1694         (T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size
1695         instead.
1696         (T42_GlyphSlot_Load): Remove call to t42_check_size_change.
1697
1698 2002-06-18  Detlef Würkner  <TetiSoft@apg.lahn.de>
1699
1700         * src/psaux/t1cmap.c (t1_cmap_custom_char_index,
1701         t1_cmap_custom_char_next): Fix index computation -- indices start
1702         with 0 and not with cmap->first.
1703
1704         Provide default charmaps.
1705
1706         * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
1707         (PCF_Face_Init), src/pfr/pfrobjs.c (pfr_face_init),
1708         src/type1/t1objs (T1_Face_Init), src/winfonts/winfnt.c
1709         (FNT_Face_Init): Implement it.
1710
1711 2002-06-17  Sven Neumann  <sven@gimp.org>
1712
1713         * src/pfr/pfrobjs.c (pfr_face_init): Fix typo.
1714
1715 2002-06-16  Leonard Rosenthol  <leonardr@lazerware.com>
1716
1717         Updated Win32/VC++ projects to include the new PFR driver.
1718
1719         * builds/win32/visualc/freetype.dsp: Updated.
1720
1721 2002-06-16  Anthony Fok  <fok@debian.org>
1722
1723         Install freetype2.m4.
1724
1725         * builds/unix/install.mk (install, uninstall): Handle it.
1726
1727 2002-06-16  Detlef Würkner  <TetiSoft@apg.lahn.de>
1728
1729         Same fix for PFR driver.
1730
1731         * src/pfr/pfrcmap.c (pfr_cmap_char_index, pfr_cmap_char_next):
1732         Increase return value by 1.
1733         * src/pfr/pfrobjs.c (pfr_slot_load): Decrease index by 1.
1734
1735 2002-06-15  Detlef Würkner  <TetiSoft@apg.lahn.de>
1736
1737         Fix glyph indices to make index zero always the undefined glyph.
1738
1739         * src/bdf/bdfdrivr.c (bdf_cmap_init): Don't decrease
1740         cmap->num_encodings.
1741         (bdf_cmap_char_index, bdf_cmap_char_next, BDF_Get_Char_Index):
1742         Increase result by 1 for normal cases.
1743         (BDF_Glyph_Load): Decrease index by 1.
1744
1745         * src/pcf/pcfdriver.c (pcf_cmap_char_index, pcf_cmap_char_next,
1746         PCF_Char_Get_Index): Increase result by 1 for normal cases.
1747         (PCF_Glyph_Load): Decrease index by 1.
1748         * src/pcf/pcfread.c (pcf_get_encodings): Don't decrease j for
1749         allocating `encoding'.
1750
1751         * src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix
1752         bounding tests.
1753
1754 2002-06-14  Detlef Würkner  <TetiSoft@apg.lahn.de>
1755
1756         Add new cmap support to BDF driver.
1757
1758         * src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]:
1759         New structure.
1760         (bdf_cmap_init, bdf_cmap_done, bdf_cmap_char_index,
1761         bdf_cmap_char_next) [FT_CONFIG_OPTION_USE_CMAPS]: New functions.
1762         (BDF_Get_Char_Index) [!FT_CONFIG_OPTION_USE_CMAPS]: Use only
1763         conditionally.
1764         (BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords.
1765         Implement new cmap handling.
1766         (bdf_driver_class): Updated.
1767
1768 2002-06-14  Werner Lemberg  <wl@gnu.org>
1769
1770         * Makefile, configure, */*.mk, builds/unix/unix-def.in,
1771         docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/.
1772
1773 2002-06-12  Werner Lemberg  <wl@gnu.org>
1774
1775         * src/bdf/bdflib.c: s/FT_Short/short/ for consistency.
1776
1777 2002-06-11  David Turner  <david@freetype.org>
1778
1779         * builds/win32/ftdebug.c: Added a missing #endif.
1780
1781         * src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings.
1782
1783         Removed the bug in Type 42 driver that prevented un-hinted outlines
1784         to be loaded.
1785
1786         * src/type42/t42objs.c (T42_Face_Init): Call FT_Done_Size.
1787         (T42_Size_Init): Call FT_Activate_Size.
1788         (t42_check_size_change): New function.
1789         (T42_Size_SetChars, T42_Size_SetPixels): Use it.
1790         (ft_glyphslot_clear): Replace FT_MEM_SET with FT_ZERO.
1791         (T42_GlyphSlot_Load): Use t42_check_size_change.
1792         Initialize more fields of `glyph'.
1793
1794         * builds/win32/visualc/freetype.dsp: Updated.
1795
1796 2002-06-09  David Turner  <david@freetype.org>
1797
1798
1799         * Version 2.1.1 released.
1800         =========================
1801
1802
1803 2002-06-08  Juliusz Chroboczek  <jch@pps.jussieu.fr>
1804
1805         * include/freetype/internal/ftobjs.h, src/autohint/ahglyph.c,
1806         src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/smooth/ftgrays.c: Don't
1807         use `setjmp', `longjmp', and `jmp_buf' but `ft_setjmp', `ft_longjmp',
1808         and `ft_jmp_buf'.
1809         Removed direct references to <stdio.h> and <setjmp.h> when
1810         appropriate, to eventually replace them with a
1811         FT_CONFIG_STANDARD_LIBRARY_H.  Useful for the XFree86 Font Server
1812         backend based on FT2.
1813
1814         * src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value.
1815
1816 2002-06-08  David Turner  <david@freetype.org>
1817
1818         * src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused
1819         the function to return invalid values.
1820
1821         * src/cache/ftccache.i: Removing a typo that prevented
1822         the source's compilation.
1823
1824         * src/cache/ftccache.c (ftc_node_hash_unlink): Fixed a
1825         bug that caused nasty memory overwrites.  The hash table's
1826         buckets array wasn't correctly resized when shrinked.
1827
1828 2002-06-08  Detlef Würkner  <TetiSoft@apg.lahn.de>
1829
1830         * builds/amiga/smakefile, builds/amiga/makefile: Updated.
1831
1832 2002-06-08  Werner Lemberg  <wl@gnu.org>
1833
1834         * src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link)
1835         [FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code.
1836         Fix debugging messages.
1837         * src/cache/ftccache.i (GEN_CACHE_LOOKUP): Move declaration of
1838         `family' and `hash' up to make it compilable with g++.
1839
1840         * src/type42/t42error.h: New file.
1841         * src/type42/t42drivr.c, src/type42/t42objs.c,
1842         src/type42/t42parse.c: Use t42 error codes.
1843         * src/type42/rules.mk: Updated.
1844
1845         * src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.
1846
1847 2002-06-08  David Turner  <david@freetype.org>
1848
1849         * src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE,
1850         GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
1851         New macros.
1852         (ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
1853         ftc_cache_lookup.
1854         (FTC_CMapCache_Lookup): Updated.
1855
1856         Adding various experimental optimizations to the cache manager.
1857
1858         * include/freetype/cache/ftccache.h (FTC_CACHE_USE_INLINE,
1859         FTC_CACHE_USE_LINEAR_HASHING): New options.
1860         (FTC_CacheRec) [FTC_CACHE_USE_LINEAR_HASHING]: New elements `p',
1861         `mask', and `slack'.
1862
1863         * src/cache/ftccache.c (FTC_HASH_MAX_LOAD, FTC_HASH_MIN_LOAD,
1864         FTC_HASH_SUB_LOAD) [FTC_CACHE_USE_LINEAR_HASHING,
1865         FTC_HASH_INITIAL_SIZE]: New macros.
1866         (ftc_node_mru_link, ftc_node_mru_up): Optimized.
1867         (ftc_node_hash_unlink, ftc_node_hash_link)
1868         [FTC_CACHE_USE_LINEAR_HASHING]: New variants.
1869         (FTC_PRIMES_MIN, FTC_PRIMES_MAX, ftc_primes, ftc_prime_closest,
1870         FTC_CACHE_RESIZE_TEST, ftc_cache_resize)
1871         [!FTC_CACHE_USE_LINEAR_HASHING]: Define it conditionally.
1872         (ftc_cache_init, ftc_cache_clear) [FTC_CACHE_USE_LINEAR_HASHING]:
1873         Updated.
1874         (ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it.
1875
1876         * src/cache/ftccache.i: New file.
1877
1878         * src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE,
1879         GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
1880         New macros.
1881         (ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
1882         ftc_cache_lookup.
1883         (FTC_SBitCache_Lookup): Updated.
1884
1885         * src/type42/t42parse.c: Removing duplicate function.
1886
1887 2002-06-07  Graham Asher  <graham.asher@btinternet.com>
1888
1889         * src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition
1890         from FT_EXPORT_DEF to FT_BASE_DEF.
1891
1892 2002-06-07  David Turner  <david@freetype.org>
1893
1894         Fixed the bug that prevented the correct display of fonts with
1895         "ftview".
1896
1897         * src/type42/t42drivr.c: Split into...
1898         * src/type42/t42drivr.h, src/type42/t42parse.c,
1899         src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c,
1900         src/type42/type42.c: New files.
1901
1902         (t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use
1903         `face->type1'.
1904
1905         (Get_Interface): Renamed to...
1906         (T42_Get_Interface): This.
1907         Updated.
1908         (T42_Open_Face, T42_Face_Done): Updated.
1909         (T42_Face_Init): Add new cmap support.
1910         Updated.
1911         (T42_Driver_Init, T42_Driver_Done, T42_Size_Init, T42_Size_Done,
1912         T42_GlyphSlot_Init, T42_GlyphSlot_Done): Updated.
1913         (Get_Char_Index, Get_Next_Char): Renamed to...
1914         (T42_CMap_CharIndex, T42_CMap_CharNext): This.
1915         Updated.
1916         (T42_Char_Size, T42_Pixel_Size): Renamed to...
1917         (T42_Size_SetChars, T42_Size_SetPixels): This.
1918         (T42_Load_Glyph): Renamed to...
1919         (T42_GlyphSlot_Load): This.
1920
1921         (t42_init_loader, t42_done_loader): Renamed to...
1922         (t42_loader_init, t42_loader_done): This.
1923         (T42_New_Parser, T42_Finalize_Parser): Renamed to...
1924         (t42_parser_init, t42_parser_done): This.
1925         (parse_dict): Renamed to...
1926         (t42_parse_dict): This.
1927         (is_alpha, is_space, hexval): Renamed to...
1928         (t42_is_alpha, t42_is_space, t42_hexval): This.
1929         (parse_font_name, parse_font_bbox, parse_font_matrix,
1930         parse_encoding, parse_sfnts, parse_charstrings, parse_dict):
1931         Renamed to...
1932         (t42_parse_font_name, t42_parse_font_bbox, t42_parse_font_matrix,
1933         t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings,
1934         t42_parse_dict): This.
1935         Updated.
1936
1937         (t42_keywords): Updated.
1938
1939         * src/type42/Jamfile, src/type42/descrip.mms: Updated.
1940
1941 2002-06-03  Werner Lemberg  <wl@gnu.org>
1942
1943         Add 8bpp support to BDF driver.
1944
1945         * src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp.
1946         * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto.
1947         * src/bdf/README: Updated.
1948
1949 2002-06-02  Detlef Würkner  <TetiSoft@apg.lahn.de>
1950
1951         * src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array.
1952
1953 2002-05-29  Detlef Würkner  <TetiSoft@apg.lahn.de>
1954
1955         * src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically.
1956         (_bdf_parse_glyphs): Use correct size for allocating
1957         `font->unencoded'.
1958         (bdf_load_font): Free array conditionally.
1959         Return proper error code in case of failure.
1960         * src/bdf/bdfdrivr.c (BDF_Face_Init): Make it more robust against
1961         unusual fonts.
1962
1963 2002-05-29  Werner Lemberg  <wl@gnu.org>
1964
1965         * src/bdf/descrip.mms, src/type42/descrip.mms: New files.
1966         * descrip.mms (all): Updated.
1967
1968         * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
1969         compilation.
1970         * src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.
1971
1972 2002-05-28  Detlef Würkner  <TetiSoft@apg.lahn.de>
1973
1974         * builds/amiga/makefile, builds/amiga/smakefile,
1975         amiga/include/freetype/config/ftmodule.h: Updated to include
1976         support for BDF and Type42 drivers.
1977
1978         * docs/modules.txt: Updated.
1979
1980 2005-05-28  David Turner  <david@freetype.org>
1981
1982         * docs/CHANGES: Updating file for next release (2.1.1).
1983
1984         * src/bdf/bdflib.c: Removing compiler warnings.
1985
1986         * include/freetype/ftxf86.h, src/base/ftxf86.c: New files.
1987         They provide a new API (FT_Get_X11_Font_Format) to retrieve an
1988         X11-compatible string describing the font format of a given face.
1989         This was put in a new optional base source file, corresponding to a
1990         new public header (named FT_XFREE86_H since this function should
1991         only be used within the XFree86 font server IMO).
1992
1993         * include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not
1994         documented yet).
1995
1996         * src/base/fttype1.c: New file, provoding two new API functions
1997         (FT_Get_PS_Font_Info and FT_Has_PS_Glyph_Names).
1998         * include/freetype/t1tables.h: Updated.
1999
2000         * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms:
2001         Updating build control files for the new files "ftxf86.c" and
2002         "fttype1.c" in src/base.
2003
2004         * src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that
2005         prevented family blue zones substitution from hapenning correctly.
2006
2007         * include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding
2008         documentation comment.
2009
2010 2002-05-28  Werner Lemberg  <wl@gnu.org>
2011
2012         * src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT
2013         but FT_STREAM_READ.
2014         Declare `stream' variable.
2015
2016         * src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math
2017         with calls to `FT_MulDiv'.
2018
2019 2002-05-28  David Turner  <david@freetype.org>
2020
2021         Fixing the SFNT name table loader to support various buggy fonts.
2022         It now ignores empty name entries, entries with invalid pointer
2023         Offsets and certain fonts containing tables with broken
2024         "storageOffset" fields.
2025
2026         Name strings are now loaded on demand, which reduces the memory
2027         requirements for a given FT_Face tremendously (for example, the name
2028         table of Arial.ttf is about 10Kb and contains 70 names).
2029
2030         This is a temporary fix.  The whole name table loader and interface
2031         will be rewritten in a much more cleanly way shortly, once CSEH have
2032         been introduced in the sources.
2033
2034         * include/freetype/internal/tttypes.h (TT_NameEntryRec): Change
2035         type of `stringOffset' to FT_ULong.
2036         (TT_NameTableRec): Change type of `numNameRecords' and
2037         `storageOffset' to FT_UInt.
2038         Replace `storage' with `stream'.
2039         * src/base/ftnames.c (FT_Get_Sfnt_Name): Load name on demand.
2040         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
2041         Make code more robust.
2042         * src/sfnt/sfobjs.c (TT_NameEntry_ConvertFunc): New typedef.
2043         (tt_face_get_name): Use it.
2044         Make code more robust.
2045         * src/sfnt/ttload.c (TT_Load_Names): Use `static' for arrays.
2046         Handle invalid `storageOffset' data better.
2047         Set length fields to zero for invalid or ignored data.
2048         Remove code within FT_DEBUG_LEVEL_TRACE.
2049         (TT_Free_Names): Updated.
2050
2051 2002-05-24  Tim Mooney  <enchanter@users.sourceforge.net>
2052
2053         * builds/unix/ft-munmap.m4: New file, extracted FT_MUNMAP_DECL and
2054         FT_MUNMAP_PARAM from aclocal.m4 into here, so aclocal.m4 can be
2055         rebuilt from sources.  Set macro serial to 1, and use third argument
2056         to AC_DEFINE for our two custom symbols, so ftconfig.in could one day
2057         be rebuilt with autoheader (not recommended now, ftconfig.in is a
2058         custom source file)
2059
2060 2002-05-22  Werner Lemberg  <wl@gnu.org>
2061
2062         * include/freetype/config/ftheader.h (FT_BEZIER_H): Removed.
2063         (FT_BDF_H): New macro for accessing `ftbdf.h'.
2064
2065         * src/type42/t42drivr.c (hexval): Fix typo.
2066
2067 2002-05-21  Martin Muskens  <mmuskens@aurelon.com>
2068
2069         * src/psaux/psobjs.c (T1Radix): New function.
2070         (t1_toint): Use it to handle numbers in radix format.
2071
2072         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy
2073         for undocumented, obsolete opcode 15.
2074
2075 2002-05-21  David Turner  <david@freetype.org>
2076
2077         * src/bdf/bdflib.c: Removed compiler warning, and changed all tables
2078         to the "static const" storage specifier (instead of simply
2079         `static').
2080
2081         * src/type42/t42drivr.c (hexval): Use more efficient code.
2082         Removing compiler warnings.
2083         * src/bdf/bdfdrivr.c: Removing compiler warnings.
2084
2085         * include/freetype/internal/ftbdf.h, src/base/ftbdf.c,
2086         src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk
2087         (FT_Get_BDF_Charset_ID): New API to retrieve BDF-specific strings
2088         from a face.  This is much cleaner than accessing the internal types
2089         "BDF_Public_Face" defined in FT_INTERNAL_BDF_TYPES_H.
2090
2091 2002-05-21  Werner Lemberg  <wl@gnu.org>
2092
2093         * src/bdf/README: Mention Microsoft's SBIT tool.
2094
2095         * src/cff/cffdrivr.c, src/cid/cidriver.c, src/pcf/pcfdriver.c,
2096         src/truetype/ttdriver.c, src/type1/t1driver.c,
2097         src/winfonts/winfnt.c, src/type42/t42drivr.c, src/bdf/bdfdrivr.c
2098         [FT_CONFIG_OPTION_DYNAMIC_DRIVERS]: Completely removed.  It has
2099         been never used.
2100
2101 2002-05-21  Roberto Alameda  <ojancano@geekmail.de>.
2102
2103         * src/type42/t42drivr.c: s/T42_ENCODING_TYPE_/T1_ENCODING_TYPE_/.
2104         (parse_font_matrix): Remove unnecessary code.
2105         (parse_sfnts): Initialize some variables.
2106         (t42_driver_class) [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Use
2107         ft_module_driver_has_hinter conditionally.
2108         Moved some type 42 specific structure definitions to...
2109         * include/freetype/internal/t42types.h: New file.
2110         * include/freetype/internal/internal.h (FT_INTERNAL_T42_TYPES_H):
2111         New macro.
2112
2113 2002-05-20  Werner Lemberg  <wl@gnu.org>
2114
2115         * include/freetype/cache/ftcsbits.h (FTC_SBit): Added a new field
2116         `num_grays' for specifying the number of used gray levels.
2117         * src/cache/ftcsbits.c (ftc_sbit_node_load): Initialize it.
2118
2119 2002-05-19  Werner Lemberg  <wl@gnu.org>
2120
2121         Adding a driver for BDF fonts written by Francesco Zappa Nardelli
2122         <Francesco.Zappa.Nardelli@ens.fr>.  Heavily modified by me to
2123         better adapt it to FreeType, removing unneeded stuff.  Additionally,
2124         it now supports Mark Leisher's BDF extension for anti-aliased
2125         bitmap glyphs with 2 and 4 bpp.
2126
2127         * src/bdf/*: New driver.
2128         * include/freetype/internal/bdftypes.h: New file.
2129         * include/freetype/internal/fttrace.h: Added BDF driver components.
2130         * include/freetype/fterrdef.h: Added error codes for BDF driver.
2131         * include/freetype/config/ftmodule.h, src/Jamfile: Updated.
2132         * include/freetype/internal/internal.h (FT_INTERNAL_BDF_TYPES_H):
2133         New macro.
2134
2135         * include/freetype/config/ftstdlib.h (ft_sprintf): New alias for
2136         sprintf.
2137
2138 2002-05-18  Werner Lemberg  <wl@gnu.org>
2139
2140         * include/freetype/internal/fttrace.h: Added Type 42 driver
2141         component.
2142         * src/type42/t42drivr.c: Use it.
2143
2144         * include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H):
2145         New macro.
2146
2147 2002-05-17  Werner Lemberg  <wl@gnu.org>
2148
2149         * src/type42/Jamfile: New file.
2150
2151 2002-05-14  Werner Lemberg  <wl@gnu.org>
2152
2153         Adding a driver for Type42 fonts written by Roberto Alameda
2154         <ojancano@geekmail.de>.
2155
2156         * src/type42/*: New driver.
2157         * include/freetype/config/ftmodule.h, src/Jamfile: Updated.
2158         * include/freetype/config/ftstdlib.h (ft_xdigit, ft_memcmp,
2159         ft_atoi): New aliases for xdigit, memcmp, and atoi, respectively.
2160
2161 2002-05-12  Owen Taylor  <otaylor@redhat.com>
2162
2163         * src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables
2164         with a zero length value.
2165
2166 2002-05-12  Michael Pfeiffer  <michael.pfeiffer@utanet.at>
2167
2168         * builds/beos/beos.mk: Include `link-std.mk'.
2169
2170 2002-05-12  Werner Lemberg  <wl@gnu.org>
2171
2172         * src/type1/t1load.h (T1_Loader): Renamed to...
2173         (T1_LoaderRec): This.
2174         (T1_Loader): Now pointer to T1_LoaderRec.
2175         * src/type1/t1load.c: Updated.
2176
2177         * include/freetype/internal/t1types.h, src/type1/t1load.c,
2178         src/type1/t1objs.c:
2179         s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
2180
2181 2002-05-06  Werner Lemberg  <wl@gnu.org>
2182
2183         * README: Add a note regarding libttf vs. libfreetype.
2184
2185 2002-05-05  Werner Lemberg  <wl@gnu.org>
2186
2187         FreeType 2 can now be built in an external directory with the
2188         configure script also.
2189
2190         * builds/freetype.mk (INCLUDES): Add `OBJ_DIR'.
2191
2192         * builds/unix/detect.mk (have_mk): New variable to test for
2193         external build.
2194         (unix-def.mk): Defined according to value of `have_mk'.
2195         * builds/unix/unix.mk (have_mk): New variable to test for
2196         external build.
2197         Select include paths for unix-def.mk and unix-cc.mk according
2198         to value of `have_mk'.
2199         * builds/unix/unix-def.in (OBJ_BUILD): New variable.
2200         (DISTCLEAN): Use it.
2201         * builds/unix/unix-cc.in (LIBTOOL): Define default value only
2202         if not yet defined.
2203         * builds/unix/install.mk (install): Use `OBJ_BUILD' for installing
2204         freetype-config.
2205
2206         * configure: Don't depend on bash features.
2207         (ft2_dir, abs_curr_dir, abs_ft2_dir): New variables (code
2208         partially taken from Autoconf).
2209         Build a dummy Makefile if not building in source tree.
2210
2211         * docs/INSTALL: Document it.
2212
2213 2002-05-04  David Turner  <david@freetype.org>
2214
2215         * src/truetype/ttgload.c (TT_Load_Glyph): Finally fixing the last
2216         bug that prevented FreeType 2.x and FreeType 1.x to produce
2217         bit-by-bit identical monochrome glyph bitmaps with native TrueType
2218         hinting.  The culprit was a single-bit flag that wasn't set
2219         correctly by the TrueType glyph loader.
2220
2221         * src/otlayout/otlayout.h, src/otlayout/otlbase.c,
2222         src/otlayout/otlbase.h, src/otlayout/otlconf.h,
2223         src/otlayout/otlgdef.c, src/otlayout/otlgdef.h,
2224         src/otlayout/otlgpos.c, src/otlayout/otlgpos.h,
2225         src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
2226         src/otlayout/otljstf.c, src/otlayout/otljstf.h,
2227         src/otlayout/otltable.c, src/otlayout/otltable.h,
2228         src/otlayout/otltags.h: New OpenType Layout source files.  The
2229         module is still incomplete.
2230
2231 2002-05-02  Werner Lemberg  <wl@gnu.org>
2232
2233         * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo
2234         (0xFFFU -> 0xFFFFU).
2235
2236 2002-05-01  Werner Lemberg  <wl@gnu.org>
2237
2238         * docs/INSTALL: Fix URL of makepp.
2239
2240 2002-05-01  David Turner  <david@freetype.org>
2241
2242         * src/sfnt/sfobjs.c (tt_face_get_name): Fixing a bug that caused
2243         FreeType to crash when certain broken fonts (e.g. "hya6gb.ttf")
2244         were opened.
2245
2246         * src/sfnt/ttload.c (TT_Load_Names): Applied a small work-around to
2247         manage fonts containing a broken name table (e.g. "hya6gb.ttf").
2248
2249         * src/sfnt/ttcmap0.c (tt_cmap4_validate): Fixed over-restrictive
2250         validation test.  The charmap validator now accepts overlapping
2251         ranges in format 4 charmaps.
2252
2253         * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary
2254         search algorithm.  Certain fonts contain more than 170 distinct
2255         segments!
2256
2257         * include/freetype/config/ftstdlib.h: Adding an alias for the `exit'
2258         function.  This will be used in the near future to panic in case of
2259         unexpected exception (which shouldn't happen in theory).
2260
2261         * include/freetype/internal/fthash.h, src/base/fthash.c: New files.
2262         This is generic implementation of dynamic hash tables using a linear
2263         algorithm (to get rid of `stalls' during resizes).  In the future
2264         this will be used in at least three parts of the library: the cache
2265         sub-system, the object sub-system, and the memory debugger.
2266
2267         * src/base/Jamfile: Updated.
2268
2269         * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H,
2270         FT_INTERNAL_OBJECT_H): New macros.
2271
2272         * include/freetype/internal/ftcore.h: New file to group all new
2273         definitions related to exception handling and memory management.  It
2274         is very likely that this file will disappear or be renamed in the
2275         future.
2276
2277         * include/freetype/internal/ftobject.h, include/freetype/ftsysmem.h:
2278         Adding comments to better explain the object sub-system as well as
2279         the new memory manager interface.
2280
2281 2002-04-30  Wenlin Institute (Tom Bishop)  <wenlin@wenlin.com>
2282
2283         * src/base/ftmac.c (p2c_str): Removed.
2284         (file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for
2285         OS X.
2286         (is_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X.
2287         Handle `nameLen' <= 6 also.
2288         (parse_fond): Remove unused variable `name_table'.
2289         Use functionality of old p2c_str directly.
2290         Add safety checks.
2291         (read_lwfn): Initialize `size_p'.
2292         Check for size_p == NULL.
2293         (new_memory_stream, open_face_from_buffer): Updated to FreeType 2.1.
2294         (FT_New_Face_From_LWFN): Remove unused variable `memory'.
2295         Remove some dead code.
2296         (FT_New_Face_From_SFNT): Remove unused variable `stream'.
2297         (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Define only for
2298         OS X.
2299         (FT_New_Face_From_FOND): Remove unused variable `error'.
2300         (ResourceForkSize): New function.
2301         (FT_New_Face): Use it.
2302         Handle empty resource forks.
2303         Conditionalize some code for OS X.
2304         Add code to call normal loader as a fallback.
2305
2306 2002-04-30  Werner Lemberg  <wl@gnu.org>
2307
2308         `interface' is reserved on the Mac.
2309
2310         * include/freetype/ftoutln.h, include/freetype/internal/sfnt.h,
2311         src/base/ftoutln.c: s/interface/func_interface/.
2312         * src/base/ftbbox.c (FT_Outline_Get_BBox):
2313         s/interface/bbox_interface/.
2314         * src/cff/cffdrivr.c: s/interface/module_interface/.
2315         * src/cff/cffload.c, src/cff/cffload.h:
2316         s/interface/psnames_interface/.
2317         * src/cid/cidriver.c: s/interface/cid_interface/.
2318         * src/sfnt/sfdriver.c: s/interface/module_interface/.
2319         * src/smooth/ftgrays.c: s/interface/func_interface/.
2320         * src/truetype/ttdriver.c: s/interface/tt_interface/.
2321         * src/type1/t1driver.c: s/interface/t1_interface/.
2322
2323         Some more variable renames to avoid troubles on the Mac.
2324
2325         * src/raster/ftraster.c:
2326         s/Unknown|Ascending|Descending|Flat/\1_State/.
2327         * src/smooth/ftgrays.c: s/TScan/TCoord/.
2328
2329         Other changes for the Mac.
2330
2331         * include/freetype/config/ftconfig.h: Define FT_MACINTOSH for
2332         Mac platforms.
2333         * src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/.
2334
2335         * src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always
2336         an even number.
2337
2338 2002-04-29  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
2339
2340         * descrip.mms (all): Add pfr driver.
2341
2342 2002-04-28  Werner Lemberg  <wl@gnu.org>
2343
2344         * src/pfr/pfrerror.h: New file.
2345         * include/freetype/ftmoderr.h: Add PFR error codes.
2346         * src/pfr/pfrgload.c: Include pfrerror.h.
2347         Use PCF error codes.
2348         (pfr_extra_item_load_stem_snaps): Fix debug message.
2349         * src/pfr/pfrgload.c: Include pfrerror.h.
2350         Use PCF error codes.
2351         (pfr_extra_item_load_bitmap_info, pfr_glyph_load_simple,
2352         pfr_glyph_load_compound): Fix debug message.
2353         * src/pfr/pfrobjs.c: Include pfrerror.h.
2354         Use PCF error codes.
2355         (pfr_face_init): Return PFR_Err_Unknown_File_Format.
2356         * src/pfr/rules.mk (PFR_DRV_H): Include pfrerror.h.
2357
2358         * src/pcf/pcfdriver.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_CMAPS]:
2359         `root' -> `face->root'.
2360         * src/sfnt/ttcmap0.c (TT_Build_CMaps) [!FT_CONFIG_OPTION_USE_CMAPS]:
2361         Removed.
2362         * src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for
2363         FT_CONFIG_OPTION_USE_CMAPS.
2364
2365 2002-04-27  Werner Lemberg  <wl@gnu.org>
2366
2367         * src/cache/ftccache.c (ftc_cache_lookup),
2368         src/cache/ftccmap.c (ftc_cmap_family_init),
2369         src/cache/ftcmanag.c (ftc_family_table_alloc),
2370         src/cache/ftcsbits.c (FTC_SBit_Cache_Lookup): Use FTC_Err_*.
2371         src/cache/ftcimage.c (FTC_Image_Cache_Lookup): Use FTC_Err_*.
2372         (FTC_ImageCache_Lookup): Fix handling of invalid arguments.
2373
2374 2002-04-22  Werner Lemberg  <wl@gnu.org>
2375
2376         * builds/unix/configure.ac: Set `version_info' to 9:1:3 (FT2
2377         version 2.0.9 has 9:0:3).
2378         * builds/unix/configure: Regenerated (using autoconf 2.53).
2379
2380 2002-04-19  Werner Lemberg  <wl@gnu.org>
2381
2382         * src/pfr/pfrload.c (pfr_extra_items_farse): Fix debug message.
2383         (pfr_phy_font_load): s/size/Size/ for local variable to avoid
2384         compiler warning.
2385         * src/pfr/pfrobjs.c (pfr_face_init): Fix debug message.
2386         (pfr_slot_load): Remove redundant local variable.
2387
2388 2002-04-19  David Turner  <david@freetype.org>
2389
2390         Adding a PFR font driver to the FreeType sources.  Note that it
2391         doesn't support embedded bitmaps or kerning tables yet.
2392
2393         src/pfr/*: New files.
2394
2395         * include/freetype/config/ftmodule.h,
2396         include/freetype/internal/fttrace.h, src/Jamefile: Updated.
2397
2398         * src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c
2399         (T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback
2400         function.
2401
2402         * include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New
2403         macros.
2404
2405         * include/freetype/internal/ftstream.h (FT_NEXT_OFF3, FT_NEXT_UOFF3,
2406         FT_NEXT_OFF3_LE, FT_NEXT_UOFF3_LE): New macros to parse in-memory
2407         24-bit integers.
2408
2409 2002-04-18  David Turner  <david@freetype.org>
2410
2411         * src/base/ftobjs.c, builds/win32/ftdebug.c,
2412         builds/amiga/src/base/ftdebug.c: Version 2.1.0 couldn't be linked
2413         against applications in Win32 and Amiga builds due to changes to
2414         "src/base/ftdebug.c" that were not properly propagated to
2415         "builds/win32" and "builds/amiga".  This has been fixed.
2416
2417         * include/freetype/internal/ftobject.h,
2418         include/freetype/internal/ftexcept.h, include/freetype/ftsysmem.h,
2419         include/freetype/ftsysio.h, src/base/ftsysmem.c, src/base/ftsysio.c:
2420         New experimental files.
2421
2422 2002-04-17  David Turner  <david@freetype.org>
2423
2424
2425         * Version 2.1.0 released.
2426         =========================
2427
2428
2429 2002-04-17  Michael Jansson  <mjan@em2-solutions.com>
2430
2431         * src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug
2432         that prevented the function to return the correct value.
2433
2434 2002-04-16  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
2435
2436         * src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator
2437         tables.
2438
2439 2002-04-15  David Turner  <david@freetype.org>
2440
2441         * docs/FTL.txt: Formatting.
2442
2443         * include/freetype/config/ftoption.h: Reduce the size of the
2444         render pool from 32kByte to 16kByte.
2445
2446         * src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler
2447         warning.
2448
2449         * include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed.
2450
2451         * docs/CHANGES: Preparing 2.1.0 release.
2452
2453 2002-04-13  Werner LEMBERG  <wl@gnu.org>
2454
2455         * src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid
2456         compiler warning.
2457
2458 2002-04-12  David Turner  <david@freetype.org>
2459
2460         * README.UNX: Updated the Unix-specific quick-compilation guide to
2461         warn about the GNU Make requirement at compile time.
2462
2463         * include/freetype/config/ftstdlib.h,
2464         include/freetype/config/ftconfig.h,
2465         include/freetype/config/ftheader.h,
2466         include/freetype/internal/ftmemory.h,
2467         include/freetype/internal/ftobjs.h,
2468
2469         src/autohint/ahoptim.c,
2470
2471         src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c,
2472         src/base/ftobjs.c, src/base/ftsystem.c,
2473
2474         src/cache/ftcimage.c, src/cache/ftcsbits.c,
2475
2476         src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c,
2477
2478         src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
2479
2480         src/pcf/pcfdriver.c, src/pcf/pcfread.c,
2481
2482         src/psaux/t1cmap.c, src/psaux/t1decode.c,
2483
2484         src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
2485         src/pshinter/pshrec.c,
2486
2487         src/psnames/psmodule.c,
2488
2489         src/raster/ftraster.c,
2490
2491         src/sfnt/sfdriver.c, src/sfnt/ttload.c,
2492
2493         src/smooth/ftgrays.c,
2494
2495         src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c,
2496         src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c,
2497
2498         builds/unix/ftconfig.in, builds/vms/ftconfig.h,
2499
2500         builds/amiga/src/base/ftdebug.c:
2501
2502         Added the new configuration file "ftstdlib.h" used to define
2503         aliases for all ISO C library functions used by the engine
2504         (e.g. strlen, qsort, setjmp, etc.).
2505
2506         This eases the porting of FreeType 2 to environments like
2507         XFree86 modules/extensions.
2508
2509         Also removed many #include <string.h>, #include <stdlib.h>, etc.
2510         from the engine's sources where they are not needed.
2511
2512         * src/sfnt/ttpost.c: Use macro name for psnames.h.
2513
2514 2002-04-12  Vincent Caron  <v.caron@zerodeux.net>
2515
2516         * configure, builds/detect.mk: Updated the build system to print
2517         a warning message in case GNU Make isn't used to build the library.
2518
2519 2002-04-11  David Turner  <david@freetype.org>
2520
2521         * README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release.
2522
2523         * docs/FTL.txt: Updated license text to provide a preferred
2524         disclaimer and adjust copyright dates/extents.
2525
2526         * include/freetype/cache/ftcglyph.h: Removing obsolete (and
2527         confusing) comment.
2528
2529         * Jamfile.in: New file.
2530
2531 2002-04-11  Maxim Shemanarev  <mcseemagg@yahoo.com>
2532
2533         * src/smooth/ftgrays.c (gray_hline): Minor optimization.
2534
2535 2002-04-02  Werner Lemberg  <wl@gnu.org>
2536
2537         Fixes from the stable branch:
2538
2539         * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
2540         Removed.
2541         [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
2542         * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
2543         [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
2544
2545         * src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
2546         output of FreeType 1.
2547
2548         * src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
2549         bug that created un-even stem widths when hinting Postscript fonts.
2550
2551         * src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes.
2552
2553 2002-04-01  Werner Lemberg  <wl@gnu.org>
2554
2555         * src/truetype/ttgload.c: 16bit fixes.
2556         (TT_Load_Simple_Glyph): Improve debug messages.
2557         (load_truetype_glyph): Remove dead code.
2558         * src/truetype/ttinterp.c: 16bit fixes.
2559         * src/truetype/ttobjs.c: Ditto.
2560
2561         * include/freetype/ftsnames.h, include/freetype/internal/sfnt.h,
2562         src/cff/cffload.h, src/psaux/psobjs.h, src/truetype/ttinterp.[ch],
2563         src/sfnt/ttpost.h: s/index/idx/.
2564
2565 2002-03-31  Yao Zhang  <yaoz@vidar.niaaa.nih.gov>
2566
2567         * src/truetype/ttobjs.c (TT_Size_Init): Fix typo.
2568
2569 2002-03-31  Werner Lemberg  <wl@gnu.org>
2570
2571         * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/.
2572         * src/psaux/t1cmap.c: Ditto.
2573         * src/sfnt/ttcmap0.c: Ditto.
2574
2575         * include/freetype/internal/tttypes.h,
2576         include/freetype/internal/sfnt.h (TT_Goto_Table_Func): Renamed to ...
2577         (TT_Loader_GotoTableFunc): This.
2578         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix debug
2579         messages.
2580         * src/psnames/psmodule.c (psnames_interface)
2581         [!FT_CONFIG_OPTION_ADOBE_GLYPH_LIST]: Fix typo.
2582         * src/sfnt/sfdriver.c (get_sfnt_table): 16bit fix.
2583         * src/sfnt/ttcmap.c: 16bit fixes (0xFFFF -> 0xFFFFU).
2584         * src/sfnt/ttcmap0.c: 16bit fixes.
2585         (TT_Build_CMaps): Simplify debug messages.
2586         (tt_cmap12_char_next): Fix offset.
2587         * src/sfnt/ttload.c (TT_Load_Names, TT_Load_CMap): Fix debug
2588         messages.
2589         (TT_Load_OS2): 16bit fix.
2590
2591 2002-03-30  David Turner  <david@freetype.org>
2592
2593         * include/freetype/internal/tttypes.h: Adding comments to some of
2594         the TT_FaceRec fields.
2595
2596         * src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings.
2597
2598         * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}:
2599         New functions.
2600         (tt_face_get_name): Use them to properly extract an ascii font name.
2601
2602 2002-03-30  Werner Lemberg  <wl@gnu.org>
2603
2604         * include/freetype/t1tables.h (t1_blend_max): Fix typo.
2605         * src/base/ftstream.c: Simplify FT_ERROR calls.
2606         * src/cff/cffdrivr.c (cff_get_glyph_name): Fix debug message.
2607
2608         * src/cff/cffobjs.c (CFF_Driver_Init, CFF_Driver_Done)
2609         [TT_CONFIG_OPTION_EXTEND_ENGINE]: Removed.
2610         * src/cff/sfobjs.c (SFNT_Load_Face)
2611         [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
2612         * src/truetype/ttobjs.c (TT_Init_Driver, TT_Done_Driver)
2613         [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
2614
2615         * src/truetype/ttdriver.c, src/truetype/ttobjs.c,
2616         src/truetype/ttobjs.h: Renaming driver functions to the
2617         FT_<Subject>_<Action> scheme:
2618
2619           TT_Init_Driver => TT_Driver_Init
2620           TT_Done_Driver => TT_Driver_Done
2621           TT_Init_Face   => TT_Face_Init
2622           TT_Done_Face   => TT_Face_Done
2623           TT_Init_Size   => TT_Size_Init
2624           TT_Done_Size   => TT_Size_Done
2625           TT_Reset_Size  => TT_Size_Reset
2626
2627 2002-03-29  Werner Lemberg  <wl@gnu.org>
2628
2629         * builds/vms/ftconfig.h: Rename LOCAL_DEF and LOCAL_FUNC to
2630         FT_LOCAL and FT_LOCAL_DEF, respectively, as with other ftconfig.h
2631         files.
2632         * builds/unix/ftconfig.in: Add argument to FT_LOCAL and
2633         FT_LOCAL_DEF.
2634         * src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/.
2635         * builds/unix/configure.ac: Temporarily deactivate creation of
2636         ../../Jamfile.
2637         * builds/unix/configure: Updated.
2638
2639 2002-03-28  KUSANO Takayuki  <AE5T-KSN@asahi-net.or.jp>
2640
2641         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos.
2642
2643 2002-03-28  Werner Lemberg  <wl@gnu.org>
2644
2645         * include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix
2646         compiler warnings.
2647         * include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for
2648         some members.
2649         * src/base/ftapi.c (FT_New_Memory_Stream): Fix typos.
2650         * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Add
2651         cast.
2652         (t1_cmap_{standard,expert,custom,unicode}_class_rec): Use
2653         `FT_CALLBACK_TABLE_DEF'.
2654         * src/psaux/t1cmap.h: Updated.
2655         * src/sfnt/ttcmap0.c (TT_Build_CMaps): Use `ft_encoding_none'
2656         instead of zero.
2657         * src/type1/t1objs.c (T1_Face_Init): Use casts.
2658
2659 2002-03-26  David Turner  <david@freetype.org>
2660
2661         * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c:
2662         Fixed a small bug in the FT_CMaps support code.
2663
2664 2002-03-25  David Turner  <david@freetype.org>
2665
2666         * src/truetype/ttinterp.c (Norm): Replaced with...
2667         (TT_VecLen): This.
2668         (TT_MulFix14, TT_DotFix14): New functions.
2669         (Project, Dual_Project, Free_Project, Compute_Point_Displacement,
2670         Ins_SHPIX, Ins_MIAP, Ins_MIRP): Use them.
2671         [FT_CONFIG_OPTION_OLD_CALCS]: Removed all code.
2672
2673 2002-03-22  David Turner  <david@freetype.org>
2674
2675         * src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c:
2676         Various fixes to make the FT_CMaps support work correctly (more
2677         tests are still needed).
2678
2679         * include/freetype/internal/ftobjs.h, src/sfnt/Jamfile,
2680         src/sfnt/rules.mk, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
2681         src/sfnt/ttload.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Updated
2682         the SFNT charmap support to use FT_CMaps.
2683
2684         * include/freetype/fterrdef.h: New file.
2685         * include/freetype/fterrors.h: Include it.  It contains all error
2686         codes.
2687         * include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New
2688         macro.
2689
2690         * include/freetype/internal/ftmemory.h, and a lot of other files:
2691         Changed the names of memory macros.  Examples:
2692
2693           MEM_Set   => FT_MEM_SET
2694           MEM_Copy  => FT_MEM_COPY
2695           MEM_Move  => FT_MEM_MOVE
2696
2697           ALLOC     => FT_ALLOC
2698           FREE      => FT_FREE
2699           REALLOC   = >FT_REALLOC
2700
2701         FT_NEW was introduced to allocate a new object from a _typed_
2702         pointer.
2703
2704         Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by
2705         FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer
2706         arguments.
2707
2708         This results in _lots_ of sources being changed, but makes the code
2709         more generic and less error-prone.
2710
2711         * include/freetype/internal/ftstream.h, src/base/ftstream.c,
2712         src/cff/cffload.c, src/pcf/pcfread.c, src/sfnt/ttcmap.c,
2713         src/sfnt/ttcmap0.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
2714         src/sfnt/ttsbit.c, src/truetype/ttgload.c, src/truetype/ttpload.c,
2715         src/winfonts/winfnt.c: Changed the definitions of stream macros.
2716         Examples:
2717
2718           NEXT_Byte     => FT_NEXT_BYTE
2719           NEXT_Short    => FT_NEXT_SHORT
2720           NEXT_UShortLE => FT_NEXT_USHORT_LE
2721           READ_Short    => FT_READ_SHORT
2722           GET_Long      => FT_GET_LONG
2723           etc.
2724
2725         Also introduced the FT_PEEK_XXXX functions.
2726
2727         * src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented
2728         out function.
2729         (find_encoding): Removed.
2730         (CFF_Face_Init): Remove charmap support.
2731
2732         * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_CMAPS,
2733         TT_CONFIG_CMAP_FORMAT{0,2,4,6,8,10,12}): New macros to fine-tune
2734         support of cmaps.
2735
2736 2002-03-21  David Turner  <david@freetype.org>
2737
2738         * src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated
2739         to new FT_CMap definitions.
2740
2741         * src/psaux/t1cmap.h, src/psaux/t1cmap.c, src/type1/t1cmap.h,
2742         src/type1/t1cmap.c: Updating and moving the Type 1 FT_CMap support
2743         from "src/type1" to "src/psaux" since it is going to be shared by
2744         the Type 1 and CID font drivers.
2745
2746         * src/psaux/Jamfile, src/psaux/psaux.c, src/psaux/psauxmod.c,
2747         src/psaux/rules.mk, include/freetype/internal/psaux.h: Added support
2748         for Type 1 FT_CMaps.
2749
2750 2002-03-20  David Turner  <david@freetype.org>
2751
2752         * src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a
2753         memory allocation bug that was due to un-careful renaming of the
2754         FT_SubGlyph type.
2755
2756         * src/base/ftdbgmem.c (ft_mem_table_destroy): Fixed a small bug that
2757         caused the library to crash with Electric Fence when memory
2758         debugging is used.
2759
2760         * Renaming stream macros.  Examples:
2761
2762           FILE_Skip    => FT_STREAM_SKIP
2763           FILE_Read    => FT_STREAM_READ
2764           ACCESS_Frame => FT_FRAME_ENTER
2765           FORGET_Frame => FT_FRAME_EXIT
2766           etc.
2767
2768         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak.
2769
2770         * include/freetype/internal/ftobjs.h: Changing the definition of
2771         FT_CMap_CharNextFunc slightly.
2772
2773         * src/cff/*.c: Updating CFF type definitions.
2774
2775 2002-03-14  David Turner  <david@freetype.org>
2776
2777         * include/freetype/internal/autohint.h, src/autohint/ahmodule.c,
2778         src/base/ftapi.c, src/base/ftobjs.c: Updating the type definitions
2779         for the auto-hinter module.
2780
2781           FT_AutoHinter_Interface  => FT_AutoHinter_ServiceRec
2782           FT_AutoHinter_Interface* => FT_AutoHinter_Service
2783           etc.
2784
2785           FT_AutoHinter_Get_Global_Func  => FT_AutoHinter_GlobalGetFunc
2786           FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc
2787           etc.
2788
2789         * ahloader.h [_STANDALONE_]: Removed all conditional code.
2790
2791         * include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the
2792         type definitions of the CFF font driver.
2793
2794           CFF_Font  => CFF_FontRec
2795           CFF_Font* => CFF_Font
2796           etc.
2797
2798         * include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating
2799         type definitions of the Windows FNT font driver.
2800
2801         * include/freetype/internal/ftdriver.h,
2802         include/freetype/internal/ftobjs.h, src/base/ftapi.c,
2803         src/base/ftobjs.c, src/cff/cffdrivr.c, src/cff/cffdrivr.h,
2804         src/cid/cidriver.c, src/cid/cidriver.h, src/pcf/pcfdriver.c,
2805         src/pcf/pcfdriver.h, src/truetype/ttdriver.c,
2806         src/truetype/ttdriver.h, src/type1/t1driver.c, src/type1/t1driver.h,
2807         src/winfonts/winfnt.c, src/winfonts/winfnt.h: Updating type
2808         definitions for font drivers.
2809
2810           FTDriver_initFace      => FT_Face_InitFunc
2811           FTDriver_initGlyphSlot => FT_Slot_InitFunc
2812           etc.
2813
2814         * src/cid/cidobjs.c (CID_Face_Init): Remove dead code.
2815
2816         * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a
2817         few face method definitions:
2818
2819           FT_PSName_Requester     => FT_Face_GetPostscriptNameFunc
2820           FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc
2821           FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
2822
2823         * src/base/ftapi.c: New file.  It contains backwards compatibility
2824         functions.
2825
2826         * include/freetype/internal/psaux.h, src/cid/cidload.c,
2827         src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h,
2828         src/psaux/t1decode.c, stc/type1/t1load.c, src/type1/t1tokens.h:
2829         Updated common PostScript type definitions.
2830         Renamed all enumeration values like to uppercase variants:
2831
2832           t1_token_any      => T1_TOKEN_TYPE_ANY
2833           t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
2834           etc.
2835
2836         * include/freetype/internal/psglobals.h: Removed.
2837         * include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
2838         Updated.
2839
2840         * include/freetype/internal/tttypes.h,
2841         include/freetype/internal/sfnt.h, src/base/ftnames.c,
2842         src/cff/cffdrivr.c, src/sfnt/*.c, src/truetype/*.c: Updated
2843         SFNT/TrueType type definitions.
2844
2845         * include/freetype/freetype.h, include/freetype/internal/ftgloadr.h:
2846         Updating type defintiions for the glyph loader.
2847
2848 2002-03-13  Antoine Leca  <antoine@oriolnet.com>
2849
2850         * include/freetype/config/ftoption.h: Changed the automatic
2851         detection of Microsoft C compilers to automatically support 64-bit
2852         integers only since revision 9.00 (i.e. >= Visual C++ 2.0).
2853
2854 2002-03-08  Werner Lemberg  <wl@gnu.org>
2855
2856         * src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset.
2857
2858 2002-03-07  Werner Lemberg  <wl@gnu.org>
2859
2860         * src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new,
2861         ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free,
2862         ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug,
2863         FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings.
2864         * src/base/ftcalc.c (FT_MulFix): Ditto.
2865         * src/cff/cffdrivr.c (cff_get_name_index): Ditto.
2866         * src/cff/cffobjs.c (CFF_Size_Get_Global_Funcs, CFF_Size_Init,
2867         CFF_GlyphSlot_Init): Ditto.
2868         * src/cid/cidobjs.c (CID_GlyphSlot_Init,
2869         CID_Size_Get_Globals_Funcs): Ditto.
2870         * src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init):
2871         Ditto.
2872         * src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
2873         * src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
2874         variables.
2875
2876         * include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
2877         to...
2878         (T1_Builder_FuncsRec): This.
2879         (T1_Builder_Funcs): New typedef.
2880         (PSAux_Interface): Remove compiler warnings.
2881         * src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h
2882         (t1_builder_funcs): Updated.
2883
2884         * src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
2885         (PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
2886         (PSH_AlignmentRec): Updated.
2887
2888         * include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
2889         typo.
2890         * include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
2891         * src/base/ftstream (FT_Get_Char): Rename to...
2892         (FT_Stream_Get_Char): This.
2893
2894         * src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is
2895         a built-in function in gcc, causing warning messages with gcc 3.0.
2896         * src/autohint/ahglyph.c (ah_outline_load): Ditto.
2897         * src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto.
2898         * src/cache/ftcmanag.c (ftc_family_table_alloc,
2899         ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache):
2900         Ditto.
2901         * src/cff/cffload.c (cff_new_index, cff_done_index,
2902         cff_explicit_index, CFF_Access_Element, CFF_Forget_Element,
2903         CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font,
2904         CFF_Done_Font): Ditto.
2905         * src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto.
2906         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto.
2907         * src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit,
2908         ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3,
2909         * src/pshinter/pshalgo1.c (psh1_hint_table_record,
2910         psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto.
2911         * src/pshinter/pshalgo2.c (psh2_hint_table_record,
2912         psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto.
2913         * src/sfnt/ttpost.c (Load_Format_20, Load_Format_25,
2914         TT_Get_PS_Name): Ditto.
2915         * src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics,
2916         load_truetype_glyph): Ditto.
2917         * src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto.
2918         * src/type1/t1afm.c (T1_Get_Kerning): Ditto.
2919         * include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto.
2920
2921 2002-03-06  David Turner  <david@freetype.org>
2922
2923         * src/type1/t1objs.c (T1_Face_Init), src/cid/cidobjs.c
2924         (CID_Face_Init): Fixed another bug related to the
2925         ascender/descender/text height of Postscript fonts.
2926
2927         * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
2928         (psh2_print_zone): This.
2929         * src/pshinter/pshalgo1.c (print_zone): Renamed to ...
2930         (psh1_print_zone): This.
2931
2932         * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
2933         src/base/ftobjs.c: Adding the new FT_Library_Version API to return
2934         the library's current version in dynamic links.
2935         * src/base/ftinit.c (FT_Init_FreeType): Updated.
2936
2937 2002-03-06  Werner Lemberg  <wl@gnu.org>
2938
2939         * src/pshinter/pshglob.h (PSH_DimensionRec): s/std/stdw/.
2940         * src/pshinter/pshglob.c (psh_global_scale_widths,
2941         psh_dimension_snap_width, psh_globals_destroy, psh_globals_new):
2942         Ditto.
2943
2944 2002-03-05  David Turner  <david@freetype.org>
2945
2946         * src/type1/t1objs.c (T1_Face_Init), src/cff/cffobjs.c
2947         (CFF_Face_Init), src/cid/cidobjs.c (CID_Face_Init): Removing the bug
2948         that returned global BBox values in 16.16 fixed format (instead of
2949         integer font units).
2950
2951         * src/cid/cidriver.c (cid_get_postscript_name): Fixed a bug that
2952         caused the CID driver to return Postscript font names with a leading
2953         slash ("/") as in "/MOEKai-Regular".
2954
2955         * src/sfnt/ttload.c (TT_Load_Names), src/sfnt/sfobjs.c (Get_Name),
2956         src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed the loader so
2957         that it accepts broken fonts like "foxjump.ttf", which made FreeType
2958         crash when trying to load them.
2959
2960         Also improved the name table parser to be able to load
2961         Windows-encoded entries before Macintosh or Unicode ones, since it
2962         seems some fonts don't have reliable values here anyway.
2963
2964         * include/freetype/internal/psnames.h: Add typedef for
2965         `PSNames_Service'.
2966
2967 2002-03-05  Werner Lemberg  <wl@gnu.org>
2968
2969         * builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool
2970         1.4.2.
2971         Apply a small patch for AIX to make shared libraries work (this
2972         patch is already in the CVS version of libtool).
2973
2974         * builds/unix/config.sub, builds/unix/config.guess: Updated to
2975         recent versions.
2976
2977         * builds/unix/configure.ac: Fix typo
2978         (AC_CONFIG_FILE->AC_CONFIG_FILES).
2979
2980         * builds/unix/configure: Regenerated.
2981
2982 2002-02-28  David Turner  <david@freetype.org>
2983
2984         * include/freetype/ftconfig.h: Changed `FT_LOCAL xxxx' to
2985         `FT_LOCAL( xxxx )' everywhere in the source.  The same goes for
2986         `FT_LOCAL_DEF xxxx' which is translated to `FT_LOCAL_DEF( xxxxx )'.
2987
2988         * include/freetype/freetype.h (FREETYPE_MINOR, FREETYPE_PATCH):
2989         Changing version to 2.1.0 to indicate an unstable branch.
2990         Added the declarations of FT_Get_First_Char and FT_Get_Next_Char.
2991
2992         * src/base/ftobjs.c: Implement FT_Get_First_Char and
2993         FT_Get_Next_Char.
2994
2995         * include/freetype/t1tables.h: Renaming structure types.  This
2996
2997           typedef  T1_Struct_
2998           {
2999           } T1_Struct;
3000
3001         becomes
3002
3003           typedef  PS_StructRec_
3004           {
3005           } PS_StructRec, *PS_Struct;
3006
3007           typedef PS_StructRec  T1_Struct;  /* backwards-compatibility */
3008
3009         Hence, we increase the coherency of the source code by effectively
3010         using the `Rec' prefix for structure types.
3011
3012 2002-02-27  David Turner  <david@freetype.org>
3013
3014         * src/sfnt/ttload.c (TT_Load_Names): Simplifying and securing the
3015         names table loader.  Invalid individual name entries are now handled
3016         correctly.  This allows the loading of very buggy fonts like
3017         "foxjump.ttf" without allocating tons of memory and causing crashes.
3018
3019         * src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still
3020         experimental) code for OpenType Layout tables validation and
3021         parsing.
3022
3023         * src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still
3024         experimental) code for Type 1 charmap processing.
3025
3026         * src/sfnt/ttcmap0.c: New file.  It contains a new, still
3027         experimental SFNT charmap processing support.
3028
3029         * include/freetype/internal/ftobjs.h: Adding validation support as
3030         well as internal charmap object definitions (FT_CMap != FT_CharMap).
3031
3032 2002-02-24  David Turner  <david@freetype.org>
3033
3034         * Renaming stream functions to the FT_<Subject>_<Action> scheme:
3035
3036           FT_Seek_Stream    => FT_Stream_Seek
3037           FT_Skip_Stream    => FT_Stream_Skip
3038           FT_Read_Stream    => FT_Stream_Read
3039           FT_Read_Stream_At => FT_Stream_Read_At
3040           FT_Access_Frame   => FT_Stream_Enter_Frame
3041           FT_Forget_Frame   => FT_Stream_Exit_Frame
3042           FT_Extract_Frame  => FT_Stream_Extract_Frame
3043           FT_Release_Frame  => FT_Stream_Release_Frame
3044           FT_Get_XXXX       => FT_Stream_Get_XXXX
3045           FT_Read_XXXX      => FT_Stream_Read_XXXX
3046
3047           FT_New_Stream( filename, stream ) =>
3048             FT_Stream_Open( stream, filename )
3049
3050             (The function doesn't create the FT_Stream structure, it simply
3051             initializes it for reading.)
3052
3053           FT_New_Memory_Stream( library, FT_Byte*  base, size, stream ) =>
3054             FT_Stream_Open_Memory( stream, const FT_Byte* base, size )
3055
3056           FT_Done_Stream  => FT_Stream_Close
3057           FT_Stream_IO    => FT_Stream_IOFunc
3058           FT_Stream_Close => FT_Stream_CloseFunc
3059
3060           ft_close_stream => ft_ansi_stream_close (in base/ftsystem.c only)
3061           ft_io_stream    => ft_ansi_stream_io    (in base/ftsystem.c only)
3062
3063         * src/base/ftutil.c: New file.  Contains all memory and list
3064         management code (previously in "ftobjs.c" and "ftlist.c",
3065         respectively).
3066
3067         * include/freetype/internal/ftobjs.h: Moving all code related to
3068         glyph loaders to ...
3069         * include/freetype/"internal/ftgloadr.h: This new file.
3070         "FT_GlyphLoader" is now a pointer to the structure
3071         "FT_GlyphLoaderRec".
3072         (ft_glyph_own_bitmap): Renamed to ...
3073         (FT_GLYPH_OWN_BITMAP): This.
3074         * src/base/ftobjs.c: Moving all code related to glyph loaders
3075         to ...
3076         * src/base/ftgloadr.c: This new file.
3077
3078 2002-02-22  Werner Lemberg  <wl@gnu.org>
3079
3080         * include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in
3081         enum to avoid compiler warnings.
3082
3083 2002-02-21  David Turner  <david@freetype.org>
3084
3085         Modified the debug sub-system initialization.  Trace levels can now
3086         be specified within the "FT2_DEBUG" environment variable.  See the
3087         comments within "ftdebug.c" for more details.
3088
3089         * src/base/ftdebug.c: (FT_SetTraceLevel): Removed.
3090         (ft_debug_init): New function.
3091         (ft_debug_dummy): Removed.
3092         Updated to changes in ftdebug.h
3093
3094         * include/freetype/internal/ftdebug.h: Always define
3095         FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE is defined.
3096         (FT_Assert): Renamed to ...
3097         (FT_ASSERT): This.
3098         Some stuff from ftdebug.h has been moved to ...
3099
3100         * include/freetype/internal/fttrace.h: New file, to define the trace
3101         levels used for debugging.  It is used both to define enums and
3102         toggle names for FT2_DEBUG.
3103
3104         * include/freetype/internal/internal.h: Updated.
3105
3106         * src/base/ftobjs.c, src/base/ftstream.c: Updated.
3107
3108         * include/freetype/internal/ftextend.h, src/base/ftextend.c:
3109         Removed.  Both files are now completely obsolete.
3110         * src/base/Jamfile, src/base/rules.mk: Updated.
3111
3112         * include/freetype/fterrors.h: Adding "#undef FT_ERR_CAT" and
3113         `#undef FT_ERR_XCAT" to avoid warnings with certain compilers (like
3114         LCC).
3115
3116         * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
3117         (psh2_print_zone): This to avoid errors during compilation of debug
3118         library.
3119
3120         * src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as
3121         `trace_smooth'.
3122
3123 2002-02-20  David Turner  <david@freetype.org>
3124
3125         * README: Adding "devel@freetype.org" address for bug reports.
3126
3127 2002-02-20  Werner Lemberg  <wl@gnu.org>
3128
3129         * builds/unix/install.mk (check): New dummy target.
3130         (.PHONY): Add it.
3131
3132 2002-02-19  Werner Lemberg  <wl@gnu.org>
3133
3134         * builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first.
3135
3136         * src/cache/ftccache.c (ftc_cache_resize): Mark `error' as unused
3137         to avoid compiler warning.
3138         * src/cff/cffload.c (CFF_Get_String): Ditto.
3139         * src/cff/cffobjs.c (CFF_StrCopy): Ditto.
3140         * src/psaux/psobjs.c (PS_Table_Done): Ditto.
3141         * src/pcf/pcfread.c (pcf_seek_to_table_type): Ditto.
3142         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
3143         (pcf_get_bitmaps): The same for `sizebitmaps'.
3144         * src/psaux/t1decode.c (T1_Decode_Parse_Charstrings): The same for
3145         `orig_y'.
3146         (t1operator_seac): Comment out more dead code.
3147         * src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER'
3148         conditional.
3149         * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
3150         load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER'
3151         conditional.
3152
3153 2002-02-18  Werner Lemberg  <wl@gnu.org>
3154
3155         * src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused
3156         variables.
3157         * src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead
3158         of UNUSED.
3159         * src/autohint/ahmodule.c (ft_autohinter_reset): Ditto.
3160         * src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable
3161         swapping code.
3162         * src/pshinter/pshglob.h (PSH_Blue_Align): Add PSH_BLUE_ALIGN_NONE.
3163         * src/pshinter/pshglob.c (psh_blues_snap_stem): Use it.
3164         * src/pshinter/pshalgo1.c (psh1_hint_table_optimize): Ditto.
3165         * src/pshinter/pshalgo2.c (psh2_hint_align): Ditto.
3166         * include/freetype/internal/ftobjs.h (UNUSED): Removed.
3167
3168 2002-02-10  Roberto Alameda  <ojancano@geekmail.de>
3169
3170         Add support for ISOLatin1 PS encoding.
3171
3172         * include/freetype/freetype.h (ft_encoding_latin_1): New tag
3173         (`lat1').
3174         * include/freetype/internal/t1types.h (T1_Encoding_Type): Add
3175         `t1_encoding_isolatin1'.
3176         * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle
3177         ft_encoding_latin_1.
3178         * src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'.
3179         * src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'.
3180
3181 2002-02-09  Werner Lemberg  <wl@gnu.org>
3182
3183         * README: Fix typo.
3184         * docs/CHANGES: Minor fixes.
3185
3186
3187         * Version 2.0.8 released.
3188         =========================
3189
3190
3191 2002-02-08  David Turner  <david@freetype.org>
3192
3193         * docs/CHANGES: Updating for 2.0.8.
3194
3195         * include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and
3196         removing `FT_Get_Next_Char' from the API (temporarily).
3197
3198         * include/freetype/freetype.h: Adding comments to FT_Get_Next_Char;
3199         note that this function might temporarily be removed for the 2.0.8
3200         release.
3201
3202 2002-02-07  David Turner  <david@freetype.org>
3203
3204         * src/pcf/pcfread.c (pcf_load_font): Removed immature support of
3205         the AVERAGE_WIDTH property.
3206
3207 2002-02-06  David Turner  <david@freetype.org>
3208
3209         * src/sfnt/sfobjs.c (SFNT_Load_Face): Since many fonts embedded in
3210         PDF documents do not include 'cmap', 'post' and 'name' tables, the
3211         SFNT face loader has been changed to not immediately report an
3212         error if these are not present.
3213
3214         Note that the specification _requires_ these tables, but Adobe
3215         seems to ignore it completely.
3216
3217         * src/sfnt/ttcmap.c: Removing compiler warnings.
3218
3219         * src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt.
3220         (pcf_parse_metric, pcf_parse_compressed_metric): Removed.  Code
3221         is now in ...
3222         (pcf_get_metric): Here.
3223         (pcfSeekToType): Renamed to ...
3224         (pcf_seek_to_table_type): This.
3225         Use FT_Int.
3226         (pcfHasType): Renamed to ...
3227         (pcf_has_table_type): This.
3228         Use FT_Int.
3229         (find_property): Renamed to ...
3230         (pcf_find_property): This.
3231         Use FT_Int.
3232         (pcf_get_bitmaps, pcf_get_encodings): Handle invalid PCF fonts
3233         better (delaying format checks out of FT_Access_Frame ..
3234         FT_Forget_Frame blocks to avoid leaving the stream in an incorrect
3235         state when encountering an invalid PCF font).
3236
3237         * src/pcf/pcfdriver.c (PCF_Done_Face): Renamed to ...
3238         (PCF_Face_Done): This.
3239         (PCF_Init_Face): Renamed to ...
3240         (PCF_Face_Init): This.
3241         (PCF_Get_Char_Index): Renamed to ...
3242         (PCF_Char_Get_Index): This.
3243         (PCF_Get_Next_Char): Renamed to ...
3244         (PCF_Char_Get_Next): This.
3245         (pcf_driver_class): Updated.
3246
3247         * src/pcf/pcf.h (PCF_Done_Face): Removed.
3248
3249 2002-02-06  Detlef Würkner  <TetiSoft@apg.lahn.de>
3250
3251         * src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak.
3252
3253         * src/pcf/pcfread.c (pcf_load_font): Now handles the "AVERAGE_WIDTH"
3254         property to return correct character pixel (width/height) pairs for
3255         embedded bitmaps.
3256
3257 2002-02-04  Keith Packard  <keithp@keithp.com>
3258
3259         Adding the function `FT_Get_Next_Char', doing the obvious thing
3260         w.r.t. the selected charmap.
3261
3262         * include/freetype/freetype.h: Add prototype.
3263         * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar'
3264         typedef.
3265         (FT_Driver_Class): Use it.
3266         * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func'
3267         typedef.
3268         (PSNames_Interface): Use it.
3269         * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func'
3270         typedef.
3271         (TT_CMapTable): Use it.
3272
3273         * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing
3274         high-level API.
3275         * src/cff/cffdrivr.c (cff_get_next_char): New function.
3276         (cff_driver_class): Add it.
3277         * src/cid/cidriver.c (Cid_Get_Next_Char): New function.
3278         (t1cid_driver_class): Add it.
3279         * src/pcf/pcfdriver.c (PCF_Get_Next_Char): New function.
3280         (pcf_driver_class): Add it.
3281         * src/psnames/psmodule.c (PS_Next_Unicode): New function.
3282         (psnames_interface): Add it.
3283         * src/sfnt/ttcmap.c (code_to_next0, code_to_next2, code_to_next4,
3284         code_to_next6, code_to_next_8_12, code_to_next_10): New auxiliary
3285         functions.
3286         (TT_CharMap_Load): Use them.
3287         * src/truetype/ttdriver.c (Get_Next_Char): New function.
3288         (tt_driver_class): Add it.
3289         * src/type1/t1driver.c (Get_Next_Char): New function.
3290         (t1_driver_class): Add it.
3291         * src/winfnt/winfnt.c (FNT_Get_Next_Char): New function.
3292         (winfnt_driver_class): Add it.
3293
3294         * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for
3295         Unicode and Latin 1 encodings.
3296
3297 2002-02-02  Keith Packard  <keithp@keithp.com>
3298
3299         * builds/unix/freetype-config.in: Add missing `fi'.
3300
3301
3302         * Version 2.0.7 released.
3303         =========================
3304
3305
3306 2002-02-01  David Turner  <david@freetype.org>
3307
3308         * include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7
3309         for the new release.
3310
3311 2002-01-31  David Turner  <david@freetype.org>
3312
3313         * README, README.UNX, docs/CHANGES: Updating documentation for the
3314         2.0.7 release.
3315
3316 2002-01-30  David Turner  <david@freetype.org>
3317
3318         * INSTALL: Moved to ...
3319         * docs/INSTALL: Here to avoid conflicts with the "install" script on
3320         Windows, where the filesystem doesn't preserve case.
3321
3322 2002-01-29  David Turner  <david@freetype.org>
3323
3324         * configure: Fixed the script.  It previously didn't accept more
3325         than one argument correctly.  For example, when typing:
3326
3327           ./configure --disable-shared --disable-nls
3328
3329         the "--disable-nls" was incorrectly sent to the "make" program.
3330
3331 2002-01-29  Werner Lemberg  <wl@gnu.org>
3332
3333         * README.UNX: Fix typo.
3334         * builds/unix/install.mk (uninstall): Fix library name for libtool.
3335
3336 2002-01-28  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
3337
3338         * src/pcf/pcfdriver.c (PCF_Done_Face): Fix incorrect destruction of
3339         the face object (face->toc.tables, face->root.family_name,
3340         face->root.available_size, face->charset_encoding,
3341         face->charset_registry are now freed).  Thanks to Niels Moseley.
3342
3343 2002-01-28  Roberto Alameda  <ojancano@geekmail.de>
3344
3345         * src/type1/t1load.c (parse_encoding): Set `loader->num_chars'.
3346
3347 2002-01-28  Werner Lemberg  <wl@gnu.org>
3348
3349         * src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy
3350         of `base' string for decrypting to not modify the original data.
3351         Based on a patch by Jakub Bogusz <qboosh@pld.org.pl>.
3352
3353 2002-01-27  Giuliano Pochini  <pochini@shiny.it>
3354
3355         * src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused
3356         bad rendering of thin lines (less than one pixel thick).
3357
3358 2002-01-25  Werner Lemberg  <wl@gnu.org>
3359
3360         * src/cff/cffdrivr.c (cff_get_name_index): Make last patch work
3361         actually.
3362
3363 2002-01-25  Martin Zinser  <zinser@decus.de>
3364
3365         * src/cache/ftccache.c (ftc_node_done, ftc_node_destroy): Fix
3366         compilation warnings.
3367         * src/base/descrip.mms (OBJS): Add `ftmm.obj'.
3368         * src/cache/descrip.mms (ftcache.obj): Dependencies added.
3369
3370 2002-01-25  WANG Yi  <wangyi@founder.com.cn>
3371
3372         * src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug.
3373
3374 2002-01-21  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
3375
3376         * docs/PATENTS: Typo fixed (thanks to Detlef "Hawkeye" Würkner) in
3377         the URL for the online resource.
3378
3379 2002-01-18  Ian Brown  <ian.brown@printsoft.de>
3380
3381         * builds/win32/ftdebug.c: New file.
3382         * builds/win32/visualc/freetype.dsp: Updated.
3383
3384 2002-01-18  Detlef Würkner  <TetiSoft@apg.lahn.de>
3385
3386         * builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9.
3387         * builds/amiga/README: Updated.
3388
3389 2002-01-18  Ian Brown  <ian.brown@printsoft.de>
3390
3391         * builds/win32/visualc/freetype.dsp: Updated.
3392
3393 2002-01-13  Werner Lemberg  <wl@gnu.org>
3394
3395         * builds/unix/freetype2.a4: The script was still buggy.
3396         * builds/unix/freetype-config.in: Make it really work for any install
3397         prefix.
3398
3399 2002-01-10  Werner Lemberg  <wl@gnu.org>
3400
3401         * builds/unix/freetype2.a4: Fix some serious bugs.
3402
3403 2002-01-09  David Turner  <david@freetype.org>
3404
3405         * builds/unix/configure.ac: Build top-level Jamfile.
3406
3407 2002-01-09  Maxim Shemanarev  <mcseemagg@yahoo.com>
3408
3409         * src/smooth/ftgrays.c (gray_render_line): Small optimization to
3410         the smooth anti-aliased renderer that deals with vertical segments.
3411         This results in a 5-7% speedup in rendering speed.
3412
3413 2002-01-08  David Turner  <david@freetype.org>
3414
3415         Added some wrapper scripts to make the installation more
3416         Unix-friendly.
3417
3418         * configure, install: New files.
3419
3420         * INSTALL, README.UNX: Updated installation documentation to use the
3421         new 'configure' and 'install' scripts.
3422
3423 2002-01-07  David Turner  <david@freetype.org>
3424
3425
3426         * Version 2.0.6 released.
3427         =========================
3428
3429
3430         * docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release.
3431
3432         * src/tools/docmaker.py: Fixed HTML quoting in sources.
3433         (html_format): Replaced with ...
3434         (html_quote): New function.
3435         (html_quote0): New function.
3436         (DocCode::dump_html: Small improvement.
3437         (DocParagraph::dump, DocBlock::html): Use html_quote0 and html_quote.
3438
3439         * include/freetype/config/ftoption.h: Setting default options for
3440         a release build (debugging off, bytecode interpreter off).
3441
3442         * src/base/ftobjs.c, src/base/ftoutln.c, src/cache/ftccmap.c,
3443         src/cff/cffload.c, src/cff/cffobjs.c, src/pshinter/pshalgo2.c,
3444         src/sfnt/ttload.c, src/sfnt/ttsbit.c: Removing small compiler
3445         warnings (in pedantic compilation modes).
3446
3447 2002-01-05  David Turner  <david@freetype.org>
3448
3449         * src/autohint/ahhint.c (ah_align_linked_edge): Modified computation
3450         of auto-hinted stem widths; this avoids color fringes in
3451         "ClearType-like" rendering.
3452
3453         * src/truetype/ttgload.c (TT_Load_Glyph_Header,
3454         TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph):
3455         Modified the TrueType loader to make it more paranoid; this avoids
3456         nasty buffer overflows in the case of invalid glyph data (as
3457         encountered in the output of some buggy font converters).
3458
3459 2002-01-04  David Turner  <david@freetype.org>
3460
3461         * README.UNX: Added special README file for Unix users.
3462
3463         * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo.
3464
3465         * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid
3466         of compiler warnings.
3467
3468         * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning.
3469
3470 2002-01-03  Werner Lemberg  <wl@gnu.org>
3471
3472         * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler
3473         warning.
3474
3475 2002-01-03  Keith Packard  <keithp@keithp.com>
3476
3477         * builds/unix/ftsystem.c (FT_New_Stream): Added a fix to ensure that
3478         all FreeType input streams are closed in child processes of a "fork"
3479         on Unix systems.  This is important to avoid (potential) access
3480         control issues.
3481
3482 2002-01-03  David Turner  <david@freetype.org>
3483
3484         * src/type1/t1objs.c (T1_Face_Init): Fixed a bug that crashed the
3485         library when dealing with certain weird fonts like "Stalingrad", in
3486         "sadn.pfb" (this font has no full font name entry).
3487
3488         * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check):
3489         New function to check the consistency of outline data.
3490
3491         * src/base/ftobjs.c (FT_Load_Glyph): Use `FT_Outline_Check' to
3492         ensure that loaded glyphs are valid.  This allows certain fonts like
3493         "tt1095m_.ttf" to be loaded even though it appears they contain
3494         really funky glyphs.
3495
3496         There still is a bug there, though.
3497
3498         * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition.
3499
3500 2001-12-30  David Turner  <david@freetype.org>
3501
3502         * src/autohint/ahhint.c (ah_hinter_load): Fix advance width
3503         computation of auto-hinted glyphs.  This noticeably improves the
3504         spacing of letters in KDE and Gnome.
3505
3506 2001-12-25  Antoine Leca <Antoine-Freetype@Leca-Marti.org>
3507
3508         * builds/dos/detect.mk: Correcting the order for Borland compilers:
3509         16-bit bcc was never selected, always overridden by 32-bit bcc32.
3510
3511 2001-12-22  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
3512
3513         * src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
3514         and fix incorrect computation of `available_sizes'.
3515
3516 2001-12-22  David Turner  <david@freetype.org>
3517
3518         * src/autohint/ahhint.c (ah_hinter_load): Auto-hinted glyphs had an
3519         incorrect glyph advance in the case of mono-width fonts (like
3520         Courier, Andale Mono, and others).
3521
3522 2001-12-22  Detlef Würkner  <TetiSoft@apg.lahn.de>
3523
3524         * builds/amiga/*: Adaptations to latest changes.
3525         Support added for MorphOS.
3526
3527 2001-12-22  Werner Lemberg  <wl@gnu.org>
3528
3529         * src/pshinter/pshrec.c (FT_COMPONENT): Redefine to `trace_pshrec'.
3530         (ps_mask_table_merge, ps_hints_open, ps_hints_stem,
3531         ps_hints_t1stem3, ps_hints_t2mask, ps_hints_t2counter): Fix
3532         FT_ERROR messages.
3533         * src/pshinter/pshalgo1.c (FT_COMPONENT): Define as
3534         `trace_pshalgo1'.
3535         * src/pshinter/pshalgo2.c (FT_COMPONENT): Define as
3536         `trace_pshalgo2'.
3537         * include/freetype/internal/ftdebug.h (FT_Trace): Updated.
3538
3539         * docs/modules.txt: New file.
3540
3541 2001-12-21  David Turner  <david@freetype.org>
3542
3543         * src/pshinter/pshrec.c (ps_hints_t2mask, ps_hints_t2counter):
3544         Ignore invalid "hintmask" and "cntrmask" operators (instead of
3545         returning an error).  Glyph 2028 of the CFF font "MSung-Light-Acro"
3546         couldn't be rendered otherwise (it seems its charstring is buggy,
3547         though this requires more analysis).
3548         (FT_COMPONENT): Define.
3549
3550         * src/cff/cffgload.c (CFF_Parse_CharStrings), src/psaux/t1decode.c
3551         (T1_Decoder_Parse_Charstrings), src/pshinter/pshalgo2.c (*), Fixed a
3552         bug where the X and Y axis where inversed in the postscript hinter.
3553         This caused problem when displaying on non-square surfaces.
3554
3555         * src/pshinter/pshalgo2.c: s/vertical/dimension/.
3556
3557         * src/pshinter/pshglob.c (psh_globals_new): Replaced a floating
3558         point constant with a fixed-float equivalent.  For some reasons not
3559         all compilers are capable of directly computing a floating pointer
3560         constant casted to FT_Fixed, and will link a math library instead.
3561
3562 2001-12-20  Werner Lemberg  <wl@gnu.org>
3563
3564         * src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix
3565         tracing strings.
3566         * src/cache/ftccmap.c (ftc_cmap_family_init): Ditto.
3567         * src/cache/ftcmanag.c (ftc_family_table_alloc,
3568         ftc_family_table_free, FTC_Manager_Check): Ditto.
3569         * src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto.
3570
3571         * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
3572
3573 2001-12-20  David Turner  <david@freetype.org>
3574
3575         Added PostScript hinter support to the CFF and CID drivers.
3576
3577         * include/freetype/internal/cfftypes.h (CFF_Font): New member
3578         `pshinter'.
3579         * src/cff/cffload.c (CFF_Get_Standard_Encoding): New function.
3580         * src/cff/cffload.h: Updated.
3581         * src/cff/cffgload.c (CFF_Init_Builder): Renamed to ...
3582         (CFF_Builder_Init): This.
3583         Added new argument `hinting'.
3584         (CFF_Done_Builder): Renamed to ...
3585         (CFF_Builder_Done): This.
3586         (CFF_Init_Decoder): Added new argument `hinting'.
3587         (CFF_Parse_CharStrings): Implement vstem support.
3588         (CFF_Load_Glyph): Updated.
3589         Add hinting support.
3590         (cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding().
3591         (cff_argument_counts): Updated.
3592         * src/cff/cffgload.h: Updated.
3593         * src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
3594         (CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init,
3595         CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New
3596         functions.
3597         (CFF_Init_Face): Renamed to ...
3598         (CFF_Face_Init): This.
3599         Add hinter support.
3600         (CFF_Done_Face): Renamed to ...
3601         (CFF_Face_Done): This.
3602         (CFF_Init_Driver): Renamed to ...
3603         (CFF_Driver_Init): This.
3604         (CFF_Done_Driver): Renamed to ...
3605         (CFF_Driver_Done): This.
3606         * src/cff/cffobjs.h: Updated.
3607         * src/cff/cffdrivr.c (cff_driver_class): Updated.
3608
3609         * include/freetype/internal/t1types.h (CID_FaceRec): New member
3610         `pshinter'.
3611         * src/cid/cidgload.c (CID_Load_Glyph): Add hinter support.
3612         * src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
3613         (CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs,
3614         CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions.
3615         (CID_Done_Face): Renamed to ...
3616         (CID_Face_Done): This.
3617         (CID_Init_Face): Renamed to ...
3618         (CID_Face_Init): This.
3619         Add hinting support.
3620         (CID_Init_Driver): Renamed to ...
3621         (CID_Driver_Init): This.
3622         (CID_Done_Driver): Renamed to ...
3623         (CID_Driver_Done): This.
3624         * src/cid/cidobjs.h: Updated.
3625         * src/cidriver.c: Updated.
3626
3627         * src/pshinter/pshrec.c (t2_hint_stems): Fixed.
3628
3629         * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
3630         crashed the library on exit.
3631
3632         * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
3633         transformation of hinted glyphs.
3634
3635         * src/cid/cidload.c (cid_read_subrs): Fix error condition.
3636
3637         * src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs
3638         routines were never released when CID faces were destroyed.
3639
3640         * src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
3641         to move the definition of encoding tables back within "cffload.c"
3642         instead of making them part of a shared header (causing problems in
3643         "multi" builds).  This reverts change 2001-08-08.
3644
3645         * docs/CHANGES: Updated for 2.0.6 release.
3646         * docs/TODO: Added "stem3 and counter hints support" to the TODO
3647         list for the Postscript hinter.
3648         * docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
3649
3650 2001-12-19  David Turner  <david@freetype.org>
3651
3652         * include/freetype/cache/ftcache.h: Added comments to indicate that
3653         some of the exported functions should only be used by applications
3654         that need to implement custom cache types.
3655
3656         * src/truetype/ttgload.c (cur_to_org, org_to_cur): Fixed a nasty bug
3657         that prevented composites from loading correctly, due to missing
3658         parentheses around macro parameters.
3659
3660         * src/sfnt/sfobjs.c (SFNT_Load_Face): Make the "post" and "name"
3661         tables optional to load PCL fonts properly.
3662
3663         * src/truetype/ttgload.c (TT_Load_Glyph), src/base/ftobjs.c
3664         (FT_Load_Glyph), include/freetype/freetype.h (FT_LOAD_SBITS_ONLY):
3665         "Fixed" the bug that prevented embedded bitmaps to be loaded when
3666         the auto-hinter is used.  This actually is a hack but will be enough
3667         until the internal re-design scheduled for FreeType 2.1.
3668
3669         * src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline
3670         shifting bug in the monochrome renderer.
3671
3672         * README: Updated version numbers to 2.0.6.
3673
3674 2001-12-17  Werner Lemberg  <wl@gnu.org>
3675
3676         * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid
3677         glyph header.
3678
3679 2001-12-15  Werner Lemberg  <wl@gnu.org>
3680
3681         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove compiler warning.
3682         * include/freetype/ftcache.h (FTC_Node_Unref): Removed.  It is
3683         already in ftcmanag.h.
3684         * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused variable
3685         `gfam'.
3686         * src/cache/ftcmanag.c (ftc_family_table_alloc,
3687         * ftc_family_table_free): Use FT_EXPORT_DEF.
3688         * include/freetype/cache/ftcmanag.h: Updated.
3689         * src/cache/ftccache.c (ftc_node_destroy): Use FT_EXPORT_DEF.
3690         * src/cache/ftccmap.c (ftc_cmap_node_init): Remove unused variable
3691         `cfam'.
3692         Remove compiler warning.
3693         (FTC_CMapCache_Lookup): Remove compiler warnings.
3694         (ftc_cmap_family_init): Ditto.
3695         (FTC_CMapCache_Lookup): Ditto.
3696
3697         * builds/unix/configure.ac: Increase `version_info' to 8:0:2.
3698         * builds/unix/configure: Regenerated.
3699
3700 2001-12-14  Werner Lemberg  <wl@gnu.org>
3701
3702         * builds/mac/README: Updated.
3703
3704 2001-12-14  Scott Long  <scott@swiftview.com>
3705
3706         * src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when
3707         dealing with invalid fonts (i.e. glyph size < 10 bytes).
3708
3709 2001-12-14  Sam Latinga <slouken@devolution.com>
3710
3711         * builds/mac/freetype.make: A new Makefile to build with MPW on
3712         MacOS classic.
3713
3714 2001-12-14  David Turner  <david@freetype.org>
3715
3716         * src/truetype/ttgload.c (TT_Load_Glyph), src/type1/t1gload.c
3717         (T1_Load_Glyph), src/cid/cidgload.c (CID_Load_Glyph),
3718         src/cff/cffgload.c (CFF_Load_Glyph): Fixed a serious bug common to
3719         all font drivers (the advance width was never hinted when it
3720         should).
3721
3722         * include/freetype/freetype.h (FREETYPE_PATCH): New macro.
3723         * src/base/ftdbgmem.c (debug_mem_dummy) [!FT_DEBUG_MEMORY]: Don't
3724         use `extern' keyword.
3725
3726 2001-12-12  David Turner  <david@freetype.org>
3727
3728         * src/pshint/pshglob.c (psh_blues_scale_zones, psh_blues_snap_stem
3729         psh_globals_new): Adding correct BlueScale/BlueShift support, plus
3730         family blues processing.
3731         * src/pshint/pshglob.h (PSH_BluesRec): Updated.
3732
3733         Started adding support for the Postscript hinter in the CFF module.
3734
3735         * src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
3736         (CFF_Parse_CharStrings): Implement it.
3737         * src/cff/cffgload.h: Updated.
3738
3739 2001-12-12  Werner Lemberg  <wl@gnu.org>
3740
3741         * builds/unix/freetype2.m4: Some portability fixes.
3742
3743 2001-12-11  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
3744
3745         * src/base/descrip.mms (OBJS): Add ftdebug.obj.
3746
3747 2001-12-11  Werner Lemberg  <wl@gnu.org>
3748
3749         * src/sfnt/ttload.c (TT_Load_Generic_Header): Typos.
3750
3751 2001-12-11  David Turner  <david@freetype.org>
3752
3753         * builds/unix/freetype-config.in: Modified the script to prevent
3754         passing "-L/usr/lib" to gcc.
3755
3756         * docs/FTL.TXT: Simple fix (change "LICENSE.TXT" to "FTL.TXT").
3757
3758         * builds/unix/freetype2.m4: New file for checking configure paths.
3759         We need to install it in $(prefix)/share/aclocal/freetype2.m4 but I
3760         didn't modify builds/unix/install.mk yet.
3761
3762         * INSTALL: Updated the instructions to build shared libraries with
3763         Jam.  They were simply wrong.
3764
3765         * src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused
3766         slightly improper results for `FT_Cos' and `FT_Sin' (example:
3767         FT_Sin(0) == -1!).
3768
3769 2001-12-11  Detlef Würkner  <TetiSoft@apg.lahn.de>
3770
3771         * include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE):
3772         Fixed incorrect argument types.
3773
3774 2001-12-10  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
3775
3776         * src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts
3777         by setting the "face->metrics.max_advance" correctly.
3778
3779 2001-12-07  David Turner  <david@freetype.org>
3780
3781         * include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new
3782         charmap cache.
3783         * src/cache/ftcache.c: Updated.
3784
3785         * src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/.
3786
3787 2001-12-06  Leonard Rosenthol  <leonardr@lazerware.com>
3788
3789         Added support for reading .dfont files on Mac OS X.  Also added a
3790         new routine which looks up a given font by name in the Mac OS and
3791         returns the disk file where it resides.
3792
3793         * src/base/ftmac.c: Include <Files.h> and <TextUtils.h>.
3794         (is_dfont): New auxiliary function.
3795         (FT_New_Face_From_dfont): New function.
3796         (FT_GetFile_From_Mac_Name): New exported function.
3797         (FT_New_Face): Updated.
3798         * include/freetype/ftmac.h: Updated.
3799
3800 2001-12-06  David Turner  <david@freetype.org>
3801
3802         * src/cache/Jamfile, src/cache/rules.mk: Updated.
3803
3804 2001-12-06  Werner Lemberg  <wl@gnu.org>
3805
3806         * INSTALL: Small update.
3807
3808 2001-12-05  David Turner  <david@freetype.org>
3809
3810         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for
3811         debugging purposes.
3812         Comment out use of `origin'.
3813
3814         * src/smooth/ftsmooth.c (ft_smooth_render): Fixed a nasty hidden bug
3815         where outline shifting wasn't correctly undone after bitmap
3816         rasterization.  This created problems with certain glyphs (like '"'
3817         of certain fonts) and the cache system.
3818
3819         * src/pshinter/pshalgo1.c (psh1_hint_table_init): Fix typo.
3820         * src/pshinter/pshalgo2.c (psh2_hint_table_init): Fix typo.
3821         (ps2_hints_apply): Small fix.
3822
3823 2001-12-05  David Turner  <david@freetype.org>
3824
3825         * src/pshinter/pshalgo2.c (psh2_hint_table_init),
3826         src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler
3827         warnings.
3828
3829         * include/freetype/ftcache.h, include/freetype/cache/*, src/cache/*:
3830         Yet another massive rewrite of the caching sub-system in order to
3831         both increase performance and allow simpler cache sub-classing.  As
3832         an example, the code for the image and sbit caches is now much
3833         simpler.
3834
3835         I still need to update the documentation in
3836         www/freetype2/docs/cache.html to reflect the new design though.
3837
3838         * include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New
3839         macro.
3840         (FT_CACHE_INTERNAL_CACHE_H): Updated.
3841
3842 2001-12-05  David Krause  <freetype@davidkrause.com>
3843
3844         * docs/license.txt: s/X Windows/X Window System/.
3845
3846 2001-12-04  Werner Lemberg  <wl@gnu.org>
3847
3848         * src/raster/ftraster.c: Fix definition condition of MEM_Set().
3849         * src/smooth/ftgrays.c (M_Y): Change value to 192.
3850         * src/base/ftdbgmem.c (ft_mem_table_destroy): Fix printf() parameter.
3851         Remove unused variable.
3852         * src/cache/ftcimage.c (ftc_image_node_init,
3853         ftc_image_node_compare): Remove unused variables.
3854         * src/cache/ftcsbits.c (ftc_sbit_node_weight): Remove unused
3855         variable.
3856         * src/raster/ftraster.c (MEM_Set): Move definition down to avoid
3857         compiler warning.
3858         * src/autohint/ahhint.c (ah_hinter_hint_edges): Use UNUSED() to
3859         avoid compiler warnings.
3860         * src/pcf/pcfread.c (tableNames): Use `const'.
3861         (pcf_read_TOC): Change counter name to avoid compiler warning.
3862         Use `const'.
3863         * src/pshinter/pshrec.c (ps_hints_close): Remove redundant
3864         declaration.
3865         * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables
3866         to avoid shadowing.
3867         * src/pshinter/pshalgo2.c (psh2_hint_table_activate_mask): Ditto.
3868         * src/type1/t1objs.h: Remove double declarations of `T1_Size_Init()'
3869         and `T1_Size_Done()'.
3870
3871 2001-11-20  Antoine Leca  <antoineleca@multimania.com>
3872
3873         * include/freetype/ttnameid.h: Added some new Microsoft language
3874         codes and LCIDs as found in MSDN (Passport SDK).  Also added
3875         comments about the meaning of bit 57 of the `OS/2' table
3876         (TT_UCR_SURROGATES) which (with OpenType v.1.3) now means "there is
3877         a character beyond 0xFFFF in this font".  Thanks to Detlef Würkner
3878         <TetiSoft@apg.lahn.de> for noticing this.
3879
3880 2001-11-20  David Turner  <david@freetype.org>
3881
3882         * src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting
3883         routine that created nasty alignment artefacts.
3884
3885         * src/pshinter/pshrec.c, tests/gview.c: Debugging updates.
3886
3887         * src/smooth/ftgrays.c: De-activated experimental gamma support.
3888         Apparently, `optimal' gamma tables depend on the monitor type,
3889         resolution and general karma, so it's better to compute them outside
3890         of the rasterizer itself.
3891         (gray_convert_glyph): Use `volatile' keyword.
3892
3893 2001-10-29  David Turner  <david@freetype.org>
3894
3895         Adding experimental `gamma' support.  This produces smoother glyphs
3896         at small sizes for very little cost.
3897
3898         * src/smooth/ftgrays.c (grays_init_gamma): New function.
3899         (gray_raster_new): Use it.
3900
3901         Various fixes to the auto-hinter.  They merely improve the output of
3902         sans-serif fonts.  Note that there are still problems with serifed
3903         fonts and composites (accented characters).
3904
3905         * src/autohint/ahglyph.c (ah_outline_load,
3906         ah_outline_link_segments): Implement it.
3907         Fix typos.
3908         (ah_outline_save, ah_outline_compute_segments): Fix typos.
3909         * src/autohint/ahhint.c (ah_align_serif_edge): New argument
3910         `vertical'.  Implement improvement.
3911         (ah_hint_edges_3, ah_hinter_hint_edges): Implement it.
3912         Fix typos.
3913         (ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix
3914         typos.
3915         (ah_hinter_load): Set `ah_debug_hinter' if DEBUG_HINTER is defined.
3916         * src/autohint/ahmodule.c: Implement support for DEBUG_HINTER macro.
3917         * src/autohint/ahtypes.h: Ditto.
3918         (AH_Hinter): Remove `disable_horz_edges' and `disable_vert_edges'
3919         (making them global as `ah_debug_disable_horz' and
3920         `ah_debug_disable_vert').
3921         Fix typos.
3922
3923         * tests/gview.c: Updated the debugging glyph viewer to show the
3924         hints generated by the "autohint" module.
3925
3926 2001-10-27  David Turner  <david@freetype.org>
3927
3928         * src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that
3929         considerably lowered the performance of the abstract chunk cache.
3930
3931 2001-10-26  David Turner  <david@freetype.org>
3932
3933         * include/freetype/ftcache.h, include/freetype/cache/*.h,
3934         src/cache/*.c: Major re-design of the cache sub-system to provide
3935         better performance as well as an "Acquire"/"Release" API.  Seems to
3936         work well here, but probably needs a bit more testing.
3937
3938 2001-10-26  Leonard Rosenthol  <leonardr@lazerware.com>
3939
3940         * builds/mac/README: Updated to reflect my taking over the project
3941         and that is now being actively maintained.
3942
3943         * src/base/ftmac.c (parse_fond): Applied patches from Paul Miller
3944         <paulm@profoundeffects.com> to support loading a face other than the
3945         first from a FOND resource.
3946         (FT_New_Face_From_FOND): Updated.
3947
3948 2001-10-25  Leonard Rosenthol  <leonardr@lazerware.com>
3949
3950         * builds/mac/ftlib.prj: Update of CodeWarrior project file for Mac
3951         OS for latest version (7) of CWPro and for recent changes to the FT
3952         source tree.
3953
3954 2001-10-25  David Turner  <david@freetype.org>
3955
3956         * include/freetype/config/ftoption.h: Updated comments to explain
3957         precisely how to use project-specific macro definitions without
3958         modifying this file manually.
3959
3960         (FT_CONFIG_FORCE_INT64): Define.
3961
3962         (FT_DEBUG_MEMORY): New macro.
3963
3964 2001-10-24  Tom Kacvinsky  <tkacvins@freetype.org>
3965
3966         * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'.
3967
3968 2001-10-23  David Turner  <david@freetype.org>
3969
3970         * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
3971         Improvements to the memory debugger to report more information in
3972         case of errors.  Also, some allocations that occured through REALLOC
3973         couldn't be previously catched correctly.
3974
3975         * src/autohint/ahglyph.c (ah_outline_compute_segments,
3976         ah_outline_compute_edges), src/raster/ftraster.c (ft_black_new),
3977         src/smooth/ftgrays.c (gray_render_span, gray_raster_new): Replaced
3978         liberal uses of memset() by the MEM_Set() macro.
3979
3980 2001-10-23  David Turner  <david@freetype.org>
3981
3982         * src/raster/ftraster.c (Update): Removed to be inlined in ...
3983         (Sort): Updated.
3984
3985 2001-10-22  David Turner  <david@freetype.org>
3986
3987         * builds/unix/ftsystem.c (FT_New_Memory, FT_Done_Memory),
3988         builds/vms/ftsystem.c (FT_New_Memory, FT_Done_Memory),
3989         builds/amiga/ftsystem.c (FT_New_Memory, FT_Done_Memory),
3990         src/base/ftdbgmem.c: Updated the memory debugger and
3991         platform-specific implementations of `ftsystem' in order to be able
3992         to debug memory allocations on Unix, VMS and Amiga too!
3993
3994         * src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed
3995         some bogus warnings.
3996
3997         * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
3998         Modified the debugging memory manager to report the location (source
3999         file name + line number) where leaked memory blocks are allocated in
4000         the source file.
4001
4002         * src/base/ftdbgmem.c: New debugging memory manager.  You must
4003         define the FT_DEBUG_MEMORY macro in "ftoption.h" to enable it.  It
4004         will record every memory block allocated and report simple errors
4005         like memory leaks and double deletes.
4006
4007         * src/base/Jamfile: Include ftdbgmem.
4008         * src/base/rules.mk: Ditto.
4009         * src/base/ftbase.c: Include ftdbgmem.c.
4010
4011         * include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY
4012         macro definition.
4013
4014         * src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory): Modified the
4015         base component to use the debugging memory manager when the macro
4016         FT_DEBUG_MEMORY is defined.
4017
4018 2001-10-21  Tom Kacvinsky  <tkacvins@freetype.org>
4019
4020         * src/cff/cffload.c (CFF_Done_Font): Free subfonts array only if
4021         we are working with a CID keyed CFF font.  Otherwise, a variable
4022         that was never allocated memory might freed.  This is a correction
4023         to the previous patch for freeing subfonts.
4024
4025 2001-10-21  Tom Kacvinsky  <tkacvins@freetype.org>
4026
4027         * src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to
4028         avoid a memory leak.
4029
4030 2001-10-21  David Turner  <david@freetype.org>
4031
4032         * src/pshinter/pshalgo2.c, src/pshinter/pshalgo1.c,
4033         src/pshinter/pshglob.c: Removing compiler warnings in pedantic modes
4034         (in multi-object compilation mode, mainly).
4035
4036 2001-10-20  Tom Kacvinsky  <tkacvins@freetype.org>
4037
4038         * src/type1/t1load.c (parse_encoding): Add a test to make sure
4039         that custom encodings (i.e., neither StandardEncoding nor
4040         ExpertEncoding) are not loaded twice when the Type 1 font is
4041         synthetic.
4042
4043         * src/type1/t1load.c (parse_font_name, parse_subrs): Added a test
4044         for when loading synthetic fonts to make sure that the font name
4045         and subrotuines are not loaded twice.  This is to remove a memory
4046         leak that occured because the original memory blocks for these
4047         objects were not deallocated when the objects were parsed the
4048         second time.
4049
4050 2001-10-19  David Turner  <david@freetype.org>
4051
4052         * src/smooth/ftgrays.c, src/pshinter/pshglob.h,
4053         src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of
4054         compiler warnings.
4055
4056         * src/pshinter/module.mk, src/pshinter/rules.mk: Adding control
4057         files to build the PostScript hinter with the "old" build system.
4058
4059 2001-10-19  Jacob Jansen  <joukj@hrem.stm.tudelft.nl>
4060
4061         * descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build
4062         files.
4063
4064 2001-10-18  David Turner  <david@freetype.org>
4065
4066         * src/psnames/pstables.h, src/tools/glnames.py: Rewrote the
4067         "glnames.py" script used to generate the "pstables.h" header file.
4068         The old one contained a serious bug that made FreeType return
4069         incorrect glyph names for certain glyphs.
4070
4071         * src/truetype/ttdriver.c (Set_Char_Sizes): Changing computation of
4072         pixel size from character size to use rounding.  This is an
4073         experiment to see whether this gives values similar to Windows for
4074         scaled ascent/descent/etc.
4075
4076         * src/base/ftcalc.c (FT_Div64by32): Changed the implementation
4077         slightly since the original code was mis-compiled on Mac machines
4078         using the MPW C compiler.
4079
4080         * src/base/ftobjs.c (FT_Realloc): When a memory block was grown
4081         through FT_Realloc(), the new bytes were not set to 0, which created
4082         some strange bugs in the PostScript hinter.
4083         (destroy_face): Don't deallocate unconditionally.
4084
4085         * src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph):
4086         Adding support to new PostScript hinter.
4087
4088         * include/freetype/internal/psglobal.h,
4089         include/freetype/internal/pshints.h,
4090         include/freetype/config/ftmodule.h, src/pshinter/Jamfile,
4091         src/pshinter/pshalgo.h, src/pshinter/pshalgo1.h,
4092         src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.h,
4093         src/pshinter/pshalgo2.c, src/pshinter/pshglob.h,
4094         src/pshinter/pshglob.c, src/pshinter/pshinter.c,
4095         src/pshinter/pshmod.c, src/pshinter/pshmod.h, src/pshinter/pshrec.c,
4096         src/pshinter/pshrec.h: Adding new PostScript hinter module.
4097
4098         * include/freetype/internal/ftobjs.h,
4099         include/freetype/internal/internal.h,
4100         include/freetype/internal/psaux.h,
4101         include/freetype/internal/t1types.h, src/psaux/psobjs.c,
4102         src/psaux/psobjs.h, src/psaux/t1decode.h, src/psaux/t1decode.c,
4103         src/type1/t1driver.c, src/type1/t1gload.c, src/type1/t1objs.c,
4104         src/type1/t1objs.h: Updates to use the new PostScript hinter.
4105
4106         * tests/Jamfile, tests/gview.c: Adding a new glyph hinting
4107         viewer/debugger to the source tree.  Note that you will _not_ be
4108         able to compile it since it depends on an unavailable graphics
4109         library named "Nirvana" to render vector images.
4110
4111 2001-10-17  David Turner  <david@freetype.org>
4112
4113
4114         * Version 2.0.5 released.
4115         =========================
4116
4117
4118         * include/freetype/freetype.h, include/internal/ftobjs.h,
4119         src/base/ftobjs.c, src/type1/t1driver.c: Adding a new function named
4120         'FT_Get_Postscript_Name' to retrieve the PostScript name of a given
4121         font.  Should work with all formats except pure CFF/CEF fonts (this
4122         will be added soon).
4123
4124         * src/cid/cidriver (cid_get_postscript_name): New function.
4125         (CID_Get_Interface): Handle `postscript_name' interface.
4126
4127         * src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function.
4128         (SFNT_Get_Interface): Handle `postscript_name' interface.
4129
4130         * src/type1/t1driver.c (t1_get_ps_name): New function.
4131         (Get_Interface): Handle `postscript_name' interface.
4132
4133         * README, docs/CHANGES: Updated for 2.0.5 release.
4134
4135 2001-10-08  David Turner  <david@freetype.org>
4136
4137         Fixed a bug in `glnames.py' that prevented it from generating
4138         correct glyph names tables.  This resulted in the unavailability of
4139         certain glyphs like `Cacute', `cacute' and `lslash' in Unicode
4140         charmaps, even if these were present in the font (causing problems
4141         for Polish users).
4142
4143         * src/tools/glnames.py (mac_standard_names): Fixed.
4144         (t1_standard_strings): Some fixes and renamed to ...
4145         (sid_standard_names): This.
4146         (t1_expert_encoding): Fixed.
4147         (the_adobe_glyph_list): Renamed to ...
4148         (adobe_glyph_names): This.
4149         (the_adobe_glyphs): Renamed to ...
4150         (adobe_glyph_values): This.
4151         (dump_mac_indices, dump_glyph_list, dump_unicode_values, main):
4152         Updated.
4153         * src/psnames/pstables.h: Regenerated.
4154         * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset.
4155         Fix return value.
4156         Use `sid_standard_table' and `ps_names_to_unicode' instead of
4157         `t1_standard_glyphs' and `names_to_unicode'.
4158         (PS_Macintosh_Name): Use `ps_glyph_names' instead of
4159         `standard_glyph_names'.
4160         (PS_Standard_Strings): Use `sid_standard_names' instead of
4161         `t1_standard_glyphs'.
4162
4163         * doc/BUGS, doc/TODO: New documents.
4164
4165 2001-10-07  Richard Barber  <rich@solutionuk.com>
4166
4167         * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented
4168         correct LRU behaviour.
4169
4170 2001-10-07  David Turner  <david@freetype.org>
4171
4172         setjmp() and longjmp() are now used for rollback (i.e. when memory
4173         pool overflow occurs).
4174
4175         Function names are now all uniformly prefixed with `gray_'.
4176
4177         * src/smooth/ftgrays.c: Include <setjmp.h>.
4178         (ErrRaster_MemoryOverflow): New macro.
4179         (TArea): New type to store area values in each cell (using `int' was
4180         too small on 16-bit systems).  <limits.h> is included to properly
4181         get the needed data type.
4182         (TCell, TRaster): Use it.
4183         (TRaster): New element `jump_buffer'.
4184         (gray_compute_cbox): Use `RAS_ARG' as the only parameter and get
4185         `outline' from it.
4186         (gray_record_cell): Use longjmp().
4187         (gray_set_cell): Use gray_record_cell() for error handling.
4188         (gray_render_line, gray_render_conic, gray_render_cubic): Simplify.
4189         (gray_convert_glyph_inner): New function, using setjmp().
4190         (gray_convert_glyph): Use it.
4191
4192 2001-10-07  David Turner  <david@freetype.org>
4193
4194         Provide a public API to manage multiple size objects for a given
4195         FT_Face in the new header file `ftsizes.h'.
4196
4197         * include/freetype/ftsizes.h: New header file,
4198         * include/freetype/internal/ftobjs.h: Use it.
4199         Remove declarations of FT_New_Size and FT_Done_Size (moved to
4200         ftsizes.h).
4201         * include/freetype/config/ftheader.h (FT_SIZES_H): New macro.
4202         * src/base/ftobjs.c (FT_Activate_Size): New function.
4203         * src/cache/ftcmanag.c: Include ftsizes.h.
4204         (ftc_manager_init_size, ftc_manager_flush_size): Use
4205         FT_Activate_Size.
4206
4207 2001-09-20  Detlef Würkner  <TetiSoft@apg.lahn.de>
4208
4209         * builds/amiga/*: Added port to Amiga with the SAS/C compiler.
4210
4211 2001-09-15  Detlef Würkner  <TetiSoft@apg.lahn.de>
4212
4213         * src/type1/t1afm.c (T1_Done_AFM): Free `afm'.
4214
4215 2001-09-10  Yao Zhang  <yzhang@sharemedia.com>
4216
4217         * src/sfnt/ttcmap.c (code_to_index2): Handle code values with
4218         hi-byte == 0 correctly.
4219
4220 2001-09-10  Werner Lemberg  <wl@gnu.org>
4221
4222         * builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo.
4223
4224 2001-08-30  Martin Muskens  <mmuskens@aurelon.com>
4225
4226         * src/type1/t1load.c (parse_font_matrix): A new way to compute the
4227         units per EM with greater accuracy (important for embedded T1 fonts
4228         in PDF documents that were automatically generated from TrueType
4229         ones).
4230
4231         * src/type1/t1load.c (is_alpha): Now supports "+" in font names;
4232         this is used in embedded fonts.
4233
4234         * src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that
4235         generated a dangling pointer reference.
4236
4237 2001-08-30  Anthony Feik  <afeick@hotmail.com>
4238
4239         * src/type1/t1afm.c (T1_Read_Afm): Now correctly sets the flag
4240         FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files.
4241
4242 2001-08-25  Werner Lemberg  <wl@gnu.org>
4243
4244         * src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of
4245         `cmap_rec_fields'.
4246
4247         * include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]:
4248         Undefine FT_ERR_BASE before defining again.
4249
4250 2001-08-22  Werner Lemberg  <wl@gnu.org>
4251
4252         * src/truetype/ttinterp.h: Fix prototype of TT_Move_Func.
4253
4254 2001-08-21  Werner Lemberg  <wl@gnu.org>
4255
4256         * builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'.
4257
4258 2001-08-21  David Turner  <david@freetype.org>
4259
4260         * include/freetype/config/ftoption.h: Changed the default setting
4261         for FT_CONFIG_OPTION_USE_MODULE_ERRORS to undefined, since it breaks
4262         source compatibility in a few cases.  Updated the comment to explain
4263         that too.
4264
4265 2001-08-17  Martin Muskens  <mmuskens@aurelon.com>
4266
4267         * src/base/ftcalc.c (FT_MulDiv): Fixed serious typo.
4268
4269 2001-08-12  Werner Lemberg  <wl@gnu.org>
4270
4271         Updating to OpenType 1.3.
4272
4273         * include/freetype/internal/tttypes.h (TT_CMap0, TT_CMap2, TT_CMap4,
4274         TT_CMap6): Adding field `language'.
4275         (TT_CMapTable): Removing field `language'.
4276         Type of `length' field changed to FT_ULong.
4277         Adding fields for cmaps format 8, 10, and 12.
4278         (TT_CMapGroup): New auxiliary structure.
4279         (TT_CMap8_12, TT_CMap10): New structures.
4280         * include/freetype/tttables.h (TT_HoriHeader, TT_VertHeader):
4281         Removed last element of `Reserved' array.
4282         * include/freetype/ttnameid.h (TT_PLATFORM_CUSTOM, TT_MS_ID_UCS_4,
4283         TT_NAME_ID_CID_FINDFONT_NAME): New macros.
4284
4285         * src/sfnt/ttcmap.c (TT_CharMap_Load): Updated loading of `language'
4286         field to the new structures.
4287         Fixed freeing of arrays in case of unsuccessful loads.
4288         Added support for loading format 8, 10, and 12 cmaps.
4289         (TT_CharMap_Free): Added support for freeing format 8, 10, and 12
4290         cmaps.
4291         (code_to_index4): Small improvement.
4292         (code_to_index6): Ditto.
4293         (code_to_index8_12, code_to_index10): New functions.
4294         * src/sfnt/ttload.c (TT_Load_Metrics_Header): Updated to new
4295         structure.
4296         (TT_Load_CMap): Ditto.
4297
4298         * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS
4299         Unicode).
4300
4301 2001-08-11  Werner Lemberg  <wl@gnu.org>
4302
4303         * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning.
4304
4305 2001-08-09  Tom Kacvinsky  <tkacvins@freetype.org>
4306
4307         * src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to
4308         cff_get_glyph_name for consistency.
4309
4310         (cff_get_glyph_index): Minor documentation change.
4311
4312         * src/type1/t1driver.c (t1_get_name_index): New function used in
4313         Get_Interface as the function returned when the "name_index"
4314         function is requested.
4315
4316         (get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency.
4317
4318 2001-08-08  Tom Kacvinsky  <tkacvins@freetype.org>
4319
4320         * src/cff/cffload.c: Removed definitions of cff_isoadobe_charset,
4321         cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
4322         and cff_expert_encoding arrays to cffload.h.
4323
4324         * src/cff/cffload.h: Added definitions of cff_isoadobe_charset,
4325         cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
4326         and cff_expert_encoding arrays.
4327
4328         * src/cff/cffdrivr.c (cff_get_name_index): New function, returned
4329         when `cff_get_interface' is called with a request for the
4330         "name_index" function.
4331
4332         (cff_get_interface): Modified so that it returns the function
4333         `cff_get_name_index' when the "name_index" function is requested.
4334
4335         * src/base/ftobjs.c (FT_Get_Name_Index): New function, used to
4336         return a glyph index for a given glyph name only if the driver
4337         supports glyph names.
4338
4339         * include/freetype/internal/ftobjs.h (FT_Name_Index_Requester):
4340         New function pointer type defintion used in the function
4341         FT_Get_Name_Index.
4342
4343         * include/freetype/freetype.h (FT_Get_Name_Index): Added
4344         documentation and prototype.
4345
4346 2001-07-26  Werner Lemberg  <wl@gnu.org>
4347
4348         * builds/cygwin/*: Removed.  Use the unix stuff instead.
4349
4350 2001-07-26  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
4351
4352         * builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated
4353         2001-06-27.
4354
4355 2001-07-17  Werner Lemberg  <wl@gnu.org>
4356
4357         * include/freetype/internal/psaux.h (PS_Table): Use FT_Offset for
4358         `cursor' and `capacity'.
4359         * src/psaux/psobjc.c (reallocate_t1_table): Use FT_Long for second
4360         parameter.
4361         (PS_Table_Add): Use FT_Offset for `new_size'.
4362
4363         Add support for version 0.5 maxp tables.
4364
4365         * src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it.
4366         (TT_Load_OS2): Initialize some values.
4367
4368 2001-07-13  Werner Lemberg  <wl@gnu.org>
4369
4370         * src/base/ftsynth.c: Include ftcalc.h unconditionally.
4371
4372 2001-07-07  David Turner  <david@freetype.org>
4373
4374         * src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread:
4375         Removed pedantic compiler warnings when the bytecode interpreter is
4376         compiled in.
4377
4378 2001-07-03  Werner Lemberg  <wl@gnu.org>
4379
4380         * src/autohint/ahhint.c (ah_hinter_align_weak_points): Remove
4381         unused variable `edges'.
4382         (ah_hinter_load): Remove unused variables `old_width' and
4383         `new_width'.
4384         * src/cid/cidload.c (cid_decrypt): Use `U' for constant (again).
4385         * src/psaux/psobjs.c (T1_Decrypt): Ditto.
4386         * src/type1/t1parse.c (T1_Get_Private_Dict): Ditto.
4387
4388 2001-06-28  David Turner <david@freetype.org>
4389
4390         * include/internal/ftstream.h: Modified the definitions
4391         of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness.
4392
4393 2001-06-26  Werner Lemberg  <wl@gnu.org>
4394
4395         * src/cid/cidload.c, src/cid/cidload.h (cid_decrypt): Use FT_Offset
4396         instead of FT_Int as type for `length' parameter.
4397         * include/freetype/internal/psaux.h (PSAux_Interface): Updated.
4398
4399 2001-06-27  Wolfgang Domröse  <porthos.domroese@harz.de>
4400
4401         * src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset
4402         instead of FT_Int as type for `length' parameter.
4403
4404
4405         * Version 2.0.4 released.
4406         =========================
4407
4408
4409 2001-06-27  David Turner <david@freetype.org>
4410
4411         * builds/unix/ftconfig.in: Changed the definition of the
4412         FT_CALLBACK_DEF macro.
4413
4414         * include/freetype/ftconfig.h, src/*/*.c: Changed the definition and
4415         use of the FT_CALLBACK_DEF macro in order to support 16-bit
4416         compilers.
4417
4418         * builds/unix/ftconfig.in: Changed the definition of the
4419         FT_CALLBACK_DEF macro.
4420
4421         * src/sfnt/ttload.c (TT_Load_Kern): The kern table loader now ensures
4422         that the kerning table is correctly sorted (some problem fonts don't
4423         have a correct kern table).
4424
4425 2001-06-26  Wolfgang Domröse  <porthos.domroese@harz.de>
4426
4427         * include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo.
4428
4429 2001-06-24  David Turner  <david@freetype.org>
4430
4431         * src/base/ftcalc.c (ft_div64by32): Fixed the source to work
4432         correctly on 16-bit systems.
4433
4434 2001-06-23  Anthony Fok  <fok@debian.org>
4435
4436         * debian/*: Added Debian package build directory for 2.0.4.
4437
4438 2001-06-22  David Turner <david@freetype.org>
4439
4440         * docs/PATENTS: Added patents disclaimer.  This one was missing!
4441
4442         * docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release.
4443
4444 2001-06-20  Werner Lemberg  <wl@gnu.org>
4445
4446         * include/freetype/config/ftconfig.h: Add two more `L's to
4447         constants.
4448         Add missing semicolons.
4449
4450         * builds/toplevel.mk: Do similar change as for
4451         builds/unix/detect.mk.
4452
4453         * include/freetype/freetype.h (FT_ENC_TAG): New version to make it
4454         easier to redefine.
4455         * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto.
4456
4457         * src/pcf/pcfread.c (pcf_get_encodings): Add cast.
4458
4459 2001-06-19  David Turner  <david@freetype.org>
4460
4461         * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
4462         Updated the Visual C++ project (for the 2.0.4 release).
4463
4464         * builds/unix/detect.mk: Added rule for AIX detection (which uses
4465         /usr/sbin/init instead of /sbin/init).
4466
4467         * include/freetype/fterrors.h, src/*/*err*.h: Updated some of the
4468         error macros to simplify handling of new error scheme.
4469
4470 2001-06-19  Werner Lemberg  <wl@gnu.org>
4471
4472         * include/freetype/fttypes.h (FT_ERROR_MODULE): New macro.
4473
4474 2001-06-19  David Turner  <david@freetype.org>
4475
4476         Removing _lots_ of compiler warnings when the most pedantic warning
4477         levels of Visual C++ and Borland C++ are used.  Too many files to be
4478         listed here, but FT2 now compiles without warnings with VC++ and the
4479         "/W4" warning level (lint-style).
4480
4481         * include/freetype/freetype.h (FT_New_Memory_Face): Updated
4482         documentation.
4483         * include/freetype/fttypes.h (FT_BOOL): New macro.
4484         * include/freetype/internal/ftdebug.h: Add #pragma for Visual C++
4485         to suppress warning.
4486         * include/freetype/internal/ftstream.h (FT_GET_SHORT_{BE,LE},
4487         FT_GET_OFF3_{BE,LE}, FT_GET_LONG_{BE,LE}): New macros.
4488         (NEXT_*): Use them.
4489         * src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H.
4490         (FT_New_Memory_Face): Add `const' to function declaration.
4491
4492 2001-06-18  Werner Lemberg  <wl@gnu.org>
4493
4494         Minor cleanups to remove compiler warnings.
4495
4496         * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use
4497         `L' for constant.
4498         * include/freetype/config/ftoption.h (FT_RENDER_POOL_SIZE): Ditto.
4499         * src/base/ftcalc.c (FT_MulDiv): Use `L' for constant.
4500         * src/base/ftglyph.c (FT_Glyph_Get_CBox): Remove `error' variable.
4501         * src/base/fttrigon.c (ft_trig_arctan_table): Use `L' for constants.
4502         * src/base/ftobjs.c (FT_Done_Size): Fix return value.
4503         (FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Get_Kerning): Remove
4504         unused `memory' variable.
4505         * src/autohint/ahglyph.c (ah_get_orientation): Use `L' for constant.
4506         * src/autohint/ahhint.c (ah_hint_edges_3,
4507         ah_hinter_align_edge_points): Remove unused `before' and `after'
4508         variables.
4509         (ah_hinter_align_weak_points): Remove unused `edge_limit' variable.
4510         (ah_hinter_load): Remove unused `new_advance', `start_contour',
4511         and `metrics' variables.
4512         * src/cff/cffload.c (CFF_Load_Encoding): Remove dead code to avoid
4513         compiler warning.
4514         * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset'
4515         variable.
4516         * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused
4517         `outline' variable.
4518         (cff_compute_bias): Use `U' for constant.
4519         * src/cid/cidload.c (cid_decrypt): Ditto.
4520         * src/psaux/psobjs.c (T1_Decrypt): Ditto.
4521         * src/psaux/t1decode.c (T1_Decoder_Parse_CharStrings): Ditto.
4522         * src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version'
4523         variable.
4524         * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top'
4525         variable.
4526         * src/truetype/ttgload.c (load_truetype_glyph): Remove unused
4527         `num_contours' and `ins_offset' variables.
4528         (compute_glyph_metrics): Remove unused `Top' and `x_scale'
4529         variables.
4530         (TT_Load_Glyph): Remove unused `memory' variable.
4531         * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants.
4532
4533 2001-06-18  Werner Lemberg  <wl@gnu.org>
4534
4535         Make the new error scheme source compatible with older FT versions
4536         by introducing another layer.
4537
4538         * include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New
4539         macros.
4540         (FT_NOERRORDEF): Removed.
4541         * include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_.
4542
4543 2001-06-16  Werner Lemberg  <wl@gnu.org>
4544
4545         * include/freetype/freetype.h (FT_ENC_TAG): New macro.
4546         (FT_Encoding_): Use it.
4547         * include/freetype/ftimage.h (FT_IMAGE_TAG): Define it
4548         conditionally.
4549
4550 2001-06-14  David Turner  <david@freetype.org>
4551
4552         Modified the TrueType interpreter to let it use the new
4553         trigonometric functions provided in "fttrigon.h".  This gets rid of
4554         some old 64-bit computation routines, as well as many warnings when
4555         compiling the library with the "long long" 64-bit integer type.
4556
4557         * include/freetype/config/ftoption.h: Undefine
4558         FT_CONFIG_OPTION_OLD_CALCS.
4559         * include/freetype/internal/ftcalc.h: Rearrange use of
4560         FT_CONFIG_OPTION_OLD_CALCS.
4561         * src/base/ftcalc.c: Add declaration of FT_Int64 if
4562         FT_CONFIG_OPTION_OLD_CALCS isn't defined.
4563         * src/truetype/ttinterp.c: Use FT_TRIGONOMETRY_H.
4564         (Norm): Add a special version if FT_CONFIG_OPTION_OLD_CALCS isn't
4565         defined.
4566         (Current_Ratio, Normalize): Simplify code.
4567
4568 2001-06-11  Mike Owens  <MOwens@amtdatasouth.com>
4569
4570         * src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove
4571         compiler warnings.
4572
4573 2001-06-08  Werner Lemberg  <wl@gnu.org>
4574
4575         * builds/unix/configure.in: Renamed to ...
4576         * builds/unix/configure.ac: This to make sure that autoconf 2.50 is
4577         needed.
4578         Run `autoupdate' on it.
4579         Increase `version_info' to 7:0:1.
4580         * builds/unix/configure: Regenerated.
4581
4582 2001-06-08  David Turner  <david@freetype.org>
4583
4584         * src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that
4585         corrupted transformed glyphs that were auto-hinted (the transform
4586         was applied twice).
4587
4588         Fixed a bug that returned an invalid linear width for composite
4589         TrueType glyphs.
4590
4591         * include/internal/tttypes.h (TT_Loader_): Two new elements `linear'
4592         and `linear_def'.
4593         * src/truetype/ttgload.c (load_truetype_glyph,
4594         compute_glyph_metrics): Use it.
4595
4596         * include/fttypes.h (FT_ERROR_BASE): New macro.
4597         * src/base/ftobjs.c (FT_Open_Face, FT_Render_Glyph_Internal): Use it
4598         to make source code work with the new error scheme implemented by
4599         Werner.
4600         * src/base/ftoutln.c (FT_Outline_Render): Ditto.
4601
4602 2001-06-07  Werner Lemberg  <wl@gnu.org>
4603
4604         Updating to libtool 1.4.0 and autoconf 2.50.
4605
4606         * builds/unix/ltconfig: Removed.
4607         * builds/unix/ltmain.sh, builds/unix/configure.in,
4608         builds/unix/aclocal.m4: Updated.
4609         * builds/unix/configure: Regenerated.
4610
4611 2001-06-06  Werner Lemberg  <wl@gnu.org>
4612
4613         Complete redesign of error codes.  Please check ftmoderr.h for more
4614         details.
4615
4616         * include/freetype/internal/cfferrs.h,
4617         include/freetype/internal/tterrors.h,
4618         include/freetype/internal/t1errors.h: Removed.  Replaced with files
4619         local to the module.  All extra error codes have been moved to
4620         `fterrors.h'.
4621
4622         * src/sfnt/ttpost.h: Move error codes to `fterrors.h'.
4623
4624         * src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h,
4625         src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h,
4626         src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h,
4627         src/smooth/ftsmerrs.h, src/truetype/tterrors.h,
4628         src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the
4629         error names for the module it belongs to.
4630
4631         * include/freetype/ftmoderr.h: New file, defining the module error
4632         offsets.  Its structure is similar to `fterrors.h'.
4633
4634         * include/freetype/fterrors.h (FT_NOERRORDEF): New macro.
4635         (FT_ERRORDEF): Redefined to use module error offsets.
4636         All internal error codes are now public; unused error codes have
4637         been removed, some are new.
4638
4639         * include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New
4640         macro.
4641         * include/freetype/config/ftoption.h
4642         (FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro.
4643
4644         All other source files have been updated to use the new error codes;
4645         some already existing (internal) error codes local to a module have
4646         been renamed to give them the same name as in the base module.
4647
4648         All make files have been updated to include the local error files.
4649
4650 2001-06-06  Werner Lemberg  <wl@gnu.org>
4651
4652         * src/cid/cidtokens.h: Replaced with...
4653         * src/cid/cidtoken.h: This file for 8+3 consistency.
4654
4655         * src/raster/ftraster.c: Use macros for header file names.
4656
4657         * src/include/freetype/tttables.h (TT_HoriHeader_, TT_VertHeader_):
4658         Fix length of `Reserved' array.  Note that this isn't the real fix
4659         since recent OpenType specs have introduced a `CaretOffset' field
4660         instead of the first reserved byte.
4661
4662 2001-05-29  Werner Lemberg  <wl@gnu.org>
4663
4664         * INSTALL: Minor fixes.
4665
4666
4667         * Version 2.0.3 released.
4668         =========================
4669
4670
4671 2001-05-29  David Turner  <david@freetype.org>
4672
4673         * INSTALL, docs/CHANGES: Updated.
4674
4675 2001-05-25  David Turner  <david@freetype.org>
4676
4677         Moved several documents from the top-level to the "docs" directory.
4678
4679         * src/base/ftcalc.c (FT_DivFix): Small fix to return value.
4680
4681 2001-05-16  David Turner  <david@freetype.org>
4682
4683         * src/truetype/ttgload.c (load_truetype_glyph): Fixed a bug in the
4684         composite loader.  Spotted by Keith Packard.
4685         * src/base/ftobjs.c (FT_GlyphLoader_Check_Points,
4686         FT_GlyphLoader_Check_Subglyphs): Ditto.
4687
4688 2001-05-14  David Turner  <david@freetype.org>
4689
4690         Fixed the incorrect blue zone computations, and improved the
4691         composite support.  Note that these changes result in improved
4692         rendering, while sometimes introducing their own artefacts.  This is
4693         probably the last big change to the autohinter before the
4694         introduction of a complete replacement.
4695
4696         * src/autohint/ahglobal.c (sort_values): Fix loop.
4697         * src/autohint/ahglyph.c: Removed some obsolete code.
4698         (ah_outline_compute_edges): Modify code to set the ah_edge_round
4699         flag.
4700         (ah_outline_compute_blue_edges): Add code to compute active blue
4701         zones.
4702         * src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags
4703         value.
4704
4705         * src/base/ftcalc.c (FT_DivFix): Fixed a bug in the 64-bit code that
4706         created incorrect scale factors!
4707         (FT_Round_Fix, FT_CeilFix, FT_FloorFix): Minor improvements.
4708
4709 2001-05-12  Werner Lemberg  <wl@gnu.org>
4710
4711         * include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__.
4712         * include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ ->
4713         __FTTRIGON_H__.
4714         Include FT_FREETYPE_H.
4715         Beautified; added copyright.
4716         * src/base/fttrigon.c: Beautified; added copyright.
4717
4718 2001-05-11  David Turner  <david@freetype.org>
4719
4720         * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
4721         (parse_font_matrix), src/type1/t1load.c (parse_font_matrix): Fixed
4722         the incorrect EM size computation.
4723
4724         * include/freetype/fttrigon.h, src/base/fttrigon.c: New files,
4725         adding trigonometric functions to the core API (using Cordic
4726         algorithms).
4727         * src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them.
4728
4729         * builds/newline: New file.
4730         * builds/top_level.mk, builds/detect.mk: Use it.  This fixes
4731         problems with Make on Windows 2000, as well as problems when "make
4732         distclean" is invoked on a non-Unix platform when there is no
4733         "config.mk" in the current directory.
4734
4735         * builds/freetype.mk: Fixed a problem with object deletions under
4736         Dos/Windows/OS/2 systems.
4737
4738         Added new directory to hold tools and test programs.
4739
4740         * docs/docmaker.py, docs/glnames.py: Moved to...
4741         * src/tools/docmaker.py, src/tools/glnames.py: This place.
4742         * src/tools/cordic.py: New file used to compute arctangent table
4743         needed by fttrigon.c.
4744         * src/tools/test_bbox.c, src/tools/test_trig.c: New test files.
4745
4746         * src/tools/docmaker.py: Improved the script to add the current date
4747         at the footer of each web page (useful to distinguish between
4748         versions).
4749
4750         * Jamfile: Fixed incorrect HDRMACRO argument.
4751
4752         * TODO: Removed the cubic arc bbox computation note, since it has been
4753         fixed recently.
4754         * src/base/ftbbox.c (test_cubic_zero): Renamed to...
4755         (test_cubic_extrema): This function.  Use `UL' for unsigned long
4756         constants.
4757
4758         * include/freetype/t1tables.h, include/freetype/config/ftoption.h:
4759         Formatting.
4760
4761 2001-05-10  David Turner  <david@freetype.org>
4762
4763         * src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak
4764         which happened when trying to open 0-size font files!
4765
4766 2001-05-09  Werner Lemberg  <wl@gnu.org>
4767
4768         * include/freetype/internal/ftcalc.h: Move declaration of
4769         FT_SqrtFixed() out of `#ifdef FT_LONG64'.
4770
4771 2001-05-08  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
4772
4773         * src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width
4774         computation.
4775
4776 2001-05-08  David Turner  <david@freetype.org>
4777
4778         * docs/docmaker.py: Updated the DocMaker script in order to add
4779         command line options (--output,--prefix,--title), fix the erroneous
4780         line numbers reported during errors and warnings, and other
4781         formatting issues.
4782
4783         * src/base/ftcalc.c (FT_MulDiv, FT_MulFix, FT_DivFix): Various tiny
4784         fixes related to rounding in 64-bits routines and
4785         pseudo-"optimizations".
4786
4787 2001-04-27  David Turner  <david@freetype.org>
4788
4789         * src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient
4790         normalization algorithm (invalid final bit position, and invalid
4791         shift computation).
4792
4793 2001-04-26  Werner Lemberg  <wl@gnu.org>
4794
4795         * builds/unix/config.guess, builds/unix/config.sub: Updated to
4796         latest versions from gnu.org.
4797
4798         * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
4799
4800         * include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
4801         uncoditionally.
4802         * src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
4803         Fix compiler warnings.
4804         * src/base/ftcalc.c: Fix (potential) compiler warnings.
4805
4806 2001-04-26  David Turner  <david@freetype.org>
4807
4808         * src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit
4809         fixed-point square root computation.  It is now used even with
4810         64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-)
4811
4812         * src/base/ftbbox.c: Removed invalid "#include FT_BEZIER_H" line.
4813
4814 2001-04-25  David Turner  <david@freetype.org>
4815
4816         * src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use
4817         direct computations with 16.16 values instead of sub-divisions.  It
4818         is now slower, but proves a point :-)
4819
4820         * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c:
4821         Fixed the bezier stack depths.
4822
4823         * src/base/ftcalc.c (FT_MulFix): Minor rounding fix.
4824
4825         * builds/beos: Added BeOS-specific files to the old build system
4826         (no changes were necessary to support BeOS in the Jamfile though).
4827
4828 2001-04-20  David Turner  <david@freetype.org>
4829
4830         * ftconfig.h, ftoption.h: Updated "ftconfig.h" to detect 64-bit int
4831         types on platforms where Autoconf is not available).  Also removed
4832         FTCALC_USE_LONG_LONG and replaced it with
4833         FT_CONFIG_OPTION_FORCE_INT64.
4834
4835         * builds/win32/freetype.dsp: Updated the Visual C++ project file.
4836         Doesn't create a DLL yet.
4837
4838         * cffgload.c: Removed a compilation warning.
4839
4840 2001-04-10  Tom Kacvinsky  <tkacvins@freetype.org>
4841
4842         * t1load.c (parse_charstrings): Changed code for placing .notdef
4843         glyph into slot 0 so that we no longer have a memory access
4844         violation.
4845
4846         * t1load.h: In structure T1_Loader, added swap_table (of type
4847         PS_Table) to facilitate placing the .notdef glyph into slot 0.
4848
4849 2001-04-10  Francesco Zappa Nardelli  <francesco.zappa.nardelli@ens.fr>
4850
4851         * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value.
4852
4853 2001-04-09  Laurence Withers  <lwithers@lwithers.demon.co.uk>
4854
4855         * builds/dos/detect.mk: Add support for bash.
4856
4857 2001-04-05  Werner Lemberg  <wl@gnu.org>
4858
4859         * builds/os2/*.mk: These files have been forgotten to update to
4860         the structure of similar makefiles.
4861         * builds/dos/*.mk: Ditto.
4862         * builds/ansi/*.mk: Ditto.
4863
4864         * builds/win32/win32-def.mk (BUILD): Fix typo.
4865
4866         * builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT.
4867         This is already used in the link_*.mk files.
4868
4869 2001-04-03  Werner Lemberg  <wl@gnu.org>
4870
4871         * src/*/Jamfile: Slight changes to make files more cryptic.
4872
4873 2001-04-03  Werner Lemberg  <wl@gnu.org>
4874
4875         * Jamfile, src/Jamfile, src/*/Jamfile: Formatted.  Slight changes
4876         to give files identical structure.
4877
4878 2001-04-02  Werner Lemberg  <wl@gnu.org>
4879
4880         * CHANGES: Reformatted, minor fixes.
4881         * TODO: Updated.
4882         * README: Formatting.
4883         * include/freetype/freetype.h: Formatting.
4884
4885         * Jamfile: Fix typo.
4886
4887         * src/cff/cffparse.c: Move error code #defines to...
4888         * include/freetype/internal/cfferrs.h: This file.
4889         * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced
4890         `FT_Err_*' with `CFF_Err_*'.
4891         * src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'.
4892         * src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto.
4893         * src/sfnt/sfobcs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with
4894         `TT_Err_*'.
4895         * src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto.
4896         * src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c,
4897         src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'.
4898
4899         * include/freetype/internal/cfferrs.h: Add
4900         `CFF_Err_Unknown_File_Format'.
4901         * include/freetype/internal/t1errors.h: Add
4902         `T1_Err_Unknown_File_Format'.
4903         * include/freetype/internal/tterrors.h: Add
4904         `TT_Err_Unknown_File_Format'.
4905
4906         * src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset'
4907         references.
4908         * src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'.
4909
4910         * src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
4911         FT_LOCAL_DEF.
4912         * src/cid/cidobjs.c (CID_Done_Driver): Ditto.
4913         * src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
4914         Ditto.
4915         * src/type1/t1objs.c (T1_Done_Driver): Ditto.
4916         * src/pcf/pcfdriver.c (PCF_Done_Face): Ditto.
4917         * src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'.
4918
4919 2001-04-02  Tom Kacvinsky  <tkacvins@freetype.org>
4920
4921         * src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer
4922         dereference.  Submitted by Herbert Duerr <duerr@sun.com>
4923
4924 2001-03-26  Tom Kacvinsky  <tkacvins@freetype.org>
4925
4926         * include/freetype/config/ftconfig.h: Changed hexadecimal
4927         constants to use suffix U to avoid problems with HP-UX's c89
4928         compiler.  Submitted by G.W. Lucas <glucas@sonalysts.com>
4929
4930 2001-03-24  David Turner  <david.turner@freetype.org>
4931
4932         * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to
4933         the source tree.  See www.freetype.org/jam/index.html for details.
4934
4935
4936         * Version 2.0.2 released.
4937         =========================
4938
4939
4940 2001-03-20  Werner Lemberg  <wl@gnu.org>
4941
4942         * builds/win32/detekt.mk: Fix .PHONY target for Intel compiler.
4943
4944 2001-03-20  David Turner  <david.turner@freetype.org>
4945
4946         * include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
4947         Renamed "ftnames.h" to "ftsnames.h", and FT_NAMES_H to
4948         FT_SFNT_NAMES_H.
4949
4950         * docs/docmaker.py: Added generation of INDEX link in table of
4951         contents.
4952
4953         * INSTALL, docs/BUILD: Updated documentation to indicate that the
4954         compilation process has changed slightly (no more `src' required in
4955         the include path).
4956
4957         * builds/*/*-def.mk: Changed the objects directory from "obj" to
4958         "objs".
4959
4960         * include/freetype/config/ftheader.h: Removed obsolete macros like
4961         FT_SOURCE_FILE, etc. and added cache-specific macro definitions that
4962         were previously defined in <freetype/ftcache.h>.  Added comments to
4963         be included in a new API Reference section.
4964
4965         * src/*/*: Removed the use of FT_SOURCE_FILE, etc.  Now, each
4966         component needs to add its own directory to the include path at
4967         compile time.  Modified all "rules.mk" and "descrip.mms"
4968         accordingly.
4969
4970 2001-03-20  Werner Lemberg  <wl@gnu.org>
4971
4972         * builds/unix/configure.in: Add $ft_version.
4973         * builds/unix/freetype-config.in: Use it.
4974         * builds/unix/configure: Updated.
4975
4976 2001-03-19  Tom Kacvinsky  <tkacvins@freetype.org>
4977
4978         * src/type1/t1load.c (parse_font_matrix): Assign the units per em
4979         value an unsigned short value, first by shifting right 16 bits,
4980         then by casting the results to FT_UShort.
4981
4982         * src/cff/cffparse.c (cff_parse_font_bbox): Assign the units per em
4983         value an unsigned short value, first by shifting right 16 bits,
4984         then by casting the results to FT_UShort.
4985
4986 2001-03-17  David Turner  <david.turner@freetype.org>
4987
4988         * src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c,
4989         src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove
4990         compiler warnings in pedantic modes.
4991
4992         * include/config/ft2build.h, include/config/ftheader.h: The file
4993         "ft2build.h" was renamed to "ftheader.h" to avoid conflicts with the
4994         top-level <ft2build.h>.
4995
4996         * include/config/ftheader.h: Added new section describing the #include
4997         macros.
4998
4999 2001-03-17  Tom Kacvinsky  <tkacvins@freetype.org>
5000
5001         * src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed
5002         values for the bounding box numbers.
5003
5004         * src/cff/cffobjs.c (CFF_Init_Face): When processing a CFF/CEF font,
5005         set `root->ascender' (`root->descender') to the integer part of
5006         `root->bbox.yMax' (`root->bbox.yMin', respectively).
5007
5008 2001-03-16  Tom Kacvinsky  <tkacvins@freetype.org>
5009
5010         * src/cff/cffdrivr.c (get_cff_glyph_name):  New function.  Used in
5011         cff_get_interface to facilitate getting a glyph name for glyph index
5012         via FT_Get_Glyph_Name().
5013
5014         (cff_get_interface): Added support for getting a glyph name via the
5015         "glyph_name" module interface.  Uses the new function
5016         get_cff_glyph_name().
5017         Submitted by Sander van der Wal <svdwal@xs4all.nl>
5018
5019         * src/cff/cffobjs.c (CFF_Init_Face): Logical or the face flags with
5020         FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is
5021         not defined.  This is to add support for getting a glyph name from a
5022         glyph index via FT_Get_Glyph_Name().
5023         Submitted by Sander van der Wal <svdwal@xs4all.nl>
5024
5025         * src/cff/cffgload.c (CFF_Parse_CharStrings): Added support for
5026         deprecated operator "dotsection".
5027         Submitted by Sander van der Wal <svdwal@xs4all.nl>
5028
5029 2001-03-12  Werner Lemberg  <wl@gnu.org>
5030
5031         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error
5032         messages.
5033
5034         * INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer.
5035
5036 2001-03-12  Tom Kacvinsky  <tkacvins@freetype.org>
5037
5038         * include/freetype/internal/psaux.h:  Changed the lenIV member of
5039         the T1_Decoder_ struct to be an FT_Int instead of an FT_UInt.
5040
5041         * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings):  Adjust
5042         for lenIV seed bytes at the start of a decrypted subroutine.
5043
5044         * src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only
5045         if lenIV >= 0.
5046
5047         * src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only
5048         if lenIV >= 0.
5049
5050 2001-03-11  Werner Lemberg  <wl@gnu.org>
5051
5052         * TODO: Updated.
5053
5054         * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to
5055         avoid compiler warnings.
5056
5057 2001-03-10  Tom Kacvinsky  <tkacvins@freetype.org>
5058
5059         * TODO: New file.
5060
5061         * include/freetype/freetype.h: Added prototypes and notes for
5062         three new functions: FT_RoundFix, FT_CeilFix, and FT_FloorFix.
5063         * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_FloorFix): Added
5064         implementation code.
5065
5066         * src/cid/cidobjs.c (CID_Init_Face): Use calculated units_per_EM,
5067         and if that is not available, default to 1000 units per EM.  Changed
5068         assignment code for ascender and descender values.
5069         * src/cid/cidload.c (parse_font_matrix): Added units_per_EM
5070         processing.
5071         (parse_font_bbox): Changed to use FT_Fixed number handling.
5072
5073         * src/type1/t1objs.c (T1_Init_Face): Changed the assignment code
5074         for ascender, descender, and max_advance_width.
5075         * src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed
5076         number handling.
5077
5078 2001-03-10  Henrik Grubbström  <grubba@roxen.com>
5079
5080         * src/*/*.c: Added many casts to make code more 64bit-safe.
5081
5082 2001-03-07  Werner Lemberg  <wl@gnu.org>
5083
5084         * INSTALL, docs/BUILD: We need GNU make 3.78 or newer.
5085
5086 2001-03-07  Tom Kacvinsky  <tkacvins@freetype.org>
5087
5088         * src/type1/t1objs.c (T1_Init_Face): Minor correction: We must wait
5089         until parse_font_bbox is changed before we use logical shift rights
5090         in the assignments of `root->ascender', `root->descender', and
5091         `root->max_advance_width'.
5092
5093         (T1_Done_Face): Free `char_name' table to avoid a memory leak.
5094         Submitted by Sander van der Wal <svdwal@xs4all.nl>.
5095
5096 2001-03-05  Tom Kacvinsky  <tkacvins@freetype.org>
5097
5098         * src/cff/cffgload.c (CFF_Load_Glyph): Set glyph control data to the
5099         the Type 2 glyph charstring (used by conversion programs).
5100         Submitted by Ha Shao <hashao@chinese.com>.
5101
5102 2001-03-04  Antoine Leca  <Antoine.Leca@renault.fr>
5103
5104         * include/freetype/ttnameid.h: Correct a stupid typo which prevented
5105         correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice).
5106
5107 2001-03-04  Werner Lemberg  <wl@gnu.org>
5108
5109         * src/autohint/ahtypes.h (AH_Hinter): Add elements
5110         `disable_horz_edges', `disable_vert_edges'.
5111         * src/autohint/ahhint.c (ah_hint_edges_3, ah_hinter_hint_edges): Use
5112         them (and remove static variables with the same names).
5113         * src/pcf/pcfutil.c (BitOrderInvert): Add `const'.
5114         * docs/glnames.py: Updated to latest pstables.h changes.
5115
5116         * builds/unix/detect.mk: Add test for Hurd.
5117         * builds/hurd/detect.mk: Removed.
5118
5119 2001-03-04  Sander van der Wal  <svdwal@xs4all.nl>
5120
5121         * src/psnames/pstables.h: Add more `const'.
5122         * src/pcf/pcfutil.c: Ditto.
5123
5124 2001-03-04  Werner Lemberg  <wl@gnu.org>
5125
5126         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo
5127         (FT_Glyph_Done -> FT_Done_Glyph).
5128
5129 2001-03-01  Antoine Leca  <Antoine.Leca@renault.fr>
5130
5131         * include/freetype/ttnameid.h: Added some new Microsoft language
5132         codes and LCIDs as found in Office Xp.
5133
5134 2001-02-28  David Turner  <david.turner@freetype.org>
5135
5136         * builds/hurd/detect.mk: New file.  Added support to detect the GNU
5137         Hurd operating system as Unix-like.  Fix submitted by Anthony Fok
5138         <foka@debian.org>.
5139
5140         * src/type1/t1gload.c (T1_Load_Glyph): Set glyph control data to the
5141         the Type 1 glyph charstring (used by conversion programs).
5142         Submitted by Ha Shao <hashao@chinese.com>.
5143
5144 2001-02-22  David Turner  <david.turner@freetype.org>
5145
5146         * src/base/ftgrays.c (grays_sweep): The function didn't exit
5147         immediately if `num_cells' was 0 as it should.  Thanks to Boris for
5148         finding this out.
5149
5150         * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when
5151         bitmap rendering fails (thanks to Graham Asher).
5152
5153 2001-02-13  Werner Lemberg  <wl@gnu.org>
5154
5155         * docs/docmaker.py (DocSection::add_element): Use
5156         `self.print_error()'.
5157
5158         * builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org).
5159
5160 2001-02-13  David Turner  <david.turner@freetype.org>
5161
5162         * docs/docmaker.py, include/freetype/*.h: Updated the DocMaker
5163         script to support chapters and section block ordering.  Updated the
5164         public header files accordingly.
5165
5166         * src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format
5167         were not correctly copied.
5168
5169 2001-02-08  Tom Kacvinsky  <tkacvins@freetype.org>
5170
5171         * src/cff/cffparse.c (cff_parse_font_matrix): Removed an
5172         unnecessary fprintf( stderr, ... ).
5173
5174 2001-02-07  Tom Kacvinsky  <tkacvins@freetype.org>
5175
5176         * src/type1/t1objs.c (T1_Init_Face): Added code to get the
5177         units_per_EM from the value assigned in parse_font_matrix, if
5178         available.  Default to 1000 if not available.
5179
5180         * src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get
5181         the units_per_EM from the FontMatrix.
5182
5183         (cff_parse_fixed_thousand): New function. Gets a real number from
5184         the CFF font, but multiplies by 1000 (this is to avoid rounding
5185         errors when placing this real number into a 16.16 fixed number).
5186
5187         (cff_parse_real): Added code so that the integer part is moved
5188         into the high sixteen bits of the 16.16 fixed number.
5189
5190         * src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units
5191         per EM from the CFF dictionary, if available.
5192
5193         * include/freetype/internal/cfftypes.h: In struct CFF_Font_Dict_,
5194         added a units_per_em member to facilitate passing of units_per_em
5195         from function cff_parse_font_matrix.
5196
5197         * src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric
5198         character.  This is so that font names with `-' are fully parsed,
5199         etc...
5200
5201 2001-02-02  Werner Lemberg  <wl@gnu.org>
5202
5203         * src/psaux/psobjs.c (shift_elements): Remove if clause (which is
5204         obsolete now).
5205
5206         (reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC()
5207         + MEM_Copy() to avoid a memory bug.
5208
5209 2001-02-01  David Turner  <david.turner@freetype.org>
5210
5211         * docs/docmaker.py: Improved the index sorting routine to place
5212         capital letters before small ones.  Added the "<order>" marker to
5213         section blocks in order to give the order of blocks.
5214
5215 2001-01-30  Antoine Leca  <Antoine.Leca@renault.fr>
5216
5217         * include/freetype/ttnameid.h: Latest updates to Microsoft language
5218         ID codes.
5219
5220 2001-01-24  Tom Kacvinsky  <tkacvins@freetype.org>
5221
5222         * src/cff/t1load.c (parse_font_matrix): Added heuristic to get
5223         units_per_EM from the font matrix.
5224
5225         (parse_dict): Deleted test to see whether the FontInfo keyword has
5226         been seen.  Deletion of this test allows fonts without FontInfo
5227         dictionaries to be parsed by the Type 1 driver.
5228
5229         (T1_Open_Face): Deleted empty subroutines array test to make sure
5230         fonts with no subroutines still are parsed.
5231
5232 2001-01-17  Francesco Zappa Nardelli  <francesco.zappa.nardelli@ens.fr>
5233
5234         * src/pcfread.c (pcf_get_properties, pcf_get_metrics,
5235         pcf_get_bitmaps): Fix compiler errors.
5236
5237 2001-01-11  David Turner  <david.turner@freetype.org>
5238
5239         * src/pcf/pcfread.c: Removed some compilation warnings related
5240         to comparison of signed vs. unsigned integers.
5241
5242         * include/freetype/internal/ftdebug.h: Changed the debug trace
5243         constants from trace_t2xxxx to trace_cffxxxx to be able to compile
5244         the CFF driver in debug mode.
5245
5246 2001-01-11  Matthew Crosby  <mcrosby@marthon.org>
5247
5248         * builds/unix/freetype-config.in: Fix problems with separate
5249         --prefix and --exec-prefix.
5250
5251 2001-01-11  David Turner  <david.turner@freetype.org>
5252
5253         * docs/docmaker.py: Added cross-references generation as well as
5254         more robust handling of pathname wildcard matching.
5255
5256 2001-01-10  Werner Lemberg  <wl@gnu.org>
5257
5258         * docs/docmaker.py: Minor improvements to reduce unwanted spaces
5259         and empty lines in output.
5260
5261 2001-01-09  David Turner  <david.turner@freetype.org>
5262
5263         * docs/docmaker.py: Improved script to generate table of contents
5264         and index pages.  It also supports wildcards on non Unix systems.
5265
5266         * include/freetype/*.h, include/freetype/cache/*.h: Updated comments
5267         to include section definitions/delimitations for the API Reference
5268         generator.
5269
5270         * include/freetype/freetype.h: Moved declaration of
5271         `FT_Generic_Finalizer' and the `FT_Generic' structure to...
5272         * include/freetype/fttypes.h: here.
5273
5274 2001-01-04  Werner Lemberg  <wl@gnu.org>
5275
5276         * include/freetype/ttnameid.h: Updated Unicode code range comments.
5277
5278 2001-01-03  Tom Kacvinsky  <tkacvins@freetype.org>
5279
5280         * src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}.
5281
5282         * include/freetype/internal/internal.h: Changed to use cfftypes.h
5283         (cfferrs.h) instead of t2types.h (t2errors.h, respectively).
5284
5285         * include/freetype/internal/cfftypes.h: Merged in changes from
5286         t2types.h and made this the canonical `types' header for the CFF
5287         driver.
5288
5289         * include/freetype/internal/t2types.h: This file was merged with
5290         cfftypes.h and is no longer necessary.
5291
5292         * include/freetype/internal/t2errors.h: Renamed to cfferrs.h.
5293
5294         * src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
5295         src/cff/cffdrivr.c, src/cff/cff.c, src/cff/cffload.c,
5296         src/cff/cffgload.c, src/cff/cffgload.h: Changed to use
5297         cffgload.{c,h} instead of t2gload.{c,h}.  All occurences of t2_
5298         (T2_) were replaced with cff_ (CFF_, respectively).
5299
5300         * src/cff/t2gload.h: Renamed cffgload.h.
5301
5302         * src/cff/t2gload.c: Renamed cffgload.c
5303
5304 2000-01-02  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
5305
5306         * builds/vms: Support files for VMS architecture added.
5307         * descrip.mms, src/*/descrip.mms: VMS makefiles added.
5308         * README.VMS: New file.
5309
5310 2000-01-01  Werner Lemberg  <wl@gnu.org>
5311
5312         * LICENSE.TXT: Added info about PCF driver license.
5313
5314 2001-01-01  Francesco Zappa Nardelli  <francesco.zappa.nardelli@ens.fr>
5315
5316         * src/pcf/*: New driver module for PCF font format (used in
5317         X Window System).
5318         * include/freetype/internal/ftdebug.h (FT_Trace): Added values for
5319         PCF driver.
5320         * include/freetype/internal/pcftypes.h: New file.
5321         * include/freetype/config/ftmodule.h: Added PCF driver module.
5322
5323 2001-01-01  Werner Lemberg  <wl@gnu.org>
5324
5325         * src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type.
5326
5327 2000-12-31  Werner Lemberg  <wl@gnu.org>
5328
5329         * builds/modules.mk (clean_module_list): Fixed deletion of module
5330         file in case `make make_module_list' is called before `make setup'.
5331
5332 2000-12-30  Werner Lemberg  <wl@gnu.org>
5333
5334         * src/cff/cffload.c (CFF_Load_Charset): Improved error messages.
5335         (CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable
5336         definition.
5337
5338 2000-12-30  Tom Kacvinsky  <tkacvins@freetype.org>
5339
5340         * include/freetype/internal/t2types.h,
5341         include/freetype/internal/cfftypes.h: Changed the structures for
5342         CFF_Encoding and CFF_Encoding for the new implementations of the
5343         charset and encoding parsers in the CFF driver.
5344
5345         * src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode,
5346         t2_operator_seac): Added these functions for use in implementing the
5347         seac emulation provided by the Type 2 endchar operator.
5348         (T2_Parse_CharStrings): Added seac emulation for the endchar
5349         operator.
5350
5351         * src/cff/cffload.c (CFF_Load_Encoding, CFF_Load_Charset,
5352         CFF_Done_Encoding, CFF_Done_Charset): Extended to load and parse the
5353         charset/encoding tables, and free the memory used by them when the
5354         CFF driver is finished with them.  Added tables
5355
5356             cff_isoadobe_charset
5357             cff_expert_charset
5358             cff_expertsubset_charset
5359             cff_standard_encoding
5360             cff_expert_encoding
5361
5362         so that the encoding/charset parser can handle predefined encodings and
5363         charsets.
5364
5365 2000-12-24  Tom Kacvinsky  <tkacvins@freetype.org>
5366
5367         * src/cff/t2gload.c (T2_Load_Glyph): Added code so that the font
5368         transform is applied.
5369
5370         * src/cff/cffparse.c (cff_parse_font_matrix): Added code so that
5371         the font matrix numbers are scaled by 1/(matrix->yy).  Also, the
5372         offset vector now contains integer values instead of 16.16 fixed
5373         numbers.
5374
5375 2000-12-22  Tom Kacvinsky  <tkacvins@freetype.org>
5376
5377         * src/autohint/ahhint.c (ah_hinter_load_glyph):
5378         Removed unnecessary comments and commented-out code.
5379
5380 2000-12-21  David Turner  <david.turner@freetype.org>
5381
5382         * src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files,
5383         we'll work on supporting CID AFM files later I guess :-)
5384
5385 2000-12-21  Tom Kacvinsky  <tkacvins@freetype.org>
5386
5387         * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
5388         Changed so that fonts with a non-standard FontMatrix render
5389         correctly.  Previously, the first glyph rendered from such a
5390         font did not have the tranformation matrix applied.
5391
5392 2000-12-17  Werner Lemberg  <wl@gnu.org>
5393
5394         * *.mk: Added lots of `.PHONY' targets.
5395
5396 2000-12-17  Karsten Fleischer  <kfleisc1@ford.com>
5397
5398         * *.mk: Implemented `platform' target to disable auto-detection.
5399
5400 2000-12-14  Werner Lemberg  <wl@gnu.org>
5401
5402         * docs/design/modules.html: Removed.  Covered by design-*.html.
5403
5404         * INSTALL: Added info about makepp.
5405
5406 2000-12-14  David Turner  <david.turner@freetype.org>
5407
5408         Added support for clipped direct rendering in the smooth renderer.
5409         This should not break binary compatibility of existing applications.
5410
5411         * include/freetype/fttypes.h, include/freetype/ftimage.h: Move
5412         definition of the FT_BBox structure from the former to the latter.
5413         * include/freetype/ftimage.h: Add `ft_raster_flag_clip' value to
5414         FT_Raster_Flag enumeration.
5415         Add `clip_box' element to FT_Raster_Params structure.
5416         * src/smooth/ftgrays.c (grays_convert_glyph): Implement it.
5417
5418         * INSTALL: Updated installation instructions on Win32, listing the
5419         new "make setup list" target used to list supported
5420         compilers/targets.
5421
5422         * src/raster/ftraster.c (ft_black_render): Test for unsupported
5423         direct rendering before testing arguments.
5424
5425 2000-12-13  David Turner  <david.turner@freetype.org>
5426
5427         * include/freetype/config/ft2build.h,
5428         include/freetype/internal/internal.h: Fixed header inclusion macros
5429         to use direct definitions.  This is the only way to do these things
5430         in a portable way :-(  The rest of the code should follow shortly
5431         though everything compiles now.
5432
5433         * builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files.
5434
5435         * builds/win32/detect.mk: Added support for the Intel C/C++
5436         compiler, as well as _preliminary_ (read: doesn't work!) support for
5437         Watcom.  Also added a new setup target.  Type "make setup list" for
5438         a list of supported command-line compilers on Win32.
5439
5440         * src/base/ftdebug.c: Added dummy symbol to avoid empty file if
5441         conditionals are off.
5442
5443 2000-12-13  Werner Lemberg  <wl@gnu.org>
5444
5445         * builds/unix/ftsystem.c: Fixed typos.  Fixed inclusion of wrong
5446         ftconfig.h file.
5447
5448 2000-12-12  Werner Lemberg  <wl@gnu.org>
5449
5450         * include/freetype/config/ft2build.h (FT2_ROOT, FT2_CONFIG_ROOT):
5451         Removed.  ANSI C doesn't (explicitly) allow macro expansion in
5452         arguments using `##'.
5453         (FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory
5454         names directly.  Make them configurable.  Use `##' to strip leading
5455         and trailing spaces from arguments.
5456
5457         * builds/unix/ft2unix.h: Adapted.
5458
5459         * src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream,
5460         ft_close_stream): Use FT_CALLBACK_DEF.
5461
5462         * builds/unix/ftsystem.c: Use new header scheme.
5463         (FT_Done_Memory): Use free() from FT_Memory structure.
5464
5465         * src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes.
5466
5467 2000-12-11  Werner Lemberg  <wl@gnu.org>
5468
5469         * include/freetype/config/ft2build.h (FT2_CONFIG_ROOT,
5470         FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE,
5471         FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant.
5472
5473 2000-12-09  Werner Lemberg  <wl@gnu.org>
5474
5475         * builds/unix/detect.mk: Remove unused USE_CFLAGS variable.
5476
5477 2000-12-08  Werner Lemberg  <wl@gnu.org>
5478
5479         * */*.h: Changed body inclusion macro names to start and end with
5480         `__' (those which haven't converted yet).  Fixed minor conversion
5481         issues.
5482
5483         * src/winfonts/winfnt.c: Updated to new header inclusion scheme.
5484
5485         * src/truetype/ttinterp.c: Remove unused CALC_Length() macro.
5486
5487 2000-12-07  David Turner  <david.turner@freetype.org>
5488
5489         * */*.[ch]: Changed source files to adhere to the new
5490         header inclusion scheme.  Not completely tested but works for now
5491         here.
5492
5493         * src/cff/t2driver.c: Renamed and updated to...
5494         * src/cff/cffdrivr.c: New file.
5495         * src/cff/t2driver.h: Renamed and updated to...
5496         * src/cff/cffdrivr.h: New file.
5497         * src/cff/t2load.c: Renamed and updated to...
5498         * src/cff/cffload.c: New file.
5499         * src/cff/t2load.h: Renamed and updated to...
5500         * src/cff/cffload.h: New file.
5501         * src/cff/t2objs.c: Renamed and updated to...
5502         * src/cff/cffobjs.c: New file.
5503         * src/cff/t2objs.h: Renamed and updated to...
5504         * src/cff/cffobjs.h: New file.
5505         * src/cff/t2parse.c: Renamed and updated to...
5506         * src/cff/cffparse.c: New file.
5507         * src/cff/t2parse.h: Renamed and updated to...
5508         * src/cff/cffparse.h: New file.
5509         * src/cff/t2tokens.h: Renamed and updated to...
5510         * src/cff/cfftoken.h: New file.
5511
5512         * src/cff/cff.c, src/cff/rules.mk: Updated.
5513
5514 2000-12-06  David Turner  <david.turner@freetype.org>
5515
5516         * src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak.
5517
5518 2000-12-06  Werner Lemberg  <wl@gnu.org>
5519
5520         * builds/module.mk: Replaced `xxx #' with `xxx$(space).
5521         * builds/os2/detekt.mk, builds/win32/detekt.mk: Moved comment to
5522         avoid trailing spaces in variable.
5523         * builds/freetype.mk: Use $(D) instead of $D to make statement more
5524         readable.
5525
5526         * docs/docmaker.py: Formatting.
5527
5528 2000-12-05  David Turner  <david.turner@freetype.org>
5529
5530         * src/psaux/psauxmod.c: Fixed a broken inclusion of component
5531         header files (an FT_FLAT_COMPILE test was missing).
5532
5533         * src/cache/ftcmanag.c (FTC_Manager_Done): Fixed a bug that caused
5534         an occasional crash when the function was called (due to a dangling
5535         pointer).
5536
5537         * src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug:
5538         The ANSI "free()" function was called instead of "memory->free()".
5539
5540         * docs/docmaker.py: Added section filtering, multi-page generation
5541         (index page generation is still missing though).
5542
5543 2000-12-04  David Turner  <david.turner@freetype.org>
5544
5545         * builds/unix/install.mk, builds/unix/ft2unix.h: The file "ft2unix.h"
5546         is now installed as <ft2build.h> for Unix systems.  Note that we
5547         still use the "freetype2/freetype" installation path for now.
5548
5549         * */*.[ch]: Now using <ft2build.h> as the default build and setup
5550         configuration file in all public headers.  Internal source files
5551         still need some changes though.
5552
5553         * builds/devel/ft2build.h, builds/devel/ftoption.h: Created a new
5554         directory to hold all development options for both the Unix and
5555         Win32 developer builds.
5556
5557         * builds/win32/detect.mk, builds/win32/w32-bccd.mk,
5558         builds/win32/w32-dev.mk: Changed the developer build targets to
5559         "devel-gcc" and "devel-bcc" in order to be able to develop with the
5560         Borland C++ compiler.
5561
5562 2000-12-01  David Turner  <david.turner@freetype.org>
5563
5564
5565         * Version 2.0.1 released.
5566         =========================
5567
5568
5569         * builds/unix/configure.in, builds/unix/configure,
5570         builds/cygwin/configure.in, builds/cygwin/configure: Setting
5571         "version_info" to 6:1:0 for the 2.0.1 release.
5572
5573         * CHANGES: Added a summary of changes between 2.0.1 and 2.0.
5574
5575         * builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes
5576         to allow compilation under Unix with the Unix-specific config
5577         files.
5578
5579 2000-12-01  Werner Lemberg  <wl@gnu.org>
5580
5581         * INSTALL: Revised.
5582         * builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
5583         builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
5584         builds/win32/w32-bccd.mk: Revised.
5585         * include/freetype/config/ftbuild.h,
5586         include/freetype/internal/internal.h: Revised.
5587         * include/freetype/ftimage.h: Updated to new header inclusion scheme.
5588
5589 2000-11-30  Werner Lemberg  <wl@gnu.org>
5590
5591         * builds/toplevel.mk (.PHONY): Adding `distclean'.
5592         * builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
5593         `setup'.
5594
5595 2000-11-30  David Turner  <david.turner@freetype.ogr>
5596
5597         * INSTALL: Slightly updated the quick starter documentation to
5598         include IDE compilation, prevent against BSD Make, and specify "make
5599         setup" instead of a single "make" for build configuration.
5600
5601         * include/config/ftbuild.h, include/internal/internal.h: Added new
5602         configuration files used to determine the location of all public,
5603         configuration, and internal header files for FreeType 2.  Modified
5604         all headers under "include/freetype" to reflect this change.  Note
5605         that we still need to change the library source files themselves
5606         though.
5607
5608         * builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk,
5609         builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk,
5610         builds/win32/detect.mk: Added new files to support compilation with
5611         the free Borland C++ command-line compiler.  Modified the detection
5612         rules to recognize the new "bcc32" target in "make setup bcc32".
5613
5614         * src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c,
5615         src/truetype/ttobjs.c, src/truetype/ttgload.c,
5616         src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
5617         didn't really like.  Basically, this compiler complains when FT_UInt
5618         is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
5619         in these cases).
5620
5621 2000-11-30  Tom Kacvinsky  <tkacvins@freetype.org>
5622
5623         * t2objs.c (T2_Init_Face): Added calculation of `face->height' for
5624         pure CFF fonts.
5625
5626         * t1objs.c (T1_Init_Face): Fixed computation of `face->height'.
5627
5628 2000-11-29  David Turner  <david.turner@freetype.org>
5629
5630         * src/base/ftbbox.c (BBox_Conic_Check): Fixed a really stupid
5631         bug in the formula used to compute the conic Bézier extrema
5632         of non-monotonous arcs.
5633
5634 2000-11-29  Werner Lemberg  <wl@gnu.org>
5635
5636         * src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c
5637         (FT_Set_Renderer): Use FT_EXPORT_DEF.
5638         * src/cache/ftcimage.c (FTC_Image_Cache_Lookup),
5639         src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset,
5640         FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size,
5641         FTC_Manager_Register_Cache), src/cache/ftcsbits.c
5642         (FTC_SBit_Cache_Lookup): Ditto.
5643
5644         * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init),
5645         src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT.
5646
5647 2000-11-29  Werner Lemberg  <wl@gnu.org>
5648
5649         * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only
5650         conditionally.
5651
5652         * src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set
5653         `size->strike_index' only conditionally.
5654
5655         * src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only
5656         conditionally.
5657
5658         * src/winfonts/winfnt.h: Move all type definitions to...
5659         * src/include/freetype/internal/fnttypes.h: New file.
5660         * src/winfonts/winfnt.c: Use it.
5661
5662 2000-11-29  ??? ???  <darin@eazel.com>
5663
5664         * include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT
5665         with a direct solution (which also satifies picky compilers).
5666
5667 2000-11-28  YAMANO-UCHI Hidetoshi  <mer@din.or.jp>
5668
5669         * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with
5670         disabled interpreter also.
5671
5672         * src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect
5673         parentheses.
5674
5675 2000-11-26  Tom Kacvinsky  <tkacvins@freetype.org>
5676
5677         * src/cff/t2gload.c (T2_Parse_CharStrings): Added logic to glyph
5678         width setting code to take into account even/odd argument counts
5679         and glyph width operand before endchar/hmoveto/vmoveto.
5680
5681 2000-11-26  Werner Lemberg  <wl@gnu.org>
5682
5683         * builds/ansi/ansi.mk: Fix inclusion order of files.
5684
5685 2000-11-26  Keith Packard  <keithp@keithp.com>
5686
5687         * src/type1/t1objs.c (T1_Init_Face): Compute style flags.
5688
5689 2000-11-26  Werner Lemberg  <wl@gnu.org>
5690
5691         * builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and
5692         conditional.
5693
5694 2000-11-23  Werner Lemberg  <wl@gnu.org>
5695
5696         * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt
5697         function from PSAux module.
5698
5699         * src/type1/t1parse.c (T1_Done_Parse): Renamed to...
5700         (T1_Finalize_Parser): New function (to avoid name clash with a
5701         function in the PSAux module).
5702         (T1_Decrypt): Removed since it is duplicated in the PSAux module.
5703         (T1_Get_Private_Dict): Added `psaux' as new parameter; use decrypt
5704         function from PSAux module.
5705
5706         * src/type1/t1parse.h: Adapted.
5707
5708 2000-11-22  Tom Kacvinsky  <tkacvins@freetype.org>
5709
5710         * src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set
5711         `root->num_faces' to `cff->num_faces' and set `units_per_EM'
5712         to 1000.
5713
5714         * src/cff/t2parse.c (parse_t2_real): Fixed real number parsing
5715         loop.
5716
5717         * src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a
5718         sid that was off by one.
5719
5720 2000-11-16  David Turner  <david@freetype.org>
5721
5722         * src/autohint/ahtypes.h (AH_Hinter): Added new fields to control
5723         auto-hinting of synthetic Type 1 fonts.
5724
5725         * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
5726         Added auto-hinting support of synthetic Type 1 fonts.
5727
5728 2000-11-12  Tom Kacvinsky  <tkacvins@freetype.org>
5729
5730         * src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change
5731         tracing output.
5732
5733         * src/sfnt/sfobjs.c (SFNT_Load_Face): Set boolean variable
5734         `has-outline' to true only if the font has a `glyf' or `CFF ' table.
5735
5736 2000-11-11  Werner Lemberg  <wl@gnu.org>
5737
5738         * builds/win32/visualc/freetype.dsp: Fix raster1->raster and
5739         type1z->type1.
5740
5741 2000-11-11  Tom Kacvinsky  <tkacvins@freetype.org>
5742
5743         * builds/unix/freetype-config.in, builds/cygwin/freetype-config.in:
5744         Added a --libtool option.  When freetype-config --libtool is
5745         invoked, the absolute path to the libtool convenience library
5746         is returned.
5747
5748 2000-11-11  Werner Lemberg  <wl@gnu.org>
5749
5750         * builds/cygwin/cygwin-def.in: Same fix as previous.
5751
5752 2000-11-10  Tom Kacvinsky  <tkacvins@freetype.org>
5753
5754         * builds/unix/unix-def.in: Add
5755
5756             INSTALL_PROGRAM := @INSTALL_PROGRAM@
5757             INSTALL_SCRIPT  := @INSTALL_SCRIPT@
5758
5759         so that installation of freetype-config does not fail.
5760
5761 2000-11-10  Werner Lemberg  <wl@gnu.org>
5762
5763         * builds/cygwin/freetype-config.in, builds/unix/freetype-config.in:
5764         Move test down for empty --exec-prefix.
5765         Fix --version.
5766
5767         * builds/cygwin/install.mk, builds/unix/install.mk: Use
5768         $(INSTALL_SCRIPT) for installation of freetype-config.
5769
5770         * builds/cygwin/install.mk: Fix clean target names.
5771
5772 2000-11-09  David Turner  <david@freetype.org>
5773
5774
5775         * Version 2.0 released.
5776         =======================
5777
5778
5779 Local Variables:
5780 version-control: never
5781 coding: latin-1
5782 End: