1 2003-03-27 David Turner <david@freetype.org>
5 * README.UNX: removed (now replaced by docs/INSTALL.UNX)
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
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.
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)
17 2003-03-20 David Turner <david@freetype.org>
19 * docs/*: serious rewriting of the documentation
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:
26 ft_glyphslot_free_bitmap
27 ft_glyphslot_alloc_bitmap
28 ft_glyphslot_set_bitmap
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.
33 * src/cache/ftlru.c: fixed an invalid assertion check
35 * src/autohint/ahglyph.h, src/autohint/ahglyph.c, src/autohint/ahglobal.c,
36 src/autohint/ahhint.c: fixed blue-scale problem
38 * src/cache/ftccache.c: fixed small bug that could crash the cache
39 in rare circumstances (mostly with broken fonts)
42 2003-03-15 David Turner <david@freetype.org>
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.
48 2003-03-14 David Turner <david@freetype.org>
50 * src/truetype/ttdriver.c: fixing the small TrueType native rendering
51 glitches, they came from a small rounding error.
53 2003-03-13 David Turner <david@freetype.org>
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"
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
64 * src/pfr/pfrobjs.c, src/pfr/pfrsbits.c: fixing compiler warnings and a
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.
70 * src/smooth/ftgrays.c: removed compiler warnings / volatile bug
72 * src/truetype/ttobjs.c: removed segmentation fault that happened in
73 tight memory environments.
75 2003-02-28 Pixel <pixel@mandrakesoft.com>
77 * src/gzip/ftgzip.c (ft_gzip_file_done): fixed memory leak, the ZLib
78 stream was not properly finalized
80 2003-02-25 Anthony Fok <anthony@thizlinux.com>
82 * src/cache/ftccmap.c: the cmap cache now supports UCS-4 charmaps
83 when available in Asian fonts
85 * src/sfnt/ttload.c, src/base/ftobjs.c: changed "asian" to "Asian" in
88 2003-02-25 David Turner <david@freetype.org>
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:
94 touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
97 * src/pfr/pfrobjs.c, src/pfr/pfrload.c, src/pfr/pfrtypes.h: several
98 fixes to the PFR font driver:
100 - the list of available embedded bitmaps was not correctly set
101 in the root FT_FaceRec structure describing the face
103 - the glyph loader always tried to load the outlines when
104 FT_LOAD_SBITS_ONLY was specified
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.
110 NOTE THAT THIS CHANGES THE FAMILY NAME OF MANY PFR FONTS !!
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
117 2003-02-18 David Turner <david@freetype.org>
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
124 * src/autohint/ahhint.c: disabled the advance width "correction" which
125 seemed to provide more trouble than benefits..
127 2003-02-13 Graham Asher <graham.asher@btinternet.com>
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.
137 2003-01-31 David Turner <david@freetype.org>
139 * docs/CHANGES, docs/VERSION.DLL, docs/TODO: updating documentation for
142 * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
143 updating the project file for 2.1.4
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.
150 * src/pfr/pfrsbit.c: removed compiler warnings
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.
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.
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).
166 THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
167 STILL SUCK... I need to work this a bit
169 2003-01-22 David Chester <davidchester@qmx.net>
171 * src/autohint/ahhint.c: small fix to the stem width optimisation
173 2003-01-22 David Turner <david@freetype.org>
175 * include/freetype/ftbdf.h, include/freetype/internal/bdftypes.h,
176 src/base/ftbdf.c, src/bdf/bdfdrivr.c, src/pcf/pcfdrivr.c,
179 adding a new API, named FT_Get_BDF_Property to retrieve the BDF
180 properties of a given PCF or BDF font
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
187 2003-01-18 Werner Lemberg <wl@gnu.org>
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
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.
199 2003-01-15 David Turner <david@freetype.org>
201 * include/freetype/freetype.h: Fixed documentation for
204 2003-01-15 James Su <suzhe@turbolinux.com.cn>
206 * src/gzip/ftgzip.c: Bugfix: couldn't read certain gzip-ed font
209 2003-01-15 Huw D M Davies <h.davies1@physics.ox.ac.uk>
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.
218 2003-01-14 Graham Asher <graham.asher@btinternet.com>
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.
224 2003-01-13 Graham Asher <graham.asher@btinternet.com>
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
234 2003-01-11 David Chester <davidchester@qmx.net>
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".
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.
248 2003-01-11 David Turner <david@freetype.org>
250 * include/freetype/internal/fnttypes.h: Fixed a structure field
251 definition to avoid memory overwrites.
253 2003-01-08 Huw Dawies <huw@codeweavers.com>
255 * src/winfonts/winfnt.c: Read 16 bytes into "reserved2", not
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
263 2003-01-08 Owen Taylor <owen@redhat.com>
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
270 * src/truetype/ttgload.c: Fixing the TrueType loader to handle
271 invalid composites correctly by limiting the recursion depth.
273 2003-01-08 David Turner <david@freetype.org>
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).
279 2003-01-07 David Turner <david@freetype.org>
281 * src/base/ftstroker.c: Probably the last bug-fixes to the stroker;
282 the API is likely to change, however.
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).
288 * src/cache/ftccache.c (ftc_node_unlink): Removing incorrect
289 assertion, and changing code to avoid hash table size contraction.
291 * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding
292 "ftstroker.obj" to default build, as optional component.
294 2002-12-26 David Turner <david@freetype.org>
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.
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.
305 2002-12-23 Anthony Fok <anthony@thizlinux.com>
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.
311 2002-12-17 David Turner <david@freetype.org>
313 * src/base/ftobjs.c (find_unicode_charmap): Added some comments to
314 better explain what's happening there.
316 * src/base/ftobjs.c (open_face): Included Graham Asher's fix to
317 prevent faces without Unicode charmaps from loading.
319 * src/winfonts/winfnt.c: Included George Williams's fix to support
320 version 2 fonts correctly.
322 2002-12-16 David Turner <david@freetype.org>
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.
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.
332 2002-12-02 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
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.
340 2002-11-29 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
342 * include/freetype/ftgzip.h: Correct the name of the controlling
343 macro (was __FTXF86_H__ ...).
345 2002-11-27 Vincent Caron <v.caron@zerodeux.net>
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).
352 2002-11-23 David Turner <david@freetype.org>
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.
359 2002-11-18 David Turner <david@freetype.org>
362 * Version 2.1.3 is released.
363 ============================
366 2002-11-07 David Turner <david@freetype.org>
368 * src/cache/ftcsbit.c (ftc_sbit_node_load): Fixed a small bug that
369 caused problems with embedded bitmaps.
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
378 * src/autohint/ahhint.c: Disabled serif stem width quantization. It
379 produces slightly better shapes though this is not distinguishable
382 2002-11-05 David Turner <david@freetype.org>
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.
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).
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 :-)
399 The fix was to change
400 `volatile FT_Byte* p'
402 `FT_Byte* volatile p'.
404 * src/pfr/pfrload.c, src/pfr/pfrdrivr.c, src/gzip/inftrees.c:
405 Removed compiler warnings in optimized modes.
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.
412 2002-11-05 Juliusz <jch@pps.jussieu.fr>
414 * src/psaux/psobjs.c (ps_table_add): Modified increment loop in
415 order to implement exponential behaviour.
417 2002-10-31 David Turner <david@freetype.org>
419 * include/freetype/ftgzip.h, src/gzip/ftgzip.c: Adding support for
420 gzip compressed streams.
422 * src/pcf/pcfdriver.c: Adding automatic support for gzip-compressed
425 2002-10-30 David Turner <david@freetype.org>
427 * FreeType 2.1.3rc3 released
429 2002-10-25 David Turner <david@freetype.org>
431 * include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro.
432 (FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG.
434 2002-10-22 Giuseppe Ghibò <ghibo@mandrakesoft.com>
436 * include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2.
438 2002-10-07 Werner Lemberg <wl@gnu.org>
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.
445 2002-10-05 David Turner <david@freetype.org>
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).
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'.
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.
470 * src/tools/docmaker/content.py, src/tools/docmaker/sources.py,
471 src/tools/docmaker/tohtml.py: Fixing a few nasty bugs.
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.
478 * docs/CHANGES: Updated.
480 2002-10-05 Werner Lemberg <wl@gnu.org>
482 * src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'.
484 (TRUNC): Add cast to `TCoord'.
486 (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and
489 (gray_render_line): Fix casts for `p' and `first'.
491 2002-10-02 Detlef Würkner <TetiSoft@apg.lahn.de>
493 * src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t
494 structure with FT_ALLOC instead of using the stack.
496 2002-09-27 Werner Lemberg <wl@gnu.org>
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.
505 2002-09-27 Wolfgang Domröse <porthos.domroese@harz.de>
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
516 (sfnt_load_face): Use FT_Int32 for `flags'.
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'.
523 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts.
525 2002-09-26 Werner Lemberg <wl@gnu.org>
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.
531 * src/cff/cffobjs.c (cff_face_init): Ditto.
533 * include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for
535 * include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for
538 * src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to
540 (FT_Render_Glyph_Internal): Change third parameter to
542 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter
545 * src/raster/ftrend1.c (ft_raster1_render): Change third parameter
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
552 * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
553 include/freetype/ftglyph.h: Updated.
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'.
561 * src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters
562 and declare them as unused.
564 * src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'.
566 * src/psnames/psnames.h (PS_Unicode_Value_Func): Change return
568 * src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table):
571 2002-09-26 Wolfgang Domröse <porthos.domroese@harz.de>
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
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
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
586 (cff_decoder_parse_charstrings): Use FT_ULong for third parameter.
588 * src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'.
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
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'.
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
604 * src/raster/ftraster.c (Set_High_Precision): Use `1' instead of
606 (Finalize_Profile_Table, Line_Up, ft_black_init): Use casts.
607 * src/raster/ftrend1.c (ft_raster1_render): Ditto.
609 * src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long
612 2002-09-26 Detlef Würkner <TetiSoft@apg.lahn.de>
614 * builds/amiga/include/freetype/config/ftmodule.h: Updated.
616 2002-09-25 David Turner <david@freetype.org>
618 * src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics
619 hinting in the auto-hinter. This produces much better anti-aliased
622 * docs/CHANGES: Updating the changes documentation.
624 2002-09-25 Anthony Fok <anthony@thizlinux.com>
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
631 2002-09-21 Wolfgang Domröse <porthos.domroese@harz.de>
633 * src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be
635 * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph):
638 2002-09-19 Wolfgang Domröse <porthos.domroese@harz.de>
642 * src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'.
643 (ah_hinter_compute_widths): Use FT_Pos for `dist'.
645 * src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos
647 (ah_outline_compute_edges): Replace some ints with FT_Int and
649 (ah_test_extrema): Clean up code.
650 (ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to
652 * src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score'
655 2002-09-19 Werner Lemberg <wl@gnu.org>
657 * builds/unix/config.guess, builds/unix/config.sub: Updated to
660 2002-09-18 David Turner <david@freetype.org>
662 * src/base/ftobjs.c (FT_Library_Version): Bugfix.
664 * FreeType 2.1.3rc2 (release candidate 2) is released!
666 2002-09-17 David Turner <david@freetype.org>
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.
673 * src/tools/docmaker/tohtml.py: Updating the HTML formatter in the
676 * src/tools/docmaker.py: Removed.
678 2002-09-17 Werner Lemberg <wl@gnu.org>
682 * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for
685 2002-09-16 Werner Lemberg <wl@gnu.org>
687 16bit fixes from Wolfgang Domröse.
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
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.
699 * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label.
700 * src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable.
702 2002-09-14 Werner Lemberg <wl@gnu.org>
704 Making ftgrays.c compile stand-alone again.
706 * include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_
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'.
716 2002-09-14 Werner Lemberg <wl@gnu.org>
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
723 2002-09-10 Werner Lemberg <wl@gnu.org>
725 * builds/unix/configure.ac (version_info): Set to 9:2:3.
726 * builds/unix/configure: Regenerated.
727 * docs/VERSION.DLL: Updated.
729 2002-09-09 David Turner <david@freetype.org>
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.
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.
739 * include/freetype/ftimage.h: Removed incorrect "zft_" definitions
740 and updated constants documentation comments.
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
746 * include/freetype/freetype.h (FT_FaceRec): Updating documentation
747 comment. The "descender" value is always *negative*, not positive.
749 2002-09-09 Owen Taylor <owen@redhat.com>
751 * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation
754 2002-09-08 David Turner <david@freetype.org>
756 Various updates to correctly support sub-pixel rendering.
758 * include/freetype/config/ftmodule.h: Add two renderers for LCD.
760 * src/base/ftobjs.c (FT_Load_Glyph): Updated.
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.
766 * include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New
769 (FTC_ImageDesc): Removed.
770 (FTC_ImageCache_Lookup): Second parameter is now of type
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.
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
785 * src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec):
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.
792 * src/cache/ftcsbit.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
794 (ftc_sbit_node_load): Updated.
795 Moved code to convert type flags to load flags to...
796 (FTC_SBitCache_Lookup): This function.
798 * src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with
800 Update all users (with negation).
801 * src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for
802 `dist' for `delta' < 40.
804 * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with
806 Update all users (with negation).
807 * src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New
809 (psh3_hint_align): Use it.
810 Improve hinting code.
814 * include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*):
817 2002-09-05 Werner Lemberg <wl@gnu.org>
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.
824 Updated all affected code.
826 * src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
827 * src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.
829 2002-09-04 David Turner <david@freetype.org>
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).
835 * builds/unix/unix-def.in (datadir): Initialize it (thanks to
838 2002-08-29 David Turner <david@freetype.org>
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.
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
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
858 Implement announced changes.
859 * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control
860 vertical and horizontal hints and snapping.
862 * README, docs/CHANGES: Updating for the 2.1.3 release.
864 2002-08-27 David Turner <david@freetype.org>
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:
870 - trying to convert all enums and constants to CAPITALIZED_STYLE,
871 #with define definitions like
873 #define my_old_constants MY_NEW_CONSTANT
875 - big, big update of the documentation comments
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:
881 FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
882 FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
884 This is still work in progress, don't expect everything to work
885 correctly though most of the features have been implemented.
887 * Adding new FT_LOAD_XXX flags, used to specify both hinting and
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
894 FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated
897 Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
898 behaviour of the font engine is _unchanged_.
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 ...
905 (FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ...
906 (FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This.
908 Updated all affected code.
910 * include/freetype/ftrender.h
911 (FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed
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}):
918 Updated all affected code.
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.
925 * src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter.
926 * src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element.
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
948 (cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}):
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.
955 Updated all affected code.
957 * src/psaux/psobjs.c (PS_Table_*): Renamed to...
959 (T1_Builder_*): Renamed to...
960 (t1_builder_*): This.
961 * src/psaux/t1decode.c (T1_Decoder_*): Renamed to...
962 (t1_decoder_*): This.
964 * src/psnames/psmodule.c (PS_*): Renamed to...
967 Updated all affected code.
969 * src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to...
970 (sfnt_get_interface): This.
971 * src/sfnt/sfobjs.c (SFNT_*): Renamed to...
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...
979 * src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to...
980 (tt_post_default_names): This.
981 (Load_*): Renamed to...
983 (TT_*): Renamed to...
985 * src/sfnt/ttsbit.c (TT_*): Renamed to...
987 ({Find,Load,Crop}_*): Renamed to...
988 ({find,load,crop}_*): This.
990 Updated all affected code.
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
996 (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v):
999 (ft_smooth_locd_renderer_class, ft_smooth_lcdv_renderer_class): New
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...
1013 2002-08-27 Werner Lemberg <wl@gnu.org>
1015 * docs/VERSION.DLL: New file.
1017 2002-08-23 Graham Asher <graham.asher@btinternet.com>
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.
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.
1030 * src/cff/cffload.h (cff_font_load): Removed argument now unneeded.
1032 * src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load
1033 to conform with new signature.
1035 2002-08-22 David Turner <david@freetype.org>
1037 * src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
1038 src/bdf/bdfdrivr.c: Removed compiler warnings.
1040 2002-08-21 Werner Lemberg <wl@gnu.org>
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.
1046 2002-08-21 David Turner <david@freetype.org>
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.
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
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.
1062 * src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py,
1063 src/tools/docmaker/tohtml.py: Updating the DocMaker tool.
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.
1071 * src/base/ftobjs.c (FT_Load_Glyph): Updated.
1072 Handle FT_LOAD_NO_AUTOHINT.
1073 (FT_Load_Char): Updated.
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.
1079 2002-08-20 Werner Lemberg <wl@gnu.org>
1081 * src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0.
1083 2002-08-20 David Turner <david@freetype.org>
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).
1090 Improve support of local extrema and stem edge points.
1092 * src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec
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
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
1102 (psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}):
1104 (PSH3_PointRec): New members `flags2' and `org_v'.
1105 (PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros.
1107 * src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler
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.
1121 * test/gview.c (draw_ps3_hint, ps3_draw_control_points): New
1123 Other small updates.
1125 * Jamfile: Small updates.
1127 2002-08-18 Arkadiusz Miskiewicz <misiek@pld.ORG.PL>
1129 * builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to
1130 make life easier for package maintainers.
1132 2002-08-18 Werner Lemberg <wl@gnu.org>
1134 * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of
1136 * src/bdf/bdfdrivr.c (BDF_GlyphLoad): Fix computation of
1139 2002-08-16 George Williams <gww@silcom.com>
1141 Add support for Apple composite glyphs.
1143 * include/freetype/config/ftoption.h
1144 (TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro.
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.
1151 2002-08-16 Werner Lemberg <wl@gnu.org>
1153 * src/cff/cffgload.c (cff_free_glyph_data),
1154 src/cff/cffload.c (cff_font_load): Use FT_UNUSED.
1156 2002-08-15 Werner Lemberg <wl@gnu.org>
1158 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'.
1159 * src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning.
1161 2002-08-15 Graham Asher <graham.asher@btinternet.com>
1163 Implemented the incremental font loading system for the CFF driver.
1164 Tested using the GhostScript-to-FreeType bridge (under development).
1166 * src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New
1168 (cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use
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
1174 * src/cff/cffload.h, src/cff/cffobjs.c: Updated.
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
1181 2002-08-06 Werner Lemberg <wl@gnu.org>
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/.
1189 2002-08-01 Graham Asher <graham.asher@btinternet.com>
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.
1197 2002-08-01 Graham Asher <graham.asher@btinternet.com>
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.
1205 * include/freetype/freeetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
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'.
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]:
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.
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.
1232 2002-07-30 David Turner <david@freetype.org>
1234 * include/freetype/ftincrem.h: Adding new experimental header file
1235 to demonstrate a "cleaner" API to support incremental font loading.
1237 * include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
1239 * src/tools/docmaker/*: Adding new (more advanced) version of
1240 the DocMaker tool, using Python's sophisticated regexps.
1242 2002-07-28 Werner Lemberg <wl@gnu.org>
1244 s/ft_memset/FT_MEM_SET/.
1245 s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate.
1247 2002-07-27 Werner Lemberg <wl@gnu.org>
1249 * src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
1251 2002-07-26 Werner Lemberg <wl@gnu.org>
1253 * src/truetype/ttgload.c (load_truetype_glyph)
1254 [FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/.
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'
1260 * src/truetype/ttgload.c (load_truetype_glyph): Remove statement
1262 * src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
1264 * src/pshinter/pshalgo3.c (psh3_hint_table_record,
1265 psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error
1268 2002-07-24 Graham Asher <graham.asher@btinternet.com>
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."
1276 2002-07-18 Graham Asher <graham.asher@btinternet.com>
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.
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.
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'.
1298 * include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H.
1299 (FT_Data): New structure to represent binary data.
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
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.
1315 * src/truetype/ttobjs.c (TT_Face_Init)
1316 [FT_CONFIG_OPTION_INCOREMENTAL]: Added the incremental loading
1317 system for the TrueType driver.
1319 * src/cid/cidgload.c (cid_load_glyph)
1320 [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
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.
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.
1334 2002-07-17 David Turner <david@freetype.org>
1336 Cleaning up the cache sub-system code; linear hashing is now the
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.
1343 FT_CONFIG_OPTION_USE_CMAPS is now the default.
1345 * include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove
1346 `get_char_index' and `get_next_char'.
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
1357 * src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext):
1359 * src/type42/t42objs.h: Updated.
1361 * src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char):
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.
1369 * src/base/ftobjs.c (open_face): Select Unicode cmap by default.
1371 * src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that
1372 prevented OpenType fonts to be recognized by FreeType.
1374 2002-07-11 David Turner <david@freetype.org>
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.
1380 * include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset'
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.
1390 * src/base/ftobject.c, src/base/fthash.c: Updated object sub-system
1391 and dynamic hash table implementation (still experimental, don't
1393 * include/freetype/internal/fthash.h: Updated.
1394 * include/freetype/internal/ftobjs.h (FT_LibraryRec): New member
1397 Fixing a bug in the Type 1 loader that prevented valid font bounding
1398 boxes to be loaded from multiple master fonts.
1400 * include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field.
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.
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.
1415 2002-07-10 David Turner <david@freetype.org>
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
1422 * src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support
1423 charmaps for CFF fonts.
1425 * src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated.
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.
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:
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
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
1478 2002-07-09 Owen Taylor <owen@redhat.com>
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).
1484 2002-07-07 David Turner <david@freetype.org>
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).
1490 * docs/DEBUG.TXT: Adding debugging support documentation.
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
1498 any:6 memory:4 io:3 or
1499 any:6,memory:4,io:3 or
1502 2002-07-07 Owen Taylor <owen@redhat.com>
1504 * src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for
1506 * src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field.
1507 * src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'.
1509 Adding support for hinter-specific bit flags, and the new
1510 FT_Set_Hint_Flags high-level API.
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.
1516 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
1517 `hint_flags' member.
1519 * src/base/ftobjs.c (FT_Set_Hint_Flags): New function.
1521 * include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags'
1524 * include/freetype/internal/pshints.h (T1_Hints_ApplyFunc,
1525 T2_Hints_ApplyFunc): Add parameter to pass hint flags.
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
1540 * src/pshinter/pshalgo3.h: Updated.
1542 2002-07-04 David Turner <david@freetype.org>
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.
1548 * src/autohint/ahhint.c: Removing compiler warnings.
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.
1554 2002-07-03 David Turner <david@freetype.org>
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.
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.
1570 2002-07-03 Owen Taylor <owen@redhat.com>
1572 Adding new algorithm based on Owen Taylor's recent work.
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.
1579 * src/pshinter/Jamfile, src/pshinter/rules.mk: Updated.
1581 2002-07-01 Owen Taylor <owen@redhat.com>
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.
1587 2002-07-01 Keith Packard <keithp@keithp.com>
1589 * src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next):
1590 Fixing the cmap 8 and 12 parsing routines.
1592 2002-07-01 David Turner <david@freetype.org>
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.
1601 * include/freetype/ftsynth.h: Updated.
1603 2002-06-26 David Turner <david@freetype.org>
1605 * include/freetype/internal/ftobject.h: Updating the object
1606 sub-system definitions (still experimental).
1608 * src/base/fthash.c (ft_hash_remove): Fixing a small reallocation
1611 * src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New
1613 * include/freetype/fttrigon.h: Updated.
1616 Adding path stroker component (work in progress).
1618 * include/freetype/ftstroker.h, src/base/ftstroker.c: New files.
1619 * src/base/Jamfile: Updated.
1621 * include/freetype/config/ftheader.h (FT_STROKER_H): New macro.
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.
1628 2002-06-24 Werner Lemberg <wl@gnu.org>
1630 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
1632 2002-06-21 David Turner <david@freetype.org>
1635 * Version 2.1.2 released.
1636 =========================
1639 2002-06-21 Roberto Alameda <ojancano@geekmail.de>.
1641 * include/freetype/internal/t42types.h (T42_Font): Removed since
1642 it is already in t42objs.h.
1643 (T42_Face): Use T1_FontRec.
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.
1650 2002-06-21 Detlef Würkner <TetiSoft@apg.lahn.de>
1652 * src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite
1655 2002-06-21 Sven Neumann <sven@convergence.de>
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
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.
1669 2002-06-21 David Turner <david@freetype.org>
1671 * README, docs/CHANGES: Preparing the 2.1.2 release.
1673 2002-06-19 Detlef Würkner <TetiSoft@apg.lahn.de>
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
1680 2002-06-19 Sebastien BARRE <sebastien@barre.nom.fr>
1682 * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning.
1684 2002-06-19 Werner Lemberg <wl@gnu.org>
1686 * src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo
1688 * src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with
1689 `||' to make code easier to read.
1691 2002-06-18 Roberto Alameda <ojancano@geekmail.de>.
1693 * src/type42/t42objs.c (t42_check_size_change): Removed.
1694 (T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size
1696 (T42_GlyphSlot_Load): Remove call to t42_check_size_change.
1698 2002-06-18 Detlef Würkner <TetiSoft@apg.lahn.de>
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.
1704 Provide default charmaps.
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.
1711 2002-06-17 Sven Neumann <sven@gimp.org>
1713 * src/pfr/pfrobjs.c (pfr_face_init): Fix typo.
1715 2002-06-16 Leonard Rosenthol <leonardr@lazerware.com>
1717 Updated Win32/VC++ projects to include the new PFR driver.
1719 * builds/win32/visualc/freetype.dsp: Updated.
1721 2002-06-16 Anthony Fok <fok@debian.org>
1723 Install freetype2.m4.
1725 * builds/unix/install.mk (install, uninstall): Handle it.
1727 2002-06-16 Detlef Würkner <TetiSoft@apg.lahn.de>
1729 Same fix for PFR driver.
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.
1735 2002-06-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1737 Fix glyph indices to make index zero always the undefined glyph.
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.
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'.
1751 * src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix
1754 2002-06-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1756 Add new cmap support to BDF driver.
1758 * src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]:
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
1764 (BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords.
1765 Implement new cmap handling.
1766 (bdf_driver_class): Updated.
1768 2002-06-14 Werner Lemberg <wl@gnu.org>
1770 * Makefile, configure, */*.mk, builds/unix/unix-def.in,
1771 docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/.
1773 2002-06-12 Werner Lemberg <wl@gnu.org>
1775 * src/bdf/bdflib.c: s/FT_Short/short/ for consistency.
1777 2002-06-11 David Turner <david@freetype.org>
1779 * builds/win32/ftdebug.c: Added a missing #endif.
1781 * src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings.
1783 Removed the bug in Type 42 driver that prevented un-hinted outlines
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'.
1794 * builds/win32/visualc/freetype.dsp: Updated.
1796 2002-06-09 David Turner <david@freetype.org>
1799 * Version 2.1.1 released.
1800 =========================
1803 2002-06-08 Juliusz Chroboczek <jch@pps.jussieu.fr>
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',
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.
1814 * src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value.
1816 2002-06-08 David Turner <david@freetype.org>
1818 * src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused
1819 the function to return invalid values.
1821 * src/cache/ftccache.i: Removing a typo that prevented
1822 the source's compilation.
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.
1828 2002-06-08 Detlef Würkner <TetiSoft@apg.lahn.de>
1830 * builds/amiga/smakefile, builds/amiga/makefile: Updated.
1832 2002-06-08 Werner Lemberg <wl@gnu.org>
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++.
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.
1845 * src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.
1847 2002-06-08 David Turner <david@freetype.org>
1849 * src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE,
1850 GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
1852 (ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
1854 (FTC_CMapCache_Lookup): Updated.
1856 Adding various experimental optimizations to the cache manager.
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'.
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]:
1874 (ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it.
1876 * src/cache/ftccache.i: New file.
1878 * src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE,
1879 GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
1881 (ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
1883 (FTC_SBitCache_Lookup): Updated.
1885 * src/type42/t42parse.c: Removing duplicate function.
1887 2002-06-07 Graham Asher <graham.asher@btinternet.com>
1889 * src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition
1890 from FT_EXPORT_DEF to FT_BASE_DEF.
1892 2002-06-07 David Turner <david@freetype.org>
1894 Fixed the bug that prevented the correct display of fonts with
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.
1902 (t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use
1905 (Get_Interface): Renamed to...
1906 (T42_Get_Interface): This.
1908 (T42_Open_Face, T42_Face_Done): Updated.
1909 (T42_Face_Init): Add new cmap support.
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.
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.
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):
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.
1937 (t42_keywords): Updated.
1939 * src/type42/Jamfile, src/type42/descrip.mms: Updated.
1941 2002-06-03 Werner Lemberg <wl@gnu.org>
1943 Add 8bpp support to BDF driver.
1945 * src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp.
1946 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto.
1947 * src/bdf/README: Updated.
1949 2002-06-02 Detlef Würkner <TetiSoft@apg.lahn.de>
1951 * src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array.
1953 2002-05-29 Detlef Würkner <TetiSoft@apg.lahn.de>
1955 * src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically.
1956 (_bdf_parse_glyphs): Use correct size for allocating
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
1963 2002-05-29 Werner Lemberg <wl@gnu.org>
1965 * src/bdf/descrip.mms, src/type42/descrip.mms: New files.
1966 * descrip.mms (all): Updated.
1968 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
1970 * src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.
1972 2002-05-28 Detlef Würkner <TetiSoft@apg.lahn.de>
1974 * builds/amiga/makefile, builds/amiga/smakefile,
1975 amiga/include/freetype/config/ftmodule.h: Updated to include
1976 support for BDF and Type42 drivers.
1978 * docs/modules.txt: Updated.
1980 2005-05-28 David Turner <david@freetype.org>
1982 * docs/CHANGES: Updating file for next release (2.1.1).
1984 * src/bdf/bdflib.c: Removing compiler warnings.
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).
1993 * include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not
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.
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.
2004 * src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that
2005 prevented family blue zones substitution from hapenning correctly.
2007 * include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding
2008 documentation comment.
2010 2002-05-28 Werner Lemberg <wl@gnu.org>
2012 * src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT
2014 Declare `stream' variable.
2016 * src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math
2017 with calls to `FT_MulDiv'.
2019 2002-05-28 David Turner <david@freetype.org>
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.
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).
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.
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.
2051 2002-05-24 Tim Mooney <enchanter@users.sourceforge.net>
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
2060 2002-05-22 Werner Lemberg <wl@gnu.org>
2062 * include/freetype/config/ftheader.h (FT_BEZIER_H): Removed.
2063 (FT_BDF_H): New macro for accessing `ftbdf.h'.
2065 * src/type42/t42drivr.c (hexval): Fix typo.
2067 2002-05-21 Martin Muskens <mmuskens@aurelon.com>
2069 * src/psaux/psobjs.c (T1Radix): New function.
2070 (t1_toint): Use it to handle numbers in radix format.
2072 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy
2073 for undocumented, obsolete opcode 15.
2075 2002-05-21 David Turner <david@freetype.org>
2077 * src/bdf/bdflib.c: Removed compiler warning, and changed all tables
2078 to the "static const" storage specifier (instead of simply
2081 * src/type42/t42drivr.c (hexval): Use more efficient code.
2082 Removing compiler warnings.
2083 * src/bdf/bdfdrivr.c: Removing compiler warnings.
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.
2091 2002-05-21 Werner Lemberg <wl@gnu.org>
2093 * src/bdf/README: Mention Microsoft's SBIT tool.
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
2101 2002-05-21 Roberto Alameda <ojancano@geekmail.de>.
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):
2113 2002-05-20 Werner Lemberg <wl@gnu.org>
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.
2119 2002-05-19 Werner Lemberg <wl@gnu.org>
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.
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):
2135 * include/freetype/config/ftstdlib.h (ft_sprintf): New alias for
2138 2002-05-18 Werner Lemberg <wl@gnu.org>
2140 * include/freetype/internal/fttrace.h: Added Type 42 driver
2142 * src/type42/t42drivr.c: Use it.
2144 * include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H):
2147 2002-05-17 Werner Lemberg <wl@gnu.org>
2149 * src/type42/Jamfile: New file.
2151 2002-05-14 Werner Lemberg <wl@gnu.org>
2153 Adding a driver for Type42 fonts written by Roberto Alameda
2154 <ojancano@geekmail.de>.
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.
2161 2002-05-12 Owen Taylor <otaylor@redhat.com>
2163 * src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables
2164 with a zero length value.
2166 2002-05-12 Michael Pfeiffer <michael.pfeiffer@utanet.at>
2168 * builds/beos/beos.mk: Include `link-std.mk'.
2170 2002-05-12 Werner Lemberg <wl@gnu.org>
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.
2177 * include/freetype/internal/t1types.h, src/type1/t1load.c,
2179 s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
2181 2002-05-06 Werner Lemberg <wl@gnu.org>
2183 * README: Add a note regarding libttf vs. libfreetype.
2185 2002-05-05 Werner Lemberg <wl@gnu.org>
2187 FreeType 2 can now be built in an external directory with the
2188 configure script also.
2190 * builds/freetype.mk (INCLUDES): Add `OBJ_DIR'.
2192 * builds/unix/detect.mk (have_mk): New variable to test for
2194 (unix-def.mk): Defined according to value of `have_mk'.
2195 * builds/unix/unix.mk (have_mk): New variable to test for
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
2203 * builds/unix/install.mk (install): Use `OBJ_BUILD' for installing
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.
2211 * docs/INSTALL: Document it.
2213 2002-05-04 David Turner <david@freetype.org>
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.
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.
2231 2002-05-02 Werner Lemberg <wl@gnu.org>
2233 * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo
2234 (0xFFFU -> 0xFFFFU).
2236 2002-05-01 Werner Lemberg <wl@gnu.org>
2238 * docs/INSTALL: Fix URL of makepp.
2240 2002-05-01 David Turner <david@freetype.org>
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")
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").
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.
2253 * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary
2254 search algorithm. Certain fonts contain more than 170 distinct
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).
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.
2267 * src/base/Jamfile: Updated.
2269 * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H,
2270 FT_INTERNAL_OBJECT_H): New macros.
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
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.
2281 2002-04-30 Wenlin Institute (Tom Bishop) <wenlin@wenlin.com>
2283 * src/base/ftmac.c (p2c_str): Removed.
2284 (file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for
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.
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
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.
2306 2002-04-30 Werner Lemberg <wl@gnu.org>
2308 `interface' is reserved on the Mac.
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/.
2323 Some more variable renames to avoid troubles on the Mac.
2325 * src/raster/ftraster.c:
2326 s/Unknown|Ascending|Descending|Flat/\1_State/.
2327 * src/smooth/ftgrays.c: s/TScan/TCoord/.
2329 Other changes for the Mac.
2331 * include/freetype/config/ftconfig.h: Define FT_MACINTOSH for
2333 * src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/.
2335 * src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always
2338 2002-04-29 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
2340 * descrip.mms (all): Add pfr driver.
2342 2002-04-28 Werner Lemberg <wl@gnu.org>
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.
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]:
2362 * src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for
2363 FT_CONFIG_OPTION_USE_CMAPS.
2365 2002-04-27 Werner Lemberg <wl@gnu.org>
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.
2374 2002-04-22 Werner Lemberg <wl@gnu.org>
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).
2380 2002-04-19 Werner Lemberg <wl@gnu.org>
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
2385 * src/pfr/pfrobjs.c (pfr_face_init): Fix debug message.
2386 (pfr_slot_load): Remove redundant local variable.
2388 2002-04-19 David Turner <david@freetype.org>
2390 Adding a PFR font driver to the FreeType sources. Note that it
2391 doesn't support embedded bitmaps or kerning tables yet.
2393 src/pfr/*: New files.
2395 * include/freetype/config/ftmodule.h,
2396 include/freetype/internal/fttrace.h, src/Jamefile: Updated.
2398 * src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c
2399 (T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback
2402 * include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New
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
2409 2002-04-18 David Turner <david@freetype.org>
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.
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.
2422 2002-04-17 David Turner <david@freetype.org>
2425 * Version 2.1.0 released.
2426 =========================
2429 2002-04-17 Michael Jansson <mjan@em2-solutions.com>
2431 * src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug
2432 that prevented the function to return the correct value.
2434 2002-04-16 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
2436 * src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator
2439 2002-04-15 David Turner <david@freetype.org>
2441 * docs/FTL.txt: Formatting.
2443 * include/freetype/config/ftoption.h: Reduce the size of the
2444 render pool from 32kByte to 16kByte.
2446 * src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler
2449 * include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed.
2451 * docs/CHANGES: Preparing 2.1.0 release.
2453 2002-04-13 Werner LEMBERG <wl@gnu.org>
2455 * src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid
2458 2002-04-12 David Turner <david@freetype.org>
2460 * README.UNX: Updated the Unix-specific quick-compilation guide to
2461 warn about the GNU Make requirement at compile time.
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,
2469 src/autohint/ahoptim.c,
2471 src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c,
2472 src/base/ftobjs.c, src/base/ftsystem.c,
2474 src/cache/ftcimage.c, src/cache/ftcsbits.c,
2476 src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c,
2478 src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
2480 src/pcf/pcfdriver.c, src/pcf/pcfread.c,
2482 src/psaux/t1cmap.c, src/psaux/t1decode.c,
2484 src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
2485 src/pshinter/pshrec.c,
2487 src/psnames/psmodule.c,
2489 src/raster/ftraster.c,
2491 src/sfnt/sfdriver.c, src/sfnt/ttload.c,
2493 src/smooth/ftgrays.c,
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,
2498 builds/unix/ftconfig.in, builds/vms/ftconfig.h,
2500 builds/amiga/src/base/ftdebug.c:
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.).
2506 This eases the porting of FreeType 2 to environments like
2507 XFree86 modules/extensions.
2509 Also removed many #include <string.h>, #include <stdlib.h>, etc.
2510 from the engine's sources where they are not needed.
2512 * src/sfnt/ttpost.c: Use macro name for psnames.h.
2514 2002-04-12 Vincent Caron <v.caron@zerodeux.net>
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.
2519 2002-04-11 David Turner <david@freetype.org>
2521 * README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release.
2523 * docs/FTL.txt: Updated license text to provide a preferred
2524 disclaimer and adjust copyright dates/extents.
2526 * include/freetype/cache/ftcglyph.h: Removing obsolete (and
2529 * Jamfile.in: New file.
2531 2002-04-11 Maxim Shemanarev <mcseemagg@yahoo.com>
2533 * src/smooth/ftgrays.c (gray_hline): Minor optimization.
2535 2002-04-02 Werner Lemberg <wl@gnu.org>
2537 Fixes from the stable branch:
2539 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
2541 [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
2542 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
2543 [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
2545 * src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
2546 output of FreeType 1.
2548 * src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
2549 bug that created un-even stem widths when hinting Postscript fonts.
2551 * src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes.
2553 2002-04-01 Werner Lemberg <wl@gnu.org>
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.
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/.
2565 2002-03-31 Yao Zhang <yaoz@vidar.niaaa.nih.gov>
2567 * src/truetype/ttobjs.c (TT_Size_Init): Fix typo.
2569 2002-03-31 Werner Lemberg <wl@gnu.org>
2571 * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/.
2572 * src/psaux/t1cmap.c: Ditto.
2573 * src/sfnt/ttcmap0.c: Ditto.
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
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
2589 (TT_Load_OS2): 16bit fix.
2591 2002-03-30 David Turner <david@freetype.org>
2593 * include/freetype/internal/tttypes.h: Adding comments to some of
2594 the TT_FaceRec fields.
2596 * src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings.
2598 * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}:
2600 (tt_face_get_name): Use them to properly extract an ascii font name.
2602 2002-03-30 Werner Lemberg <wl@gnu.org>
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.
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.
2615 * src/truetype/ttdriver.c, src/truetype/ttobjs.c,
2616 src/truetype/ttobjs.h: Renaming driver functions to the
2617 FT_<Subject>_<Action> scheme:
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
2627 2002-03-29 Werner Lemberg <wl@gnu.org>
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
2632 * builds/unix/ftconfig.in: Add argument to FT_LOCAL and
2634 * src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/.
2635 * builds/unix/configure.ac: Temporarily deactivate creation of
2637 * builds/unix/configure: Updated.
2639 2002-03-28 KUSANO Takayuki <AE5T-KSN@asahi-net.or.jp>
2641 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos.
2643 2002-03-28 Werner Lemberg <wl@gnu.org>
2645 * include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix
2647 * include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for
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
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'
2657 * src/type1/t1objs.c (T1_Face_Init): Use casts.
2659 2002-03-26 David Turner <david@freetype.org>
2661 * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c:
2662 Fixed a small bug in the FT_CMaps support code.
2664 2002-03-25 David Turner <david@freetype.org>
2666 * src/truetype/ttinterp.c (Norm): Replaced with...
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.
2673 2002-03-22 David Turner <david@freetype.org>
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).
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.
2684 * include/freetype/fterrdef.h: New file.
2685 * include/freetype/fterrors.h: Include it. It contains all error
2687 * include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New
2690 * include/freetype/internal/ftmemory.h, and a lot of other files:
2691 Changed the names of memory macros. Examples:
2693 MEM_Set => FT_MEM_SET
2694 MEM_Copy => FT_MEM_COPY
2695 MEM_Move => FT_MEM_MOVE
2699 REALLOC = >FT_REALLOC
2701 FT_NEW was introduced to allocate a new object from a _typed_
2704 Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by
2705 FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer
2708 This results in _lots_ of sources being changed, but makes the code
2709 more generic and less error-prone.
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.
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
2725 Also introduced the FT_PEEK_XXXX functions.
2727 * src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented
2729 (find_encoding): Removed.
2730 (CFF_Face_Init): Remove charmap support.
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
2736 2002-03-21 David Turner <david@freetype.org>
2738 * src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated
2739 to new FT_CMap definitions.
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.
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.
2750 2002-03-20 David Turner <david@freetype.org>
2752 * src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a
2753 memory allocation bug that was due to un-careful renaming of the
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
2760 * Renaming stream macros. Examples:
2762 FILE_Skip => FT_STREAM_SKIP
2763 FILE_Read => FT_STREAM_READ
2764 ACCESS_Frame => FT_FRAME_ENTER
2765 FORGET_Frame => FT_FRAME_EXIT
2768 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak.
2770 * include/freetype/internal/ftobjs.h: Changing the definition of
2771 FT_CMap_CharNextFunc slightly.
2773 * src/cff/*.c: Updating CFF type definitions.
2775 2002-03-14 David Turner <david@freetype.org>
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.
2781 FT_AutoHinter_Interface => FT_AutoHinter_ServiceRec
2782 FT_AutoHinter_Interface* => FT_AutoHinter_Service
2785 FT_AutoHinter_Get_Global_Func => FT_AutoHinter_GlobalGetFunc
2786 FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc
2789 * ahloader.h [_STANDALONE_]: Removed all conditional code.
2791 * include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the
2792 type definitions of the CFF font driver.
2794 CFF_Font => CFF_FontRec
2795 CFF_Font* => CFF_Font
2798 * include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating
2799 type definitions of the Windows FNT font driver.
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.
2810 FTDriver_initFace => FT_Face_InitFunc
2811 FTDriver_initGlyphSlot => FT_Slot_InitFunc
2814 * src/cid/cidobjs.c (CID_Face_Init): Remove dead code.
2816 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a
2817 few face method definitions:
2819 FT_PSName_Requester => FT_Face_GetPostscriptNameFunc
2820 FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc
2821 FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
2823 * src/base/ftapi.c: New file. It contains backwards compatibility
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:
2832 t1_token_any => T1_TOKEN_TYPE_ANY
2833 t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
2836 * include/freetype/internal/psglobals.h: Removed.
2837 * include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
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.
2845 * include/freetype/freetype.h, include/freetype/internal/ftgloadr.h:
2846 Updating type defintiions for the glyph loader.
2848 2002-03-13 Antoine Leca <antoine@oriolnet.com>
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).
2854 2002-03-08 Werner Lemberg <wl@gnu.org>
2856 * src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset.
2858 2002-03-07 Werner Lemberg <wl@gnu.org>
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):
2872 * src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
2873 * src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
2876 * include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
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.
2884 * src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
2885 (PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
2886 (PSH_AlignmentRec): Updated.
2888 * include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
2890 * include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
2891 * src/base/ftstream (FT_Get_Char): Rename to...
2892 (FT_Stream_Get_Char): This.
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):
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.
2921 2002-03-06 David Turner <david@freetype.org>
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.
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.
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.
2937 2002-03-06 Werner Lemberg <wl@gnu.org>
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):
2944 2002-03-05 David Turner <david@freetype.org>
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).
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".
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.
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.
2964 * include/freetype/internal/psnames.h: Add typedef for
2967 2002-03-05 Werner Lemberg <wl@gnu.org>
2969 * builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool
2971 Apply a small patch for AIX to make shared libraries work (this
2972 patch is already in the CVS version of libtool).
2974 * builds/unix/config.sub, builds/unix/config.guess: Updated to
2977 * builds/unix/configure.ac: Fix typo
2978 (AC_CONFIG_FILE->AC_CONFIG_FILES).
2980 * builds/unix/configure: Regenerated.
2982 2002-02-28 David Turner <david@freetype.org>
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 )'.
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.
2992 * src/base/ftobjs.c: Implement FT_Get_First_Char and
2995 * include/freetype/t1tables.h: Renaming structure types. This
3003 typedef PS_StructRec_
3005 } PS_StructRec, *PS_Struct;
3007 typedef PS_StructRec T1_Struct; /* backwards-compatibility */
3009 Hence, we increase the coherency of the source code by effectively
3010 using the `Rec' prefix for structure types.
3012 2002-02-27 David Turner <david@freetype.org>
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.
3019 * src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still
3020 experimental) code for OpenType Layout tables validation and
3023 * src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still
3024 experimental) code for Type 1 charmap processing.
3026 * src/sfnt/ttcmap0.c: New file. It contains a new, still
3027 experimental SFNT charmap processing support.
3029 * include/freetype/internal/ftobjs.h: Adding validation support as
3030 well as internal charmap object definitions (FT_CMap != FT_CharMap).
3032 2002-02-24 David Turner <david@freetype.org>
3034 * Renaming stream functions to the FT_<Subject>_<Action> scheme:
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
3047 FT_New_Stream( filename, stream ) =>
3048 FT_Stream_Open( stream, filename )
3050 (The function doesn't create the FT_Stream structure, it simply
3051 initializes it for reading.)
3053 FT_New_Memory_Stream( library, FT_Byte* base, size, stream ) =>
3054 FT_Stream_Open_Memory( stream, const FT_Byte* base, size )
3056 FT_Done_Stream => FT_Stream_Close
3057 FT_Stream_IO => FT_Stream_IOFunc
3058 FT_Stream_Close => FT_Stream_CloseFunc
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)
3063 * src/base/ftutil.c: New file. Contains all memory and list
3064 management code (previously in "ftobjs.c" and "ftlist.c",
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
3076 * src/base/ftgloadr.c: This new file.
3078 2002-02-22 Werner Lemberg <wl@gnu.org>
3080 * include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in
3081 enum to avoid compiler warnings.
3083 2002-02-21 David Turner <david@freetype.org>
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.
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
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 ...
3098 Some stuff from ftdebug.h has been moved to ...
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.
3104 * include/freetype/internal/internal.h: Updated.
3106 * src/base/ftobjs.c, src/base/ftstream.c: Updated.
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.
3112 * include/freetype/fterrors.h: Adding "#undef FT_ERR_CAT" and
3113 `#undef FT_ERR_XCAT" to avoid warnings with certain compilers (like
3116 * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
3117 (psh2_print_zone): This to avoid errors during compilation of debug
3120 * src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as
3123 2002-02-20 David Turner <david@freetype.org>
3125 * README: Adding "devel@freetype.org" address for bug reports.
3127 2002-02-20 Werner Lemberg <wl@gnu.org>
3129 * builds/unix/install.mk (check): New dummy target.
3132 2002-02-19 Werner Lemberg <wl@gnu.org>
3134 * builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first.
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
3146 (t1operator_seac): Comment out more dead code.
3147 * src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER'
3149 * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
3150 load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER'
3153 2002-02-18 Werner Lemberg <wl@gnu.org>
3155 * src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused
3157 * src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead
3159 * src/autohint/ahmodule.c (ft_autohinter_reset): Ditto.
3160 * src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable
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.
3168 2002-02-10 Roberto Alameda <ojancano@geekmail.de>
3170 Add support for ISOLatin1 PS encoding.
3172 * include/freetype/freetype.h (ft_encoding_latin_1): New tag
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'.
3181 2002-02-09 Werner Lemberg <wl@gnu.org>
3184 * docs/CHANGES: Minor fixes.
3187 * Version 2.0.8 released.
3188 =========================
3191 2002-02-08 David Turner <david@freetype.org>
3193 * docs/CHANGES: Updating for 2.0.8.
3195 * include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and
3196 removing `FT_Get_Next_Char' from the API (temporarily).
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
3202 2002-02-07 David Turner <david@freetype.org>
3204 * src/pcf/pcfread.c (pcf_load_font): Removed immature support of
3205 the AVERAGE_WIDTH property.
3207 2002-02-06 David Turner <david@freetype.org>
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.
3214 Note that the specification _requires_ these tables, but Adobe
3215 seems to ignore it completely.
3217 * src/sfnt/ttcmap.c: Removing compiler warnings.
3219 * src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt.
3220 (pcf_parse_metric, pcf_parse_compressed_metric): Removed. Code
3222 (pcf_get_metric): Here.
3223 (pcfSeekToType): Renamed to ...
3224 (pcf_seek_to_table_type): This.
3226 (pcfHasType): Renamed to ...
3227 (pcf_has_table_type): This.
3229 (find_property): Renamed to ...
3230 (pcf_find_property): This.
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).
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.
3247 * src/pcf/pcf.h (PCF_Done_Face): Removed.
3249 2002-02-06 Detlef Würkner <TetiSoft@apg.lahn.de>
3251 * src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak.
3253 * src/pcf/pcfread.c (pcf_load_font): Now handles the "AVERAGE_WIDTH"
3254 property to return correct character pixel (width/height) pairs for
3257 2002-02-04 Keith Packard <keithp@keithp.com>
3259 Adding the function `FT_Get_Next_Char', doing the obvious thing
3260 w.r.t. the selected charmap.
3262 * include/freetype/freetype.h: Add prototype.
3263 * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar'
3265 (FT_Driver_Class): Use it.
3266 * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func'
3268 (PSNames_Interface): Use it.
3269 * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func'
3271 (TT_CMapTable): Use it.
3273 * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing
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
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.
3294 * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for
3295 Unicode and Latin 1 encodings.
3297 2002-02-02 Keith Packard <keithp@keithp.com>
3299 * builds/unix/freetype-config.in: Add missing `fi'.
3302 * Version 2.0.7 released.
3303 =========================
3306 2002-02-01 David Turner <david@freetype.org>
3308 * include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7
3309 for the new release.
3311 2002-01-31 David Turner <david@freetype.org>
3313 * README, README.UNX, docs/CHANGES: Updating documentation for the
3316 2002-01-30 David Turner <david@freetype.org>
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.
3322 2002-01-29 David Turner <david@freetype.org>
3324 * configure: Fixed the script. It previously didn't accept more
3325 than one argument correctly. For example, when typing:
3327 ./configure --disable-shared --disable-nls
3329 the "--disable-nls" was incorrectly sent to the "make" program.
3331 2002-01-29 Werner Lemberg <wl@gnu.org>
3333 * README.UNX: Fix typo.
3334 * builds/unix/install.mk (uninstall): Fix library name for libtool.
3336 2002-01-28 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
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.
3343 2002-01-28 Roberto Alameda <ojancano@geekmail.de>
3345 * src/type1/t1load.c (parse_encoding): Set `loader->num_chars'.
3347 2002-01-28 Werner Lemberg <wl@gnu.org>
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>.
3353 2002-01-27 Giuliano Pochini <pochini@shiny.it>
3355 * src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused
3356 bad rendering of thin lines (less than one pixel thick).
3358 2002-01-25 Werner Lemberg <wl@gnu.org>
3360 * src/cff/cffdrivr.c (cff_get_name_index): Make last patch work
3363 2002-01-25 Martin Zinser <zinser@decus.de>
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.
3370 2002-01-25 WANG Yi <wangyi@founder.com.cn>
3372 * src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug.
3374 2002-01-21 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
3376 * docs/PATENTS: Typo fixed (thanks to Detlef "Hawkeye" Würkner) in
3377 the URL for the online resource.
3379 2002-01-18 Ian Brown <ian.brown@printsoft.de>
3381 * builds/win32/ftdebug.c: New file.
3382 * builds/win32/visualc/freetype.dsp: Updated.
3384 2002-01-18 Detlef Würkner <TetiSoft@apg.lahn.de>
3386 * builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9.
3387 * builds/amiga/README: Updated.
3389 2002-01-18 Ian Brown <ian.brown@printsoft.de>
3391 * builds/win32/visualc/freetype.dsp: Updated.
3393 2002-01-13 Werner Lemberg <wl@gnu.org>
3395 * builds/unix/freetype2.a4: The script was still buggy.
3396 * builds/unix/freetype-config.in: Make it really work for any install
3399 2002-01-10 Werner Lemberg <wl@gnu.org>
3401 * builds/unix/freetype2.a4: Fix some serious bugs.
3403 2002-01-09 David Turner <david@freetype.org>
3405 * builds/unix/configure.ac: Build top-level Jamfile.
3407 2002-01-09 Maxim Shemanarev <mcseemagg@yahoo.com>
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.
3413 2002-01-08 David Turner <david@freetype.org>
3415 Added some wrapper scripts to make the installation more
3418 * configure, install: New files.
3420 * INSTALL, README.UNX: Updated installation documentation to use the
3421 new 'configure' and 'install' scripts.
3423 2002-01-07 David Turner <david@freetype.org>
3426 * Version 2.0.6 released.
3427 =========================
3430 * docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release.
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.
3439 * include/freetype/config/ftoption.h: Setting default options for
3440 a release build (debugging off, bytecode interpreter off).
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).
3447 2002-01-05 David Turner <david@freetype.org>
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.
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).
3459 2002-01-04 David Turner <david@freetype.org>
3461 * README.UNX: Added special README file for Unix users.
3463 * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo.
3465 * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid
3466 of compiler warnings.
3468 * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning.
3470 2002-01-03 Werner Lemberg <wl@gnu.org>
3472 * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler
3475 2002-01-03 Keith Packard <keithp@keithp.com>
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
3482 2002-01-03 David Turner <david@freetype.org>
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).
3488 * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check):
3489 New function to check the consistency of outline data.
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.
3496 There still is a bug there, though.
3498 * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition.
3500 2001-12-30 David Turner <david@freetype.org>
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.
3506 2001-12-25 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
3508 * builds/dos/detect.mk: Correcting the order for Borland compilers:
3509 16-bit bcc was never selected, always overridden by 32-bit bcc32.
3511 2001-12-22 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
3513 * src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
3514 and fix incorrect computation of `available_sizes'.
3516 2001-12-22 David Turner <david@freetype.org>
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).
3522 2001-12-22 Detlef Würkner <TetiSoft@apg.lahn.de>
3524 * builds/amiga/*: Adaptations to latest changes.
3525 Support added for MorphOS.
3527 2001-12-22 Werner Lemberg <wl@gnu.org>
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
3533 * src/pshinter/pshalgo1.c (FT_COMPONENT): Define as
3535 * src/pshinter/pshalgo2.c (FT_COMPONENT): Define as
3537 * include/freetype/internal/ftdebug.h (FT_Trace): Updated.
3539 * docs/modules.txt: New file.
3541 2001-12-21 David Turner <david@freetype.org>
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.
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.
3555 * src/pshinter/pshalgo2.c: s/vertical/dimension/.
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.
3562 2001-12-20 Werner Lemberg <wl@gnu.org>
3564 * src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix
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.
3571 * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
3573 2001-12-20 David Turner <david@freetype.org>
3575 Added PostScript hinter support to the CFF and CID drivers.
3577 * include/freetype/internal/cfftypes.h (CFF_Font): New member
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
3597 (CFF_Init_Face): Renamed to ...
3598 (CFF_Face_Init): This.
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.
3609 * include/freetype/internal/t1types.h (CID_FaceRec): New member
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.
3627 * src/pshinter/pshrec.c (t2_hint_stems): Fixed.
3629 * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
3630 crashed the library on exit.
3632 * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
3633 transformation of hinted glyphs.
3635 * src/cid/cidload.c (cid_read_subrs): Fix error condition.
3637 * src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs
3638 routines were never released when CID faces were destroyed.
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.
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.
3650 2001-12-19 David Turner <david@freetype.org>
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.
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.
3660 * src/sfnt/sfobjs.c (SFNT_Load_Face): Make the "post" and "name"
3661 tables optional to load PCL fonts properly.
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.
3669 * src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline
3670 shifting bug in the monochrome renderer.
3672 * README: Updated version numbers to 2.0.6.
3674 2001-12-17 Werner Lemberg <wl@gnu.org>
3676 * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid
3679 2001-12-15 Werner Lemberg <wl@gnu.org>
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
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
3692 Remove compiler warning.
3693 (FTC_CMapCache_Lookup): Remove compiler warnings.
3694 (ftc_cmap_family_init): Ditto.
3695 (FTC_CMapCache_Lookup): Ditto.
3697 * builds/unix/configure.ac: Increase `version_info' to 8:0:2.
3698 * builds/unix/configure: Regenerated.
3700 2001-12-14 Werner Lemberg <wl@gnu.org>
3702 * builds/mac/README: Updated.
3704 2001-12-14 Scott Long <scott@swiftview.com>
3706 * src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when
3707 dealing with invalid fonts (i.e. glyph size < 10 bytes).
3709 2001-12-14 Sam Latinga <slouken@devolution.com>
3711 * builds/mac/freetype.make: A new Makefile to build with MPW on
3714 2001-12-14 David Turner <david@freetype.org>
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
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.
3726 2001-12-12 David Turner <david@freetype.org>
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.
3733 Started adding support for the Postscript hinter in the CFF module.
3735 * src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
3736 (CFF_Parse_CharStrings): Implement it.
3737 * src/cff/cffgload.h: Updated.
3739 2001-12-12 Werner Lemberg <wl@gnu.org>
3741 * builds/unix/freetype2.m4: Some portability fixes.
3743 2001-12-11 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
3745 * src/base/descrip.mms (OBJS): Add ftdebug.obj.
3747 2001-12-11 Werner Lemberg <wl@gnu.org>
3749 * src/sfnt/ttload.c (TT_Load_Generic_Header): Typos.
3751 2001-12-11 David Turner <david@freetype.org>
3753 * builds/unix/freetype-config.in: Modified the script to prevent
3754 passing "-L/usr/lib" to gcc.
3756 * docs/FTL.TXT: Simple fix (change "LICENSE.TXT" to "FTL.TXT").
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.
3762 * INSTALL: Updated the instructions to build shared libraries with
3763 Jam. They were simply wrong.
3765 * src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused
3766 slightly improper results for `FT_Cos' and `FT_Sin' (example:
3769 2001-12-11 Detlef Würkner <TetiSoft@apg.lahn.de>
3771 * include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE):
3772 Fixed incorrect argument types.
3774 2001-12-10 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
3776 * src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts
3777 by setting the "face->metrics.max_advance" correctly.
3779 2001-12-07 David Turner <david@freetype.org>
3781 * include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new
3783 * src/cache/ftcache.c: Updated.
3785 * src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/.
3787 2001-12-06 Leonard Rosenthol <leonardr@lazerware.com>
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.
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.
3800 2001-12-06 David Turner <david@freetype.org>
3802 * src/cache/Jamfile, src/cache/rules.mk: Updated.
3804 2001-12-06 Werner Lemberg <wl@gnu.org>
3806 * INSTALL: Small update.
3808 2001-12-05 David Turner <david@freetype.org>
3810 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for
3812 Comment out use of `origin'.
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.
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.
3823 2001-12-05 David Turner <david@freetype.org>
3825 * src/pshinter/pshalgo2.c (psh2_hint_table_init),
3826 src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler
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
3835 I still need to update the documentation in
3836 www/freetype2/docs/cache.html to reflect the new design though.
3838 * include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New
3840 (FT_CACHE_INTERNAL_CACHE_H): Updated.
3842 2001-12-05 David Krause <freetype@davidkrause.com>
3844 * docs/license.txt: s/X Windows/X Window System/.
3846 2001-12-04 Werner Lemberg <wl@gnu.org>
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
3856 * src/raster/ftraster.c (MEM_Set): Move definition down to avoid
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.
3863 * src/pshinter/pshrec.c (ps_hints_close): Remove redundant
3865 * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables
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()'.
3871 2001-11-20 Antoine Leca <antoineleca@multimania.com>
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.
3880 2001-11-20 David Turner <david@freetype.org>
3882 * src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting
3883 routine that created nasty alignment artefacts.
3885 * src/pshinter/pshrec.c, tests/gview.c: Debugging updates.
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.
3893 2001-10-29 David Turner <david@freetype.org>
3895 Adding experimental `gamma' support. This produces smoother glyphs
3896 at small sizes for very little cost.
3898 * src/smooth/ftgrays.c (grays_init_gamma): New function.
3899 (gray_raster_new): Use it.
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).
3905 * src/autohint/ahglyph.c (ah_outline_load,
3906 ah_outline_link_segments): Implement it.
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.
3913 (ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix
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').
3923 * tests/gview.c: Updated the debugging glyph viewer to show the
3924 hints generated by the "autohint" module.
3926 2001-10-27 David Turner <david@freetype.org>
3928 * src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that
3929 considerably lowered the performance of the abstract chunk cache.
3931 2001-10-26 David Turner <david@freetype.org>
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.
3938 2001-10-26 Leonard Rosenthol <leonardr@lazerware.com>
3940 * builds/mac/README: Updated to reflect my taking over the project
3941 and that is now being actively maintained.
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.
3948 2001-10-25 Leonard Rosenthol <leonardr@lazerware.com>
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
3954 2001-10-25 David Turner <david@freetype.org>
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.
3960 (FT_CONFIG_FORCE_INT64): Define.
3962 (FT_DEBUG_MEMORY): New macro.
3964 2001-10-24 Tom Kacvinsky <tkacvins@freetype.org>
3966 * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'.
3968 2001-10-23 David Turner <david@freetype.org>
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.
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.
3980 2001-10-23 David Turner <david@freetype.org>
3982 * src/raster/ftraster.c (Update): Removed to be inlined in ...
3985 2001-10-22 David Turner <david@freetype.org>
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!
3994 * src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed
3995 some bogus warnings.
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
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.
4007 * src/base/Jamfile: Include ftdbgmem.
4008 * src/base/rules.mk: Ditto.
4009 * src/base/ftbase.c: Include ftdbgmem.c.
4011 * include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY
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.
4018 2001-10-21 Tom Kacvinsky <tkacvins@freetype.org>
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.
4025 2001-10-21 Tom Kacvinsky <tkacvins@freetype.org>
4027 * src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to
4028 avoid a memory leak.
4030 2001-10-21 David Turner <david@freetype.org>
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).
4036 2001-10-20 Tom Kacvinsky <tkacvins@freetype.org>
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
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
4050 2001-10-19 David Turner <david@freetype.org>
4052 * src/smooth/ftgrays.c, src/pshinter/pshglob.h,
4053 src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of
4056 * src/pshinter/module.mk, src/pshinter/rules.mk: Adding control
4057 files to build the PostScript hinter with the "old" build system.
4059 2001-10-19 Jacob Jansen <joukj@hrem.stm.tudelft.nl>
4061 * descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build
4064 2001-10-18 David Turner <david@freetype.org>
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.
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.
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.
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.
4085 * src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph):
4086 Adding support to new PostScript hinter.
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.
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.
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.
4111 2001-10-17 David Turner <david@freetype.org>
4114 * Version 2.0.5 released.
4115 =========================
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).
4124 * src/cid/cidriver (cid_get_postscript_name): New function.
4125 (CID_Get_Interface): Handle `postscript_name' interface.
4127 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function.
4128 (SFNT_Get_Interface): Handle `postscript_name' interface.
4130 * src/type1/t1driver.c (t1_get_ps_name): New function.
4131 (Get_Interface): Handle `postscript_name' interface.
4133 * README, docs/CHANGES: Updated for 2.0.5 release.
4135 2001-10-08 David Turner <david@freetype.org>
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
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):
4153 * src/psnames/pstables.h: Regenerated.
4154 * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset.
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'.
4163 * doc/BUGS, doc/TODO: New documents.
4165 2001-10-07 Richard Barber <rich@solutionuk.com>
4167 * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented
4168 correct LRU behaviour.
4170 2001-10-07 David Turner <david@freetype.org>
4172 setjmp() and longjmp() are now used for rollback (i.e. when memory
4173 pool overflow occurs).
4175 Function names are now all uniformly prefixed with `gray_'.
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
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.
4192 2001-10-07 David Turner <david@freetype.org>
4194 Provide a public API to manage multiple size objects for a given
4195 FT_Face in the new header file `ftsizes.h'.
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
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
4207 2001-09-20 Detlef Würkner <TetiSoft@apg.lahn.de>
4209 * builds/amiga/*: Added port to Amiga with the SAS/C compiler.
4211 2001-09-15 Detlef Würkner <TetiSoft@apg.lahn.de>
4213 * src/type1/t1afm.c (T1_Done_AFM): Free `afm'.
4215 2001-09-10 Yao Zhang <yzhang@sharemedia.com>
4217 * src/sfnt/ttcmap.c (code_to_index2): Handle code values with
4218 hi-byte == 0 correctly.
4220 2001-09-10 Werner Lemberg <wl@gnu.org>
4222 * builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo.
4224 2001-08-30 Martin Muskens <mmuskens@aurelon.com>
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
4231 * src/type1/t1load.c (is_alpha): Now supports "+" in font names;
4232 this is used in embedded fonts.
4234 * src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that
4235 generated a dangling pointer reference.
4237 2001-08-30 Anthony Feik <afeick@hotmail.com>
4239 * src/type1/t1afm.c (T1_Read_Afm): Now correctly sets the flag
4240 FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files.
4242 2001-08-25 Werner Lemberg <wl@gnu.org>
4244 * src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of
4247 * include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]:
4248 Undefine FT_ERR_BASE before defining again.
4250 2001-08-22 Werner Lemberg <wl@gnu.org>
4252 * src/truetype/ttinterp.h: Fix prototype of TT_Move_Func.
4254 2001-08-21 Werner Lemberg <wl@gnu.org>
4256 * builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'.
4258 2001-08-21 David Turner <david@freetype.org>
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
4265 2001-08-17 Martin Muskens <mmuskens@aurelon.com>
4267 * src/base/ftcalc.c (FT_MulDiv): Fixed serious typo.
4269 2001-08-12 Werner Lemberg <wl@gnu.org>
4271 Updating to OpenType 1.3.
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.
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
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
4296 (TT_Load_CMap): Ditto.
4298 * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS
4301 2001-08-11 Werner Lemberg <wl@gnu.org>
4303 * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning.
4305 2001-08-09 Tom Kacvinsky <tkacvins@freetype.org>
4307 * src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to
4308 cff_get_glyph_name for consistency.
4310 (cff_get_glyph_index): Minor documentation change.
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.
4316 (get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency.
4318 2001-08-08 Tom Kacvinsky <tkacvins@freetype.org>
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.
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.
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.
4332 (cff_get_interface): Modified so that it returns the function
4333 `cff_get_name_index' when the "name_index" function is requested.
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.
4339 * include/freetype/internal/ftobjs.h (FT_Name_Index_Requester):
4340 New function pointer type defintion used in the function
4343 * include/freetype/freetype.h (FT_Get_Name_Index): Added
4344 documentation and prototype.
4346 2001-07-26 Werner Lemberg <wl@gnu.org>
4348 * builds/cygwin/*: Removed. Use the unix stuff instead.
4350 2001-07-26 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
4352 * builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated
4355 2001-07-17 Werner Lemberg <wl@gnu.org>
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
4361 (PS_Table_Add): Use FT_Offset for `new_size'.
4363 Add support for version 0.5 maxp tables.
4365 * src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it.
4366 (TT_Load_OS2): Initialize some values.
4368 2001-07-13 Werner Lemberg <wl@gnu.org>
4370 * src/base/ftsynth.c: Include ftcalc.h unconditionally.
4372 2001-07-07 David Turner <david@freetype.org>
4374 * src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread:
4375 Removed pedantic compiler warnings when the bytecode interpreter is
4378 2001-07-03 Werner Lemberg <wl@gnu.org>
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
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.
4388 2001-06-28 David Turner <david@freetype.org>
4390 * include/internal/ftstream.h: Modified the definitions
4391 of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness.
4393 2001-06-26 Werner Lemberg <wl@gnu.org>
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.
4399 2001-06-27 Wolfgang Domröse <porthos.domroese@harz.de>
4401 * src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset
4402 instead of FT_Int as type for `length' parameter.
4405 * Version 2.0.4 released.
4406 =========================
4409 2001-06-27 David Turner <david@freetype.org>
4411 * builds/unix/ftconfig.in: Changed the definition of the
4412 FT_CALLBACK_DEF macro.
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
4418 * builds/unix/ftconfig.in: Changed the definition of the
4419 FT_CALLBACK_DEF macro.
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).
4425 2001-06-26 Wolfgang Domröse <porthos.domroese@harz.de>
4427 * include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo.
4429 2001-06-24 David Turner <david@freetype.org>
4431 * src/base/ftcalc.c (ft_div64by32): Fixed the source to work
4432 correctly on 16-bit systems.
4434 2001-06-23 Anthony Fok <fok@debian.org>
4436 * debian/*: Added Debian package build directory for 2.0.4.
4438 2001-06-22 David Turner <david@freetype.org>
4440 * docs/PATENTS: Added patents disclaimer. This one was missing!
4442 * docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release.
4444 2001-06-20 Werner Lemberg <wl@gnu.org>
4446 * include/freetype/config/ftconfig.h: Add two more `L's to
4448 Add missing semicolons.
4450 * builds/toplevel.mk: Do similar change as for
4451 builds/unix/detect.mk.
4453 * include/freetype/freetype.h (FT_ENC_TAG): New version to make it
4455 * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto.
4457 * src/pcf/pcfread.c (pcf_get_encodings): Add cast.
4459 2001-06-19 David Turner <david@freetype.org>
4461 * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
4462 Updated the Visual C++ project (for the 2.0.4 release).
4464 * builds/unix/detect.mk: Added rule for AIX detection (which uses
4465 /usr/sbin/init instead of /sbin/init).
4467 * include/freetype/fterrors.h, src/*/*err*.h: Updated some of the
4468 error macros to simplify handling of new error scheme.
4470 2001-06-19 Werner Lemberg <wl@gnu.org>
4472 * include/freetype/fttypes.h (FT_ERROR_MODULE): New macro.
4474 2001-06-19 David Turner <david@freetype.org>
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).
4481 * include/freetype/freetype.h (FT_New_Memory_Face): Updated
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.
4489 * src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H.
4490 (FT_New_Memory_Face): Add `const' to function declaration.
4492 2001-06-18 Werner Lemberg <wl@gnu.org>
4494 Minor cleanups to remove compiler warnings.
4496 * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use
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'
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
4514 * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset'
4516 * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused
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'
4524 * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top'
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'
4530 (TT_Load_Glyph): Remove unused `memory' variable.
4531 * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants.
4533 2001-06-18 Werner Lemberg <wl@gnu.org>
4535 Make the new error scheme source compatible with older FT versions
4536 by introducing another layer.
4538 * include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New
4540 (FT_NOERRORDEF): Removed.
4541 * include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_.
4543 2001-06-16 Werner Lemberg <wl@gnu.org>
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
4550 2001-06-14 David Turner <david@freetype.org>
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.
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
4566 (Current_Ratio, Normalize): Simplify code.
4568 2001-06-11 Mike Owens <MOwens@amtdatasouth.com>
4570 * src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove
4573 2001-06-08 Werner Lemberg <wl@gnu.org>
4575 * builds/unix/configure.in: Renamed to ...
4576 * builds/unix/configure.ac: This to make sure that autoconf 2.50 is
4578 Run `autoupdate' on it.
4579 Increase `version_info' to 7:0:1.
4580 * builds/unix/configure: Regenerated.
4582 2001-06-08 David Turner <david@freetype.org>
4584 * src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that
4585 corrupted transformed glyphs that were auto-hinted (the transform
4588 Fixed a bug that returned an invalid linear width for composite
4591 * include/internal/tttypes.h (TT_Loader_): Two new elements `linear'
4593 * src/truetype/ttgload.c (load_truetype_glyph,
4594 compute_glyph_metrics): Use it.
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
4600 * src/base/ftoutln.c (FT_Outline_Render): Ditto.
4602 2001-06-07 Werner Lemberg <wl@gnu.org>
4604 Updating to libtool 1.4.0 and autoconf 2.50.
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.
4611 2001-06-06 Werner Lemberg <wl@gnu.org>
4613 Complete redesign of error codes. Please check ftmoderr.h for more
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
4622 * src/sfnt/ttpost.h: Move error codes to `fterrors.h'.
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.
4631 * include/freetype/ftmoderr.h: New file, defining the module error
4632 offsets. Its structure is similar to `fterrors.h'.
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.
4639 * include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New
4641 * include/freetype/config/ftoption.h
4642 (FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro.
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.
4648 All make files have been updated to include the local error files.
4650 2001-06-06 Werner Lemberg <wl@gnu.org>
4652 * src/cid/cidtokens.h: Replaced with...
4653 * src/cid/cidtoken.h: This file for 8+3 consistency.
4655 * src/raster/ftraster.c: Use macros for header file names.
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.
4662 2001-05-29 Werner Lemberg <wl@gnu.org>
4664 * INSTALL: Minor fixes.
4667 * Version 2.0.3 released.
4668 =========================
4671 2001-05-29 David Turner <david@freetype.org>
4673 * INSTALL, docs/CHANGES: Updated.
4675 2001-05-25 David Turner <david@freetype.org>
4677 Moved several documents from the top-level to the "docs" directory.
4679 * src/base/ftcalc.c (FT_DivFix): Small fix to return value.
4681 2001-05-16 David Turner <david@freetype.org>
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.
4688 2001-05-14 David Turner <david@freetype.org>
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.
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
4700 (ah_outline_compute_blue_edges): Add code to compute active blue
4702 * src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags
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.
4709 2001-05-12 Werner Lemberg <wl@gnu.org>
4711 * include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__.
4712 * include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ ->
4714 Include FT_FREETYPE_H.
4715 Beautified; added copyright.
4716 * src/base/fttrigon.c: Beautified; added copyright.
4718 2001-05-11 David Turner <david@freetype.org>
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.
4724 * include/freetype/fttrigon.h, src/base/fttrigon.c: New files,
4725 adding trigonometric functions to the core API (using Cordic
4727 * src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them.
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.
4735 * builds/freetype.mk: Fixed a problem with object deletions under
4736 Dos/Windows/OS/2 systems.
4738 Added new directory to hold tools and test programs.
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.
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
4750 * Jamfile: Fixed incorrect HDRMACRO argument.
4752 * TODO: Removed the cubic arc bbox computation note, since it has been
4754 * src/base/ftbbox.c (test_cubic_zero): Renamed to...
4755 (test_cubic_extrema): This function. Use `UL' for unsigned long
4758 * include/freetype/t1tables.h, include/freetype/config/ftoption.h:
4761 2001-05-10 David Turner <david@freetype.org>
4763 * src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak
4764 which happened when trying to open 0-size font files!
4766 2001-05-09 Werner Lemberg <wl@gnu.org>
4768 * include/freetype/internal/ftcalc.h: Move declaration of
4769 FT_SqrtFixed() out of `#ifdef FT_LONG64'.
4771 2001-05-08 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
4773 * src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width
4776 2001-05-08 David Turner <david@freetype.org>
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
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".
4787 2001-04-27 David Turner <david@freetype.org>
4789 * src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient
4790 normalization algorithm (invalid final bit position, and invalid
4793 2001-04-26 Werner Lemberg <wl@gnu.org>
4795 * builds/unix/config.guess, builds/unix/config.sub: Updated to
4796 latest versions from gnu.org.
4798 * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
4800 * include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
4802 * src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
4803 Fix compiler warnings.
4804 * src/base/ftcalc.c: Fix (potential) compiler warnings.
4806 2001-04-26 David Turner <david@freetype.org>
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 :-)
4812 * src/base/ftbbox.c: Removed invalid "#include FT_BEZIER_H" line.
4814 2001-04-25 David Turner <david@freetype.org>
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 :-)
4820 * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c:
4821 Fixed the bezier stack depths.
4823 * src/base/ftcalc.c (FT_MulFix): Minor rounding fix.
4825 * builds/beos: Added BeOS-specific files to the old build system
4826 (no changes were necessary to support BeOS in the Jamfile though).
4828 2001-04-20 David Turner <david@freetype.org>
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.
4835 * builds/win32/freetype.dsp: Updated the Visual C++ project file.
4836 Doesn't create a DLL yet.
4838 * cffgload.c: Removed a compilation warning.
4840 2001-04-10 Tom Kacvinsky <tkacvins@freetype.org>
4842 * t1load.c (parse_charstrings): Changed code for placing .notdef
4843 glyph into slot 0 so that we no longer have a memory access
4846 * t1load.h: In structure T1_Loader, added swap_table (of type
4847 PS_Table) to facilitate placing the .notdef glyph into slot 0.
4849 2001-04-10 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
4851 * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value.
4853 2001-04-09 Laurence Withers <lwithers@lwithers.demon.co.uk>
4855 * builds/dos/detect.mk: Add support for bash.
4857 2001-04-05 Werner Lemberg <wl@gnu.org>
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.
4864 * builds/win32/win32-def.mk (BUILD): Fix typo.
4866 * builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT.
4867 This is already used in the link_*.mk files.
4869 2001-04-03 Werner Lemberg <wl@gnu.org>
4871 * src/*/Jamfile: Slight changes to make files more cryptic.
4873 2001-04-03 Werner Lemberg <wl@gnu.org>
4875 * Jamfile, src/Jamfile, src/*/Jamfile: Formatted. Slight changes
4876 to give files identical structure.
4878 2001-04-02 Werner Lemberg <wl@gnu.org>
4880 * CHANGES: Reformatted, minor fixes.
4882 * README: Formatting.
4883 * include/freetype/freetype.h: Formatting.
4885 * Jamfile: Fix typo.
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
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_*'.
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'.
4906 * src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset'
4908 * src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'.
4910 * src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
4912 * src/cid/cidobjs.c (CID_Done_Driver): Ditto.
4913 * src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
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'.
4919 2001-04-02 Tom Kacvinsky <tkacvins@freetype.org>
4921 * src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer
4922 dereference. Submitted by Herbert Duerr <duerr@sun.com>
4924 2001-03-26 Tom Kacvinsky <tkacvins@freetype.org>
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>
4930 2001-03-24 David Turner <david.turner@freetype.org>
4932 * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to
4933 the source tree. See www.freetype.org/jam/index.html for details.
4936 * Version 2.0.2 released.
4937 =========================
4940 2001-03-20 Werner Lemberg <wl@gnu.org>
4942 * builds/win32/detekt.mk: Fix .PHONY target for Intel compiler.
4944 2001-03-20 David Turner <david.turner@freetype.org>
4946 * include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
4947 Renamed "ftnames.h" to "ftsnames.h", and FT_NAMES_H to
4950 * docs/docmaker.py: Added generation of INDEX link in table of
4953 * INSTALL, docs/BUILD: Updated documentation to indicate that the
4954 compilation process has changed slightly (no more `src' required in
4957 * builds/*/*-def.mk: Changed the objects directory from "obj" to
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.
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"
4970 2001-03-20 Werner Lemberg <wl@gnu.org>
4972 * builds/unix/configure.in: Add $ft_version.
4973 * builds/unix/freetype-config.in: Use it.
4974 * builds/unix/configure: Updated.
4976 2001-03-19 Tom Kacvinsky <tkacvins@freetype.org>
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.
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.
4986 2001-03-17 David Turner <david.turner@freetype.org>
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.
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>.
4996 * include/config/ftheader.h: Added new section describing the #include
4999 2001-03-17 Tom Kacvinsky <tkacvins@freetype.org>
5001 * src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed
5002 values for the bounding box numbers.
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).
5008 2001-03-16 Tom Kacvinsky <tkacvins@freetype.org>
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().
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>
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>
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>
5029 2001-03-12 Werner Lemberg <wl@gnu.org>
5031 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error
5034 * INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer.
5036 2001-03-12 Tom Kacvinsky <tkacvins@freetype.org>
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.
5041 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Adjust
5042 for lenIV seed bytes at the start of a decrypted subroutine.
5044 * src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only
5047 * src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only
5050 2001-03-11 Werner Lemberg <wl@gnu.org>
5054 * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to
5055 avoid compiler warnings.
5057 2001-03-10 Tom Kacvinsky <tkacvins@freetype.org>
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.
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
5071 (parse_font_bbox): Changed to use FT_Fixed number handling.
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
5078 2001-03-10 Henrik Grubbström <grubba@roxen.com>
5080 * src/*/*.c: Added many casts to make code more 64bit-safe.
5082 2001-03-07 Werner Lemberg <wl@gnu.org>
5084 * INSTALL, docs/BUILD: We need GNU make 3.78 or newer.
5086 2001-03-07 Tom Kacvinsky <tkacvins@freetype.org>
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'.
5093 (T1_Done_Face): Free `char_name' table to avoid a memory leak.
5094 Submitted by Sander van der Wal <svdwal@xs4all.nl>.
5096 2001-03-05 Tom Kacvinsky <tkacvins@freetype.org>
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>.
5102 2001-03-04 Antoine Leca <Antoine.Leca@renault.fr>
5104 * include/freetype/ttnameid.h: Correct a stupid typo which prevented
5105 correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice).
5107 2001-03-04 Werner Lemberg <wl@gnu.org>
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.
5116 * builds/unix/detect.mk: Add test for Hurd.
5117 * builds/hurd/detect.mk: Removed.
5119 2001-03-04 Sander van der Wal <svdwal@xs4all.nl>
5121 * src/psnames/pstables.h: Add more `const'.
5122 * src/pcf/pcfutil.c: Ditto.
5124 2001-03-04 Werner Lemberg <wl@gnu.org>
5126 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo
5127 (FT_Glyph_Done -> FT_Done_Glyph).
5129 2001-03-01 Antoine Leca <Antoine.Leca@renault.fr>
5131 * include/freetype/ttnameid.h: Added some new Microsoft language
5132 codes and LCIDs as found in Office Xp.
5134 2001-02-28 David Turner <david.turner@freetype.org>
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
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>.
5144 2001-02-22 David Turner <david.turner@freetype.org>
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
5150 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when
5151 bitmap rendering fails (thanks to Graham Asher).
5153 2001-02-13 Werner Lemberg <wl@gnu.org>
5155 * docs/docmaker.py (DocSection::add_element): Use
5156 `self.print_error()'.
5158 * builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org).
5160 2001-02-13 David Turner <david.turner@freetype.org>
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.
5166 * src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format
5167 were not correctly copied.
5169 2001-02-08 Tom Kacvinsky <tkacvins@freetype.org>
5171 * src/cff/cffparse.c (cff_parse_font_matrix): Removed an
5172 unnecessary fprintf( stderr, ... ).
5174 2001-02-07 Tom Kacvinsky <tkacvins@freetype.org>
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.
5180 * src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get
5181 the units_per_EM from the FontMatrix.
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).
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.
5190 * src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units
5191 per EM from the CFF dictionary, if available.
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.
5197 * src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric
5198 character. This is so that font names with `-' are fully parsed,
5201 2001-02-02 Werner Lemberg <wl@gnu.org>
5203 * src/psaux/psobjs.c (shift_elements): Remove if clause (which is
5206 (reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC()
5207 + MEM_Copy() to avoid a memory bug.
5209 2001-02-01 David Turner <david.turner@freetype.org>
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.
5215 2001-01-30 Antoine Leca <Antoine.Leca@renault.fr>
5217 * include/freetype/ttnameid.h: Latest updates to Microsoft language
5220 2001-01-24 Tom Kacvinsky <tkacvins@freetype.org>
5222 * src/cff/t1load.c (parse_font_matrix): Added heuristic to get
5223 units_per_EM from the font matrix.
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.
5229 (T1_Open_Face): Deleted empty subroutines array test to make sure
5230 fonts with no subroutines still are parsed.
5232 2001-01-17 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
5234 * src/pcfread.c (pcf_get_properties, pcf_get_metrics,
5235 pcf_get_bitmaps): Fix compiler errors.
5237 2001-01-11 David Turner <david.turner@freetype.org>
5239 * src/pcf/pcfread.c: Removed some compilation warnings related
5240 to comparison of signed vs. unsigned integers.
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.
5246 2001-01-11 Matthew Crosby <mcrosby@marthon.org>
5248 * builds/unix/freetype-config.in: Fix problems with separate
5249 --prefix and --exec-prefix.
5251 2001-01-11 David Turner <david.turner@freetype.org>
5253 * docs/docmaker.py: Added cross-references generation as well as
5254 more robust handling of pathname wildcard matching.
5256 2001-01-10 Werner Lemberg <wl@gnu.org>
5258 * docs/docmaker.py: Minor improvements to reduce unwanted spaces
5259 and empty lines in output.
5261 2001-01-09 David Turner <david.turner@freetype.org>
5263 * docs/docmaker.py: Improved script to generate table of contents
5264 and index pages. It also supports wildcards on non Unix systems.
5266 * include/freetype/*.h, include/freetype/cache/*.h: Updated comments
5267 to include section definitions/delimitations for the API Reference
5270 * include/freetype/freetype.h: Moved declaration of
5271 `FT_Generic_Finalizer' and the `FT_Generic' structure to...
5272 * include/freetype/fttypes.h: here.
5274 2001-01-04 Werner Lemberg <wl@gnu.org>
5276 * include/freetype/ttnameid.h: Updated Unicode code range comments.
5278 2001-01-03 Tom Kacvinsky <tkacvins@freetype.org>
5280 * src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}.
5282 * include/freetype/internal/internal.h: Changed to use cfftypes.h
5283 (cfferrs.h) instead of t2types.h (t2errors.h, respectively).
5285 * include/freetype/internal/cfftypes.h: Merged in changes from
5286 t2types.h and made this the canonical `types' header for the CFF
5289 * include/freetype/internal/t2types.h: This file was merged with
5290 cfftypes.h and is no longer necessary.
5292 * include/freetype/internal/t2errors.h: Renamed to cfferrs.h.
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).
5300 * src/cff/t2gload.h: Renamed cffgload.h.
5302 * src/cff/t2gload.c: Renamed cffgload.c
5304 2000-01-02 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
5306 * builds/vms: Support files for VMS architecture added.
5307 * descrip.mms, src/*/descrip.mms: VMS makefiles added.
5308 * README.VMS: New file.
5310 2000-01-01 Werner Lemberg <wl@gnu.org>
5312 * LICENSE.TXT: Added info about PCF driver license.
5314 2001-01-01 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
5316 * src/pcf/*: New driver module for PCF font format (used in
5318 * include/freetype/internal/ftdebug.h (FT_Trace): Added values for
5320 * include/freetype/internal/pcftypes.h: New file.
5321 * include/freetype/config/ftmodule.h: Added PCF driver module.
5323 2001-01-01 Werner Lemberg <wl@gnu.org>
5325 * src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type.
5327 2000-12-31 Werner Lemberg <wl@gnu.org>
5329 * builds/modules.mk (clean_module_list): Fixed deletion of module
5330 file in case `make make_module_list' is called before `make setup'.
5332 2000-12-30 Werner Lemberg <wl@gnu.org>
5334 * src/cff/cffload.c (CFF_Load_Charset): Improved error messages.
5335 (CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable
5338 2000-12-30 Tom Kacvinsky <tkacvins@freetype.org>
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.
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
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
5356 cff_isoadobe_charset
5358 cff_expertsubset_charset
5359 cff_standard_encoding
5362 so that the encoding/charset parser can handle predefined encodings and
5365 2000-12-24 Tom Kacvinsky <tkacvins@freetype.org>
5367 * src/cff/t2gload.c (T2_Load_Glyph): Added code so that the font
5368 transform is applied.
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
5375 2000-12-22 Tom Kacvinsky <tkacvins@freetype.org>
5377 * src/autohint/ahhint.c (ah_hinter_load_glyph):
5378 Removed unnecessary comments and commented-out code.
5380 2000-12-21 David Turner <david.turner@freetype.org>
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 :-)
5385 2000-12-21 Tom Kacvinsky <tkacvins@freetype.org>
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.
5392 2000-12-17 Werner Lemberg <wl@gnu.org>
5394 * *.mk: Added lots of `.PHONY' targets.
5396 2000-12-17 Karsten Fleischer <kfleisc1@ford.com>
5398 * *.mk: Implemented `platform' target to disable auto-detection.
5400 2000-12-14 Werner Lemberg <wl@gnu.org>
5402 * docs/design/modules.html: Removed. Covered by design-*.html.
5404 * INSTALL: Added info about makepp.
5406 2000-12-14 David Turner <david.turner@freetype.org>
5408 Added support for clipped direct rendering in the smooth renderer.
5409 This should not break binary compatibility of existing applications.
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.
5418 * INSTALL: Updated installation instructions on Win32, listing the
5419 new "make setup list" target used to list supported
5422 * src/raster/ftraster.c (ft_black_render): Test for unsupported
5423 direct rendering before testing arguments.
5425 2000-12-13 David Turner <david.turner@freetype.org>
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.
5433 * builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files.
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.
5440 * src/base/ftdebug.c: Added dummy symbol to avoid empty file if
5441 conditionals are off.
5443 2000-12-13 Werner Lemberg <wl@gnu.org>
5445 * builds/unix/ftsystem.c: Fixed typos. Fixed inclusion of wrong
5448 2000-12-12 Werner Lemberg <wl@gnu.org>
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.
5457 * builds/unix/ft2unix.h: Adapted.
5459 * src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream,
5460 ft_close_stream): Use FT_CALLBACK_DEF.
5462 * builds/unix/ftsystem.c: Use new header scheme.
5463 (FT_Done_Memory): Use free() from FT_Memory structure.
5465 * src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes.
5467 2000-12-11 Werner Lemberg <wl@gnu.org>
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.
5473 2000-12-09 Werner Lemberg <wl@gnu.org>
5475 * builds/unix/detect.mk: Remove unused USE_CFLAGS variable.
5477 2000-12-08 Werner Lemberg <wl@gnu.org>
5479 * */*.h: Changed body inclusion macro names to start and end with
5480 `__' (those which haven't converted yet). Fixed minor conversion
5483 * src/winfonts/winfnt.c: Updated to new header inclusion scheme.
5485 * src/truetype/ttinterp.c: Remove unused CALC_Length() macro.
5487 2000-12-07 David Turner <david.turner@freetype.org>
5489 * */*.[ch]: Changed source files to adhere to the new
5490 header inclusion scheme. Not completely tested but works for now
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.
5512 * src/cff/cff.c, src/cff/rules.mk: Updated.
5514 2000-12-06 David Turner <david.turner@freetype.org>
5516 * src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak.
5518 2000-12-06 Werner Lemberg <wl@gnu.org>
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
5526 * docs/docmaker.py: Formatting.
5528 2000-12-05 David Turner <david.turner@freetype.org>
5530 * src/psaux/psauxmod.c: Fixed a broken inclusion of component
5531 header files (an FT_FLAT_COMPILE test was missing).
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
5537 * src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug:
5538 The ANSI "free()" function was called instead of "memory->free()".
5540 * docs/docmaker.py: Added section filtering, multi-page generation
5541 (index page generation is still missing though).
5543 2000-12-04 David Turner <david.turner@freetype.org>
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.
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.
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.
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.
5562 2000-12-01 David Turner <david.turner@freetype.org>
5565 * Version 2.0.1 released.
5566 =========================
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.
5573 * CHANGES: Added a summary of changes between 2.0.1 and 2.0.
5575 * builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes
5576 to allow compilation under Unix with the Unix-specific config
5579 2000-12-01 Werner Lemberg <wl@gnu.org>
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.
5589 2000-11-30 Werner Lemberg <wl@gnu.org>
5591 * builds/toplevel.mk (.PHONY): Adding `distclean'.
5592 * builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
5595 2000-11-30 David Turner <david.turner@freetype.ogr>
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.
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
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".
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'
5621 2000-11-30 Tom Kacvinsky <tkacvins@freetype.org>
5623 * t2objs.c (T2_Init_Face): Added calculation of `face->height' for
5626 * t1objs.c (T1_Init_Face): Fixed computation of `face->height'.
5628 2000-11-29 David Turner <david.turner@freetype.org>
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.
5634 2000-11-29 Werner Lemberg <wl@gnu.org>
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.
5644 * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init),
5645 src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT.
5647 2000-11-29 Werner Lemberg <wl@gnu.org>
5649 * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only
5652 * src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set
5653 `size->strike_index' only conditionally.
5655 * src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only
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.
5662 2000-11-29 ??? ??? <darin@eazel.com>
5664 * include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT
5665 with a direct solution (which also satifies picky compilers).
5667 2000-11-28 YAMANO-UCHI Hidetoshi <mer@din.or.jp>
5669 * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with
5670 disabled interpreter also.
5672 * src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect
5675 2000-11-26 Tom Kacvinsky <tkacvins@freetype.org>
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.
5681 2000-11-26 Werner Lemberg <wl@gnu.org>
5683 * builds/ansi/ansi.mk: Fix inclusion order of files.
5685 2000-11-26 Keith Packard <keithp@keithp.com>
5687 * src/type1/t1objs.c (T1_Init_Face): Compute style flags.
5689 2000-11-26 Werner Lemberg <wl@gnu.org>
5691 * builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and
5694 2000-11-23 Werner Lemberg <wl@gnu.org>
5696 * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt
5697 function from PSAux module.
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.
5706 * src/type1/t1parse.h: Adapted.
5708 2000-11-22 Tom Kacvinsky <tkacvins@freetype.org>
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'
5714 * src/cff/t2parse.c (parse_t2_real): Fixed real number parsing
5717 * src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a
5718 sid that was off by one.
5720 2000-11-16 David Turner <david@freetype.org>
5722 * src/autohint/ahtypes.h (AH_Hinter): Added new fields to control
5723 auto-hinting of synthetic Type 1 fonts.
5725 * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
5726 Added auto-hinting support of synthetic Type 1 fonts.
5728 2000-11-12 Tom Kacvinsky <tkacvins@freetype.org>
5730 * src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change
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.
5736 2000-11-11 Werner Lemberg <wl@gnu.org>
5738 * builds/win32/visualc/freetype.dsp: Fix raster1->raster and
5741 2000-11-11 Tom Kacvinsky <tkacvins@freetype.org>
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
5748 2000-11-11 Werner Lemberg <wl@gnu.org>
5750 * builds/cygwin/cygwin-def.in: Same fix as previous.
5752 2000-11-10 Tom Kacvinsky <tkacvins@freetype.org>
5754 * builds/unix/unix-def.in: Add
5756 INSTALL_PROGRAM := @INSTALL_PROGRAM@
5757 INSTALL_SCRIPT := @INSTALL_SCRIPT@
5759 so that installation of freetype-config does not fail.
5761 2000-11-10 Werner Lemberg <wl@gnu.org>
5763 * builds/cygwin/freetype-config.in, builds/unix/freetype-config.in:
5764 Move test down for empty --exec-prefix.
5767 * builds/cygwin/install.mk, builds/unix/install.mk: Use
5768 $(INSTALL_SCRIPT) for installation of freetype-config.
5770 * builds/cygwin/install.mk: Fix clean target names.
5772 2000-11-09 David Turner <david@freetype.org>
5775 * Version 2.0 released.
5776 =======================
5780 version-control: never