1 2004-06-23 Werner Lemberg <wl@gnu.org>
3 * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare
4 FT_QAlloc_Debug and FT_QRealloc_Debug.
6 * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages.
7 (FT_QRealloc): Call FT_QAlloc if original pointer is NULL.
10 2004-06-23 David Turner <david@freetype.org>
12 * include/freetype/internal/ftmemory.h, src/base/ftutil.c
13 (FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug,
14 FT_QRealloc_Debug): New functions that perform allocation without
15 zero-ing out the corresponding blocks.
17 * include/freetype/internal/ftmemory.h (FT_MEM_QALLOC,
18 FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY,
19 FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY,
20 FT_QRENEW_ARRAY): New macros.
22 * src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC.
23 * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use FT_QNEW_ARRAY.
24 * src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY.
26 * src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics,
27 tt_face_load_gasp): Use FT_QNEW_ARRAY.
28 (tt_face_load_kern): Use FT_QNEW_ARRAY.
29 Small optimization in the kerning table verifier; this speeds up
30 TrueType face opening by about 7%.
31 (tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC.
33 * include/freetype/config/ftmodule.h: Changed the order of modules,
34 putting TrueType and Type 1 first. This dramatically improves the
35 performance of face open/close operations. For example, putting the
36 TrueType driver first in the list results in a 5x speedup when
39 The very problem is that both the PCF and BDF drivers do a lot more
40 than necessary to detect that they cannot handle a font file.
42 2004-06-22 Werner Lemberg <wl@gnu.org>
44 * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties,
45 pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve
48 * src/pcf/pcfdrivr.c (FT_COMPOMENT): Move up.
49 (PCF_Face_Init): Simplify code.
51 * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'.
53 * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start),
54 src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/.
56 * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs.
58 (BDF_Glyph_Load): Use `default_glyph' for undefined glyph.
60 * docs/CHANGES: Updated.
62 2004-06-21 Werner Lemberg <wl@gnu.org>
64 * docs/CHANGES: Updated.
66 2004-06-21 David Turner <david@freetype.org>
68 * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
69 load_truetype_glyph): Don't access (unrounded)
70 `TT_Size.root.metrics' but (rounded) `TT_Size.metrics'. This fixes
71 a scaling bug that caused incorrect rendering when the bytecode
72 interpreter was enabled.
74 2004-06-14 Huw D M Davies <h.davies1@physics.ox.ac.uk>
76 * src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem
77 based on pixel_width and pixel_height.
78 (FNT_Size_Set_Pixels): Updated.
80 2004-06-14 Werner Lemberg <wl@gnu.org>
82 * src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h.
83 Reported by Hyvärinen Jyrki Juhani.
85 2004-06-11 Werner Lemberg <wl@gnu.org>
87 * docs/CHANGES: Updated.
89 2004-06-10 David Turner <david@freetype.org>
91 * src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c,
92 src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed.
95 * src/raster/ftraster.c (Alignment, PAlignment): New union to fix
96 problems with 64bit systems.
97 (AlignProfileSize): Use it.
99 2004-06-08 David Turner <david@freetype.org>
101 * include/freetype/freetype.h (FT_GlyphMetrics): Move `lsb_delta'
102 and `rsb_delta' elements to...
103 (FT_GlyphSlotRec): Here to retain binary compatibility with older
107 * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning.
109 * src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization
110 of slot->metrics.width and slot->metrics.height when loading a
111 Windows FNT glyph. Thanks to Huw Davies.
113 * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change
114 return type to FT_Bool.
116 * src/cache/ftbasic.c (ftc_basic_family_compare): Change return
119 * src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make
120 the former call the latter, not vice versa.
121 (FTC_Cache_Done, ftc_cache_done): Ditto.
123 * src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make
124 the former call the latter, not vice versa.
125 (FTC_GCache_Init, ftc_gcache_init): Ditto.
126 (FTC_GCache_Done, ftc_gcache_done): Ditto.
128 * src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the
129 former call the latter, not vice versa.
130 (FTC_INode_Weight, ftc_inode_weight): Ditto.
132 * src/cache/ftcmanag.c (ftc_size_node_compare,
133 ftc_size_node_compare_faceid, ftc_face_node_compare): Change return
136 * src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the
137 former call the latter, not vice versa.
138 (FTC_SNode_Weight, ftc_snode_weight): Ditto.
139 (FTC_SNode_Compare, ftc_snode_compare): Ditto.
141 * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache
144 2004-06-05 Werner Lemberg <wl@gnu.org>
146 * src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and
147 `rsb_delta' in slot->metrics and tune side bearings slightly.
149 2004-06-04 Werner Lemberg <wl@gnu.org>
151 * docs/CHANGES: Updated.
153 2004-06-04 David Chester <davidchester@gmx.net>
155 Improve inter-letter spacing for autohinted glyphs.
157 * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements
158 `lsb_delta' and `rsb_delta'.
160 * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and
161 `rsb_delta' in slot->metrics and tune side bearings slightly.
163 2004-06-04 David Turner <david@freetype.org>
165 * src/autofit/*: Important fixes to the auto-fitter. The output
166 now seems to be 100% equivalent to the auto-hinter, while being
167 about 2% faster (which proves that script-specific algorithm
168 selection isn't a performance problem).
170 To test it, change `autohint' to `autofit' in
171 <freetype/config/ftmodule.h> and recompile.
173 A few more testing is needed before making this the official
176 2004-06-02 Werner Lemberg <wl@gnu.org>
178 * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler
181 2004-06-01 Werner Lemberg <wl@gnu.org>
183 * src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English
184 name record for the Apple platform is preferred to a non-English
185 entry for the Microsoft platform. Problem reported by HANDA
188 2004-05-19 George Williams <gww@silcom.com>
190 * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New
192 (T1_Get_MM_Var): Provide axis tags.
193 Use mm_axis_unmap and mm_weights_unmap to provide default values
194 for design and normalized axis coordinates.
196 * include/freetype/t1tables.h (PS_DesignMapRec): Change type of
197 `design_points' to FT_Long.
200 2004-05-17 Werner Lemberg <wl@gnu.org>
202 * src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases.
203 Reported by Mikey Anbary <manbary@vizrt.com>.
205 2004-05-15 Werner Lemberg <wl@gnu.org>
207 * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name.
209 2004-05-15 George Williams <gww@silcom.com>
211 * src/sfnt/ttload.c (tt_face_load_max_profile): Always set
212 face->root.num_glyphs.
214 2004-05-14 Masatake YAMATO <jet@gyve.org>
215 George Williams <gww@silcom.com>
217 * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly.
219 2004-05-14 Werner Lemberg <wl@gnu.org>
221 * src/cache/ftcbasic.c (ftc_basic_family_compare,
222 ftc_basic_family_init, ftc_basic_family_get_count,
223 ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
224 ftc_basic_gnode_compare_faceid): Adjust parameters and return types
225 to prototypes given in header files from include/freetype/cache.
226 Use casts to proper types locally.
227 (ftc_basic_image_family_class, ftc_basic_image_cache_class,
228 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove
231 * src/cache/ftccback.h: Adjust parameters and return types to
232 prototypes given in header files from include/freetype/cache.
234 * src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new,
235 ftc_inode_weight): Adjust parameters and return types to prototypes
236 given in header files from include/freetype/cache. Use casts to
237 proper types locally.
239 * src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new,
240 ftc_snode_weight, ftc_snode_compare): Adjust parameters and return
241 types to prototypes given in header files from
242 include/freetype/cache. Use casts to proper types locally.
244 * src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new,
245 ftc_cmap_node_weight, ftc_cmap_node_compare,
246 ftc_cmap_node_remove_faceid): Adjust parameters and return types to
247 prototypes given in header files from include/freetype/cache. Use
248 casts to proper types locally.
249 (ftc_cmap_cache_class): Remove casts.
251 * src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init,
252 ftc_gcache_done): Adjust parameters and return types to prototypes
253 given in header files from include/freetype/cache. Use casts to
254 proper types locally.
256 * src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare,
257 ftc_size_node_init, ftc_size_node_reset,
258 ftc_size_node_compare_faceid, ftc_face_node_init,
259 ftc_face_node_done, ftc_face_node_compare: Adjust parameters and
260 return types to prototypes given in header files from
261 include/freetype/cache. Use casts to proper types locally.
263 (ftc_size_list_class, ftc_face_list_class): Remove casts.
265 2004-05-13 Werner Lemberg <wl@gnu.org>
267 * src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done):
268 Use FT_Module as parameter and do a cast to FT_AutoHinter locally.
269 (autohint_module_class): Remove casts.
271 * src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy,
272 ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init,
273 ft_outline_glyph_done, ft_outline_glyph_copy,
274 ft_outline_glyph_transform, ft_outline_glyph_bbox,
275 ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast
276 to FT_XXXGlyph locally.
277 Use FT_CALLBACK_DEF throughout.
278 (ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts.
280 * src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done,
281 bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter
282 and do a cast to BDF_CMap locally.
283 (bdf_cmap_class): Remove casts.
285 2004-05-12 Werner Lemberg <wl@gnu.org>
287 * src/cff/cffgload.h (CFF_Builder): Remove `error'.
288 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace
289 `Memory_Error' with `Fail' und update all users.
291 2004-05-11 Werner Lemberg <wl@gnu.org>
293 * include/freetype/internal/psaux.h (T1_ParseState): New
295 (T1_BuilderRec): Replace `path_begun' with `parse_state'.
297 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace
298 `Memory_Error' with `Fail' and update all users.
299 Don't use `builder->error'.
300 Replace `path_begun' with `parse_state' and check parsing states.
302 * src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point):
303 Replace `path_begun' with `parse_state' and check parsing states.
305 2004-05-10 George Williams <gww@silcom.com>
307 * src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case
308 of error -- `avar' is optional so we can't rely on tt_done_blend
309 being called automatically.
311 2004-05-09 George Williams <gww@silcom.com>
313 * src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix
316 2004-05-07 Werner Lemberg <wl@gnu.org>
318 * src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init,
319 pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done,
320 pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are
321 typecast to the proper PFR_XXX types within the function.
322 Update code accordingly.
324 * src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance,
325 pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX
326 arguments which are typecast to the proper PFR_XXX types within the
328 Update code accordingly.
329 Use FT_CALLBACK_DEF throughout.
330 (pfr_metrics_service_rec, pfr_driver_class): Remove casts.
332 2004-05-06 Masatake YAMATO <jet@gyve.org>
334 * src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM.
335 (*): Rename local variable OffsetToData to offsetToData.
337 2004-05-06 Werner Lemberg <wl@gnu.org>
339 * src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset,
340 cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access
341 root fields directly.
342 * src/cff/cffdrivr.c (Load_Glyph): Access root fields directly.
344 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current
345 frame before calling TT_Vary_Get_Glyph_Deltas.
347 * src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for
349 (pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index,
350 pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which
351 are typecast to the proper PCF_XXX types within the function.
352 Update code accordingly.
353 (pcf_cmap_class): Remove casts.
354 (PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use
355 PCF_XXX but FT_XXX arguments which are typecast to the proper
356 PCF_XXX types within the function.
357 Update code accordingly.
358 Use FT_CALLBACK_DEF throughout.
359 (PCF_Set_Point_Size): New wrapper function.
360 (PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF.
361 (pcf_driver_class): Remove casts.
363 2004-05-04 Steve Hartwell <shspamsink@comcast.net>
365 * src/truetype/ttobjs.c (tt_driver_done): Fix typo.
367 2004-05-04 Werner Lemberg <wl@gnu.org>
369 * src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init,
370 BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which
371 are typecast to the proper BDF_XXX types within the function.
372 Update code accordingly.
373 Use FT_CALLBACK_DEF throughout.
374 (BDF_Set_Point_Size): New wrapper function.
375 (bdf_driver_class): Remove casts.
377 * src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface):
378 Don't use CFF_XXX but FT_XXX arguments which are typecast to the
379 proper CFF_XXX types within the function.
380 Update code accordingly.
381 Use FT_CALLBACK_DEF throughout.
382 (cff_driver_class): Remove casts.
384 * src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done,
385 cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init,
386 cff_face_init, cff_face_done, cff_driver_init, cff_driver_done):
387 Don't use CFF_XXX but FT_XXX arguments which are typecast to the
388 proper CFF_XXX types within the function.
389 Update code accordingly.
390 (cff_point_size_reset): New wrapper function.
392 * src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done,
393 cid_slot_init, cid_size_done, cid_size_init, cid_size_reset,
394 cid_face_done, cid_face_init, cid_driver_init, cid_driver_done):
395 Don't use CID_XXX but FT_XXX arguments which are typecast to the
396 proper CID_XXX types within the function.
397 Update code accordingly.
398 (cid_point_size_reset): New wrapper function.
400 * src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph):
401 Don't use CID_XXX but FT_XXX arguments which are typecast to the
402 proper CID_XXX types within the function.
403 Update code accordingly.
405 * src/cid/cidriver.c (cid_get_interface):
406 Don't use CID_XXX but FT_XXX arguments which are typecast to the
407 proper CID_XXX types within the function.
408 Update code accordingly.
410 (t1cid_driver_class): Remove casts.
412 * src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF.
413 * src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local
414 variables (this is done later).
415 (ft_var_load_avar): Fix call to FT_FRAME_ENTER.
416 (TT_Get_MM_Var): Fix size for `fvar_fields'.
417 (TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables
420 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if
421 current size is zero.
423 2004-05-03 Steve Hartwell <shspamsink@comcast.net>
425 * src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init,
426 tt_face_done, tt_size_init, tt_size_done, tt_driver_init,
427 tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are
428 typecast to the proper TT_XXX types within the function.
429 Update code accordingly.
431 * src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes,
432 Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but
433 FT_XXX arguments which are typecast to the proper TT_XXX types
435 Update code accordingly.
436 (tt_driver_class): Remove casts.
438 2004-05-02 Werner Lemberg <wl@gnu.org>
440 * src/sfnt/ttload.c (tt_face_free_names): Check that `table->names'
441 is not NULL. Reported by Gordon Childs <gchilds@quickcut.com.au>.
443 2004-04-29 Werner Lemberg <wl@gnu.org>
445 * docs/formats.txt: Add more information on PFR format.
447 2004-04-28 Werner Lemberg <wl@gnu.org>
449 * docs/formats.txt: New file.
450 * docs/CHANGES: Updated.
452 2004-04-28 Masatake YAMATO <jet@gyve.org>
454 * include/freetype/internal/tttypes.h (GX_BlendRec_)
455 [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo.
457 * src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo.
459 2004-04-27 Masatake YAMATO <jet@gyve.org>
461 * src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF
462 for function declarations.
464 2004-04-25 George Williams <gww@silcom.com>
466 * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo.
468 2004-04-25 Werner Lemberg <wl@gnu.org>
470 * src/truetype/Jamfile, docs/CHANGES: Updated.
472 2004-04-24 Werner Lemberg <wl@gnu.org>
474 * src/pcf/pcfdrivr.c: Revert change from 2004-04-17.
475 * src/pcf/pcfutil.c: Use FT_LOCAL_DEF.
476 * src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H.
477 Use FT_BEGIN_HEADER and FT_END_HEADER.
480 2004-04-24 George Williams <gww@silcom.com>
482 Add support for Apple's distortable font technology (in GX fonts).
484 * devel/ftoption.h, include/freetype/config/ftoption.h
485 (TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro.
487 * include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style,
488 FT_MM_Var): New structures.
489 (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
490 FT_Set_Var_Blend_Coordinates): New function declarations.
492 * include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func,
493 FT_Set_Var_Design_Func): New typedefs.
494 Update MultiMasters service.
496 * include/freetype/internal/tttypes.h
497 [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H.
498 (GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef.
499 (TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend'
502 * include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New
505 * include/freetype/internal/fttrace.h: Add `ttgxvar'.
507 * src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
508 FT_Set_Var_Blend_Coordinates): New functions.
510 * src/sfnt/sfobjs.c (sfnt_load_face)
511 [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS
512 flag for GX var fonts.
514 * src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files.
516 * src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
519 * src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
520 FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h.
521 (tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]:
523 (tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated.
525 * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
527 (TT_Process_Simple_Glyph, load_truetype_glyph)
528 [TT_CONFIG_OPTION_GX_VAR_SUPPORT] :Support GX var fonts.
530 * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
532 (tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
535 * src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
537 (tt_face_load_cvt) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
540 * src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c.
542 * src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var
543 and T1_Set_Var_Design.
545 * src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros.
546 (T1_Get_MM_Var, T1_Set_Var_Design): New functions.
548 * src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New
549 function declarations.
551 2004-04-23 Werner Lemberg <wl@gnu.org>
553 * include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename
554 declaration and move to...
555 * include/freetype/freetype.h (FT_Get_Charmap_Index): Here.
556 (FREETYPE_PATCH): Set to 9.
558 * src/base/ftobjs.c (FT_Get_Charmap_Index): New function.
560 * builds/unix/configure.ac (version_info): Set to 9:7:3.
561 * builds/unix/configure: Updated.
563 * builds/win32/visualc/index.html,
564 builds/win32/visualc/freetype.dsp,
565 builds/win32/visualc/freetype.vcproj: s/218/219/.
567 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
570 * docs/CHANGES, docs/VERSION.DLL: Updated.
572 2004-04-21 Werner Lemberg <wl@gnu.org>
574 * src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c
575 (ps_parser_load_field): Use FT_CHAR_BIT.
577 2004-04-21 David Turner <david@freetype.org>
580 * Version 2.1.8 released.
581 =========================
584 * src/cff/cffobjs.c (cff_face_init): Fix a small memory leak.
586 * src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c
587 (af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name):
588 Remove compiler warnings.
590 * src/autofit/aftypes.h: Undefine AF_DEBUG.
592 * src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf,
593 pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c
594 (ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict,
595 t42_service_ps_font_name): Decorate data arrays with `const' to
596 avoid populating the `.data' segment.
598 * src/lzw/Jamfile: New file.
600 2004-04-20 Werner Lemberg <wl@gnu.org>
602 * src/psaux/psobjs.c (T1Radix): Renamed to...
604 Update current cursor position.
606 * docs/CHANGES: Updated.
608 2004-04-18 Werner Lemberg <wl@gnu.org>
610 * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph),
611 src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to
612 FT_UInt. From Lex Warners.
614 2004-04-17 Chisato Yamauchi <cyamauch@a.phys.nagoya-u.ac.jp>
616 * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change
619 * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'.
621 * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with
623 Remove unused function `RepadBitmap'.
624 * src/pcf/pcfdrivr.c: Don't include pcfutil.h.
626 2004-04-16 Werner Lemberg <wl@gnu.org>
628 * builds/unix/freetype-config.in (usage): Fix and improve usage
631 2004-04-15 Werner Lemberg <wl@gnu.org>
633 * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define
636 * src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if
637 glyph is vertically distorted or mirrored.
639 * src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly
640 for embedded bitmaps.
642 * docs/CHANGES: Updated.
644 2004-04-15 bytesoftware <bytesoftware@btinternet.com>
646 * include/freetype/config/ftconfig.h, src/base/ftstream.c
647 (FT_Stream_ReadFields): More fixes using FT_CHAR_BIT.
649 2004-04-14 Werner Lemberg <wl@gnu.org>
651 * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro.
653 2004-04-14 Alex Strelnikov <ptktyrf@mail.ru>
655 * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case
658 2004-04-14 Werner Lemberg <wl@gnu.org>
660 * src/base/ftmac.c [__GNUC__]: Define OS_INLINE.
661 * builds/unix/configure.ac: Don't try to remove `-ansi' compilation
664 * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
665 --copy' from libtool 1.5.6.
666 * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
668 * builds/unix/configure: Regenerated with autoconf 2.59a.
670 2004-04-13 Werner Lemberg <wl@gnu.org>
672 * include/freetype/config/ftconfig.h: Use CHAR_BIT to define
673 size of FT_SIZEOF_xxx.
675 2004-04-12 Chisato Yamauchi <cyamauch@a.phys.nagoya-u.ac.jp>
677 * include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func,
678 TT_Load_SBit_Metrics_Func): New typedefs.
679 (SFNT_Interface): Add find_sbit_image and load_sbit_metrics.
681 * src/sfnt/sfdriver.c (sfnt_interface): Updated.
682 * src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New
684 * src/sfnt/ttsbit.c (find_sbit_image): Renamed to...
685 (tt_find_sbit_image): This.
687 (load_sbit_metrics): Renamed to...
688 (tt_load_sbit_metrics): This.
691 2004-04-12 Werner Lemberg <wl@gnu.org>
693 * configure: Accept makepp also.
695 * builds/unix/detect.mk: Use proper path to unix-def.mk.
696 * builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove.
697 * builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define.
700 * docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update
701 documentation on makepp.
703 2004-04-11 Werner Lemberg <wl@gnu.org>
705 * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h.
707 2004-04-10 Werner Lemberg <wl@gnu.org>
709 * src/lzw/ftlzw.c: Include zopen.h dependent on
710 FT_CONFIG_OPTION_USE_LZW.
712 * src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings.
714 2004-04-02 Werner Lemberg <wl@gnu.org>
716 * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
717 --copy' from libtool 1.5.2.
718 * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
720 * builds/unix/configure: Regenerated with autoconf 2.59a.
722 2004-04-01 Werner Lemberg <wl@gnu.org>
724 * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of
726 * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
728 * builds/unix/configure: Regenerated with autoconf 2.59a.
729 * builds/unix/config.guess, builds/unix/config.sub: Updated from
730 `config' CVS module at subversions.gnu.org
731 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
732 `texinfo' CVS module at subversions.gnu.org.
733 * builds/freetype.mk (refdoc): Updated.
735 2004-03-31 Werner Lemberg <wl@gnu.org>
737 Handle broken FNT files which don't have a trailing NULL byte
738 in the face name string.
740 * src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'.
741 * src/winfonts/winfnt.c (fnt_font_done): Free font->family_name.
742 (FNT_Face_Init): Append a final zero byte to the font face name.
744 2004-03-30 Werner Lemberg <wl@gnu.org>
746 * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from
749 2004-03-27 Werner Lemberg <wl@gnu.org>
751 * src/base/descrip.mms (OBJS): Add ftbbox.obj.
753 2004-03-26 George Williams <gww@silcom.com>
755 Add vertical phantom points.
757 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add
758 `top_bearing', `vadvance', `pp3, and `pp4'.
760 * src/autofit/afloader.c (af_loader_load_g): Handle two more points.
762 * src/autohint/ahhint.c (ah_hinter_load): Handle two more points.
763 * src/truetype/ttgload.c (Get_VMetrics): New function.
764 (TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more
766 (load_truetype_glyph): Use Get_VMetrics.
767 Handle two more points.
768 (compute_glyph_metrics): Thanks to vertical phantom points we now
769 can always compute `advance_height' and `top_bearing'.
770 * src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom
774 * src/autohint/ahglyph.c (ah_outline_load): Fix allocation of
777 2004-03-21 Werner Lemberg <wl@gnu.org>
779 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing.
781 2004-03-20 Steve Hartwell <shspamsink@comcast.net>
783 * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL
784 value for `selection' as `select all'.
786 2004-03-19 Steve Hartwell <shspamsink@comcast.net>
788 * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index
789 values > 0 if loading non-TTC fonts.
791 * src/base/ftmac.c (open_face_from_buffer): Set positive face_index
792 to zero before calling FT_Open_Face.
794 * docs/CHANGES: Updated.
796 2004-03-04 Werner Lemberg <wl@gnu.org>
798 * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp,
799 builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h:
802 * Jamfile.in: Removed.
804 * docs/CHANGES: Updated.
806 * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/,
807 s/ABS/FT_ABS/. Updated all callers.
809 * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c
810 (PCF_Face_Init): Use FT_ERROR_BASE.
812 2004-03-04 Albert Chin <china@thewrittenword.com>
814 Add support for PCF fonts compressed with LZW (extension .pcf.Z,
815 created with `compress').
817 * include/freetype/config/ftoption.h, devel/ftoption.h
818 (FT_CONFIG_OPTION_USE_LZW): New macro.
820 * include/freetype/ftlzw.h: New file.
821 * include/freetype/config/ftheader.h (FT_LZW_H): New macro for
824 * src/lzw/*: New files.
826 * src/pcf/pcfdrivr.c: Include FT_LZW_H.
827 (PCF_Face_Init): Try LZW also.
829 * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate.
832 2004-03-03 Werner Lemberg <wl@gnu.org>
834 * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code.
836 2004-03-02 Werner Lemberg <wl@gnu.org>
838 Add embedded bitmap support to CFF driver.
840 * src/cff/cffobjs.h (CFF_SizeRec): New structure.
842 * src/cff/cffgload.c (cff_builder_init): Updated.
843 (cff_slot_load): Updated.
844 [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit.
846 * src/cff/cffobjs.c (sbit_size_reset)
847 [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function.
848 (cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated.
849 (cff_size_reset): Updated.
850 [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset.
852 * src/cff/cffdrivr.c (Load_Glyph): Updated.
853 (cff_driver_class): Use CFF_SizeRec.
855 * docs/CHANGES: Updated.
857 2004-03-01 Werner Lemberg <wl@gnu.org>
859 * src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use
860 FT_RoundFix but FT_PIX_ROUND.
861 (psh_blues_snap_stem): Don't use blue_shift but blue_threshold.
863 * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro.
864 (psh_glyph_find_string_points): Use PSH_STRONG_THRESHOLD_MAXIMUM.
865 (psh_glyph_find_blue_points): New function. Needed for fonts like
866 p052003l.pfb (URW Palladio L Roman) which have flex curves at the
867 base line within blue zones, but the flex curves aren't covered by
869 (ps_hints_apply): Use psh_glyph_find_blue_points.
871 2004-02-27 Garrick Meeker <garrick@digitalanarchy.com>
873 * builds/unix/configure.ac: Fix compiler flags for
874 `--with-old-mac-fonts'.
875 * builds/unix/configure: Regenerated.
877 * src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/.
878 (FT_New_Face_From_Resource): New function.
879 (FT_New_Face): Use FT_New_Face_From_Resource.
880 (FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource.
881 [__MWERKS__]: Don't include FSp_fopen.h.
883 2004-02-26 Werner Lemberg <wl@gnu.org>
885 * src/pshinter/pshglob.c (psh_globals_new): Fix value of
887 Don't assign default values to blue scale and blue shift.
889 2004-02-25 Werner Lemberg <wl@gnu.org>
891 * docs/CHANGES: Updated.
893 2004-02-25 Garrick Meeker <garrick@digitalanarchy.com>
894 Steve Hartwell <shspamsink@comcast.net>
896 Improve MacOS fond support. Provide a new API
897 `FT_New_Face_From_FSSpec' similar to `FT_New_Face'.
899 * src/base/ftmac.c [__MWERKS__]: Include FSp_fpopen.h.
900 STREAM_FILE [__MWERKS__]: New macro.
901 (ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions.
902 (file_spec_from_path) [__MWERKS__]: Updated #if statement.
903 (get_file_type, make_lwfn_spec): Use `const' for argument.
904 (is_dfont) [TARGET_API_MAC_CARBON]: Removed.
905 (count_face_sfnt, count_faces): New functions.
906 (parse_fond): Do some range checking.
907 (read_lwfn): Change type of second argument.
908 No longer call FSpOpenResFile.
909 (OpenFileAsResource): New function.
910 (FT_New_Face_From_LWFN): Use `const' for second argument.
911 Use OpenFileAsResource.
912 (FT_New_Face_From_Suitcase): Change type of second argument.
913 No longer call FSpOpenResFile.
914 Loop over all resource indices.
915 (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed.
916 (FT_GetFile_From_Mac_Name): Use `const' for first argument.
917 (ResourceForkSize): Removed.
918 (FT_New_Face): Updated to use new functions.
919 (FT_New_Face_From_FSSpec): New function.
921 * include/freetype/ftmac.h: Updated.
923 2004-02-24 Malcolm Taylor <mtaylor@clear.net.nz>
925 * src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>:
926 Handle case where outline->num_vedges is zero while computing hinted
929 2004-02-24 Gordon Childs <gchilds@quickcut.com.au>
931 * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value
934 2004-02-24 Werner Lemberg <wl@gnu.org>
936 * include/freetype/t1tables.h (PS_PrivateRec): Add
939 * src/pshinter/pshglob (psh_blues_scale_zones): Fix computation
940 of blues->no_overshoots -- `blues_scale' is stored with a
941 magnification of 1000, and `scale' returns fractional pixels.
943 * src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift',
944 `blue_fuzz', `expansion_factor', and `blue_scale' according to the
945 Type 1 specification.
947 * src/type1/t1tokens.h: Handle `ExpansionFactor'.
949 * docs/CHANGES: Updated.
951 2004-02-24 Masatake YAMATO <jet@gyve.org>
953 Provide generic access to MacOS resource forks.
955 * src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New
958 * src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H.
959 (Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments
960 `resource_listoffset' and `resource_data' and adapt code
961 accordingly. These values are calculated outside of the function
963 Add new argument `offsets'.
964 (IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and
965 `FT_Raccess_Get_DataOffsets'.
966 (load_face_in_embedded_rfork): New function.
967 (load_mac_face): Use load_face_in_embedded_rfork.
968 (ft_input_stream_new): Renamed to...
969 (FT_Stream_New): This. Use FT_BASE_DEF. Updated all callers.
970 (ft_input_stream_free): Renamed to...
971 (FT_Stream_Free): This. Use FT_BASE_DEF. Updated all callers.
973 * src/base/ftbase.c: Include ftrfork.c.
975 * src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated.
977 * include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H):
980 * include/freetype/internal/fttrace.h: Added `rfork' as a new
983 * include/freetype/internal/ftstream.h: Declare FT_Stream_New and
986 * include/freetype/config/ftoption.h, devel/ftoption.h
987 (FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option.
989 * include/freetype/config/ftstdlib.h (ft_strrchr): New macro.
991 2004-02-23 Werner Lemberg <wl@gnu.org>
993 * docs/CHANGES: Updated.
995 * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H.
997 2004-02-23 Masatake YAMATO <jet@gyve.org>
999 Provide a simple API to control FreeType's tracing levels.
1001 * include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
1002 FT_Trace_Get_Name): New declarations.
1004 * src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New
1007 2004-02-23 David Turner <david@freetype.org>
1009 * src/autofit/afhints.c, src/autofit/afhints.h,
1010 src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave
1011 bugs have been fixed. The auto-fitter works, doesn't crash, but
1012 still produces unexpected results...
1014 2004-02-21 Werner Lemberg <wl@gnu.org>
1016 * src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold
1017 the accepted shift for strong points in fractional pixels (which
1018 is a heuristic value).
1019 (psh_glyph_find_strong_points): Compute threshold for
1020 psh_hint_table_find_strong_points.
1021 (psh_hint_table_find_strong_point): Add parameter to pass threshold.
1023 2004-02-20 Werner Lemberg <wl@gnu.org>
1025 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call
1026 ps_mask_table_alloc but ps_mask_table_last.
1027 (ps_hints_t2mask): Use correct position and number for vertical
1028 and horizontal hinter mask bits.
1030 * docs/CHANGES: Updated.
1032 2004-02-19 Werner Lemberg <wl@gnu.org>
1034 * src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling.
1035 * src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning.
1037 2004-02-18 Werner Lemberg <wl@gnu.org>
1039 * include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly.
1041 * src/base/ftglyph.c (ft_bitmap_glyph_class,
1042 ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF.
1044 * src/smooth/ftsmooth.c (ft_smooth_render): Handle
1045 FT_RENDER_MODE_LIGHT.
1047 2004-02-17 Werner Lemberg <wl@gnu.org>
1049 Fix callback functions in cache module.
1051 * src/cache/ftccback.h: New file for callback declarations.
1053 * src/cache/ftcbasic.c (ftc_basic_family_compare,
1054 ftc_basic_family_init, ftc_basic_family_get_count,
1055 ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
1056 ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF.
1057 (ftc_basic_image_family_class, ftc_basic_image_cache_class,
1058 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class):
1059 Use FT_CALLBACK_TABLE_DEF and local wrapper functions.
1061 * src/cache/ftccache.c: Include ftccback.h.
1062 (ftc_cache_init, ftc_cache_done): New wrapper functions which use
1065 * src/cache/ftccmap.c: Include ftccback.h.
1066 (ftc_cmap_cache_class): Use local wrapper functions.
1068 * src/cache/ftcglyph.c: Include ftccback.h.
1069 (ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper
1070 functions which use FT_LOCAL_DEF.
1072 * src/cache/ftcimage.c: Include ftccback.h.
1073 (ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper
1074 functions which use FT_LOCAL_DEF.
1076 * src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class):
1077 Use FT_CALLBACK_TABLE_DEF.
1079 * src/cache;/ftcsbits.c: Include ftccback.h.
1080 (ftc_snode_free, ftc_snode_new, ftc_snode_weight,
1081 ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF.
1083 * src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h.
1085 2004-02-17 Masatake YAMATO <jet@gyve.org>
1087 * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo
1088 (FT_EXPORT_DEF -> FT_EXPORT).
1090 * include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto.
1092 2004-02-15 Werner Lemberg <wl@gnu.org>
1094 * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo.
1096 2004-02-14 Masatake YAMATO <jet@gyve.org>
1098 * builds/unix/ftsystem.c: Include errno.h.
1099 (ft_close_stream): Renamed to...
1100 (ft_close_stream_by_munmap): This.
1101 (ft_close_stream_by_free): New function.
1102 (FT_Stream_Open): Use fallback method if mmap fails.
1103 Use proper function for closing the stream.
1105 2004-02-14 Werner Lemberg <wl@gnu.org>
1107 * src/type1/t1load.c (parse_dict): Initialize `start_binary'.
1109 2004-02-13 Robert Etheridge <roberte@stcc.cc.tx.us>
1111 * src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c
1112 (T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation
1113 of underline_position and underline_thickness.
1115 2004-02-12 Werner Lemberg <wl@gnu.org>
1117 * src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if
1118 ppem values don't change. Suggested by Graham Asher.
1120 2004-02-11 Werner Lemberg <wl@gnu.org>
1122 * src/cid/cidload.c (cid_face_open): Always allocate
1123 face->cid_stream so that we can deallocate it safely.
1125 2004-02-10 Werner Lemberg <wl@gnu.org>
1127 Make the PS parser more tolerant w.r.t. non-standard font data. In
1128 general, an error is only reported in case of a syntax error; a
1129 wrong type is now simply ignored (if possible). To be independent
1130 of the order of various MM-specific keywords, the parse_shared_dict
1131 routine has been removed -- the PS parser is now capable to skip
1132 this data. It no longer fails on parsing e.g.
1134 dup /WeightVector exch def
1136 Since the token following /WeightVector isn't `[' (starting an
1137 array) it is simply ignored.
1139 * include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a
1140 new internal error value.
1142 * src/type1/t1load.c (parse_blend_axis_types,
1143 parse_blend_design_positions, parse_blend_design_map): Return
1144 T1_Err_Ignore if no proper array is following the keyword.
1145 (parse_weight_vector): Use T1_ToTokenArray, initializing `blend'
1146 structure, if necessary.
1147 Return T1_Err_Ignore if no proper array is following the keyword.
1148 (parse_shared_dict): Removed.
1149 (parse_encoding): Set parser->root.error to return T1_Err_Ignore
1150 if no result can be obtained.
1151 Check for errors before accessing `elements' array.
1152 (t1_keywords): Remove /shareddict.
1153 (parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore.
1154 Set keyword_flag only in case of success.
1155 Check error code if skipping an unrecognized token.
1156 (T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend
1157 if blend commands haven't set up a proper MM font.
1159 * src/psaux/psobjs.c (ps_parser_load_field_table): Remove special
1160 code for synthetic fonts.
1161 Return PSaux_Err_Ignore if no proper value has been found.
1163 2004-02-09 Werner Lemberg <wl@gnu.org>
1165 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
1166 <cff_op_endchar>: Preserve glyph width before calling
1169 2004-02-09 Martin Muskens <mmuskens@aurelon.com>
1171 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special
1172 first argument for `hintmask' and `cntrmask' operators also.
1174 2004-02-08 Werner Lemberg <wl@gnu.org>
1176 * builds/unix/configure.in: Call AC_SUBST for `enable_shared',
1177 `hardcode_libdir_flag_spec', and `wl'.
1178 * builds/unix/configure: Regenerated.
1180 * builds/unix/freetype-config.in: Make --prefix and --exec-prefix
1182 Report a proper --rpath (or -R) value for --libs argument if a
1183 shared library has been built.
1185 * docs/CHANGES: Updated.
1187 2004-02-07 Keith Packard <keithp@keithp.com>
1189 * src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix
1190 computation of various vertical and horizontal metric values.
1192 * src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font):
1195 2004-02-07 Werner Lemberg <wl@gnu.org>
1197 * builds/win32/visualc/index.html,
1198 builds/win32/visualc/freetype.dsp,
1199 builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated.
1201 2004-02-07 Vitaliy Pasternak <v_a_pasternak@mail.ru>
1203 * builds/win32/visualc/freetype.sln,
1204 builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003.
1206 2004-02-03 Werner Lemberg <wl@gnu.org>
1208 * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP):
1210 * src/type1/t1load.c (parse_dict): Initialize `have_integer'.
1212 2004-02-02 Werner Lemberg <wl@gnu.org>
1214 * src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands
1215 outside of /Subrs or /CharStrings. This can happen if there is
1216 additional code manipulating those two arrays so that FreeType
1217 doesn't recognize them properly.
1218 (T1_Open_Face): Improve an error message.
1220 2004-02-01 Werner Lemberg <wl@gnu.org>
1222 * src/type1/t1load.c (parse_charstrings): Exit immediately if
1223 there are no elements in /CharStrings. This is needed for fonts
1224 like Optima-Oblique which not only define /CharStrings but access it
1227 2004-02-01 David Turner <david@freetype.org>
1229 * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources.
1231 * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP)
1232 <FTC_INLINE>: Provide macro version which doesn't use inline code.
1233 * include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP)
1234 <FTC_INLINE>: Ditto.
1235 Use FTC_MRULIST_LOOKUP_CMP.
1236 * include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New
1238 (FTC_MRULIST_LOOKUP): Use it.
1240 * src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated.
1241 * src/cache/ftcbasic.c: Fix compiler warnings.
1242 * src/cache/ftcmanag.c (FTC_Manager_LookupSize,
1243 FTC_Manager_LookupFace) <FTC_INLINE>: Use FTC_MRULIST_LOOKUP_CMP.
1244 * src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after
1247 * Jamfile: Updating `refdoc' target, and adding `autohint' to the
1248 list of modules to build. Both the autohinter and autofitter will
1249 be built by default. But which one will be used is determined by
1250 the content of `ftmodule.h'.
1252 * src/autofit/*: Many updates, but the code is still buggy...
1254 2004-01-31 Werner Lemberg <wl@gnu.org>
1256 * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of
1258 Update code similarly to the seac support for Type 1 fonts.
1259 (cff_decoder_parse_charstrings) <cff_op_endchar>: Fix magnitude
1261 Don't hint glyphs twice if seac is emulated.
1262 <cff_op_flex>: Assign correct point tags.
1263 * docs/CHANGES: Updated.
1265 2004-01-30 Werner Lemberg <wl@gnu.org>
1267 * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not
1268 FT_MEM_COPY, for copying the private dict.
1270 * src/type1/t1load.c (parse_subrs): Assign number of subrs only
1272 (parse_charstrings): Parse /CharStrings in second run without
1274 (parse_dict): Skip all /CharStrings arrays but the first. We need
1275 this for non-standard fonts like `Optima' which have different
1276 outlines depending on the resolution. Note that there is no
1277 guarantee that we get fitting /Subrs and /CharStrings arrays; this
1278 can only be done by a real PS interpreter.
1280 2004-01-29 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
1282 * builds/win32/visualc/index.html: New file, giving detailed
1283 explanations about forcing CR+LF line endings for the VC++ project
1286 2004-01-22 Garrick Meeker <garrick@digitalanarchy.com>
1288 * src/cff/cffload.c (cff_subfont_load): Initialize `dict'.
1290 2004-01-22 Werner Lemberg <wl@gnu.org>
1292 Add support for the hexadicimal representation of binary data
1293 started with `StartData' in CID-keyed Type 1 fonts.
1295 * include/freetype/internal/t1types.h (CID_FaceRec): Add new
1296 members `binary_data' and `cid_stream'.
1298 * src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'.
1299 (cid_hex_to_binary): New auxiliary function.
1300 (cid_face_open): Add new argument `face_index' to return quickly
1301 if less than zero. Updated all callers.
1302 Call `cid_hex_to_binary', then open and assign memory stream to
1303 `face->cid_stream' if `parser->binary_length' is non-zero.
1304 * src/cid/cidload.h: Updated.
1306 * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and
1309 * src/cid/cidparse.c (cid_parser_new): Check arguments to
1310 `StartData' and set parser->binary_length accordingly.
1311 * src/cid/cidparse.h (CID_Parser): New member `binary_length'.
1313 * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'.
1315 * docs/CHANGES: Updated.
1317 2004-01-21 Werner Lemberg <wl@gnu.org>
1319 include/freetype/config/ftstdlib.h (ft_atoi): Replaced with...
1321 * src/base/ftdbgmem.c: s/atol/ft_atol/.
1322 * src/type42/t42drivr.c: s/ft_atoi/ft_atol/.
1324 2004-01-20 Masatake YAMATO <jet@gyve.org>
1326 * include/freetype/ftcache.h: Delete duplicated definition of
1329 * src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap
1330 Info service function if the cmap comes from sfnt. Return 0 if the
1331 cmap is sythesized in cff module.
1333 2004-01-20 David Turner <david@freetype.org>
1335 * src/cache/ftcmanag.c (ftc_size_node_compare): Call
1338 2004-01-20 Werner Lemberg <wl@gnu.org>
1340 * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one
1341 CR, LF, or CR/LF after `eexec'.
1343 2004-01-18 David Turner <david@freetype.org>
1345 * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler
1348 * src/tools/docmaker/*: Updating beautifier tool.
1350 2004-01-15 David Turner <david@freetype.org>
1352 * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix
1355 * include/freetype/ftstroke.h: Include FT_GLYPH_H.
1356 (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New
1359 * src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H.
1360 (FT_Outline_GetOutsideBorder): Inverse result.
1361 (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_GlyphStrokeBorder): New
1363 (FT_Stroker_EndSubPath): Close path if needed.
1364 (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind.
1366 * include/freetype/cache/ftcmanag.h (FTC_ScalerRec,
1367 FTC_Manager_LookupSize): Moved to...
1368 * include/freetype/ftcache.h (FTC_ScalerRec,
1369 FTC_Manager_LookupSize): Here.
1371 * src/tools/docmaker/docbeauty.py: New file to beautify the
1372 documentation comments (e.g., to convert them to single block border
1374 * src/tools/docmaker/docmaker.py (file_exists, make_file_list):
1376 * src/tools/docmaker/utils.py (file_exists, make_file_list): Here.
1378 2004-01-14 David Turner <david@freetype.org>
1380 * include/freetype/internal/ftmemory.h (FT_ARRAY_COPY,
1381 FT_ARRAY_MOVE): New macros to make copying arrays easier.
1382 Updated all relevant code to use them.
1384 2004-01-14 Werner Lemberg <wl@gnu.org>
1386 * src/cff/cffload.c (cff_font_load): Load charstrings_index earlier.
1387 Use number of charstrings as argument to CFF_Load_FD_Select (as
1388 documented in the CFF specs).
1390 2004-01-13 Graham Asher <graham.asher@btinternet.com>
1392 * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of
1393 `glyph->memory' up to free arrays properly in case of failure.
1395 2004-01-10 Masatake YAMATO <jet@gyve.org>
1397 Make `FT_Get_CMap_Language_ID' work with CFF. Bug reported by
1398 Steve Hartwell <shspamsink@comcast.net>.
1400 * src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H.
1401 (cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP.
1402 (cff_get_cmap_info): New function.
1403 (cff_service_get_cmap_info) New entry for cff_services.
1405 * src/sfnt/ttcmap0.c: Exit loop after a format match has been found.
1406 Suggested by Steve Hartwell <shspamsink@comcast.net>.
1408 2004-01-03 Masatake YAMATO <jet@gyve.org>
1410 * src/base/ftobjs.c (destroy_charmaps): New function.
1411 (destroy_face, open_face): Use `destroy_charmaps'.
1413 2004-01-01 Werner Lemberg <wl@gnu.org>
1415 * docs/CHANGES: Updated.
1417 2004-01-01 Michael Jansson <mjan@em2-solutions.com>
1419 * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of
1420 size->metrics.descender.
1422 2003-12-31 Wolfgang Domröse <porthos.domroese@harz.de>
1424 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
1425 [FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4.
1426 <cff_op_flex1>: Change type of dx and dy to FT_Pos and remove
1427 cast for accessing arguments.
1429 2003-12-31 Werner Lemberg <wl@gnu.org>
1431 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous
1432 change. It's not necessary.
1434 2003-12-29 Smith Charles <smith.charles@free.fr>
1436 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated
1437 flags set' correctly.
1439 2003-12-29 Werner Lemberg <wl@gnu.org>
1441 * src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating
1442 `full' and `weight' properly.
1443 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
1444 <cff_op_hintmask> [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for
1447 2003-12-26 Werner Lemberg <wl@gnu.org>
1449 * include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func):
1450 Use FT_UInt for ppem values.
1451 * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for
1453 * src/sfnt/ttsbit.h: Updated.
1455 * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values
1458 2003-12-25 Werner Lemberg <wl@gnu.org>
1460 * src/base/fttrigon.c, src/base/ftgloadr.c: Inlude
1461 FT_INTERNAL_OBJECTS_H.
1463 * src/base/ftstroke.c (FT_Outline_GetInsideBorder,
1464 FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with
1467 * src/cache/ftcmru.c, include/freetype/cache/ftcmru.h:
1468 s/select/selection/ to avoid compiler warning.
1469 * src/cff/cffload.h: s/select/ftselect/ to avoid potential
1472 2003-12-24 Werner Lemberg <wl@gnu.org>
1474 * src/cache/ftcsbits.c (FTC_SNode_Weight):
1475 s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/.
1477 2003-12-24 David Turner <david@freetype.org>
1479 * Fixed compilation problems in the cache sub-system.
1481 * Partial updates to src/autofit.
1483 * Jamfile (FT2_COMPONENTS): Add autofit module.
1485 2003-12-23 Werner Lemberg <wl@gnu.org>
1487 * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle
1490 2003-12-23 David Turner <david@freetype.org>
1492 * include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND,
1493 FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_CEIL): New macros. They
1494 are used to avoid compiler warnings with very pedantic compilers.
1495 Note that `(x) & -64' causes a warning if (x) is not signed. Use
1496 `(x) & ~63' instead!
1497 Updated all related code.
1499 Add support for extraction of `inside' and `outside' borders.
1501 * src/base/ftstroke.c (FT_StrokerBorder): New enumeration.
1502 (FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder,
1503 FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions.
1504 (FT_StrokeBorderRec): New boolean member `valid'.
1505 (ft_stroke_border_get_counts): Updated.
1506 * include/freetype/ftstroke.h: Updated.
1508 2003-12-22 Werner Lemberg <wl@gnu.org>
1510 * include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions
1511 to describe the `charset' field in FT_WinFNT_HeaderRec.
1512 * src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to
1513 FT_ENCODING_NONE except for FT_WinFNT_ID_MAC.
1515 * include/freetype/freetype.h (FT_Encoding): Improve comment,
1516 based on work by Detlef Würkner <TetiSoft@apg.lahn.de>.
1518 * docs/CHANGES: Updated.
1520 2003-12-22 David Turner <david@freetype.org>
1522 * include/freetype/ftcache.h,
1523 include/freetype/cache/ftcmanag.h,
1524 include/freetype/cache/ftccache.h,
1525 include/freetype/cache/ftcmanag.h,
1526 include/freetype/cache/ftcmru.h (added),
1527 include/freetype/cache/ftlru.h (removed),
1528 include/freetype/cache/ftcsbits.h,
1529 include/freetype/cache/ftcimage.h,
1530 include/freetype/cache/ftcglyph.h,
1532 src/cache/ftcmanag.c,
1533 src/cache/ftccache.c,
1534 src/cache/ftcglyph.c,
1535 src/cache/ftcimage.c,
1536 src/cache/ftcsbits.c,
1537 src/cache/ftccmap.c,
1538 src/cache/ftcbasic.c (added),
1539 src/cache/ftclru.c (removed):
1541 *Complete* rewrite of the cache sub-system to `solve' the
1544 - all public APIs have been moved to FT_CACHE_H, everything
1545 under `include/freetype/cache' is only needed by client
1546 applications that want to implement their own caches
1548 - a new function named FTC_Manager_RemoveFaceID to deal
1549 with the uninstallation of FaceIDs
1551 - the image and sbit cache are now abstract classes, that
1552 can be extended much more easily by client applications
1554 - better performance in certain areas. Further optimizations
1555 to come shortly anyway...
1557 - the FTC_CMapCache_Lookup function has changed its signature,
1558 charmaps can now only be retrieved by index
1560 - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace
1561 FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in
1562 private header for the moment)
1564 2003-12-21 Werner Lemberg <wl@gnu.org>
1566 * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword
1569 2003-12-19 Werner Lemberg <wl@gnu.org>
1571 * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32. For
1572 example, the Japanese Hiragino font already contains 15 subfonts.
1574 * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for
1577 * devel/ftoption.h: Define FT_DEBUG_MEMORY.
1579 2003-12-18 Werner Lemberg <wl@gnu.org>
1581 * include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro.
1582 * src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values.
1584 2003-12-18 Werner Lemberg <wl@gnu.org>
1586 * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of
1587 `cid_count' to `FT_ULong'.
1589 * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids'
1592 * src/cff/cffload.c (cff_charset_done): Free `cids' array.
1593 (cff_font_load): Create cids array only for CID-keyed fonts which
1596 * src/cff/cffobjs.c (cff_face_init): Check the availability of
1597 the PSNames modules for non-pure CFFs also.
1598 Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't
1601 * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h.
1603 2003-12-17 Werner Lemberg <wl@gnu.org>
1605 * src/sfnt/sfobjs.c (sfnt_init_face): Don't set
1606 FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post'
1609 * docs/CHANGES: Updated.
1611 2003-12-17 Masatake YAMATO <jet@gyve.org>
1613 Add new function FT_Get_CMap_Language_ID to extract the language ID
1614 for TrueType/sfnt fonts.
1616 * include/freetype/internal/services/svttcmap.h: New file.
1617 * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add
1620 * src/sfnt/sfdriver.c: Include ttcmap0.h.
1621 (tt_service_get_cmap_info): New service.
1622 (sfnt_services): Updated.
1624 * src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions.
1625 (tt_cmap*_class_rec): Add tt_cmap*_get_info members.
1626 (tt_get_cmap_info): New function.
1627 * src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H.
1628 (TT_CMap_ClassRec): New field `get_cmap_info'.
1629 (tt_get_cmap_info): New declaration.
1631 * src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H.
1632 (FT_Get_CMap_Language_ID): New function implementation.
1633 * include/freetype/tttables.h (FT_Get_CMap_Language_ID): New
1634 function declaration.
1636 2003-12-16 Werner Lemberg <wl@gnu.org>
1638 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete.
1640 * include/freetype/internal/sfnt.h (SFNT_Interface): Remove
1641 obsolete fields `load_charmap' and `free_charmap'.
1642 (TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed.
1643 * src/sfnt/sfnt.c: Don't include ttcmap.c.
1644 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c.
1645 * src/sfnt/ttload.c: Don't include ttcmap.h.
1646 * src/sfnt/sfdriver.c: Don't include ttcmap.h.
1647 (sfnt_interface): Updated.
1649 * include/freetype/internal/tttypes.h (TT_TableDirRec,
1650 TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec,
1651 TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6,
1652 TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func,
1653 TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed.
1655 * src/cff/cffobjs.h (CFF_CharMapRec): Removed. Obsolete.
1657 2003-12-15 Werner Lemberg <wl@gnu.org>
1659 * docs/CHANGES: Updated.
1661 2003-12-15 Wolfgang Domröse <porthos.domroese@harz.de>
1663 * builds/atari/*: New directory for building FreeType 2 on Atari
1664 with the PureC compiler.
1666 2003-12-12 Wolfgang Domröse <porthos.domroese@harz.de>
1668 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add
1670 * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return
1671 value is either 0 or 1.
1673 2003-12-12 Werner Lemberg <wl@gnu.org>
1675 * src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message.
1676 (cff_get_name_index): Return if no PSNames service is available.
1677 (cff_ps_has_glyph_names): Handle CID-keyed fonts correctly.
1678 * src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for
1679 CID-keyed fonts. This is the inverse mapping of `sids'.
1680 * src/cff/cffload.c (cff_charset_load): New argument `invert'.
1681 Initialize charset->cids if `invert' is set.
1682 (cff_font_load): In call to cff_charset_load, set `invert' to true
1683 for CID-keyed fonts.
1684 * src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID
1685 and map it to the real glyph index.
1687 * docs/CHANGES: Updated.
1689 2003-12-11 Werner Lemberg <wl@gnu.org>
1691 * src/cff/cffobjs.c (cff_face_init): Don't set
1692 FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts.
1693 Don't construct a cmap for CID-keyed fonts.
1695 2003-12-10 Werner Lemberg <wl@gnu.org>
1697 Use implementation specific SID value 0xFFFF to indicate that
1698 a dictionary element is missing.
1700 * src/cff/cffload.c (cff_subfont_load): Initialize all fields
1701 which hold SIDs to 0xFFFF.
1702 (cff_index_get_sid_string): Handle SID value 0xFFFF.
1703 Handle case where `psnames' is zero.
1704 (cff_font_load): Updated.
1705 Don't load encoding for CID-keyed CFFs.
1707 * src/cff/cffobjs.c (cff_face_init): Updated.
1708 Don't check for PSNames module if font is CID-keyed.
1709 Compute style name properly (using the same algorithm as in the
1711 Fix computation of style flags.
1713 * src/cff/cfftoken.h: Comment out handling of base_font_name.
1714 Rename `postscript' field to `embedded_postscript'
1715 * src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name'
1718 2003-12-10 Detlef Würkner <TetiSoft@apg.lahn.de>
1720 * src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone
1721 of the similar BDF function).
1722 (pcf_service_bdf): Use it.
1724 2003-12-09 Werner Lemberg <wl@gnu.org>
1726 * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES
1727 only if a `post' table is present.
1729 2003-12-09 George Williams <gww@silcom.com>
1731 * src/base/ftobjs.c (load_mac_face): Recent versions of Linux
1732 support Mac's HFS+ file system, thus enable code to read /rsrc on
1733 non-Macintosh platforms also.
1735 2003-12-08 Werner Lemberg <wl@gnu.org>
1737 * include/freetype/internal/psaux.h (PS_TableRec): Change type
1738 of `lengths' to FT_PtrDist.
1739 (T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist.
1740 * include/freetype/internal/t1types.h (T1_FontRec): Change type
1741 of `subrs_len' and `charstrings_len' to FT_PtrDist.
1743 * src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk'
1744 variable with better solution.
1745 (IsMacResource): Remove unused variable `map_len'.
1746 Replace `junk' variable with better solution.
1747 (FT_Open_Face) [!FT_MACINTOSH]: Add conditional
1748 FT_CONFIG_OPTION_MAC_FONTS.
1750 2003-12-08 Wolfgang Domröse <porthos.domroese@harz.de>
1752 * src/autohint/ahhint.c (ah_hinter_hint_edges,
1753 ah_hinter_align_strong_points): Add some casts.
1755 * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type
1756 of `pos' to FT_Long.
1758 * src/base/ftobjs.c (Mac_Read_POST_Resource,
1759 Mac_Read_sfnt_Resource): Change type of `len' to FT_Long.
1761 * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'.
1763 2003-12-07 Werner Lemberg <wl@gnu.org>
1765 * docs/raster.txt: New file, taken from FreeType 1 and completely
1768 2003-12-04 Masatake YAMATO <jet@gyve.org>
1770 * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for
1771 t1_interface. t1_interface is used.
1773 2003-11-27 David Turner <david@freetype.org>
1775 * src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of
1776 2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are
1777 the scaling values for outline units, not for metric units.
1779 2003-11-25 Werner Lemberg <wl@gnu.org>
1781 * src/base/ftcalc.c, include/freetype/internal/ftcalc.h
1782 (FT_MulDiv_No_Round): Surround code with `#ifdef
1783 TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'.
1785 2003-11-23 Werner Lemberg <wl@gnu.org>
1787 * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and
1789 * include/freetype/internal/ftcalc.h: Updated.
1791 * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro.
1792 (TT_INT64): Removed.
1793 (DO_DIV): Use TT_MULDIV_NO_ROUND.
1795 * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use
1796 metrics->x_scale and metrics->y_scale.
1798 2003-11-22 Rogier van Dalen <R.C.van.Dalen@umail.leidenuniv.nl>
1800 * src/truetype/ttinterp.c (CUR_Func_move_orig): New macro.
1801 (Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New
1802 functions. Similar to Direct_Move, Direct_Move_X, and
1803 Direct_Move_Y but without touching.
1804 (Compute_Funcs): Use new functions.
1806 (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
1807 Round_Up_To_Grid, Round_To_Double_Grid, Round_Super,
1808 Round_Super_45): Fix rounding of value zero.
1810 (DO_DIV): Don't use TT_MULDIV.
1812 (Ins_SHC): This instruction actually touches the points.
1813 (Ins_MSIRP): Fix undocumented behaviour.
1815 * src/truetype/ttinterp.h (TT_ExecContextRec): Updated.
1817 2003-11-22 Werner Lemberg <wl@gnu.org>
1819 * docs/VERSION.DLL, docs/CHANGES: Updated.
1821 * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and
1822 metrics->y_scale really precise.
1824 (FT_Load_Glyph): Update computation of linearHoriAdvance and
1827 * src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC.
1829 2003-11-22 David Turner <david@freetype.org>
1831 * src/autofit/*: More updates.
1833 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
1834 * builds/unix/configure.ac (version_info): Set to 9:6:3.
1837 2003-11-13 John A. Boyd Jr. <jaboydjr@netwalk.com>
1839 * src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c
1840 (pcf_interpret_style): Replace spaces with dashes in properties
1841 SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing.
1843 2003-11-11 Werner Lemberg <wl@gnu.org>
1845 * docs/CHANGES: Updated.
1847 2003-11-11 John A. Boyd Jr. <jaboydjr@netwalk.com>
1849 Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF
1852 * src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function.
1853 (BDF_Face_Init): Don't handle style properties but call
1854 bdf_interpret_style.
1856 * src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function.
1857 (pcf_load_font): Don't handle style properties but call
1858 pcf_interpret_style.
1860 2003-11-07 Werner Lemberg <wl@gnu.org>
1863 * Version 2.1.7 released.
1864 =========================
1867 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
1869 * builds/unix/ft2unix.h: Fix comments.
1871 * builds/unix/ftconfig.in: Synchronized with ANSI version.
1872 Use `#undef' in templates as recommended in the autoconf
1874 Since real `#undef' lines don't survive during configuration, use
1875 `/undef' instead; the postprocessing facility of the
1876 AC_CONFIG_HEADERS autoconf macro converts them to `#undef'.
1878 * builds/unix/install.mk (install): Install Unix version of
1881 * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro
1882 to include the correct `ftconfig.h' file.
1884 * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed.
1885 (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59.
1887 * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59.
1889 * builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of
1890 AC_CONFIG_HEADER to create ftconfig.h, and use second argument
1891 to replace `/undef' with `#undef'.
1892 Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap.
1893 Use AS_HELP_STRING in AC_ARG_WITH.
1894 Update syntax to autoconf 2.59.
1896 * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
1897 --copy' from libtool 1.5.
1898 * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
1900 * builds/unix/configure: Regenerated with autoconf 2.59.
1901 * builds/unix/config.guess, builds/unix/config.sub: Updated from
1902 `config' CVS module at subversions.gnu.org
1903 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1904 `texinfo' CVS module at subversions.gnu.org.
1906 * builds/vms/ftconfig.h: Synchronized with ANSI version.
1908 * docs/CUSTOMIZE: Fix documentation error.
1909 * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated.
1911 * builds/freetype.mk (refdoc): Updated --title.
1913 2003-11-07 David Turner <david@freetype.org>
1916 * Version 2.1.6 released.
1917 =========================
1920 * install: Removed. Obsolete.
1922 2003-11-04 Werner Lemberg <wl@gnu.org>
1924 * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H.
1925 (sfnt_service_sfnt_table): New service.
1926 (sfnt_services): Updated.
1928 * docs/license.txt: Reworded.
1930 2003-11-03 Werner Lemberg <wl@gnu.org>
1932 * include/freetype/*: Add a guard to all public header files which
1933 load FT_FREETYPE_H to reject freetype.h from FreeType 1.
1935 2003-11-02 Patrick Welche <prlw1@newn.cam.ac.uk>
1937 * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect
1938 first argument of AC_DEFUN with brackets to avoid possible
1941 2003-11-02 Werner Lemberg <wl@gnu.org>
1943 * include/freetype/cache/ftcglyph.h: Don't include stddef.h.
1945 * include/freetype/freetype.h: Fix check for ft2build.h.
1947 2003-11-01 Werner Lemberg <wl@gnu.org>
1949 * include/freetype/freetype.h: Check that ft2build.h has been
1952 * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied
1955 2003-10-31 Detlef Würkner <TetiSoft@apg.lahn.de>
1957 * src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names):
1958 Fix parameter order in calls to FT_FACE_FIND_SERVICE.
1960 2003-10-31 Werner Lemberg <wl@gnu.org>
1962 * include/freetype/internal/ftserv.h
1963 (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed. Unused.
1965 * src/type42/t42drivr.c (t42_services): Updated.
1967 2003-10-29 David Turner <david@freetype.org>
1969 * include/freetype/internal/bdftypes.h: Removed. Obsolete.
1970 * src/base/ftbdf.c: Updated.
1972 * include/freetype/internal/cfftypes.h: Moved to...
1973 * src/cff/cfftypes.h: This place since no other module needs to
1974 know about those types.
1976 * include/freetype/internal/t42types.h: Moved to...
1977 * src/type42/t42types.h: This place since no other module needs to
1978 know about those types.
1980 * include/freetype/internal/services/svbdf.h: Include FT_BDF_H.
1982 * include/freetype/internal/services/svpsname.h: Renamed to...
1983 * include/freetype/internal/services/svpscmap.h: This.
1984 Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and
1985 `POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere.
1987 * include/freetype/internal/services/svpsinfo.h: New file, providing
1988 PostScript info service.
1990 * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H,
1991 FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and
1993 * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H,
1994 FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed.
1996 * src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and
1997 FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and
1998 FT_SERVICE_POSTSCRIPT_INFO_H.
1999 (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new
2000 POSTSCRIPT_INFO service.
2002 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
2003 (cff_ps_has_glyph_names): New function.
2004 (cff_service_ps_info): New service.
2005 (cff_services): Updated.
2007 * src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't
2008 include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly.
2010 * src/cif/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
2011 (cid_ps_get_font_info): New function.
2012 (cid_service_ps_info): New service.
2013 (cid_services): Updated.
2015 * src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
2016 (t1_ps_get_font_info, t1_ps_has_glyph_names): New functions.
2017 (t1_service_ps_info): New service.
2018 (t1_services): Updated.
2020 * src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
2021 (t42_ps_get_font_info, t42_ps_has_glyph_names): New functions.
2022 (t42_service_ps_info): New service.
2024 * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H
2025 but t42types.h directly.
2027 * src/psnames/psmodule.c (psnames_interface, psnames_services):
2029 (pscmaps_interface, pscmaps_services): This.
2033 * src/gzip/infblock.c (inflate_blocks): Remove compiler warning.
2035 2003-10-22 Werner Lemberg <wl@gnu.org>
2037 * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'.
2039 * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec'
2042 * src/type42/t42parse.c (t42_parse_encoding): Improve boundary
2043 checking while parsing.
2045 * docs/CHANGES: Updated.
2047 2003-10-21 Josselin Mouette <joss@debian.org>
2049 * include/freetype/internal/t1types.h (T1_FontRec): `paint_type'
2050 and `stroke_width' aren't pointers.
2052 * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c
2053 (T1_Face_Done): Don't free `paint_type' and `stroke_width'.
2055 2003-10-20 Graham Asher <graham.asher@btinternet.com>
2057 * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'.
2059 2003-10-19 Werner Lemberg <wl@gnu.org>
2061 * src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from
2062 2003-08-18 introduced a severe bug (FT_Render_Glyph was called
2063 twice under some circumstances, causing strange results). This
2064 is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'.
2066 * src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'.
2067 * src/psaux/psobjs.c (ps_tobytes): Initialize `n'.
2068 * src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'.
2070 2003-10-16 Werner Lemberg <wl@gnu.org>
2072 Completely revised Type 42 parser. It now handles both fonts
2073 produced with ttftot42 (tested version 0.3.1) and
2074 TrueTypeToType42.ps (tested version May 2001; it is necessary to
2075 fix the broken header comment to be `%!PS-TrueTypeFont...').
2077 * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth
2078 parameter to `FT_UInt'.
2079 * src/type42/t42objs.h: Updated.
2081 * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory'
2083 (T42_Loader): Change type of `num_chars' and `num_glyphs' to
2085 Add `swap_table' element.
2086 * src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed,
2087 T1_ToCoordArray, T1_ToTokenArray): Removed.
2088 (T1_ToBytes): New macro.
2089 (t42_is_alpha, t42_hexval): Removed.
2090 (t42_is_space): Handle `\0'.
2091 (t42_parse_encoding): Updated to use new PostScript parser routines
2093 Handle `/Encoding [ ... ]' also.
2094 (T42_Load_Status): New enumeration.
2095 (t42_parse_sfnts): Updated to use new PostScript parser routines
2097 (t42_parse_charstrings): Updated to use new PostScript parser
2098 routines from psaux.
2099 Handle `/CharStrings << ... >>' also.
2100 Don't expect that /.notdef is the first element in dictionary. Copy
2101 code from type1 module to handle this.
2102 (t42_parse_dict): Updated to use new PostScript parser routines
2104 Remove code for synthetic fonts (which can't occur in Type 42
2106 (t42_loader_done): Release `swap_table'.
2108 * src/psaux/psobjs.c (skip_string): Increase `cur' properly.
2110 * src/type1/t1load.c (parse_charstrings): Make test for `.notdef'
2113 2003-10-15 Graham Asher <graham.asher@btinternet.com>
2115 * src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c
2116 (fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty,
2117 _num_bdf_properties), src/gzip/infutil.c (inflate_mask),
2118 src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td),
2119 src/gzip/inftrees.h (inflate_trees_fixed), srf/gzip/inftrees.c
2120 (inflate_trees_fixed): Decorate with more `const' to avoid
2121 writable global variables which are disallowed on ARM.
2123 2003-10-08 Werner Lemberg <wl@gnu.org>
2125 * src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove
2126 code specially for synthetic fonts; this is handled elsewhere.
2127 (parse_encoding): Remove code specially for synthetic fonts; this is
2129 Improve boundary checking while parsing.
2130 (parse_dict): Improve boundary checking while parsing.
2131 Use ft_memcmp to simplify code.
2133 2003-10-07 Werner Lemberg <wl@gnu.org>
2135 * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic
2137 (parse_charstrings): Copy correct number of characters into
2140 2003-10-06 Werner Lemberg <wl@gnu.org>
2142 Heavy modification of the PS parser to handle comments and strings
2143 correctly. This doesn't slow down the loading of PS fonts
2144 significantly since charstrings aren't affected.
2146 * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to...
2147 (ft_isxdigit): This. Updated all callers.
2148 (ft_isdigit): New alias to `isdigit'.
2150 * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed
2151 `skip_alpha' to `skip_PS_token'.
2152 Add parameter to `to_bytes' and change some argument types.
2154 * src/psaux/psauxmod.c (ps_parser_funcs): Updated.
2155 * src/psaux/psobjs.c (ft_char_table): New array to map character
2156 codes (ASCII and EBCDIC) of digits to numbers.
2157 (OP): New auxiliary macro holding either `>=' or `<' depending on
2158 the character encoding.
2159 (skip_comment): New function.
2160 (skip_spaces): Use it.
2161 (skip_alpha): Removed.
2162 (skip_literal_string, skip_string): New functions.
2163 (ps_parser_skip_PS_token): New function. This is a better
2165 (ps_parser_skip_alpha): Removed.
2166 (ps_parser_to_token, ps_parser_to_token_array): Updated.
2167 (T1Radix): Rewritten, using `ft_char_table'.
2168 (t1_toint): Renamed to...
2169 (ps_toint): This. Update all callers.
2170 Use `ft_char_table'.
2171 (ps_tobytes): Add parameter to handle delimiters and change some
2173 Use `ft_char_table'.
2174 (t1_tofixed): Renamed to...
2175 (ps_tofixed): This. Update all callers.
2176 Use `ft_char_table'.
2177 (t1_tocoordarray): Renamed and updated to...
2178 (ps_tocoordarray): This. Update all callers.
2179 (t1_tofixedarray): Renamed and updated to...
2180 (ps_tofixedarray): This. Update all callers.
2181 (t1_tobool): Renamed to...
2182 (ps_tobool): This. Update all callers.
2183 (ps_parser_load_field): Updated.
2184 (ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS'
2186 (ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array,
2187 ps_parser_to_fixed_array): Skip spaces. Updated.
2188 (ps_parser_to_bytes): Add parameter to handle delimiters and change
2189 some argument types. Updated.
2190 * src/psaux/psobjs.h: Updated.
2192 * src/cid/cidload.c (cid_parse_dict): Updated.
2193 * src/cid/cidparse.c (cid_parser_new): Check whether the `StartData'
2194 token was really found.
2195 * src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed
2197 (cid_parser_skip_PS_token): This.
2199 * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean
2201 (T1_Skip_Alpha): Replaced with...
2202 (T1_Skip_PS_Token): This new macro.
2203 * src/type1/t1parse.c (hexa_value): Removed.
2204 (T1_Get_Private_Dict): Use `ft_isxdigit' and
2205 `psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal
2207 After decrypting, replace the four random bytes at the beginning
2209 * src/type1/t1load.c (t1_allocate_blend): Use proper error values.
2210 (parser_blend_design_positions, parse_blend_design_map,
2211 parse_weight_vector): Updated.
2212 (is_space): Handle `\f' also.
2213 (is_name_char): Removed.
2214 (read_binary_data): Updated.
2215 (parse_encoding): Use `ft_isdigit'.
2217 (parse_subrs): Updated.
2218 (TABLE_EXTEND): New macro.
2219 (parse_charstrings): Updated.
2220 Provide a workaround for buggy fonts which have more entries in the
2221 /CharStrings dictionary then expected; the function now adds some
2222 slots and skips entries which still exceed the new limit.
2223 (parse_dict): Updated.
2224 Terminate on the token `closefile'.
2226 * src/type42/t42parse.c (T1_Skip_Alpha): Replaced with...
2227 (T1_Skip_PS_Token): This new macro. Updated all callers.
2228 (t42_parse_encoding): Use `ft_isdigit'.
2231 * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_OK if
2234 2003-10-05 Werner Lemberg <wl@gnu.org>
2236 * include/freetype/ftmodule.h: Renamed to...
2237 * include/freetype/ftmodapi.h: This to avoid duplicate file names.
2238 * include/freetype/config/ftheader.h (FT_MODULE_H): Updated.
2240 2003-10-04 Werner Lemberg <wl@gnu.org>
2242 * src/base/ftoutln.c (FT_OrientationExtremumRec,
2243 FT_Outline_Get_Orientation): Trivial typo fixes to make it compile.
2245 2003-10-02 Markus F.X.J. Oberhumer <markus@oberhumer.com>
2247 * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset'
2248 has four bytes, not two.
2250 (fnt_font_load, FNT_Load_Glyph): Add more font validity tests.
2252 2003-10-01 David Turner <david@freetype.org>
2254 * src/autofit/*: Adding first source files of the new multi-script
2257 * include/freetype/ftoutln.h (FT_Orientation): New enumeration.
2258 (FT_Outline_Get_Orientation): New declaration.
2260 * src/base/ftoutln.c (FT_OrientationExtremumRec): New structure.
2261 (ft_orientation_extremum_compute): New auxiliary function.
2262 (FT_Outline_Get_Orientation): New function to compute the fill
2263 orientation of a given glyph outline.
2265 * include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed
2266 trivial bug which could crash the font engine when a cached service
2267 pointer was retrieved.
2269 2003-09-30 Werner Lemberg <wl@gnu.org>
2271 * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is
2274 * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE,
2275 IS_T1_SPACE): Removed.
2277 (read_pfb_tag): Don't use PFB_Tag.
2279 * src/type42/t42parse.c (t42_is_space): Handle `\f' also.
2280 (t42_parse_encoding): Handle synthetic fonts.
2282 2003-09-29 Werner Lemberg <wl@gnu.org>
2284 * include/freetype/internal/t1types.h: Don't include
2285 FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H.
2286 * src/truetype/ttobjs.c: Don't include
2287 FT_SERVICE_POSTSCRIPT_NAMES_H.
2289 2003-09-29 David Turner <david@freetype.org>
2291 Added new service to handle glyph name dictionaries, replacing the
2292 old internal header named `psnames.h' by `services/svpsname.h'.
2293 Note that this is different from `services/svpostnm.h' which only
2294 handles the retrieval of PostScript font names for a given face.
2295 (Should we merge these two services into a single header?)
2297 * include/freetype/internal/psnames.h: Removed. Most of its
2298 contents is moved to...
2299 * include/freetype/internal/services/svpsname.h: New file.
2301 * include/freetype/internal/services/svpostnm.h
2302 (FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with...
2303 (FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro.
2304 (PsName): Service named changed to...
2306 Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and
2307 `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere.
2309 * include/freetype/internal/internal.h
2310 (FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed.
2311 * include/freetype/internal/psaux.h: Include
2312 FT_SERVICE_POSTSCRIPT_NAMES_H.
2313 (T1_DecoderRec): Updated type of `psnames'.
2314 * include/freetype/internal/t1types.h: Don't include
2315 FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
2316 Include FT_INTERNAL_OBJECTS_H.
2317 * include/freetype/internal/t42types.h: Don't include
2318 FT_INTERNAL_POSTSCRIPT_NAMES_H.
2319 * include/freetype/internal/tttypes.h (TT_FaceRec): Updated.
2321 * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed
2322 order of parameters. All callers updated.
2323 (FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service
2324 globally, checking all modules.
2325 (FT_ServiceCacheRec): Updated.
2326 (FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing
2329 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c
2330 (ft_module_get_service): New function.
2332 * src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
2333 but FT_SERVICE_POSTSCRIPT_NAMES_H.
2334 (cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES
2336 * src/cff/cffcmap.c (cff_cmap_unicode_init): Updated.
2337 * src/cff/cffload.c, src/cff/cffload.h: Don't include
2338 FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
2339 (cff_index_get_sid_string): Updated.
2340 * src/cff/cffobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
2341 but FT_SERVICE_POSTSCRIPT_NAMES_H.
2342 (cff_face_init): Use new POSTSCRIPT_NAMES service.
2343 * src/cff/cffobjs.h: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
2344 but FT_SERVICE_POSTSCRIPT_NAMES_H.
2346 * src/cid/cidobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
2347 but FT_SERVICE_POSTSCRIPT_NAMES_H.
2348 (cid_face_init): Use new POSTSCRIPT_NAMES service.
2349 * src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H.
2351 * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use
2352 new POSTSCRIPT_NAMES service.
2353 * src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode,
2354 t1_decode_init): Use new POSTSCRIPT_NAMES service.
2355 * src/psaux/t1cmap.h, src/psaux/t1decode.h: Dont' include
2356 FT_INTERNAL_POSTSCRIPT_NAMES_H.
2358 * src/psnames/psmodule.c: Don't include
2359 FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
2360 (ps_build_unicode_table): Renamed to...
2361 (ps_unicodes_init): This.
2362 (ps_lookup_unicode): Renamed to...
2363 (ps_unicodes_char_index): This.
2364 (ps_next_unicode): Renamed to...
2365 (ps_unicodes_char_next): This.
2366 (psnames_interface): Updated.
2367 (psnames_services): New services list.
2368 (psnames_get_service): New function.
2369 (psnames_module_class): Updated.
2371 * src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
2372 but FT_SERVICE_POSTSCRIPT_NAMES_H.
2373 (sfnt_init_face): Use new POSTSCRIPT_NAMES service.
2374 * src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
2375 but FT_SERVICE_POSTSCRIPT_NAMES_H.
2376 (tt_face_get_ps_name): Updated.
2378 * src/truetype/ttobjs.c: Don't include
2379 FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
2381 * src/type1/t1driver.c: Don't include
2382 FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
2383 * src/type1/t1objs.c: Don't include
2384 FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
2385 (T1_Face_Init): Use new POSTSCRIPT_NAMES service.
2387 * src/type42/t42drivr.c (t42_get_ps_name): Renamed to...
2388 (t42_get_ps_font_name): This.
2389 (t42_service_ps_name): Renamed to...
2390 (t42_service_ps_font_name): This.
2391 (t42_services): Updated.
2392 * src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES
2394 * src/type42/t42objs.h: Don't include
2395 FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
2398 * src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before
2399 testing its validity. Reported by Henry Maddocks
2400 <maddocks@metservice.com>.
2402 2003-09-21 Werner Lemberg <wl@gnu.org>
2404 * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE):
2405 Fix compilation warning (s/pptr/Pptr/).
2407 * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H,
2408 FT_INTERNAL_FNT_TYPES_H): Removed.
2410 2003-09-21 David Turner <david@freetype.org>
2412 Migrating the PFR and WINFNT drivers to the new service-based
2415 * include/freetype/internal/fnttypes.h: Removed. Most of its data
2416 are moved to winfnt.h and...
2417 * include/freetype/internal/services/svwinfnt.h: New file.
2419 * include/freetype/internal/pfr.h: Removed. Most of its data are
2421 * include/freetype/internal/services/svpfr.h: New file.
2423 * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
2424 FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing
2425 pointer type argument.
2426 Updated all callers.
2427 Update macro names of services header files.
2429 * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code.
2431 * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of
2433 (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning,
2434 FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'.
2436 * src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of
2437 FT_INTERNAL_FNT_TYPES_H.
2438 (FT_Get_WinFNT_Header): Use service provided in `WINFNT'.
2440 * src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and
2441 FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H.
2442 (pfr_service_bdf): Updated.
2443 (pfr_services): New services list.
2444 (pfr_get_service): New function.
2445 (pfr_driver_class): Updated.
2447 * src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and
2448 FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H.
2449 (winfnt_get_header, winfnt_get_service): New functions.
2450 (winfnt_service_rec): New structure providing WINFNT services.
2451 (winfnt_services): New services list.
2452 (winfnt_driver_class): Updated.
2453 * src/winfonts/winfnt.h: Add most of the removed fnttypes.h data.
2455 * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo.
2457 * src/type1/t1driver.c (t1_service_ps_name): Fix typo.
2459 * src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c,
2460 src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c,
2461 src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler
2464 2003-09-19 David Bevan <dbevan@emtex.com>
2466 * src/type1/t1parse.c (pfb_tag_fields): Removed.
2467 (read_pfb_tag): Fix code so that it doesn't fail on end-of-file
2469 * docs/CHANGES: Updated.
2471 2003-09-16 Werner Lemberg <wl@gnu.org>
2473 * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
2474 FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type.
2475 Ugly, I know, but this is needed for compilation with C++ --
2476 maybe someone knows a better solution?
2477 Updated all callers.
2479 * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove
2480 C++ compiler warnings.
2482 * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property):
2483 Fix order of arguments passed to FT_FACE_FIND_SERVICE.
2485 2003-09-15 Werner Lemberg <wl@gnu.org>
2487 Avoid header files with identical names.
2489 * include/freetype/internal/services/bdf.h: Renamed to...
2490 * include/freetype/internal/services/svbdf.h: This.
2491 Add copyright notice.
2492 * include/freetype/internal/services/glyfdict.h: Renamed to...
2493 * include/freetype/internal/services/svgldict.h: This.
2494 Add copyright notice.
2495 * include/freetype/internal/services/multmast.h: Renamed to...
2496 * include/freetype/internal/services/svmm.h: This.
2497 Add copyright notice.
2498 Add FT_BEGIN_HEADER and FT_END_HEADER.
2499 * include/freetype/internal/services/sfnt.h: Renamed to...
2500 * include/freetype/internal/services/svsfnt.h: This.
2501 Add copyright notice.
2502 * include/freetype/internal/services/postname.h: Renamed to...
2503 * include/freetype/internal/services/svpostnm.h: This.
2504 Add copyright notice.
2505 * include/freetype/internal/services/xf86name.h: Renamed to...
2506 * include/freetype/internal/services/svxf86nm.h: This.
2507 Add copyright notice.
2509 * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and
2511 Add copyright notice.
2512 Update macro names of services header files.
2514 * builds/freetype.mk (SERVICES_DIR): New variable.
2515 (BASE_H): Add services header files.
2517 2003-09-11 Werner Lemberg <wl@gnu.org>
2519 * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'.
2521 * src/cff/cffdrivr.c: Don't load headers twice.
2523 * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro.
2524 * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H.
2526 * src/cff/cffcmap.c: Include `cfferrs.h'.
2527 * src/pfr/pfrdrivr.c: Include `pfrerror.h'.
2528 * src/sfnt/sfdriver.c: Include `sferrors.h'.
2529 * src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'.
2531 2003-09-11 David Turner <david@freetype.org>
2533 Introducing the concept of `module services'. This is the first
2534 step towards a massive simplification of the engine's internals, in
2535 order to get rid of various numbers of hacks.
2537 Note that these changes will break source & binary compatibility for
2538 authors of external font drivers.
2540 * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT,
2541 FT_DUMMY_STMNT): New macros.
2543 * include/freetype/internal/ftserv.h: New file, containing the new
2544 structures and macros to provide `services'.
2546 * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H,
2547 FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H):
2549 (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'.
2551 * include/freetype/internal/services/bdf.h,
2552 include/freetype/internal/services/glyfdict.h,
2553 include/freetype/internal/services/postname.h,
2554 include/freetype/internal/services/xf86name.h: New files.
2556 * include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func,
2557 FT_Set_MM_Blend_Func): Function pointers moved (in modified form)
2559 * include/freetype/internal/services/multmast.h: New file.
2561 * include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface'
2562 is now of type `FT_Module_Requester'.
2563 (SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers
2564 moved (in modified form) to...
2565 * include/freetype/internal/servies/sfnt.h: New file.
2567 * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function
2568 pointer moved (in modified form) to `services/sfnt.h'.
2570 * include/freetype/ftmodule.h (FT_Module_Interface): Make it a
2571 a typedef to `FT_Pointer'.
2573 * include/freetype/internal/tttypes.h (TT_FaceRec): Add
2575 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
2577 Add `services' element.
2578 (FT_LibraryRec): Remove `meta_class'.
2580 * src/base/ftbdf.c: Include FT_SERVICE_BDF_H.
2581 (test_font_type): Removed.
2582 (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services
2583 provided in `FT_SERVICE_ID_BDF'.
2585 * src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H.
2586 (ft_face_get_mm_service): New auxiliary function to get services
2587 from `FT_SERVICE_ID_MULTI_MASTERS'.
2588 (FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates,
2589 FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'.
2591 * src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
2592 FT_SERVICE_GLYPH_DICT_H.
2593 (ft_service_list_lookup): New function to get a specific service.
2594 (destroy_face): Updated.
2595 (Mac_Read_POST_Resource): Simplify some code.
2596 (IsMacResource): Fix warnings.
2597 (FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in
2598 `FT_SERVICE_ID_GLYPH_DICT'.
2599 (FT_Get_Postscript_Name): Use service provided in
2600 `FT_SERVICE_ID_POSTSCRIPT_NAME'.
2601 (FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in
2602 `FT_SERVICE_ID_SFNT_TABLE'.
2604 * src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H.
2605 (FT_Get_X11_Font_Format): Use service provided in
2606 `FT_SERVICE_ID_XF86_NAME'.
2608 * src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and
2609 FT_SERVICE_XFREE86_NAME_H.
2610 (bdf_get_charset_id): New function.
2611 (bdf_service_bdf): New structure providing BDF services.
2612 (bdf_services): New services list.
2613 (bdf_driver_requester): Use `ft_service_list_lookup'.
2615 * src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and
2616 FT_SERVICE_GLYPH_DICT_H.
2617 (cff_service_glyph_dict): New structure providing CFF services.
2618 (cff_services): New services list.
2619 (cff_get_interface): Use `ft_service_list_lookup'.
2621 * src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
2622 FT_SERVICE_XFREE86_NAME_H.
2623 (cid_service_ps_name): New structure providing CID services.
2624 (cid_services): New services list.
2625 (cid_get_interface): Use `ft_service_list_lookup'.
2627 * src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and
2628 FT_SERVICE_XFREE86_NAME_H.
2629 (pcf_service_bdf): New structure providing PCF services.
2630 (pcf_services): New services list.
2631 (pcf_driver_requester): Use `ft_service_list_lookup'.
2633 * src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and
2634 FT_SERVICE_POSTSCRIPT_NAME_H.
2635 (get_sfnt_glyph_name): Renamed to...
2636 (sfnt_get_glyph_name): This.
2637 (get_sfnt_postscript_name): Renamed to...
2638 (sfnt_get_ps_name): This.
2640 (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures
2642 (sfnt_services): New services list.
2643 (sfnt_get_interface): Use `ft_service_list_lookup'.
2645 * src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H.
2646 (tt_services): New services list.
2647 (tt_get_interface): Use `ft_service_list_lookup'.
2649 * src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H,
2650 FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and
2651 FT_SERVICE_POSTSCRIPT_NAME_H.
2652 (t1_service_glyph_dict, t1_service_ps_name,
2653 t1_service_multi_masters): New structures providing Type 1 services.
2654 (t1_services): New services list.
2655 (Get_Interface): Use `ft_service_list_lookup'.
2657 * src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H,
2658 FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H.
2659 (t42_service_glyph_dict, t42_service_ps_name): New strucures
2660 providing Type 42 services.
2661 (t42_services): New services list.
2662 (T42_Get_Interface): Use `ft_service_list_lookup'.
2665 * README, docs/CHANGES: Updating version numbers for 2.1.6, and
2666 removing obsolete warnings in the documentation.
2667 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
2668 * builds/unix/configure.ac (version_info): Set to 9:5:3.
2669 * builds/unix/configure: Regenerated.
2671 * include/freetype/internal/ftcore.h,
2672 include/freetype/internal/ftexcept.h,
2673 include/freetype/internal/fthash.h,
2674 include/freetype/internal/ftobject.h: Removed. Obsolete.
2676 2003-09-09 David Turner <david@freetype.org>
2678 Fixing PFR kerning support. The tables within the font file contain
2679 (charcode,charcode) kerning pairs, we need to convert them to
2682 * src/base/ftpfr.c (ft_pfr_check): Fix serious typo.
2683 * src/pfr/prfload.c: Remove dead code.
2684 (pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs):
2686 (pfr_phy_font_done): Free `kern_pairs'.
2687 (pfr_phy_font_load): Call `pfr_sort_kerning_pairs'.
2688 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction.
2689 * src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro.
2690 (PFR_KernPairRec): Make `kerning' an FT_Int.
2691 (PFR_PhyFontRec): New element `kern_pairs'.
2692 (PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and
2693 PFR_KERN_2BYTE_ADJ were erroneously reversed.
2695 * include/freetype/ftoption.h: Commenting out the macro
2696 TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
2698 2003-09-02 David Turner <david@freetype.org>
2701 * Version 2.1.5 released.
2702 =========================
2705 2003-08-31 Manish Singh <yosh@gimp.org>
2707 * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but
2710 2003-08-30 Werner Lemberg <wl@gnu.org>
2712 * include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312,
2713 FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New
2714 enumerations of FT_Encoding. The FT_ENCODING_MS_* variants except
2715 FT_ENCODING_MS_SYMBOL are now deprecated.
2717 * docs/CHANGES: Document it.
2719 2003-08-27 Werner Lemberg <wl@gnu.org>
2721 * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters
2724 2003-08-27 Mike FABIAN <mfabian@suse.de>
2726 * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c
2727 (BDF_Face_Init): Accept lowercase characters for slant and weight.
2729 2003-08-18 David Turner <david@freetype.org>
2731 * include/freetype/config/ftoption.h: Disabling TrueType bytecode
2732 interpreter until the UNPATENTED_HINTING works as advertised.
2734 * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for
2735 setting `load_flags'.
2737 * Jamfile: Adding the `refdoc' target to the Jamfile in order to
2738 build the API Reference in `docs/reference' automatically.
2740 * include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h,
2741 src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of
2742 `italic_angle', `underline_position', and `underline_thickness' to
2743 their previous values (i.e., long, short, and ushort) in order to
2744 avoid breaking binary compatibility.
2746 * include/freetype/ttunpat.h: Fixing documentation comment.
2748 * include/freetype/config/ftoption.h, devel/ftoption.h
2749 (TT_CONFIG_OPTION_OPTION_COMPILE_UNPATENTED_HINTING): Replaced
2751 (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users.
2752 (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed.
2754 * include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed.
2755 (FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro. Use this with
2756 `FT_Set_Debug_Hook' to get the same effect as the removed
2757 TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING.
2759 * src/truetype/ttobjs.c (tt_face_init): Use
2760 `FT_DEBUG_HOOK_UNPATENTED_HINTING'.
2762 2003-08-06 Werner Lemberg <wl@gnu.org>
2764 * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
2765 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix
2768 2003-08-05 Werner Lemberg <wl@gnu.org>
2770 * src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
2771 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply
2772 font matrix to advance width also.
2773 * docs/CHANGES: Updated.
2775 2003-07-26 Werner Lemberg <wl@gnu.org>
2777 * builds/unix/configure.ac (version_info): Set to 9:4:3.
2778 * builds/unix/configure: Updated.
2779 * docs/CHANGES, docs/VERSION.DLL: Updated.
2781 * include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16
2782 also breaks binary compatibility. Reintroduce an unsigned integer
2783 at the old position of `flags' called `reserved'.
2785 2003-07-25 Werner Lemberg <wl@gnu.org>
2787 Make API reference valid HTML 4.01 transitional.
2789 * src/tools/docmaker/tohtml.py (html_header_1): Add doctype
2791 (html_header_2): Fix style elements and add some more.
2793 (block_header, block_footer, description_header, description_footer,
2794 marker_header, marker_footer, source_header, source_footer,
2795 chapter_header): Don't use <center>...</center> but `align=center'
2797 (chapter_inter, chapter_footer): Add <li> and use special <ul>
2799 Use double quotes around table widths given in percent.
2800 (keyword_prefix, keyword_suffix): Don't change font colour directly
2801 but use a new <span> class.
2802 (section_synopsis_header, section_synopsis_footer): Don't change
2804 (code_header, code_footer): Don't change font colour directly but
2805 use a special <pre> class.
2806 (print_html_field): <tr> gets the `valign' attribute, not <table>.
2807 (print_html_field_list): Ditto.
2808 (index_exit): Don't use <center>...</center> but `align=center'
2810 (section_enter): Ditto.
2811 (toc_exit): Don't emit </table>.
2812 (block_enter): Use <h4><a>, not <a><h4>.
2813 (__init__): Fix tag order in self.html_footer.
2815 2003-07-25 David Turner <david@freetype.org>
2817 This change reimplements fix from 2003-05-30 without breaking
2818 binary compatibility.
2820 * include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle',
2821 `is_fixed_pitch', `underline_position', `underline_thickness' are
2822 reverted to be normal values.
2824 * include/freetype/internal/psaux.h (T1_FieldType): Remove
2825 `T1_FIELD_TYPE_BOOL_P', `T1_FIELD_TYPE_INTEGER_P',
2826 `T1_FIELD_TYPE_FIXED_P', `T1_FIELD_TYPE_FIXED_1000_P'.
2827 (T1_FIELD_TYPE_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P,
2828 T1_FIELD_FIXED_1000_P): Removed.
2829 (T1_FIELD_TYPE_BOOL): Renamed to...
2830 (T1_FIELD_BOOL): New macro. Updated all callers.
2832 * src/type42/t42parse.c: `italic_angle', `is_fixed_pitch',
2833 `underline_position', `underline_thickness', `paint_type',
2834 `stroke_width' are reverted to be normal values.
2835 (T42_KEYWORD_COUNT): New macro.
2836 (t42_parse_dict): New array `keyword_flags' to mark that a value has
2837 already been assigned to a dictionary entry.
2838 * src/type42/t42objs.c (T42_Face_Init, T42_Face_Done): Updated.
2840 * src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch',
2841 `underline_position', `underline_thickness' are reverted to be
2843 * src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated.
2845 * src/psaux/psobjs.c (ps_parser_load_field): Updated.
2847 * src/type1/t1tokens.h: `italic_angle', `is_fixed_pitch',
2848 `underline_position', `underline_thickness', `paint_type',
2849 `stroke_width' are reverted to be normal values.
2850 * src/type1/t1objs.c (T1_Face_Done, T1_Face_Init): Updated.
2851 * src/type1/t1load.c (T1_FIELD_COUNT): New macro.
2852 (parse_dict): Add parameter for keyword flags.
2853 Record only first instance of a field.
2854 (T1_Open_Face): New array `keyword_flags'.
2856 2003-07-24 Werner Lemberg <wl@gnu.org>
2858 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
2859 * builds/unix/configure.ac (version_info): Set to 10:0:3.
2860 * builds/unix/configure: Updated.
2861 * builds/freetype.mk (refdoc): Fix --title.
2863 * docs/CHANGES, docs/VERSION.DLL, README: Updated.
2865 * src/tools/docmaker/sources.py (re_crossref): Fix regular
2866 expression to handle trailing punctuation characters.
2867 * src/tools/docmaker/tohtml.py (make_html_word): Updated.
2869 * docs/release: New file.
2871 2003-07-23 YAMANO-UCHI Hidetoshi <mer@din.or.jp>
2873 * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New
2874 member function `to_bytes'.
2876 * src/psaux/psauxmod.c (ps_parser_funcs): New member
2877 `ps_parser_to_bytes'.
2878 (psaux_module_class): Increase version to 0x20000L.
2880 * src/psaux/psobjs.c (IS_T1_LINESPACE): Add \f.
2881 (IS_T1_NULLSPACE): New macro.
2882 (IS_T1_SPACE): Add it.
2883 (skip_spaces, skip_alpha): New functions.
2884 (ps_parser_skip_spaces, ps_parser_skip_alpha): Use them.
2885 (ps_tobytes, ps_parser_to_bytes): New functions.
2887 2003-07-07 Werner Lemberg <wl@gnu.org>
2889 * builds/freetype.mk (DOC_DIR): New variable.
2890 (refdoc): Use *_DIR variables.
2891 (distclean): Remove documentation files.
2893 * builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'.
2895 * configure: Set DOC_DIR variable.
2897 2003-07-07 Patrik Hägglund <patrik.hagglund@bredband.net>
2899 * builds/freetype.mk (refdoc): New target to build the
2903 * include/freetype/freetype.h: Improve documentation of FT_CharMap.
2904 * include/freetype/ftimage,h: Fix documentation of FT_OUTLINE_FLAGS.
2905 * include/freetype/tttables.h: Document FT_Sfnt_Tag.
2907 2003-07-06 Werner Lemberg <wl@gnu.org>
2909 * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfread.c
2910 (pcf_load_font): Fix computation of height if PIXEL_SIZE property is
2913 2003-07-01 Werner Lemberg <wl@gnu.org>
2915 * src/cache/ftcsbits.c (ftc_sbit_node_compare): Only add `size' if
2916 there is no error. Reported by Knut St. Osmundsen
2917 <bird-freetype@anduin.net>.
2919 2003-06-30 Werner Lemberg <wl@gnu.org>
2921 A new try to synchronize bitmap font access.
2923 * include/freetype/freetype.h (FT_Bitmap_Size): `height' is now
2924 defined to return the baseline-to-baseline distance. This was
2925 already the value returned by the BDF and PCF drivers.
2927 The `width' field now gives the average width. I wasn't able to
2928 find something better. It should be taken as informative only.
2930 New fields `size', `x_ppem', and `y_ppem'.
2932 * src/pcf/pcfread.c (pcf_load_font): Updated to properly fill
2934 Do proper rounding and conversion from 72.27 to 72 points.
2936 * src/bdf/bdfdrivr.c (BDF_Face_Init): Updated to properly fill
2938 Do proper rounding and conversion from 72.27 to 72 points.
2940 * src/sfnt/sfobjs.c (sfnt_load_face): Updated to properly fill
2943 * src/winfonts/winfnt.c (FNT_Face_Init): Updated to properly fill
2946 2003-06-29 Werner Lemberg <wl@gnu.org>
2948 Redesigning the FNT driver to return multiple faces, not multiple
2949 strikes. At least one font (app850.fon from WinME) contains
2950 different FNT charmaps for its subfonts. Consequently, the previous
2951 design of having multiple bitmap strikes in a single font face fails
2952 since we have only one charmap per face.
2954 * include/freetype/internal/fnttypes.h (FNT_Size_Rec): Removed.
2955 (FNT_FaceRec): Remove `num_fonts' field and replace `fonts' with
2958 * src/base/ftwinfnt.c (FT_Get_WinFNT_Header): Updated.
2960 * src/winfonts/winfnt.c (fnt_font_load): Don't set pixel_width equal
2962 (fnt_face_done_fonts): Removed.
2963 (fnt_face_get_dll_fonts): Renamed to...
2964 (fnt_face_get_dll_font): This. Add second function argument to
2966 Updated to load just one subfont.
2967 (fnt_font_done, FNT_Face_Done): Updated.
2968 (FNT_Face_Init): Handle `face_index'.
2970 (FNT_Size_Set_Pixels): Simplified; similar to BDF and PCF, the
2971 bitmap width is now ignored.
2972 (FNT_Load_Glyph): Updated.
2973 Fix glyph index computation.
2974 (winfnt_driver_class): Updated.
2976 2003-06-25 Owen Taylor <otaylor@redhat.com>
2978 * src/sfnt/ttload.c (tt_face_load_hdmx): Don't assign
2979 num_records until we actually decide to load the table,
2980 otherwise, we'll segfault in tt_face_free_hdmx.
2982 2003-06-24 Werner Lemberg <wl@gnu.org>
2984 * src/cff/cffdrivr.c (cff_get_glyph_name): Protect against zero
2985 glyph name pointer. Reported by Mikey Anbary <manbary@vizrt.com>.
2987 2003-06-23 Werner Lemberg <wl@gnu.org>
2989 * src/tools/glnames.py: Updated to AGL 2.0.
2990 * src/psnames/pstables.h: Regenerated.
2992 2003-06-22 Werner Lemberg <wl@gnu.org>
2994 * include/freetype/cache/ftcglyph.h, include/freetype/ttnameid.h,
2995 src/base/ftcalc.c, src/base/fttrigon.c, src/cff/cffgload.c,
2996 src/otlayout/otlgsub.c, src/pshinter/pshrec.c,
2997 src/psnames/psmodule.c, src/sfnt/sfobjs.c, src/truetype/ttdriver.c:
2998 Decorate constants with `U' and `L' if appropriate.
3000 * include/freetype/ftmoderr.h: Updated to include recent module
3003 * src/pshinter/pshnterr.h (FT_ERR_BASE): Define as
3004 `FT_Mod_Err_PShinter'.
3005 * src/type42/t42error.h (FT_ERR_BASE): Define as
3006 `FT_Mod_Err_Type42'.
3008 * src/pshinter/pshrec.h (PS_HINTS_MAGIC): Removed. Not used.
3010 * include/freetype/config/ftconfig.h [__MWERKS__]: Define FT_LONG64
3013 2003-06-21 Werner Lemberg <wl@gnu.org>
3015 * src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in
3016 computation of glyph_index.
3017 (FNT_Size_Set_Pixels): To find a strike, first check pixel_height
3018 only, then try to find a better hit by comparing pixel_width also.
3019 Without this fix it isn't possible to access all strikes.
3020 Also compute metrics.max_advance to be in sync with other bitmap
3023 * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code.
3024 (FT_Set_Pixel_Size): Assign value to `metrics' after validation of
3027 2003-06-20 Werner Lemberg <wl@gnu.org>
3029 Synchronize computation of height and width for bitmap strikes. The
3030 `width' field in the FT_Bitmap_Size structure is now only useful to
3031 enumerate different strikes. The `max_advance' field of the
3032 FT_Size_Metrics structure should be used to get the (maximum) width
3035 * src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for
3036 computing `available_sizes->width' but make it always equal to
3037 `available_sizes->height'.
3039 * src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for
3040 computing `available_sizes->width' but make it always equal to
3041 `available_sizes->height'.
3043 * src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single
3044 argument to function.
3046 * src/psnames/psmodule.c (ps_unicode_value): Handle `.' after
3047 `uniXXXX' and `uXXXX[X[X]]'.
3049 2003-06-19 Werner Lemberg <wl@gnu.org>
3051 * src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/.
3052 * src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c:
3053 s/FT_Err_/FTC_Err_/.
3054 * src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/.
3055 * src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/.
3056 * src/psaux/t1cmap.c: Include psauxerr.h.
3057 s/FT_Err_/PSaux_Err_/.
3058 * src/pshinter/pshnterr.h: New file.
3059 * src/pshinter/rules.mk: Updated.
3060 * src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h.
3061 s/FT_Err_/PSH_Err_/.
3062 * src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c:
3063 s/FT_Err_/PFR_Err_/.
3064 * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
3065 src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/.
3066 * src/truetype/ttgload.c: s/FT_Err_/TT_Err_/.
3067 * src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define
3068 FT_ERR_PREFIX and FT_ERR_BASE.
3069 s/FT_Err_/Gzip_Err_/.
3071 2003-06-19 Dirck Blaskey <listtarget@danbala.com>
3073 * src/cff/cffload (cff_encoding_load): `nleft' must be FT_UInt,
3074 otherwise adding 1 might wrap the result.
3076 2003-06-18 Werner Lemberg <wl@gnu.org>
3078 * src/psnames/psmodule.c (ps_unicode_value): Add support to
3079 recognize `uXXXX[X[X]]' glyph names.
3080 Don't handle glyph names starting with `uni' which have more than
3083 2003-06-16 Werner Lemberg <wl@gnu.org>
3085 * include/freetype/freetype.h (FT_Open_Flags): Replaced with
3086 #defines for the constants.
3087 (FT_Open_Args): Change type of `flags' to FT_UInt.
3088 (FT_GlyphSlot): Move `flags' to FT_Slot_Internal.
3090 * include/freetype/ftimage.h (FT_Outline_Flags, FT_Raster_Flag):
3091 Replaced with #defines for the constants.
3093 * include/freetype/internal/ftobjs.h (FT_Slot_Internal): New
3094 field `flags' (from FT_GlyphSlot).
3095 Updated all affected source files.
3096 (FT_GLYPH_OWN_BITMAP): New macro (from ftgloadr.h).
3098 * include/freetype/internal/ftgloadr.h (FT_GLYPH_OWN_BITMAP): Moved
3101 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Use dummy
3102 FT_GlyphSlot_Internal object.
3104 2003-06-15 Werner Lemberg <wl@gnu.org>
3106 * builds/compiler/gcc.mk, builds/compiler/gcc-dev.mk (CFLAGS):
3107 Add -fno-strict-aliasing to get rid of zillion warnings from gcc
3110 2003-06-14 Werner Lemberg <wl@gnu.org>
3112 * include/freetype/ftglyph.h (ft_glyph_bbox_unscaled,
3113 ft_glyph_bbox_subpixels, ft_glyph_bbox_gridfit,
3114 ft_glyph_bbox_truncate, ft_glyph_bbox_pixels): Replaced with
3115 FT_GLYPH_BBOX_UNSCALED, FT_GLYPH_BBOX_SUBPIXELS,
3116 FT_GLYPH_BBIX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS.
3117 The lowercase variants are now (deprecated aliases) to the uppercase
3119 Updated all other files.
3121 * include/freetype/ftmodule.h (ft_module_font_driver,
3122 ft_module_renderer, ft_module_hinter, ft_module_styler,
3123 ft_module_driver_scalable, ft_module_driver_no_outlines,
3124 ft_module_driver_has_hinter): Replaced with FT_MODULE_FONT_DRIVER,
3125 FT_MODULE_RENDERER, FT_MODULE_HINTER, FT_MODULE_STYLER,
3126 FT_MODULE_DRIVER_SCALABLE, FT_MODULE_DRIVER_NO_OUTLINES,
3127 FT_MODULE_DRIVER_HAS_HINTER.
3128 The lowercase variants are now (deprecated aliases) to the uppercase
3130 Updated all other files.
3132 * src/base/ftglyph.c (FT_Glyph_Get_CBox): Handle bbox_mode better
3135 * src/pcf/pcfdrivr.c (pcf_driver_class), src/winfonts/winfnt.c
3136 (winfnt_driver_class), src/bdf/bdfdrivr.c (bdf_driver_class): Add
3137 the FT_MODULE_DRIVER_NO_OUTLINES flag.
3139 2003-06-13 Detlef Würkner <TetiSoft@apg.lahn.de>
3141 * src/pfr/pfrobjs.c (pfr_slot_load): Apply font matrix.
3143 2003-06-13 Werner Lemberg <wl@gnu.org>
3145 * builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also.
3147 * builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for
3149 * builds/dos/detect.mk: Add target `emx'.
3151 * builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't
3152 like a trailing semicolon; add a dummy command.
3154 * src/cid/cidload.c: Remove parse_font_bbox code (already enclosed
3155 with #if 0 ... #endif).
3157 * src/type1/t1tokens.h: Handle /FontName.
3158 * src/type1/t1load.c (parse_font_name): Removed.
3159 Remove parse_font_bbox code (already enclosed with #if 0 ...
3162 * src/type42/t42parse.c (t42_parse_font_name): Removed.
3163 Remove t42_parse_font_bbox code (already enclosed with #if 0 ...
3165 (t42_keywords): Handle /FontName with T1_FIELD_KEY.
3167 2003-06-12 Werner Lemberg <wl@gnu.org>
3169 * include/freetype/internal/psaux.h (T1_FieldType): Add
3171 (T1_FIELD_KEY): New macro.
3172 * src/psaux/psobjs.c (ps_parser_load_field): Handle
3175 * src/cid/cidtoken.h: Use T1_FIELD_KEY for /CIDFontName.
3177 2003-06-11 Alexander Malmberg <alexander@malmberg.org>
3179 * src/cache/ftlru.c (FT_LruList_Remove_Selection): Decrease
3181 (FT_LruList_Lookup): Fix assertion for out-of-memory case.
3183 2003-06-11 Werner Lemberg <wl@gnu.org>
3185 * src/cid/cidload.c (cid_decrypt): Removed.
3186 (cid_read_subrs): Use t1_decrypt from psaux module.
3187 * src/cid/cidload.h: Updated.
3188 * src/cid/cidgload.c (cid_load_glyph): Use t1_decrypt from psaux
3191 2003-06-10 Werner Lemberg <wl@gnu.org>
3193 * src/cid/cidobjs.c: Apply change 2003-05-31 from <Ron.Dev@gmx.de>.
3194 Compute style flags.
3195 Fix computation of root->height.
3196 * src/cid/cidtoken.h: Handle FontBBox.
3197 * src/cid/cidload.c (cid_load_keyword): Handle
3198 T1_FIELD_LOCATION_BBOX.
3199 (parse_font_bbox): Commented out.
3200 (cid_field_record): Comment out element for parsing FontBBox.
3202 * src/type42/t42parse.c (t42_parse_font_bbox): Commented out.
3203 (t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with
3205 (t42_parse_font_bbox): Commented out.
3206 (t42_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
3207 * src/type42/t42objs.c (T42_Face_Init): Apply change 2003-05-31
3208 from <Ron.Dev@gmx.de>.
3210 2003-06-09 George Williams <gww@silcom.com>
3212 * src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's
3213 TrueType specification.
3214 (Ins_MDRP, Ins_MIRP): Fix single width cut-in test.
3216 2003-06-09 Detlef Würkner <TetiSoft@apg.lahn.de>
3218 * src/gzip/ftgzip.c: (inflate_mask): Replaced with...
3219 (NO_INFLATE_MASK): This.
3220 * src/gzip/infutil.h: Declare `inflate_mask' conditionally by
3223 2003-06-09 Alexis S. L. Carvalho <alexis@cecm.usp.br>
3225 * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END
3228 2003-06-09 Wolfgang Domröse <porthos.domroese@harz.de>
3230 * src/pshinter/pshglob.c (psh_globals_new): Change calculation of
3231 dim->stdw.count to avoid compiler problem.
3233 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block
3234 variables to the beginning of the function to avoid compiler
3236 Add casts necessary for 16bit compilers.
3238 2003-06-09 Werner Lemberg <wl@gnu.org>
3240 * src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c.
3241 (PFR_DRV_H): Add pfrtypes.h.
3243 * include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/.
3245 2003-06-08 Karl Schultz <kschultz@rsinc.com>
3247 * src/pfr/pfrsbit.c (pfr_bitwriter_init): Change type of third
3248 argument to FT_Bool.
3249 (pfr_lookup_bitmap_data): Change type of third and fourth argument
3250 to FT_UInt. Updated caller.
3251 (pfr_load_bitmap_bits): Change type of fourth argument to FT_Bool.
3253 2003-06-08 Werner Lemberg <wl@gnu.org>
3255 Completely revised FreeType's make management.
3257 . In all makefiles `/' is used as the path separator. The
3258 conversion to the real path separators is done as late as
3259 possible using $(subst ...).
3261 . $(HOSTSEP) no longer exists. Now, $(SEP) gives the path separator
3262 for the operating system, and the new $(COMPILER_SEP) the path
3263 separator for the compiler tools.
3265 . $(BUILD) has been renamed to $(BUILD_DIR). In general, all
3266 directory variables end with `_DIR'. The variants ending in `_'
3267 (like `BASE_' have been removed).
3269 The following ChangeLog entries only describe changes which are
3270 not related to the redesign.
3272 * builds/beos/beos-def.mk (BUILD_DIR): Fix typo.
3273 * builds/compiler/watcom.mk (LINK_LIBRARY): Fix linker call to avoid
3274 overlong arguments as suggested by J. Ali Harlow
3275 <ali@avrc.city.ac.uk>.
3276 * builds/dos/dos-wat.mk: New file.
3277 * builds/freetype.mk (FREETYPE_H): Include header files from the
3278 `devel' subdirectory.
3280 * builds/os2/os2-dev.mk, builds/unix/unixddef.mk,
3281 builds/unix/unixddef.mk, builds/win32/w32-bccd.mk,
3282 builds/win32/w32-dev.mk (BUILD_DIR): Fix path.
3284 * builds/unix/configure.ac, builds/unic/configure: Updated.
3285 * builds/unix/unix-def.in (DISTCLEAN): Add `freetype2.pc'.
3287 2003-06-07 Werner Lemberg <wl@gnu.org>
3289 * src/base/ftmac.c (FT_New_Face_From_SFNT): s/rlen/sfnt_size/ to
3292 * devel/ftoption.h: Updated.
3294 2003-06-07 Detlef Würkner <TetiSoft@apg.lahn.de>
3296 * include/freetype/internal/psaux.h, src/truetype/ttgload.h:
3297 s/index/idx/ to fix compiler warnings.
3299 * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Use more `volatile' to
3300 fix compiler warning.
3302 * src/gzip/ftgzip.c (BUILDFIXED): Removed.
3303 * src/gzip/inftrees.c (inflate_trees_fixed) [!BUILDFIXED]: Use
3304 FT_UNUSED to remove compiler warning.
3306 2003-06-06 Werner Lemberg <wl@gnu.org>
3308 * include/freetype/ftstroker.h: Renamed to...
3309 * include/freetype/ftstroke.h: This.
3311 * src/base/ftstroker.c: Renamed to...
3312 * src/base/ftstroke.c: This.
3314 * include/freetype/config/ftheader.h (FT_STROKER_H): Updated.
3316 * src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk:
3319 * src/pcf/pcfdriver.c: Renamed to...
3320 * src/pcf/pcfdrivr.c: This.
3321 * src/pcf/pcfdriver.h: Renamed to...
3322 * src/pcf/pcfdrivr.h: This.
3324 * src/pcf/Jamfile, src/pcf/rules.mk: Updated.
3326 2003-06-05 Wenlin Institute (Tom Bishop) <wenlin@wenlin.com>
3328 * src/base/ftmac.c (file_spec_from_path) [TARGET_API_MAC_CARBON]:
3329 Add `#if !defined(__MWERKS__)'.
3331 2003-06-05 Werner Lemberg <wl@gnu.org>
3333 * include/freetype/internal/psaux.h (T1_FieldType): Add
3334 T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
3335 (T1_FIELD_FIXED_1000, T1_FIELD_FIXED_1000_P): New macros.
3336 * src/psaux/psobjs.c (ps_parser_load_field): Handle
3337 T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
3339 * src/cff/cffparse.c (cff_kind_fixed_thousand): New enumeration.
3340 (CFF_FIELD_FIXED_1000): New macro.
3341 (cff_parser_run): Handle cff_kind_fixed_thousand.
3342 * src/cff/cfftoken.h: Use CFF_FIELD_FIXED_1000 for blue_scale.
3343 * src/cff/cffload (cff_subfont_load): Fix default values of
3344 expansion_factor and blue_scale.
3346 * src/cif/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000
3349 * src/pshinter/pshglob.c (psh_globals_new): Fix default value of
3352 2003-06-04 Wolfgang Domröse <porthos.domroese@harz.de>
3354 * include/freetype/internal/ftdriver.h,
3355 include/freetype/internal/ftobjs.h,
3356 include/freetype/internal/psaux.h, src/cid/cidgload.c,
3357 src/psaux/psobjs.c, src/psaux/t1decode.c, src/psaux/psobjs.h,
3358 src/pshinter/pshrec.c, src/pshinter/pshalgo.c,
3359 src/psnames/psmodule.c, src/raster/ftraster.c, src/sfnt/sfobjs.c,
3360 src/smooth/ftgrays.c, src/smooth/ftsmooth.c, src/truetype/ttobjs.c,
3361 src/truetype/ttdriver.c, src/truetype/ttgload.c, src/type1/t1afm.c,
3362 src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1load.c,
3363 src/type1/t1objs.c, src/type42/t42parse.c, src/type42/t42parse.h:
3364 Many casts and slight argument type changes to make it work with
3367 2003-06-04 Werner Lemberg <wl@gnu.org>
3369 * include/freetype/config/ftoption.h: Defining
3370 TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING by default is a bad idea
3371 since some fonts (e.g. Arial) produce worse results than without
3374 2003-06-04 Werner Lemberg <wl@gnu.org>
3376 * src/truetype/ttgload.c (load_truetype_glyph)
3377 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Call
3378 FT_GlyphLoader_CheckPoints before adding phantom points. This fixes
3379 a segfault bug with fonts (e.g. htst3.ttf) which have nested
3380 subglyphs more than one level deep. Reported by Anthony Fok.
3382 * include/freetype/config/ftoption.h: Define
3383 TT_CONFIG_OPTION_BYTECODE_INTERPRETER,
3384 TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, and
3385 TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to make it the new
3388 2003-06-03 Werner Lemberg <wl@gnu.org>
3390 * src/autohint/ahhint.c (ah_hinter_hint_edges): Removed. Just a
3391 wrapper for ah_hint_edges.
3392 (ah_hint_edges): Renamed to...
3393 (ah_hinter_hint_edges): This.
3395 * src/base/ftobjs.c (FT_Set_Hint_Flags): Removed. Unused.
3397 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec),
3398 include/freetype/internal/psaux.h (T1_DecoderRec),
3399 src/cff/cffgload.h (CFF_Builder): Remove `hint_flags' field.
3402 * src/cff/cffgload.c (cff_builder_init): Updated.
3403 (cff_decoder_parse_charstrings) <cff_op_endchar>: Call hinter->apply
3404 with decoder->hint_mode instead of builder->hint_flags.
3405 * src/psaux/t1decode.c (t1_decoder_init): Updated.
3407 * src/base/ftstroker.c (ft_stroke_border_export): s/index/idx/.
3409 * src/sfnt/sfobjs.c (sfnt_load_face): Commented out code which
3410 increased root->height by 15% if the line gap was zero. There exist
3411 fonts (containing e.g. form drawing characters) which intentionally
3412 have a zero line gap value.
3414 * src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj):
3416 Updated all callers.
3418 2003-06-02 Werner Lemberg <wl@gnu.org>
3420 * src/cff/cffobjs.c (cff_face_init): Use symbolic names for
3421 Adobe specific encoding IDs (there was a wrong EID value for custom
3424 * src/cff/cffcmap.h (CFF_CMapStdRec): Remove `count'.
3425 * src/cff/cffcmap.c (cff_cmap_encoding_init,
3426 cff_cmap_encoding_done): Updated.
3427 (cff_cmap_encoding_char_index, cff_cmap_encoding_char_next): Use
3428 256 as limit for character code.
3430 2003-06-01 Werner Lemberg <wl@gnu.org>
3432 * src/winfonts/winfnt.c (FNT_Load_Glyph): Revert change from
3435 2003-05-31 Werner Lemberg <wl@gnu.org>
3437 * include/freetype/fttrigon.h (FT_Vector_Normalize): Removed.
3439 2003-05-31 <Ron.Dev@gmx.de>
3441 * src/type1/t1objs.c (T1_Face_Init): Improve algorithm for guessing
3442 the font style by ignoring spaces and hyphens.
3444 * builds/unix/freetype2.in: Fix `Version' field.
3446 2003-05-30 Werner Lemberg <wl@gnu.org>
3448 Avoid overwriting of numeric font dictionary entries for synthetic
3449 fonts. Additionally, some entries were handled as `integer' instead
3452 * include/freetype/internal/psaux.h (T1_FieldType): Add
3453 T1_FIELD_TYPE_BOOL_P, T1_FIELD_TYPE_INTEGER_P, and
3454 T1_FIELD_TYPE_FIXED_P.
3455 (T1_FIELD_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P): New macros.
3456 * src/psaux/psobjs.c (ps_parser_load_field): Handle new field types.
3458 * include/freetype/internal/cfftypes.h (CFF_FontRecDict),
3459 src/cff/cfftoken.h: Change type of underline_position and
3460 underline_thickness to FT_Fixed.
3461 * src/cff/cffload.c (cff_subfont_load): Fix default values of
3462 underline_position and underline_thickness.
3463 * src/cff/cffobjs.c (cff_face_init): Set underline_position
3464 and underline_thickness in `root'.
3466 * include/freetype/internal/t1types.h (T1_Font): Change point_type
3467 and stroke_width to pointers.
3468 * include/freetype/t1tables.h (PS_FontInfo): Change italic_angle,
3469 is_fixed_pitch, underline_position, and underline_thickness to
3471 * src/type1/t1tokens.h: Change italic_angle, is_fixed_pitch,
3472 underline_position, and underline_thickness to pointers. Change
3473 the type of the latter two to `fixed'.
3474 Change type of stroke_width to `fixed' and make it a pointer.
3475 Change paint_type to pointer.
3476 * src/type1/t1objs.c (T1_Face_Done): Updated.
3477 (T1_Face_Init): Updated.
3478 Fix assignment of underline_position and underline_thickness.
3480 * src/cid/cidtoken.h: Change italic_angle, is_fixed_pitch,
3481 underline_position, and underline_thickness to pointers. Change
3482 the type of the latter two to `fixed'.
3483 Change type of stroke_width to `fixed'.
3484 * src/cid/cidobjs.c (cid_face_done): Updated.
3485 (cid_face_init): Updated.
3486 Fix assignment of underline_position and underline_thickness.
3488 * src/type42/t42parse.c: Change italic_angle, is_fixed_pitch,
3489 underline_position, and underline_thickness to pointers. Change the
3490 type of the latter two to `fixed'.
3491 Change type of stroke_width to `fixed' and make it a pointer.
3492 Change paint_type to pointer.
3493 * src/type42/t42objs.c (T42_Face_Init): Updated.
3494 Fix assignment of underline_position and underline_thickness.
3495 (T42_Face_Done): Updated.
3497 * src/base/ftobjs.c (open_face_from_buffer): Fix compiler warning.
3498 * src/pshinter/pshglob.c, src/pshinter/pshglob.h
3499 (psh_globals_set_scale): Make it a local function.
3501 * test/gview.c: Fix renaming ps3->ps typo.
3504 2003-05-29 Werner Lemberg <wl@gnu.org>
3506 * src/pshinter/pshalgo1.[ch], src/pshinter/pshalgo2.[ch]: Removed.
3507 * src/pshinter/pshalgo.h: Removed.
3509 * src/pshinter/pshalgo3.[ch]: Renamed to...
3510 * src/pshinter/pshalgo.[ch]: New files.
3515 * src/pshinter/pshrec.c, src/pshinter/pshinter.c: Updated.
3516 * src/pshinter/rules.mk, src/pshinter/Jamfile: Updated.
3518 * src/pshinter/pshglob.[ch] (psh_dimension_snap_width): Commented
3521 * tests/gview.c: Remove code for pshalgo1 and pshalgo2.
3524 2003-05-28 Martin Zinser <zinser@decus.de>
3526 * vms_make.com: Reworked support for shareable images on VMS. The
3527 first version was kind of a hack; the current implementation of the
3528 procedure to extract the required symbols is much cleaner.
3530 Reworked creation of MMS files, avoiding a number of temporary files
3531 which were created in the previous version.
3533 Further work on creating descrip.mms files on the fly.
3535 * builds/vms/descrip.mms, src/autohint/descrip.mms,
3536 src/type1/descrip.mms: Removed.
3538 2003-05-28 Werner Lemberg <wl@gnu.org>
3540 * src/pshinter/pshalgo3.c (psh3_glyph_compute_extrema): Skip
3541 contours with only a single point to avoid segfault.
3543 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Activate code for
3546 2003-05-24 Werner Lemberg <wl@gnu.org>
3548 * src/autohint/ahtypes.h (AH_OPTION_NO_STRONG_INTERPOLATION):
3549 Removed since unused.
3551 2003-05-21 Werner Lemberg <wl@gnu.org>
3553 * include/freetype/config/ftstdlib.h (ft_strcat): New wrapper macro
3556 * src/base/ftmac.c (create_lwfn_name): s/isupper/ft_isupper/.
3557 (parse_font): s/memcpy/ft_memcpy/.
3558 (is_dfont) [TARGET_API_MAC_CARBON]: s/memcmp/ft_memcmp/.
3559 * src/base/ftobjs.c (load_mac_face) [FT_MACINTOSH]:
3560 s/strlen/ft_strlen/.
3561 s/strcat/ft_strcat/.
3562 s/strcpy/ft_strcpy/.
3563 * src/gzip/zutil.h: s/memset/ft_memset/.
3564 s/memcmp/ft_memcmp/.
3566 * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
3567 (PCF_Face_Init): Test for charset registry case-insensitively.
3569 * src/gzip/ftgzip.c (ft_gzip_fil_io): Revert change from yesterday;
3570 it has already been fixed differently.
3572 * src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around
3575 2003-05-21 Martin Zinser <zinser@decus.de>
3577 * t1load.c (parse_blend_axis_types): Fix compiler warning.
3579 * descrip.mms: Removed. Now created by...
3581 * vms_make.com: New file.
3583 2003-05-21 Weiqi Gao <weiqigao@networkusa.net>
3585 * src/gzip/ftgzip.c (ft_gzip_file_io): Avoid zero value of `delta'
3586 to prevent infinite loop.
3588 2003-05-21 Lars Clausen <lrclause@cs.uiuc.edu>
3590 * docs/VERSION.DLL: Provide better autoconf snippet to check
3593 2003-05-21 Werner Lemberg <wl@gnu.org>
3595 * src/base/ftobjs.c (open_face): Free `internal' not
3596 `face->internal' in case of error to avoid possible segfault.
3598 * src/pshinter/pshalgo3.c (ps3_hints_apply): Check whether we
3599 actually have an outline.
3601 2003-05-20 David Chester <davidchester@qmx.net>
3603 * src/pshinter/pshalgo3.c (ps3_hints_apply): Try to optimize
3604 y_scale so that the top of non-capital letters is aligned on a pixel
3605 boundary whenever possible.
3607 * src/autohint/ahhint.c (ah_hint_edges): Make sure that lowercase
3608 m's maintain their symmetry.
3610 2003-05-20 Werner Lemberg <wl@gnu.org>
3612 * src/autohint/ahhint.c (ah_hinter_load_glyph): Oops! David's
3613 patch from yesterday has been resolved already in a different
3616 2003-05-19 David Chester <davidchester@qmx.net>
3618 * src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale
3619 y_scale locally but face->size->metrics.y_scale.
3621 2003-05-19 David Turner <david@freetype.org>
3623 * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start
3624 value for `hi' to avoid infinite loop.
3626 2003-05-18 Yong Sun <sunyong@njstar.com>
3628 * src/raster/ftraster.c (Insert_Y_Turn): Fix overflow test.
3630 2003-05-18 Werner Lemberg <wl@gnu.org>
3632 * include/freetype/config/ftoption.h [FT_CONFIG_OPTION_MAC_FONTS]:
3634 * src/base/ftobjs.c: Use it to control mac font support on non-mac
3637 2003-05-17 George Williams <gww@silcom.com>
3639 Implement partial support of Mac fonts on non-Mac platforms.
3641 * src/base/ftobjs.c (memory_stream_close, new_memory_stream,
3642 open_face_from_buffer, Mac_Read_POST_Resource,
3643 Mac_Read_sfnt_Resource, IsMacResource, IsMacBinary, load_mac_face)
3644 [!FT_MACINTOSH]: New functions.
3645 (FT_Open_Face) [!FT_MACINTOSH]: Use load_mac_face.
3647 2003-05-17 Werner Lemberg <wl@gnu.org>
3649 * src/base/ftobjs.c (FT_Load_Glyph): Scale linear advance width only
3650 if FT_FACE_FLAG_SCALABLE is set (otherwise we have a division by
3651 zero since FNT and friends don't define `face->units_per_EM').
3653 2003-05-15 David Turner <david@freetype.org>
3655 * src/base/fttrigon.c (FT_Vector_Rotate): Avoid rounding errors
3658 2003-05-15 Werner Lemberg <wl@gnu.org>
3660 * src/autohint/ahtypes.h (AH_PointRec): Remove unused `in_angle'
3661 and `out_angle' fields.
3663 2003-05-14 George Williams <gww@silcom.com>
3665 * src/base/ftmac.c (FT_New_Face_From_SFNT): Handle CFF files also.
3667 2003-05-14 Werner Lemberg <wl@gnu.org>
3669 * include/freetype/freetype.h: Fix typo in comment
3670 (FT_HAS_FIXED_SIZES).
3672 2003-05-10 Dan Williams <dan@bigw.org>
3674 * builds/unix/aclocal.m4: Comment out definition of
3675 `allow_undefined_flag' for Darwin 1.3.
3676 * builds/unix/configure.ac: Add option --with-old-mac-fonts.
3677 * builds/unix/ltmain.sh: Fix version numbering for Darwin 1.3.
3678 * builds/unix/configure: Regenerated.
3680 * include/freetype/config/ftconfig.h: Fix conditions for defining
3682 * src/base/ftbase.c: Include `ftmac.c' conditionally.
3683 * src/base/ftmac.c: Handle __GNUC__.
3685 2003-05-07 YAMANO-UCHI Hidetoshi <mer@din.or.jp>
3687 * src/cid/cidload.c (is_alpha): Removed.
3688 (cid_parse_dict): Use `cid_parser_skip_alpha' instead of `is_alpha'.
3690 2003-05-07 Werner Lemberg <wl@gnu.org>
3692 * src/autohint/ahoptim.c, src/autohint/ahoptim.h: Obsolete, removed.
3694 2003-05-07 David Turner <david@freetype.org>
3696 * src/autohint/ahglyph.c (ah_setup_uv): Exchange `for' loop and
3697 `switch' statement to make it run faster.
3698 (ah_outline_compute_segments): Reset `segment->score' and
3700 (ah_outline_link_segments): Provide alternative code which does
3701 the same but runs much faster.
3702 Handle major direction also.
3703 (ah_outline_compute_edges): Scale `edge_distance_threshold' down
3704 after rounding instead of scaling comparison value in loop.
3706 * src/autohint/ahhint.c (ah_hinter_align_stong_points): Provide
3707 alternative code which runs faster.
3708 Handle `before->scale == 0'.
3710 * src/autohint/ahtypes.h (AH_SegmentRec): Move some fields down.
3711 (AH_EdgeRec): Move some fields in structure.
3714 * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Use binary search.
3716 2003-05-02 Werner Lemberg <wl@gnu.org>
3718 * src/autohint/ahoptim.c (LOG): Renamed to...
3719 (AH_OPTIM_LOG): This.
3720 (AH_Dump_Springs): Fix log message format.
3722 * src/autohint/ahhint.c (ah_hint_edges_3): Renamed to...
3723 (ah_hint_edges): This.
3725 2002-05-02 Keith Packard <keithp@keithp.com>
3727 * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Initialize `max_advance'.
3729 2003-05-01 Werner Lemberg <wl@gnu.org>
3731 * src/autohint/ahglyph.c (ah_test_extrema): Renamed to...
3732 (ah_test_extremum): This.
3734 2003-04-28 Werner Lemberg <wl@gnu.org>
3736 * builds/unix/configure.ac: Generate `freetype.pc' from
3738 * builds/unix/configure: Regenerated.
3739 * builds/unix/install.mk (install, uninstall): Handle `freetype.pc'.
3741 2003-04-28 Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
3743 * builds/unix/freetype2.in: New file. Contains building information
3744 for the `pkg-config' package.
3746 2003-04-28 David Turner <david@freetype.org>
3748 * src/base/ftobjs.c (FT_Load_Glyph): Fix boundary check for
3751 2003-04-25: Graham Asher <graham.asher@btinternet.com>
3753 Added the optional unpatented hinting system for TrueType. It
3754 allows typefaces which need hinting to produce correct glyph forms
3755 (e.g., Chinese typefaces from Dynalab) to work acceptably without
3756 infringing Apple patents. This system is compiled only if
3757 TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in
3760 * include/freetype/ttunpat.h: New file. Defines
3761 FT_PARAM_TAG_UNPATENTED_HINTING.
3763 * include/freetype/config/ftheader.h (FT_TRUETYPE_UNPATENTED_H): New
3764 macro to use when including ttunpat.h.
3766 * include/freetype/config/ftoption.h
3767 (TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
3768 TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): New configuration macros
3769 (not defined, but in comments) for the unpatented hinting system.
3771 * include/freetype/internal/tttypes.h (TT_FaceRec)
3772 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: New element `FT_Bool
3773 unpatented_hinting'.
3775 * src/truetype/ttinterp.c (NO_APPLE_PATENT, APPLE_THRESHOLD):
3777 (GUESS_VECTOR): New macro.
3778 (TT_Run_Context) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
3780 (tt_default_graphics_state)
3781 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Updated.
3782 (Current_Ratio) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
3783 Handle `unpatented_hinting'.
3784 (Direct_Move) [NO_APPLE_PATENT]: Removed.
3785 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
3786 (Project, FreeProject)
3787 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
3788 (Compute_Funcs) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
3789 Implement unpatented hinting.
3790 (DO_SPVTCA, DO_SFVTCA, DO_SPVTL, DO_SFVTL, DO_SPVFS, DO_SFVFS,
3791 Ins_SDPVTL): Call `GUESS_VECTOR'.
3792 (DO_GPV, DO_GFV) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
3793 Handle `unpatented_hinting'.
3794 (Compute_Point_Displacement) [NO_APPLE_PATENT]: Removed.
3795 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
3797 (Move_Zp2_Point, Ins_SHPIX, Ins_DELTAP, Ins_DELTAC)
3798 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
3800 (TT_RunIns): Updated.
3802 * src/truetype/ttobjs.c
3803 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Include
3804 FT_TRUETYPE_UNPATENTED_H.
3805 (tt_face_init) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
3806 TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING]: Check
3807 FT_PARAM_TAG_UNPATENTED_HINTING.
3809 * src/truetype/ttobjs.h (TT_GraphicsState)
3810 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Add `both_x_axis'.
3812 2003-04-25 Werner Lemberg <wl@gnu.org>
3814 * src/bdf/bdflib.c (hash_bucket, hash_lookup): Use `const' for first
3816 (bdf_get_font_property): Use `const' for third argument.
3817 Updated all callers.
3818 * src/bdf/bdfdrivr.c (BDF_Face_Init): Set pixel width and height
3819 similar to the PCF driver.
3820 * src/bdf/bdf.h (_hashnode): Use `const' for `key'.
3823 * src/gzip/ftgzip.c: C++ doesn't like that the array `inflate_mask'
3824 is declared twice. It is perhaps better to modify the zlib source
3825 files directly instead of this hack.
3826 (zcalloc, zfree, ft_gzip_stream_close, ft_gzip_stream_io): Add casts
3827 to make build with g++ successful.
3829 2003-04-24 Manish Singh <yosh@gimp.org>
3831 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
3832 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Split on `-'
3833 also for searching the style name.
3835 2003-04-24 David Turner <david@freetype.org>
3837 * src/pcf/pcfread.c (pcf_load_font): Fixed the computation of
3838 face->num_glyphs. We must increase the value by 1 to respect the
3839 convention that glyph index 0 always corresponds to the `missing
3842 2003-04-24 Werner Lemberg <wl@gnu.org>
3844 * builds/unix/unix-cc.in (CFLAGS): Add @CPPFLAGS@.
3846 2003-04-24 Dieter Baron <dillo@netbsd.org>
3848 * builds/unix/freetype-config.in (cflags): Emit FreeType 2's include
3849 files first. Otherwise there are conflicts with FreeType 1
3850 installed simultaneously.
3852 2003-04-23 Werner Lemberg <wl@gnu.org>
3854 Fixing bugs reported by Nelson Beebe.
3856 * src/base/ftstroker.c (FT_Stroker_ParseOutline): Remove unused
3859 * src/base/ftobjs (ft_glyphslot_set_bitmap): Change type of
3860 second argument to `FT_Byte*'.
3861 * include/freetype/internal/ftobjs.h: Updated.
3863 * src/bdf/bdflib.c (_bdf_readstream): Remove unused variable `res'.
3864 (_bdf_parse_glyphs): Remove unused variable `next'.
3865 Mark `call_data' as unused.
3867 * src/cache/ftlru.c (FT_LruList_Lookup): Remove unused variable
3870 * src/pcf/pcfread.c (pcf_seek_to_table_type): Slight recoding to
3871 actually use `error'.
3872 (pcf_load_font): Remove unused variable `avgw'.
3874 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Change return type
3876 Mark `error' as unused.
3877 * src/pfr/pfrobjs.h: Updated.
3878 * src/pfr/pfrdrivr.c (pfr_get_kerning): Updated.
3880 * src/sfnt/ttload.c (sfnt_dir_check): Remove unused variable
3883 * src/sfnt/ttcmap0.c (tt_cmap6_validate, tt_cmap10_validate): Remove
3884 unused variable `start'.
3885 (tt_cmap10_char_next): Remove unused variable `result'
3887 * src/sfnt/sfobjs.c (tt_face_get_name): Mark `error' as unused.
3889 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Mark `error' as
3892 * src/type1/t1objs.c (T1_Face_Init): Remove unused variable
3895 * src/type1/t1gload.c (T1_Load_Glyph): Use `glyph_data_loaded'
3896 only for FT_CONFIG_OPTION_INCREMENTAL.
3898 2003-04-23 Akito Hirai <akito@kde.gr.jp>
3900 * src/sfnt/ttcmap0.c (tt_cmap4_validate): Provide a weak variant
3901 of the glyph ID bounding check if FT_VALIDATE_TIGHT is not active.
3902 Without this change, many CJK fonts from Dynalab are rejected.
3904 2003-04-23 Joe Marcus Clarke <marcus@FreeBSD.org>
3906 * src/base/ftbdf.c (FT_Get_BDF_Property): Check for valid
3909 2003-04-23 Paul Miller <paulm@profoundeffects.com>
3911 * src/base/ftmac.c (parse_fond): Fix handling of style names.
3913 2003-04-23 Werner Lemberg <wl@gnu.org>
3915 * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist
3916 instead of FT_Uint for `len'.
3918 2003-04-22 Werner Lemberg <wl@gnu.org>
3920 * src/gzip/ftgzip.c (zcalloc) [!FT_CONFIG_OPTION_SYSTEM_ZLIB]:
3921 Convert K&R format to modern C usage.
3922 (FT_Stream_OpenGzip): Use long constant.
3924 2003-04-21 Werner Lemberg <wl@gnu.org>
3926 * src/cache/ftccache.c (ftc_cache_lookup): Remove shadow declaration
3929 2003-04-20 Werner Lemberg <wl@gnu.org>
3931 * doc/INSTALL.UNX: Cleaned up.
3933 2003-04-09 Torrey Lyons <torrey@mrcla.com>
3935 * src/base/ftmac.c (open_face_from_buffer): Removed a double-free
3936 bug that had nasty consequences when trying to open an `invalid'
3939 2003-04-09 Mike Fabian <mfabian@suse.de>
3941 * src/bdf/bdfdrivr.h (BDF_encoding_el), src/pcf/pcf.h
3942 (PCF_EncodingRec): Changed FT_Short to FT_UShort in order to be able
3943 to access more than 32768 glyphs in fonts.
3945 2003-04-08 David Turner <david@freetype.org>
3948 * Version 2.1.4 released.
3949 =========================
3952 2003-04-03 Martin Muskens <mmuskens@aurelon.com>
3954 * src/type1/t1load.c (T1_Open_Face): Fixed the code to make it
3955 handle special cases where a font only contains a `.notdef' glyph
3956 (happens in PDF-embedded fonts). Otherwise, FT_Panic was called.
3958 2003-03-27 David Turner <david@freetype.org>
3962 * README.UNX: Removed (now replaced by docs/INSTALL.UNX).
3964 * src/pshinter/pshalgo3.c: The hinter now performs as in 2.1.3 and
3965 will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is
3967 (psh3_dimension_quantize_len): Enabled.
3968 (psh3_hint_align): Enable commented code.
3969 (psh3_hint_align_light): Commented out.
3971 * src/base/ftobjs.c (FT_Set_Char_Size): Changed the default
3972 computations to include rounding in all cases; this is required to
3973 provide accurate kerning data when native TrueType hinting is
3976 * src/type1/t1load.c (is_name_char): The Type 1 loader now accepts
3977 more general names according to the PostScript specification (the
3978 previous one was too restrictive).
3979 (parse_font_name, parse_encoding, parse_charstrings, parse_dict):
3981 (parse_subrs): Handle empty arrays.
3983 2003-03-20 David Turner <david@freetype.org>
3985 Serious rewriting of the documentation.
3987 * docs/BUGS, docs/BUILD: Removed.
3988 * docs/DEBUG.TXT: Renamed to...
3990 * docs/CUSTOMIZE, docs/TRUETYPE, docs/UPGRADE.UNX: New files.
3991 * docs/INSTALL.ANY, docs/INSTALL.UNX, docs/INSTALL.GNU New files,
3992 containing platform specific information previously in INSTALL.
3993 * docs/readme.vms: Renamed to...
3994 * docs/INSTALL.VMS: This.
3998 Introduced three new functions to deal with glyph bitmaps within
3999 FT_GlyphSlot objects:
4001 ft_glyphslot_free_bitmap
4002 ft_glyphslot_alloc_bitmap
4003 ft_glyphslot_set_bitmap
4005 These functions are much more convenient to use than managing the
4006 FT_GLYPH_OWN_BITMAP flag manually.
4008 * include/freetype/internal/ftobjs.h (ft_glyphslot_free_bitmap,
4009 ft_glyphslot_alloc_bitmap, ft_glyphslot_set_bitmap): New functions.
4010 * src/base/ftobjs.c: Implement them.
4011 (ft_glyphslot_done): Use ft_glyphslot_free_bitmap.
4013 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdriver.c
4014 (PCF_Glyph_Load): Remove unused variable `memory'.
4015 Use `ft_glyphslot_*' functions.
4016 Don't set `FT_GLYPH_OWN_BITMAP'.
4018 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Use
4019 `ft_glyphslot_alloc_bitmap'.
4021 * src/sfnt/ttsbit.c (Load_SBit_Image): Change 5th argument to type
4023 Adding argument `depth' to handle recursive calls.
4024 Use `ft_glyphslot_alloc_bitmap'.
4025 (tt_face_load_sbit_image): Remove unused variable `memory'.
4026 Don't handle `FT_GLYPH_OWN_BITMAP'.
4027 Update call to Load_SBit_Image.
4029 * src/type42/t42objs.c (ft_glyphslot_clear): Renamed to...
4030 (t42_glyphslot_clear): This. Updated caller.
4031 Call `ft_glyphslot_free_bitmap'.
4033 * src/winfonts/winfnt.c (FNT_Load_Glyph): Use
4034 `ft_glyphslot_set_bitmap'.
4035 Don't handle `FT_GLYPH_OWN_BITMAP'.
4037 * src/cache/ftlru.c (FT_LruList_Lookup): Fixed an invalid assertion
4040 * src/autohint/ahglyph.c (ah_outline_load): Add two scaling
4042 * src/autohint/ahglyph.h: Updated.
4043 * src/autohint/ahhint.c (ah_hinter_load): Updated.
4044 * src/autohint/ahglobal.c (ah_hinter_compute_widths): Updated.
4046 * src/cache/ftccache.c (ftc_family_done): Fixed small bug that could
4047 crash the cache in rare circumstances (mostly with broken fonts).
4049 2003-03-15 David Turner <david@freetype.org>
4051 * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a small rounding
4052 bug. Actually, it seems that previous versions of FreeType didn't
4053 perform TrueType rounding exactly as appropriate.
4055 2003-03-14 David Turner <david@freetype.org>
4057 * src/truetype/ttdriver.c (Set_Char_Sizes): Fixing the small
4058 TrueType native rendering glitches; they came from a small rounding
4061 2003-03-13 David Turner <david@freetype.org>
4063 Added new environment variables to control memory debugging with
4064 FreeType. See the description of `FT2_DEBUG_MEMORY',
4065 `FT2_ALLOC_TOTAL_MAX' and `FT2_ALLOC_COUNT_MAX' in DEBUG.TXT.
4067 * src/base/ftdbgmem.c (FT_MemTableRec): Add `alloc_count',
4068 `bound_total', `alloc_total_max', `bound_count', `alloc_count_max'.
4069 (ft_mem_debug_alloc): Handle new variables.
4070 (ft_mem_debug_init): s/FT_DEBUG_MEMORY/FT2_DEBUG_MEMORY/.
4071 Handle new environment variables.
4072 * docs/DEBUG.TXT: Updated.
4074 Fixed the cache sub-system to correctly deal with out-of-memory
4077 * src/cache/ftccache.c (ftc_node_destroy): Comment out generic
4079 (ftc_cache_lookup): Implement loop.
4080 * src/cache/ftccmap.c: Define FT_COMPONENT.
4081 * src/cache/ftcsbits.c (ftc_sbit_node_load): Handle
4082 FT_Err_Out_Of_Memory.
4083 * src/cache/ftlru.c: Include FT_INTERNAL_DEBUG_H.
4084 (FT_LruList_Lookup): Implement loop.
4086 * src/pfr/pfrobjs.c (pfr_face_done): Fix memory leak.
4087 (pfr_face_init): Fixing compiler warnings.
4089 * src/psaux/psobjs.c (reallocate_t1_table): Fixed a bug (memory
4090 leak) that only happened when a try to resize an array would end in
4091 an out-of-memory condition.
4093 * src/smooth/ftgrays.c (gray_convert_glyph): Removed compiler
4094 warnings / volatile bug.
4096 * src/truetype/ttobjs.c (tt_glyphzone_done): Removed segmentation
4097 fault that happened in tight memory environments.
4099 2003-02-28 Pixel <pixel@mandrakesoft.com>
4101 * src/gzip/ftgzip.c (ft_gzip_file_done): Fixed memory leak: The ZLib
4102 stream was not properly finalized.
4104 2003-02-25 Anthony Fok <anthony@thizlinux.com>
4106 * src/cache/ftccmap.c: Include FT_TRUETYPE_IDS_H.
4107 (ftc_cmap_family_init): The cmap cache now
4108 supports UCS-4 charmaps when available in Asian fonts.
4110 * src/sfnt/ttload.c, src/base/ftobjs.c: Changed `asian' to `Asian'
4113 2003-02-25 David Turner <david@freetype.org>
4115 * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Fixed a bug that
4116 caused FreeType to loop endlessly when trying to read certain
4117 compressed gzip files. The following test reveals the bug:
4119 touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
4121 Several fixes to the PFR font driver:
4123 - The list of available embedded bitmaps was not correctly set in
4124 the root FT_FaceRec structure describing the face.
4126 - The glyph loader always tried to load the outlines when
4127 FT_LOAD_SBITS_ONLY was specified.
4129 - The table loaded now scans for *undocumented* elements of a
4130 physical font's auxiliary data record. This is necessary to
4131 retrieve the `real' family and style names.
4133 NOTE THAT THESE CHANGES THE FAMILY NAME OF MANY PFR FONTS!
4135 * src/pfr/pfrload.c (pfr_aux_name_load): New function.
4136 (pfr_phy_font_done): Free `family_name' and `style_name' also.
4137 Remove unused variables.
4138 (pfr_phy_font_load): Extract useful information from the auxiliary
4141 * src/pfr/pfrobjs.c (pfr_face_done): Set pointers to NULL.
4142 (pfr_face_init): Provide fallback values for `family_name' and
4145 (pfr_slot_load): Handle FT_LOAD_SBITS_ONLY.
4146 * src/pfr/pfrtypes.h (PFR_PhyFontRec): Add fields `ascent',
4147 `descent', `leading', `family_name', and `style_name'.
4149 * src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a rounding bug
4150 when computing the scale factors for a given character size in
4151 points with resolution.
4153 * devel/ft2build.h, devel/ftoption.h: New files (in a new directory)
4154 which are special development versions of include/ft2build.h and
4155 include/freetype/config/ftoption.h, respectively.
4157 2003-02-18 David Turner <david@freetype.org>
4159 Fixing the slight distortion problem that occurred due to the latest
4160 auto-hinter changes.
4162 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Fix rounding.
4164 * src/truetype/ttdriver.c (Set_Char_Sizes): New variable `metrics2'.
4165 [!TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Removed.
4167 * src/truetype/ttobjs.h (TT_SizeRec): New field `metrics'.
4168 * src/truetype/ttobjs.c (Reset_Outline_Size): Fix initialization of
4170 [FT_CONFIG_CHESTER_ASCENDER]: Code removed.
4171 (Reset_SBit_Size): Fix initialization of `metrics'.
4173 * src/truetype/ttinterp.c (TT_Load_Context): Fix initialization of
4176 * src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width
4177 `correction' which seemed to provide more trouble than benefits.
4179 2003-02-13 Graham Asher <graham.asher@btinternet.com>
4181 Changed the incremental loading interface in a way that makes it
4182 simpler and allows glyph metrics to be changed (e.g., by adding a
4183 constant, as required by CFF fonts) rather than just overridden.
4184 This was required to make the GhostScript-to-FreeType bridge work.
4186 * src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_INCREMENTAL]:
4187 Allow metrics to be overridden.
4188 * src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]:
4191 * src/truetype/ttgload.c (load_truetype_glyph)
4192 [FT_CONFIG_OPTION_INCREMENTAL]: Simplify.
4193 (compute_glyph_metrics) [FT_CONFIG_OPTION_INCREMENTAL]: Code block
4196 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
4197 [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
4199 * include/freetype/ftincrem.h: Updated.
4201 2003-01-31 David Turner <david@freetype.org>
4203 * docs/CHANGES, docs/VERSION.DLL, docs/TODO: Updating documentation
4204 for the 2.1.4 release.
4206 * builds/win32/visualc/freetype.dsp,
4207 builds/win32/visualc/index.html: Updating the project file for
4210 * src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c,
4211 src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c,
4212 src/gzip/infutil.c: Removed old-style (K&R)function definitions.
4213 This avoids warnings with Visual C++ at its most pedantic mode.
4215 * src/pfr/pfrsbit.c: Removed compiler warnings.
4217 * src/cache/ftccmap.c (ftc_cmap_family_init): Changed an FT_ERROR
4218 into an FT_TRACE1 since it caused `ftview' and others to dump too
4219 much junk when trying to display a waterfall with a font without a
4220 Unicode charmap (e.g. SYMBOL.TTF).
4222 Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last
4223 patch from David Chester, but with a much simpler (and saner)
4226 * src/autohint/ahhint.c (ah_hinter_load_glyph)
4227 [FT_CONFIG_CHESTER_BLUE_SCALE]: Try to optimize the y_scale so that
4228 the top of non-capital letters is aligned on a pixel boundary
4231 * src/base/ftobjs.c (FT_Set_Char_Size)
4232 [FT_CONFIG_CHESTER_BLUE_SCALE]: Round differently.
4233 * src/truetype/ttdriver.c (Set_Char_Sizes)
4234 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Do some rounding only
4235 if this macro is defined.
4237 * src/truetype/ttobjs.c (Reset_Outline_Size)
4238 [FT_CONFIG_CHESTER_ASCENDER]: Round differently.
4240 * src/pshinter/pshalgo3.c: Improved the Postscript hinter. Getting
4241 rid of stem snapping seems to work well here (though the stems are
4242 still slightly moved to increase contrast).
4243 (psh3_dimension_quantize_len): Commented out.
4244 (psh3_hint_align_light): New function.
4245 (psh3_hint_align): Comment out some code.
4247 THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
4250 2003-01-22 David Chester <davidchester@qmx.net>
4252 * src/autohint/ahhint.c (ah_compute_stem_width): Small fix to the
4253 stem width optimization.
4255 2003-01-22 David Turner <david@freetype.org>
4257 Adding a new API `FT_Get_BDF_Property' to retrieve the BDF
4258 properties of a given PCF or BDF font.
4260 * include/freetype/ftbdf.h (FT_PropertyType): New enumeration.
4261 (BDF_Property, BDF_PropertyRec): New structure.
4262 FT_Get_BDF_Property): New function.
4263 * include/freetype/internal/bdftypes.h: Include FT_BDF_H.
4264 (BDF_GetPropertyFunc): New function pointer.
4266 * src/base/ftbdf.c (test_font_type): New helper function.
4267 (FT_Get_BDF_Charset_ID): Use `test_font_type'.
4268 (FT_Get_BDF_Property): New function.
4270 * src/bdf/bdfdrivr.c: Include FT_BDF_H.
4271 (bdf_get_bdf_property, bdf_driver_requester): New functions.
4272 (bdf_driver_class): Use `bdf_driver_requester'.
4274 * src/pcf/pcfdrivr.c: Include FT_BDF_H.
4275 (pcf_get_bdf_property, pdc_driver_requester): New functions
4276 (pcf_driver_class): Use `pcf_driver_requester'.
4278 * src/pcf/pcfread.c: Include `pcfread.h'.
4279 (pcf_find_property): Decorate it with FT_LOCAL_DEF.
4280 * src/pcf/pcfread.h: New file, providing `pcf_find_property'.
4282 * src/sfnt/ttload.c (sfnt_dir_check): Relaxed the `head' table size
4283 verification to accept a few broken fonts who pad the size
4284 incorrectly (the table should be padded, but its `size' field
4285 shouldn't according to the specification).
4287 2003-01-18 Werner Lemberg <wl@gnu.org>
4289 * builds/unix/ltmain.sh: Regenerated with `libtoolize --force
4290 --copy' from libtool 1.4.3.
4291 * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
4293 * builds/unix/configure: Regenerated with autoconf 2.54.
4294 * builds/unix/config.guess, builds/unix/config.sub: Updated from
4295 `config' CVS module at subversions.gnu.org.
4296 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
4297 `automake' CVS module at subversions.gnu.org.
4299 2003-01-15 David Turner <david@freetype.org>
4301 * include/freetype/freetype.h: Fixed documentation for
4304 2003-01-15 James Su <suzhe@turbolinux.com.cn>
4306 * src/gzip/ftgzip.c (ft_gzip_check_header): Bugfix: couldn't read
4307 certain gzip-ed font files (typo: `&&' -> `&').
4309 2003-01-15 Huw D M Davies <h.davies1@physics.ox.ac.uk>
4311 Added a Windows .FNT specific API (mostly for Wine). Also fixed a
4312 nasty bug in the header loader which would cause invalid memory
4315 * include/freetype/config/ftheader.h (FT_WINFONTS_H): New macro
4317 * include/freetype/internal/fnttypes.h: Include FT_WINFONTS_H.
4318 (FNT_FontRec): Updated.
4319 Move Windows FNT definition to...
4320 * include/freetype/ftwinfnt.h: This new file.
4321 (FT_WinFNT_HeaderRec): Rename `reserved2' to `reserved1'.
4322 * src/base/ftwinfnt.c: New file, providing `FT_Get_WinFNT_Header'.
4323 * src/winfonts/winfnt.c (winfnt_header_fields): Updated.
4324 Rename `reserved2' to `reserved1'.
4325 (fnt_font_load): Updated.
4327 * src/base/Jamfile, src/base/descrip.mms, src/base/rules.mk:
4330 2003-01-14 Graham Asher <graham.asher@btinternet.com>
4332 * include/freetype/ftglyph.h, src/base/ftglyph.c: Added `const' to
4333 the type of the first argument to FT_Matrix_Multiply, which isn't
4334 changed -- this adds documentation and convenience.
4336 2003-01-13 Graham Asher <graham.asher@btinternet.com>
4338 * src/sfnt/ttload.c (tt_face_load_metrics)
4339 [FT_CONFIG_OPTION_INCREMENTAL]: TrueType typefaces without
4340 horizontal metrics (without the `hmtx' table) are now tolerated if
4341 an incremental interface has been specified that has a
4342 get_glyph_metrics function, implying that metrics will be supplied
4343 from outside. This happens for certain Type 42 fonts passed from
4346 2003-01-11 David Chester <davidchester@qmx.net>
4348 Patches to the auto-hinter in order to slightly improve the output.
4349 Note that everything is controlled through the new
4350 FT_CONFIG_OPTION_CHESTER_HINTS defined in `ftoption.h'. There are
4351 also individual FT_CONFIG_CHESTER_XXX macros to control individual
4354 Note that all improvements are enabled by default, but can be
4355 tweaked for optimization and testing purposes. The configuration
4356 macros will most likely disappear in the short future.
4358 * include/freetype/config/ftoption.h
4359 (FT_CONFIG_OPTION_CHESTER_HINTS): New macro.
4360 (FT_CONFIG_CHESTER_{SMALL_F,ASCENDER,SERIF,STEM,BLUE_SCALE})
4361 [FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual
4364 * src/autohint/ahglobal.c (blue_chars) [FT_CONFIG_CHESTER_SMALL_F]:
4365 Add blue zone for `fijkdbh'.
4366 * src/autohint/ahglobal.h (AH_IS_TOP_BLUE)
4367 [FT_CONFIG_CHESTER_SMALL_F]: Use `AH_BLUE_SMALL_F_TOP'.
4368 * src/autohint/ahglyph.c (ah_outline_compute_edges)
4369 [FT_CONFIG_CHESTER_SERIF]: Use `AH_EDGE_SERIF'.
4370 (ah_outline_compute_blue_edges) [FT_CONFIG_CHESTER_SMALL_F]:
4371 Increase threshold for `best_dist'.
4372 * src/autohint/ahhint.c (ah_compute_stem_width)
4373 [FT_CONFIG_CHESTER_SERIF]: Provide new version for improved serif
4375 (ah_align_linked_edge) [FT_CONFIG_CHESTER_SERIF]: Use special
4376 version of `ah_compute_stem_width'.
4377 (ah_hint_edges_3) [FT_CONFIG_CHESTER_STEM]: A new algorithm for stem
4378 alignment when stem widths are less than 1.5 pixels wide centers the
4379 stem slightly off-center of the center of a pixel (this increases
4380 sharpness and consistency).
4381 [FT_CONFIG_CHESTER_SERIF]: Use special version of
4382 `ah_compute_stem_width'.
4383 * src/autohint/ahtypes.h [FT_CONFIG_CHESTER_SMALL_F]: Add
4384 `AH_BLUE_SMALL_F_TOP'.
4386 2003-01-11 David Turner <david@freetype.org>
4388 * include/freetype/internal/fnttypes.h (WinFNT_HeaderRec): Increase
4389 size of `reserved2' to avoid memory overwrites.
4391 2003-01-08 Huw Dawies <huw@codeweavers.com>
4393 * src/winfonts/winfnt.c (winfnt_header_fields): Read 16 bytes into
4394 `reserved2', not `reserved'.
4396 * src/base/ftobjs.c (find_unicode_charmap): Fixed the error code
4397 returned when the font doesn't contain a Unicode charmap. This
4398 allows FT2 to load `symbol.ttf' and a few others correctly since the
4400 (open_face): Fix return value.
4402 2003-01-08 Owen Taylor <owen@redhat.com>
4404 Implemented the FT_RENDER_MODE_LIGHT hinting mode in the auto and
4407 * src/autohint/ahtypes.h (AH_HinterRec): Add `do_stem_adjust'.
4408 * src/autohint/ahhint.c (ah_compute_stem_width): Handle
4409 hinter->do_stem_adjust.
4410 (ah_hinter_load_glyph): Set hinter->do_stem_adjust.
4412 * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add `do_stem_adjust'.
4413 * src/pshinter/pshalgo3.c (psh3_hint_align): Use `do_stem_adjust'.
4414 (ps3_hints_apply): Handle FT_RENDER_MODE_LIGHT.
4416 * include/freetype/freetype.h (FT_Render_Mode): Add
4417 FT_RENDER_MODE_LIGHT.
4419 * src/truetype/ttgload.c: Fixing the TrueType loader to handle
4420 invalid composites correctly by limiting the recursion depth.
4421 (TT_MAX_COMPOSITE_RECURSE): New macro.
4422 (load_truetype_glyph): Add argument `recurse_count'.
4423 Load a composite only if the numbers of contours is -1, emit error
4425 (TT_Load_Glyph): Updated.
4427 2003-01-08 David Turner <david@freetype.org>
4429 * Jamrules, Jamfile, Jamfile.in, src/*/Jamfile: Small changes to
4430 support the compilation of FreeType 2 as part of larger projects
4431 with their own configuration options (only with Jam).
4433 2003-01-07 David Turner <david@freetype.org>
4435 * src/base/ftstroker.c: Probably the last bug-fixes to the stroker;
4436 the API is likely to change, however.
4437 (ft_stroke_border_close): Don't record empty paths.
4438 (ft_stroke_border_get_counts): Increase `num_points' also in for loop.
4439 (ft_stroke_border_export): Don't increase `write' twice in for loops.
4440 (ft_stroker_outside): Handle `phi' together with `theta'.
4441 (FT_Stroker_ParseOutline): New function.
4443 * src/base/fttrigon.c (FT_Angle_Diff): Fixing function: It returned
4444 invalid values for large negative angle differences (resulting in
4445 incorrect stroker computations, among other things).
4447 * src/cache/ftccache.c (ftc_node_hash_unlink): Removing incorrect
4448 assertion, and changing code to avoid hash table size contraction.
4450 * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding
4451 `ftstroker' to default build, as optional component.
4453 2002-12-26 David Turner <david@freetype.org>
4455 * src/gzip/adler32.c, src/gzip/infblock.c, src/gzip/inflate.c,
4456 src/gzip/inftrees.c, src/gzip/zconf.h, src/gzip/zlib.h,
4457 src/gzip/zutil.h: Updates to allow compilation without compiler
4458 warnings with LCC-Win32.
4460 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
4461 * builds/unix/configure.ac (version_info): Increased to 9:3:3.
4462 * builds/unix/configure: Regenerated.
4463 * docs/VERSION.DLL: Updated.
4465 2002-12-23 Anthony Fok <anthony@thizlinux.com>
4467 * builds/unix/configure.ac, builds/unix/unix-cc.in (LINK_LIBRARY),
4468 builds/unix/unix-def.in (SYSTEM_ZLIB): Small fix to configure
4469 sub-system on Unix to allow other programs to correctly link with
4472 2002-12-19 David Turner <david@freetype.org>
4474 * include/freetype/internal/sfnt.h (SFNT_Load_Table_Func): New
4477 * include/freetype/tttables.h (FT_Load_Sfnt_Table): New function.
4478 * src/base/ftobjs.c: Implement it.
4480 * src/sfnt/sfdriver.c (sfnt_get_interface): Handle `load_sfnt'
4483 2002-12-17 David Turner <david@freetype.org>
4485 * src/base/ftobjs.c (find_unicode_charmap): Added some comments to
4486 better explain what's happening there.
4487 (open_face): Included Graham Asher's fix to prevent faces without
4488 Unicode charmaps from loading.
4490 * src/winfonts/winfnt.c: Included George Williams's fix to support
4491 version 2 fonts correctly.
4492 (winfnt_header_fields): Updated.
4493 (fnt_font_load): Handle version 2 fonts.
4494 (FNT_Load_Glyph): Updated.
4496 2002-12-16 David Turner <david@freetype.org>
4498 * docs/VERSION.DLL: Updating document to better explain the
4499 differences between the three version numbers being used on Unix, as
4500 well as providing an autoconf fragment provided by Lars Clausen.
4502 * src/smooth/ftgrays.c (gray_render_conic): Fixed small bug that
4503 prevented bezier arcs with negative vertical coordinates to be
4504 rendered appropriately.
4506 2002-12-02 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
4508 * src/base/ftobjs.c: Modified the logic to get Unicode charmaps.
4509 Now it loads UCS-4 charmaps when there is one.
4510 (find_unicode_charmap): New function.
4511 (open_face): Refer to the above one.
4512 (FT_Select_Charmap): Idem.
4514 2002-11-29 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
4516 * include/freetype/ftgzip.h: Correct the name of the controlling
4517 macro (was __FTXF86_H__ ...).
4519 2002-11-27 Vincent Caron <v.caron@zerodeux.net>
4521 * builds/unix/unix-def.in, builds/unix/freetype-config.in,
4522 builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c
4523 [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Adding support for system zlib
4524 installations if available on the target platform (Unix only).
4526 2002-11-23 David Turner <david@freetype.org>
4528 * src/cff/cffload.c (cff_charset_load, cff_encoding_load): Modified
4529 charset loader to accept pre-defined charsets, even when the font
4530 contains fewer glyphs. Also enforced more checks to ensure that we
4531 never overflow the character codes array in the encoding.
4533 2002-11-22 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
4535 * include/freetype/ttnameid.h: Updated to latest OpenType
4538 2002-11-18 David Turner <david@freetype.org>
4541 * Version 2.1.3 released.
4542 =========================
4545 2002-11-07 David Turner <david@freetype.org>
4547 * src/cache/ftcsbit.c (ftc_sbit_node_load): Fixed a small bug that
4548 caused problems with embedded bitmaps.
4550 * src/otlayout/otlayout.h, src/otlyaout/otlconf.h,
4551 src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
4552 src/otlayout/otlparse.c, src/otlayout/otlparse.h,
4553 src/otlayout/otlutils.h: Updating the OpenType Layout code, adding
4554 support fot the first GSUB lookups. Nothing that really compiles
4557 * src/autohint/ahhint.c (ah_align_serif_edge): Disabled serif stem
4558 width quantization. It produces slightly better shapes though this
4559 is not distinguishable with many fonts.
4560 Remove other dead code.
4562 * src/Jamfile, src/*/Jamfile: Simplified.
4565 2002-11-06 David Turner <david@freetype.org>
4567 * include/freetype/freetype.h (FT_LOAD_TARGET_LIGHT): New macro.
4568 (FT_LOAD_TARGET, FT_LOAD_TARGET_MODE): Use `& 15' instead of `& 7'.
4570 2002-11-05 David Turner <david@freetype.org>
4572 * include/freetype/config/ftoption.h, src/gzip/ftgzip.c: Added
4573 support for the FT_CONFIG_OPTION_SYSTEM_ZLIB option, used to specify
4574 the use of system-wide zlib.
4576 Note that this macro, as well as
4577 FT_CONFIG_OPTION_BYTECODE_INTERPRETER, is not #undef-ed anymore.
4578 This allows the build system to define them depending on the
4579 configuration (typically by adding -D flags at compile time).
4581 * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Removed compiler
4582 warnings in optimized mode relative to the `volatile' local
4583 variables. This was not a compiler bug after all, but the fact that
4584 a pointer to a volatile variable is not the same as a volatile
4585 pointer to a variable :-)
4587 The fix was to change
4588 `volatile FT_Byte* p'
4590 `FT_Byte* volatile p'.
4592 * src/pfr/pfrload.c (pfr_phy_font_load), src/pfr/pfrdrivr.c
4593 (pfr_get_metrics), src/gzip/inftrees.c: Removed compiler warnings in
4596 * src/gzip/*.[hc]: Modified our zlib copy in order to prevent
4597 exporting any zlib function names outside of the component. This
4598 prevents linking problems on some platforms, when applications want
4599 to link FreeType _and_ zlib together.
4601 2002-11-05 Juliusz <jch@pps.jussieu.fr>
4603 * src/psaux/psobjs.c (ps_table_add): Modified increment loop in
4604 order to implement exponential behaviour.
4606 2002-11-01 David Turner <david@freetype.org>
4608 Added PFR-specific public API. Fixed the kerning retrievel routine
4609 (it returned invalid values when the outline and metrics resolution
4612 * include/freetype/ftpfr.h, include/freetype/internal/pfr.h: New
4615 * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H): New
4618 * src/base/ftpfr.c: New file.
4619 * src/base/Jamfile, src/base/descrip.mms: Updated.
4621 * src/pfr/pfrdrivr.c: Include FT_INTERNAL_PFR_H.
4622 (pfr_get_kerning, pfr_get_advance, pfr_get_metrics): New functions.
4623 (pfr_service_rec): New format interface.
4624 (pfr_driver_class): Use `pfr_service_rec'.
4625 Replace `pfr_face_get_kerning' with `pfr_get_kerning'.
4626 * src/pfr/pfrobjs.c: Remove dead code.
4628 * src/base/ftobjs.c (ft_glyphslot_clear): Small internal fix to
4629 better support bitmap-based font formats.
4631 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix handling of
4633 Fix arguments to `FT_Vector_From_Polar'.
4635 2002-10-31 David Turner <david@freetype.org>
4637 Add support for automatic handling of gzip-compressed PCF files.
4639 * src/gzip/*: New files, taken from the zlib package (except
4642 * include/freetype/ftgzip.h, src/gzip/ftgzip.c: New files.
4643 * include/freetype/config/ftheader.h (FT_GZIP_H): New macro for
4646 * src/pcf/pcfdriver.c: Include FT_GZIP_H and FT_ERRORS_H.
4647 (PCF_Face_Init): If normal open fails, try to open gzip stream.
4648 (PCF_Face_Done): Close gzip stream.
4650 * include/freetype/internal/pcftypes.h (PCF_Public_FaceRec),
4651 src/pcf/pcf.h (PCF_FaceRec): Add `gzip_stream' and `gzip_source'.
4653 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_ZLIB):
4655 (T1_CONFIG_OPTION_DISABLE_HINTER, FT_CONFIG_OPTION_USE_CMAPS
4656 FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS,
4657 FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS): Removed.
4659 (FT_EXPORT, FT_EXPORT_DEF, FT_DEBUG_LEVEL_ERROR,
4660 FT_DEBUG_LEVEL_TRACE, FT_DEBUG_MEMORY): Comment out definitions so
4661 that platform specific configuration file can override.
4663 * include/freetype/internal/ftstream.h: Include FT_SYSTEM_H.
4665 2002-10-30 David Turner <david@freetype.org>
4667 * FreeType 2.1.3rc3 released.
4669 2002-10-25 David Turner <david@freetype.org>
4671 * include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro.
4672 (FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG.
4674 2002-10-22 Giuseppe Ghibò <ghibo@mandrakesoft.com>
4676 * include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2.
4678 2002-10-07 Werner Lemberg <wl@gnu.org>
4680 * include/freetype/freetype.h (FT_Open_Face): Use `const' for `args'
4681 (suggested by Graham).
4682 * src/base/ftobjs.c (FT_Open_Face): Updated.
4683 (ft_input_stream_new): Ditto.
4685 2002-10-05 David Turner <david@freetype.org>
4687 Adding support for embedded bitmaps to the PFR driver, and rewriting
4688 its kerning loader/handler to use all kerning pairs in a physical
4689 font (and not just the first item).
4691 * src/pfr/pfr.c: Include `pfrsbit.c'.
4692 * src/pfr/pfrgload.c: Include `pfrsbit.h'.
4693 * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): Rewritten.
4694 (pfr_phy_font_done, pfr_phy_font_load): Updated.
4695 * src/pfr/pfrobks.c: Include `pfrsbit.h'.
4696 (pfr_face_init): Handle kerning and embedded bitmaps.
4697 (pfr_slot_load): Load embedded bitmaps.
4698 (PFR_KERN_INDEX): Removed.
4699 (pfr_face_get_kerning): Rewritten.
4700 * src/pfr/pfrsbit.c, src/pfr/pfrsbit.h: New files.
4701 * src/pfr/pfrtypes.h (PFR_KernItemRec): New structure.
4702 (PFR_KERN_INDEX): New macro.
4703 (PFR_PhyFontRec): Add items for kerning and embedded bitmaps.
4704 * src/pfr/Jamfile (_sources) [FT2_MULTI]: Add `pfrsbit'.
4706 * src/base/ftobjs.c (FT_Load_Glyph): Don't load bitmap fonts if
4707 FT_LOAD_NO_RECURSE is set.
4708 Load embedded bitmaps only if FT_LOAD_NO_BITMAP isn't set.
4710 * src/tools/docmaker/content.py, src/tools/docmaker/sources.py,
4711 src/tools/docmaker/tohtml.py: Fixing a few nasty bugs.
4713 * src/sfnt/ttcmap0.c (tt_cmap4_validate): The validator for format 4
4714 sub-tables is now capable of dealing with invalid `length' fields at
4715 the start of the sub-table. This allows fonts like `mg______.ttf'
4716 (i.e. Marriage) to return accurate charmaps.
4718 * docs/CHANGES: Updated.
4720 2002-10-05 Werner Lemberg <wl@gnu.org>
4722 * src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'.
4724 (TRUNC): Add cast to `TCoord'.
4726 (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and
4729 (gray_render_line): Fix casts for `p' and `first'.
4731 2002-10-02 Detlef Würkner <TetiSoft@apg.lahn.de>
4733 * src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t
4734 structure with FT_ALLOC instead of using the stack.
4736 2002-09-27 Werner Lemberg <wl@gnu.org>
4738 * src/include/freetype/internal/tttypes.h (num_sbit_strikes,
4739 num_sbit_scales): Use `FT_ULong'.
4740 * src/sfnt/sfobjs.c (sfnt_load_face): Updated accordingly.
4741 * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Ditto.
4742 (find_sbit_image): Remove cast.
4743 * src/raster/ftrend1.c (ft_raster1_render): Fix cast.
4745 2002-09-27 Wolfgang Domröse <porthos.domroese@harz.de>
4747 * src/sfnt/ttload.c (tt_face_load_names): Use cast.
4748 * src/sfnt/ttcmap.c (code_to_next2): Use long constant.
4749 (code_to_index4): Use cast.
4750 (code_to_index8_12): Fix cast.
4751 * src/sfnt/ttcmap0.c (tt_cmap4_char_next, tt_cmap8_char_index,
4752 tt_cmap12_char_index): Use cast for `result'.
4753 (tt_face_build_cmaps): Use cast.
4754 * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_ucs4): Use cast for
4756 (sfnt_load_face): Use FT_Int32 for `flags'.
4758 * src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
4759 gray_compute_cbox, gray_convert_glyph, gray_raster_reset): Add casts
4760 to `TCoord' and `int'.
4763 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts.
4765 2002-09-26 Werner Lemberg <wl@gnu.org>
4767 * src/sfnt/ttpost.c (load_post_names, tt_face_free_ps_names,
4768 tt_face_get_ps_name): Replace switch statement with if clauses to
4769 make it more portable.
4771 * src/cff/cffobjs.c (cff_face_init): Ditto.
4773 * include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for
4775 * include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for
4778 * src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to
4780 (FT_Render_Glyph_Internal): Change third parameter to
4782 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter
4783 to `FT_Render_Mode'.
4785 * src/raster/ftrend1.c (ft_raster1_render): Change third parameter
4786 to `FT_Render_Mode'.
4787 * src/smooth/ftsmooth.c (ft_smooth_render, ft_smooth_render_lcd,
4788 ft_smooth_render_lcd_v): Ditto.
4789 (ft_smooth_render_generic): Change third and fifth parameter to
4792 * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
4793 include/freetype/ftglyph.h: Updated.
4795 * src/cff/cffdrivr.c (Load_Glyph), src/pcf/pcfdriver.c
4796 (PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load),
4797 src/winfonts/winfnt.c (FNT_Load_Glyph), src/t42/t42objs.c
4798 (T42_GlyphSlot_Load), src/bdf/bdfdrivr.c (BDF_Glyph_Load): Change
4799 fourth parameter to `FT_Int32'.
4801 * src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters
4802 and declare them as unused.
4804 * src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'.
4806 * src/psnames/psnames.h (PS_Unicode_Value_Func): Change return
4808 * src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table):
4809 Updated accordingly.
4811 2002-09-26 Wolfgang Domröse <porthos.domroese@harz.de>
4813 * src/cff/cffdrivr.c (Get_Kerning): Use FT_Long for `middle'.
4814 (cff_get_glyph_name): Use cast for result of ft_strlen.
4815 * src/cff/cffparse.c (cff_parse_real): User cast for assigning
4817 * src/cff/cffload.c (cff_index_get_pointers): Use FT_ULong for
4818 some local variables.
4819 (cff_charset_load, cff_encoding_load): Use casts to FT_UInt for some
4821 (cff_font_load): Use cast in call to CFF_Load_FD_Select.
4822 * src/cff/cffobjs.c (cff_size_init): Use more casts.
4823 (cff_face_init): Use FT_Int32 for `flags'.
4824 * src/cff/cffgload.c (cff_operator_seac): Use cast for assigning
4826 (cff_decoder_parse_charstrings): Use FT_ULong for third parameter.
4828 * src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'.
4830 * src/cid/cidload.c (cid_read_subrs): Use FT_ULong for `len'.
4831 * src/cid/cidgload.c (cid_load_glyph): Add missing cast for
4834 * src/psaux/t1decode.c (t1_decoder_parse_charstrings) <18>: Use
4835 cast for `num_points'.
4836 (t1_decoder_init): Use cast for assigning `decoder->num_glyphs'.
4838 * src/base/ftdebug.c (ft_debug_init): Use FT_Int.
4839 * include/freetype/internal/ftdriver.h (FT_Slot_LoadFunc): Use
4840 `FT_Int32' for fourth parameter.
4841 * src/base/ftobjs.c (open_face): Use cast for calling
4844 * src/raster/ftraster.c (Set_High_Precision): Use `1' instead of
4846 (Finalize_Profile_Table, Line_Up, ft_black_init): Use casts.
4847 * src/raster/ftrend1.c (ft_raster1_render): Ditto.
4849 * src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long
4852 2002-09-26 Detlef Würkner <TetiSoft@apg.lahn.de>
4854 * builds/amiga/include/freetype/config/ftmodule.h: Updated.
4856 2002-09-25 David Turner <david@freetype.org>
4858 * src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics
4859 hinting in the auto-hinter. This produces much better anti-aliased
4862 * docs/CHANGES: Updating the changes documentation.
4864 2002-09-25 Anthony Fok <anthony@thizlinux.com>
4866 * src/sfnt/ttcmap0.c (tt_cmap4_validate, tt_cmap4_char_index,
4867 tt_cmap4_char_next): Added support for opens___.ttf (it contains a
4868 charmap that uses offset=0xFFFFU instead of 0x0000 to indicate a
4871 2002-09-21 Wolfgang Domröse <porthos.domroese@harz.de>
4873 * src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be
4875 * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph):
4878 2002-09-19 Wolfgang Domröse <porthos.domroese@harz.de>
4882 * src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'.
4883 (ah_hinter_compute_widths): Use FT_Pos for `dist'.
4885 * src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos
4887 (ah_outline_compute_edges): Replace some ints with FT_Int and
4889 (ah_test_extrema): Clean up code.
4890 (ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to
4892 * src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score'
4895 2002-09-19 Werner Lemberg <wl@gnu.org>
4897 * builds/unix/config.guess, builds/unix/config.sub: Updated to
4900 2002-09-18 David Turner <david@freetype.org>
4902 * src/base/ftobjs.c (FT_Library_Version): Bugfix.
4904 * FreeType 2.1.3rc2 (release candidate 2) is released!
4906 2002-09-17 David Turner <david@freetype.org>
4908 * include/freetype/freetype.h, include/freetype/ftimage.h,
4909 include/freetype/ftstroker.h, include/freetype/ftsysio.h,
4910 include/freetype/ftsysmem.h, include/freetype/ttnameid.h: Updating
4911 the in-source documentation.
4913 * src/tools/docmaker/tohtml.py: Updating the HTML formatter in the
4916 * src/tools/docmaker.py: Removed.
4918 2002-09-17 Werner Lemberg <wl@gnu.org>
4922 * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for
4925 2002-09-16 Werner Lemberg <wl@gnu.org>
4927 16bit fixes from Wolfgang Domröse.
4929 * src/type1/t1parse.h (T1_ParserRec): Change type of `base_len'
4930 and `private_len' to FT_Long.
4931 * src/type1/t1parse.c (T1_Get_Private_Dict): Remove cast for
4933 * src/type1/t1load.c: Use FT_Int cast for most calls of T1_ToInt.
4934 Use FT_PtrDist where appropriate.
4935 (parse_encoding): Use FT_Long for `count' and `n'.
4936 (read_binary_data): Use FT_Long* for second parameter.
4937 * src/type1/t1afm.c (afm_atoindex): Use FT_PtrDist.
4939 * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label.
4940 * src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable.
4942 2002-09-14 Werner Lemberg <wl@gnu.org>
4944 Making ftgrays.c compile stand-alone again.
4946 * include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_
4948 * src/smooth/ftgrays.c [_STANDALONE_]: Define ft_memset,
4949 FT_BEGIN_HEADER, FT_END_HEADER.
4950 (FT_MEM_ZERO): Define.
4951 (TRaster) [GRAYS_USE_GAMMA]: Use `unsigned char' instead of FT_Byte.
4952 (gray_render_span, gray_init_gamma): Don't use `FT_UInt'.
4953 Don't cast with `FT_Byte'.
4954 (grays_init_gamma): Don't use `FT_UInt'.
4956 2002-09-14 Werner Lemberg <wl@gnu.org>
4958 * src/base/ftinit.c (FT_Add_Default_Modules): Improve error message.
4959 * src/pcf/pcfdriver.c (PCF_Face_Done): Improve tracing message.
4960 * include/freetype/config/ftoption.h (FT_MAX_MODULES): Increased
4963 2002-09-10 Werner Lemberg <wl@gnu.org>
4965 * builds/unix/configure.ac (version_info): Set to 9:2:3.
4966 * builds/unix/configure: Regenerated.
4967 * docs/VERSION.DLL: Updated.
4969 2002-09-09 David Turner <david@freetype.org>
4971 * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points),
4972 src/pshinter/pshalgo3.c (psh3_glyph_find_strong_points): Adding fix
4973 to prevent seg fault when hints are provided in an empty glyph.
4975 * src/cache/ftccache.i (GEN_CACHE_LOOKUP) [FT_DEBUG_LEVEL_ERROR]:
4976 Removed conditional code. This fixes a bug that prevented
4977 compilation in debug mode of template instantiation.
4979 * include/freetype/ftimage.h: Removed incorrect `zft_' definitions
4980 and updated constants documentation comments.
4982 * src/cff/cffparse.c (cff_parser_run): Fixed the CFF table loader.
4983 It didn't accept empty arrays, and this prevented the loading of
4986 * include/freetype/freetype.h (FT_FaceRec): Updating documentation
4987 comment. The `descender' value is always *negative*, not positive.
4989 2002-09-09 Owen Taylor <owen@redhat.com>
4991 * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation
4994 2002-09-08 David Turner <david@freetype.org>
4996 Various updates to correctly support sub-pixel rendering.
4998 * include/freetype/config/ftmodule.h: Add two renderers for LCD.
5000 * src/base/ftobjs.c (FT_Load_Glyph): Updated.
5002 * src/smooth/ftsmooth.c (ft_smooth_render_lcd,
5003 ft_smooth_render_lcd_v): Set FT_PIXEL_MODE_LCD and
5004 FT_PIXEL_MODE_LCD_V, respectively.
5006 * include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New
5009 (FTC_ImageDesc): Removed.
5010 (FTC_ImageCache_Lookup): Second parameter is now of type
5013 (FTC_IMAGE_DESC_COMPARE): Updated and renamed to...
5014 (FTC_IMAGE_TYPE_COMPARE): This.
5015 (FTC_IMAGE_DESC_HASH): Updated and renamed to...
5016 (FTC_IMAGE_TYPE_HASH): This.
5018 * include/freetype/cache/ftcsbits.h (FTC_SBitRec): Field `num_grays'
5019 replaced with `max_grays'.
5020 `pitch' is now FT_Short.
5021 (FTC_SBitCache_Lookup): Second parameter is now of type
5025 * src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec):
5027 (ftc_image_node_init): Updated.
5028 Moved code to convert type flags to load flags to...
5029 (FTC_Image_Cache_Lookup): This function.
5030 (ftc_image_family_init): Updated.
5032 * src/cache/ftcsbit.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
5034 (ftc_sbit_node_load): Updated.
5035 Moved code to convert type flags to load flags to...
5036 (FTC_SBitCache_Lookup): This function.
5038 * src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with
5040 Update all users (with negation).
5041 * src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for
5042 `dist' for `delta' < 40.
5044 * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with
5046 Update all users (with negation).
5047 * src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New
5049 (psh3_hint_align): Use it.
5050 Improve hinting code.
5051 [STRONGER]: Removed.
5052 (STRONGER): Removed.
5054 * include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*):
5057 2002-09-05 Werner Lemberg <wl@gnu.org>
5059 * src/cid/cidobjs.c (CID_Size_Init): Renamed to...
5060 (cid_size_init): This.
5061 * src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to...
5062 (t1_builder_add_point1): This.
5064 Updated all affected code.
5066 * src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
5067 * src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.
5069 2002-09-04 David Turner <david@freetype.org>
5071 * include/freetype/freetype.h: Corrected the definition of
5072 ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of
5073 the erroneous FT_ENCODING_SYMBOL).
5075 * builds/unix/unix-def.in (datadir): Initialize it (thanks to
5078 2002-08-29 David Turner <david@freetype.org>
5080 Slight modification to the Postscript hinter to slightly increase
5081 the contrast of smooth hinting. This is very similar to what the
5082 auto-hinter does when it comes to stem width computations. However,
5083 it produces better results with well-hinted fonts.
5085 * include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Add hint
5086 mode to `init' member function.
5087 (T1_DecoderRec): Add hint mode.
5088 * include/freetype/internal/pshints (T1_Hints_ApplyFunc,
5089 T2_Hints_ApplyFunc): Pass `hint_mode', not `hint_flags'.
5090 * src/psaux/t1decode.c (t1_decoder_init): Add hint mode argument.
5091 * src/pshinter/pshalgo1.c (ps1_hints_apply): Pass hint mode, not
5093 * src/pshinter/pshalgo2.c (ps2_hints_apply): Ditto.
5094 * src/pshinter/pshalgo3.c (ps3_hints_apply): Ditto.
5095 (STRONGER): New macro.
5096 (psh3_hint_align, psh3_hint_table_align_hints): Pass `glyph' instead
5098 Implement announced changes.
5099 * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control
5100 vertical and horizontal hints and snapping.
5102 * README, docs/CHANGES: Updating for the 2.1.3 release.
5104 2002-08-27 David Turner <david@freetype.org>
5106 * Massive re-formatting changes to many, many source files. I don't
5107 want to list them all here. The operations performed were all
5108 logical transformations of the sources:
5110 - trying to convert all enums and constants to CAPITALIZED_STYLE,
5111 #with define definitions like
5113 #define my_old_constants MY_NEW_CONSTANT
5115 - big, big update of the documentation comments
5117 * include/freetype/freetype.h, src/base/ftobjs.c,
5118 src/smooth/ftsmooth.c, include/freetype/ftimage.h: Adding support
5119 for LCD-optimized rendering though the new constants/enums:
5121 FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
5122 FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
5124 This is still work in progress, don't expect everything to work
5125 correctly though most of the features have been implemented.
5127 * Adding new FT_LOAD_XXX flags, used to specify both hinting and
5130 FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
5131 FT_LOAD_TARGET_MONO :: monochrome bitmaps
5132 FT_LOAD_TARGET_LCD :: horizontal RGB/BGR decimated
5134 FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated
5137 Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
5138 behaviour of the font engine is _unchanged_.
5140 * include/freetype/ftimage.h
5141 (FT_Outline_{Move,Line,Conic,Cubic}To_Func): Renamed to...
5142 (FT_Outline_{Move,Line,Conic,Cubic}ToFunc): This.
5143 (FT_Raster_Span_Func): Renamed to ...
5144 (FT_SpanFunc): This.
5145 (FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ...
5146 (FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This.
5148 Updated all affected code.
5150 * include/freetype/ftrender.h
5151 (FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed
5153 (FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This.
5154 (FTRenderer_{render,transform,getCBox,setMode}): Renamed to ...
5155 (FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SeteModeFunc}):
5158 Updated all affected code.
5160 * src/autohint/ahtypes.h (AH_Point, AH_Segment, AH_Edge, AH_Globals,
5161 AH_Face_Globals, AH_Outline, AH_Hinter): These typedefs are now
5162 pointers to the corresponding `*Rec' structures. All source files
5163 have been updated accordingly.
5165 * src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter.
5166 * src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element.
5168 * src/cid/cidgload.c (CID_Compute_Max_Advance): Renamed to...
5169 (cid_face_compute_max_advance): This.
5170 (CID_Load_Glyph): Renamed to...
5171 (cid_slot_load_glyph): This.
5172 * src/cid/cidload.c (CID_Open_Face): Renamed to...
5173 (cid_face_open): This.
5174 * src/cid/cidobjs.c (CID_GlyphSlot_{Done,Init}): Renamed to...
5175 (cid_slot_{done,init}): This.
5176 (CID_Size_{Get_Globals_Funcs,Done,Reset): Renamed to...
5177 (cid_size_{get_globals_funcs,done,reset): This.
5178 (CID_Face_{Done,Init}): Renamed to...
5179 (cid_face_{done,init}): This.
5180 (CID_Driver_{Done,Init}: Renamed to...
5181 (cid_driver_{done,init}: This.
5182 * src/cid/cidparse.c (CID_{New,Done}_Parser): Renamed to...
5183 (cid_parser_{new,done}): This.
5184 * src/cid/cidparse.h (CID_Skip_{Spaces,Alpha}): Renamed to...
5185 (cid_parser_skip_{spaces,alpha}): This.
5186 (CID_To{Int,Fixed,CoordArray,FixedArray,Token,TokenArray}): Renamed
5188 (cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}):
5190 (CID_Load_{Field,Field_Table): Renamed to...
5191 (cid_parser_load_{field,field_table}): This.
5192 * src/cid/cidriver.c (CID_Get_Interface): Renamed to...
5193 (cid_get_interface): This.
5195 Updated all affected code.
5197 * src/psaux/psobjs.c (PS_Table_*): Renamed to...
5199 (T1_Builder_*): Renamed to...
5200 (t1_builder_*): This.
5201 * src/psaux/t1decode.c (T1_Decoder_*): Renamed to...
5202 (t1_decoder_*): This.
5204 * src/psnames/psmodule.c (PS_*): Renamed to...
5207 Updated all affected code.
5209 * src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to...
5210 (sfnt_get_interface): This.
5211 * src/sfnt/sfobjs.c (SFNT_*): Renamed to...
5213 * src/sfnt/ttcmap.c (TT_CharMap_{Load,Free}): Renamed to...
5214 (tt_face_{load,free}_charmap): This.
5215 * src/sfnt/ttcmap0.c (TT_Build_CMaps): Renamed to...
5216 (tt_face_build_cmaps): This.
5217 * src/sfnt/ttload.c (TT_*): Renamed to...
5219 * src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to...
5220 (tt_post_default_names): This.
5221 (Load_*): Renamed to...
5223 (TT_*): Renamed to...
5225 * src/sfnt/ttsbit.c (TT_*): Renamed to...
5227 ({Find,Load,Crop}_*): Renamed to...
5228 ({find,load,crop}_*): This.
5230 Updated all affected code.
5232 * src/smooth/ftsmooth.c (ft_smooth_render): Renamed to...
5233 (ft_smooth_render_generic): This.
5234 Make function more generic by adding vertical and horizontal scaling
5236 (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v):
5239 (ft_smooth_locd_renderer_class, ft_smooth_lcdv_renderer_class): New
5242 * src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to...
5243 (tt_glyphzone_{done,new}): This.
5244 (TT_{Face,Size,Driver}_*): Renamed to...
5245 (tt_{face,size,driver}_*): This.
5246 * src/truetype/ttpload.c (TT_Load_Locations): Renamed to...
5247 (tt_face_load_loca): This.
5248 (TT_Load_Programs): Renamed to...
5249 (tt_face_load_fpgm): This.
5250 (TT_*): Renamed to...
5253 2002-08-27 Werner Lemberg <wl@gnu.org>
5255 * docs/VERSION.DLL: New file.
5257 2002-08-23 Graham Asher <graham.asher@btinternet.com>
5259 * src/cff/cffgload.c (cff_operator_seac)
5260 [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts (actually not
5261 incremental in the case of CFF but just using callbacks to get glyph
5262 recipes) pass the character code, not the glyph index, to the
5263 get_glyph_data function; they have no valid charset table.
5265 * src/cff/cffload.c (cff_font_load): Removed special cases for
5266 FT_CONFIG_OPTION_INCREMENTAL, which are no longer necessary; CFF
5267 fonts provided via the incremental interface now have to conform
5268 more closely to the CFF font format.
5270 * src/cff/cffload.h (cff_font_load): Removed argument now unneeded.
5272 * src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load
5273 to conform with new signature.
5275 2002-08-22 David Turner <david@freetype.org>
5277 * src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
5278 src/bdf/bdfdrivr.c: Removed compiler warnings.
5280 2002-08-21 Werner Lemberg <wl@gnu.org>
5282 * src/pshinter/pshalgo3.c (psh3_glyph_compute_inflections,
5283 psh3_glyph_compute_extrema, psh3_hint_table_find_strong_point): Fix
5284 compiler warnings and resolve shadowing of local variables.
5286 2002-08-21 David Turner <david@freetype.org>
5288 The automatic and Postscript hinter now automatically detect
5289 inflection points in glyph outlines and treats them specially. This
5290 is very useful to prevent nasty effect like the disappearing
5291 diagonals of `S' and `s' in many, many fonts.
5293 * src/autohint/ahtypes.h (ah_flag_inflection): New macro.
5294 * src/autohint/ahangles.c (ah_angle_diff): New function.
5295 * src/autohint/ahangles.h: Updated.
5296 * src/autohint/ahglyph.c (ah_outline_compute_inflections): New
5298 (ah_outline_detect_features): Use it.
5299 * src/autohint/ahhint.c (ah_hinter_align_strong_points)
5300 [!AH_OPTION_NO_WEAK_INTERPOLATION]: Handle inflection.
5302 * src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py,
5303 src/tools/docmaker/tohtml.py: Updating the DocMaker tool.
5305 * include/freetype/freetype.h: Changing the type of the `load_flags'
5306 parameter from `FT_Int' to `FT_Int32', this in order to support more
5307 options. This should only break binary and/or source compatibility
5308 on 16-bit platforms (Atari?).
5309 (FT_LOAD_NO_AUTOHINT): New macro.
5311 * src/base/ftobjs.c (FT_Load_Glyph): Updated.
5312 Handle FT_LOAD_NO_AUTOHINT.
5313 (FT_Load_Char): Updated.
5315 * src/pshinter/pshalgo3.c, src/base/ftobjs.c, src/base/ftobject.c,
5316 src/autohint/ahglyph.c, include/freetype/freetype.h: Fixing typos
5317 and removing compiler warnings.
5319 2002-08-20 Werner Lemberg <wl@gnu.org>
5321 * src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0.
5323 2002-08-20 David Turner <david@freetype.org>
5325 * src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
5326 src/pshinter/pshglob.c, src/pshinter/pshrec.c,
5327 src/autohint/ahmodule.c [DEBUG_HINTER]: Removing compiler warnings
5328 (only used in development builds anyway).
5330 Improve support of local extrema and stem edge points.
5332 * src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec
5334 (PSH3_DIR_UP, PSH3_DIR_DOWN): Exchange values.
5335 (PSH3_DIR_HORIZONTAL, PSH3_DIR_VERTICAL): New macros.
5336 (PSH3_DIR_COMPARE, PSH3_DIR_IS_HORIZONTAL, PSH3_IS_VERTICAL): New
5338 (PSH3_POINT_INFLEX): New enum.
5339 (psh3_point_{is,set}_{off,inflex}): New macros.
5340 (PSH3_POINT_{EXTREMUM,POSITIVE,NEGATIVE,EDGE_MIN,EDGE_MAX): New
5342 (psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}):
5344 (PSH3_PointRec): New members `flags2' and `org_v'.
5345 (PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros.
5347 * src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler
5349 (COMPUTE_INFLEXS): New macro.
5350 (psh3_hint_align): Simplify some basic arithmetic computations.
5351 (psh3_point_is_extremum): Removed.
5352 (psh3_glyph_compute_inflections) [COMPUTE_INFLEXS]: New function.
5353 (psh3_glyph_init) [COMPUTE_INFLEXS]: Use it.
5354 (psh3_glyph_compute_extrema): New function.
5355 (PSH3_STRONG_THRESHOLD): Increased to 30.
5356 (psh3_hint_table_find_strong_point): Improved.
5357 (psh3_glyph_find_strong_points,
5358 psh3_glyph_interpolate_strong_points): Updated.
5359 (psh3_hints_apply): Use psh3_glyph_compute_extrema.
5361 * test/gview.c (draw_ps3_hint, ps3_draw_control_points): New
5363 Other small updates.
5365 * Jamfile: Small updates.
5367 2002-08-18 Arkadiusz Miskiewicz <misiek@pld.ORG.PL>
5369 * builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to
5370 make life easier for package maintainers.
5372 2002-08-18 Werner Lemberg <wl@gnu.org>
5374 * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of
5376 * src/bdf/bdfdrivr.c (BDF_GlyphLoad): Fix computation of
5379 2002-08-16 George Williams <gww@silcom.com>
5381 Add support for Apple composite glyphs.
5383 * include/freetype/config/ftoption.h
5384 (TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro.
5386 * src/truetype/ttgload.c (OVERLAP_COMPOUND, SCALED_COMPONENT_OFFSET,
5387 UNSCALED_COMPONENT_OFFSET): New macros for additional OpenType
5388 glyph loading flags.
5389 (load_truetype_glyph): Implement it.
5391 2002-08-16 Werner Lemberg <wl@gnu.org>
5393 * src/cff/cffgload.c (cff_free_glyph_data),
5394 src/cff/cffload.c (cff_font_load): Use FT_UNUSED.
5396 2002-08-15 Werner Lemberg <wl@gnu.org>
5398 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'.
5399 * src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning.
5401 2002-08-15 Graham Asher <graham.asher@btinternet.com>
5403 Implemented the incremental font loading system for the CFF driver.
5404 Tested using the GhostScript-to-FreeType bridge (under development).
5406 * src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New
5408 (cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use
5410 * src/cff/cffload.c (cff_font_load): Add `face' parameter.
5411 Load charset and encoding only if there are glyphs.
5412 [FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts don't need
5414 * src/cff/cffload.h, src/cff/cffobjs.c: Updated.
5416 * src/cid/cidgload.c (cid_load_glyph)
5417 [FT_CONFIG_OPTION_INCREMENTAL]: Corrected the incremental font
5418 loading implementation to use the new system introduced on
5421 2002-08-06 Werner Lemberg <wl@gnu.org>
5423 * src/cff/cffcmap.c: Remove compiler warnings.
5424 * src/cache/ftccache.c, src/cache/ftccache.i,
5425 src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
5426 * src/cff/cffload.c: s/select/fdselect/.
5427 * src/raster/ftraster.c: s/wait/waiting/.
5429 2002-08-01 Graham Asher <graham.asher@btinternet.com>
5431 * src/type1/t1load.c (T1_Open_Face): Tolerate a face with no
5432 charstrings if there is an incremental loading interface. Type 1
5433 faces supplied by PostScript interpreters like GhostScript will
5434 typically not provide any charstrings at load time, so this is
5435 essential if they are to work.
5437 2002-08-01 Graham Asher <graham.asher@btinternet.com>
5439 Modified incremental loading interface to be closer to David's
5440 preferences. The header freetype.h is not now affected, the
5441 interface is specified via an FT_Parameter, the pointer to the
5442 interface is hidden in an internal part of the face record, and all
5443 the definitions are in ftincrem.h.
5445 * include/freetype/freetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
5447 * include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]:
5448 Include FT_INCREMENTAL_H.
5449 (FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add
5450 `incremental_interface'.
5452 * src/base/ftobjs.c (open_face, FT_Open_Face)
5453 [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
5454 * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
5457 * src/truetype/ttgload.c (load_truetype_glyph)
5458 [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
5459 Free loaded glyph data properly.
5460 (compute_glyph_metrics, TT_Load_Glyph)
5461 [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
5462 * src/truetype/ttobjs.c (TT_Face_Init)
5463 [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
5465 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
5466 [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
5467 (T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
5468 Free loaded glyph data properly.
5469 (T1_Load_Glyph): Updated.
5470 [FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly.
5472 2002-07-30 David Turner <david@freetype.org>
5474 * include/freetype/ftincrem.h: Adding new experimental header file
5475 to demonstrate a `cleaner' API to support incremental font loading.
5477 * include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
5479 * src/tools/docmaker/*: Adding new (more advanced) version of
5480 the DocMaker tool, using Python's sophisticated regexps.
5482 2002-07-28 Werner Lemberg <wl@gnu.org>
5484 s/ft_memset/FT_MEM_SET/.
5485 s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate.
5487 2002-07-27 Werner Lemberg <wl@gnu.org>
5489 * src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
5491 2002-07-26 Werner Lemberg <wl@gnu.org>
5493 * src/truetype/ttgload.c (load_truetype_glyph)
5494 [FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/.
5496 * src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning.
5497 * src/cff/cffload.c (cff_encoding_load): Remove `memory' variable.
5498 * src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames'
5500 * src/truetype/ttgload.c (load_truetype_glyph): Remove statement
5502 * src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
5504 * src/pshinter/pshalgo3.c (psh3_hint_table_record,
5505 psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error
5508 2002-07-24 Graham Asher <graham.asher@btinternet.com>
5510 * src/truetype/ttobjs.c: Fix for bug reported by Sven Neumann
5511 [sven@gimp.org] on the FreeType development forum: `If
5512 FT_CONFIG_OPTION_INCREMENTAL is undefined (this is the default), the
5513 TrueType loader crashes in line 852 of src/truetype/ttgload.c when
5514 it tries to access face->glyph_locations.'
5516 2002-07-18 Graham Asher <graham.asher@btinternet.com>
5518 Added types and structures to support incremental typeface loading.
5519 The FT_Incremental_Interface structure, defined in freetype.h, is
5520 designed to be passed to FT_Open_Face to provide callback functions
5521 to obtain glyph recipes and metrics, for fonts like those passed
5522 from PostScript that do not necessarily provide all, or any, glyph
5523 information, when first opened.
5525 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
5526 New configuration macro to enable incremental face loading. By
5527 default it is not defined.
5529 * include/freetype/freetype.h (FT_Basic_Glyph_Metrics,
5530 FT_Get_Glyph_Data_Func, FT_Get_Glyph_Metrics_Func,
5531 FT_Incremental_Interface_Funcs, FT_Incremental_Interface)
5532 [FT_CONFIG_OPTION_INCREMENTAL]: New.
5533 (FT_Open_Args, FT_FaceRec) [FT_CONFIG_OPTION_INCREMENTAL]: New field
5534 `incremental_interface'.
5535 (FT_Open_Flags) [FT_CONFIG_OPTION_INCREMENTAL]: New enum
5536 `ft_open_incremental'.
5538 * include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H.
5539 (FT_Data): New structure to represent binary data.
5541 * src/base/ftobjs.c (open_face) [FT_CONFIG_OPTION_INCREMENTAL]:
5542 Add parameter for incremental loading.
5543 (FT_Open_Face) [FT_CONFIG_OPTION_INCREMENTAL]: Use incremental
5546 * src/truetype/ttgload.c (load_truetype_glyph)
5547 [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
5548 for the TrueType driver.
5549 (compute_glyph_metrics): Return FT_Error.
5550 [FT_CONFIG_OPTION_INCREMENTAL]: Check for overriding metrics.
5551 (TT_Load_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Don't look for
5552 the glyph table while handling an incremental font.
5555 * src/truetype/ttobjs.c (TT_Face_Init)
5556 [FT_CONFIG_OPTION_INCOREMENTAL]: Added the incremental loading
5557 system for the TrueType driver.
5559 * src/cid/cidgload.c (cid_load_glyph)
5560 [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
5563 * src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
5564 Changes to support incremental Type 42 fonts: Assume a font has
5565 glyphs if it has an incremental interface object.
5567 * src/type1/t1gload.c (T1_Parse_Glyph): Renamed to...
5568 (T1_Parse_Glyph_And_Get_Char_String): This.
5569 [FT_CONFIG_OPTION_INCREMENTAL]: Added support for incrementally
5570 loaded Type 1 faces.
5571 (T1_Parse_Glyph): New function.
5572 (T1_Load_Glyph): Updated.
5574 2002-07-17 David Turner <david@freetype.org>
5576 Cleaning up the cache sub-system code; linear hashing is now the
5579 * include/freetype/cache/ftccache.h, src/cache/ftccache.i,
5580 src/cache/ftccache.c [!FTC_CACHE_USE_LINEAR_HASHING]: Removed.
5581 (FTC_CACHE_USE_LINEAR_HASHING: Removed also.
5583 FT_CONFIG_OPTION_USE_CMAPS is now the default.
5585 * include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove
5586 `get_char_index' and `get_next_char'.
5588 * include/freetype/config/ftoption.h,
5589 include/freetype/internal/tttypes.h, src/base/ftobjs.c,
5590 src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c,
5591 src/pfr/pfrdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
5592 src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c,
5593 src/type42/t42objs.c, src/winfonts/winfnt.c
5594 [!FT_CONFIG_OPTION_USE_CMAPS]: Removed. The new cmap code is now
5597 * src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext):
5599 * src/type42/t42objs.h: Updated.
5601 * src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char):
5603 (t1_cid_driver_class): Updated.
5604 * src/truetype/ttdriver.c (tt_driver_class): Updated.
5605 * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Removed
5606 (t1_driver_class): Updated.
5607 * src/type42/t42drivr.c (t42_driver_class): Updated.
5609 * src/base/ftobjs.c (open_face): Select Unicode cmap by default.
5611 * src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that
5612 prevented OpenType fonts to be recognized by FreeType.
5614 2002-07-11 David Turner <david@freetype.org>
5616 Changing the SFNT loader to check for SFNT-based font files
5617 differently. We now ignore the range `helper' fields and check the
5618 `head' table's magic number instead.
5620 * include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset'
5623 * src/sfnt/ttload.c (sfnt_dir_check): New function.
5624 (TT_Load_SFNT_HeaderRec): Renamed to...
5625 (TT_Load_SFNT_Header): This.
5626 Implement new functionality.
5627 * src/sfnt/ttload.h: Updated.
5628 * src/sfnt/sfdriver.c (sfnt_interface): Updated.
5630 * src/base/ftobject.c, src/base/fthash.c: Updated object sub-system
5631 and dynamic hash table implementation (still experimental, don't
5633 * include/freetype/internal/fthash.h: Updated.
5634 * include/freetype/internal/ftobjs.h (FT_LibraryRec): New member
5637 Fixing a bug in the Type 1 loader that prevented valid font bounding
5638 boxes to be loaded from multiple master fonts.
5640 * include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field.
5642 * include/freetype/internal/psaux.h (T1_FieldType): Add
5643 `T1_FIELD_TYPE_BBOX'.
5644 (T1_FieldLocation): Add `T1_FIELD_LOCATION_BBOX'.
5645 (T1_FIELD_BBOX): New macro.
5647 * src/psaux/psobjs.c (PS_Parser_LoadField): Handle T1_FIELD_TYPE_BBOX.
5648 * src/type1/t1load.c (t1_allocate_blend): Create blend->bboxes.
5649 (T1_Done_Blend): Free blend->bboxes.
5650 (t1_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
5651 (parse_font_bbox): Commented out.
5652 (t1_keywords): Comment out `parse_font_bbox'.
5653 * src/type1/t1tokens.h: Define `FontBBox' field.
5655 2002-07-10 David Turner <david@freetype.org>
5657 * src/cff/cffobjs.c: Small fix to select the Unicode charmap by
5658 default when needed.
5659 Small fix to allow OpenType fonts to support Adobe charmaps when
5662 * src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support
5663 charmaps for CFF fonts.
5665 * src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated.
5667 * include/freetype/internal/cfftypes.h (CFF_EncodingRec): Use
5668 fixed-length arrays for `sids' and `codes'. Add `count' member.
5669 (CFF_FontRec): Add `psnames' member.
5671 * src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffload.h,
5672 src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
5673 src/cffparse.h, src/cff/cffgload.c, src/cff/cffgload.h: Adding
5674 support for CFF charmaps, reformatting the sources, and removing
5675 some bugs in the Encoding and Charset loaders.
5676 Many fonts renamed to use lowercase only:
5678 CFF_Builder_Init -> cff_builder_init
5679 CFF_Builder_Done -> cff_builder_done
5680 CFF_Init_Decoder -> cff_decoder_init
5681 CFF_Parse_CharStrings -> cff_decoder_parse_charstrings
5682 CFF_Load_Glyph -> cff_slot_load
5683 CFF_Init_Decoder -> cff_decoder_init
5684 CFF_Prepare_Decoder -> cff_decoder_prepare
5685 CFF_Get_Standard_Encoding -> cff_get_standard_encoding
5686 CFF_Access_Element -> cff_index_access_element
5687 CFF_Forget_Element -> cff_index_forget_element
5688 CFF_Get_Name -> cff_index_get_name
5689 CFF_Get_String -> cff_index_get_sid_string
5690 CFF_Get_FD -> cff_fd_select_get
5691 CFF_Done_Charset -> cff_charset_done
5692 CFF_Load_Charset -> cff_charset_load
5693 CFF_Done_Encoding -> cff_encoding_done
5694 CFF_Load_Encoding -> cff_encoding_load
5695 CFF_Done_SubFont -> cff_subfont_done
5696 CFF_Load_Font -> cff_font_load
5697 CFF_Done_Font -> cff_font_done
5698 CFF_Size_Get_Global_Funcs -> cff_size_get_global_funcs
5699 CFF_Size_Done -> cff_size_done
5700 CFF_Size_Init -> cff_size_init
5701 CFF_Size_Reset -> cff_size_reset
5702 CFF_GlyphSlot_Done -> cff_slot_done
5703 CFF_GlyphSlot_Init -> cff_slot_init
5704 CFF_StrCopy -> cff_strcpy
5705 CFF_Face_Init -> cff_face_init
5706 CFF_Face_Done -> cff_face_done
5707 CFF_Driver_Init -> cff_driver_init
5708 CFF_Driver_Done -> cff_driver_done
5709 CFF_Parser_Init -> cff_parser_init
5710 CFF_Parser_Run -> cff_parser_run
5712 add_point -> cff_builder_add_point
5713 add_point1 -> cff_builder_add_point1
5714 add_contour -> cff_builder_add_contour
5715 close_contour -> cff_builder_close_contour
5716 cff_explicit_index -> cff_index_get_pointers
5718 2002-07-09 Owen Taylor <owen@redhat.com>
5720 * src/pshinter/pshglob.c (psh_globals_new): Fixed a bug that
5721 prevented the hinter from using correct standard width and height
5722 values, resulting in hinting bugs with certain fonts (e.g. Utopia).
5724 2002-07-07 David Turner <david@freetype.org>
5726 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Added code to return
5727 successfully when the function is called with a bitmap glyph (the
5728 previous code simply returned with an error).
5730 * docs/DEBUG.TXT: Adding debugging support documentation.
5732 * src/base/ftdebug.c (ft_debug_init), builds/win32/ftdebug.c
5733 (ft_debug_init), builds/amiga/src/ftdebug.c (ft_debug_init): Changed
5734 the syntax of the FT2_DEBUG environment variable used to control
5735 debugging output (i.e. logging and error messages). It must now
5738 any:6 memory:4 io:3 or
5739 any:6,memory:4,io:3 or
5742 2002-07-07 Owen Taylor <owen@redhat.com>
5744 * src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for
5746 * src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field.
5747 * src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'.
5749 Adding support for hinter-specific bit flags, and the new
5750 FT_Set_Hint_Flags high-level API.
5752 * include/freetype/freetype.h (FT_Set_Hint_Flags): New function.
5753 (FT_HINT_NO_INTEGER_STEM, FT_HINT_NO_HSTEM_ALIGN,
5754 FT_HINT_NO_VSTEM_ALIGN): New macros.
5756 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
5757 `hint_flags' member.
5759 * src/base/ftobjs.c (FT_Set_Hint_Flags): New function.
5761 * include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags'
5764 * include/freetype/internal/pshints.h (T1_Hints_ApplyFunc,
5765 T2_Hints_ApplyFunc): Add parameter to pass hint flags.
5767 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings,
5768 T1_Decoder_Init): Use decoder->hint_flags.
5769 * src/cff/cffgload.h (CFF_Builder): Add `hint_flags' field.
5770 * src/cff/cffgload.c (CFF_Builder_Init): Set builder->hint_flags.
5771 (CFF_Parse_CharStrings): Updated.
5772 * src/pshinter/pshalgo1.c (ps1_hints_apply): Add parameter to handle
5773 hint flags (unused).
5774 * src/pshinter/pshalgo1.h: Updated.
5775 * src/pshinter/pshalgo2.c (ps2_hints_apply): Add parameter to handle
5776 hint flags (unused).
5777 * src/pshinter/pshalgo2.h: Updated.
5778 * src/pshinter/pshalgo3.c (ps3_hints_apply): Add parameter to handle
5780 * src/pshinter/pshalgo3.h: Updated.
5782 2002-07-04 David Turner <david@freetype.org>
5784 * src/pfr/pfrobjs.c (pfr_slot_load): Fixed a small bug that returned
5785 incorrect advances when the outline resolution was different from
5786 the metrics resolution.
5788 * src/autohint/ahhint.c: Removing compiler warnings.
5790 * src/autohint/ahglyph.c: s/FT_MEM_SET/FT_ZERO/ where appropriate.
5791 (ah_outline_link_segments): Slight improvements to the serif
5792 detection code. More work is needed though.
5794 2002-07-03 David Turner <david@freetype.org>
5796 Small improvements to the automatic hinter. Uneven stem-widths have
5797 now disappeared and everything looks much better, even if there are
5798 still issues with serifed fonts.
5800 * src/autohint/ahtypes.h (AH_Globals): Added `stds' array.
5801 * src/autohint/ahhint.c (OPTIM_STEM_SNAP): New #define.
5802 (ah_snap_width): Commented out.
5803 (ah_align_linked_edge): Renamed to...
5804 (ah_compute_stem_width): This.
5805 Don't allow uneven stem-widths.
5806 (ah_align_linked_edge): New function.
5807 (ah_align_serifed_edge): Don't strengthen serifs.
5808 (ah_hint_edges_3, ah_hinter_scale_globals): Updated.
5810 2002-07-03 Owen Taylor <owen@redhat.com>
5812 Adding new algorithm based on Owen Taylor's recent work.
5814 * src/pshinter/pshalgo3.c, src/pshinter/pshalgo3.h: New files.
5815 * src/pshinter/pshalgo.h: Updated.
5816 Use pshalgo3 by default.
5817 * src/pshinter/pshinter.c: Include pshalgo3.c.
5819 * src/pshinter/Jamfile, src/pshinter/rules.mk: Updated.
5821 2002-07-01 Owen Taylor <owen@redhat.com>
5823 * src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points): Fix a bug
5824 where, if a glyph has more than hint mask, the second mask gets
5825 applied to points that should have been covered by the first mask.
5827 2002-07-01 Keith Packard <keithp@keithp.com>
5829 * src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next):
5830 Fixing the cmap 8 and 12 parsing routines.
5832 2002-07-01 David Turner <david@freetype.org>
5834 * src/base/ftsynth.c: Include FT_TRIGONOMETRY_H.
5835 (FT_Outline_Embolden): Renamed to...
5836 (FT_GlyphSlot_Embolden): This.
5837 Updated to new trigonometric functions.
5838 (FT_Outline_Oblique): Renamed to...
5839 (FT_GlyphSlot_Oblique): This.
5841 * include/freetype/ftsynth.h: Updated.
5843 2002-06-26 David Turner <david@freetype.org>
5845 * include/freetype/internal/ftobject.h: Updating the object
5846 sub-system definitions (still experimental).
5848 * src/base/fthash.c (ft_hash_remove): Fixing a small reallocation
5851 * src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New
5853 * include/freetype/fttrigon.h: Updated.
5856 Adding path stroker component (work in progress).
5858 * include/freetype/ftstroker.h, src/base/ftstroker.c: New files.
5859 * src/base/Jamfile: Updated.
5861 * include/freetype/config/ftheader.h (FT_STROKER_H): New macro.
5864 * src/truetype/ttgload.c (TT_Load_Composite_Glyph),
5865 src/base/ftoutln.c (FT_Vector_Transform): Fixed Werner's latest fix.
5866 FT_Vector_Transform wasn't buggy, the TrueType composite loader was.
5868 2002-06-24 Werner Lemberg <wl@gnu.org>
5870 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
5872 2002-06-21 David Turner <david@freetype.org>
5875 * Version 2.1.2 released.
5876 =========================
5879 2002-06-21 Roberto Alameda <ojancano@geekmail.de>.
5881 * include/freetype/internal/t42types.h (T42_Font): Removed since
5882 it is already in t42objs.h.
5883 (T42_Face): Use T1_FontRec.
5885 * src/base/fttype1.c (FT_Get_PS_Font_Info): Updated.
5886 (FT_Has_PS_Glyph_Names): Check for type42 driver name also.
5887 * src/type42/t42objs.h: Include FT_INTERNAL_TYPE42_TYPES_H.
5888 (T42_Face): Removed since it is already in t42types.h.
5890 2002-06-21 Detlef Würkner <TetiSoft@apg.lahn.de>
5892 * src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite
5895 2002-06-21 Sven Neumann <sven@convergence.de>
5897 * src/prf/pfrtypes.h (PFR_KernPair): New structure.
5898 (PFR_PhyFont): Use it.
5899 (PFR_KernFlags): New enumeration.
5900 * src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): New
5902 (pfr_phy_font_extra_items): Use it.
5903 (pfr_phy_font_done): Updated.
5904 * src/pfr/pfrobjs.c (pfr_face_init): Set kerning flag conditionally.
5905 (pfr_face_get_kerning): New function.
5906 * src/pfr/pfrobjs.h: Updated.
5907 * src/pfr/pfrdrivr.c (pfr_driver_class): Updated.
5909 2002-06-21 David Turner <david@freetype.org>
5911 * README, docs/CHANGES: Preparing the 2.1.2 release.
5913 2002-06-19 Detlef Würkner <TetiSoft@apg.lahn.de>
5915 * src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H.
5916 (t1_face_check_cast): Removed.
5917 (FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers
5920 2002-06-19 Sebastien BARRE <http://barre.nom.fr/contact.html#email>
5922 * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning.
5924 2002-06-19 Werner Lemberg <wl@gnu.org>
5926 * src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo
5928 * src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with
5929 `||' to make code easier to read.
5931 2002-06-18 Roberto Alameda <ojancano@geekmail.de>.
5933 * src/type42/t42objs.c (t42_check_size_change): Removed.
5934 (T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size
5936 (T42_GlyphSlot_Load): Remove call to t42_check_size_change.
5938 2002-06-18 Detlef Würkner <TetiSoft@apg.lahn.de>
5940 * src/psaux/t1cmap.c (t1_cmap_custom_char_index,
5941 t1_cmap_custom_char_next): Fix index computation -- indices start
5942 with 0 and not with cmap->first.
5944 Provide default charmaps.
5946 * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
5947 (PCF_Face_Init), src/pfr/pfrobjs.c (pfr_face_init),
5948 src/type1/t1objs (T1_Face_Init), src/winfonts/winfnt.c
5949 (FNT_Face_Init): Implement it.
5951 2002-06-17 Sven Neumann <sven@gimp.org>
5953 * src/pfr/pfrobjs.c (pfr_face_init): Fix typo.
5955 2002-06-16 Leonard Rosenthol <leonardr@lazerware.com>
5957 Updated Win32/VC++ projects to include the new PFR driver.
5959 * builds/win32/visualc/freetype.dsp: Updated.
5961 2002-06-16 Anthony Fok <fok@debian.org>
5963 Install freetype2.m4.
5965 * builds/unix/install.mk (install, uninstall): Handle it.
5967 2002-06-16 Detlef Würkner <TetiSoft@apg.lahn.de>
5969 Same fix for PFR driver.
5971 * src/pfr/pfrcmap.c (pfr_cmap_char_index, pfr_cmap_char_next):
5972 Increase return value by 1.
5973 * src/pfr/pfrobjs.c (pfr_slot_load): Decrease index by 1.
5975 2002-06-15 Detlef Würkner <TetiSoft@apg.lahn.de>
5977 Fix glyph indices to make index zero always the undefined glyph.
5979 * src/bdf/bdfdrivr.c (bdf_cmap_init): Don't decrease
5980 cmap->num_encodings.
5981 (bdf_cmap_char_index, bdf_cmap_char_next, BDF_Get_Char_Index):
5982 Increase result by 1 for normal cases.
5983 (BDF_Glyph_Load): Decrease index by 1.
5985 * src/pcf/pcfdriver.c (pcf_cmap_char_index, pcf_cmap_char_next,
5986 PCF_Char_Get_Index): Increase result by 1 for normal cases.
5987 (PCF_Glyph_Load): Decrease index by 1.
5988 * src/pcf/pcfread.c (pcf_get_encodings): Don't decrease j for
5989 allocating `encoding'.
5991 * src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix
5994 2002-06-14 Detlef Würkner <TetiSoft@apg.lahn.de>
5996 Add new cmap support to BDF driver.
5998 * src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]:
6000 (bdf_cmap_init, bdf_cmap_done, bdf_cmap_char_index,
6001 bdf_cmap_char_next) [FT_CONFIG_OPTION_USE_CMAPS]: New functions.
6002 (BDF_Get_Char_Index) [!FT_CONFIG_OPTION_USE_CMAPS]: Use only
6004 (BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords.
6005 Implement new cmap handling.
6006 (bdf_driver_class): Updated.
6008 2002-06-14 Werner Lemberg <wl@gnu.org>
6010 * Makefile, configure, */*.mk, builds/unix/unix-def.in,
6011 docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/.
6013 2002-06-12 Werner Lemberg <wl@gnu.org>
6015 * src/bdf/bdflib.c: s/FT_Short/short/ for consistency.
6017 2002-06-11 David Turner <david@freetype.org>
6019 * builds/win32/ftdebug.c: Added a missing #endif.
6021 * src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings.
6023 Removed the bug in Type 42 driver that prevented un-hinted outlines
6026 * src/type42/t42objs.c (T42_Face_Init): Call FT_Done_Size.
6027 (T42_Size_Init): Call FT_Activate_Size.
6028 (t42_check_size_change): New function.
6029 (T42_Size_SetChars, T42_Size_SetPixels): Use it.
6030 (ft_glyphslot_clear): Replace FT_MEM_SET with FT_ZERO.
6031 (T42_GlyphSlot_Load): Use t42_check_size_change.
6032 Initialize more fields of `glyph'.
6034 * builds/win32/visualc/freetype.dsp: Updated.
6036 2002-06-09 David Turner <david@freetype.org>
6039 * Version 2.1.1 released.
6040 =========================
6043 2002-06-08 Juliusz Chroboczek <jch@pps.jussieu.fr>
6045 * include/freetype/internal/ftobjs.h, src/autohint/ahglyph.c,
6046 src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/smooth/ftgrays.c: Don't
6047 use `setjmp', `longjmp', and `jmp_buf' but `ft_setjmp', `ft_longjmp',
6049 Removed direct references to <stdio.h> and <setjmp.h> when
6050 appropriate, to eventually replace them with a
6051 FT_CONFIG_STANDARD_LIBRARY_H. Useful for the XFree86 Font Server
6052 backend based on FT2.
6054 * src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value.
6056 2002-06-08 David Turner <david@freetype.org>
6058 * src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused
6059 the function to return invalid values.
6061 * src/cache/ftccache.i: Removing a typo that prevented
6062 the source's compilation.
6064 * src/cache/ftccache.c (ftc_node_hash_unlink): Fixed a
6065 bug that caused nasty memory overwrites. The hash table's
6066 buckets array wasn't correctly resized when shrinked.
6068 2002-06-08 Detlef Würkner <TetiSoft@apg.lahn.de>
6070 * builds/amiga/smakefile, builds/amiga/makefile: Updated.
6072 2002-06-08 Werner Lemberg <wl@gnu.org>
6074 * src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link)
6075 [FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code.
6076 Fix debugging messages.
6077 * src/cache/ftccache.i (GEN_CACHE_LOOKUP): Move declaration of
6078 `family' and `hash' up to make it compilable with g++.
6080 * src/type42/t42error.h: New file.
6081 * src/type42/t42drivr.c, src/type42/t42objs.c,
6082 src/type42/t42parse.c: Use t42 error codes.
6083 * src/type42/rules.mk: Updated.
6085 * src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.
6087 2002-06-08 David Turner <david@freetype.org>
6089 * src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE,
6090 GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
6092 (ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
6094 (FTC_CMapCache_Lookup): Updated.
6096 Adding various experimental optimizations to the cache manager.
6098 * include/freetype/cache/ftccache.h (FTC_CACHE_USE_INLINE,
6099 FTC_CACHE_USE_LINEAR_HASHING): New options.
6100 (FTC_CacheRec) [FTC_CACHE_USE_LINEAR_HASHING]: New elements `p',
6101 `mask', and `slack'.
6103 * src/cache/ftccache.c (FTC_HASH_MAX_LOAD, FTC_HASH_MIN_LOAD,
6104 FTC_HASH_SUB_LOAD) [FTC_CACHE_USE_LINEAR_HASHING,
6105 FTC_HASH_INITIAL_SIZE]: New macros.
6106 (ftc_node_mru_link, ftc_node_mru_up): Optimized.
6107 (ftc_node_hash_unlink, ftc_node_hash_link)
6108 [FTC_CACHE_USE_LINEAR_HASHING]: New variants.
6109 (FTC_PRIMES_MIN, FTC_PRIMES_MAX, ftc_primes, ftc_prime_closest,
6110 FTC_CACHE_RESIZE_TEST, ftc_cache_resize)
6111 [!FTC_CACHE_USE_LINEAR_HASHING]: Define it conditionally.
6112 (ftc_cache_init, ftc_cache_clear) [FTC_CACHE_USE_LINEAR_HASHING]:
6114 (ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it.
6116 * src/cache/ftccache.i: New file.
6118 * src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE,
6119 GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
6121 (ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
6123 (FTC_SBitCache_Lookup): Updated.
6125 * src/type42/t42parse.c: Removing duplicate function.
6127 2002-06-07 Graham Asher <graham.asher@btinternet.com>
6129 * src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition
6130 from FT_EXPORT_DEF to FT_BASE_DEF.
6132 2002-06-07 David Turner <david@freetype.org>
6134 Fixed the bug that prevented the correct display of fonts with
6137 * src/type42/t42drivr.c: Split into...
6138 * src/type42/t42drivr.h, src/type42/t42parse.c,
6139 src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c,
6140 src/type42/type42.c: New files.
6142 (t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use
6145 (Get_Interface): Renamed to...
6146 (T42_Get_Interface): This.
6148 (T42_Open_Face, T42_Face_Done): Updated.
6149 (T42_Face_Init): Add new cmap support.
6151 (T42_Driver_Init, T42_Driver_Done, T42_Size_Init, T42_Size_Done,
6152 T42_GlyphSlot_Init, T42_GlyphSlot_Done): Updated.
6153 (Get_Char_Index, Get_Next_Char): Renamed to...
6154 (T42_CMap_CharIndex, T42_CMap_CharNext): This.
6156 (T42_Char_Size, T42_Pixel_Size): Renamed to...
6157 (T42_Size_SetChars, T42_Size_SetPixels): This.
6158 (T42_Load_Glyph): Renamed to...
6159 (T42_GlyphSlot_Load): This.
6161 (t42_init_loader, t42_done_loader): Renamed to...
6162 (t42_loader_init, t42_loader_done): This.
6163 (T42_New_Parser, T42_Finalize_Parser): Renamed to...
6164 (t42_parser_init, t42_parser_done): This.
6165 (parse_dict): Renamed to...
6166 (t42_parse_dict): This.
6167 (is_alpha, is_space, hexval): Renamed to...
6168 (t42_is_alpha, t42_is_space, t42_hexval): This.
6169 (parse_font_name, parse_font_bbox, parse_font_matrix,
6170 parse_encoding, parse_sfnts, parse_charstrings, parse_dict):
6172 (t42_parse_font_name, t42_parse_font_bbox, t42_parse_font_matrix,
6173 t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings,
6174 t42_parse_dict): This.
6177 (t42_keywords): Updated.
6179 * src/type42/Jamfile, src/type42/descrip.mms: Updated.
6181 2002-06-03 Werner Lemberg <wl@gnu.org>
6183 Add 8bpp support to BDF driver.
6185 * src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp.
6186 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto.
6187 * src/bdf/README: Updated.
6189 2002-06-02 Detlef Würkner <TetiSoft@apg.lahn.de>
6191 * src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array.
6193 2002-05-29 Detlef Würkner <TetiSoft@apg.lahn.de>
6195 * src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically.
6196 (_bdf_parse_glyphs): Use correct size for allocating
6198 (bdf_load_font): Free array conditionally.
6199 Return proper error code in case of failure.
6200 * src/bdf/bdfdrivr.c (BDF_Face_Init): Make it more robust against
6203 2002-05-29 Werner Lemberg <wl@gnu.org>
6205 * src/bdf/descrip.mms, src/type42/descrip.mms: New files.
6206 * descrip.mms (all): Updated.
6208 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
6210 * src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.
6212 2002-05-28 Detlef Würkner <TetiSoft@apg.lahn.de>
6214 * builds/amiga/makefile, builds/amiga/smakefile,
6215 amiga/include/freetype/config/ftmodule.h: Updated to include
6216 support for BDF and Type42 drivers.
6218 * docs/modules.txt: Updated.
6220 2005-05-28 David Turner <david@freetype.org>
6222 * docs/CHANGES: Updating file for next release (2.1.1).
6224 * src/bdf/bdflib.c: Removing compiler warnings.
6226 * include/freetype/ftxf86.h, src/base/ftxf86.c: New files.
6227 They provide a new API (FT_Get_X11_Font_Format) to retrieve an
6228 X11-compatible string describing the font format of a given face.
6229 This was put in a new optional base source file, corresponding to a
6230 new public header (named FT_XFREE86_H since this function should
6231 only be used within the XFree86 font server IMO).
6233 * include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not
6236 * src/base/fttype1.c: New file, provoding two new API functions
6237 (FT_Get_PS_Font_Info and FT_Has_PS_Glyph_Names).
6238 * include/freetype/t1tables.h: Updated.
6240 * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms:
6241 Updating build control files for the new files `ftxf86.c' and
6242 `fttype1.c' in src/base.
6244 * src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that
6245 prevented family blue zones substitution from hapenning correctly.
6247 * include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding
6248 documentation comment.
6250 2002-05-28 Werner Lemberg <wl@gnu.org>
6252 * src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT
6254 Declare `stream' variable.
6256 * src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math
6257 with calls to `FT_MulDiv'.
6259 2002-05-28 David Turner <david@freetype.org>
6261 Fixing the SFNT name table loader to support various buggy fonts.
6262 It now ignores empty name entries, entries with invalid pointer
6263 Offsets and certain fonts containing tables with broken
6264 `storageOffset' fields.
6266 Name strings are now loaded on demand, which reduces the memory
6267 requirements for a given FT_Face tremendously (for example, the name
6268 table of Arial.ttf is about 10Kb and contains 70 names).
6270 This is a temporary fix. The whole name table loader and interface
6271 will be rewritten in a much more cleanly way shortly, once CSEH have
6272 been introduced in the sources.
6274 * include/freetype/internal/tttypes.h (TT_NameEntryRec): Change
6275 type of `stringOffset' to FT_ULong.
6276 (TT_NameTableRec): Change type of `numNameRecords' and
6277 `storageOffset' to FT_UInt.
6278 Replace `storage' with `stream'.
6279 * src/base/ftnames.c (FT_Get_Sfnt_Name): Load name on demand.
6280 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
6281 Make code more robust.
6282 * src/sfnt/sfobjs.c (TT_NameEntry_ConvertFunc): New typedef.
6283 (tt_face_get_name): Use it.
6284 Make code more robust.
6285 * src/sfnt/ttload.c (TT_Load_Names): Use `static' for arrays.
6286 Handle invalid `storageOffset' data better.
6287 Set length fields to zero for invalid or ignored data.
6288 Remove code within FT_DEBUG_LEVEL_TRACE.
6289 (TT_Free_Names): Updated.
6291 2002-05-24 Tim Mooney <enchanter@users.sourceforge.net>
6293 * builds/unix/ft-munmap.m4: New file, extracted FT_MUNMAP_DECL and
6294 FT_MUNMAP_PARAM from aclocal.m4 into here, so aclocal.m4 can be
6295 rebuilt from sources. Set macro serial to 1, and use third argument
6296 to AC_DEFINE for our two custom symbols, so ftconfig.in could one day
6297 be rebuilt with autoheader (not recommended now, ftconfig.in is a
6300 2002-05-22 Werner Lemberg <wl@gnu.org>
6302 * include/freetype/config/ftheader.h (FT_BEZIER_H): Removed.
6303 (FT_BDF_H): New macro for accessing `ftbdf.h'.
6305 * src/type42/t42drivr.c (hexval): Fix typo.
6307 2002-05-21 Martin Muskens <mmuskens@aurelon.com>
6309 * src/psaux/psobjs.c (T1Radix): New function.
6310 (t1_toint): Use it to handle numbers in radix format.
6312 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy
6313 for undocumented, obsolete opcode 15.
6315 2002-05-21 David Turner <david@freetype.org>
6317 * src/bdf/bdflib.c: Removed compiler warning, and changed all tables
6318 to the `static const' storage specifier (instead of simply
6321 * src/type42/t42drivr.c (hexval): Use more efficient code.
6322 Removing compiler warnings.
6323 * src/bdf/bdfdrivr.c: Removing compiler warnings.
6325 * include/freetype/internal/ftbdf.h, src/base/ftbdf.c,
6326 src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk
6327 (FT_Get_BDF_Charset_ID): New API to retrieve BDF-specific strings
6328 from a face. This is much cleaner than accessing the internal types
6329 `BDF_Public_Face' defined in FT_INTERNAL_BDF_TYPES_H.
6331 2002-05-21 Werner Lemberg <wl@gnu.org>
6333 * src/bdf/README: Mention Microsoft's SBIT tool.
6335 * src/cff/cffdrivr.c, src/cid/cidriver.c, src/pcf/pcfdriver.c,
6336 src/truetype/ttdriver.c, src/type1/t1driver.c,
6337 src/winfonts/winfnt.c, src/type42/t42drivr.c, src/bdf/bdfdrivr.c
6338 [FT_CONFIG_OPTION_DYNAMIC_DRIVERS]: Completely removed. It has
6341 2002-05-21 Roberto Alameda <ojancano@geekmail.de>.
6343 * src/type42/t42drivr.c: s/T42_ENCODING_TYPE_/T1_ENCODING_TYPE_/.
6344 (parse_font_matrix): Remove unnecessary code.
6345 (parse_sfnts): Initialize some variables.
6346 (t42_driver_class) [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Use
6347 ft_module_driver_has_hinter conditionally.
6348 Moved some type 42 specific structure definitions to...
6349 * include/freetype/internal/t42types.h: New file.
6350 * include/freetype/internal/internal.h (FT_INTERNAL_T42_TYPES_H):
6353 2002-05-20 Werner Lemberg <wl@gnu.org>
6355 * include/freetype/cache/ftcsbits.h (FTC_SBit): Added a new field
6356 `num_grays' for specifying the number of used gray levels.
6357 * src/cache/ftcsbits.c (ftc_sbit_node_load): Initialize it.
6359 2002-05-19 Werner Lemberg <wl@gnu.org>
6361 Adding a driver for BDF fonts written by Francesco Zappa Nardelli
6362 <Francesco.Zappa.Nardelli@ens.fr>. Heavily modified by me to
6363 better adapt it to FreeType, removing unneeded stuff. Additionally,
6364 it now supports Mark Leisher's BDF extension for anti-aliased
6365 bitmap glyphs with 2 and 4 bpp.
6367 * src/bdf/*: New driver.
6368 * include/freetype/internal/bdftypes.h: New file.
6369 * include/freetype/internal/fttrace.h: Added BDF driver components.
6370 * include/freetype/fterrdef.h: Added error codes for BDF driver.
6371 * include/freetype/config/ftmodule.h, src/Jamfile: Updated.
6372 * include/freetype/internal/internal.h (FT_INTERNAL_BDF_TYPES_H):
6375 * include/freetype/config/ftstdlib.h (ft_sprintf): New alias for
6378 2002-05-18 Werner Lemberg <wl@gnu.org>
6380 * include/freetype/internal/fttrace.h: Added Type 42 driver
6382 * src/type42/t42drivr.c: Use it.
6384 * include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H):
6387 2002-05-17 Werner Lemberg <wl@gnu.org>
6389 * src/type42/Jamfile: New file.
6391 2002-05-14 Werner Lemberg <wl@gnu.org>
6393 Adding a driver for Type42 fonts written by Roberto Alameda
6394 <ojancano@geekmail.de>.
6396 * src/type42/*: New driver.
6397 * include/freetype/config/ftmodule.h, src/Jamfile: Updated.
6398 * include/freetype/config/ftstdlib.h (ft_xdigit, ft_memcmp,
6399 ft_atoi): New aliases for xdigit, memcmp, and atoi, respectively.
6401 2002-05-12 Owen Taylor <otaylor@redhat.com>
6403 * src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables
6404 with a zero length value.
6406 2002-05-12 Michael Pfeiffer <michael.pfeiffer@utanet.at>
6408 * builds/beos/beos.mk: Include `link-std.mk'.
6410 2002-05-12 Werner Lemberg <wl@gnu.org>
6412 * src/type1/t1load.h (T1_Loader): Renamed to...
6413 (T1_LoaderRec): This.
6414 (T1_Loader): Now pointer to T1_LoaderRec.
6415 * src/type1/t1load.c: Updated.
6417 * include/freetype/internal/t1types.h, src/type1/t1load.c,
6419 s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
6421 2002-05-06 Werner Lemberg <wl@gnu.org>
6423 * README: Add a note regarding libttf vs. libfreetype.
6425 2002-05-05 Werner Lemberg <wl@gnu.org>
6427 FreeType 2 can now be built in an external directory with the
6428 configure script also.
6430 * builds/freetype.mk (INCLUDES): Add `OBJ_DIR'.
6432 * builds/unix/detect.mk (have_mk): New variable to test for
6434 (unix-def.mk): Defined according to value of `have_mk'.
6435 * builds/unix/unix.mk (have_mk): New variable to test for
6437 Select include paths for unix-def.mk and unix-cc.mk according
6438 to value of `have_mk'.
6439 * builds/unix/unix-def.in (OBJ_BUILD): New variable.
6440 (DISTCLEAN): Use it.
6441 * builds/unix/unix-cc.in (LIBTOOL): Define default value only
6443 * builds/unix/install.mk (install): Use `OBJ_BUILD' for installing
6446 * configure: Don't depend on bash features.
6447 (ft2_dir, abs_curr_dir, abs_ft2_dir): New variables (code
6448 partially taken from Autoconf).
6449 Build a dummy Makefile if not building in source tree.
6451 * docs/INSTALL: Document it.
6453 2002-05-04 David Turner <david@freetype.org>
6455 * src/truetype/ttgload.c (TT_Load_Glyph): Finally fixing the last
6456 bug that prevented FreeType 2.x and FreeType 1.x to produce
6457 bit-by-bit identical monochrome glyph bitmaps with native TrueType
6458 hinting. The culprit was a single-bit flag that wasn't set
6459 correctly by the TrueType glyph loader.
6461 * src/otlayout/otlayout.h, src/otlayout/otlbase.c,
6462 src/otlayout/otlbase.h, src/otlayout/otlconf.h,
6463 src/otlayout/otlgdef.c, src/otlayout/otlgdef.h,
6464 src/otlayout/otlgpos.c, src/otlayout/otlgpos.h,
6465 src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
6466 src/otlayout/otljstf.c, src/otlayout/otljstf.h,
6467 src/otlayout/otltable.c, src/otlayout/otltable.h,
6468 src/otlayout/otltags.h: New OpenType Layout source files. The
6469 module is still incomplete.
6471 2002-05-02 Werner Lemberg <wl@gnu.org>
6473 * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo
6474 (0xFFFU -> 0xFFFFU).
6476 2002-05-01 Werner Lemberg <wl@gnu.org>
6478 * docs/INSTALL: Fix URL of makepp.
6480 2002-05-01 David Turner <david@freetype.org>
6482 * src/sfnt/sfobjs.c (tt_face_get_name): Fixing a bug that caused
6483 FreeType to crash when certain broken fonts (e.g. `hya6gb.ttf')
6486 * src/sfnt/ttload.c (TT_Load_Names): Applied a small work-around to
6487 manage fonts containing a broken name table (e.g. `hya6gb.ttf').
6489 * src/sfnt/ttcmap0.c (tt_cmap4_validate): Fixed over-restrictive
6490 validation test. The charmap validator now accepts overlapping
6491 ranges in format 4 charmaps.
6493 * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary
6494 search algorithm. Certain fonts contain more than 170 distinct
6497 * include/freetype/config/ftstdlib.h: Adding an alias for the `exit'
6498 function. This will be used in the near future to panic in case of
6499 unexpected exception (which shouldn't happen in theory).
6501 * include/freetype/internal/fthash.h, src/base/fthash.c: New files.
6502 This is generic implementation of dynamic hash tables using a linear
6503 algorithm (to get rid of `stalls' during resizes). In the future
6504 this will be used in at least three parts of the library: the cache
6505 sub-system, the object sub-system, and the memory debugger.
6507 * src/base/Jamfile: Updated.
6509 * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H,
6510 FT_INTERNAL_OBJECT_H): New macros.
6512 * include/freetype/internal/ftcore.h: New file to group all new
6513 definitions related to exception handling and memory management. It
6514 is very likely that this file will disappear or be renamed in the
6517 * include/freetype/internal/ftobject.h, include/freetype/ftsysmem.h:
6518 Adding comments to better explain the object sub-system as well as
6519 the new memory manager interface.
6521 2002-04-30 Wenlin Institute (Tom Bishop) <wenlin@wenlin.com>
6523 * src/base/ftmac.c (p2c_str): Removed.
6524 (file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for
6526 (is_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X.
6527 Handle `nameLen' <= 6 also.
6528 (parse_fond): Remove unused variable `name_table'.
6529 Use functionality of old p2c_str directly.
6531 (read_lwfn): Initialize `size_p'.
6532 Check for size_p == NULL.
6533 (new_memory_stream, open_face_from_buffer): Updated to FreeType 2.1.
6534 (FT_New_Face_From_LWFN): Remove unused variable `memory'.
6535 Remove some dead code.
6536 (FT_New_Face_From_SFNT): Remove unused variable `stream'.
6537 (FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Define only for
6539 (FT_New_Face_From_FOND): Remove unused variable `error'.
6540 (ResourceForkSize): New function.
6541 (FT_New_Face): Use it.
6542 Handle empty resource forks.
6543 Conditionalize some code for OS X.
6544 Add code to call normal loader as a fallback.
6546 2002-04-30 Werner Lemberg <wl@gnu.org>
6548 `interface' is reserved on the Mac.
6550 * include/freetype/ftoutln.h, include/freetype/internal/sfnt.h,
6551 src/base/ftoutln.c: s/interface/func_interface/.
6552 * src/base/ftbbox.c (FT_Outline_Get_BBox):
6553 s/interface/bbox_interface/.
6554 * src/cff/cffdrivr.c: s/interface/module_interface/.
6555 * src/cff/cffload.c, src/cff/cffload.h:
6556 s/interface/psnames_interface/.
6557 * src/cid/cidriver.c: s/interface/cid_interface/.
6558 * src/sfnt/sfdriver.c: s/interface/module_interface/.
6559 * src/smooth/ftgrays.c: s/interface/func_interface/.
6560 * src/truetype/ttdriver.c: s/interface/tt_interface/.
6561 * src/type1/t1driver.c: s/interface/t1_interface/.
6563 Some more variable renames to avoid troubles on the Mac.
6565 * src/raster/ftraster.c:
6566 s/Unknown|Ascending|Descending|Flat/\1_State/.
6567 * src/smooth/ftgrays.c: s/TScan/TCoord/.
6569 Other changes for the Mac.
6571 * include/freetype/config/ftconfig.h: Define FT_MACINTOSH for
6573 * src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/.
6575 * src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always
6578 2002-04-29 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
6580 * descrip.mms (all): Add pfr driver.
6582 2002-04-28 Werner Lemberg <wl@gnu.org>
6584 * src/pfr/pfrerror.h: New file.
6585 * include/freetype/ftmoderr.h: Add PFR error codes.
6586 * src/pfr/pfrgload.c: Include pfrerror.h.
6587 Use PCF error codes.
6588 (pfr_extra_item_load_stem_snaps): Fix debug message.
6589 * src/pfr/pfrgload.c: Include pfrerror.h.
6590 Use PCF error codes.
6591 (pfr_extra_item_load_bitmap_info, pfr_glyph_load_simple,
6592 pfr_glyph_load_compound): Fix debug message.
6593 * src/pfr/pfrobjs.c: Include pfrerror.h.
6594 Use PCF error codes.
6595 (pfr_face_init): Return PFR_Err_Unknown_File_Format.
6596 * src/pfr/rules.mk (PFR_DRV_H): Include pfrerror.h.
6598 * src/pcf/pcfdriver.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_CMAPS]:
6599 `root' -> `face->root'.
6600 * src/sfnt/ttcmap0.c (TT_Build_CMaps) [!FT_CONFIG_OPTION_USE_CMAPS]:
6602 * src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for
6603 FT_CONFIG_OPTION_USE_CMAPS.
6605 2002-04-27 Werner Lemberg <wl@gnu.org>
6607 * src/cache/ftccache.c (ftc_cache_lookup),
6608 src/cache/ftccmap.c (ftc_cmap_family_init),
6609 src/cache/ftcmanag.c (ftc_family_table_alloc),
6610 src/cache/ftcsbits.c (FTC_SBit_Cache_Lookup): Use FTC_Err_*.
6611 src/cache/ftcimage.c (FTC_Image_Cache_Lookup): Use FTC_Err_*.
6612 (FTC_ImageCache_Lookup): Fix handling of invalid arguments.
6614 2002-04-22 Werner Lemberg <wl@gnu.org>
6616 * builds/unix/configure.ac: Set `version_info' to 9:1:3 (FT2
6617 version 2.0.9 has 9:0:3).
6618 * builds/unix/configure: Regenerated (using autoconf 2.53).
6620 2002-04-19 Werner Lemberg <wl@gnu.org>
6622 * src/pfr/pfrload.c (pfr_extra_items_farse): Fix debug message.
6623 (pfr_phy_font_load): s/size/Size/ for local variable to avoid
6625 * src/pfr/pfrobjs.c (pfr_face_init): Fix debug message.
6626 (pfr_slot_load): Remove redundant local variable.
6628 2002-04-19 David Turner <david@freetype.org>
6630 Adding a PFR font driver to the FreeType sources. Note that it
6631 doesn't support embedded bitmaps or kerning tables yet.
6633 src/pfr/*: New files.
6635 * include/freetype/config/ftmodule.h,
6636 include/freetype/internal/fttrace.h, src/Jamefile: Updated.
6638 * src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c
6639 (T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback
6642 * include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New
6645 * include/freetype/internal/ftstream.h (FT_NEXT_OFF3, FT_NEXT_UOFF3,
6646 FT_NEXT_OFF3_LE, FT_NEXT_UOFF3_LE): New macros to parse in-memory
6649 2002-04-18 David Turner <david@freetype.org>
6651 * src/base/ftobjs.c, builds/win32/ftdebug.c,
6652 builds/amiga/src/base/ftdebug.c: Version 2.1.0 couldn't be linked
6653 against applications in Win32 and Amiga builds due to changes to
6654 `src/base/ftdebug.c' that were not properly propagated to
6655 `builds/win32' and `builds/amiga'. This has been fixed.
6657 * include/freetype/internal/ftobject.h,
6658 include/freetype/internal/ftexcept.h, include/freetype/ftsysmem.h,
6659 include/freetype/ftsysio.h, src/base/ftsysmem.c, src/base/ftsysio.c:
6660 New experimental files.
6662 2002-04-17 David Turner <david@freetype.org>
6665 * Version 2.1.0 released.
6666 =========================
6669 2002-04-17 Michael Jansson <mjan@em2-solutions.com>
6671 * src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug
6672 that prevented the function to return the correct value.
6674 2002-04-16 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
6676 * src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator
6679 2002-04-15 David Turner <david@freetype.org>
6681 * docs/FTL.txt: Formatting.
6683 * include/freetype/config/ftoption.h: Reduce the size of the
6684 render pool from 32kByte to 16kByte.
6686 * src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler
6689 * include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed.
6691 * docs/CHANGES: Preparing 2.1.0 release.
6693 2002-04-13 Werner LEMBERG <wl@gnu.org>
6695 * src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid
6698 2002-04-12 David Turner <david@freetype.org>
6700 * README.UNX: Updated the Unix-specific quick-compilation guide to
6701 warn about the GNU Make requirement at compile time.
6703 * include/freetype/config/ftstdlib.h,
6704 include/freetype/config/ftconfig.h,
6705 include/freetype/config/ftheader.h,
6706 include/freetype/internal/ftmemory.h,
6707 include/freetype/internal/ftobjs.h,
6709 src/autohint/ahoptim.c,
6711 src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c,
6712 src/base/ftobjs.c, src/base/ftsystem.c,
6714 src/cache/ftcimage.c, src/cache/ftcsbits.c,
6716 src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c,
6718 src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
6720 src/pcf/pcfdriver.c, src/pcf/pcfread.c,
6722 src/psaux/t1cmap.c, src/psaux/t1decode.c,
6724 src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
6725 src/pshinter/pshrec.c,
6727 src/psnames/psmodule.c,
6729 src/raster/ftraster.c,
6731 src/sfnt/sfdriver.c, src/sfnt/ttload.c,
6733 src/smooth/ftgrays.c,
6735 src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c,
6736 src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c,
6738 builds/unix/ftconfig.in, builds/vms/ftconfig.h,
6740 builds/amiga/src/base/ftdebug.c:
6742 Added the new configuration file `ftstdlib.h' used to define
6743 aliases for all ISO C library functions used by the engine
6744 (e.g. strlen, qsort, setjmp, etc.).
6746 This eases the porting of FreeType 2 to environments like
6747 XFree86 modules/extensions.
6749 Also removed many #include <string.h>, #include <stdlib.h>, etc.
6750 from the engine's sources where they are not needed.
6752 * src/sfnt/ttpost.c: Use macro name for psnames.h.
6754 2002-04-12 Vincent Caron <v.caron@zerodeux.net>
6756 * configure, builds/detect.mk: Updated the build system to print
6757 a warning message in case GNU Make isn't used to build the library.
6759 2002-04-11 David Turner <david@freetype.org>
6761 * README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release.
6763 * docs/FTL.txt: Updated license text to provide a preferred
6764 disclaimer and adjust copyright dates/extents.
6766 * include/freetype/cache/ftcglyph.h: Removing obsolete (and
6769 * Jamfile.in: New file.
6771 2002-04-11 Maxim Shemanarev <mcseemagg@yahoo.com>
6773 * src/smooth/ftgrays.c (gray_hline): Minor optimization.
6775 2002-04-02 Werner Lemberg <wl@gnu.org>
6777 Fixes from the stable branch:
6779 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
6781 [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
6782 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
6783 [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
6785 * src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
6786 output of FreeType 1.
6788 * src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
6789 bug that created un-even stem widths when hinting Postscript fonts.
6791 * src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes.
6793 2002-04-01 Werner Lemberg <wl@gnu.org>
6795 * src/truetype/ttgload.c: 16bit fixes.
6796 (TT_Load_Simple_Glyph): Improve debug messages.
6797 (load_truetype_glyph): Remove dead code.
6798 * src/truetype/ttinterp.c: 16bit fixes.
6799 * src/truetype/ttobjs.c: Ditto.
6801 * include/freetype/ftsnames.h, include/freetype/internal/sfnt.h,
6802 src/cff/cffload.h, src/psaux/psobjs.h, src/truetype/ttinterp.[ch],
6803 src/sfnt/ttpost.h: s/index/idx/.
6805 2002-03-31 Yao Zhang <yaoz@vidar.niaaa.nih.gov>
6807 * src/truetype/ttobjs.c (TT_Size_Init): Fix typo.
6809 2002-03-31 Werner Lemberg <wl@gnu.org>
6811 * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/.
6812 * src/psaux/t1cmap.c: Ditto.
6813 * src/sfnt/ttcmap0.c: Ditto.
6815 * include/freetype/internal/tttypes.h,
6816 include/freetype/internal/sfnt.h (TT_Goto_Table_Func): Renamed to ...
6817 (TT_Loader_GotoTableFunc): This.
6818 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix debug
6820 * src/psnames/psmodule.c (psnames_interface)
6821 [!FT_CONFIG_OPTION_ADOBE_GLYPH_LIST]: Fix typo.
6822 * src/sfnt/sfdriver.c (get_sfnt_table): 16bit fix.
6823 * src/sfnt/ttcmap.c: 16bit fixes (0xFFFF -> 0xFFFFU).
6824 * src/sfnt/ttcmap0.c: 16bit fixes.
6825 (TT_Build_CMaps): Simplify debug messages.
6826 (tt_cmap12_char_next): Fix offset.
6827 * src/sfnt/ttload.c (TT_Load_Names, TT_Load_CMap): Fix debug
6829 (TT_Load_OS2): 16bit fix.
6831 2002-03-30 David Turner <david@freetype.org>
6833 * include/freetype/internal/tttypes.h: Adding comments to some of
6834 the TT_FaceRec fields.
6836 * src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings.
6838 * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}:
6840 (tt_face_get_name): Use them to properly extract an ascii font name.
6842 2002-03-30 Werner Lemberg <wl@gnu.org>
6844 * include/freetype/t1tables.h (t1_blend_max): Fix typo.
6845 * src/base/ftstream.c: Simplify FT_ERROR calls.
6846 * src/cff/cffdrivr.c (cff_get_glyph_name): Fix debug message.
6848 * src/cff/cffobjs.c (CFF_Driver_Init, CFF_Driver_Done)
6849 [TT_CONFIG_OPTION_EXTEND_ENGINE]: Removed.
6850 * src/cff/sfobjs.c (SFNT_Load_Face)
6851 [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
6852 * src/truetype/ttobjs.c (TT_Init_Driver, TT_Done_Driver)
6853 [TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
6855 * src/truetype/ttdriver.c, src/truetype/ttobjs.c,
6856 src/truetype/ttobjs.h: Renaming driver functions to the
6857 FT_<Subject>_<Action> scheme:
6859 TT_Init_Driver => TT_Driver_Init
6860 TT_Done_Driver => TT_Driver_Done
6861 TT_Init_Face => TT_Face_Init
6862 TT_Done_Face => TT_Face_Done
6863 TT_Init_Size => TT_Size_Init
6864 TT_Done_Size => TT_Size_Done
6865 TT_Reset_Size => TT_Size_Reset
6867 2002-03-29 Werner Lemberg <wl@gnu.org>
6869 * builds/vms/ftconfig.h: Rename LOCAL_DEF and LOCAL_FUNC to
6870 FT_LOCAL and FT_LOCAL_DEF, respectively, as with other ftconfig.h
6872 * builds/unix/ftconfig.in: Add argument to FT_LOCAL and
6874 * src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/.
6875 * builds/unix/configure.ac: Temporarily deactivate creation of
6877 * builds/unix/configure: Updated.
6879 2002-03-28 KUSANO Takayuki <AE5T-KSN@asahi-net.or.jp>
6881 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos.
6883 2002-03-28 Werner Lemberg <wl@gnu.org>
6885 * include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix
6887 * include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for
6889 * src/base/ftapi.c (FT_New_Memory_Stream): Fix typos.
6890 * src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Add
6892 (t1_cmap_{standard,expert,custom,unicode}_class_rec): Use
6893 `FT_CALLBACK_TABLE_DEF'.
6894 * src/psaux/t1cmap.h: Updated.
6895 * src/sfnt/ttcmap0.c (TT_Build_CMaps): Use `ft_encoding_none'
6897 * src/type1/t1objs.c (T1_Face_Init): Use casts.
6899 2002-03-26 David Turner <david@freetype.org>
6901 * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c:
6902 Fixed a small bug in the FT_CMaps support code.
6904 2002-03-25 David Turner <david@freetype.org>
6906 * src/truetype/ttinterp.c (Norm): Replaced with...
6908 (TT_MulFix14, TT_DotFix14): New functions.
6909 (Project, Dual_Project, Free_Project, Compute_Point_Displacement,
6910 Ins_SHPIX, Ins_MIAP, Ins_MIRP): Use them.
6911 [FT_CONFIG_OPTION_OLD_CALCS]: Removed all code.
6913 2002-03-22 David Turner <david@freetype.org>
6915 * src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c:
6916 Various fixes to make the FT_CMaps support work correctly (more
6917 tests are still needed).
6919 * include/freetype/internal/ftobjs.h, src/sfnt/Jamfile,
6920 src/sfnt/rules.mk, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
6921 src/sfnt/ttload.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Updated
6922 the SFNT charmap support to use FT_CMaps.
6924 * include/freetype/fterrdef.h: New file.
6925 * include/freetype/fterrors.h: Include it. It contains all error
6927 * include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New
6930 * include/freetype/internal/ftmemory.h, and a lot of other files:
6931 Changed the names of memory macros. Examples:
6933 MEM_Set => FT_MEM_SET
6934 MEM_Copy => FT_MEM_COPY
6935 MEM_Move => FT_MEM_MOVE
6939 REALLOC = >FT_REALLOC
6941 FT_NEW was introduced to allocate a new object from a _typed_
6944 Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by
6945 FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer
6948 This results in _lots_ of sources being changed, but makes the code
6949 more generic and less error-prone.
6951 * include/freetype/internal/ftstream.h, src/base/ftstream.c,
6952 src/cff/cffload.c, src/pcf/pcfread.c, src/sfnt/ttcmap.c,
6953 src/sfnt/ttcmap0.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
6954 src/sfnt/ttsbit.c, src/truetype/ttgload.c, src/truetype/ttpload.c,
6955 src/winfonts/winfnt.c: Changed the definitions of stream macros.
6958 NEXT_Byte => FT_NEXT_BYTE
6959 NEXT_Short => FT_NEXT_SHORT
6960 NEXT_UShortLE => FT_NEXT_USHORT_LE
6961 READ_Short => FT_READ_SHORT
6962 GET_Long => FT_GET_LONG
6965 Also introduced the FT_PEEK_XXXX functions.
6967 * src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented
6969 (find_encoding): Removed.
6970 (CFF_Face_Init): Remove charmap support.
6972 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_CMAPS,
6973 TT_CONFIG_CMAP_FORMAT{0,2,4,6,8,10,12}): New macros to fine-tune
6976 2002-03-21 David Turner <david@freetype.org>
6978 * src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated
6979 to new FT_CMap definitions.
6981 * src/psaux/t1cmap.h, src/psaux/t1cmap.c, src/type1/t1cmap.h,
6982 src/type1/t1cmap.c: Updating and moving the Type 1 FT_CMap support
6983 from `src/type1' to `src/psaux' since it is going to be shared by
6984 the Type 1 and CID font drivers.
6986 * src/psaux/Jamfile, src/psaux/psaux.c, src/psaux/psauxmod.c,
6987 src/psaux/rules.mk, include/freetype/internal/psaux.h: Added support
6988 for Type 1 FT_CMaps.
6990 2002-03-20 David Turner <david@freetype.org>
6992 * src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a
6993 memory allocation bug that was due to un-careful renaming of the
6996 * src/base/ftdbgmem.c (ft_mem_table_destroy): Fixed a small bug that
6997 caused the library to crash with Electric Fence when memory
7000 * Renaming stream macros. Examples:
7002 FILE_Skip => FT_STREAM_SKIP
7003 FILE_Read => FT_STREAM_READ
7004 ACCESS_Frame => FT_FRAME_ENTER
7005 FORGET_Frame => FT_FRAME_EXIT
7008 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak.
7010 * include/freetype/internal/ftobjs.h: Changing the definition of
7011 FT_CMap_CharNextFunc slightly.
7013 * src/cff/*.c: Updating CFF type definitions.
7015 2002-03-14 David Turner <david@freetype.org>
7017 * include/freetype/internal/autohint.h, src/autohint/ahmodule.c,
7018 src/base/ftapi.c, src/base/ftobjs.c: Updating the type definitions
7019 for the auto-hinter module.
7021 FT_AutoHinter_Interface => FT_AutoHinter_ServiceRec
7022 FT_AutoHinter_Interface* => FT_AutoHinter_Service
7025 FT_AutoHinter_Get_Global_Func => FT_AutoHinter_GlobalGetFunc
7026 FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc
7029 * ahloader.h [_STANDALONE_]: Removed all conditional code.
7031 * include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the
7032 type definitions of the CFF font driver.
7034 CFF_Font => CFF_FontRec
7035 CFF_Font* => CFF_Font
7038 * include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating
7039 type definitions of the Windows FNT font driver.
7041 * include/freetype/internal/ftdriver.h,
7042 include/freetype/internal/ftobjs.h, src/base/ftapi.c,
7043 src/base/ftobjs.c, src/cff/cffdrivr.c, src/cff/cffdrivr.h,
7044 src/cid/cidriver.c, src/cid/cidriver.h, src/pcf/pcfdriver.c,
7045 src/pcf/pcfdriver.h, src/truetype/ttdriver.c,
7046 src/truetype/ttdriver.h, src/type1/t1driver.c, src/type1/t1driver.h,
7047 src/winfonts/winfnt.c, src/winfonts/winfnt.h: Updating type
7048 definitions for font drivers.
7050 FTDriver_initFace => FT_Face_InitFunc
7051 FTDriver_initGlyphSlot => FT_Slot_InitFunc
7054 * src/cid/cidobjs.c (CID_Face_Init): Remove dead code.
7056 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a
7057 few face method definitions:
7059 FT_PSName_Requester => FT_Face_GetPostscriptNameFunc
7060 FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc
7061 FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
7063 * src/base/ftapi.c: New file. It contains backwards compatibility
7066 * include/freetype/internal/psaux.h, src/cid/cidload.c,
7067 src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h,
7068 src/psaux/t1decode.c, stc/type1/t1load.c, src/type1/t1tokens.h:
7069 Updated common PostScript type definitions.
7070 Renamed all enumeration values like to uppercase variants:
7072 t1_token_any => T1_TOKEN_TYPE_ANY
7073 t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
7076 * include/freetype/internal/psglobals.h: Removed.
7077 * include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
7080 * include/freetype/internal/tttypes.h,
7081 include/freetype/internal/sfnt.h, src/base/ftnames.c,
7082 src/cff/cffdrivr.c, src/sfnt/*.c, src/truetype/*.c: Updated
7083 SFNT/TrueType type definitions.
7085 * include/freetype/freetype.h, include/freetype/internal/ftgloadr.h:
7086 Updating type defintiions for the glyph loader.
7088 2002-03-13 Antoine Leca <antoine@oriolnet.com>
7090 * include/freetype/config/ftoption.h: Changed the automatic
7091 detection of Microsoft C compilers to automatically support 64-bit
7092 integers only since revision 9.00 (i.e. >= Visual C++ 2.0).
7094 2002-03-08 Werner Lemberg <wl@gnu.org>
7096 * src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset.
7098 2002-03-07 Werner Lemberg <wl@gnu.org>
7100 * src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new,
7101 ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free,
7102 ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug,
7103 FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings.
7104 * src/base/ftcalc.c (FT_MulFix): Ditto.
7105 * src/cff/cffdrivr.c (cff_get_name_index): Ditto.
7106 * src/cff/cffobjs.c (CFF_Size_Get_Global_Funcs, CFF_Size_Init,
7107 CFF_GlyphSlot_Init): Ditto.
7108 * src/cid/cidobjs.c (CID_GlyphSlot_Init,
7109 CID_Size_Get_Globals_Funcs): Ditto.
7110 * src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init):
7112 * src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
7113 * src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
7116 * include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
7118 (T1_Builder_FuncsRec): This.
7119 (T1_Builder_Funcs): New typedef.
7120 (PSAux_Interface): Remove compiler warnings.
7121 * src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h
7122 (t1_builder_funcs): Updated.
7124 * src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
7125 (PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
7126 (PSH_AlignmentRec): Updated.
7128 * include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
7130 * include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
7131 * src/base/ftstream (FT_Get_Char): Rename to...
7132 (FT_Stream_Get_Char): This.
7134 * src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is
7135 a built-in function in gcc, causing warning messages with gcc 3.0.
7136 * src/autohint/ahglyph.c (ah_outline_load): Ditto.
7137 * src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto.
7138 * src/cache/ftcmanag.c (ftc_family_table_alloc,
7139 ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache):
7141 * src/cff/cffload.c (cff_new_index, cff_done_index,
7142 cff_explicit_index, CFF_Access_Element, CFF_Forget_Element,
7143 CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font,
7144 CFF_Done_Font): Ditto.
7145 * src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto.
7146 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto.
7147 * src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit,
7148 ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3,
7149 * src/pshinter/pshalgo1.c (psh1_hint_table_record,
7150 psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto.
7151 * src/pshinter/pshalgo2.c (psh2_hint_table_record,
7152 psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto.
7153 * src/sfnt/ttpost.c (Load_Format_20, Load_Format_25,
7154 TT_Get_PS_Name): Ditto.
7155 * src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics,
7156 load_truetype_glyph): Ditto.
7157 * src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto.
7158 * src/type1/t1afm.c (T1_Get_Kerning): Ditto.
7159 * include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto.
7161 2002-03-06 David Turner <david@freetype.org>
7163 * src/type1/t1objs.c (T1_Face_Init), src/cid/cidobjs.c
7164 (CID_Face_Init): Fixed another bug related to the
7165 ascender/descender/text height of Postscript fonts.
7167 * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
7168 (psh2_print_zone): This.
7169 * src/pshinter/pshalgo1.c (print_zone): Renamed to ...
7170 (psh1_print_zone): This.
7172 * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
7173 src/base/ftobjs.c: Adding the new FT_Library_Version API to return
7174 the library's current version in dynamic links.
7175 * src/base/ftinit.c (FT_Init_FreeType): Updated.
7177 2002-03-06 Werner Lemberg <wl@gnu.org>
7179 * src/pshinter/pshglob.h (PSH_DimensionRec): s/std/stdw/.
7180 * src/pshinter/pshglob.c (psh_global_scale_widths,
7181 psh_dimension_snap_width, psh_globals_destroy, psh_globals_new):
7184 2002-03-05 David Turner <david@freetype.org>
7186 * src/type1/t1objs.c (T1_Face_Init), src/cff/cffobjs.c
7187 (CFF_Face_Init), src/cid/cidobjs.c (CID_Face_Init): Removing the bug
7188 that returned global BBox values in 16.16 fixed format (instead of
7189 integer font units).
7191 * src/cid/cidriver.c (cid_get_postscript_name): Fixed a bug that
7192 caused the CID driver to return Postscript font names with a leading
7193 slash (`/') as in `/MOEKai-Regular'.
7195 * src/sfnt/ttload.c (TT_Load_Names), src/sfnt/sfobjs.c (Get_Name),
7196 src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed the loader so
7197 that it accepts broken fonts like `foxjump.ttf', which made FreeType
7198 crash when trying to load them.
7200 Also improved the name table parser to be able to load
7201 Windows-encoded entries before Macintosh or Unicode ones, since it
7202 seems some fonts don't have reliable values here anyway.
7204 * include/freetype/internal/psnames.h: Add typedef for
7207 2002-03-05 Werner Lemberg <wl@gnu.org>
7209 * builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool
7211 Apply a small patch for AIX to make shared libraries work (this
7212 patch is already in the CVS version of libtool).
7214 * builds/unix/config.sub, builds/unix/config.guess: Updated to
7217 * builds/unix/configure.ac: Fix typo
7218 (AC_CONFIG_FILE->AC_CONFIG_FILES).
7220 * builds/unix/configure: Regenerated.
7222 2002-02-28 David Turner <david@freetype.org>
7224 * include/freetype/ftconfig.h: Changed `FT_LOCAL xxxx' to
7225 `FT_LOCAL( xxxx )' everywhere in the source. The same goes for
7226 `FT_LOCAL_DEF xxxx' which is translated to `FT_LOCAL_DEF( xxxxx )'.
7228 * include/freetype/freetype.h (FREETYPE_MINOR, FREETYPE_PATCH):
7229 Changing version to 2.1.0 to indicate an unstable branch.
7230 Added the declarations of FT_Get_First_Char and FT_Get_Next_Char.
7232 * src/base/ftobjs.c: Implement FT_Get_First_Char and
7235 * include/freetype/t1tables.h: Renaming structure types. This
7243 typedef PS_StructRec_
7245 } PS_StructRec, *PS_Struct;
7247 typedef PS_StructRec T1_Struct; /* backwards-compatibility */
7249 Hence, we increase the coherency of the source code by effectively
7250 using the `Rec' prefix for structure types.
7252 2002-02-27 David Turner <david@freetype.org>
7254 * src/sfnt/ttload.c (TT_Load_Names): Simplifying and securing the
7255 names table loader. Invalid individual name entries are now handled
7256 correctly. This allows the loading of very buggy fonts like
7257 `foxjump.ttf' without allocating tons of memory and causing crashes.
7259 * src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still
7260 experimental) code for OpenType Layout tables validation and
7263 * src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still
7264 experimental) code for Type 1 charmap processing.
7266 * src/sfnt/ttcmap0.c: New file. It contains a new, still
7267 experimental SFNT charmap processing support.
7269 * include/freetype/internal/ftobjs.h: Adding validation support as
7270 well as internal charmap object definitions (FT_CMap != FT_CharMap).
7272 2002-02-24 David Turner <david@freetype.org>
7274 * Renaming stream functions to the FT_<Subject>_<Action> scheme:
7276 FT_Seek_Stream => FT_Stream_Seek
7277 FT_Skip_Stream => FT_Stream_Skip
7278 FT_Read_Stream => FT_Stream_Read
7279 FT_Read_Stream_At => FT_Stream_Read_At
7280 FT_Access_Frame => FT_Stream_Enter_Frame
7281 FT_Forget_Frame => FT_Stream_Exit_Frame
7282 FT_Extract_Frame => FT_Stream_Extract_Frame
7283 FT_Release_Frame => FT_Stream_Release_Frame
7284 FT_Get_XXXX => FT_Stream_Get_XXXX
7285 FT_Read_XXXX => FT_Stream_Read_XXXX
7287 FT_New_Stream( filename, stream ) =>
7288 FT_Stream_Open( stream, filename )
7290 (The function doesn't create the FT_Stream structure, it simply
7291 initializes it for reading.)
7293 FT_New_Memory_Stream( library, FT_Byte* base, size, stream ) =>
7294 FT_Stream_Open_Memory( stream, const FT_Byte* base, size )
7296 FT_Done_Stream => FT_Stream_Close
7297 FT_Stream_IO => FT_Stream_IOFunc
7298 FT_Stream_Close => FT_Stream_CloseFunc
7300 ft_close_stream => ft_ansi_stream_close (in base/ftsystem.c only)
7301 ft_io_stream => ft_ansi_stream_io (in base/ftsystem.c only)
7303 * src/base/ftutil.c: New file. Contains all memory and list
7304 management code (previously in `ftobjs.c' and `ftlist.c',
7307 * include/freetype/internal/ftobjs.h: Moving all code related to
7308 glyph loaders to ...
7309 * include/freetype/internal/ftgloadr.h: This new file.
7310 `FT_GlyphLoader' is now a pointer to the structure
7311 `FT_GlyphLoaderRec'.
7312 (ft_glyph_own_bitmap): Renamed to ...
7313 (FT_GLYPH_OWN_BITMAP): This.
7314 * src/base/ftobjs.c: Moving all code related to glyph loaders
7316 * src/base/ftgloadr.c: This new file.
7318 2002-02-22 Werner Lemberg <wl@gnu.org>
7320 * include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in
7321 enum to avoid compiler warnings.
7323 2002-02-21 David Turner <david@freetype.org>
7325 Modified the debug sub-system initialization. Trace levels can now
7326 be specified within the `FT2_DEBUG' environment variable. See the
7327 comments within `ftdebug.c' for more details.
7329 * src/base/ftdebug.c: (FT_SetTraceLevel): Removed.
7330 (ft_debug_init): New function.
7331 (ft_debug_dummy): Removed.
7332 Updated to changes in ftdebug.h
7334 * include/freetype/internal/ftdebug.h: Always define
7335 FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE is defined.
7336 (FT_Assert): Renamed to ...
7338 Some stuff from ftdebug.h has been moved to ...
7340 * include/freetype/internal/fttrace.h: New file, to define the trace
7341 levels used for debugging. It is used both to define enums and
7342 toggle names for FT2_DEBUG.
7344 * include/freetype/internal/internal.h: Updated.
7346 * src/base/ftobjs.c, src/base/ftstream.c: Updated.
7348 * include/freetype/internal/ftextend.h, src/base/ftextend.c:
7349 Removed. Both files are now completely obsolete.
7350 * src/base/Jamfile, src/base/rules.mk: Updated.
7352 * include/freetype/fterrors.h: Adding `#undef FT_ERR_CAT' and
7353 `#undef FT_ERR_XCAT' to avoid warnings with certain compilers (like
7356 * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
7357 (psh2_print_zone): This to avoid errors during compilation of debug
7360 * src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as
7363 2002-02-20 David Turner <david@freetype.org>
7365 * README: Adding `devel@freetype.org' address for bug reports.
7367 2002-02-20 Werner Lemberg <wl@gnu.org>
7369 * builds/unix/install.mk (check): New dummy target.
7372 2002-02-19 Werner Lemberg <wl@gnu.org>
7374 * builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first.
7376 * src/cache/ftccache.c (ftc_cache_resize): Mark `error' as unused
7377 to avoid compiler warning.
7378 * src/cff/cffload.c (CFF_Get_String): Ditto.
7379 * src/cff/cffobjs.c (CFF_StrCopy): Ditto.
7380 * src/psaux/psobjs.c (PS_Table_Done): Ditto.
7381 * src/pcf/pcfread.c (pcf_seek_to_table_type): Ditto.
7382 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
7383 (pcf_get_bitmaps): The same for `sizebitmaps'.
7384 * src/psaux/t1decode.c (T1_Decode_Parse_Charstrings): The same for
7386 (t1operator_seac): Comment out more dead code.
7387 * src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER'
7389 * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
7390 load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER'
7393 2002-02-18 Werner Lemberg <wl@gnu.org>
7395 * src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused
7397 * src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead
7399 * src/autohint/ahmodule.c (ft_autohinter_reset): Ditto.
7400 * src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable
7402 * src/pshinter/pshglob.h (PSH_Blue_Align): Add PSH_BLUE_ALIGN_NONE.
7403 * src/pshinter/pshglob.c (psh_blues_snap_stem): Use it.
7404 * src/pshinter/pshalgo1.c (psh1_hint_table_optimize): Ditto.
7405 * src/pshinter/pshalgo2.c (psh2_hint_align): Ditto.
7406 * include/freetype/internal/ftobjs.h (UNUSED): Removed.
7408 2002-02-10 Roberto Alameda <ojancano@geekmail.de>
7410 Add support for ISOLatin1 PS encoding.
7412 * include/freetype/freetype.h (ft_encoding_latin_1): New tag
7414 * include/freetype/internal/t1types.h (T1_Encoding_Type): Add
7415 `t1_encoding_isolatin1'.
7416 * src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle
7417 ft_encoding_latin_1.
7418 * src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'.
7419 * src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'.
7421 2002-02-09 Werner Lemberg <wl@gnu.org>
7424 * docs/CHANGES: Minor fixes.
7427 * Version 2.0.8 released.
7428 =========================
7431 2002-02-08 David Turner <david@freetype.org>
7433 * docs/CHANGES: Updating for 2.0.8.
7435 * include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and
7436 removing `FT_Get_Next_Char' from the API (temporarily).
7438 * include/freetype/freetype.h: Adding comments to FT_Get_Next_Char;
7439 note that this function might temporarily be removed for the 2.0.8
7442 2002-02-07 David Turner <david@freetype.org>
7444 * src/pcf/pcfread.c (pcf_load_font): Removed immature support of
7445 the AVERAGE_WIDTH property.
7447 2002-02-06 David Turner <david@freetype.org>
7449 * src/sfnt/sfobjs.c (SFNT_Load_Face): Since many fonts embedded in
7450 PDF documents do not include 'cmap', 'post' and 'name' tables, the
7451 SFNT face loader has been changed to not immediately report an
7452 error if these are not present.
7454 Note that the specification _requires_ these tables, but Adobe
7455 seems to ignore it completely.
7457 * src/sfnt/ttcmap.c: Removing compiler warnings.
7459 * src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt.
7460 (pcf_parse_metric, pcf_parse_compressed_metric): Removed. Code
7462 (pcf_get_metric): Here.
7463 (pcfSeekToType): Renamed to ...
7464 (pcf_seek_to_table_type): This.
7466 (pcfHasType): Renamed to ...
7467 (pcf_has_table_type): This.
7469 (find_property): Renamed to ...
7470 (pcf_find_property): This.
7472 (pcf_get_bitmaps, pcf_get_encodings): Handle invalid PCF fonts
7473 better (delaying format checks out of FT_Access_Frame ..
7474 FT_Forget_Frame blocks to avoid leaving the stream in an incorrect
7475 state when encountering an invalid PCF font).
7477 * src/pcf/pcfdriver.c (PCF_Done_Face): Renamed to ...
7478 (PCF_Face_Done): This.
7479 (PCF_Init_Face): Renamed to ...
7480 (PCF_Face_Init): This.
7481 (PCF_Get_Char_Index): Renamed to ...
7482 (PCF_Char_Get_Index): This.
7483 (PCF_Get_Next_Char): Renamed to ...
7484 (PCF_Char_Get_Next): This.
7485 (pcf_driver_class): Updated.
7487 * src/pcf/pcf.h (PCF_Done_Face): Removed.
7489 2002-02-06 Detlef Würkner <TetiSoft@apg.lahn.de>
7491 * src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak.
7493 * src/pcf/pcfread.c (pcf_load_font): Now handles the `AVERAGE_WIDTH'
7494 property to return correct character pixel (width/height) pairs for
7497 2002-02-04 Keith Packard <keithp@keithp.com>
7499 Adding the function `FT_Get_Next_Char', doing the obvious thing
7500 w.r.t. the selected charmap.
7502 * include/freetype/freetype.h: Add prototype.
7503 * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar'
7505 (FT_Driver_Class): Use it.
7506 * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func'
7508 (PSNames_Interface): Use it.
7509 * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func'
7511 (TT_CMapTable): Use it.
7513 * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing
7515 * src/cff/cffdrivr.c (cff_get_next_char): New function.
7516 (cff_driver_class): Add it.
7517 * src/cid/cidriver.c (Cid_Get_Next_Char): New function.
7518 (t1cid_driver_class): Add it.
7519 * src/pcf/pcfdriver.c (PCF_Get_Next_Char): New function.
7520 (pcf_driver_class): Add it.
7521 * src/psnames/psmodule.c (PS_Next_Unicode): New function.
7522 (psnames_interface): Add it.
7523 * src/sfnt/ttcmap.c (code_to_next0, code_to_next2, code_to_next4,
7524 code_to_next6, code_to_next_8_12, code_to_next_10): New auxiliary
7526 (TT_CharMap_Load): Use them.
7527 * src/truetype/ttdriver.c (Get_Next_Char): New function.
7528 (tt_driver_class): Add it.
7529 * src/type1/t1driver.c (Get_Next_Char): New function.
7530 (t1_driver_class): Add it.
7531 * src/winfonts/winfnt.c (FNT_Get_Next_Char): New function.
7532 (winfnt_driver_class): Add it.
7534 * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for
7535 Unicode and Latin 1 encodings.
7537 2002-02-02 Keith Packard <keithp@keithp.com>
7539 * builds/unix/freetype-config.in: Add missing `fi'.
7542 * Version 2.0.7 released.
7543 =========================
7546 2002-02-01 David Turner <david@freetype.org>
7548 * include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7
7549 for the new release.
7551 2002-01-31 David Turner <david@freetype.org>
7553 * README, README.UNX, docs/CHANGES: Updating documentation for the
7556 2002-01-30 David Turner <david@freetype.org>
7558 * INSTALL: Moved to ...
7559 * docs/INSTALL: Here to avoid conflicts with the `install' script on
7560 Windows, where the filesystem doesn't preserve case.
7562 2002-01-29 David Turner <david@freetype.org>
7564 * configure: Fixed the script. It previously didn't accept more
7565 than one argument correctly. For example, when typing:
7567 ./configure --disable-shared --disable-nls
7569 the `--disable-nls' was incorrectly sent to the `make' program.
7571 2002-01-29 Werner Lemberg <wl@gnu.org>
7573 * README.UNX: Fix typo.
7574 * builds/unix/install.mk (uninstall): Fix library name for libtool.
7576 2002-01-28 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
7578 * src/pcf/pcfdriver.c (PCF_Done_Face): Fix incorrect destruction of
7579 the face object (face->toc.tables, face->root.family_name,
7580 face->root.available_size, face->charset_encoding,
7581 face->charset_registry are now freed). Thanks to Niels Moseley.
7583 2002-01-28 Roberto Alameda <ojancano@geekmail.de>
7585 * src/type1/t1load.c (parse_encoding): Set `loader->num_chars'.
7587 2002-01-28 Werner Lemberg <wl@gnu.org>
7589 * src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy
7590 of `base' string for decrypting to not modify the original data.
7591 Based on a patch by Jakub Bogusz <qboosh@pld.org.pl>.
7593 2002-01-27 Giuliano Pochini <pochini@shiny.it>
7595 * src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused
7596 bad rendering of thin lines (less than one pixel thick).
7598 2002-01-25 Werner Lemberg <wl@gnu.org>
7600 * src/cff/cffdrivr.c (cff_get_name_index): Make last patch work
7603 2002-01-25 Martin Zinser <zinser@decus.de>
7605 * src/cache/ftccache.c (ftc_node_done, ftc_node_destroy): Fix
7606 compilation warnings.
7607 * src/base/descrip.mms (OBJS): Add `ftmm.obj'.
7608 * src/cache/descrip.mms (ftcache.obj): Dependencies added.
7610 2002-01-25 WANG Yi <wangyi@founder.com.cn>
7612 * src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug.
7614 2002-01-21 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
7616 * docs/PATENTS: Typo fixed (thanks to Detlef `Hawkeye' Würkner) in
7617 the URL for the online resource.
7619 2002-01-18 Ian Brown <ian.brown@printsoft.de>
7621 * builds/win32/ftdebug.c: New file.
7622 * builds/win32/visualc/freetype.dsp: Updated.
7624 2002-01-18 Detlef Würkner <TetiSoft@apg.lahn.de>
7626 * builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9.
7627 * builds/amiga/README: Updated.
7629 2002-01-18 Ian Brown <ian.brown@printsoft.de>
7631 * builds/win32/visualc/freetype.dsp: Updated.
7633 2002-01-13 Werner Lemberg <wl@gnu.org>
7635 * builds/unix/freetype2.a4: The script was still buggy.
7636 * builds/unix/freetype-config.in: Make it really work for any install
7639 2002-01-10 Werner Lemberg <wl@gnu.org>
7641 * builds/unix/freetype2.a4: Fix some serious bugs.
7643 2002-01-09 David Turner <david@freetype.org>
7645 * builds/unix/configure.ac: Build top-level Jamfile.
7647 2002-01-09 Maxim Shemanarev <mcseemagg@yahoo.com>
7649 * src/smooth/ftgrays.c (gray_render_line): Small optimization to
7650 the smooth anti-aliased renderer that deals with vertical segments.
7651 This results in a 5-7% speedup in rendering speed.
7653 2002-01-08 David Turner <david@freetype.org>
7655 Added some wrapper scripts to make the installation more
7658 * configure, install: New files.
7660 * INSTALL, README.UNX: Updated installation documentation to use the
7661 new 'configure' and 'install' scripts.
7663 2002-01-07 David Turner <david@freetype.org>
7666 * Version 2.0.6 released.
7667 =========================
7670 * docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release.
7672 * src/tools/docmaker.py: Fixed HTML quoting in sources.
7673 (html_format): Replaced with ...
7674 (html_quote): New function.
7675 (html_quote0): New function.
7676 (DocCode::dump_html): Small improvement.
7677 (DocParagraph::dump, DocBlock::html): Use html_quote0 and html_quote.
7679 * include/freetype/config/ftoption.h: Setting default options for
7680 a release build (debugging off, bytecode interpreter off).
7682 * src/base/ftobjs.c, src/base/ftoutln.c, src/cache/ftccmap.c,
7683 src/cff/cffload.c, src/cff/cffobjs.c, src/pshinter/pshalgo2.c,
7684 src/sfnt/ttload.c, src/sfnt/ttsbit.c: Removing small compiler
7685 warnings (in pedantic compilation modes).
7687 2002-01-05 David Turner <david@freetype.org>
7689 * src/autohint/ahhint.c (ah_align_linked_edge): Modified computation
7690 of auto-hinted stem widths; this avoids color fringes in
7691 `ClearType-like' rendering.
7693 * src/truetype/ttgload.c (TT_Load_Glyph_Header,
7694 TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph):
7695 Modified the TrueType loader to make it more paranoid; this avoids
7696 nasty buffer overflows in the case of invalid glyph data (as
7697 encountered in the output of some buggy font converters).
7699 2002-01-04 David Turner <david@freetype.org>
7701 * README.UNX: Added special README file for Unix users.
7703 * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo.
7705 * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid
7706 of compiler warnings.
7708 * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning.
7710 2002-01-03 Werner Lemberg <wl@gnu.org>
7712 * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler
7715 2002-01-03 Keith Packard <keithp@keithp.com>
7717 * builds/unix/ftsystem.c (FT_New_Stream): Added a fix to ensure that
7718 all FreeType input streams are closed in child processes of a `fork'
7719 on Unix systems. This is important to avoid (potential) access
7722 2002-01-03 David Turner <david@freetype.org>
7724 * src/type1/t1objs.c (T1_Face_Init): Fixed a bug that crashed the
7725 library when dealing with certain weird fonts like `Stalingrad', in
7726 `sadn.pfb' (this font has no full font name entry).
7728 * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check):
7729 New function to check the consistency of outline data.
7731 * src/base/ftobjs.c (FT_Load_Glyph): Use `FT_Outline_Check' to
7732 ensure that loaded glyphs are valid. This allows certain fonts like
7733 `tt1095m_.ttf' to be loaded even though it appears they contain
7734 really funky glyphs.
7736 There still is a bug there, though.
7738 * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition.
7740 2001-12-30 David Turner <david@freetype.org>
7742 * src/autohint/ahhint.c (ah_hinter_load): Fix advance width
7743 computation of auto-hinted glyphs. This noticeably improves the
7744 spacing of letters in KDE and Gnome.
7746 2001-12-25 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
7748 * builds/dos/detect.mk: Correcting the order for Borland compilers:
7749 16-bit bcc was never selected, always overridden by 32-bit bcc32.
7751 2001-12-22 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
7753 * src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
7754 and fix incorrect computation of `available_sizes'.
7756 2001-12-22 David Turner <david@freetype.org>
7758 * src/autohint/ahhint.c (ah_hinter_load): Auto-hinted glyphs had an
7759 incorrect glyph advance in the case of mono-width fonts (like
7760 Courier, Andale Mono, and others).
7762 2001-12-22 Detlef Würkner <TetiSoft@apg.lahn.de>
7764 * builds/amiga/*: Adaptations to latest changes.
7765 Support added for MorphOS.
7767 2001-12-22 Werner Lemberg <wl@gnu.org>
7769 * src/pshinter/pshrec.c (FT_COMPONENT): Redefine to `trace_pshrec'.
7770 (ps_mask_table_merge, ps_hints_open, ps_hints_stem,
7771 ps_hints_t1stem3, ps_hints_t2mask, ps_hints_t2counter): Fix
7773 * src/pshinter/pshalgo1.c (FT_COMPONENT): Define as
7775 * src/pshinter/pshalgo2.c (FT_COMPONENT): Define as
7777 * include/freetype/internal/ftdebug.h (FT_Trace): Updated.
7779 * docs/modules.txt: New file.
7781 2001-12-21 David Turner <david@freetype.org>
7783 * src/pshinter/pshrec.c (ps_hints_t2mask, ps_hints_t2counter):
7784 Ignore invalid `hintmask' and `cntrmask' operators (instead of
7785 returning an error). Glyph 2028 of the CFF font `MSung-Light-Acro'
7786 couldn't be rendered otherwise (it seems its charstring is buggy,
7787 though this requires more analysis).
7788 (FT_COMPONENT): Define.
7790 * src/cff/cffgload.c (CFF_Parse_CharStrings), src/psaux/t1decode.c
7791 (T1_Decoder_Parse_Charstrings), src/pshinter/pshalgo2.c (*), Fixed a
7792 bug where the X and Y axis where inversed in the postscript hinter.
7793 This caused problem when displaying on non-square surfaces.
7795 * src/pshinter/pshalgo2.c: s/vertical/dimension/.
7797 * src/pshinter/pshglob.c (psh_globals_new): Replaced a floating
7798 point constant with a fixed-float equivalent. For some reasons not
7799 all compilers are capable of directly computing a floating pointer
7800 constant casted to FT_Fixed, and will link a math library instead.
7802 2001-12-20 Werner Lemberg <wl@gnu.org>
7804 * src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix
7806 * src/cache/ftccmap.c (ftc_cmap_family_init): Ditto.
7807 * src/cache/ftcmanag.c (ftc_family_table_alloc,
7808 ftc_family_table_free, FTC_Manager_Check): Ditto.
7809 * src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto.
7811 * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
7813 2001-12-20 David Turner <david@freetype.org>
7815 Added PostScript hinter support to the CFF and CID drivers.
7817 * include/freetype/internal/cfftypes.h (CFF_Font): New member
7819 * src/cff/cffload.c (CFF_Get_Standard_Encoding): New function.
7820 * src/cff/cffload.h: Updated.
7821 * src/cff/cffgload.c (CFF_Init_Builder): Renamed to ...
7822 (CFF_Builder_Init): This.
7823 Added new argument `hinting'.
7824 (CFF_Done_Builder): Renamed to ...
7825 (CFF_Builder_Done): This.
7826 (CFF_Init_Decoder): Added new argument `hinting'.
7827 (CFF_Parse_CharStrings): Implement vstem support.
7828 (CFF_Load_Glyph): Updated.
7829 Add hinting support.
7830 (cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding().
7831 (cff_argument_counts): Updated.
7832 * src/cff/cffgload.h: Updated.
7833 * src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
7834 (CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init,
7835 CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New
7837 (CFF_Init_Face): Renamed to ...
7838 (CFF_Face_Init): This.
7840 (CFF_Done_Face): Renamed to ...
7841 (CFF_Face_Done): This.
7842 (CFF_Init_Driver): Renamed to ...
7843 (CFF_Driver_Init): This.
7844 (CFF_Done_Driver): Renamed to ...
7845 (CFF_Driver_Done): This.
7846 * src/cff/cffobjs.h: Updated.
7847 * src/cff/cffdrivr.c (cff_driver_class): Updated.
7849 * include/freetype/internal/t1types.h (CID_FaceRec): New member
7851 * src/cid/cidgload.c (CID_Load_Glyph): Add hinter support.
7852 * src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
7853 (CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs,
7854 CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions.
7855 (CID_Done_Face): Renamed to ...
7856 (CID_Face_Done): This.
7857 (CID_Init_Face): Renamed to ...
7858 (CID_Face_Init): This.
7859 Add hinting support.
7860 (CID_Init_Driver): Renamed to ...
7861 (CID_Driver_Init): This.
7862 (CID_Done_Driver): Renamed to ...
7863 (CID_Driver_Done): This.
7864 * src/cid/cidobjs.h: Updated.
7865 * src/cidriver.c: Updated.
7867 * src/pshinter/pshrec.c (t2_hint_stems): Fixed.
7869 * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
7870 crashed the library on exit.
7872 * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
7873 transformation of hinted glyphs.
7875 * src/cid/cidload.c (cid_read_subrs): Fix error condition.
7877 * src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs
7878 routines were never released when CID faces were destroyed.
7880 * src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
7881 to move the definition of encoding tables back within `cffload.c'
7882 instead of making them part of a shared header (causing problems in
7883 `multi' builds). This reverts change 2001-08-08.
7885 * docs/CHANGES: Updated for 2.0.6 release.
7886 * docs/TODO: Added `stem3 and counter hints support' to the TODO
7887 list for the Postscript hinter.
7888 * docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
7890 2001-12-19 David Turner <david@freetype.org>
7892 * include/freetype/cache/ftcache.h: Added comments to indicate that
7893 some of the exported functions should only be used by applications
7894 that need to implement custom cache types.
7896 * src/truetype/ttgload.c (cur_to_org, org_to_cur): Fixed a nasty bug
7897 that prevented composites from loading correctly, due to missing
7898 parentheses around macro parameters.
7900 * src/sfnt/sfobjs.c (SFNT_Load_Face): Make the `post' and `name'
7901 tables optional to load PCL fonts properly.
7903 * src/truetype/ttgload.c (TT_Load_Glyph), src/base/ftobjs.c
7904 (FT_Load_Glyph), include/freetype/freetype.h (FT_LOAD_SBITS_ONLY):
7905 `Fixed' the bug that prevented embedded bitmaps to be loaded when
7906 the auto-hinter is used. This actually is a hack but will be enough
7907 until the internal re-design scheduled for FreeType 2.1.
7909 * src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline
7910 shifting bug in the monochrome renderer.
7912 * README: Updated version numbers to 2.0.6.
7914 2001-12-17 Werner Lemberg <wl@gnu.org>
7916 * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid
7919 2001-12-15 Werner Lemberg <wl@gnu.org>
7921 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove compiler warning.
7922 * include/freetype/ftcache.h (FTC_Node_Unref): Removed. It is
7923 already in ftcmanag.h.
7924 * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused variable
7926 * src/cache/ftcmanag.c (ftc_family_table_alloc,
7927 * ftc_family_table_free): Use FT_EXPORT_DEF.
7928 * include/freetype/cache/ftcmanag.h: Updated.
7929 * src/cache/ftccache.c (ftc_node_destroy): Use FT_EXPORT_DEF.
7930 * src/cache/ftccmap.c (ftc_cmap_node_init): Remove unused variable
7932 Remove compiler warning.
7933 (FTC_CMapCache_Lookup): Remove compiler warnings.
7934 (ftc_cmap_family_init): Ditto.
7935 (FTC_CMapCache_Lookup): Ditto.
7937 * builds/unix/configure.ac: Increase `version_info' to 8:0:2.
7938 * builds/unix/configure: Regenerated.
7940 2001-12-14 Werner Lemberg <wl@gnu.org>
7942 * builds/mac/README: Updated.
7944 2001-12-14 Scott Long <scott@swiftview.com>
7946 * src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when
7947 dealing with invalid fonts (i.e. glyph size < 10 bytes).
7949 2001-12-14 Sam Latinga <slouken@devolution.com>
7951 * builds/mac/freetype.make: A new Makefile to build with MPW on
7954 2001-12-14 David Turner <david@freetype.org>
7956 * src/truetype/ttgload.c (TT_Load_Glyph), src/type1/t1gload.c
7957 (T1_Load_Glyph), src/cid/cidgload.c (CID_Load_Glyph),
7958 src/cff/cffgload.c (CFF_Load_Glyph): Fixed a serious bug common to
7959 all font drivers (the advance width was never hinted when it
7962 * include/freetype/freetype.h (FREETYPE_PATCH): New macro.
7963 * src/base/ftdbgmem.c (debug_mem_dummy) [!FT_DEBUG_MEMORY]: Don't
7964 use `extern' keyword.
7966 2001-12-12 David Turner <david@freetype.org>
7968 * src/pshinter/pshglob.c (psh_blues_scale_zones, psh_blues_snap_stem
7969 psh_globals_new): Adding correct BlueScale/BlueShift support, plus
7970 family blues processing.
7971 * src/pshinter/pshglob.h (PSH_BluesRec): Updated.
7973 Started adding support for the Postscript hinter in the CFF module.
7975 * src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
7976 (CFF_Parse_CharStrings): Implement it.
7977 * src/cff/cffgload.h: Updated.
7979 2001-12-12 Werner Lemberg <wl@gnu.org>
7981 * builds/unix/freetype2.m4: Some portability fixes.
7983 2001-12-11 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
7985 * src/base/descrip.mms (OBJS): Add ftdebug.obj.
7987 2001-12-11 Werner Lemberg <wl@gnu.org>
7989 * src/sfnt/ttload.c (TT_Load_Generic_Header): Typos.
7991 2001-12-11 David Turner <david@freetype.org>
7993 * builds/unix/freetype-config.in: Modified the script to prevent
7994 passing `-L/usr/lib' to gcc.
7996 * docs/FTL.TXT: Simple fix (change `LICENSE.TXT' to `FTL.TXT').
7998 * builds/unix/freetype2.m4: New file for checking configure paths.
7999 We need to install it in $(prefix)/share/aclocal/freetype2.m4 but I
8000 didn't modify builds/unix/install.mk yet.
8002 * INSTALL: Updated the instructions to build shared libraries with
8003 Jam. They were simply wrong.
8005 * src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused
8006 slightly improper results for `FT_Cos' and `FT_Sin' (example:
8009 2001-12-11 Detlef Würkner <TetiSoft@apg.lahn.de>
8011 * include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE):
8012 Fixed incorrect argument types.
8014 2001-12-10 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
8016 * src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts
8017 by setting the `face->metrics.max_advance' correctly.
8019 2001-12-07 David Turner <david@freetype.org>
8021 * include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new
8023 * src/cache/ftcache.c: Updated.
8025 * src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/.
8027 2001-12-06 Leonard Rosenthol <leonardr@lazerware.com>
8029 Added support for reading .dfont files on Mac OS X. Also added a
8030 new routine which looks up a given font by name in the Mac OS and
8031 returns the disk file where it resides.
8033 * src/base/ftmac.c: Include <Files.h> and <TextUtils.h>.
8034 (is_dfont): New auxiliary function.
8035 (FT_New_Face_From_dfont): New function.
8036 (FT_GetFile_From_Mac_Name): New exported function.
8037 (FT_New_Face): Updated.
8038 * include/freetype/ftmac.h: Updated.
8040 2001-12-06 David Turner <david@freetype.org>
8042 * src/cache/Jamfile, src/cache/rules.mk: Updated.
8044 2001-12-06 Werner Lemberg <wl@gnu.org>
8046 * INSTALL: Small update.
8048 2001-12-05 David Turner <david@freetype.org>
8050 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for
8052 Comment out use of `origin'.
8054 * src/smooth/ftsmooth.c (ft_smooth_render): Fixed a nasty hidden bug
8055 where outline shifting wasn't correctly undone after bitmap
8056 rasterization. This created problems with certain glyphs (like '"'
8057 of certain fonts) and the cache system.
8059 * src/pshinter/pshalgo1.c (psh1_hint_table_init): Fix typo.
8060 * src/pshinter/pshalgo2.c (psh2_hint_table_init): Fix typo.
8061 (ps2_hints_apply): Small fix.
8063 2001-12-05 David Turner <david@freetype.org>
8065 * src/pshinter/pshalgo2.c (psh2_hint_table_init),
8066 src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler
8069 * include/freetype/ftcache.h, include/freetype/cache/*, src/cache/*:
8070 Yet another massive rewrite of the caching sub-system in order to
8071 both increase performance and allow simpler cache sub-classing. As
8072 an example, the code for the image and sbit caches is now much
8075 I still need to update the documentation in
8076 www/freetype2/docs/cache.html to reflect the new design though.
8078 * include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New
8080 (FT_CACHE_INTERNAL_CACHE_H): Updated.
8082 2001-12-05 David Krause <freetype@davidkrause.com>
8084 * docs/license.txt: s/X Windows/X Window System/.
8086 2001-12-04 Werner Lemberg <wl@gnu.org>
8088 * src/raster/ftraster.c: Fix definition condition of MEM_Set().
8089 * src/smooth/ftgrays.c (M_Y): Change value to 192.
8090 * src/base/ftdbgmem.c (ft_mem_table_destroy): Fix printf() parameter.
8091 Remove unused variable.
8092 * src/cache/ftcimage.c (ftc_image_node_init,
8093 ftc_image_node_compare): Remove unused variables.
8094 * src/cache/ftcsbits.c (ftc_sbit_node_weight): Remove unused
8096 * src/raster/ftraster.c (MEM_Set): Move definition down to avoid
8098 * src/autohint/ahhint.c (ah_hinter_hint_edges): Use UNUSED() to
8099 avoid compiler warnings.
8100 * src/pcf/pcfread.c (tableNames): Use `const'.
8101 (pcf_read_TOC): Change counter name to avoid compiler warning.
8103 * src/pshinter/pshrec.c (ps_hints_close): Remove redundant
8105 * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables
8107 * src/pshinter/pshalgo2.c (psh2_hint_table_activate_mask): Ditto.
8108 * src/type1/t1objs.h: Remove double declarations of `T1_Size_Init()'
8109 and `T1_Size_Done()'.
8111 2001-11-20 Antoine Leca <antoineleca@multimania.com>
8113 * include/freetype/ttnameid.h: Added some new Microsoft language
8114 codes and LCIDs as found in MSDN (Passport SDK). Also added
8115 comments about the meaning of bit 57 of the `OS/2' table
8116 (TT_UCR_SURROGATES) which (with OpenType v.1.3) now means `there is
8117 a character beyond 0xFFFF in this font'. Thanks to Detlef Würkner
8118 <TetiSoft@apg.lahn.de> for noticing this.
8120 2001-11-20 David Turner <david@freetype.org>
8122 * src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting
8123 routine that created nasty alignment artefacts.
8125 * src/pshinter/pshrec.c, tests/gview.c: Debugging updates.
8127 * src/smooth/ftgrays.c: De-activated experimental gamma support.
8128 Apparently, `optimal' gamma tables depend on the monitor type,
8129 resolution and general karma, so it's better to compute them outside
8130 of the rasterizer itself.
8131 (gray_convert_glyph): Use `volatile' keyword.
8133 2001-10-29 David Turner <david@freetype.org>
8135 Adding experimental `gamma' support. This produces smoother glyphs
8136 at small sizes for very little cost.
8138 * src/smooth/ftgrays.c (grays_init_gamma): New function.
8139 (gray_raster_new): Use it.
8141 Various fixes to the auto-hinter. They merely improve the output of
8142 sans-serif fonts. Note that there are still problems with serifed
8143 fonts and composites (accented characters).
8145 * src/autohint/ahglyph.c (ah_outline_load,
8146 ah_outline_link_segments): Implement it.
8148 (ah_outline_save, ah_outline_compute_segments): Fix typos.
8149 * src/autohint/ahhint.c (ah_align_serif_edge): New argument
8150 `vertical'. Implement improvement.
8151 (ah_hint_edges_3, ah_hinter_hint_edges): Implement it.
8153 (ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix
8155 (ah_hinter_load): Set `ah_debug_hinter' if DEBUG_HINTER is defined.
8156 * src/autohint/ahmodule.c: Implement support for DEBUG_HINTER macro.
8157 * src/autohint/ahtypes.h: Ditto.
8158 (AH_Hinter): Remove `disable_horz_edges' and `disable_vert_edges'
8159 (making them global as `ah_debug_disable_horz' and
8160 `ah_debug_disable_vert').
8163 * tests/gview.c: Updated the debugging glyph viewer to show the
8164 hints generated by the `autohint' module.
8166 2001-10-27 David Turner <david@freetype.org>
8168 * src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that
8169 considerably lowered the performance of the abstract chunk cache.
8171 2001-10-26 David Turner <david@freetype.org>
8173 * include/freetype/ftcache.h, include/freetype/cache/*.h,
8174 src/cache/*.c: Major re-design of the cache sub-system to provide
8175 better performance as well as an `Acquire'/`Release' API. Seems to
8176 work well here, but probably needs a bit more testing.
8178 2001-10-26 Leonard Rosenthol <leonardr@lazerware.com>
8180 * builds/mac/README: Updated to reflect my taking over the project
8181 and that is now being actively maintained.
8183 * src/base/ftmac.c (parse_fond): Applied patches from Paul Miller
8184 <paulm@profoundeffects.com> to support loading a face other than the
8185 first from a FOND resource.
8186 (FT_New_Face_From_FOND): Updated.
8188 2001-10-25 Leonard Rosenthol <leonardr@lazerware.com>
8190 * builds/mac/ftlib.prj: Update of CodeWarrior project file for Mac
8191 OS for latest version (7) of CWPro and for recent changes to the FT
8194 2001-10-25 David Turner <david@freetype.org>
8196 * include/freetype/config/ftoption.h: Updated comments to explain
8197 precisely how to use project-specific macro definitions without
8198 modifying this file manually.
8200 (FT_CONFIG_FORCE_INT64): Define.
8202 (FT_DEBUG_MEMORY): New macro.
8204 2001-10-24 Tom Kacvinsky <tkacvins@freetype.org>
8206 * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'.
8208 2001-10-23 David Turner <david@freetype.org>
8210 * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
8211 Improvements to the memory debugger to report more information in
8212 case of errors. Also, some allocations that occurred through REALLOC
8213 couldn't be previously catched correctly.
8215 * src/autohint/ahglyph.c (ah_outline_compute_segments,
8216 ah_outline_compute_edges), src/raster/ftraster.c (ft_black_new),
8217 src/smooth/ftgrays.c (gray_render_span, gray_raster_new): Replaced
8218 liberal uses of memset() by the MEM_Set() macro.
8220 2001-10-23 David Turner <david@freetype.org>
8222 * src/raster/ftraster.c (Update): Removed to be inlined in ...
8225 2001-10-22 David Turner <david@freetype.org>
8227 * builds/unix/ftsystem.c (FT_New_Memory, FT_Done_Memory),
8228 builds/vms/ftsystem.c (FT_New_Memory, FT_Done_Memory),
8229 builds/amiga/ftsystem.c (FT_New_Memory, FT_Done_Memory),
8230 src/base/ftdbgmem.c: Updated the memory debugger and
8231 platform-specific implementations of `ftsystem' in order to be able
8232 to debug memory allocations on Unix, VMS and Amiga too!
8234 * src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed
8235 some bogus warnings.
8237 * include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
8238 Modified the debugging memory manager to report the location (source
8239 file name + line number) where leaked memory blocks are allocated in
8242 * src/base/ftdbgmem.c: New debugging memory manager. You must
8243 define the FT_DEBUG_MEMORY macro in `ftoption.h' to enable it. It
8244 will record every memory block allocated and report simple errors
8245 like memory leaks and double deletes.
8247 * src/base/Jamfile: Include ftdbgmem.
8248 * src/base/rules.mk: Ditto.
8249 * src/base/ftbase.c: Include ftdbgmem.c.
8251 * include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY
8254 * src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory): Modified the
8255 base component to use the debugging memory manager when the macro
8256 FT_DEBUG_MEMORY is defined.
8258 2001-10-21 Tom Kacvinsky <tkacvins@freetype.org>
8260 * src/cff/cffload.c (CFF_Done_Font): Free subfonts array only if
8261 we are working with a CID keyed CFF font. Otherwise, a variable
8262 that was never allocated memory might freed. This is a correction
8263 to the previous patch for freeing subfonts.
8265 2001-10-21 Tom Kacvinsky <tkacvins@freetype.org>
8267 * src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to
8268 avoid a memory leak.
8270 2001-10-21 David Turner <david@freetype.org>
8272 * src/pshinter/pshalgo2.c, src/pshinter/pshalgo1.c,
8273 src/pshinter/pshglob.c: Removing compiler warnings in pedantic modes
8274 (in multi-object compilation mode, mainly).
8276 2001-10-20 Tom Kacvinsky <tkacvins@freetype.org>
8278 * src/type1/t1load.c (parse_encoding): Add a test to make sure
8279 that custom encodings (i.e., neither StandardEncoding nor
8280 ExpertEncoding) are not loaded twice when the Type 1 font is
8283 * src/type1/t1load.c (parse_font_name, parse_subrs): Added a test
8284 for when loading synthetic fonts to make sure that the font name
8285 and subrotuines are not loaded twice. This is to remove a memory
8286 leak that occurred because the original memory blocks for these
8287 objects were not deallocated when the objects were parsed the
8290 2001-10-19 David Turner <david@freetype.org>
8292 * src/smooth/ftgrays.c, src/pshinter/pshglob.h,
8293 src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of
8296 * src/pshinter/module.mk, src/pshinter/rules.mk: Adding control
8297 files to build the PostScript hinter with the `old' build system.
8299 2001-10-19 Jacob Jansen <joukj@hrem.stm.tudelft.nl>
8301 * descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build
8304 2001-10-18 David Turner <david@freetype.org>
8306 * src/psnames/pstables.h, src/tools/glnames.py: Rewrote the
8307 `glnames.py' script used to generate the `pstables.h' header file.
8308 The old one contained a serious bug that made FreeType return
8309 incorrect glyph names for certain glyphs.
8311 * src/truetype/ttdriver.c (Set_Char_Sizes): Changing computation of
8312 pixel size from character size to use rounding. This is an
8313 experiment to see whether this gives values similar to Windows for
8314 scaled ascent/descent/etc.
8316 * src/base/ftcalc.c (FT_Div64by32): Changed the implementation
8317 slightly since the original code was mis-compiled on Mac machines
8318 using the MPW C compiler.
8320 * src/base/ftobjs.c (FT_Realloc): When a memory block was grown
8321 through FT_Realloc(), the new bytes were not set to 0, which created
8322 some strange bugs in the PostScript hinter.
8323 (destroy_face): Don't deallocate unconditionally.
8325 * src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph):
8326 Adding support to new PostScript hinter.
8328 * include/freetype/internal/psglobal.h,
8329 include/freetype/internal/pshints.h,
8330 include/freetype/config/ftmodule.h, src/pshinter/Jamfile,
8331 src/pshinter/pshalgo.h, src/pshinter/pshalgo1.h,
8332 src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.h,
8333 src/pshinter/pshalgo2.c, src/pshinter/pshglob.h,
8334 src/pshinter/pshglob.c, src/pshinter/pshinter.c,
8335 src/pshinter/pshmod.c, src/pshinter/pshmod.h, src/pshinter/pshrec.c,
8336 src/pshinter/pshrec.h: Adding new PostScript hinter module.
8338 * include/freetype/internal/ftobjs.h,
8339 include/freetype/internal/internal.h,
8340 include/freetype/internal/psaux.h,
8341 include/freetype/internal/t1types.h, src/psaux/psobjs.c,
8342 src/psaux/psobjs.h, src/psaux/t1decode.h, src/psaux/t1decode.c,
8343 src/type1/t1driver.c, src/type1/t1gload.c, src/type1/t1objs.c,
8344 src/type1/t1objs.h: Updates to use the new PostScript hinter.
8346 * tests/Jamfile, tests/gview.c: Adding a new glyph hinting
8347 viewer/debugger to the source tree. Note that you will _not_ be
8348 able to compile it since it depends on an unavailable graphics
8349 library named `Nirvana' to render vector images.
8351 2001-10-17 David Turner <david@freetype.org>
8354 * Version 2.0.5 released.
8355 =========================
8358 * include/freetype/freetype.h, include/internal/ftobjs.h,
8359 src/base/ftobjs.c, src/type1/t1driver.c: Adding a new function named
8360 'FT_Get_Postscript_Name' to retrieve the PostScript name of a given
8361 font. Should work with all formats except pure CFF/CEF fonts (this
8362 will be added soon).
8364 * src/cid/cidriver (cid_get_postscript_name): New function.
8365 (CID_Get_Interface): Handle `postscript_name' interface.
8367 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function.
8368 (SFNT_Get_Interface): Handle `postscript_name' interface.
8370 * src/type1/t1driver.c (t1_get_ps_name): New function.
8371 (Get_Interface): Handle `postscript_name' interface.
8373 * README, docs/CHANGES: Updated for 2.0.5 release.
8375 2001-10-08 David Turner <david@freetype.org>
8377 Fixed a bug in `glnames.py' that prevented it from generating
8378 correct glyph names tables. This resulted in the unavailability of
8379 certain glyphs like `Cacute', `cacute' and `lslash' in Unicode
8380 charmaps, even if these were present in the font (causing problems
8383 * src/tools/glnames.py (mac_standard_names): Fixed.
8384 (t1_standard_strings): Some fixes and renamed to ...
8385 (sid_standard_names): This.
8386 (t1_expert_encoding): Fixed.
8387 (the_adobe_glyph_list): Renamed to ...
8388 (adobe_glyph_names): This.
8389 (the_adobe_glyphs): Renamed to ...
8390 (adobe_glyph_values): This.
8391 (dump_mac_indices, dump_glyph_list, dump_unicode_values, main):
8393 * src/psnames/pstables.h: Regenerated.
8394 * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset.
8396 Use `sid_standard_table' and `ps_names_to_unicode' instead of
8397 `t1_standard_glyphs' and `names_to_unicode'.
8398 (PS_Macintosh_Name): Use `ps_glyph_names' instead of
8399 `standard_glyph_names'.
8400 (PS_Standard_Strings): Use `sid_standard_names' instead of
8401 `t1_standard_glyphs'.
8403 * doc/BUGS, doc/TODO: New documents.
8405 2001-10-07 Richard Barber <rich@solutionuk.com>
8407 * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented
8408 correct LRU behaviour.
8410 2001-10-07 David Turner <david@freetype.org>
8412 setjmp() and longjmp() are now used for rollback (i.e. when memory
8413 pool overflow occurs).
8415 Function names are now all uniformly prefixed with `gray_'.
8417 * src/smooth/ftgrays.c: Include <setjmp.h>.
8418 (ErrRaster_MemoryOverflow): New macro.
8419 (TArea): New type to store area values in each cell (using `int' was
8420 too small on 16-bit systems). <limits.h> is included to properly
8421 get the needed data type.
8422 (TCell, TRaster): Use it.
8423 (TRaster): New element `jump_buffer'.
8424 (gray_compute_cbox): Use `RAS_ARG' as the only parameter and get
8426 (gray_record_cell): Use longjmp().
8427 (gray_set_cell): Use gray_record_cell() for error handling.
8428 (gray_render_line, gray_render_conic, gray_render_cubic): Simplify.
8429 (gray_convert_glyph_inner): New function, using setjmp().
8430 (gray_convert_glyph): Use it.
8432 2001-10-07 David Turner <david@freetype.org>
8434 Provide a public API to manage multiple size objects for a given
8435 FT_Face in the new header file `ftsizes.h'.
8437 * include/freetype/ftsizes.h: New header file,
8438 * include/freetype/internal/ftobjs.h: Use it.
8439 Remove declarations of FT_New_Size and FT_Done_Size (moved to
8441 * include/freetype/config/ftheader.h (FT_SIZES_H): New macro.
8442 * src/base/ftobjs.c (FT_Activate_Size): New function.
8443 * src/cache/ftcmanag.c: Include ftsizes.h.
8444 (ftc_manager_init_size, ftc_manager_flush_size): Use
8447 2001-09-20 Detlef Würkner <TetiSoft@apg.lahn.de>
8449 * builds/amiga/*: Added port to Amiga with the SAS/C compiler.
8451 2001-09-15 Detlef Würkner <TetiSoft@apg.lahn.de>
8453 * src/type1/t1afm.c (T1_Done_AFM): Free `afm'.
8455 2001-09-10 Yao Zhang <yzhang@sharemedia.com>
8457 * src/sfnt/ttcmap.c (code_to_index2): Handle code values with
8458 hi-byte == 0 correctly.
8460 2001-09-10 Werner Lemberg <wl@gnu.org>
8462 * builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo.
8464 2001-08-30 Martin Muskens <mmuskens@aurelon.com>
8466 * src/type1/t1load.c (parse_font_matrix): A new way to compute the
8467 units per EM with greater accuracy (important for embedded T1 fonts
8468 in PDF documents that were automatically generated from TrueType
8471 * src/type1/t1load.c (is_alpha): Now supports `+' in font names;
8472 this is used in embedded fonts.
8474 * src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that
8475 generated a dangling pointer reference.
8477 2001-08-30 Anthony Feik <afeick@hotmail.com>
8479 * src/type1/t1afm.c (T1_Read_Afm): Now correctly sets the flag
8480 FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files.
8482 2001-08-25 Werner Lemberg <wl@gnu.org>
8484 * src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of
8487 * include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]:
8488 Undefine FT_ERR_BASE before defining again.
8490 2001-08-22 Werner Lemberg <wl@gnu.org>
8492 * src/truetype/ttinterp.h: Fix prototype of TT_Move_Func.
8494 2001-08-21 Werner Lemberg <wl@gnu.org>
8496 * builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'.
8498 2001-08-21 David Turner <david@freetype.org>
8500 * include/freetype/config/ftoption.h: Changed the default setting
8501 for FT_CONFIG_OPTION_USE_MODULE_ERRORS to undefined, since it breaks
8502 source compatibility in a few cases. Updated the comment to explain
8505 2001-08-17 Martin Muskens <mmuskens@aurelon.com>
8507 * src/base/ftcalc.c (FT_MulDiv): Fixed serious typo.
8509 2001-08-12 Werner Lemberg <wl@gnu.org>
8511 Updating to OpenType 1.3.
8513 * include/freetype/internal/tttypes.h (TT_CMap0, TT_CMap2, TT_CMap4,
8514 TT_CMap6): Adding field `language'.
8515 (TT_CMapTable): Removing field `language'.
8516 Type of `length' field changed to FT_ULong.
8517 Adding fields for cmaps format 8, 10, and 12.
8518 (TT_CMapGroup): New auxiliary structure.
8519 (TT_CMap8_12, TT_CMap10): New structures.
8520 * include/freetype/tttables.h (TT_HoriHeader, TT_VertHeader):
8521 Removed last element of `Reserved' array.
8522 * include/freetype/ttnameid.h (TT_PLATFORM_CUSTOM, TT_MS_ID_UCS_4,
8523 TT_NAME_ID_CID_FINDFONT_NAME): New macros.
8525 * src/sfnt/ttcmap.c (TT_CharMap_Load): Updated loading of `language'
8526 field to the new structures.
8527 Fixed freeing of arrays in case of unsuccessful loads.
8528 Added support for loading format 8, 10, and 12 cmaps.
8529 (TT_CharMap_Free): Added support for freeing format 8, 10, and 12
8531 (code_to_index4): Small improvement.
8532 (code_to_index6): Ditto.
8533 (code_to_index8_12, code_to_index10): New functions.
8534 * src/sfnt/ttload.c (TT_Load_Metrics_Header): Updated to new
8536 (TT_Load_CMap): Ditto.
8538 * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS
8541 2001-08-11 Werner Lemberg <wl@gnu.org>
8543 * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning.
8545 2001-08-09 Tom Kacvinsky <tkacvins@freetype.org>
8547 * src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to
8548 cff_get_glyph_name for consistency.
8550 (cff_get_glyph_index): Minor documentation change.
8552 * src/type1/t1driver.c (t1_get_name_index): New function used in
8553 Get_Interface as the function returned when the `name_index'
8554 function is requested.
8556 (get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency.
8558 2001-08-08 Tom Kacvinsky <tkacvins@freetype.org>
8560 * src/cff/cffload.c: Removed definitions of cff_isoadobe_charset,
8561 cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
8562 and cff_expert_encoding arrays to cffload.h.
8564 * src/cff/cffload.h: Added definitions of cff_isoadobe_charset,
8565 cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
8566 and cff_expert_encoding arrays.
8568 * src/cff/cffdrivr.c (cff_get_name_index): New function, returned
8569 when `cff_get_interface' is called with a request for the
8570 `name_index' function.
8572 (cff_get_interface): Modified so that it returns the function
8573 `cff_get_name_index' when the `name_index' function is requested.
8575 * src/base/ftobjs.c (FT_Get_Name_Index): New function, used to
8576 return a glyph index for a given glyph name only if the driver
8577 supports glyph names.
8579 * include/freetype/internal/ftobjs.h (FT_Name_Index_Requester):
8580 New function pointer type defintion used in the function
8583 * include/freetype/freetype.h (FT_Get_Name_Index): Added
8584 documentation and prototype.
8586 2001-07-26 Werner Lemberg <wl@gnu.org>
8588 * builds/cygwin/*: Removed. Use the unix stuff instead.
8590 2001-07-26 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
8592 * builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated
8595 2001-07-17 Werner Lemberg <wl@gnu.org>
8597 * include/freetype/internal/psaux.h (PS_Table): Use FT_Offset for
8598 `cursor' and `capacity'.
8599 * src/psaux/psobjc.c (reallocate_t1_table): Use FT_Long for second
8601 (PS_Table_Add): Use FT_Offset for `new_size'.
8603 Add support for version 0.5 maxp tables.
8605 * src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it.
8606 (TT_Load_OS2): Initialize some values.
8608 2001-07-13 Werner Lemberg <wl@gnu.org>
8610 * src/base/ftsynth.c: Include ftcalc.h unconditionally.
8612 2001-07-07 David Turner <david@freetype.org>
8614 * src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread:
8615 Removed pedantic compiler warnings when the bytecode interpreter is
8618 2001-07-03 Werner Lemberg <wl@gnu.org>
8620 * src/autohint/ahhint.c (ah_hinter_align_weak_points): Remove
8621 unused variable `edges'.
8622 (ah_hinter_load): Remove unused variables `old_width' and
8624 * src/cid/cidload.c (cid_decrypt): Use `U' for constant (again).
8625 * src/psaux/psobjs.c (T1_Decrypt): Ditto.
8626 * src/type1/t1parse.c (T1_Get_Private_Dict): Ditto.
8628 2001-06-28 David Turner <david@freetype.org>
8630 * include/internal/ftstream.h: Modified the definitions
8631 of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness.
8633 2001-06-26 Werner Lemberg <wl@gnu.org>
8635 * src/cid/cidload.c, src/cid/cidload.h (cid_decrypt): Use FT_Offset
8636 instead of FT_Int as type for `length' parameter.
8637 * include/freetype/internal/psaux.h (PSAux_Interface): Updated.
8639 2001-06-27 Wolfgang Domröse <porthos.domroese@harz.de>
8641 * src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset
8642 instead of FT_Int as type for `length' parameter.
8645 * Version 2.0.4 released.
8646 =========================
8649 2001-06-27 David Turner <david@freetype.org>
8651 * builds/unix/ftconfig.in: Changed the definition of the
8652 FT_CALLBACK_DEF macro.
8654 * include/freetype/ftconfig.h, src/*/*.c: Changed the definition and
8655 use of the FT_CALLBACK_DEF macro in order to support 16-bit
8658 * builds/unix/ftconfig.in: Changed the definition of the
8659 FT_CALLBACK_DEF macro.
8661 * src/sfnt/ttload.c (TT_Load_Kern): The kern table loader now ensures
8662 that the kerning table is correctly sorted (some problem fonts don't
8663 have a correct kern table).
8665 2001-06-26 Wolfgang Domröse <porthos.domroese@harz.de>
8667 * include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo.
8669 2001-06-24 David Turner <david@freetype.org>
8671 * src/base/ftcalc.c (ft_div64by32): Fixed the source to work
8672 correctly on 16-bit systems.
8674 2001-06-23 Anthony Fok <fok@debian.org>
8676 * debian/*: Added Debian package build directory for 2.0.4.
8678 2001-06-22 David Turner <david@freetype.org>
8680 * docs/PATENTS: Added patents disclaimer. This one was missing!
8682 * docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release.
8684 2001-06-20 Werner Lemberg <wl@gnu.org>
8686 * include/freetype/config/ftconfig.h: Add two more `L's to
8688 Add missing semicolons.
8690 * builds/toplevel.mk: Do similar change as for
8691 builds/unix/detect.mk.
8693 * include/freetype/freetype.h (FT_ENC_TAG): New version to make it
8695 * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto.
8697 * src/pcf/pcfread.c (pcf_get_encodings): Add cast.
8699 2001-06-19 David Turner <david@freetype.org>
8701 * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
8702 Updated the Visual C++ project (for the 2.0.4 release).
8704 * builds/unix/detect.mk: Added rule for AIX detection (which uses
8705 /usr/sbin/init instead of /sbin/init).
8707 * include/freetype/fterrors.h, src/*/*err*.h: Updated some of the
8708 error macros to simplify handling of new error scheme.
8710 2001-06-19 Werner Lemberg <wl@gnu.org>
8712 * include/freetype/fttypes.h (FT_ERROR_MODULE): New macro.
8714 2001-06-19 David Turner <david@freetype.org>
8716 Removing _lots_ of compiler warnings when the most pedantic warning
8717 levels of Visual C++ and Borland C++ are used. Too many files to be
8718 listed here, but FT2 now compiles without warnings with VC++ and the
8719 `/W4' warning level (lint-style).
8721 * include/freetype/freetype.h (FT_New_Memory_Face): Updated
8723 * include/freetype/fttypes.h (FT_BOOL): New macro.
8724 * include/freetype/internal/ftdebug.h: Add #pragma for Visual C++
8725 to suppress warning.
8726 * include/freetype/internal/ftstream.h (FT_GET_SHORT_{BE,LE},
8727 FT_GET_OFF3_{BE,LE}, FT_GET_LONG_{BE,LE}): New macros.
8729 * src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H.
8730 (FT_New_Memory_Face): Add `const' to function declaration.
8732 2001-06-18 Werner Lemberg <wl@gnu.org>
8734 Minor cleanups to remove compiler warnings.
8736 * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use
8738 * include/freetype/config/ftoption.h (FT_RENDER_POOL_SIZE): Ditto.
8739 * src/base/ftcalc.c (FT_MulDiv): Use `L' for constant.
8740 * src/base/ftglyph.c (FT_Glyph_Get_CBox): Remove `error' variable.
8741 * src/base/fttrigon.c (ft_trig_arctan_table): Use `L' for constants.
8742 * src/base/ftobjs.c (FT_Done_Size): Fix return value.
8743 (FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Get_Kerning): Remove
8744 unused `memory' variable.
8745 * src/autohint/ahglyph.c (ah_get_orientation): Use `L' for constant.
8746 * src/autohint/ahhint.c (ah_hint_edges_3,
8747 ah_hinter_align_edge_points): Remove unused `before' and `after'
8749 (ah_hinter_align_weak_points): Remove unused `edge_limit' variable.
8750 (ah_hinter_load): Remove unused `new_advance', `start_contour',
8751 and `metrics' variables.
8752 * src/cff/cffload.c (CFF_Load_Encoding): Remove dead code to avoid
8754 * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset'
8756 * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused
8758 (cff_compute_bias): Use `U' for constant.
8759 * src/cid/cidload.c (cid_decrypt): Ditto.
8760 * src/psaux/psobjs.c (T1_Decrypt): Ditto.
8761 * src/psaux/t1decode.c (T1_Decoder_Parse_CharStrings): Ditto.
8762 * src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version'
8764 * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top'
8766 * src/truetype/ttgload.c (load_truetype_glyph): Remove unused
8767 `num_contours' and `ins_offset' variables.
8768 (compute_glyph_metrics): Remove unused `Top' and `x_scale'
8770 (TT_Load_Glyph): Remove unused `memory' variable.
8771 * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants.
8773 2001-06-18 Werner Lemberg <wl@gnu.org>
8775 Make the new error scheme source compatible with older FT versions
8776 by introducing another layer.
8778 * include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New
8780 (FT_NOERRORDEF): Removed.
8781 * include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_.
8783 2001-06-16 Werner Lemberg <wl@gnu.org>
8785 * include/freetype/freetype.h (FT_ENC_TAG): New macro.
8786 (FT_Encoding_): Use it.
8787 * include/freetype/ftimage.h (FT_IMAGE_TAG): Define it
8790 2001-06-14 David Turner <david@freetype.org>
8792 Modified the TrueType interpreter to let it use the new
8793 trigonometric functions provided in `fttrigon.h'. This gets rid of
8794 some old 64-bit computation routines, as well as many warnings when
8795 compiling the library with the `long long' 64-bit integer type.
8797 * include/freetype/config/ftoption.h: Undefine
8798 FT_CONFIG_OPTION_OLD_CALCS.
8799 * include/freetype/internal/ftcalc.h: Rearrange use of
8800 FT_CONFIG_OPTION_OLD_CALCS.
8801 * src/base/ftcalc.c: Add declaration of FT_Int64 if
8802 FT_CONFIG_OPTION_OLD_CALCS isn't defined.
8803 * src/truetype/ttinterp.c: Use FT_TRIGONOMETRY_H.
8804 (Norm): Add a special version if FT_CONFIG_OPTION_OLD_CALCS isn't
8806 (Current_Ratio, Normalize): Simplify code.
8808 2001-06-11 Mike Owens <MOwens@amtdatasouth.com>
8810 * src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove
8813 2001-06-08 Werner Lemberg <wl@gnu.org>
8815 * builds/unix/configure.in: Renamed to ...
8816 * builds/unix/configure.ac: This to make sure that autoconf 2.50 is
8818 Run `autoupdate' on it.
8819 Increase `version_info' to 7:0:1.
8820 * builds/unix/configure: Regenerated.
8822 2001-06-08 David Turner <david@freetype.org>
8824 * src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that
8825 corrupted transformed glyphs that were auto-hinted (the transform
8828 Fixed a bug that returned an invalid linear width for composite
8831 * include/internal/tttypes.h (TT_Loader_): Two new elements `linear'
8833 * src/truetype/ttgload.c (load_truetype_glyph,
8834 compute_glyph_metrics): Use it.
8836 * include/fttypes.h (FT_ERROR_BASE): New macro.
8837 * src/base/ftobjs.c (FT_Open_Face, FT_Render_Glyph_Internal): Use it
8838 to make source code work with the new error scheme implemented by
8840 * src/base/ftoutln.c (FT_Outline_Render): Ditto.
8842 2001-06-07 Werner Lemberg <wl@gnu.org>
8844 Updating to libtool 1.4.0 and autoconf 2.50.
8846 * builds/unix/ltconfig: Removed.
8847 * builds/unix/ltmain.sh, builds/unix/configure.in,
8848 builds/unix/aclocal.m4: Updated.
8849 * builds/unix/configure: Regenerated.
8851 2001-06-06 Werner Lemberg <wl@gnu.org>
8853 Complete redesign of error codes. Please check ftmoderr.h for more
8856 * include/freetype/internal/cfferrs.h,
8857 include/freetype/internal/tterrors.h,
8858 include/freetype/internal/t1errors.h: Removed. Replaced with files
8859 local to the module. All extra error codes have been moved to
8862 * src/sfnt/ttpost.h: Move error codes to `fterrors.h'.
8864 * src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h,
8865 src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h,
8866 src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h,
8867 src/smooth/ftsmerrs.h, src/truetype/tterrors.h,
8868 src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the
8869 error names for the module it belongs to.
8871 * include/freetype/ftmoderr.h: New file, defining the module error
8872 offsets. Its structure is similar to `fterrors.h'.
8874 * include/freetype/fterrors.h (FT_NOERRORDEF): New macro.
8875 (FT_ERRORDEF): Redefined to use module error offsets.
8876 All internal error codes are now public; unused error codes have
8877 been removed, some are new.
8879 * include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New
8881 * include/freetype/config/ftoption.h
8882 (FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro.
8884 All other source files have been updated to use the new error codes;
8885 some already existing (internal) error codes local to a module have
8886 been renamed to give them the same name as in the base module.
8888 All make files have been updated to include the local error files.
8890 2001-06-06 Werner Lemberg <wl@gnu.org>
8892 * src/cid/cidtokens.h: Replaced with...
8893 * src/cid/cidtoken.h: This file for 8+3 consistency.
8895 * src/raster/ftraster.c: Use macros for header file names.
8897 * src/include/freetype/tttables.h (TT_HoriHeader_, TT_VertHeader_):
8898 Fix length of `Reserved' array. Note that this isn't the real fix
8899 since recent OpenType specs have introduced a `CaretOffset' field
8900 instead of the first reserved byte.
8902 2001-05-29 Werner Lemberg <wl@gnu.org>
8904 * INSTALL: Minor fixes.
8907 * Version 2.0.3 released.
8908 =========================
8911 2001-05-29 David Turner <david@freetype.org>
8913 * INSTALL, docs/CHANGES: Updated.
8915 2001-05-25 David Turner <david@freetype.org>
8917 Moved several documents from the top-level to the `docs' directory.
8919 * src/base/ftcalc.c (FT_DivFix): Small fix to return value.
8921 2001-05-16 David Turner <david@freetype.org>
8923 * src/truetype/ttgload.c (load_truetype_glyph): Fixed a bug in the
8924 composite loader. Spotted by Keith Packard.
8925 * src/base/ftobjs.c (FT_GlyphLoader_Check_Points,
8926 FT_GlyphLoader_Check_Subglyphs): Ditto.
8928 2001-05-14 David Turner <david@freetype.org>
8930 Fixed the incorrect blue zone computations, and improved the
8931 composite support. Note that these changes result in improved
8932 rendering, while sometimes introducing their own artefacts. This is
8933 probably the last big change to the autohinter before the
8934 introduction of a complete replacement.
8936 * src/autohint/ahglobal.c (sort_values): Fix loop.
8937 * src/autohint/ahglyph.c: Removed some obsolete code.
8938 (ah_outline_compute_edges): Modify code to set the ah_edge_round
8940 (ah_outline_compute_blue_edges): Add code to compute active blue
8942 * src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags
8945 * src/base/ftcalc.c (FT_DivFix): Fixed a bug in the 64-bit code that
8946 created incorrect scale factors!
8947 (FT_Round_Fix, FT_CeilFix, FT_FloorFix): Minor improvements.
8949 2001-05-12 Werner Lemberg <wl@gnu.org>
8951 * include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__.
8952 * include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ ->
8954 Include FT_FREETYPE_H.
8955 Beautified; added copyright.
8956 * src/base/fttrigon.c: Beautified; added copyright.
8958 2001-05-11 David Turner <david@freetype.org>
8960 * src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
8961 (parse_font_matrix), src/type1/t1load.c (parse_font_matrix): Fixed
8962 the incorrect EM size computation.
8964 * include/freetype/fttrigon.h, src/base/fttrigon.c: New files,
8965 adding trigonometric functions to the core API (using Cordic
8967 * src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them.
8969 * builds/newline: New file.
8970 * builds/top_level.mk, builds/detect.mk: Use it. This fixes
8971 problems with Make on Windows 2000, as well as problems when `make
8972 distclean' is invoked on a non-Unix platform when there is no
8973 `config.mk' in the current directory.
8975 * builds/freetype.mk: Fixed a problem with object deletions under
8976 Dos/Windows/OS/2 systems.
8978 Added new directory to hold tools and test programs.
8980 * docs/docmaker.py, docs/glnames.py: Moved to...
8981 * src/tools/docmaker.py, src/tools/glnames.py: This place.
8982 * src/tools/cordic.py: New file used to compute arctangent table
8983 needed by fttrigon.c.
8984 * src/tools/test_bbox.c, src/tools/test_trig.c: New test files.
8986 * src/tools/docmaker.py: Improved the script to add the current date
8987 at the footer of each web page (useful to distinguish between
8990 * Jamfile: Fixed incorrect HDRMACRO argument.
8992 * TODO: Removed the cubic arc bbox computation note, since it has been
8994 * src/base/ftbbox.c (test_cubic_zero): Renamed to...
8995 (test_cubic_extrema): This function. Use `UL' for unsigned long
8998 * include/freetype/t1tables.h, include/freetype/config/ftoption.h:
9001 2001-05-10 David Turner <david@freetype.org>
9003 * src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak
9004 which happened when trying to open 0-size font files!
9006 2001-05-09 Werner Lemberg <wl@gnu.org>
9008 * include/freetype/internal/ftcalc.h: Move declaration of
9009 FT_SqrtFixed() out of `#ifdef FT_LONG64'.
9011 2001-05-08 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
9013 * src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width
9016 2001-05-08 David Turner <david@freetype.org>
9018 * docs/docmaker.py: Updated the DocMaker script in order to add
9019 command line options (--output,--prefix,--title), fix the erroneous
9020 line numbers reported during errors and warnings, and other
9023 * src/base/ftcalc.c (FT_MulDiv, FT_MulFix, FT_DivFix): Various tiny
9024 fixes related to rounding in 64-bits routines and
9025 pseudo-`optimizations'.
9027 2001-04-27 David Turner <david@freetype.org>
9029 * src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient
9030 normalization algorithm (invalid final bit position, and invalid
9033 2001-04-26 Werner Lemberg <wl@gnu.org>
9035 * builds/unix/config.guess, builds/unix/config.sub: Updated to
9036 latest versions from gnu.org.
9038 * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
9040 * include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
9042 * src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
9043 Fix compiler warnings.
9044 * src/base/ftcalc.c: Fix (potential) compiler warnings.
9046 2001-04-26 David Turner <david@freetype.org>
9048 * src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit
9049 fixed-point square root computation. It is now used even with
9050 64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-)
9052 * src/base/ftbbox.c: Removed invalid `#include FT_BEZIER_H' line.
9054 2001-04-25 David Turner <david@freetype.org>
9056 * src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use
9057 direct computations with 16.16 values instead of sub-divisions. It
9058 is now slower, but proves a point :-)
9060 * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c:
9061 Fixed the bezier stack depths.
9063 * src/base/ftcalc.c (FT_MulFix): Minor rounding fix.
9065 * builds/beos: Added BeOS-specific files to the old build system
9066 (no changes were necessary to support BeOS in the Jamfile though).
9068 2001-04-20 David Turner <david@freetype.org>
9070 * ftconfig.h, ftoption.h: Updated `ftconfig.h' to detect 64-bit int
9071 types on platforms where Autoconf is not available). Also removed
9072 FTCALC_USE_LONG_LONG and replaced it with
9073 FT_CONFIG_OPTION_FORCE_INT64.
9075 * builds/win32/freetype.dsp: Updated the Visual C++ project file.
9076 Doesn't create a DLL yet.
9078 * cffgload.c: Removed a compilation warning.
9080 2001-04-10 Tom Kacvinsky <tkacvins@freetype.org>
9082 * t1load.c (parse_charstrings): Changed code for placing .notdef
9083 glyph into slot 0 so that we no longer have a memory access
9086 * t1load.h: In structure T1_Loader, added swap_table (of type
9087 PS_Table) to facilitate placing the .notdef glyph into slot 0.
9089 2001-04-10 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
9091 * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value.
9093 2001-04-09 Laurence Withers <lwithers@lwithers.demon.co.uk>
9095 * builds/dos/detect.mk: Add support for bash.
9097 2001-04-05 Werner Lemberg <wl@gnu.org>
9099 * builds/os2/*.mk: These files have been forgotten to update to
9100 the structure of similar makefiles.
9101 * builds/dos/*.mk: Ditto.
9102 * builds/ansi/*.mk: Ditto.
9104 * builds/win32/win32-def.mk (BUILD): Fix typo.
9106 * builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT.
9107 This is already used in the link_*.mk files.
9109 2001-04-03 Werner Lemberg <wl@gnu.org>
9111 * src/*/Jamfile: Slight changes to make files more cryptic.
9113 2001-04-03 Werner Lemberg <wl@gnu.org>
9115 * Jamfile, src/Jamfile, src/*/Jamfile: Formatted. Slight changes
9116 to give files identical structure.
9118 2001-04-02 Werner Lemberg <wl@gnu.org>
9120 * CHANGES: Reformatted, minor fixes.
9122 * README: Formatting.
9123 * include/freetype/freetype.h: Formatting.
9125 * Jamfile: Fix typo.
9127 * src/cff/cffparse.c: Move error code #defines to...
9128 * include/freetype/internal/cfferrs.h: This file.
9129 * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced
9130 `FT_Err_*' with `CFF_Err_*'.
9131 * src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'.
9132 * src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto.
9133 * src/sfnt/sfobcs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with
9135 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto.
9136 * src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c,
9137 src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'.
9139 * include/freetype/internal/cfferrs.h: Add
9140 `CFF_Err_Unknown_File_Format'.
9141 * include/freetype/internal/t1errors.h: Add
9142 `T1_Err_Unknown_File_Format'.
9143 * include/freetype/internal/tterrors.h: Add
9144 `TT_Err_Unknown_File_Format'.
9146 * src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset'
9148 * src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'.
9150 * src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
9152 * src/cid/cidobjs.c (CID_Done_Driver): Ditto.
9153 * src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
9155 * src/type1/t1objs.c (T1_Done_Driver): Ditto.
9156 * src/pcf/pcfdriver.c (PCF_Done_Face): Ditto.
9157 * src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'.
9159 2001-04-02 Tom Kacvinsky <tkacvins@freetype.org>
9161 * src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer
9162 dereference. Submitted by Herbert Duerr <duerr@sun.com>.
9164 2001-03-26 Tom Kacvinsky <tkacvins@freetype.org>
9166 * include/freetype/config/ftconfig.h: Changed hexadecimal
9167 constants to use suffix U to avoid problems with HP-UX's c89
9168 compiler. Submitted by G.W. Lucas <glucas@sonalysts.com>.
9170 2001-03-24 David Turner <david.turner@freetype.org>
9172 * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to
9173 the source tree. See www.freetype.org/jam/index.html for details.
9176 * Version 2.0.2 released.
9177 =========================
9180 2001-03-20 Werner Lemberg <wl@gnu.org>
9182 * builds/win32/detekt.mk: Fix .PHONY target for Intel compiler.
9184 2001-03-20 David Turner <david.turner@freetype.org>
9186 * include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
9187 Renamed `ftnames.h' to `ftsnames.h', and FT_NAMES_H to
9190 * docs/docmaker.py: Added generation of INDEX link in table of
9193 * INSTALL, docs/BUILD: Updated documentation to indicate that the
9194 compilation process has changed slightly (no more `src' required in
9197 * builds/*/*-def.mk: Changed the objects directory from `obj' to
9200 * include/freetype/config/ftheader.h: Removed obsolete macros like
9201 FT_SOURCE_FILE, etc. and added cache-specific macro definitions that
9202 were previously defined in <freetype/ftcache.h>. Added comments to
9203 be included in a new API Reference section.
9205 * src/*/*: Removed the use of FT_SOURCE_FILE, etc. Now, each
9206 component needs to add its own directory to the include path at
9207 compile time. Modified all `rules.mk' and `descrip.mms'
9210 2001-03-20 Werner Lemberg <wl@gnu.org>
9212 * builds/unix/configure.in: Add $ft_version.
9213 * builds/unix/freetype-config.in: Use it.
9214 * builds/unix/configure: Updated.
9216 2001-03-19 Tom Kacvinsky <tkacvins@freetype.org>
9218 * src/type1/t1load.c (parse_font_matrix): Assign the units per em
9219 value an unsigned short value, first by shifting right 16 bits,
9220 then by casting the results to FT_UShort.
9222 * src/cff/cffparse.c (cff_parse_font_bbox): Assign the units per em
9223 value an unsigned short value, first by shifting right 16 bits,
9224 then by casting the results to FT_UShort.
9226 2001-03-17 David Turner <david.turner@freetype.org>
9228 * src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c,
9229 src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove
9230 compiler warnings in pedantic modes.
9232 * include/config/ft2build.h, include/config/ftheader.h: The file
9233 `ft2build.h' was renamed to `ftheader.h' to avoid conflicts with the
9234 top-level <ft2build.h>.
9236 * include/config/ftheader.h: Added new section describing the #include
9239 2001-03-17 Tom Kacvinsky <tkacvins@freetype.org>
9241 * src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed
9242 values for the bounding box numbers.
9244 * src/cff/cffobjs.c (CFF_Init_Face): When processing a CFF/CEF font,
9245 set `root->ascender' (`root->descender') to the integer part of
9246 `root->bbox.yMax' (`root->bbox.yMin', respectively).
9248 2001-03-16 Tom Kacvinsky <tkacvins@freetype.org>
9250 * src/cff/cffdrivr.c (get_cff_glyph_name): New function. Used in
9251 cff_get_interface to facilitate getting a glyph name for glyph index
9252 via FT_Get_Glyph_Name().
9254 (cff_get_interface): Added support for getting a glyph name via the
9255 `glyph_name' module interface. Uses the new function
9256 get_cff_glyph_name().
9257 Submitted by Sander van der Wal <svdwal@xs4all.nl>.
9259 * src/cff/cffobjs.c (CFF_Init_Face): Logical or the face flags with
9260 FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is
9261 not defined. This is to add support for getting a glyph name from a
9262 glyph index via FT_Get_Glyph_Name().
9263 Submitted by Sander van der Wal <svdwal@xs4all.nl>.
9265 * src/cff/cffgload.c (CFF_Parse_CharStrings): Added support for
9266 deprecated operator `dotsection'.
9267 Submitted by Sander van der Wal <svdwal@xs4all.nl>.
9269 2001-03-12 Werner Lemberg <wl@gnu.org>
9271 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error
9274 * INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer.
9276 2001-03-12 Tom Kacvinsky <tkacvins@freetype.org>
9278 * include/freetype/internal/psaux.h: Changed the lenIV member of
9279 the T1_Decoder_ struct to be an FT_Int instead of an FT_UInt.
9281 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Adjust
9282 for lenIV seed bytes at the start of a decrypted subroutine.
9284 * src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only
9287 * src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only
9290 2001-03-11 Werner Lemberg <wl@gnu.org>
9294 * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to
9295 avoid compiler warnings.
9297 2001-03-10 Tom Kacvinsky <tkacvins@freetype.org>
9301 * include/freetype/freetype.h: Added prototypes and notes for
9302 three new functions: FT_RoundFix, FT_CeilFix, and FT_FloorFix.
9303 * src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_FloorFix): Added
9304 implementation code.
9306 * src/cid/cidobjs.c (CID_Init_Face): Use calculated units_per_EM,
9307 and if that is not available, default to 1000 units per EM. Changed
9308 assignment code for ascender and descender values.
9309 * src/cid/cidload.c (parse_font_matrix): Added units_per_EM
9311 (parse_font_bbox): Changed to use FT_Fixed number handling.
9313 * src/type1/t1objs.c (T1_Init_Face): Changed the assignment code
9314 for ascender, descender, and max_advance_width.
9315 * src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed
9318 2001-03-10 Henrik Grubbström <grubba@roxen.com>
9320 * src/*/*.c: Added many casts to make code more 64bit-safe.
9322 2001-03-07 Werner Lemberg <wl@gnu.org>
9324 * INSTALL, docs/BUILD: We need GNU make 3.78 or newer.
9326 2001-03-07 Tom Kacvinsky <tkacvins@freetype.org>
9328 * src/type1/t1objs.c (T1_Init_Face): Minor correction: We must wait
9329 until parse_font_bbox is changed before we use logical shift rights
9330 in the assignments of `root->ascender', `root->descender', and
9331 `root->max_advance_width'.
9333 (T1_Done_Face): Free `char_name' table to avoid a memory leak.
9334 Submitted by Sander van der Wal <svdwal@xs4all.nl>.
9336 2001-03-05 Tom Kacvinsky <tkacvins@freetype.org>
9338 * src/cff/cffgload.c (CFF_Load_Glyph): Set glyph control data to the
9339 the Type 2 glyph charstring (used by conversion programs).
9340 Submitted by Ha Shao <hashao@chinese.com>.
9342 2001-03-04 Antoine Leca <Antoine.Leca@renault.fr>
9344 * include/freetype/ttnameid.h: Correct a stupid typo which prevented
9345 correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice).
9347 2001-03-04 Werner Lemberg <wl@gnu.org>
9349 * src/autohint/ahtypes.h (AH_Hinter): Add elements
9350 `disable_horz_edges', `disable_vert_edges'.
9351 * src/autohint/ahhint.c (ah_hint_edges_3, ah_hinter_hint_edges): Use
9352 them (and remove static variables with the same names).
9353 * src/pcf/pcfutil.c (BitOrderInvert): Add `const'.
9354 * docs/glnames.py: Updated to latest pstables.h changes.
9356 * builds/unix/detect.mk: Add test for Hurd.
9357 * builds/hurd/detect.mk: Removed.
9359 2001-03-04 Sander van der Wal <svdwal@xs4all.nl>
9361 * src/psnames/pstables.h: Add more `const'.
9362 * src/pcf/pcfutil.c: Ditto.
9364 2001-03-04 Werner Lemberg <wl@gnu.org>
9366 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo
9367 (FT_Glyph_Done -> FT_Done_Glyph).
9369 2001-03-01 Antoine Leca <Antoine.Leca@renault.fr>
9371 * include/freetype/ttnameid.h: Added some new Microsoft language
9372 codes and LCIDs as found in Office Xp.
9374 2001-02-28 David Turner <david.turner@freetype.org>
9376 * builds/hurd/detect.mk: New file. Added support to detect the GNU
9377 Hurd operating system as Unix-like. Fix submitted by Anthony Fok
9380 * src/type1/t1gload.c (T1_Load_Glyph): Set glyph control data to the
9381 the Type 1 glyph charstring (used by conversion programs).
9382 Submitted by Ha Shao <hashao@chinese.com>.
9384 2001-02-22 David Turner <david.turner@freetype.org>
9386 * src/base/ftgrays.c (grays_sweep): The function didn't exit
9387 immediately if `num_cells' was 0 as it should. Thanks to Boris for
9390 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when
9391 bitmap rendering fails (thanks to Graham Asher).
9393 2001-02-13 Werner Lemberg <wl@gnu.org>
9395 * docs/docmaker.py (DocSection::add_element): Use
9396 `self.print_error()'.
9398 * builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org).
9400 2001-02-13 David Turner <david.turner@freetype.org>
9402 * docs/docmaker.py, include/freetype/*.h: Updated the DocMaker
9403 script to support chapters and section block ordering. Updated the
9404 public header files accordingly.
9406 * src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format
9407 were not correctly copied.
9409 2001-02-08 Tom Kacvinsky <tkacvins@freetype.org>
9411 * src/cff/cffparse.c (cff_parse_font_matrix): Removed an
9412 unnecessary fprintf( stderr, ... ).
9414 2001-02-07 Tom Kacvinsky <tkacvins@freetype.org>
9416 * src/type1/t1objs.c (T1_Init_Face): Added code to get the
9417 units_per_EM from the value assigned in parse_font_matrix, if
9418 available. Default to 1000 if not available.
9420 * src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get
9421 the units_per_EM from the FontMatrix.
9423 (cff_parse_fixed_thousand): New function. Gets a real number from
9424 the CFF font, but multiplies by 1000 (this is to avoid rounding
9425 errors when placing this real number into a 16.16 fixed number).
9427 (cff_parse_real): Added code so that the integer part is moved
9428 into the high sixteen bits of the 16.16 fixed number.
9430 * src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units
9431 per EM from the CFF dictionary, if available.
9433 * include/freetype/internal/cfftypes.h: In struct CFF_Font_Dict_,
9434 added a units_per_em member to facilitate passing of units_per_em
9435 from function cff_parse_font_matrix.
9437 * src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric
9438 character. This is so that font names with `-' are fully parsed,
9441 2001-02-02 Werner Lemberg <wl@gnu.org>
9443 * src/psaux/psobjs.c (shift_elements): Remove if clause (which is
9446 (reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC()
9447 + MEM_Copy() to avoid a memory bug.
9449 2001-02-01 David Turner <david.turner@freetype.org>
9451 * docs/docmaker.py: Improved the index sorting routine to place
9452 capital letters before small ones. Added the `<order>' marker to
9453 section blocks in order to give the order of blocks.
9455 2001-01-30 Antoine Leca <Antoine.Leca@renault.fr>
9457 * include/freetype/ttnameid.h: Latest updates to Microsoft language
9460 2001-01-24 Tom Kacvinsky <tkacvins@freetype.org>
9462 * src/cff/t1load.c (parse_font_matrix): Added heuristic to get
9463 units_per_EM from the font matrix.
9465 (parse_dict): Deleted test to see whether the FontInfo keyword has
9466 been seen. Deletion of this test allows fonts without FontInfo
9467 dictionaries to be parsed by the Type 1 driver.
9469 (T1_Open_Face): Deleted empty subroutines array test to make sure
9470 fonts with no subroutines still are parsed.
9472 2001-01-17 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
9474 * src/pcfread.c (pcf_get_properties, pcf_get_metrics,
9475 pcf_get_bitmaps): Fix compiler errors.
9477 2001-01-11 David Turner <david.turner@freetype.org>
9479 * src/pcf/pcfread.c: Removed some compilation warnings related
9480 to comparison of signed vs. unsigned integers.
9482 * include/freetype/internal/ftdebug.h: Changed the debug trace
9483 constants from trace_t2xxxx to trace_cffxxxx to be able to compile
9484 the CFF driver in debug mode.
9486 2001-01-11 Matthew Crosby <mcrosby@marthon.org>
9488 * builds/unix/freetype-config.in: Fix problems with separate
9489 --prefix and --exec-prefix.
9491 2001-01-11 David Turner <david.turner@freetype.org>
9493 * docs/docmaker.py: Added cross-references generation as well as
9494 more robust handling of pathname wildcard matching.
9496 2001-01-10 Werner Lemberg <wl@gnu.org>
9498 * docs/docmaker.py: Minor improvements to reduce unwanted spaces
9499 and empty lines in output.
9501 2001-01-09 David Turner <david.turner@freetype.org>
9503 * docs/docmaker.py: Improved script to generate table of contents
9504 and index pages. It also supports wildcards on non Unix systems.
9506 * include/freetype/*.h, include/freetype/cache/*.h: Updated comments
9507 to include section definitions/delimitations for the API Reference
9510 * include/freetype/freetype.h: Moved declaration of
9511 `FT_Generic_Finalizer' and the `FT_Generic' structure to...
9512 * include/freetype/fttypes.h: here.
9514 2001-01-04 Werner Lemberg <wl@gnu.org>
9516 * include/freetype/ttnameid.h: Updated Unicode code range comments.
9518 2001-01-03 Tom Kacvinsky <tkacvins@freetype.org>
9520 * src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}.
9522 * include/freetype/internal/internal.h: Changed to use cfftypes.h
9523 (cfferrs.h) instead of t2types.h (t2errors.h, respectively).
9525 * include/freetype/internal/cfftypes.h: Merged in changes from
9526 t2types.h and made this the canonical `types' header for the CFF
9529 * include/freetype/internal/t2types.h: This file was merged with
9530 cfftypes.h and is no longer necessary.
9532 * include/freetype/internal/t2errors.h: Renamed to cfferrs.h.
9534 * src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
9535 src/cff/cffdrivr.c, src/cff/cff.c, src/cff/cffload.c,
9536 src/cff/cffgload.c, src/cff/cffgload.h: Changed to use
9537 cffgload.{c,h} instead of t2gload.{c,h}. All occurrences of t2_
9538 (T2_) were replaced with cff_ (CFF_, respectively).
9540 * src/cff/t2gload.h: Renamed cffgload.h.
9542 * src/cff/t2gload.c: Renamed cffgload.c
9544 2000-01-02 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
9546 * builds/vms: Support files for VMS architecture added.
9547 * descrip.mms, src/*/descrip.mms: VMS makefiles added.
9548 * README.VMS: New file.
9550 2000-01-01 Werner Lemberg <wl@gnu.org>
9552 * LICENSE.TXT: Added info about PCF driver license.
9554 2001-01-01 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
9556 * src/pcf/*: New driver module for PCF font format (used in
9558 * include/freetype/internal/ftdebug.h (FT_Trace): Added values for
9560 * include/freetype/internal/pcftypes.h: New file.
9561 * include/freetype/config/ftmodule.h: Added PCF driver module.
9563 2001-01-01 Werner Lemberg <wl@gnu.org>
9565 * src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type.
9567 2000-12-31 Werner Lemberg <wl@gnu.org>
9569 * builds/modules.mk (clean_module_list): Fixed deletion of module
9570 file in case `make make_module_list' is called before `make setup'.
9572 2000-12-30 Werner Lemberg <wl@gnu.org>
9574 * src/cff/cffload.c (CFF_Load_Charset): Improved error messages.
9575 (CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable
9578 2000-12-30 Tom Kacvinsky <tkacvins@freetype.org>
9580 * include/freetype/internal/t2types.h,
9581 include/freetype/internal/cfftypes.h: Changed the structures for
9582 CFF_Encoding and CFF_Encoding for the new implementations of the
9583 charset and encoding parsers in the CFF driver.
9585 * src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode,
9586 t2_operator_seac): Added these functions for use in implementing the
9587 seac emulation provided by the Type 2 endchar operator.
9588 (T2_Parse_CharStrings): Added seac emulation for the endchar
9591 * src/cff/cffload.c (CFF_Load_Encoding, CFF_Load_Charset,
9592 CFF_Done_Encoding, CFF_Done_Charset): Extended to load and parse the
9593 charset/encoding tables, and free the memory used by them when the
9594 CFF driver is finished with them. Added tables
9596 cff_isoadobe_charset
9598 cff_expertsubset_charset
9599 cff_standard_encoding
9602 so that the encoding/charset parser can handle predefined encodings and
9605 2000-12-24 Tom Kacvinsky <tkacvins@freetype.org>
9607 * src/cff/t2gload.c (T2_Load_Glyph): Added code so that the font
9608 transform is applied.
9610 * src/cff/cffparse.c (cff_parse_font_matrix): Added code so that
9611 the font matrix numbers are scaled by 1/(matrix->yy). Also, the
9612 offset vector now contains integer values instead of 16.16 fixed
9615 2000-12-22 Tom Kacvinsky <tkacvins@freetype.org>
9617 * src/autohint/ahhint.c (ah_hinter_load_glyph):
9618 Removed unnecessary comments and commented-out code.
9620 2000-12-21 David Turner <david.turner@freetype.org>
9622 * src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files,
9623 we'll work on supporting CID AFM files later I guess :-)
9625 2000-12-21 Tom Kacvinsky <tkacvins@freetype.org>
9627 * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
9628 Changed so that fonts with a non-standard FontMatrix render
9629 correctly. Previously, the first glyph rendered from such a
9630 font did not have the tranformation matrix applied.
9632 2000-12-17 Werner Lemberg <wl@gnu.org>
9634 * *.mk: Added lots of `.PHONY' targets.
9636 2000-12-17 Karsten Fleischer <kfleisc1@ford.com>
9638 * *.mk: Implemented `platform' target to disable auto-detection.
9640 2000-12-14 Werner Lemberg <wl@gnu.org>
9642 * docs/design/modules.html: Removed. Covered by design-*.html.
9644 * INSTALL: Added info about makepp.
9646 2000-12-14 David Turner <david.turner@freetype.org>
9648 Added support for clipped direct rendering in the smooth renderer.
9649 This should not break binary compatibility of existing applications.
9651 * include/freetype/fttypes.h, include/freetype/ftimage.h: Move
9652 definition of the FT_BBox structure from the former to the latter.
9653 * include/freetype/ftimage.h: Add `ft_raster_flag_clip' value to
9654 FT_Raster_Flag enumeration.
9655 Add `clip_box' element to FT_Raster_Params structure.
9656 * src/smooth/ftgrays.c (grays_convert_glyph): Implement it.
9658 * INSTALL: Updated installation instructions on Win32, listing the
9659 new `make setup list' target used to list supported
9662 * src/raster/ftraster.c (ft_black_render): Test for unsupported
9663 direct rendering before testing arguments.
9665 2000-12-13 David Turner <david.turner@freetype.org>
9667 * include/freetype/config/ft2build.h,
9668 include/freetype/internal/internal.h: Fixed header inclusion macros
9669 to use direct definitions. This is the only way to do these things
9670 in a portable way :-( The rest of the code should follow shortly
9671 though everything compiles now.
9673 * builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files.
9675 * builds/win32/detect.mk: Added support for the Intel C/C++
9676 compiler, as well as _preliminary_ (read: doesn't work!) support for
9677 Watcom. Also added a new setup target. Type `make setup list' for
9678 a list of supported command-line compilers on Win32.
9680 * src/base/ftdebug.c: Added dummy symbol to avoid empty file if
9681 conditionals are off.
9683 2000-12-13 Werner Lemberg <wl@gnu.org>
9685 * builds/unix/ftsystem.c: Fixed typos. Fixed inclusion of wrong
9688 2000-12-12 Werner Lemberg <wl@gnu.org>
9690 * include/freetype/config/ft2build.h (FT2_ROOT, FT2_CONFIG_ROOT):
9691 Removed. ANSI C doesn't (explicitly) allow macro expansion in
9692 arguments using `##'.
9693 (FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory
9694 names directly. Make them configurable. Use `##' to strip leading
9695 and trailing spaces from arguments.
9697 * builds/unix/ft2unix.h: Adapted.
9699 * src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream,
9700 ft_close_stream): Use FT_CALLBACK_DEF.
9702 * builds/unix/ftsystem.c: Use new header scheme.
9703 (FT_Done_Memory): Use free() from FT_Memory structure.
9705 * src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes.
9707 2000-12-11 Werner Lemberg <wl@gnu.org>
9709 * include/freetype/config/ft2build.h (FT2_CONFIG_ROOT,
9710 FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE,
9711 FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant.
9713 2000-12-09 Werner Lemberg <wl@gnu.org>
9715 * builds/unix/detect.mk: Remove unused USE_CFLAGS variable.
9717 2000-12-08 Werner Lemberg <wl@gnu.org>
9719 * */*.h: Changed body inclusion macro names to start and end with
9720 `__' (those which haven't converted yet). Fixed minor conversion
9723 * src/winfonts/winfnt.c: Updated to new header inclusion scheme.
9725 * src/truetype/ttinterp.c: Remove unused CALC_Length() macro.
9727 2000-12-07 David Turner <david.turner@freetype.org>
9729 * */*.[ch]: Changed source files to adhere to the new
9730 header inclusion scheme. Not completely tested but works for now
9733 * src/cff/t2driver.c: Renamed and updated to...
9734 * src/cff/cffdrivr.c: New file.
9735 * src/cff/t2driver.h: Renamed and updated to...
9736 * src/cff/cffdrivr.h: New file.
9737 * src/cff/t2load.c: Renamed and updated to...
9738 * src/cff/cffload.c: New file.
9739 * src/cff/t2load.h: Renamed and updated to...
9740 * src/cff/cffload.h: New file.
9741 * src/cff/t2objs.c: Renamed and updated to...
9742 * src/cff/cffobjs.c: New file.
9743 * src/cff/t2objs.h: Renamed and updated to...
9744 * src/cff/cffobjs.h: New file.
9745 * src/cff/t2parse.c: Renamed and updated to...
9746 * src/cff/cffparse.c: New file.
9747 * src/cff/t2parse.h: Renamed and updated to...
9748 * src/cff/cffparse.h: New file.
9749 * src/cff/t2tokens.h: Renamed and updated to...
9750 * src/cff/cfftoken.h: New file.
9752 * src/cff/cff.c, src/cff/rules.mk: Updated.
9754 2000-12-06 David Turner <david.turner@freetype.org>
9756 * src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak.
9758 2000-12-06 Werner Lemberg <wl@gnu.org>
9760 * builds/module.mk: Replaced `xxx #' with `xxx$(space).
9761 * builds/os2/detekt.mk, builds/win32/detekt.mk: Moved comment to
9762 avoid trailing spaces in variable.
9763 * builds/freetype.mk: Use $(D) instead of $D to make statement more
9766 * docs/docmaker.py: Formatting.
9768 2000-12-05 David Turner <david.turner@freetype.org>
9770 * src/psaux/psauxmod.c: Fixed a broken inclusion of component
9771 header files (an FT_FLAT_COMPILE test was missing).
9773 * src/cache/ftcmanag.c (FTC_Manager_Done): Fixed a bug that caused
9774 an occasional crash when the function was called (due to a dangling
9777 * src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug:
9778 The ANSI `free()' function was called instead of `memory->free()'.
9780 * docs/docmaker.py: Added section filtering, multi-page generation
9781 (index page generation is still missing though).
9783 2000-12-04 David Turner <david.turner@freetype.org>
9785 * builds/unix/install.mk, builds/unix/ft2unix.h: The file `ft2unix.h'
9786 is now installed as <ft2build.h> for Unix systems. Note that we
9787 still use the `freetype2/freetype' installation path for now.
9789 * */*.[ch]: Now using <ft2build.h> as the default build and setup
9790 configuration file in all public headers. Internal source files
9791 still need some changes though.
9793 * builds/devel/ft2build.h, builds/devel/ftoption.h: Created a new
9794 directory to hold all development options for both the Unix and
9795 Win32 developer builds.
9797 * builds/win32/detect.mk, builds/win32/w32-bccd.mk,
9798 builds/win32/w32-dev.mk: Changed the developer build targets to
9799 `devel-gcc' and `devel-bcc' in order to be able to develop with the
9800 Borland C++ compiler.
9802 2000-12-01 David Turner <david.turner@freetype.org>
9805 * Version 2.0.1 released.
9806 =========================
9809 * builds/unix/configure.in, builds/unix/configure,
9810 builds/cygwin/configure.in, builds/cygwin/configure: Setting
9811 `version_info' to 6:1:0 for the 2.0.1 release.
9813 * CHANGES: Added a summary of changes between 2.0.1 and 2.0.
9815 * builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes
9816 to allow compilation under Unix with the Unix-specific config
9819 2000-12-01 Werner Lemberg <wl@gnu.org>
9822 * builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
9823 builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
9824 builds/win32/w32-bccd.mk: Revised.
9825 * include/freetype/config/ftbuild.h,
9826 include/freetype/internal/internal.h: Revised.
9827 * include/freetype/ftimage.h: Updated to new header inclusion scheme.
9829 2000-11-30 Werner Lemberg <wl@gnu.org>
9831 * builds/toplevel.mk (.PHONY): Adding `distclean'.
9832 * builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
9835 2000-11-30 David Turner <david.turner@freetype.ogr>
9837 * INSTALL: Slightly updated the quick starter documentation to
9838 include IDE compilation, prevent against BSD Make, and specify `make
9839 setup' instead of a single `make' for build configuration.
9841 * include/config/ftbuild.h, include/internal/internal.h: Added new
9842 configuration files used to determine the location of all public,
9843 configuration, and internal header files for FreeType 2. Modified
9844 all headers under `include/freetype' to reflect this change. Note
9845 that we still need to change the library source files themselves
9848 * builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk,
9849 builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk,
9850 builds/win32/detect.mk: Added new files to support compilation with
9851 the free Borland C++ command-line compiler. Modified the detection
9852 rules to recognize the new `bcc32' target in `make setup bcc32'.
9854 * src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c,
9855 src/truetype/ttobjs.c, src/truetype/ttgload.c,
9856 src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
9857 didn't really like. Basically, this compiler complains when FT_UInt
9858 is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
9861 2000-11-30 Tom Kacvinsky <tkacvins@freetype.org>
9863 * t2objs.c (T2_Init_Face): Added calculation of `face->height' for
9866 * t1objs.c (T1_Init_Face): Fixed computation of `face->height'.
9868 2000-11-29 David Turner <david.turner@freetype.org>
9870 * src/base/ftbbox.c (BBox_Conic_Check): Fixed a really stupid
9871 bug in the formula used to compute the conic Bézier extrema
9872 of non-monotonous arcs.
9874 2000-11-29 Werner Lemberg <wl@gnu.org>
9876 * src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c
9877 (FT_Set_Renderer): Use FT_EXPORT_DEF.
9878 * src/cache/ftcimage.c (FTC_Image_Cache_Lookup),
9879 src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset,
9880 FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size,
9881 FTC_Manager_Register_Cache), src/cache/ftcsbits.c
9882 (FTC_SBit_Cache_Lookup): Ditto.
9884 * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init),
9885 src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT.
9887 2000-11-29 Werner Lemberg <wl@gnu.org>
9889 * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only
9892 * src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set
9893 `size->strike_index' only conditionally.
9895 * src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only
9898 * src/winfonts/winfnt.h: Move all type definitions to...
9899 * src/include/freetype/internal/fnttypes.h: New file.
9900 * src/winfonts/winfnt.c: Use it.
9902 2000-11-29 ??? ??? <darin@eazel.com>
9904 * include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT
9905 with a direct solution (which also satifies picky compilers).
9907 2000-11-28 YAMANO-UCHI Hidetoshi <mer@din.or.jp>
9909 * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with
9910 disabled interpreter also.
9912 * src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect
9915 2000-11-26 Tom Kacvinsky <tkacvins@freetype.org>
9917 * src/cff/t2gload.c (T2_Parse_CharStrings): Added logic to glyph
9918 width setting code to take into account even/odd argument counts
9919 and glyph width operand before endchar/hmoveto/vmoveto.
9921 2000-11-26 Werner Lemberg <wl@gnu.org>
9923 * builds/ansi/ansi.mk: Fix inclusion order of files.
9925 2000-11-26 Keith Packard <keithp@keithp.com>
9927 * src/type1/t1objs.c (T1_Init_Face): Compute style flags.
9929 2000-11-26 Werner Lemberg <wl@gnu.org>
9931 * builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and
9934 2000-11-23 Werner Lemberg <wl@gnu.org>
9936 * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt
9937 function from PSAux module.
9939 * src/type1/t1parse.c (T1_Done_Parse): Renamed to...
9940 (T1_Finalize_Parser): New function (to avoid name clash with a
9941 function in the PSAux module).
9942 (T1_Decrypt): Removed since it is duplicated in the PSAux module.
9943 (T1_Get_Private_Dict): Added `psaux' as new parameter; use decrypt
9944 function from PSAux module.
9946 * src/type1/t1parse.h: Adapted.
9948 2000-11-22 Tom Kacvinsky <tkacvins@freetype.org>
9950 * src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set
9951 `root->num_faces' to `cff->num_faces' and set `units_per_EM'
9954 * src/cff/t2parse.c (parse_t2_real): Fixed real number parsing
9957 * src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a
9958 sid that was off by one.
9960 2000-11-16 David Turner <david@freetype.org>
9962 * src/autohint/ahtypes.h (AH_Hinter): Added new fields to control
9963 auto-hinting of synthetic Type 1 fonts.
9965 * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
9966 Added auto-hinting support of synthetic Type 1 fonts.
9968 2000-11-12 Tom Kacvinsky <tkacvins@freetype.org>
9970 * src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change
9973 * src/sfnt/sfobjs.c (SFNT_Load_Face): Set boolean variable
9974 `has-outline' to true only if the font has a `glyf' or `CFF ' table.
9976 2000-11-11 Werner Lemberg <wl@gnu.org>
9978 * builds/win32/visualc/freetype.dsp: Fix raster1->raster and
9981 2000-11-11 Tom Kacvinsky <tkacvins@freetype.org>
9983 * builds/unix/freetype-config.in, builds/cygwin/freetype-config.in:
9984 Added a --libtool option. When freetype-config --libtool is
9985 invoked, the absolute path to the libtool convenience library
9988 2000-11-11 Werner Lemberg <wl@gnu.org>
9990 * builds/cygwin/cygwin-def.in: Same fix as previous.
9992 2000-11-10 Tom Kacvinsky <tkacvins@freetype.org>
9994 * builds/unix/unix-def.in: Add
9996 INSTALL_PROGRAM := @INSTALL_PROGRAM@
9997 INSTALL_SCRIPT := @INSTALL_SCRIPT@
9999 so that installation of freetype-config does not fail.
10001 2000-11-10 Werner Lemberg <wl@gnu.org>
10003 * builds/cygwin/freetype-config.in, builds/unix/freetype-config.in:
10004 Move test down for empty --exec-prefix.
10007 * builds/cygwin/install.mk, builds/unix/install.mk: Use
10008 $(INSTALL_SCRIPT) for installation of freetype-config.
10010 * builds/cygwin/install.mk: Fix clean target names.
10012 2000-11-09 David Turner <david@freetype.org>
10015 * Version 2.0 released.
10016 =======================
10020 version-control: never