2004-10-28 Casper S. Hornstrup <chorns@users.sourceforge.net>
[reactos.git] / reactos / lib / freetype / ChangeLog
1 2004-06-23 Werner Lemberg <wl@gnu.org>
2
3 * include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare
4 FT_QAlloc_Debug and FT_QRealloc_Debug.
5
6 * src/base/ftutil.c (FT_QAlloc): Fix error and debug messages.
7 (FT_QRealloc): Call FT_QAlloc if original pointer is NULL.
8 Fix error message.
9
10 2004-06-23 David Turner <david@freetype.org>
11
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.
16
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.
21
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.
25
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.
32
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
37 opening `Vera.ttf'.
38
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.
41
42 2004-06-22 Werner Lemberg <wl@gnu.org>
43
44 * src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties,
45 pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve
46 debugging messages.
47
48 * src/pcf/pcfdrivr.c (FT_COMPOMENT): Move up.
49 (PCF_Face_Init): Simplify code.
50
51 * src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'.
52
53 * src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start),
54 src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/.
55
56 * src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs.
57 Set `default_glyph'.
58 (BDF_Glyph_Load): Use `default_glyph' for undefined glyph.
59
60 * docs/CHANGES: Updated.
61
62 2004-06-21 Werner Lemberg <wl@gnu.org>
63
64 * docs/CHANGES: Updated.
65
66 2004-06-21 David Turner <david@freetype.org>
67
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.
73
74 2004-06-14 Huw D M Davies <h.davies1@physics.ox.ac.uk>
75
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.
79
80 2004-06-14 Werner Lemberg <wl@gnu.org>
81
82 * src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h.
83 Reported by Hyvärinen Jyrki Juhani.
84
85 2004-06-11 Werner Lemberg <wl@gnu.org>
86
87 * docs/CHANGES: Updated.
88
89 2004-06-10 David Turner <david@freetype.org>
90
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.
93 Obsolete.
94
95 * src/raster/ftraster.c (Alignment, PAlignment): New union to fix
96 problems with 64bit systems.
97 (AlignProfileSize): Use it.
98
99 2004-06-08 David Turner <david@freetype.org>
100
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
104 FreeType versions.
105 Update all users.
106
107 * src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning.
108
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.
112
113 * include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change
114 return type to FT_Bool.
115
116 * src/cache/ftbasic.c (ftc_basic_family_compare): Change return
117 type to FT_Bool.
118
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.
122
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.
127
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.
131
132 * src/cache/ftcmanag.c (ftc_size_node_compare,
133 ftc_size_node_compare_faceid, ftc_face_node_compare): Change return
134 type to FT_Bool.
135
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.
140
141 * src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache
142 sub-system.
143
144 2004-06-05 Werner Lemberg <wl@gnu.org>
145
146 * src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and
147 `rsb_delta' in slot->metrics and tune side bearings slightly.
148
149 2004-06-04 Werner Lemberg <wl@gnu.org>
150
151 * docs/CHANGES: Updated.
152
153 2004-06-04 David Chester <davidchester@gmx.net>
154
155 Improve inter-letter spacing for autohinted glyphs.
156
157 * include/freetype/freetype.h (FT_Glyph_Metrics): Add elements
158 `lsb_delta' and `rsb_delta'.
159
160 * src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and
161 `rsb_delta' in slot->metrics and tune side bearings slightly.
162
163 2004-06-04 David Turner <david@freetype.org>
164
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).
169
170 To test it, change `autohint' to `autofit' in
171 <freetype/config/ftmodule.h> and recompile.
172
173 A few more testing is needed before making this the official
174 auto-hinting module.
175
176 2004-06-02 Werner Lemberg <wl@gnu.org>
177
178 * src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler
179 warnings.
180
181 2004-06-01 Werner Lemberg <wl@gnu.org>
182
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
186 Ken'ichi.
187
188 2004-05-19 George Williams <gww@silcom.com>
189
190 * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New
191 auxiliary functions.
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.
195
196 * include/freetype/t1tables.h (PS_DesignMapRec): Change type of
197 `design_points' to FT_Long.
198 Update all users.
199
200 2004-05-17 Werner Lemberg <wl@gnu.org>
201
202 * src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases.
203 Reported by Mikey Anbary <manbary@vizrt.com>.
204
205 2004-05-15 Werner Lemberg <wl@gnu.org>
206
207 * src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name.
208
209 2004-05-15 George Williams <gww@silcom.com>
210
211 * src/sfnt/ttload.c (tt_face_load_max_profile): Always set
212 face->root.num_glyphs.
213
214 2004-05-14 Masatake YAMATO <jet@gyve.org>
215 George Williams <gww@silcom.com>
216
217 * src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly.
218
219 2004-05-14 Werner Lemberg <wl@gnu.org>
220
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
229 casts.
230
231 * src/cache/ftccback.h: Adjust parameters and return types to
232 prototypes given in header files from include/freetype/cache.
233
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.
238
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.
243
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.
250
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.
255
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.
262
263 (ftc_size_list_class, ftc_face_list_class): Remove casts.
264
265 2004-05-13 Werner Lemberg <wl@gnu.org>
266
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.
270
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.
279
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.
284
285 2004-05-12 Werner Lemberg <wl@gnu.org>
286
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.
290
291 2004-05-11 Werner Lemberg <wl@gnu.org>
292
293 * include/freetype/internal/psaux.h (T1_ParseState): New
294 enumeration.
295 (T1_BuilderRec): Replace `path_begun' with `parse_state'.
296 Remove `error'.
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.
301
302 * src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point):
303 Replace `path_begun' with `parse_state' and check parsing states.
304
305 2004-05-10 George Williams <gww@silcom.com>
306
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.
310
311 2004-05-09 George Williams <gww@silcom.com>
312
313 * src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix
314 error handling.
315
316 2004-05-07 Werner Lemberg <wl@gnu.org>
317
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.
323
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
327 function.
328 Update code accordingly.
329 Use FT_CALLBACK_DEF throughout.
330 (pfr_metrics_service_rec, pfr_driver_class): Remove casts.
331
332 2004-05-06 Masatake YAMATO <jet@gyve.org>
333
334 * src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM.
335 (*): Rename local variable OffsetToData to offsetToData.
336
337 2004-05-06 Werner Lemberg <wl@gnu.org>
338
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.
343
344 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current
345 frame before calling TT_Vary_Get_Glyph_Deltas.
346
347 * src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for
348 consistency.
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.
362
363 2004-05-04 Steve Hartwell <shspamsink@comcast.net>
364
365 * src/truetype/ttobjs.c (tt_driver_done): Fix typo.
366
367 2004-05-04 Werner Lemberg <wl@gnu.org>
368
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.
376
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.
383
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.
391
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.
399
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.
404
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.
409 Use FT_CALLBACK_DEF.
410 (t1cid_driver_class): Remove casts.
411
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
418 correctly.
419
420 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if
421 current size is zero.
422
423 2004-05-03 Steve Hartwell <shspamsink@comcast.net>
424
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.
430
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
434 within the function.
435 Update code accordingly.
436 (tt_driver_class): Remove casts.
437
438 2004-05-02 Werner Lemberg <wl@gnu.org>
439
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>.
442
443 2004-04-29 Werner Lemberg <wl@gnu.org>
444
445 * docs/formats.txt: Add more information on PFR format.
446
447 2004-04-28 Werner Lemberg <wl@gnu.org>
448
449 * docs/formats.txt: New file.
450 * docs/CHANGES: Updated.
451
452 2004-04-28 Masatake YAMATO <jet@gyve.org>
453
454 * include/freetype/internal/tttypes.h (GX_BlendRec_)
455 [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo.
456
457 * src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo.
458
459 2004-04-27 Masatake YAMATO <jet@gyve.org>
460
461 * src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF
462 for function declarations.
463
464 2004-04-25 George Williams <gww@silcom.com>
465
466 * src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo.
467
468 2004-04-25 Werner Lemberg <wl@gnu.org>
469
470 * src/truetype/Jamfile, docs/CHANGES: Updated.
471
472 2004-04-24 Werner Lemberg <wl@gnu.org>
473
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.
478 Use FT_LOCAL.
479
480 2004-04-24 George Williams <gww@silcom.com>
481
482 Add support for Apple's distortable font technology (in GX fonts).
483
484 * devel/ftoption.h, include/freetype/config/ftoption.h
485 (TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro.
486
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.
491
492 * include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func,
493 FT_Set_Var_Design_Func): New typedefs.
494 Update MultiMasters service.
495
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'
500 and `blend'.
501
502 * include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New
503 macros.
504
505 * include/freetype/internal/fttrace.h: Add `ttgxvar'.
506
507 * src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
508 FT_Set_Var_Blend_Coordinates): New functions.
509
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.
513
514 * src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files.
515
516 * src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
517 ttgxvar.c.
518
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]:
522 New service.
523 (tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated.
524
525 * src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
526 ttgxvar.h.
527 (TT_Process_Simple_Glyph, load_truetype_glyph)
528 [TT_CONFIG_OPTION_GX_VAR_SUPPORT] :Support GX var fonts.
529
530 * src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
531 ttgxvar.h.
532 (tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
533 tt_done_blend.
534
535 * src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
536 ttgxvar.h.
537 (tt_face_load_cvt) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
538 tt_face_vary_cvt.
539
540 * src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c.
541
542 * src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var
543 and T1_Set_Var_Design.
544
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.
547
548 * src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New
549 function declarations.
550
551 2004-04-23 Werner Lemberg <wl@gnu.org>
552
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.
557
558 * src/base/ftobjs.c (FT_Get_Charmap_Index): New function.
559
560 * builds/unix/configure.ac (version_info): Set to 9:7:3.
561 * builds/unix/configure: Updated.
562
563 * builds/win32/visualc/index.html,
564 builds/win32/visualc/freetype.dsp,
565 builds/win32/visualc/freetype.vcproj: s/218/219/.
566
567 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
568 s/2.1.8/2.1.9/.
569
570 * docs/CHANGES, docs/VERSION.DLL: Updated.
571
572 2004-04-21 Werner Lemberg <wl@gnu.org>
573
574 * src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c
575 (ps_parser_load_field): Use FT_CHAR_BIT.
576
577 2004-04-21 David Turner <david@freetype.org>
578
579
580 * Version 2.1.8 released.
581 =========================
582
583
584 * src/cff/cffobjs.c (cff_face_init): Fix a small memory leak.
585
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.
589
590 * src/autofit/aftypes.h: Undefine AF_DEBUG.
591
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.
597
598 * src/lzw/Jamfile: New file.
599
600 2004-04-20 Werner Lemberg <wl@gnu.org>
601
602 * src/psaux/psobjs.c (T1Radix): Renamed to...
603 (ps_radix): This.
604 Update current cursor position.
605
606 * docs/CHANGES: Updated.
607
608 2004-04-18 Werner Lemberg <wl@gnu.org>
609
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.
613
614 2004-04-17 Chisato Yamauchi <cyamauch@a.phys.nagoya-u.ac.jp>
615
616 * src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change
617 from 2004-03-19.
618
619 * src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'.
620
621 * src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with
622 `static'.
623 Remove unused function `RepadBitmap'.
624 * src/pcf/pcfdrivr.c: Don't include pcfutil.h.
625
626 2004-04-16 Werner Lemberg <wl@gnu.org>
627
628 * builds/unix/freetype-config.in (usage): Fix and improve usage
629 information.
630
631 2004-04-15 Werner Lemberg <wl@gnu.org>
632
633 * builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define
634 FT_CHAR_BIT.
635
636 * src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if
637 glyph is vertically distorted or mirrored.
638
639 * src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly
640 for embedded bitmaps.
641
642 * docs/CHANGES: Updated.
643
644 2004-04-15 bytesoftware <bytesoftware@btinternet.com>
645
646 * include/freetype/config/ftconfig.h, src/base/ftstream.c
647 (FT_Stream_ReadFields): More fixes using FT_CHAR_BIT.
648
649 2004-04-14 Werner Lemberg <wl@gnu.org>
650
651 * include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro.
652
653 2004-04-14 Alex Strelnikov <ptktyrf@mail.ru>
654
655 * src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case
656 of error.
657
658 2004-04-14 Werner Lemberg <wl@gnu.org>
659
660 * src/base/ftmac.c [__GNUC__]: Define OS_INLINE.
661 * builds/unix/configure.ac: Don't try to remove `-ansi' compilation
662 switch on the Mac.
663
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
667 automake 1.8a.
668 * builds/unix/configure: Regenerated with autoconf 2.59a.
669
670 2004-04-13 Werner Lemberg <wl@gnu.org>
671
672 * include/freetype/config/ftconfig.h: Use CHAR_BIT to define
673 size of FT_SIZEOF_xxx.
674
675 2004-04-12 Chisato Yamauchi <cyamauch@a.phys.nagoya-u.ac.jp>
676
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.
680
681 * src/sfnt/sfdriver.c (sfnt_interface): Updated.
682 * src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New
683 declarations.
684 * src/sfnt/ttsbit.c (find_sbit_image): Renamed to...
685 (tt_find_sbit_image): This.
686 Updated all callers.
687 (load_sbit_metrics): Renamed to...
688 (tt_load_sbit_metrics): This.
689 Updated all callers.
690
691 2004-04-12 Werner Lemberg <wl@gnu.org>
692
693 * configure: Accept makepp also.
694
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.
698 Use BUILD_DIR.
699
700 * docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update
701 documentation on makepp.
702
703 2004-04-11 Werner Lemberg <wl@gnu.org>
704
705 * src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h.
706
707 2004-04-10 Werner Lemberg <wl@gnu.org>
708
709 * src/lzw/ftlzw.c: Include zopen.h dependent on
710 FT_CONFIG_OPTION_USE_LZW.
711
712 * src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings.
713
714 2004-04-02 Werner Lemberg <wl@gnu.org>
715
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
719 automake 1.8a.
720 * builds/unix/configure: Regenerated with autoconf 2.59a.
721
722 2004-04-01 Werner Lemberg <wl@gnu.org>
723
724 * builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of
725 AC_COMPILE_IFELSE.
726 * builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
727 automake 1.8a.
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.
734
735 2004-03-31 Werner Lemberg <wl@gnu.org>
736
737 Handle broken FNT files which don't have a trailing NULL byte
738 in the face name string.
739
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.
743
744 2004-03-30 Werner Lemberg <wl@gnu.org>
745
746 * src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from
747 2004-03-19.
748
749 2004-03-27 Werner Lemberg <wl@gnu.org>
750
751 * src/base/descrip.mms (OBJS): Add ftbbox.obj.
752
753 2004-03-26 George Williams <gww@silcom.com>
754
755 Add vertical phantom points.
756
757 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add
758 `top_bearing', `vadvance', `pp3, and `pp4'.
759
760 * src/autofit/afloader.c (af_loader_load_g): Handle two more points.
761
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
765 points.
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
771 points.
772
773
774 * src/autohint/ahglyph.c (ah_outline_load): Fix allocation of
775 `news'.
776
777 2004-03-21 Werner Lemberg <wl@gnu.org>
778
779 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing.
780
781 2004-03-20 Steve Hartwell <shspamsink@comcast.net>
782
783 * src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL
784 value for `selection' as `select all'.
785
786 2004-03-19 Steve Hartwell <shspamsink@comcast.net>
787
788 * src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index
789 values > 0 if loading non-TTC fonts.
790
791 * src/base/ftmac.c (open_face_from_buffer): Set positive face_index
792 to zero before calling FT_Open_Face.
793
794 * docs/CHANGES: Updated.
795
796 2004-03-04 Werner Lemberg <wl@gnu.org>
797
798 * Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp,
799 builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h:
800 Add LZW module.
801
802 * Jamfile.in: Removed.
803
804 * docs/CHANGES: Updated.
805
806 * include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/,
807 s/ABS/FT_ABS/. Updated all callers.
808
809 * src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c
810 (PCF_Face_Init): Use FT_ERROR_BASE.
811
812 2004-03-04 Albert Chin <china@thewrittenword.com>
813
814 Add support for PCF fonts compressed with LZW (extension .pcf.Z,
815 created with `compress').
816
817 * include/freetype/config/ftoption.h, devel/ftoption.h
818 (FT_CONFIG_OPTION_USE_LZW): New macro.
819
820 * include/freetype/ftlzw.h: New file.
821 * include/freetype/config/ftheader.h (FT_LZW_H): New macro for
822 ftlzw.h.
823
824 * src/lzw/*: New files.
825
826 * src/pcf/pcfdrivr.c: Include FT_LZW_H.
827 (PCF_Face_Init): Try LZW also.
828
829 * src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate.
830 Beautify.
831
832 2004-03-03 Werner Lemberg <wl@gnu.org>
833
834 * src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code.
835
836 2004-03-02 Werner Lemberg <wl@gnu.org>
837
838 Add embedded bitmap support to CFF driver.
839
840 * src/cff/cffobjs.h (CFF_SizeRec): New structure.
841
842 * src/cff/cffgload.c (cff_builder_init): Updated.
843 (cff_slot_load): Updated.
844 [TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit.
845
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.
851
852 * src/cff/cffdrivr.c (Load_Glyph): Updated.
853 (cff_driver_class): Use CFF_SizeRec.
854
855 * docs/CHANGES: Updated.
856
857 2004-03-01 Werner Lemberg <wl@gnu.org>
858
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.
862
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
868 hints.
869 (ps_hints_apply): Use psh_glyph_find_blue_points.
870
871 2004-02-27 Garrick Meeker <garrick@digitalanarchy.com>
872
873 * builds/unix/configure.ac: Fix compiler flags for
874 `--with-old-mac-fonts'.
875 * builds/unix/configure: Regenerated.
876
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.
882
883 2004-02-26 Werner Lemberg <wl@gnu.org>
884
885 * src/pshinter/pshglob.c (psh_globals_new): Fix value of
886 `dim->stdw.count'.
887 Don't assign default values to blue scale and blue shift.
888
889 2004-02-25 Werner Lemberg <wl@gnu.org>
890
891 * docs/CHANGES: Updated.
892
893 2004-02-25 Garrick Meeker <garrick@digitalanarchy.com>
894 Steve Hartwell <shspamsink@comcast.net>
895
896 Improve MacOS fond support. Provide a new API
897 `FT_New_Face_From_FSSpec' similar to `FT_New_Face'.
898
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.
920
921 * include/freetype/ftmac.h: Updated.
922
923 2004-02-24 Malcolm Taylor <mtaylor@clear.net.nz>
924
925 * src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>:
926 Handle case where outline->num_vedges is zero while computing hinted
927 metrics.
928
929 2004-02-24 Gordon Childs <gchilds@quickcut.com.au>
930
931 * src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value
932 for `count'.
933
934 2004-02-24 Werner Lemberg <wl@gnu.org>
935
936 * include/freetype/t1tables.h (PS_PrivateRec): Add
937 `expansion_factor'.
938
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.
942
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.
946
947 * src/type1/t1tokens.h: Handle `ExpansionFactor'.
948
949 * docs/CHANGES: Updated.
950
951 2004-02-24 Masatake YAMATO <jet@gyve.org>
952
953 Provide generic access to MacOS resource forks.
954
955 * src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New
956 files.
957
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
962 now.
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.
972
973 * src/base/ftbase.c: Include ftrfork.c.
974
975 * src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated.
976
977 * include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H):
978 New macro.
979
980 * include/freetype/internal/fttrace.h: Added `rfork' as a new
981 trace definition.
982
983 * include/freetype/internal/ftstream.h: Declare FT_Stream_New and
984 FT_Stream_Free.
985
986 * include/freetype/config/ftoption.h, devel/ftoption.h
987 (FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option.
988
989 * include/freetype/config/ftstdlib.h (ft_strrchr): New macro.
990
991 2004-02-23 Werner Lemberg <wl@gnu.org>
992
993 * docs/CHANGES: Updated.
994
995 * include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H.
996
997 2004-02-23 Masatake YAMATO <jet@gyve.org>
998
999 Provide a simple API to control FreeType's tracing levels.
1000
1001 * include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
1002 FT_Trace_Get_Name): New declarations.
1003
1004 * src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New
1005 functions.
1006
1007 2004-02-23 David Turner <david@freetype.org>
1008
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...
1013
1014 2004-02-21 Werner Lemberg <wl@gnu.org>
1015
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.
1022
1023 2004-02-20 Werner Lemberg <wl@gnu.org>
1024
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.
1029
1030 * docs/CHANGES: Updated.
1031
1032 2004-02-19 Werner Lemberg <wl@gnu.org>
1033
1034 * src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling.
1035 * src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning.
1036
1037 2004-02-18 Werner Lemberg <wl@gnu.org>
1038
1039 * include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly.
1040
1041 * src/base/ftglyph.c (ft_bitmap_glyph_class,
1042 ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF.
1043
1044 * src/smooth/ftsmooth.c (ft_smooth_render): Handle
1045 FT_RENDER_MODE_LIGHT.
1046
1047 2004-02-17 Werner Lemberg <wl@gnu.org>
1048
1049 Fix callback functions in cache module.
1050
1051 * src/cache/ftccback.h: New file for callback declarations.
1052
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.
1060
1061 * src/cache/ftccache.c: Include ftccback.h.
1062 (ftc_cache_init, ftc_cache_done): New wrapper functions which use
1063 FT_LOCAL_DEF.
1064
1065 * src/cache/ftccmap.c: Include ftccback.h.
1066 (ftc_cmap_cache_class): Use local wrapper functions.
1067
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.
1071
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.
1075
1076 * src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class):
1077 Use FT_CALLBACK_TABLE_DEF.
1078
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.
1082
1083 * src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h.
1084
1085 2004-02-17 Masatake YAMATO <jet@gyve.org>
1086
1087 * include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo
1088 (FT_EXPORT_DEF -> FT_EXPORT).
1089
1090 * include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto.
1091
1092 2004-02-15 Werner Lemberg <wl@gnu.org>
1093
1094 * src/base/ftobjs.c (FT_Set_Char_Size): Fix typo.
1095
1096 2004-02-14 Masatake YAMATO <jet@gyve.org>
1097
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.
1104
1105 2004-02-14 Werner Lemberg <wl@gnu.org>
1106
1107 * src/type1/t1load.c (parse_dict): Initialize `start_binary'.
1108
1109 2004-02-13 Robert Etheridge <roberte@stcc.cc.tx.us>
1110
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.
1114
1115 2004-02-12 Werner Lemberg <wl@gnu.org>
1116
1117 * src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if
1118 ppem values don't change. Suggested by Graham Asher.
1119
1120 2004-02-11 Werner Lemberg <wl@gnu.org>
1121
1122 * src/cid/cidload.c (cid_face_open): Always allocate
1123 face->cid_stream so that we can deallocate it safely.
1124
1125 2004-02-10 Werner Lemberg <wl@gnu.org>
1126
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.
1133
1134 dup /WeightVector exch def
1135
1136 Since the token following /WeightVector isn't `[' (starting an
1137 array) it is simply ignored.
1138
1139 * include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a
1140 new internal error value.
1141
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.
1158
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.
1162
1163 2004-02-09 Werner Lemberg <wl@gnu.org>
1164
1165 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
1166 <cff_op_endchar>: Preserve glyph width before calling
1167 cff_operator_seac.
1168
1169 2004-02-09 Martin Muskens <mmuskens@aurelon.com>
1170
1171 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special
1172 first argument for `hintmask' and `cntrmask' operators also.
1173
1174 2004-02-08 Werner Lemberg <wl@gnu.org>
1175
1176 * builds/unix/configure.in: Call AC_SUBST for `enable_shared',
1177 `hardcode_libdir_flag_spec', and `wl'.
1178 * builds/unix/configure: Regenerated.
1179
1180 * builds/unix/freetype-config.in: Make --prefix and --exec-prefix
1181 actually work.
1182 Report a proper --rpath (or -R) value for --libs argument if a
1183 shared library has been built.
1184
1185 * docs/CHANGES: Updated.
1186
1187 2004-02-07 Keith Packard <keithp@keithp.com>
1188
1189 * src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix
1190 computation of various vertical and horizontal metric values.
1191
1192 * src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font):
1193 Ditto.
1194
1195 2004-02-07 Werner Lemberg <wl@gnu.org>
1196
1197 * builds/win32/visualc/index.html,
1198 builds/win32/visualc/freetype.dsp,
1199 builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated.
1200
1201 2004-02-07 Vitaliy Pasternak <v_a_pasternak@mail.ru>
1202
1203 * builds/win32/visualc/freetype.sln,
1204 builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003.
1205
1206 2004-02-03 Werner Lemberg <wl@gnu.org>
1207
1208 * include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP):
1209 Initialize `node'.
1210 * src/type1/t1load.c (parse_dict): Initialize `have_integer'.
1211
1212 2004-02-02 Werner Lemberg <wl@gnu.org>
1213
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.
1219
1220 2004-02-01 Werner Lemberg <wl@gnu.org>
1221
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
1225 also.
1226
1227 2004-02-01 David Turner <david@freetype.org>
1228
1229 * src/sfnt/Jamfile: Removing `ttcmap' from the list of sources.
1230
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
1237 macro.
1238 (FTC_MRULIST_LOOKUP): Use it.
1239
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
1245 heavy testing).
1246
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'.
1251
1252 * src/autofit/*: Many updates, but the code is still buggy...
1253
1254 2004-01-31 Werner Lemberg <wl@gnu.org>
1255
1256 * src/cff/cffgload.c (cff_operator_seac): Fix magnitude of
1257 accent offset.
1258 Update code similarly to the seac support for Type 1 fonts.
1259 (cff_decoder_parse_charstrings) <cff_op_endchar>: Fix magnitude
1260 of accent offset.
1261 Don't hint glyphs twice if seac is emulated.
1262 <cff_op_flex>: Assign correct point tags.
1263 * docs/CHANGES: Updated.
1264
1265 2004-01-30 Werner Lemberg <wl@gnu.org>
1266
1267 * src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not
1268 FT_MEM_COPY, for copying the private dict.
1269
1270 * src/type1/t1load.c (parse_subrs): Assign number of subrs only
1271 in first run.
1272 (parse_charstrings): Parse /CharStrings in second run without
1273 assigning values.
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.
1279
1280 2004-01-29 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
1281
1282 * builds/win32/visualc/index.html: New file, giving detailed
1283 explanations about forcing CR+LF line endings for the VC++ project
1284 files.
1285
1286 2004-01-22 Garrick Meeker <garrick@digitalanarchy.com>
1287
1288 * src/cff/cffload.c (cff_subfont_load): Initialize `dict'.
1289
1290 2004-01-22 Werner Lemberg <wl@gnu.org>
1291
1292 Add support for the hexadicimal representation of binary data
1293 started with `StartData' in CID-keyed Type 1 fonts.
1294
1295 * include/freetype/internal/t1types.h (CID_FaceRec): Add new
1296 members `binary_data' and `cid_stream'.
1297
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.
1305
1306 * src/cid/cidobjs.c (cid_face_done): Free `binary_data' and
1307 `cid_stream'.
1308
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'.
1312
1313 * src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'.
1314
1315 * docs/CHANGES: Updated.
1316
1317 2004-01-21 Werner Lemberg <wl@gnu.org>
1318
1319 include/freetype/config/ftstdlib.h (ft_atoi): Replaced with...
1320 (ft_atol): This.
1321 * src/base/ftdbgmem.c: s/atol/ft_atol/.
1322 * src/type42/t42drivr.c: s/ft_atoi/ft_atol/.
1323
1324 2004-01-20 Masatake YAMATO <jet@gyve.org>
1325
1326 * include/freetype/ftcache.h: Delete duplicated definition of
1327 FTC_FaceID.
1328
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.
1332
1333 2004-01-20 David Turner <david@freetype.org>
1334
1335 * src/cache/ftcmanag.c (ftc_size_node_compare): Call
1336 FT_Activate_Size.
1337
1338 2004-01-20 Werner Lemberg <wl@gnu.org>
1339
1340 * src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one
1341 CR, LF, or CR/LF after `eexec'.
1342
1343 2004-01-18 David Turner <david@freetype.org>
1344
1345 * src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler
1346 warning.
1347
1348 * src/tools/docmaker/*: Updating beautifier tool.
1349
1350 2004-01-15 David Turner <david@freetype.org>
1351
1352 * src/base/ftoutln.c (ft_orientation_extremum_compute): Fix
1353 infinite loop bug.
1354
1355 * include/freetype/ftstroke.h: Include FT_GLYPH_H.
1356 (FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New
1357 declarations.
1358
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
1362 functions.
1363 (FT_Stroker_EndSubPath): Close path if needed.
1364 (FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind.
1365
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.
1370
1371 * src/tools/docmaker/docbeauty.py: New file to beautify the
1372 documentation comments (e.g., to convert them to single block border
1373 mode).
1374 * src/tools/docmaker/docmaker.py (file_exists, make_file_list):
1375 Moved to...
1376 * src/tools/docmaker/utils.py (file_exists, make_file_list): Here.
1377
1378 2004-01-14 David Turner <david@freetype.org>
1379
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.
1383
1384 2004-01-14 Werner Lemberg <wl@gnu.org>
1385
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).
1389
1390 2004-01-13 Graham Asher <graham.asher@btinternet.com>
1391
1392 * src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of
1393 `glyph->memory' up to free arrays properly in case of failure.
1394
1395 2004-01-10 Masatake YAMATO <jet@gyve.org>
1396
1397 Make `FT_Get_CMap_Language_ID' work with CFF. Bug reported by
1398 Steve Hartwell <shspamsink@comcast.net>.
1399
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.
1404
1405 * src/sfnt/ttcmap0.c: Exit loop after a format match has been found.
1406 Suggested by Steve Hartwell <shspamsink@comcast.net>.
1407
1408 2004-01-03 Masatake YAMATO <jet@gyve.org>
1409
1410 * src/base/ftobjs.c (destroy_charmaps): New function.
1411 (destroy_face, open_face): Use `destroy_charmaps'.
1412
1413 2004-01-01 Werner Lemberg <wl@gnu.org>
1414
1415 * docs/CHANGES: Updated.
1416
1417 2004-01-01 Michael Jansson <mjan@em2-solutions.com>
1418
1419 * src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of
1420 size->metrics.descender.
1421
1422 2003-12-31 Wolfgang Domröse <porthos.domroese@harz.de>
1423
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.
1428
1429 2003-12-31 Werner Lemberg <wl@gnu.org>
1430
1431 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous
1432 change. It's not necessary.
1433
1434 2003-12-29 Smith Charles <smith.charles@free.fr>
1435
1436 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated
1437 flags set' correctly.
1438
1439 2003-12-29 Werner Lemberg <wl@gnu.org>
1440
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
1445 tracing output.
1446
1447 2003-12-26 Werner Lemberg <wl@gnu.org>
1448
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
1452 ppem values.
1453 * src/sfnt/ttsbit.h: Updated.
1454
1455 * src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values
1456 larger than -0FFFF.
1457
1458 2003-12-25 Werner Lemberg <wl@gnu.org>
1459
1460 * src/base/fttrigon.c, src/base/ftgloadr.c: Inlude
1461 FT_INTERNAL_OBJECTS_H.
1462
1463 * src/base/ftstroke.c (FT_Outline_GetInsideBorder,
1464 FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with
1465 C++ compilers.
1466
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
1470 compiler warning.
1471
1472 2003-12-24 Werner Lemberg <wl@gnu.org>
1473
1474 * src/cache/ftcsbits.c (FTC_SNode_Weight):
1475 s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/.
1476
1477 2003-12-24 David Turner <david@freetype.org>
1478
1479 * Fixed compilation problems in the cache sub-system.
1480
1481 * Partial updates to src/autofit.
1482
1483 * Jamfile (FT2_COMPONENTS): Add autofit module.
1484
1485 2003-12-23 Werner Lemberg <wl@gnu.org>
1486
1487 * src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle
1488 CID-keyed fonts.
1489
1490 2003-12-23 David Turner <david@freetype.org>
1491
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.
1498
1499 Add support for extraction of `inside' and `outside' borders.
1500
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.
1507
1508 2003-12-22 Werner Lemberg <wl@gnu.org>
1509
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.
1514
1515 * include/freetype/freetype.h (FT_Encoding): Improve comment,
1516 based on work by Detlef Würkner <TetiSoft@apg.lahn.de>.
1517
1518 * docs/CHANGES: Updated.
1519
1520 2003-12-22 David Turner <david@freetype.org>
1521
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,
1531 src/cache/ftcmru.c,
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):
1540
1541 *Complete* rewrite of the cache sub-system to `solve' the
1542 following points:
1543
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
1547
1548 - a new function named FTC_Manager_RemoveFaceID to deal
1549 with the uninstallation of FaceIDs
1550
1551 - the image and sbit cache are now abstract classes, that
1552 can be extended much more easily by client applications
1553
1554 - better performance in certain areas. Further optimizations
1555 to come shortly anyway...
1556
1557 - the FTC_CMapCache_Lookup function has changed its signature,
1558 charmaps can now only be retrieved by index
1559
1560 - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace
1561 FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in
1562 private header for the moment)
1563
1564 2003-12-21 Werner Lemberg <wl@gnu.org>
1565
1566 * src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword
1567 is encountered.
1568
1569 2003-12-19 Werner Lemberg <wl@gnu.org>
1570
1571 * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32. For
1572 example, the Japanese Hiragino font already contains 15 subfonts.
1573
1574 * src/cff/cffload.c (cff_font_load): Deallocate `sids' array for
1575 CID-keyed fonts.
1576
1577 * devel/ftoption.h: Define FT_DEBUG_MEMORY.
1578
1579 2003-12-18 Werner Lemberg <wl@gnu.org>
1580
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.
1583
1584 2003-12-18 Werner Lemberg <wl@gnu.org>
1585
1586 * src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of
1587 `cid_count' to `FT_ULong'.
1588
1589 * src/cff/cffgload.c (cff_slot_load): Take care of empty `cids'
1590 array.
1591
1592 * src/cff/cffload.c (cff_charset_done): Free `cids' array.
1593 (cff_font_load): Create cids array only for CID-keyed fonts which
1594 are subsetted.
1595
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
1599 CID-keyed.
1600
1601 * src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h.
1602
1603 2003-12-17 Werner Lemberg <wl@gnu.org>
1604
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'
1607 table.
1608
1609 * docs/CHANGES: Updated.
1610
1611 2003-12-17 Masatake YAMATO <jet@gyve.org>
1612
1613 Add new function FT_Get_CMap_Language_ID to extract the language ID
1614 for TrueType/sfnt fonts.
1615
1616 * include/freetype/internal/services/svttcmap.h: New file.
1617 * include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add
1618 svttcmap.h.
1619
1620 * src/sfnt/sfdriver.c: Include ttcmap0.h.
1621 (tt_service_get_cmap_info): New service.
1622 (sfnt_services): Updated.
1623
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.
1630
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.
1635
1636 2003-12-16 Werner Lemberg <wl@gnu.org>
1637
1638 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed. Obsolete.
1639
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.
1648
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.
1654 Obsolete.
1655 * src/cff/cffobjs.h (CFF_CharMapRec): Removed. Obsolete.
1656
1657 2003-12-15 Werner Lemberg <wl@gnu.org>
1658
1659 * docs/CHANGES: Updated.
1660
1661 2003-12-15 Wolfgang Domröse <porthos.domroese@harz.de>
1662
1663 * builds/atari/*: New directory for building FreeType 2 on Atari
1664 with the PureC compiler.
1665
1666 2003-12-12 Wolfgang Domröse <porthos.domroese@harz.de>
1667
1668 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add
1669 cast.
1670 * src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return
1671 value is either 0 or 1.
1672
1673 2003-12-12 Werner Lemberg <wl@gnu.org>
1674
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.
1686
1687 * docs/CHANGES: Updated.
1688
1689 2003-12-11 Werner Lemberg <wl@gnu.org>
1690
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.
1694
1695 2003-12-10 Werner Lemberg <wl@gnu.org>
1696
1697 Use implementation specific SID value 0xFFFF to indicate that
1698 a dictionary element is missing.
1699
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.
1706
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
1710 CID driver).
1711 Fix computation of style flags.
1712
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'
1716 and `postscript'.
1717
1718 2003-12-10 Detlef Würkner <TetiSoft@apg.lahn.de>
1719
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.
1723
1724 2003-12-09 Werner Lemberg <wl@gnu.org>
1725
1726 * src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES
1727 only if a `post' table is present.
1728
1729 2003-12-09 George Williams <gww@silcom.com>
1730
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.
1734
1735 2003-12-08 Werner Lemberg <wl@gnu.org>
1736
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.
1742
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.
1749
1750 2003-12-08 Wolfgang Domröse <porthos.domroese@harz.de>
1751
1752 * src/autohint/ahhint.c (ah_hinter_hint_edges,
1753 ah_hinter_align_strong_points): Add some casts.
1754
1755 * src/base/ftoutln.c (FT_OrientationExtremumRec): Change type
1756 of `pos' to FT_Long.
1757
1758 * src/base/ftobjs.c (Mac_Read_POST_Resource,
1759 Mac_Read_sfnt_Resource): Change type of `len' to FT_Long.
1760
1761 * src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'.
1762
1763 2003-12-07 Werner Lemberg <wl@gnu.org>
1764
1765 * docs/raster.txt: New file, taken from FreeType 1 and completely
1766 revised.
1767
1768 2003-12-04 Masatake YAMATO <jet@gyve.org>
1769
1770 * src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for
1771 t1_interface. t1_interface is used.
1772
1773 2003-11-27 David Turner <david@freetype.org>
1774
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.
1778
1779 2003-11-25 Werner Lemberg <wl@gnu.org>
1780
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'.
1784
1785 2003-11-23 Werner Lemberg <wl@gnu.org>
1786
1787 * src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and
1788 64 bit version).
1789 * include/freetype/internal/ftcalc.h: Updated.
1790
1791 * src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro.
1792 (TT_INT64): Removed.
1793 (DO_DIV): Use TT_MULDIV_NO_ROUND.
1794
1795 * src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use
1796 metrics->x_scale and metrics->y_scale.
1797
1798 2003-11-22 Rogier van Dalen <R.C.van.Dalen@umail.leidenuniv.nl>
1799
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.
1805
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.
1809
1810 (DO_DIV): Don't use TT_MULDIV.
1811
1812 (Ins_SHC): This instruction actually touches the points.
1813 (Ins_MSIRP): Fix undocumented behaviour.
1814
1815 * src/truetype/ttinterp.h (TT_ExecContextRec): Updated.
1816
1817 2003-11-22 Werner Lemberg <wl@gnu.org>
1818
1819 * docs/VERSION.DLL, docs/CHANGES: Updated.
1820
1821 * src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and
1822 metrics->y_scale really precise.
1823
1824 (FT_Load_Glyph): Update computation of linearHoriAdvance and
1825 linearVertAdvance.
1826
1827 * src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC.
1828
1829 2003-11-22 David Turner <david@freetype.org>
1830
1831 * src/autofit/*: More updates.
1832
1833 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
1834 * builds/unix/configure.ac (version_info): Set to 9:6:3.
1835 * README: Updated.
1836
1837 2003-11-13 John A. Boyd Jr. <jaboydjr@netwalk.com>
1838
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.
1842
1843 2003-11-11 Werner Lemberg <wl@gnu.org>
1844
1845 * docs/CHANGES: Updated.
1846
1847 2003-11-11 John A. Boyd Jr. <jaboydjr@netwalk.com>
1848
1849 Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF
1850 fonts.
1851
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.
1855
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.
1859
1860 2003-11-07 Werner Lemberg <wl@gnu.org>
1861
1862
1863 * Version 2.1.7 released.
1864 =========================
1865
1866
1867 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
1868
1869 * builds/unix/ft2unix.h: Fix comments.
1870
1871 * builds/unix/ftconfig.in: Synchronized with ANSI version.
1872 Use `#undef' in templates as recommended in the autoconf
1873 documentation.
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'.
1877
1878 * builds/unix/install.mk (install): Install Unix version of
1879 `ftconfig.h'.
1880
1881 * builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro
1882 to include the correct `ftconfig.h' file.
1883
1884 * builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed.
1885 (FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59.
1886
1887 * builds/unix/freetype2.m4: Updated syntax to autoconf 2.59.
1888
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.
1895
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
1899 automake 1.7.8.
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.
1905
1906 * builds/vms/ftconfig.h: Synchronized with ANSI version.
1907
1908 * docs/CUSTOMIZE: Fix documentation error.
1909 * docs/CHANGES, docs/VERSION.DLL, docs/release: Updated.
1910
1911 * builds/freetype.mk (refdoc): Updated --title.
1912
1913 2003-11-07 David Turner <david@freetype.org>
1914
1915
1916 * Version 2.1.6 released.
1917 =========================
1918
1919
1920 * install: Removed. Obsolete.
1921
1922 2003-11-04 Werner Lemberg <wl@gnu.org>
1923
1924 * src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H.
1925 (sfnt_service_sfnt_table): New service.
1926 (sfnt_services): Updated.
1927
1928 * docs/license.txt: Reworded.
1929
1930 2003-11-03 Werner Lemberg <wl@gnu.org>
1931
1932 * include/freetype/*: Add a guard to all public header files which
1933 load FT_FREETYPE_H to reject freetype.h from FreeType 1.
1934
1935 2003-11-02 Patrick Welche <prlw1@newn.cam.ac.uk>
1936
1937 * builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect
1938 first argument of AC_DEFUN with brackets to avoid possible
1939 expansion.
1940
1941 2003-11-02 Werner Lemberg <wl@gnu.org>
1942
1943 * include/freetype/cache/ftcglyph.h: Don't include stddef.h.
1944
1945 * include/freetype/freetype.h: Fix check for ft2build.h.
1946
1947 2003-11-01 Werner Lemberg <wl@gnu.org>
1948
1949 * include/freetype/freetype.h: Check that ft2build.h has been
1950 loaded first.
1951
1952 * src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied
1953 patch.
1954
1955 2003-10-31 Detlef Würkner <TetiSoft@apg.lahn.de>
1956
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.
1959
1960 2003-10-31 Werner Lemberg <wl@gnu.org>
1961
1962 * include/freetype/internal/ftserv.h
1963 (FT_SERVICE_POSTSCRIPT_NAMES_H): Removed. Unused.
1964
1965 * src/type42/t42drivr.c (t42_services): Updated.
1966
1967 2003-10-29 David Turner <david@freetype.org>
1968
1969 * include/freetype/internal/bdftypes.h: Removed. Obsolete.
1970 * src/base/ftbdf.c: Updated.
1971
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.
1975
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.
1979
1980 * include/freetype/internal/services/svbdf.h: Include FT_BDF_H.
1981
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.
1986
1987 * include/freetype/internal/services/svpsinfo.h: New file, providing
1988 PostScript info service.
1989
1990 * include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H,
1991 FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and
1992 svpsinfo.h.
1993 * include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H,
1994 FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed.
1995
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.
2001
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.
2006
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.
2009
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.
2014
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.
2019
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.
2023
2024 * src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H
2025 but t42types.h directly.
2026
2027 * src/psnames/psmodule.c (psnames_interface, psnames_services):
2028 Renamed to...
2029 (pscmaps_interface, pscmaps_services): This.
2030 Updated all users.
2031
2032
2033 * src/gzip/infblock.c (inflate_blocks): Remove compiler warning.
2034
2035 2003-10-22 Werner Lemberg <wl@gnu.org>
2036
2037 * src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'.
2038
2039 * src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec'
2040 is real.
2041
2042 * src/type42/t42parse.c (t42_parse_encoding): Improve boundary
2043 checking while parsing.
2044
2045 * docs/CHANGES: Updated.
2046
2047 2003-10-21 Josselin Mouette <joss@debian.org>
2048
2049 * include/freetype/internal/t1types.h (T1_FontRec): `paint_type'
2050 and `stroke_width' aren't pointers.
2051
2052 * src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c
2053 (T1_Face_Done): Don't free `paint_type' and `stroke_width'.
2054
2055 2003-10-20 Graham Asher <graham.asher@btinternet.com>
2056
2057 * src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'.
2058
2059 2003-10-19 Werner Lemberg <wl@gnu.org>
2060
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'.
2065
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'.
2069
2070 2003-10-16 Werner Lemberg <wl@gnu.org>
2071
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...').
2076
2077 * src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth
2078 parameter to `FT_UInt'.
2079 * src/type42/t42objs.h: Updated.
2080
2081 * src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory'
2082 to FT_Bool.
2083 (T42_Loader): Change type of `num_chars' and `num_glyphs' to
2084 FT_UInt.
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
2092 from psaux.
2093 Handle `/Encoding [ ... ]' also.
2094 (T42_Load_Status): New enumeration.
2095 (t42_parse_sfnts): Updated to use new PostScript parser routines
2096 from psaux.
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
2103 from psaux.
2104 Remove code for synthetic fonts (which can't occur in Type 42
2105 fonts).
2106 (t42_loader_done): Release `swap_table'.
2107
2108 * src/psaux/psobjs.c (skip_string): Increase `cur' properly.
2109
2110 * src/type1/t1load.c (parse_charstrings): Make test for `.notdef'
2111 faster.
2112
2113 2003-10-15 Graham Asher <graham.asher@btinternet.com>
2114
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.
2122
2123 2003-10-08 Werner Lemberg <wl@gnu.org>
2124
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
2128 handled elsewhere.
2129 Improve boundary checking while parsing.
2130 (parse_dict): Improve boundary checking while parsing.
2131 Use ft_memcmp to simplify code.
2132
2133 2003-10-07 Werner Lemberg <wl@gnu.org>
2134
2135 * src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic
2136 fonts properly.
2137 (parse_charstrings): Copy correct number of characters into
2138 `name_table'.
2139
2140 2003-10-06 Werner Lemberg <wl@gnu.org>
2141
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.
2145
2146 * include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to...
2147 (ft_isxdigit): This. Updated all callers.
2148 (ft_isdigit): New alias to `isdigit'.
2149
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.
2153
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
2164 replacement of...
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
2172 argument types.
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'
2185 everywhere.
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.
2191
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
2196 to...
2197 (cid_parser_skip_PS_token): This.
2198
2199 * src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean
2200 fields.
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
2206 encoding.
2207 After decrypting, replace the four random bytes at the beginning
2208 with whitespace.
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'.
2216 Updated.
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'.
2225
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'.
2229
2230
2231 * src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_OK if
2232 success.
2233
2234 2003-10-05 Werner Lemberg <wl@gnu.org>
2235
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.
2239
2240 2003-10-04 Werner Lemberg <wl@gnu.org>
2241
2242 * src/base/ftoutln.c (FT_OrientationExtremumRec,
2243 FT_Outline_Get_Orientation): Trivial typo fixes to make it compile.
2244
2245 2003-10-02 Markus F.X.J. Oberhumer <markus@oberhumer.com>
2246
2247 * src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset'
2248 has four bytes, not two.
2249 Fix all users.
2250 (fnt_font_load, FNT_Load_Glyph): Add more font validity tests.
2251
2252 2003-10-01 David Turner <david@freetype.org>
2253
2254 * src/autofit/*: Adding first source files of the new multi-script
2255 `auto-fitter'.
2256
2257 * include/freetype/ftoutln.h (FT_Orientation): New enumeration.
2258 (FT_Outline_Get_Orientation): New declaration.
2259
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.
2264
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.
2268
2269 2003-09-30 Werner Lemberg <wl@gnu.org>
2270
2271 * src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is
2272 found.
2273
2274 * src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE,
2275 IS_T1_SPACE): Removed.
2276 (PFB_Tag): Removed.
2277 (read_pfb_tag): Don't use PFB_Tag.
2278
2279 * src/type42/t42parse.c (t42_is_space): Handle `\f' also.
2280 (t42_parse_encoding): Handle synthetic fonts.
2281
2282 2003-09-29 Werner Lemberg <wl@gnu.org>
2283
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.
2288
2289 2003-09-29 David Turner <david@freetype.org>
2290
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?)
2296
2297 * include/freetype/internal/psnames.h: Removed. Most of its
2298 contents is moved to...
2299 * include/freetype/internal/services/svpsname.h: New file.
2300
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...
2305 (PsFontName): This.
2306 Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and
2307 `POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere.
2308
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.
2320
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
2327 `svpsname.h'.
2328
2329 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c
2330 (ft_module_get_service): New function.
2331
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
2335 service.
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.
2345
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.
2350
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.
2357
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.
2370
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.
2377
2378 * src/truetype/ttobjs.c: Don't include
2379 FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
2380
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.
2386
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
2393 service.
2394 * src/type42/t42objs.h: Don't include
2395 FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
2396
2397
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>.
2401
2402 2003-09-21 Werner Lemberg <wl@gnu.org>
2403
2404 * include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE):
2405 Fix compilation warning (s/pptr/Pptr/).
2406
2407 * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H,
2408 FT_INTERNAL_FNT_TYPES_H): Removed.
2409
2410 2003-09-21 David Turner <david@freetype.org>
2411
2412 Migrating the PFR and WINFNT drivers to the new service-based
2413 internal API.
2414
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.
2418
2419 * include/freetype/internal/pfr.h: Removed. Most of its data are
2420 moved to...
2421 * include/freetype/internal/services/svpfr.h: New file.
2422
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.
2428
2429 * src/base/ftobjs.c (FT_Get_Name_Index): Simplified code.
2430
2431 * src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of
2432 FT_INTERNAL_PFR_H.
2433 (ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning,
2434 FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'.
2435
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'.
2439
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.
2446
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.
2454
2455 * src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo.
2456
2457 * src/type1/t1driver.c (t1_service_ps_name): Fix typo.
2458
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
2462 warnings.
2463
2464 2003-09-19 David Bevan <dbevan@emtex.com>
2465
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
2468 indicator (0x8003).
2469 * docs/CHANGES: Updated.
2470
2471 2003-09-16 Werner Lemberg <wl@gnu.org>
2472
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.
2478
2479 * src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove
2480 C++ compiler warnings.
2481
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.
2484
2485 2003-09-15 Werner Lemberg <wl@gnu.org>
2486
2487 Avoid header files with identical names.
2488
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.
2508
2509 * include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and
2510 FT_END_HEADER.
2511 Add copyright notice.
2512 Update macro names of services header files.
2513
2514 * builds/freetype.mk (SERVICES_DIR): New variable.
2515 (BASE_H): Add services header files.
2516
2517 2003-09-11 Werner Lemberg <wl@gnu.org>
2518
2519 * builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'.
2520
2521 * src/cff/cffdrivr.c: Don't load headers twice.
2522
2523 * include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro.
2524 * src/base/ftobjs.c: Include FT_SERVICE_SFNT_H.
2525
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'.
2530
2531 2003-09-11 David Turner <david@freetype.org>
2532
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.
2536
2537 Note that these changes will break source & binary compatibility for
2538 authors of external font drivers.
2539
2540 * include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT,
2541 FT_DUMMY_STMNT): New macros.
2542
2543 * include/freetype/internal/ftserv.h: New file, containing the new
2544 structures and macros to provide `services'.
2545
2546 * include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H,
2547 FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H):
2548 Removed, obsolete.
2549 (FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'.
2550
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.
2555
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)
2558 to...
2559 * include/freetype/internal/services/multmast.h: New file.
2560
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.
2566
2567 * include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function
2568 pointer moved (in modified form) to `services/sfnt.h'.
2569
2570 * include/freetype/ftmodule.h (FT_Module_Interface): Make it a
2571 a typedef to `FT_Pointer'.
2572
2573 * include/freetype/internal/tttypes.h (TT_FaceRec): Add
2574 `postscript_name'.
2575 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
2576 `postscript_name'.
2577 Add `services' element.
2578 (FT_LibraryRec): Remove `meta_class'.
2579
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'.
2584
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'.
2590
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'.
2603
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'.
2607
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'.
2614
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'.
2620
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'.
2626
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'.
2632
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.
2639 Updated.
2640 (sfnt_service_glyph_dict, sfnt_service_ps_name): New structures
2641 providing services.
2642 (sfnt_services): New services list.
2643 (sfnt_get_interface): Use `ft_service_list_lookup'.
2644
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'.
2648
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'.
2656
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'.
2663
2664
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.
2670
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.
2675
2676 2003-09-09 David Turner <david@freetype.org>
2677
2678 Fixing PFR kerning support. The tables within the font file contain
2679 (charcode,charcode) kerning pairs, we need to convert them to
2680 (gindex,gindex).
2681
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):
2685 New functions.
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.
2694
2695 * include/freetype/ftoption.h: Commenting out the macro
2696 TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
2697
2698 2003-09-02 David Turner <david@freetype.org>
2699
2700
2701 * Version 2.1.5 released.
2702 =========================
2703
2704
2705 2003-08-31 Manish Singh <yosh@gimp.org>
2706
2707 * src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but
2708 FT_MEM_MOVE.
2709
2710 2003-08-30 Werner Lemberg <wl@gnu.org>
2711
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.
2716 Updated all users.
2717 * docs/CHANGES: Document it.
2718
2719 2003-08-27 Werner Lemberg <wl@gnu.org>
2720
2721 * src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters
2722 for spacing.
2723
2724 2003-08-27 Mike FABIAN <mfabian@suse.de>
2725
2726 * src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c
2727 (BDF_Face_Init): Accept lowercase characters for slant and weight.
2728
2729 2003-08-18 David Turner <david@freetype.org>
2730
2731 * include/freetype/config/ftoption.h: Disabling TrueType bytecode
2732 interpreter until the UNPATENTED_HINTING works as advertised.
2733
2734 * src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for
2735 setting `load_flags'.
2736
2737 * Jamfile: Adding the `refdoc' target to the Jamfile in order to
2738 build the API Reference in `docs/reference' automatically.
2739
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.
2745
2746 * include/freetype/ttunpat.h: Fixing documentation comment.
2747
2748 * include/freetype/config/ftoption.h, devel/ftoption.h
2749 (TT_CONFIG_OPTION_OPTION_COMPILE_UNPATENTED_HINTING): Replaced
2750 with...
2751 (TT_CONFIG_OPTION_UNPATENTED_HINTING): This. Updated all users.
2752 (TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed.
2753
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.
2758
2759 * src/truetype/ttobjs.c (tt_face_init): Use
2760 `FT_DEBUG_HOOK_UNPATENTED_HINTING'.
2761
2762 2003-08-06 Werner Lemberg <wl@gnu.org>
2763
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
2766 previous change.
2767
2768 2003-08-05 Werner Lemberg <wl@gnu.org>
2769
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.
2774
2775 2003-07-26 Werner Lemberg <wl@gnu.org>
2776
2777 * builds/unix/configure.ac (version_info): Set to 9:4:3.
2778 * builds/unix/configure: Updated.
2779 * docs/CHANGES, docs/VERSION.DLL: Updated.
2780
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'.
2784
2785 2003-07-25 Werner Lemberg <wl@gnu.org>
2786
2787 Make API reference valid HTML 4.01 transitional.
2788
2789 * src/tools/docmaker/tohtml.py (html_header_1): Add doctype
2790 and charset.
2791 (html_header_2): Fix style elements and add some more.
2792 Fix syntax.
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'
2796 table attribute.
2797 (chapter_inter, chapter_footer): Add <li> and use special <ul>
2798 class.
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
2803 colour.
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'
2809 table attribute.
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.
2814
2815 2003-07-25 David Turner <david@freetype.org>
2816
2817 This change reimplements fix from 2003-05-30 without breaking
2818 binary compatibility.
2819
2820 * include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle',
2821 `is_fixed_pitch', `underline_position', `underline_thickness' are
2822 reverted to be normal values.
2823
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.
2831
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.
2839
2840 * src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch',
2841 `underline_position', `underline_thickness' are reverted to be
2842 normal values.
2843 * src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated.
2844
2845 * src/psaux/psobjs.c (ps_parser_load_field): Updated.
2846
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'.
2855
2856 2003-07-24 Werner Lemberg <wl@gnu.org>
2857
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.
2862
2863 * docs/CHANGES, docs/VERSION.DLL, README: Updated.
2864
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.
2868
2869 * docs/release: New file.
2870
2871 2003-07-23 YAMANO-UCHI Hidetoshi <mer@din.or.jp>
2872
2873 * include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New
2874 member function `to_bytes'.
2875
2876 * src/psaux/psauxmod.c (ps_parser_funcs): New member
2877 `ps_parser_to_bytes'.
2878 (psaux_module_class): Increase version to 0x20000L.
2879
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.
2886
2887 2003-07-07 Werner Lemberg <wl@gnu.org>
2888
2889 * builds/freetype.mk (DOC_DIR): New variable.
2890 (refdoc): Use *_DIR variables.
2891 (distclean): Remove documentation files.
2892
2893 * builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'.
2894
2895 * configure: Set DOC_DIR variable.
2896
2897 2003-07-07 Patrik Hägglund <patrik.hagglund@bredband.net>
2898
2899 * builds/freetype.mk (refdoc): New target to build the
2900 documentation.
2901 (.PHONY): Updated.
2902
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.
2906
2907 2003-07-06 Werner Lemberg <wl@gnu.org>
2908
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
2911 missing.
2912
2913 2003-07-01 Werner Lemberg <wl@gnu.org>
2914
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>.
2918
2919 2003-06-30 Werner Lemberg <wl@gnu.org>
2920
2921 A new try to synchronize bitmap font access.
2922
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.
2926
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.
2929
2930 New fields `size', `x_ppem', and `y_ppem'.
2931
2932 * src/pcf/pcfread.c (pcf_load_font): Updated to properly fill
2933 FT_Bitmap_Size.
2934 Do proper rounding and conversion from 72.27 to 72 points.
2935
2936 * src/bdf/bdfdrivr.c (BDF_Face_Init): Updated to properly fill
2937 FT_Bitmap_Size.
2938 Do proper rounding and conversion from 72.27 to 72 points.
2939
2940 * src/sfnt/sfobjs.c (sfnt_load_face): Updated to properly fill
2941 FT_Bitmap_Size.
2942
2943 * src/winfonts/winfnt.c (FNT_Face_Init): Updated to properly fill
2944 FT_Bitmap_Size.
2945
2946 2003-06-29 Werner Lemberg <wl@gnu.org>
2947
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.
2953
2954 * include/freetype/internal/fnttypes.h (FNT_Size_Rec): Removed.
2955 (FNT_FaceRec): Remove `num_fonts' field and replace `fonts' with
2956 `font'.
2957
2958 * src/base/ftwinfnt.c (FT_Get_WinFNT_Header): Updated.
2959
2960 * src/winfonts/winfnt.c (fnt_font_load): Don't set pixel_width equal
2961 to pixel_height.
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
2965 select face index.
2966 Updated to load just one subfont.
2967 (fnt_font_done, FNT_Face_Done): Updated.
2968 (FNT_Face_Init): Handle `face_index'.
2969 Updated.
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.
2975
2976 2003-06-25 Owen Taylor <otaylor@redhat.com>
2977
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.
2981
2982 2003-06-24 Werner Lemberg <wl@gnu.org>
2983
2984 * src/cff/cffdrivr.c (cff_get_glyph_name): Protect against zero
2985 glyph name pointer. Reported by Mikey Anbary <manbary@vizrt.com>.
2986
2987 2003-06-23 Werner Lemberg <wl@gnu.org>
2988
2989 * src/tools/glnames.py: Updated to AGL 2.0.
2990 * src/psnames/pstables.h: Regenerated.
2991
2992 2003-06-22 Werner Lemberg <wl@gnu.org>
2993
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.
2999
3000 * include/freetype/ftmoderr.h: Updated to include recent module
3001 additions.
3002
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'.
3007
3008 * src/pshinter/pshrec.h (PS_HINTS_MAGIC): Removed. Not used.
3009
3010 * include/freetype/config/ftconfig.h [__MWERKS__]: Define FT_LONG64
3011 and FT_INT64.
3012
3013 2003-06-21 Werner Lemberg <wl@gnu.org>
3014
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
3021 drivers.
3022
3023 * src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code.
3024 (FT_Set_Pixel_Size): Assign value to `metrics' after validation of
3025 arguments.
3026
3027 2003-06-20 Werner Lemberg <wl@gnu.org>
3028
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
3033 of a strike.
3034
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'.
3038
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'.
3042
3043 * src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single
3044 argument to function.
3045
3046 * src/psnames/psmodule.c (ps_unicode_value): Handle `.' after
3047 `uniXXXX' and `uXXXX[X[X]]'.
3048
3049 2003-06-19 Werner Lemberg <wl@gnu.org>
3050
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_/.
3070
3071 2003-06-19 Dirck Blaskey <listtarget@danbala.com>
3072
3073 * src/cff/cffload (cff_encoding_load): `nleft' must be FT_UInt,
3074 otherwise adding 1 might wrap the result.
3075
3076 2003-06-18 Werner Lemberg <wl@gnu.org>
3077
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
3081 four digits.
3082
3083 2003-06-16 Werner Lemberg <wl@gnu.org>
3084
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.
3089
3090 * include/freetype/ftimage.h (FT_Outline_Flags, FT_Raster_Flag):
3091 Replaced with #defines for the constants.
3092
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).
3097
3098 * include/freetype/internal/ftgloadr.h (FT_GLYPH_OWN_BITMAP): Moved
3099 to ftobjs.h.
3100
3101 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Use dummy
3102 FT_GlyphSlot_Internal object.
3103
3104 2003-06-15 Werner Lemberg <wl@gnu.org>
3105
3106 * builds/compiler/gcc.mk, builds/compiler/gcc-dev.mk (CFLAGS):
3107 Add -fno-strict-aliasing to get rid of zillion warnings from gcc
3108 version 3.3.
3109
3110 2003-06-14 Werner Lemberg <wl@gnu.org>
3111
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
3118 versions.
3119 Updated all other files.
3120
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
3129 versions.
3130 Updated all other files.
3131
3132 * src/base/ftglyph.c (FT_Glyph_Get_CBox): Handle bbox_mode better
3133 as enumeration.
3134
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.
3138
3139 2003-06-13 Detlef Würkner <TetiSoft@apg.lahn.de>
3140
3141 * src/pfr/pfrobjs.c (pfr_slot_load): Apply font matrix.
3142
3143 2003-06-13 Werner Lemberg <wl@gnu.org>
3144
3145 * builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also.
3146
3147 * builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for
3148 EMX gcc compiler.
3149 * builds/dos/detect.mk: Add target `emx'.
3150
3151 * builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't
3152 like a trailing semicolon; add a dummy command.
3153
3154 * src/cid/cidload.c: Remove parse_font_bbox code (already enclosed
3155 with #if 0 ... #endif).
3156
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 ...
3160 #endif).
3161
3162 * src/type42/t42parse.c (t42_parse_font_name): Removed.
3163 Remove t42_parse_font_bbox code (already enclosed with #if 0 ...
3164 #endif).
3165 (t42_keywords): Handle /FontName with T1_FIELD_KEY.
3166
3167 2003-06-12 Werner Lemberg <wl@gnu.org>
3168
3169 * include/freetype/internal/psaux.h (T1_FieldType): Add
3170 T1_FIELD_TYPE_KEY.
3171 (T1_FIELD_KEY): New macro.
3172 * src/psaux/psobjs.c (ps_parser_load_field): Handle
3173 T1_FIELD_TYPE_KEY.
3174
3175 * src/cid/cidtoken.h: Use T1_FIELD_KEY for /CIDFontName.
3176
3177 2003-06-11 Alexander Malmberg <alexander@malmberg.org>
3178
3179 * src/cache/ftlru.c (FT_LruList_Remove_Selection): Decrease
3180 number of nodes.
3181 (FT_LruList_Lookup): Fix assertion for out-of-memory case.
3182
3183 2003-06-11 Werner Lemberg <wl@gnu.org>
3184
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
3189 module.
3190
3191 2003-06-10 Werner Lemberg <wl@gnu.org>
3192
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.
3201
3202 * src/type42/t42parse.c (t42_parse_font_bbox): Commented out.
3203 (t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with
3204 T1_FIELD_CALLBACK.
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>.
3209
3210 2003-06-09 George Williams <gww@silcom.com>
3211
3212 * src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's
3213 TrueType specification.
3214 (Ins_MDRP, Ins_MIRP): Fix single width cut-in test.
3215
3216 2003-06-09 Detlef Würkner <TetiSoft@apg.lahn.de>
3217
3218 * src/gzip/ftgzip.c: (inflate_mask): Replaced with...
3219 (NO_INFLATE_MASK): This.
3220 * src/gzip/infutil.h: Declare `inflate_mask' conditionally by
3221 NO_INFLATE_MASK.
3222
3223 2003-06-09 Alexis S. L. Carvalho <alexis@cecm.usp.br>
3224
3225 * src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END
3226 correctly.
3227
3228 2003-06-09 Wolfgang Domröse <porthos.domroese@harz.de>
3229
3230 * src/pshinter/pshglob.c (psh_globals_new): Change calculation of
3231 dim->stdw.count to avoid compiler problem.
3232
3233 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block
3234 variables to the beginning of the function to avoid compiler
3235 problems.
3236 Add casts necessary for 16bit compilers.
3237
3238 2003-06-09 Werner Lemberg <wl@gnu.org>
3239
3240 * src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c.
3241 (PFR_DRV_H): Add pfrtypes.h.
3242
3243 * include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/.
3244
3245 2003-06-08 Karl Schultz <kschultz@rsinc.com>
3246
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.
3252
3253 2003-06-08 Werner Lemberg <wl@gnu.org>
3254
3255 Completely revised FreeType's make management.
3256
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 ...).
3260
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.
3264
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).
3268
3269 The following ChangeLog entries only describe changes which are
3270 not related to the redesign.
3271
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.
3279
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.
3283
3284 * builds/unix/configure.ac, builds/unic/configure: Updated.
3285 * builds/unix/unix-def.in (DISTCLEAN): Add `freetype2.pc'.
3286
3287 2003-06-07 Werner Lemberg <wl@gnu.org>
3288
3289 * src/base/ftmac.c (FT_New_Face_From_SFNT): s/rlen/sfnt_size/ to
3290 make it compile.
3291
3292 * devel/ftoption.h: Updated.
3293
3294 2003-06-07 Detlef Würkner <TetiSoft@apg.lahn.de>
3295
3296 * include/freetype/internal/psaux.h, src/truetype/ttgload.h:
3297 s/index/idx/ to fix compiler warnings.
3298
3299 * src/sfnt/ttcmap0.c (tt_face_build_cmaps): Use more `volatile' to
3300 fix compiler warning.
3301
3302 * src/gzip/ftgzip.c (BUILDFIXED): Removed.
3303 * src/gzip/inftrees.c (inflate_trees_fixed) [!BUILDFIXED]: Use
3304 FT_UNUSED to remove compiler warning.
3305
3306 2003-06-06 Werner Lemberg <wl@gnu.org>
3307
3308 * include/freetype/ftstroker.h: Renamed to...
3309 * include/freetype/ftstroke.h: This.
3310
3311 * src/base/ftstroker.c: Renamed to...
3312 * src/base/ftstroke.c: This.
3313
3314 * include/freetype/config/ftheader.h (FT_STROKER_H): Updated.
3315
3316 * src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk:
3317 Updated.
3318
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.
3323
3324 * src/pcf/Jamfile, src/pcf/rules.mk: Updated.
3325
3326 2003-06-05 Wenlin Institute (Tom Bishop) <wenlin@wenlin.com>
3327
3328 * src/base/ftmac.c (file_spec_from_path) [TARGET_API_MAC_CARBON]:
3329 Add `#if !defined(__MWERKS__)'.
3330
3331 2003-06-05 Werner Lemberg <wl@gnu.org>
3332
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.
3338
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.
3345
3346 * src/cif/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000
3347 for blue_scale.
3348
3349 * src/pshinter/pshglob.c (psh_globals_new): Fix default value of
3350 blue_scale.
3351
3352 2003-06-04 Wolfgang Domröse <porthos.domroese@harz.de>
3353
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
3365 a 16bit compiler.
3366
3367 2003-06-04 Werner Lemberg <wl@gnu.org>
3368
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
3372 hinting. Reverted.
3373
3374 2003-06-04 Werner Lemberg <wl@gnu.org>
3375
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.
3381
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
3386 default.
3387
3388 2003-06-03 Werner Lemberg <wl@gnu.org>
3389
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.
3394
3395 * src/base/ftobjs.c (FT_Set_Hint_Flags): Removed. Unused.
3396
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.
3400 Unused.
3401
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.
3406
3407 * src/base/ftstroker.c (ft_stroke_border_export): s/index/idx/.
3408
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.
3413
3414 * src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj):
3415 Removed. Unused.
3416 Updated all callers.
3417
3418 2003-06-02 Werner Lemberg <wl@gnu.org>
3419
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
3422 encoding).
3423
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.
3429
3430 2003-06-01 Werner Lemberg <wl@gnu.org>
3431
3432 * src/winfonts/winfnt.c (FNT_Load_Glyph): Revert change from
3433 2003-03-20.
3434
3435 2003-05-31 Werner Lemberg <wl@gnu.org>
3436
3437 * include/freetype/fttrigon.h (FT_Vector_Normalize): Removed.
3438
3439 2003-05-31 <Ron.Dev@gmx.de>
3440
3441 * src/type1/t1objs.c (T1_Face_Init): Improve algorithm for guessing
3442 the font style by ignoring spaces and hyphens.
3443
3444 * builds/unix/freetype2.in: Fix `Version' field.
3445
3446 2003-05-30 Werner Lemberg <wl@gnu.org>
3447
3448 Avoid overwriting of numeric font dictionary entries for synthetic
3449 fonts. Additionally, some entries were handled as `integer' instead
3450 of `number'.
3451
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.
3457
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'.
3465
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
3470 pointers.
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.
3479
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.
3487
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.
3496
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.
3500
3501 * test/gview.c: Fix renaming ps3->ps typo.
3502 Formatting.
3503
3504 2003-05-29 Werner Lemberg <wl@gnu.org>
3505
3506 * src/pshinter/pshalgo1.[ch], src/pshinter/pshalgo2.[ch]: Removed.
3507 * src/pshinter/pshalgo.h: Removed.
3508
3509 * src/pshinter/pshalgo3.[ch]: Renamed to...
3510 * src/pshinter/pshalgo.[ch]: New files.
3511 s/PSH3/PSH/.
3512 s/psh3/psh/.
3513 s/ps3/ps/.
3514
3515 * src/pshinter/pshrec.c, src/pshinter/pshinter.c: Updated.
3516 * src/pshinter/rules.mk, src/pshinter/Jamfile: Updated.
3517
3518 * src/pshinter/pshglob.[ch] (psh_dimension_snap_width): Commented
3519 out.
3520
3521 * tests/gview.c: Remove code for pshalgo1 and pshalgo2.
3522 Updated.
3523
3524 2003-05-28 Martin Zinser <zinser@decus.de>
3525
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.
3529
3530 Reworked creation of MMS files, avoiding a number of temporary files
3531 which were created in the previous version.
3532
3533 Further work on creating descrip.mms files on the fly.
3534
3535 * builds/vms/descrip.mms, src/autohint/descrip.mms,
3536 src/type1/descrip.mms: Removed.
3537
3538 2003-05-28 Werner Lemberg <wl@gnu.org>
3539
3540 * src/pshinter/pshalgo3.c (psh3_glyph_compute_extrema): Skip
3541 contours with only a single point to avoid segfault.
3542
3543 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Activate code for
3544 handling `origin'.
3545
3546 2003-05-24 Werner Lemberg <wl@gnu.org>
3547
3548 * src/autohint/ahtypes.h (AH_OPTION_NO_STRONG_INTERPOLATION):
3549 Removed since unused.
3550
3551 2003-05-21 Werner Lemberg <wl@gnu.org>
3552
3553 * include/freetype/config/ftstdlib.h (ft_strcat): New wrapper macro
3554 for strcat.
3555
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/.
3565
3566 * src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
3567 (PCF_Face_Init): Test for charset registry case-insensitively.
3568
3569 * src/gzip/ftgzip.c (ft_gzip_fil_io): Revert change from yesterday;
3570 it has already been fixed differently.
3571
3572 * src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around
3573 if-clause.
3574
3575 2003-05-21 Martin Zinser <zinser@decus.de>
3576
3577 * t1load.c (parse_blend_axis_types): Fix compiler warning.
3578
3579 * descrip.mms: Removed. Now created by...
3580
3581 * vms_make.com: New file.
3582
3583 2003-05-21 Weiqi Gao <weiqigao@networkusa.net>
3584
3585 * src/gzip/ftgzip.c (ft_gzip_file_io): Avoid zero value of `delta'
3586 to prevent infinite loop.
3587
3588 2003-05-21 Lars Clausen <lrclause@cs.uiuc.edu>
3589
3590 * docs/VERSION.DLL: Provide better autoconf snippet to check
3591 FreeType version.
3592
3593 2003-05-21 Werner Lemberg <wl@gnu.org>
3594
3595 * src/base/ftobjs.c (open_face): Free `internal' not
3596 `face->internal' in case of error to avoid possible segfault.
3597
3598 * src/pshinter/pshalgo3.c (ps3_hints_apply): Check whether we
3599 actually have an outline.
3600
3601 2003-05-20 David Chester <davidchester@qmx.net>
3602
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.
3606
3607 * src/autohint/ahhint.c (ah_hint_edges): Make sure that lowercase
3608 m's maintain their symmetry.
3609
3610 2003-05-20 Werner Lemberg <wl@gnu.org>
3611
3612 * src/autohint/ahhint.c (ah_hinter_load_glyph): Oops! David's
3613 patch from yesterday has been resolved already in a different
3614 way. Reverted.
3615
3616 2003-05-19 David Chester <davidchester@qmx.net>
3617
3618 * src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale
3619 y_scale locally but face->size->metrics.y_scale.
3620
3621 2003-05-19 David Turner <david@freetype.org>
3622
3623 * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start
3624 value for `hi' to avoid infinite loop.
3625
3626 2003-05-18 Yong Sun <sunyong@njstar.com>
3627
3628 * src/raster/ftraster.c (Insert_Y_Turn): Fix overflow test.
3629
3630 2003-05-18 Werner Lemberg <wl@gnu.org>
3631
3632 * include/freetype/config/ftoption.h [FT_CONFIG_OPTION_MAC_FONTS]:
3633 New macro.
3634 * src/base/ftobjs.c: Use it to control mac font support on non-mac
3635 platforms.
3636
3637 2003-05-17 George Williams <gww@silcom.com>
3638
3639 Implement partial support of Mac fonts on non-Mac platforms.
3640
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.
3646
3647 2003-05-17 Werner Lemberg <wl@gnu.org>
3648
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').
3652
3653 2003-05-15 David Turner <david@freetype.org>
3654
3655 * src/base/fttrigon.c (FT_Vector_Rotate): Avoid rounding errors
3656 for small values.
3657
3658 2003-05-15 Werner Lemberg <wl@gnu.org>
3659
3660 * src/autohint/ahtypes.h (AH_PointRec): Remove unused `in_angle'
3661 and `out_angle' fields.
3662
3663 2003-05-14 George Williams <gww@silcom.com>
3664
3665 * src/base/ftmac.c (FT_New_Face_From_SFNT): Handle CFF files also.
3666
3667 2003-05-14 Werner Lemberg <wl@gnu.org>
3668
3669 * include/freetype/freetype.h: Fix typo in comment
3670 (FT_HAS_FIXED_SIZES).
3671
3672 2003-05-10 Dan Williams <dan@bigw.org>
3673
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.
3679
3680 * include/freetype/config/ftconfig.h: Fix conditions for defining
3681 `FT_MACINTOSH'.
3682 * src/base/ftbase.c: Include `ftmac.c' conditionally.
3683 * src/base/ftmac.c: Handle __GNUC__.
3684
3685 2003-05-07 YAMANO-UCHI Hidetoshi <mer@din.or.jp>
3686
3687 * src/cid/cidload.c (is_alpha): Removed.
3688 (cid_parse_dict): Use `cid_parser_skip_alpha' instead of `is_alpha'.
3689
3690 2003-05-07 Werner Lemberg <wl@gnu.org>
3691
3692 * src/autohint/ahoptim.c, src/autohint/ahoptim.h: Obsolete, removed.
3693
3694 2003-05-07 David Turner <david@freetype.org>
3695
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
3699 `segment->link'.
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.
3705
3706 * src/autohint/ahhint.c (ah_hinter_align_stong_points): Provide
3707 alternative code which runs faster.
3708 Handle `before->scale == 0'.
3709
3710 * src/autohint/ahtypes.h (AH_SegmentRec): Move some fields down.
3711 (AH_EdgeRec): Move some fields in structure.
3712 New field `scale'.
3713
3714 * src/sfnt/ttcmap0.c (tt_cmap4_char_next): Use binary search.
3715
3716 2003-05-02 Werner Lemberg <wl@gnu.org>
3717
3718 * src/autohint/ahoptim.c (LOG): Renamed to...
3719 (AH_OPTIM_LOG): This.
3720 (AH_Dump_Springs): Fix log message format.
3721
3722 * src/autohint/ahhint.c (ah_hint_edges_3): Renamed to...
3723 (ah_hint_edges): This.
3724
3725 2002-05-02 Keith Packard <keithp@keithp.com>
3726
3727 * src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Initialize `max_advance'.
3728
3729 2003-05-01 Werner Lemberg <wl@gnu.org>
3730
3731 * src/autohint/ahglyph.c (ah_test_extrema): Renamed to...
3732 (ah_test_extremum): This.
3733
3734 2003-04-28 Werner Lemberg <wl@gnu.org>
3735
3736 * builds/unix/configure.ac: Generate `freetype.pc' from
3737 `freetype.in'.
3738 * builds/unix/configure: Regenerated.
3739 * builds/unix/install.mk (install, uninstall): Handle `freetype.pc'.
3740
3741 2003-04-28 Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
3742
3743 * builds/unix/freetype2.in: New file. Contains building information
3744 for the `pkg-config' package.
3745
3746 2003-04-28 David Turner <david@freetype.org>
3747
3748 * src/base/ftobjs.c (FT_Load_Glyph): Fix boundary check for
3749 `glyph_index'.
3750
3751 2003-04-25: Graham Asher <graham.asher@btinternet.com>
3752
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
3758 ftoption.h.
3759
3760 * include/freetype/ttunpat.h: New file. Defines
3761 FT_PARAM_TAG_UNPATENTED_HINTING.
3762
3763 * include/freetype/config/ftheader.h (FT_TRUETYPE_UNPATENTED_H): New
3764 macro to use when including ttunpat.h.
3765
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.
3770
3771 * include/freetype/internal/tttypes.h (TT_FaceRec)
3772 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: New element `FT_Bool
3773 unpatented_hinting'.
3774
3775 * src/truetype/ttinterp.c (NO_APPLE_PATENT, APPLE_THRESHOLD):
3776 Removed.
3777 (GUESS_VECTOR): New macro.
3778 (TT_Run_Context) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
3779 Set `both_x_axis'.
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
3796 hinting.
3797 (Move_Zp2_Point, Ins_SHPIX, Ins_DELTAP, Ins_DELTAC)
3798 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
3799 hinting.
3800 (TT_RunIns): Updated.
3801
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.
3808
3809 * src/truetype/ttobjs.h (TT_GraphicsState)
3810 [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Add `both_x_axis'.
3811
3812 2003-04-25 Werner Lemberg <wl@gnu.org>
3813
3814 * src/bdf/bdflib.c (hash_bucket, hash_lookup): Use `const' for first
3815 argument.
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'.
3821 Updated.
3822
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.
3828
3829 2003-04-24 Manish Singh <yosh@gimp.org>
3830
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.
3834
3835 2003-04-24 David Turner <david@freetype.org>
3836
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
3840 glyph'.
3841
3842 2003-04-24 Werner Lemberg <wl@gnu.org>
3843
3844 * builds/unix/unix-cc.in (CFLAGS): Add @CPPFLAGS@.
3845
3846 2003-04-24 Dieter Baron <dillo@netbsd.org>
3847
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.
3851
3852 2003-04-23 Werner Lemberg <wl@gnu.org>
3853
3854 Fixing bugs reported by Nelson Beebe.
3855
3856 * src/base/ftstroker.c (FT_Stroker_ParseOutline): Remove unused
3857 variable `in_path'.
3858
3859 * src/base/ftobjs (ft_glyphslot_set_bitmap): Change type of
3860 second argument to `FT_Byte*'.
3861 * include/freetype/internal/ftobjs.h: Updated.
3862
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.
3866
3867 * src/cache/ftlru.c (FT_LruList_Lookup): Remove unused variable
3868 `plast'.
3869
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'.
3873
3874 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Change return type
3875 to `void'.
3876 Mark `error' as unused.
3877 * src/pfr/pfrobjs.h: Updated.
3878 * src/pfr/pfrdrivr.c (pfr_get_kerning): Updated.
3879
3880 * src/sfnt/ttload.c (sfnt_dir_check): Remove unused variable
3881 `format_tag'.
3882
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'
3886
3887 * src/sfnt/sfobjs.c (tt_face_get_name): Mark `error' as unused.
3888
3889 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Mark `error' as
3890 unused.
3891
3892 * src/type1/t1objs.c (T1_Face_Init): Remove unused variable
3893 `pshinter'.
3894
3895 * src/type1/t1gload.c (T1_Load_Glyph): Use `glyph_data_loaded'
3896 only for FT_CONFIG_OPTION_INCREMENTAL.
3897
3898 2003-04-23 Akito Hirai <akito@kde.gr.jp>
3899
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.
3903
3904 2003-04-23 Joe Marcus Clarke <marcus@FreeBSD.org>
3905
3906 * src/base/ftbdf.c (FT_Get_BDF_Property): Check for valid
3907 `get_interface'.
3908
3909 2003-04-23 Paul Miller <paulm@profoundeffects.com>
3910
3911 * src/base/ftmac.c (parse_fond): Fix handling of style names.
3912
3913 2003-04-23 Werner Lemberg <wl@gnu.org>
3914
3915 * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist
3916 instead of FT_Uint for `len'.
3917
3918 2003-04-22 Werner Lemberg <wl@gnu.org>
3919
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.
3923
3924 2003-04-21 Werner Lemberg <wl@gnu.org>
3925
3926 * src/cache/ftccache.c (ftc_cache_lookup): Remove shadow declaration
3927 of `manager'.
3928
3929 2003-04-20 Werner Lemberg <wl@gnu.org>
3930
3931 * doc/INSTALL.UNX: Cleaned up.
3932
3933 2003-04-09 Torrey Lyons <torrey@mrcla.com>
3934
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'
3937 font on a Mac.
3938
3939 2003-04-09 Mike Fabian <mfabian@suse.de>
3940
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.
3944
3945 2003-04-08 David Turner <david@freetype.org>
3946
3947
3948 * Version 2.1.4 released.
3949 =========================
3950
3951
3952 2003-04-03 Martin Muskens <mmuskens@aurelon.com>
3953
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.
3957
3958 2003-03-27 David Turner <david@freetype.org>
3959
3960 * README: Udpated.
3961
3962 * README.UNX: Removed (now replaced by docs/INSTALL.UNX).
3963
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
3966 used.
3967 (psh3_dimension_quantize_len): Enabled.
3968 (psh3_hint_align): Enable commented code.
3969 (psh3_hint_align_light): Commented out.
3970
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
3974 enabled.
3975
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):
3980 Use `is_name_char'.
3981 (parse_subrs): Handle empty arrays.
3982
3983 2003-03-20 David Turner <david@freetype.org>
3984
3985 Serious rewriting of the documentation.
3986
3987 * docs/BUGS, docs/BUILD: Removed.
3988 * docs/DEBUG.TXT: Renamed to...
3989 * docs/DEBUG: This.
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.
3995
3996 * docs/*: Updated.
3997
3998 Introduced three new functions to deal with glyph bitmaps within
3999 FT_GlyphSlot objects:
4000
4001 ft_glyphslot_free_bitmap
4002 ft_glyphslot_alloc_bitmap
4003 ft_glyphslot_set_bitmap
4004
4005 These functions are much more convenient to use than managing the
4006 FT_GLYPH_OWN_BITMAP flag manually.
4007
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.
4012
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'.
4017
4018 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Use
4019 `ft_glyphslot_alloc_bitmap'.
4020
4021 * src/sfnt/ttsbit.c (Load_SBit_Image): Change 5th argument to type
4022 `FT_GlyphSlot'.
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.
4028
4029 * src/type42/t42objs.c (ft_glyphslot_clear): Renamed to...
4030 (t42_glyphslot_clear): This. Updated caller.
4031 Call `ft_glyphslot_free_bitmap'.
4032
4033 * src/winfonts/winfnt.c (FNT_Load_Glyph): Use
4034 `ft_glyphslot_set_bitmap'.
4035 Don't handle `FT_GLYPH_OWN_BITMAP'.
4036
4037 * src/cache/ftlru.c (FT_LruList_Lookup): Fixed an invalid assertion
4038 check.
4039
4040 * src/autohint/ahglyph.c (ah_outline_load): Add two scaling
4041 arguments.
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.
4045
4046 * src/cache/ftccache.c (ftc_family_done): Fixed small bug that could
4047 crash the cache in rare circumstances (mostly with broken fonts).
4048
4049 2003-03-15 David Turner <david@freetype.org>
4050
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.
4054
4055 2003-03-14 David Turner <david@freetype.org>
4056
4057 * src/truetype/ttdriver.c (Set_Char_Sizes): Fixing the small
4058 TrueType native rendering glitches; they came from a small rounding
4059 error.
4060
4061 2003-03-13 David Turner <david@freetype.org>
4062
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.
4066
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.
4073
4074 Fixed the cache sub-system to correctly deal with out-of-memory
4075 conditions.
4076
4077 * src/cache/ftccache.c (ftc_node_destroy): Comment out generic
4078 check.
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.
4085
4086 * src/pfr/pfrobjs.c (pfr_face_done): Fix memory leak.
4087 (pfr_face_init): Fixing compiler warnings.
4088
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.
4092
4093 * src/smooth/ftgrays.c (gray_convert_glyph): Removed compiler
4094 warnings / volatile bug.
4095
4096 * src/truetype/ttobjs.c (tt_glyphzone_done): Removed segmentation
4097 fault that happened in tight memory environments.
4098
4099 2003-02-28 Pixel <pixel@mandrakesoft.com>
4100
4101 * src/gzip/ftgzip.c (ft_gzip_file_done): Fixed memory leak: The ZLib
4102 stream was not properly finalized.
4103
4104 2003-02-25 Anthony Fok <anthony@thizlinux.com>
4105
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.
4109
4110 * src/sfnt/ttload.c, src/base/ftobjs.c: Changed `asian' to `Asian'
4111 in comments.
4112
4113 2003-02-25 David Turner <david@freetype.org>
4114
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:
4118
4119 touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
4120
4121 Several fixes to the PFR font driver:
4122
4123 - The list of available embedded bitmaps was not correctly set in
4124 the root FT_FaceRec structure describing the face.
4125
4126 - The glyph loader always tried to load the outlines when
4127 FT_LOAD_SBITS_ONLY was specified.
4128
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.
4132
4133 NOTE THAT THESE CHANGES THE FAMILY NAME OF MANY PFR FONTS!
4134
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
4139 bytes.
4140
4141 * src/pfr/pfrobjs.c (pfr_face_done): Set pointers to NULL.
4142 (pfr_face_init): Provide fallback values for `family_name' and
4143 `style_name'.
4144 Handle strikes.
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'.
4148
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.
4152
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.
4156
4157 2003-02-18 David Turner <david@freetype.org>
4158
4159 Fixing the slight distortion problem that occurred due to the latest
4160 auto-hinter changes.
4161
4162 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Fix rounding.
4163
4164 * src/truetype/ttdriver.c (Set_Char_Sizes): New variable `metrics2'.
4165 [!TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Removed.
4166
4167 * src/truetype/ttobjs.h (TT_SizeRec): New field `metrics'.
4168 * src/truetype/ttobjs.c (Reset_Outline_Size): Fix initialization of
4169 `metrics'.
4170 [FT_CONFIG_CHESTER_ASCENDER]: Code removed.
4171 (Reset_SBit_Size): Fix initialization of `metrics'.
4172
4173 * src/truetype/ttinterp.c (TT_Load_Context): Fix initialization of
4174 `exec->metrics'.
4175
4176 * src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width
4177 `correction' which seemed to provide more trouble than benefits.
4178
4179 2003-02-13 Graham Asher <graham.asher@btinternet.com>
4180
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.
4185
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]:
4189 Ditto.
4190
4191 * src/truetype/ttgload.c (load_truetype_glyph)
4192 [FT_CONFIG_OPTION_INCREMENTAL]: Simplify.
4193 (compute_glyph_metrics) [FT_CONFIG_OPTION_INCREMENTAL]: Code block
4194 moved down.
4195
4196 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
4197 [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
4198
4199 * include/freetype/ftincrem.h: Updated.
4200
4201 2003-01-31 David Turner <david@freetype.org>
4202
4203 * docs/CHANGES, docs/VERSION.DLL, docs/TODO: Updating documentation
4204 for the 2.1.4 release.
4205
4206 * builds/win32/visualc/freetype.dsp,
4207 builds/win32/visualc/index.html: Updating the project file for
4208 2.1.4.
4209
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.
4214
4215 * src/pfr/pfrsbit.c: Removed compiler warnings.
4216
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).
4221
4222 Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last
4223 patch from David Chester, but with a much simpler (and saner)
4224 implementation.
4225
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
4229 whenever possible.
4230
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.
4236
4237 * src/truetype/ttobjs.c (Reset_Outline_Size)
4238 [FT_CONFIG_CHESTER_ASCENDER]: Round differently.
4239
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.
4246
4247 THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
4248 STILL SUCK.
4249
4250 2003-01-22 David Chester <davidchester@qmx.net>
4251
4252 * src/autohint/ahhint.c (ah_compute_stem_width): Small fix to the
4253 stem width optimization.
4254
4255 2003-01-22 David Turner <david@freetype.org>
4256
4257 Adding a new API `FT_Get_BDF_Property' to retrieve the BDF
4258 properties of a given PCF or BDF font.
4259
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.
4265
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.
4269
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'.
4273
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'.
4277
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'.
4281
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).
4286
4287 2003-01-18 Werner Lemberg <wl@gnu.org>
4288
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
4292 automake 1.7.1.
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.
4298
4299 2003-01-15 David Turner <david@freetype.org>
4300
4301 * include/freetype/freetype.h: Fixed documentation for
4302 FT_Size_Metrics.
4303
4304 2003-01-15 James Su <suzhe@turbolinux.com.cn>
4305
4306 * src/gzip/ftgzip.c (ft_gzip_check_header): Bugfix: couldn't read
4307 certain gzip-ed font files (typo: `&&' -> `&').
4308
4309 2003-01-15 Huw D M Davies <h.davies1@physics.ox.ac.uk>
4310
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
4313 overwrites.
4314
4315 * include/freetype/config/ftheader.h (FT_WINFONTS_H): New macro
4316 for ftwinfnt.h.
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.
4326
4327 * src/base/Jamfile, src/base/descrip.mms, src/base/rules.mk:
4328 Updated.
4329
4330 2003-01-14 Graham Asher <graham.asher@btinternet.com>
4331
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.
4335
4336 2003-01-13 Graham Asher <graham.asher@btinternet.com>
4337
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
4344 GhostScript.
4345
4346 2003-01-11 David Chester <davidchester@qmx.net>
4347
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
4352 `features'.
4353
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.
4357
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
4362 features.
4363
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
4374 handling.
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'.
4385
4386 2003-01-11 David Turner <david@freetype.org>
4387
4388 * include/freetype/internal/fnttypes.h (WinFNT_HeaderRec): Increase
4389 size of `reserved2' to avoid memory overwrites.
4390
4391 2003-01-08 Huw Dawies <huw@codeweavers.com>
4392
4393 * src/winfonts/winfnt.c (winfnt_header_fields): Read 16 bytes into
4394 `reserved2', not `reserved'.
4395
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
4399 last release.
4400 (open_face): Fix return value.
4401
4402 2003-01-08 Owen Taylor <owen@redhat.com>
4403
4404 Implemented the FT_RENDER_MODE_LIGHT hinting mode in the auto and
4405 postscript hinters.
4406
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.
4411
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.
4415
4416 * include/freetype/freetype.h (FT_Render_Mode): Add
4417 FT_RENDER_MODE_LIGHT.
4418
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
4424 otherwise.
4425 (TT_Load_Glyph): Updated.
4426
4427 2003-01-08 David Turner <david@freetype.org>
4428
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).
4432
4433 2003-01-07 David Turner <david@freetype.org>
4434
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.
4442
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).
4446
4447 * src/cache/ftccache.c (ftc_node_hash_unlink): Removing incorrect
4448 assertion, and changing code to avoid hash table size contraction.
4449
4450 * src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding
4451 `ftstroker' to default build, as optional component.
4452
4453 2002-12-26 David Turner <david@freetype.org>
4454
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.
4459
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.
4464
4465 2002-12-23 Anthony Fok <anthony@thizlinux.com>
4466
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
4470 zlib when needed.
4471
4472 2002-12-19 David Turner <david@freetype.org>
4473
4474 * include/freetype/internal/sfnt.h (SFNT_Load_Table_Func): New
4475 function pointer.
4476
4477 * include/freetype/tttables.h (FT_Load_Sfnt_Table): New function.
4478 * src/base/ftobjs.c: Implement it.
4479
4480 * src/sfnt/sfdriver.c (sfnt_get_interface): Handle `load_sfnt'
4481 module request.
4482
4483 2002-12-17 David Turner <david@freetype.org>
4484
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.
4489
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.
4495
4496 2002-12-16 David Turner <david@freetype.org>
4497
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.
4501
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.
4505
4506 2002-12-02 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
4507
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.
4513
4514 2002-11-29 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
4515
4516 * include/freetype/ftgzip.h: Correct the name of the controlling
4517 macro (was __FTXF86_H__ ...).
4518
4519 2002-11-27 Vincent Caron <v.caron@zerodeux.net>
4520
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).
4525
4526 2002-11-23 David Turner <david@freetype.org>
4527
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.
4532
4533 2002-11-22 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
4534
4535 * include/freetype/ttnameid.h: Updated to latest OpenType
4536 specification.
4537
4538 2002-11-18 David Turner <david@freetype.org>
4539
4540
4541 * Version 2.1.3 released.
4542 =========================
4543
4544
4545 2002-11-07 David Turner <david@freetype.org>
4546
4547 * src/cache/ftcsbit.c (ftc_sbit_node_load): Fixed a small bug that
4548 caused problems with embedded bitmaps.
4549
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
4555 for now though.
4556
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.
4561
4562 * src/Jamfile, src/*/Jamfile: Simplified.
4563 Use $(FT2_SRC_DIR).
4564
4565 2002-11-06 David Turner <david@freetype.org>
4566
4567 * include/freetype/freetype.h (FT_LOAD_TARGET_LIGHT): New macro.
4568 (FT_LOAD_TARGET, FT_LOAD_TARGET_MODE): Use `& 15' instead of `& 7'.
4569
4570 2002-11-05 David Turner <david@freetype.org>
4571
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.
4575
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).
4580
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 :-)
4586
4587 The fix was to change
4588 `volatile FT_Byte* p'
4589 into
4590 `FT_Byte* volatile p'.
4591
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
4594 optimized modes.
4595
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.
4600
4601 2002-11-05 Juliusz <jch@pps.jussieu.fr>
4602
4603 * src/psaux/psobjs.c (ps_table_add): Modified increment loop in
4604 order to implement exponential behaviour.
4605
4606 2002-11-01 David Turner <david@freetype.org>
4607
4608 Added PFR-specific public API. Fixed the kerning retrievel routine
4609 (it returned invalid values when the outline and metrics resolution
4610 differ).
4611
4612 * include/freetype/ftpfr.h, include/freetype/internal/pfr.h: New
4613 files.
4614
4615 * include/freetype/internal/internal.h (FT_INTERNAL_PFR_H): New
4616 macro for pfr.h.
4617
4618 * src/base/ftpfr.c: New file.
4619 * src/base/Jamfile, src/base/descrip.mms: Updated.
4620
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.
4627
4628 * src/base/ftobjs.c (ft_glyphslot_clear): Small internal fix to
4629 better support bitmap-based font formats.
4630
4631 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix handling of
4632 `scale'.
4633 Fix arguments to `FT_Vector_From_Polar'.
4634
4635 2002-10-31 David Turner <david@freetype.org>
4636
4637 Add support for automatic handling of gzip-compressed PCF files.
4638
4639 * src/gzip/*: New files, taken from the zlib package (except
4640 ftgzip.c).
4641
4642 * include/freetype/ftgzip.h, src/gzip/ftgzip.c: New files.
4643 * include/freetype/config/ftheader.h (FT_GZIP_H): New macro for
4644 `ftgzip.h'.
4645
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.
4649
4650 * include/freetype/internal/pcftypes.h (PCF_Public_FaceRec),
4651 src/pcf/pcf.h (PCF_FaceRec): Add `gzip_stream' and `gzip_source'.
4652
4653 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_ZLIB):
4654 New macro.
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.
4658
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.
4662
4663 * include/freetype/internal/ftstream.h: Include FT_SYSTEM_H.
4664
4665 2002-10-30 David Turner <david@freetype.org>
4666
4667 * FreeType 2.1.3rc3 released.
4668
4669 2002-10-25 David Turner <david@freetype.org>
4670
4671 * include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro.
4672 (FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG.
4673
4674 2002-10-22 Giuseppe Ghibò <ghibo@mandrakesoft.com>
4675
4676 * include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2.
4677
4678 2002-10-07 Werner Lemberg <wl@gnu.org>
4679
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.
4684
4685 2002-10-05 David Turner <david@freetype.org>
4686
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).
4690
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'.
4705
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.
4709
4710 * src/tools/docmaker/content.py, src/tools/docmaker/sources.py,
4711 src/tools/docmaker/tohtml.py: Fixing a few nasty bugs.
4712
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.
4717
4718 * docs/CHANGES: Updated.
4719
4720 2002-10-05 Werner Lemberg <wl@gnu.org>
4721
4722 * src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'.
4723 Update all callers.
4724 (TRUNC): Add cast to `TCoord'.
4725 Update all callers.
4726 (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and
4727 last_ey.
4728 Update all casts.
4729 (gray_render_line): Fix casts for `p' and `first'.
4730
4731 2002-10-02 Detlef Würkner <TetiSoft@apg.lahn.de>
4732
4733 * src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t
4734 structure with FT_ALLOC instead of using the stack.
4735
4736 2002-09-27 Werner Lemberg <wl@gnu.org>
4737
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.
4744
4745 2002-09-27 Wolfgang Domröse <porthos.domroese@harz.de>
4746
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
4755 `code'.
4756 (sfnt_load_face): Use FT_Int32 for `flags'.
4757
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'.
4761 More 16bit fixes.
4762 s/FT_Pos/TPos/.
4763 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts.
4764
4765 2002-09-26 Werner Lemberg <wl@gnu.org>
4766
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.
4770
4771 * src/cff/cffobjs.c (cff_face_init): Ditto.
4772
4773 * include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for
4774 `module_size'.
4775 * include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for
4776 `glyph_size'.
4777
4778 * src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to
4779 `FT_Render_Mode'.
4780 (FT_Render_Glyph_Internal): Change third parameter to
4781 `FT_Render_Mode'.
4782 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter
4783 to `FT_Render_Mode'.
4784
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
4790 `FT_Render_Mode'.
4791
4792 * include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
4793 include/freetype/ftglyph.h: Updated.
4794
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'.
4800
4801 * src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters
4802 and declare them as unused.
4803
4804 * src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'.
4805
4806 * src/psnames/psnames.h (PS_Unicode_Value_Func): Change return
4807 value to FT_UInt32.
4808 * src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table):
4809 Updated accordingly.
4810
4811 2002-09-26 Wolfgang Domröse <porthos.domroese@harz.de>
4812
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
4816 `exp'.
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
4820 switch statements.
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
4825 `adx' and `ady'.
4826 (cff_decoder_parse_charstrings): Use FT_ULong for third parameter.
4827 Use more casts.
4828 * src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'.
4829
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
4832 `cid_get_offset'.
4833
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'.
4837
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
4842 clazz->init_face.
4843
4844 * src/raster/ftraster.c (Set_High_Precision): Use `1' instead of
4845 `1L'.
4846 (Finalize_Profile_Table, Line_Up, ft_black_init): Use casts.
4847 * src/raster/ftrend1.c (ft_raster1_render): Ditto.
4848
4849 * src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long
4850 constant.
4851
4852 2002-09-26 Detlef Würkner <TetiSoft@apg.lahn.de>
4853
4854 * builds/amiga/include/freetype/config/ftmodule.h: Updated.
4855
4856 2002-09-25 David Turner <david@freetype.org>
4857
4858 * src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics
4859 hinting in the auto-hinter. This produces much better anti-aliased
4860 text.
4861
4862 * docs/CHANGES: Updating the changes documentation.
4863
4864 2002-09-25 Anthony Fok <anthony@thizlinux.com>
4865
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
4869 missing glyph).
4870
4871 2002-09-21 Wolfgang Domröse <porthos.domroese@harz.de>
4872
4873 * src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be
4874 FT_Int32.
4875 * src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph):
4876 Ditto.
4877
4878 2002-09-19 Wolfgang Domröse <porthos.domroese@harz.de>
4879
4880 More 16bit fixes.
4881
4882 * src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'.
4883 (ah_hinter_compute_widths): Use FT_Pos for `dist'.
4884 Use AH_MAX_WIDTHS.
4885 * src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos
4886 for `delta'.
4887 (ah_outline_compute_edges): Replace some ints with FT_Int and
4888 FT_Pos.
4889 (ah_test_extrema): Clean up code.
4890 (ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to
4891 hold indices.
4892 * src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score'
4893 to FT_Pos.
4894
4895 2002-09-19 Werner Lemberg <wl@gnu.org>
4896
4897 * builds/unix/config.guess, builds/unix/config.sub: Updated to
4898 recent versions.
4899
4900 2002-09-18 David Turner <david@freetype.org>
4901
4902 * src/base/ftobjs.c (FT_Library_Version): Bugfix.
4903
4904 * FreeType 2.1.3rc2 (release candidate 2) is released!
4905
4906 2002-09-17 David Turner <david@freetype.org>
4907
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.
4912
4913 * src/tools/docmaker/tohtml.py: Updating the HTML formatter in the
4914 DocMaker tool.
4915
4916 * src/tools/docmaker.py: Removed.
4917
4918 2002-09-17 Werner Lemberg <wl@gnu.org>
4919
4920 More 16bit fixes.
4921
4922 * src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for
4923 second parameter.
4924
4925 2002-09-16 Werner Lemberg <wl@gnu.org>
4926
4927 16bit fixes from Wolfgang Domröse.
4928
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
4932 `private_len'.
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.
4938
4939 * src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label.
4940 * src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable.
4941
4942 2002-09-14 Werner Lemberg <wl@gnu.org>
4943
4944 Making ftgrays.c compile stand-alone again.
4945
4946 * include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_
4947 isn't defined.
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'.
4955
4956 2002-09-14 Werner Lemberg <wl@gnu.org>
4957
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
4961 to 32.
4962
4963 2002-09-10 Werner Lemberg <wl@gnu.org>
4964
4965 * builds/unix/configure.ac (version_info): Set to 9:2:3.
4966 * builds/unix/configure: Regenerated.
4967 * docs/VERSION.DLL: Updated.
4968
4969 2002-09-09 David Turner <david@freetype.org>
4970
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.
4974
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.
4978
4979 * include/freetype/ftimage.h: Removed incorrect `zft_' definitions
4980 and updated constants documentation comments.
4981
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
4984 certain fonts.
4985
4986 * include/freetype/freetype.h (FT_FaceRec): Updating documentation
4987 comment. The `descender' value is always *negative*, not positive.
4988
4989 2002-09-09 Owen Taylor <owen@redhat.com>
4990
4991 * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation
4992 of bitmap metrics.
4993
4994 2002-09-08 David Turner <david@freetype.org>
4995
4996 Various updates to correctly support sub-pixel rendering.
4997
4998 * include/freetype/config/ftmodule.h: Add two renderers for LCD.
4999
5000 * src/base/ftobjs.c (FT_Load_Glyph): Updated.
5001
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.
5005
5006 * include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New
5007 structure.
5008 Updated all users.
5009 (FTC_ImageDesc): Removed.
5010 (FTC_ImageCache_Lookup): Second parameter is now of type
5011 `FTC_ImageType'.
5012 Updated all users.
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.
5017
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
5022 `FTC_ImageType'.
5023 Updated all users.
5024
5025 * src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec):
5026 Updated.
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.
5031
5032 * src/cache/ftcsbit.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
5033 Updated.
5034 (ftc_sbit_node_load): Updated.
5035 Moved code to convert type flags to load flags to...
5036 (FTC_SBitCache_Lookup): This function.
5037
5038 * src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with
5039 `do_*_snapping'.
5040 Update all users (with negation).
5041 * src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for
5042 `dist' for `delta' < 40.
5043
5044 * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with
5045 `do_*_snapping'.
5046 Update all users (with negation).
5047 * src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New
5048 function.
5049 (psh3_hint_align): Use it.
5050 Improve hinting code.
5051 [STRONGER]: Removed.
5052 (STRONGER): Removed.
5053
5054 * include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*):
5055 Removed.
5056
5057 2002-09-05 Werner Lemberg <wl@gnu.org>
5058
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.
5063
5064 Updated all affected code.
5065
5066 * src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
5067 * src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.
5068
5069 2002-09-04 David Turner <david@freetype.org>
5070
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).
5074
5075 * builds/unix/unix-def.in (datadir): Initialize it (thanks to
5076 Anthony Fok).
5077
5078 2002-08-29 David Turner <david@freetype.org>
5079
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.
5084
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
5092 hint flags.
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
5097 of `hint_flags'.
5098 Implement announced changes.
5099 * src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control
5100 vertical and horizontal hints and snapping.
5101
5102 * README, docs/CHANGES: Updating for the 2.1.3 release.
5103
5104 2002-08-27 David Turner <david@freetype.org>
5105
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:
5109
5110 - trying to convert all enums and constants to CAPITALIZED_STYLE,
5111 #with define definitions like
5112
5113 #define my_old_constants MY_NEW_CONSTANT
5114
5115 - big, big update of the documentation comments
5116
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:
5120
5121 FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
5122 FT_PIXEL_MODE_LCD, FT_PIXEL_MODE_LCD_V
5123
5124 This is still work in progress, don't expect everything to work
5125 correctly though most of the features have been implemented.
5126
5127 * Adding new FT_LOAD_XXX flags, used to specify both hinting and
5128 rendering targets:
5129
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
5133 hinting & rendering
5134 FT_LOAD_TARGET_LCD_V :: vertical RGB/BGR decimated
5135 hinting & rendering
5136
5137 Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
5138 behaviour of the font engine is _unchanged_.
5139
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.
5147
5148 Updated all affected code.
5149
5150 * include/freetype/ftrender.h
5151 (FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed
5152 to ...
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}):
5156 This.
5157
5158 Updated all affected code.
5159
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.
5164
5165 * src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter.
5166 * src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element.
5167
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
5187 to...
5188 (cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}):
5189 This.
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.
5194
5195 Updated all affected code.
5196
5197 * src/psaux/psobjs.c (PS_Table_*): Renamed to...
5198 (ps_table_*): This.
5199 (T1_Builder_*): Renamed to...
5200 (t1_builder_*): This.
5201 * src/psaux/t1decode.c (T1_Decoder_*): Renamed to...
5202 (t1_decoder_*): This.
5203
5204 * src/psnames/psmodule.c (PS_*): Renamed to...
5205 (ps_*): This.
5206
5207 Updated all affected code.
5208
5209 * src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to...
5210 (sfnt_get_interface): This.
5211 * src/sfnt/sfobjs.c (SFNT_*): Renamed to...
5212 (sfnt_*): This.
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...
5218 (tt_face_*): This.
5219 * src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to...
5220 (tt_post_default_names): This.
5221 (Load_*): Renamed to...
5222 (load_*): This.
5223 (TT_*): Renamed to...
5224 (tt_face_*): This.
5225 * src/sfnt/ttsbit.c (TT_*): Renamed to...
5226 (tt_face_*): This.
5227 ({Find,Load,Crop}_*): Renamed to...
5228 ({find,load,crop}_*): This.
5229
5230 Updated all affected code.
5231
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
5235 factors.
5236 (ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v):
5237 New functions.
5238
5239 (ft_smooth_locd_renderer_class, ft_smooth_lcdv_renderer_class): New
5240 classes.
5241
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...
5251 (tt_face_*): This.
5252
5253 2002-08-27 Werner Lemberg <wl@gnu.org>
5254
5255 * docs/VERSION.DLL: New file.
5256
5257 2002-08-23 Graham Asher <graham.asher@btinternet.com>
5258
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.
5264
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.
5269
5270 * src/cff/cffload.h (cff_font_load): Removed argument now unneeded.
5271
5272 * src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load
5273 to conform with new signature.
5274
5275 2002-08-22 David Turner <david@freetype.org>
5276
5277 * src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
5278 src/bdf/bdfdrivr.c: Removed compiler warnings.
5279
5280 2002-08-21 Werner Lemberg <wl@gnu.org>
5281
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.
5285
5286 2002-08-21 David Turner <david@freetype.org>
5287
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.
5292
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
5297 function.
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.
5301
5302 * src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py,
5303 src/tools/docmaker/tohtml.py: Updating the DocMaker tool.
5304
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.
5310
5311 * src/base/ftobjs.c (FT_Load_Glyph): Updated.
5312 Handle FT_LOAD_NO_AUTOHINT.
5313 (FT_Load_Char): Updated.
5314
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.
5318
5319 2002-08-20 Werner Lemberg <wl@gnu.org>
5320
5321 * src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0.
5322
5323 2002-08-20 David Turner <david@freetype.org>
5324
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).
5329
5330 Improve support of local extrema and stem edge points.
5331
5332 * src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec
5333 for `zones'.
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
5337 macros.
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
5341 enum values.
5342 (psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}):
5343 New macros.
5344 (PSH3_PointRec): New members `flags2' and `org_v'.
5345 (PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros.
5346
5347 * src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler
5348 warnings.
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.
5360
5361 * test/gview.c (draw_ps3_hint, ps3_draw_control_points): New
5362 functions.
5363 Other small updates.
5364
5365 * Jamfile: Small updates.
5366
5367 2002-08-18 Arkadiusz Miskiewicz <misiek@pld.ORG.PL>
5368
5369 * builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to
5370 make life easier for package maintainers.
5371
5372 2002-08-18 Werner Lemberg <wl@gnu.org>
5373
5374 * src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of
5375 horiBearingX.
5376 * src/bdf/bdfdrivr.c (BDF_GlyphLoad): Fix computation of
5377 horiBearingY.
5378
5379 2002-08-16 George Williams <gww@silcom.com>
5380
5381 Add support for Apple composite glyphs.
5382
5383 * include/freetype/config/ftoption.h
5384 (TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro.
5385
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.
5390
5391 2002-08-16 Werner Lemberg <wl@gnu.org>
5392
5393 * src/cff/cffgload.c (cff_free_glyph_data),
5394 src/cff/cffload.c (cff_font_load): Use FT_UNUSED.
5395
5396 2002-08-15 Werner Lemberg <wl@gnu.org>
5397
5398 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'.
5399 * src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning.
5400
5401 2002-08-15 Graham Asher <graham.asher@btinternet.com>
5402
5403 Implemented the incremental font loading system for the CFF driver.
5404 Tested using the GhostScript-to-FreeType bridge (under development).
5405
5406 * src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New
5407 functions.
5408 (cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use
5409 them.
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
5413 character recipes.
5414 * src/cff/cffload.h, src/cff/cffobjs.c: Updated.
5415
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
5419 2002-08-01.
5420
5421 2002-08-06 Werner Lemberg <wl@gnu.org>
5422
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/.
5428
5429 2002-08-01 Graham Asher <graham.asher@btinternet.com>
5430
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.
5436
5437 2002-08-01 Graham Asher <graham.asher@btinternet.com>
5438
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.
5444
5445 * include/freetype/freetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
5446 Removed.
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'.
5451
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]:
5455 Updated.
5456
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.
5464
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.
5471
5472 2002-07-30 David Turner <david@freetype.org>
5473
5474 * include/freetype/ftincrem.h: Adding new experimental header file
5475 to demonstrate a `cleaner' API to support incremental font loading.
5476
5477 * include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
5478
5479 * src/tools/docmaker/*: Adding new (more advanced) version of
5480 the DocMaker tool, using Python's sophisticated regexps.
5481
5482 2002-07-28 Werner Lemberg <wl@gnu.org>
5483
5484 s/ft_memset/FT_MEM_SET/.
5485 s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate.
5486
5487 2002-07-27 Werner Lemberg <wl@gnu.org>
5488
5489 * src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
5490
5491 2002-07-26 Werner Lemberg <wl@gnu.org>
5492
5493 * src/truetype/ttgload.c (load_truetype_glyph)
5494 [FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/.
5495
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'
5499 variable.
5500 * src/truetype/ttgload.c (load_truetype_glyph): Remove statement
5501 without effect.
5502 * src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
5503
5504 * src/pshinter/pshalgo3.c (psh3_hint_table_record,
5505 psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error
5506 message.
5507
5508 2002-07-24 Graham Asher <graham.asher@btinternet.com>
5509
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.'
5515
5516 2002-07-18 Graham Asher <graham.asher@btinternet.com>
5517
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.
5524
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.
5528
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'.
5537
5538 * include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H.
5539 (FT_Data): New structure to represent binary data.
5540
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
5544 interface.
5545
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.
5553 Get glyph offset.
5554
5555 * src/truetype/ttobjs.c (TT_Face_Init)
5556 [FT_CONFIG_OPTION_INCOREMENTAL]: Added the incremental loading
5557 system for the TrueType driver.
5558
5559 * src/cid/cidgload.c (cid_load_glyph)
5560 [FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
5561 for the CID driver.
5562
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.
5566
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.
5573
5574 2002-07-17 David Turner <david@freetype.org>
5575
5576 Cleaning up the cache sub-system code; linear hashing is now the
5577 default.
5578
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.
5582
5583 FT_CONFIG_OPTION_USE_CMAPS is now the default.
5584
5585 * include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove
5586 `get_char_index' and `get_next_char'.
5587
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
5595 the default.
5596
5597 * src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext):
5598 Removed.
5599 * src/type42/t42objs.h: Updated.
5600
5601 * src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char):
5602 Removed.
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.
5608
5609 * src/base/ftobjs.c (open_face): Select Unicode cmap by default.
5610
5611 * src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that
5612 prevented OpenType fonts to be recognized by FreeType.
5613
5614 2002-07-11 David Turner <david@freetype.org>
5615
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.
5619
5620 * include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset'
5621 field.
5622
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.
5629
5630 * src/base/ftobject.c, src/base/fthash.c: Updated object sub-system
5631 and dynamic hash table implementation (still experimental, don't
5632 use).
5633 * include/freetype/internal/fthash.h: Updated.
5634 * include/freetype/internal/ftobjs.h (FT_LibraryRec): New member
5635 `meta_class'.
5636
5637 Fixing a bug in the Type 1 loader that prevented valid font bounding
5638 boxes to be loaded from multiple master fonts.
5639
5640 * include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field.
5641
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.
5646
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.
5654
5655 2002-07-10 David Turner <david@freetype.org>
5656
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
5660 needed.
5661
5662 * src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support
5663 charmaps for CFF fonts.
5664
5665 * src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated.
5666
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.
5670
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:
5677
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
5711
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
5717
5718 2002-07-09 Owen Taylor <owen@redhat.com>
5719
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).
5723
5724 2002-07-07 David Turner <david@freetype.org>
5725
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).
5729
5730 * docs/DEBUG.TXT: Adding debugging support documentation.
5731
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
5736 look like:
5737
5738 any:6 memory:4 io:3 or
5739 any:6,memory:4,io:3 or
5740 any:6;memory:4;io:3
5741
5742 2002-07-07 Owen Taylor <owen@redhat.com>
5743
5744 * src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for
5745 blue fuzz.
5746 * src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field.
5747 * src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'.
5748
5749 Adding support for hinter-specific bit flags, and the new
5750 FT_Set_Hint_Flags high-level API.
5751
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.
5755
5756 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
5757 `hint_flags' member.
5758
5759 * src/base/ftobjs.c (FT_Set_Hint_Flags): New function.
5760
5761 * include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags'
5762 member.
5763
5764 * include/freetype/internal/pshints.h (T1_Hints_ApplyFunc,
5765 T2_Hints_ApplyFunc): Add parameter to pass hint flags.
5766
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
5779 hint flags.
5780 * src/pshinter/pshalgo3.h: Updated.
5781
5782 2002-07-04 David Turner <david@freetype.org>
5783
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.
5787
5788 * src/autohint/ahhint.c: Removing compiler warnings.
5789
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.
5793
5794 2002-07-03 David Turner <david@freetype.org>
5795
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.
5799
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.
5809
5810 2002-07-03 Owen Taylor <owen@redhat.com>
5811
5812 Adding new algorithm based on Owen Taylor's recent work.
5813
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.
5818
5819 * src/pshinter/Jamfile, src/pshinter/rules.mk: Updated.
5820
5821 2002-07-01 Owen Taylor <owen@redhat.com>
5822
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.
5826
5827 2002-07-01 Keith Packard <keithp@keithp.com>
5828
5829 * src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next):
5830 Fixing the cmap 8 and 12 parsing routines.
5831
5832 2002-07-01 David Turner <david@freetype.org>
5833
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.
5840 (ft_norm): Removed.
5841 * include/freetype/ftsynth.h: Updated.
5842
5843 2002-06-26 David Turner <david@freetype.org>
5844
5845 * include/freetype/internal/ftobject.h: Updating the object
5846 sub-system definitions (still experimental).
5847
5848 * src/base/fthash.c (ft_hash_remove): Fixing a small reallocation
5849 bug.
5850
5851 * src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New
5852 functions.
5853 * include/freetype/fttrigon.h: Updated.
5854
5855
5856 Adding path stroker component (work in progress).
5857
5858 * include/freetype/ftstroker.h, src/base/ftstroker.c: New files.
5859 * src/base/Jamfile: Updated.
5860
5861 * include/freetype/config/ftheader.h (FT_STROKER_H): New macro.
5862
5863
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.
5867
5868 2002-06-24 Werner Lemberg <wl@gnu.org>
5869
5870 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
5871
5872 2002-06-21 David Turner <david@freetype.org>
5873
5874
5875 * Version 2.1.2 released.
5876 =========================
5877
5878
5879 2002-06-21 Roberto Alameda <ojancano@geekmail.de>.
5880
5881 * include/freetype/internal/t42types.h (T42_Font): Removed since
5882 it is already in t42objs.h.
5883 (T42_Face): Use T1_FontRec.
5884
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.
5889
5890 2002-06-21 Detlef Würkner <TetiSoft@apg.lahn.de>
5891
5892 * src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite
5893 glyphs.
5894
5895 2002-06-21 Sven Neumann <sven@convergence.de>
5896
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
5901 function.
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.
5908
5909 2002-06-21 David Turner <david@freetype.org>
5910
5911 * README, docs/CHANGES: Preparing the 2.1.2 release.
5912
5913 2002-06-19 Detlef Würkner <TetiSoft@apg.lahn.de>
5914
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
5918 also.
5919
5920 2002-06-19 Sebastien BARRE <http://barre.nom.fr/contact.html#email>
5921
5922 * src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning.
5923
5924 2002-06-19 Werner Lemberg <wl@gnu.org>
5925
5926 * src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo
5927 (xy <-> yx).
5928 * src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with
5929 `||' to make code easier to read.
5930
5931 2002-06-18 Roberto Alameda <ojancano@geekmail.de>.
5932
5933 * src/type42/t42objs.c (t42_check_size_change): Removed.
5934 (T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size
5935 instead.
5936 (T42_GlyphSlot_Load): Remove call to t42_check_size_change.
5937
5938 2002-06-18 Detlef Würkner <TetiSoft@apg.lahn.de>
5939
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.
5943
5944 Provide default charmaps.
5945
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.
5950
5951 2002-06-17 Sven Neumann <sven@gimp.org>
5952
5953 * src/pfr/pfrobjs.c (pfr_face_init): Fix typo.
5954
5955 2002-06-16 Leonard Rosenthol <leonardr@lazerware.com>
5956
5957 Updated Win32/VC++ projects to include the new PFR driver.
5958
5959 * builds/win32/visualc/freetype.dsp: Updated.
5960
5961 2002-06-16 Anthony Fok <fok@debian.org>
5962
5963 Install freetype2.m4.
5964
5965 * builds/unix/install.mk (install, uninstall): Handle it.
5966
5967 2002-06-16 Detlef Würkner <TetiSoft@apg.lahn.de>
5968
5969 Same fix for PFR driver.
5970
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.
5974
5975 2002-06-15 Detlef Würkner <TetiSoft@apg.lahn.de>
5976
5977 Fix glyph indices to make index zero always the undefined glyph.
5978
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.
5984
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'.
5990
5991 * src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix
5992 bounding tests.
5993
5994 2002-06-14 Detlef Würkner <TetiSoft@apg.lahn.de>
5995
5996 Add new cmap support to BDF driver.
5997
5998 * src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]:
5999 New structure.
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
6003 conditionally.
6004 (BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords.
6005 Implement new cmap handling.
6006 (bdf_driver_class): Updated.
6007
6008 2002-06-14 Werner Lemberg <wl@gnu.org>
6009
6010 * Makefile, configure, */*.mk, builds/unix/unix-def.in,
6011 docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/.
6012
6013 2002-06-12 Werner Lemberg <wl@gnu.org>
6014
6015 * src/bdf/bdflib.c: s/FT_Short/short/ for consistency.
6016
6017 2002-06-11 David Turner <david@freetype.org>
6018
6019 * builds/win32/ftdebug.c: Added a missing #endif.
6020
6021 * src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings.
6022
6023 Removed the bug in Type 42 driver that prevented un-hinted outlines
6024 to be loaded.
6025
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'.
6033
6034 * builds/win32/visualc/freetype.dsp: Updated.
6035
6036 2002-06-09 David Turner <david@freetype.org>
6037
6038
6039 * Version 2.1.1 released.
6040 =========================
6041
6042
6043 2002-06-08 Juliusz Chroboczek <jch@pps.jussieu.fr>
6044
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',
6048 and `ft_jmp_buf'.
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.
6053
6054 * src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value.
6055
6056 2002-06-08 David Turner <david@freetype.org>
6057
6058 * src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused
6059 the function to return invalid values.
6060
6061 * src/cache/ftccache.i: Removing a typo that prevented
6062 the source's compilation.
6063
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.
6067
6068 2002-06-08 Detlef Würkner <TetiSoft@apg.lahn.de>
6069
6070 * builds/amiga/smakefile, builds/amiga/makefile: Updated.
6071
6072 2002-06-08 Werner Lemberg <wl@gnu.org>
6073
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++.
6079
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.
6084
6085 * src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.
6086
6087 2002-06-08 David Turner <david@freetype.org>
6088
6089 * src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE,
6090 GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
6091 New macros.
6092 (ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
6093 ftc_cache_lookup.
6094 (FTC_CMapCache_Lookup): Updated.
6095
6096 Adding various experimental optimizations to the cache manager.
6097
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'.
6102
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]:
6113 Updated.
6114 (ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it.
6115
6116 * src/cache/ftccache.i: New file.
6117
6118 * src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE,
6119 GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
6120 New macros.
6121 (ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
6122 ftc_cache_lookup.
6123 (FTC_SBitCache_Lookup): Updated.
6124
6125 * src/type42/t42parse.c: Removing duplicate function.
6126
6127 2002-06-07 Graham Asher <graham.asher@btinternet.com>
6128
6129 * src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition
6130 from FT_EXPORT_DEF to FT_BASE_DEF.
6131
6132 2002-06-07 David Turner <david@freetype.org>
6133
6134 Fixed the bug that prevented the correct display of fonts with
6135 `ftview'.
6136
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.
6141
6142 (t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use
6143 `face->type1'.
6144
6145 (Get_Interface): Renamed to...
6146 (T42_Get_Interface): This.
6147 Updated.
6148 (T42_Open_Face, T42_Face_Done): Updated.
6149 (T42_Face_Init): Add new cmap support.
6150 Updated.
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.
6155 Updated.
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.
6160
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):
6171 Renamed to...
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.
6175 Updated.
6176
6177 (t42_keywords): Updated.
6178
6179 * src/type42/Jamfile, src/type42/descrip.mms: Updated.
6180
6181 2002-06-03 Werner Lemberg <wl@gnu.org>
6182
6183 Add 8bpp support to BDF driver.
6184
6185 * src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp.
6186 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto.
6187 * src/bdf/README: Updated.
6188
6189 2002-06-02 Detlef Würkner <TetiSoft@apg.lahn.de>
6190
6191 * src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array.
6192
6193 2002-05-29 Detlef Würkner <TetiSoft@apg.lahn.de>
6194
6195 * src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically.
6196 (_bdf_parse_glyphs): Use correct size for allocating
6197 `font->unencoded'.
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
6201 unusual fonts.
6202
6203 2002-05-29 Werner Lemberg <wl@gnu.org>
6204
6205 * src/bdf/descrip.mms, src/type42/descrip.mms: New files.
6206 * descrip.mms (all): Updated.
6207
6208 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
6209 compilation.
6210 * src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.
6211
6212 2002-05-28 Detlef Würkner <TetiSoft@apg.lahn.de>
6213
6214 * builds/amiga/makefile, builds/amiga/smakefile,
6215 amiga/include/freetype/config/ftmodule.h: Updated to include
6216 support for BDF and Type42 drivers.
6217
6218 * docs/modules.txt: Updated.
6219
6220 2005-05-28 David Turner <david@freetype.org>
6221
6222 * docs/CHANGES: Updating file for next release (2.1.1).
6223
6224 * src/bdf/bdflib.c: Removing compiler warnings.
6225
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).
6232
6233 * include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not
6234 documented yet).
6235
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.
6239
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.
6243
6244 * src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that
6245 prevented family blue zones substitution from hapenning correctly.
6246
6247 * include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding
6248 documentation comment.
6249
6250 2002-05-28 Werner Lemberg <wl@gnu.org>
6251
6252 * src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT
6253 but FT_STREAM_READ.
6254 Declare `stream' variable.
6255
6256 * src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math
6257 with calls to `FT_MulDiv'.
6258
6259 2002-05-28 David Turner <david@freetype.org>
6260
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.
6265
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).
6269
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.
6273
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.
6290
6291 2002-05-24 Tim Mooney <enchanter@users.sourceforge.net>
6292
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
6298 custom source file)
6299
6300 2002-05-22 Werner Lemberg <wl@gnu.org>
6301
6302 * include/freetype/config/ftheader.h (FT_BEZIER_H): Removed.
6303 (FT_BDF_H): New macro for accessing `ftbdf.h'.
6304
6305 * src/type42/t42drivr.c (hexval): Fix typo.
6306
6307 2002-05-21 Martin Muskens <mmuskens@aurelon.com>
6308
6309 * src/psaux/psobjs.c (T1Radix): New function.
6310 (t1_toint): Use it to handle numbers in radix format.
6311
6312 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy
6313 for undocumented, obsolete opcode 15.
6314
6315 2002-05-21 David Turner <david@freetype.org>
6316
6317 * src/bdf/bdflib.c: Removed compiler warning, and changed all tables
6318 to the `static const' storage specifier (instead of simply
6319 `static').
6320
6321 * src/type42/t42drivr.c (hexval): Use more efficient code.
6322 Removing compiler warnings.
6323 * src/bdf/bdfdrivr.c: Removing compiler warnings.
6324
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.
6330
6331 2002-05-21 Werner Lemberg <wl@gnu.org>
6332
6333 * src/bdf/README: Mention Microsoft's SBIT tool.
6334
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
6339 been never used.
6340
6341 2002-05-21 Roberto Alameda <ojancano@geekmail.de>.
6342
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):
6351 New macro.
6352
6353 2002-05-20 Werner Lemberg <wl@gnu.org>
6354
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.
6358
6359 2002-05-19 Werner Lemberg <wl@gnu.org>
6360
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.
6366
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):
6373 New macro.
6374
6375 * include/freetype/config/ftstdlib.h (ft_sprintf): New alias for
6376 sprintf.
6377
6378 2002-05-18 Werner Lemberg <wl@gnu.org>
6379
6380 * include/freetype/internal/fttrace.h: Added Type 42 driver
6381 component.
6382 * src/type42/t42drivr.c: Use it.
6383
6384 * include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H):
6385 New macro.
6386
6387 2002-05-17 Werner Lemberg <wl@gnu.org>
6388
6389 * src/type42/Jamfile: New file.
6390
6391 2002-05-14 Werner Lemberg <wl@gnu.org>
6392
6393 Adding a driver for Type42 fonts written by Roberto Alameda
6394 <ojancano@geekmail.de>.
6395
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.
6400
6401 2002-05-12 Owen Taylor <otaylor@redhat.com>
6402
6403 * src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables
6404 with a zero length value.
6405
6406 2002-05-12 Michael Pfeiffer <michael.pfeiffer@utanet.at>
6407
6408 * builds/beos/beos.mk: Include `link-std.mk'.
6409
6410 2002-05-12 Werner Lemberg <wl@gnu.org>
6411
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.
6416
6417 * include/freetype/internal/t1types.h, src/type1/t1load.c,
6418 src/type1/t1objs.c:
6419 s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
6420
6421 2002-05-06 Werner Lemberg <wl@gnu.org>
6422
6423 * README: Add a note regarding libttf vs. libfreetype.
6424
6425 2002-05-05 Werner Lemberg <wl@gnu.org>
6426
6427 FreeType 2 can now be built in an external directory with the
6428 configure script also.
6429
6430 * builds/freetype.mk (INCLUDES): Add `OBJ_DIR'.
6431
6432 * builds/unix/detect.mk (have_mk): New variable to test for
6433 external build.
6434 (unix-def.mk): Defined according to value of `have_mk'.
6435 * builds/unix/unix.mk (have_mk): New variable to test for
6436 external build.
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
6442 if not yet defined.
6443 * builds/unix/install.mk (install): Use `OBJ_BUILD' for installing
6444 freetype-config.
6445
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.
6450
6451 * docs/INSTALL: Document it.
6452
6453 2002-05-04 David Turner <david@freetype.org>
6454
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.
6460
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.
6470
6471 2002-05-02 Werner Lemberg <wl@gnu.org>
6472
6473 * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo
6474 (0xFFFU -> 0xFFFFU).
6475
6476 2002-05-01 Werner Lemberg <wl@gnu.org>
6477
6478 * docs/INSTALL: Fix URL of makepp.
6479
6480 2002-05-01 David Turner <david@freetype.org>
6481
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')
6484 were opened.
6485
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').
6488
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.
6492
6493 * src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary
6494 search algorithm. Certain fonts contain more than 170 distinct
6495 segments!
6496
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).
6500
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.
6506
6507 * src/base/Jamfile: Updated.
6508
6509 * include/freetype/internal/internal.h (FT_INTERNAL_HASH_H,
6510 FT_INTERNAL_OBJECT_H): New macros.
6511
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
6515 future.
6516
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.
6520
6521 2002-04-30 Wenlin Institute (Tom Bishop) <wenlin@wenlin.com>
6522
6523 * src/base/ftmac.c (p2c_str): Removed.
6524 (file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for
6525 OS X.
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.
6530 Add safety checks.
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
6538 OS X.
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.
6545
6546 2002-04-30 Werner Lemberg <wl@gnu.org>
6547
6548 `interface' is reserved on the Mac.
6549
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/.
6562
6563 Some more variable renames to avoid troubles on the Mac.
6564
6565 * src/raster/ftraster.c:
6566 s/Unknown|Ascending|Descending|Flat/\1_State/.
6567 * src/smooth/ftgrays.c: s/TScan/TCoord/.
6568
6569 Other changes for the Mac.
6570
6571 * include/freetype/config/ftconfig.h: Define FT_MACINTOSH for
6572 Mac platforms.
6573 * src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/.
6574
6575 * src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always
6576 an even number.
6577
6578 2002-04-29 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
6579
6580 * descrip.mms (all): Add pfr driver.
6581
6582 2002-04-28 Werner Lemberg <wl@gnu.org>
6583
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.
6597
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]:
6601 Removed.
6602 * src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for
6603 FT_CONFIG_OPTION_USE_CMAPS.
6604
6605 2002-04-27 Werner Lemberg <wl@gnu.org>
6606
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.
6613
6614 2002-04-22 Werner Lemberg <wl@gnu.org>
6615
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).
6619
6620 2002-04-19 Werner Lemberg <wl@gnu.org>
6621
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
6624 compiler warning.
6625 * src/pfr/pfrobjs.c (pfr_face_init): Fix debug message.
6626 (pfr_slot_load): Remove redundant local variable.
6627
6628 2002-04-19 David Turner <david@freetype.org>
6629
6630 Adding a PFR font driver to the FreeType sources. Note that it
6631 doesn't support embedded bitmaps or kerning tables yet.
6632
6633 src/pfr/*: New files.
6634
6635 * include/freetype/config/ftmodule.h,
6636 include/freetype/internal/fttrace.h, src/Jamefile: Updated.
6637
6638 * src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c
6639 (T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback
6640 function.
6641
6642 * include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New
6643 macros.
6644
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
6647 24-bit integers.
6648
6649 2002-04-18 David Turner <david@freetype.org>
6650
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.
6656
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.
6661
6662 2002-04-17 David Turner <david@freetype.org>
6663
6664
6665 * Version 2.1.0 released.
6666 =========================
6667
6668
6669 2002-04-17 Michael Jansson <mjan@em2-solutions.com>
6670
6671 * src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug
6672 that prevented the function to return the correct value.
6673
6674 2002-04-16 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
6675
6676 * src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator
6677 tables.
6678
6679 2002-04-15 David Turner <david@freetype.org>
6680
6681 * docs/FTL.txt: Formatting.
6682
6683 * include/freetype/config/ftoption.h: Reduce the size of the
6684 render pool from 32kByte to 16kByte.
6685
6686 * src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler
6687 warning.
6688
6689 * include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed.
6690
6691 * docs/CHANGES: Preparing 2.1.0 release.
6692
6693 2002-04-13 Werner LEMBERG <wl@gnu.org>
6694
6695 * src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid
6696 compiler warning.
6697
6698 2002-04-12 David Turner <david@freetype.org>
6699
6700 * README.UNX: Updated the Unix-specific quick-compilation guide to
6701 warn about the GNU Make requirement at compile time.
6702
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,
6708
6709 src/autohint/ahoptim.c,
6710
6711 src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c,
6712 src/base/ftobjs.c, src/base/ftsystem.c,
6713
6714 src/cache/ftcimage.c, src/cache/ftcsbits.c,
6715
6716 src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c,
6717
6718 src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
6719
6720 src/pcf/pcfdriver.c, src/pcf/pcfread.c,
6721
6722 src/psaux/t1cmap.c, src/psaux/t1decode.c,
6723
6724 src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
6725 src/pshinter/pshrec.c,
6726
6727 src/psnames/psmodule.c,
6728
6729 src/raster/ftraster.c,
6730
6731 src/sfnt/sfdriver.c, src/sfnt/ttload.c,
6732
6733 src/smooth/ftgrays.c,
6734
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,
6737
6738 builds/unix/ftconfig.in, builds/vms/ftconfig.h,
6739
6740 builds/amiga/src/base/ftdebug.c:
6741
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.).
6745
6746 This eases the porting of FreeType 2 to environments like
6747 XFree86 modules/extensions.
6748
6749 Also removed many #include <string.h>, #include <stdlib.h>, etc.
6750 from the engine's sources where they are not needed.
6751
6752 * src/sfnt/ttpost.c: Use macro name for psnames.h.
6753
6754 2002-04-12 Vincent Caron <v.caron@zerodeux.net>
6755
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.
6758
6759 2002-04-11 David Turner <david@freetype.org>
6760
6761 * README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release.
6762
6763 * docs/FTL.txt: Updated license text to provide a preferred
6764 disclaimer and adjust copyright dates/extents.
6765
6766 * include/freetype/cache/ftcglyph.h: Removing obsolete (and
6767 confusing) comment.
6768
6769 * Jamfile.in: New file.
6770
6771 2002-04-11 Maxim Shemanarev <mcseemagg@yahoo.com>
6772
6773 * src/smooth/ftgrays.c (gray_hline): Minor optimization.
6774
6775 2002-04-02 Werner Lemberg <wl@gnu.org>
6776
6777 Fixes from the stable branch:
6778
6779 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
6780 Removed.
6781 [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
6782 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
6783 [FT_CONFIG_OPTION_OLD_CALCS]: Removed.
6784
6785 * src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
6786 output of FreeType 1.
6787
6788 * src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
6789 bug that created un-even stem widths when hinting Postscript fonts.
6790
6791 * src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes.
6792
6793 2002-04-01 Werner Lemberg <wl@gnu.org>
6794
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.
6800
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/.
6804
6805 2002-03-31 Yao Zhang <yaoz@vidar.niaaa.nih.gov>
6806
6807 * src/truetype/ttobjs.c (TT_Size_Init): Fix typo.
6808
6809 2002-03-31 Werner Lemberg <wl@gnu.org>
6810
6811 * src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/.
6812 * src/psaux/t1cmap.c: Ditto.
6813 * src/sfnt/ttcmap0.c: Ditto.
6814
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
6819 messages.
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
6828 messages.
6829 (TT_Load_OS2): 16bit fix.
6830
6831 2002-03-30 David Turner <david@freetype.org>
6832
6833 * include/freetype/internal/tttypes.h: Adding comments to some of
6834 the TT_FaceRec fields.
6835
6836 * src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings.
6837
6838 * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}:
6839 New functions.
6840 (tt_face_get_name): Use them to properly extract an ascii font name.
6841
6842 2002-03-30 Werner Lemberg <wl@gnu.org>
6843
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.
6847
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.
6854
6855 * src/truetype/ttdriver.c, src/truetype/ttobjs.c,
6856 src/truetype/ttobjs.h: Renaming driver functions to the
6857 FT_<Subject>_<Action> scheme:
6858
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
6866
6867 2002-03-29 Werner Lemberg <wl@gnu.org>
6868
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
6871 files.
6872 * builds/unix/ftconfig.in: Add argument to FT_LOCAL and
6873 FT_LOCAL_DEF.
6874 * src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/.
6875 * builds/unix/configure.ac: Temporarily deactivate creation of
6876 ../../Jamfile.
6877 * builds/unix/configure: Updated.
6878
6879 2002-03-28 KUSANO Takayuki <AE5T-KSN@asahi-net.or.jp>
6880
6881 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos.
6882
6883 2002-03-28 Werner Lemberg <wl@gnu.org>
6884
6885 * include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix
6886 compiler warnings.
6887 * include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for
6888 some members.
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
6891 cast.
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'
6896 instead of zero.
6897 * src/type1/t1objs.c (T1_Face_Init): Use casts.
6898
6899 2002-03-26 David Turner <david@freetype.org>
6900
6901 * src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c:
6902 Fixed a small bug in the FT_CMaps support code.
6903
6904 2002-03-25 David Turner <david@freetype.org>
6905
6906 * src/truetype/ttinterp.c (Norm): Replaced with...
6907 (TT_VecLen): This.
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.
6912
6913 2002-03-22 David Turner <david@freetype.org>
6914
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).
6918
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.
6923
6924 * include/freetype/fterrdef.h: New file.
6925 * include/freetype/fterrors.h: Include it. It contains all error
6926 codes.
6927 * include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New
6928 macro.
6929
6930 * include/freetype/internal/ftmemory.h, and a lot of other files:
6931 Changed the names of memory macros. Examples:
6932
6933 MEM_Set => FT_MEM_SET
6934 MEM_Copy => FT_MEM_COPY
6935 MEM_Move => FT_MEM_MOVE
6936
6937 ALLOC => FT_ALLOC
6938 FREE => FT_FREE
6939 REALLOC = >FT_REALLOC
6940
6941 FT_NEW was introduced to allocate a new object from a _typed_
6942 pointer.
6943
6944 Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by
6945 FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer
6946 arguments.
6947
6948 This results in _lots_ of sources being changed, but makes the code
6949 more generic and less error-prone.
6950
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.
6956 Examples:
6957
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
6963 etc.
6964
6965 Also introduced the FT_PEEK_XXXX functions.
6966
6967 * src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented
6968 out function.
6969 (find_encoding): Removed.
6970 (CFF_Face_Init): Remove charmap support.
6971
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
6974 support of cmaps.
6975
6976 2002-03-21 David Turner <david@freetype.org>
6977
6978 * src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated
6979 to new FT_CMap definitions.
6980
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.
6985
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.
6989
6990 2002-03-20 David Turner <david@freetype.org>
6991
6992 * src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a
6993 memory allocation bug that was due to un-careful renaming of the
6994 FT_SubGlyph type.
6995
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
6998 debugging is used.
6999
7000 * Renaming stream macros. Examples:
7001
7002 FILE_Skip => FT_STREAM_SKIP
7003 FILE_Read => FT_STREAM_READ
7004 ACCESS_Frame => FT_FRAME_ENTER
7005 FORGET_Frame => FT_FRAME_EXIT
7006 etc.
7007
7008 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak.
7009
7010 * include/freetype/internal/ftobjs.h: Changing the definition of
7011 FT_CMap_CharNextFunc slightly.
7012
7013 * src/cff/*.c: Updating CFF type definitions.
7014
7015 2002-03-14 David Turner <david@freetype.org>
7016
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.
7020
7021 FT_AutoHinter_Interface => FT_AutoHinter_ServiceRec
7022 FT_AutoHinter_Interface* => FT_AutoHinter_Service
7023 etc.
7024
7025 FT_AutoHinter_Get_Global_Func => FT_AutoHinter_GlobalGetFunc
7026 FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc
7027 etc.
7028
7029 * ahloader.h [_STANDALONE_]: Removed all conditional code.
7030
7031 * include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the
7032 type definitions of the CFF font driver.
7033
7034 CFF_Font => CFF_FontRec
7035 CFF_Font* => CFF_Font
7036 etc.
7037
7038 * include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating
7039 type definitions of the Windows FNT font driver.
7040
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.
7049
7050 FTDriver_initFace => FT_Face_InitFunc
7051 FTDriver_initGlyphSlot => FT_Slot_InitFunc
7052 etc.
7053
7054 * src/cid/cidobjs.c (CID_Face_Init): Remove dead code.
7055
7056 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a
7057 few face method definitions:
7058
7059 FT_PSName_Requester => FT_Face_GetPostscriptNameFunc
7060 FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc
7061 FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
7062
7063 * src/base/ftapi.c: New file. It contains backwards compatibility
7064 functions.
7065
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:
7071
7072 t1_token_any => T1_TOKEN_TYPE_ANY
7073 t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
7074 etc.
7075
7076 * include/freetype/internal/psglobals.h: Removed.
7077 * include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
7078 Updated.
7079
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.
7084
7085 * include/freetype/freetype.h, include/freetype/internal/ftgloadr.h:
7086 Updating type defintiions for the glyph loader.
7087
7088 2002-03-13 Antoine Leca <antoine@oriolnet.com>
7089
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).
7093
7094 2002-03-08 Werner Lemberg <wl@gnu.org>
7095
7096 * src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset.
7097
7098 2002-03-07 Werner Lemberg <wl@gnu.org>
7099
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):
7111 Ditto.
7112 * src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
7113 * src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
7114 variables.
7115
7116 * include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
7117 to...
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.
7123
7124 * src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
7125 (PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
7126 (PSH_AlignmentRec): Updated.
7127
7128 * include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
7129 typo.
7130 * include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
7131 * src/base/ftstream (FT_Get_Char): Rename to...
7132 (FT_Stream_Get_Char): This.
7133
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):
7140 Ditto.
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.
7160
7161 2002-03-06 David Turner <david@freetype.org>
7162
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.
7166
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.
7171
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.
7176
7177 2002-03-06 Werner Lemberg <wl@gnu.org>
7178
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):
7182 Ditto.
7183
7184 2002-03-05 David Turner <david@freetype.org>
7185
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).
7190
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'.
7194
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.
7199
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.
7203
7204 * include/freetype/internal/psnames.h: Add typedef for
7205 `PSNames_Service'.
7206
7207 2002-03-05 Werner Lemberg <wl@gnu.org>
7208
7209 * builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool
7210 1.4.2.
7211 Apply a small patch for AIX to make shared libraries work (this
7212 patch is already in the CVS version of libtool).
7213
7214 * builds/unix/config.sub, builds/unix/config.guess: Updated to
7215 recent versions.
7216
7217 * builds/unix/configure.ac: Fix typo
7218 (AC_CONFIG_FILE->AC_CONFIG_FILES).
7219
7220 * builds/unix/configure: Regenerated.
7221
7222 2002-02-28 David Turner <david@freetype.org>
7223
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 )'.
7227
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.
7231
7232 * src/base/ftobjs.c: Implement FT_Get_First_Char and
7233 FT_Get_Next_Char.
7234
7235 * include/freetype/t1tables.h: Renaming structure types. This
7236
7237 typedef T1_Struct_
7238 {
7239 } T1_Struct;
7240
7241 becomes
7242
7243 typedef PS_StructRec_
7244 {
7245 } PS_StructRec, *PS_Struct;
7246
7247 typedef PS_StructRec T1_Struct; /* backwards-compatibility */
7248
7249 Hence, we increase the coherency of the source code by effectively
7250 using the `Rec' prefix for structure types.
7251
7252 2002-02-27 David Turner <david@freetype.org>
7253
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.
7258
7259 * src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still
7260 experimental) code for OpenType Layout tables validation and
7261 parsing.
7262
7263 * src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still
7264 experimental) code for Type 1 charmap processing.
7265
7266 * src/sfnt/ttcmap0.c: New file. It contains a new, still
7267 experimental SFNT charmap processing support.
7268
7269 * include/freetype/internal/ftobjs.h: Adding validation support as
7270 well as internal charmap object definitions (FT_CMap != FT_CharMap).
7271
7272 2002-02-24 David Turner <david@freetype.org>
7273
7274 * Renaming stream functions to the FT_<Subject>_<Action> scheme:
7275
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
7286
7287 FT_New_Stream( filename, stream ) =>
7288 FT_Stream_Open( stream, filename )
7289
7290 (The function doesn't create the FT_Stream structure, it simply
7291 initializes it for reading.)
7292
7293 FT_New_Memory_Stream( library, FT_Byte* base, size, stream ) =>
7294 FT_Stream_Open_Memory( stream, const FT_Byte* base, size )
7295
7296 FT_Done_Stream => FT_Stream_Close
7297 FT_Stream_IO => FT_Stream_IOFunc
7298 FT_Stream_Close => FT_Stream_CloseFunc
7299
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)
7302
7303 * src/base/ftutil.c: New file. Contains all memory and list
7304 management code (previously in `ftobjs.c' and `ftlist.c',
7305 respectively).
7306
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
7315 to ...
7316 * src/base/ftgloadr.c: This new file.
7317
7318 2002-02-22 Werner Lemberg <wl@gnu.org>
7319
7320 * include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in
7321 enum to avoid compiler warnings.
7322
7323 2002-02-21 David Turner <david@freetype.org>
7324
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.
7328
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
7333
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 ...
7337 (FT_ASSERT): This.
7338 Some stuff from ftdebug.h has been moved to ...
7339
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.
7343
7344 * include/freetype/internal/internal.h: Updated.
7345
7346 * src/base/ftobjs.c, src/base/ftstream.c: Updated.
7347
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.
7351
7352 * include/freetype/fterrors.h: Adding `#undef FT_ERR_CAT' and
7353 `#undef FT_ERR_XCAT' to avoid warnings with certain compilers (like
7354 LCC).
7355
7356 * src/pshinter/pshalgo2.c (print_zone): Renamed to ...
7357 (psh2_print_zone): This to avoid errors during compilation of debug
7358 library.
7359
7360 * src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as
7361 `trace_smooth'.
7362
7363 2002-02-20 David Turner <david@freetype.org>
7364
7365 * README: Adding `devel@freetype.org' address for bug reports.
7366
7367 2002-02-20 Werner Lemberg <wl@gnu.org>
7368
7369 * builds/unix/install.mk (check): New dummy target.
7370 (.PHONY): Add it.
7371
7372 2002-02-19 Werner Lemberg <wl@gnu.org>
7373
7374 * builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first.
7375
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
7385 `orig_y'.
7386 (t1operator_seac): Comment out more dead code.
7387 * src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER'
7388 conditional.
7389 * src/truetype/ttgload.c (TT_Process_Simple_Glyph,
7390 load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER'
7391 conditional.
7392
7393 2002-02-18 Werner Lemberg <wl@gnu.org>
7394
7395 * src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused
7396 variables.
7397 * src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead
7398 of UNUSED.
7399 * src/autohint/ahmodule.c (ft_autohinter_reset): Ditto.
7400 * src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable
7401 swapping code.
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.
7407
7408 2002-02-10 Roberto Alameda <ojancano@geekmail.de>
7409
7410 Add support for ISOLatin1 PS encoding.
7411
7412 * include/freetype/freetype.h (ft_encoding_latin_1): New tag
7413 (`lat1').
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'.
7420
7421 2002-02-09 Werner Lemberg <wl@gnu.org>
7422
7423 * README: Fix typo.
7424 * docs/CHANGES: Minor fixes.
7425
7426
7427 * Version 2.0.8 released.
7428 =========================
7429
7430
7431 2002-02-08 David Turner <david@freetype.org>
7432
7433 * docs/CHANGES: Updating for 2.0.8.
7434
7435 * include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and
7436 removing `FT_Get_Next_Char' from the API (temporarily).
7437
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
7440 release.
7441
7442 2002-02-07 David Turner <david@freetype.org>
7443
7444 * src/pcf/pcfread.c (pcf_load_font): Removed immature support of
7445 the AVERAGE_WIDTH property.
7446
7447 2002-02-06 David Turner <david@freetype.org>
7448
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.
7453
7454 Note that the specification _requires_ these tables, but Adobe
7455 seems to ignore it completely.
7456
7457 * src/sfnt/ttcmap.c: Removing compiler warnings.
7458
7459 * src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt.
7460 (pcf_parse_metric, pcf_parse_compressed_metric): Removed. Code
7461 is now in ...
7462 (pcf_get_metric): Here.
7463 (pcfSeekToType): Renamed to ...
7464 (pcf_seek_to_table_type): This.
7465 Use FT_Int.
7466 (pcfHasType): Renamed to ...
7467 (pcf_has_table_type): This.
7468 Use FT_Int.
7469 (find_property): Renamed to ...
7470 (pcf_find_property): This.
7471 Use FT_Int.
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).
7476
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.
7486
7487 * src/pcf/pcf.h (PCF_Done_Face): Removed.
7488
7489 2002-02-06 Detlef Würkner <TetiSoft@apg.lahn.de>
7490
7491 * src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak.
7492
7493 * src/pcf/pcfread.c (pcf_load_font): Now handles the `AVERAGE_WIDTH'
7494 property to return correct character pixel (width/height) pairs for
7495 embedded bitmaps.
7496
7497 2002-02-04 Keith Packard <keithp@keithp.com>
7498
7499 Adding the function `FT_Get_Next_Char', doing the obvious thing
7500 w.r.t. the selected charmap.
7501
7502 * include/freetype/freetype.h: Add prototype.
7503 * include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar'
7504 typedef.
7505 (FT_Driver_Class): Use it.
7506 * include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func'
7507 typedef.
7508 (PSNames_Interface): Use it.
7509 * include/freetype/internal/tttypes.h: Add `TT_CharNext_Func'
7510 typedef.
7511 (TT_CMapTable): Use it.
7512
7513 * src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing
7514 high-level API.
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
7525 functions.
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.
7533
7534 * src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for
7535 Unicode and Latin 1 encodings.
7536
7537 2002-02-02 Keith Packard <keithp@keithp.com>
7538
7539 * builds/unix/freetype-config.in: Add missing `fi'.
7540
7541
7542 * Version 2.0.7 released.
7543 =========================
7544
7545
7546 2002-02-01 David Turner <david@freetype.org>
7547
7548 * include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7
7549 for the new release.
7550
7551 2002-01-31 David Turner <david@freetype.org>
7552
7553 * README, README.UNX, docs/CHANGES: Updating documentation for the
7554 2.0.7 release.
7555
7556 2002-01-30 David Turner <david@freetype.org>
7557
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.
7561
7562 2002-01-29 David Turner <david@freetype.org>
7563
7564 * configure: Fixed the script. It previously didn't accept more
7565 than one argument correctly. For example, when typing:
7566
7567 ./configure --disable-shared --disable-nls
7568
7569 the `--disable-nls' was incorrectly sent to the `make' program.
7570
7571 2002-01-29 Werner Lemberg <wl@gnu.org>
7572
7573 * README.UNX: Fix typo.
7574 * builds/unix/install.mk (uninstall): Fix library name for libtool.
7575
7576 2002-01-28 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
7577
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.
7582
7583 2002-01-28 Roberto Alameda <ojancano@geekmail.de>
7584
7585 * src/type1/t1load.c (parse_encoding): Set `loader->num_chars'.
7586
7587 2002-01-28 Werner Lemberg <wl@gnu.org>
7588
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>.
7592
7593 2002-01-27 Giuliano Pochini <pochini@shiny.it>
7594
7595 * src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused
7596 bad rendering of thin lines (less than one pixel thick).
7597
7598 2002-01-25 Werner Lemberg <wl@gnu.org>
7599
7600 * src/cff/cffdrivr.c (cff_get_name_index): Make last patch work
7601 actually.
7602
7603 2002-01-25 Martin Zinser <zinser@decus.de>
7604
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.
7609
7610 2002-01-25 WANG Yi <wangyi@founder.com.cn>
7611
7612 * src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug.
7613
7614 2002-01-21 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
7615
7616 * docs/PATENTS: Typo fixed (thanks to Detlef `Hawkeye' Würkner) in
7617 the URL for the online resource.
7618
7619 2002-01-18 Ian Brown <ian.brown@printsoft.de>
7620
7621 * builds/win32/ftdebug.c: New file.
7622 * builds/win32/visualc/freetype.dsp: Updated.
7623
7624 2002-01-18 Detlef Würkner <TetiSoft@apg.lahn.de>
7625
7626 * builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9.
7627 * builds/amiga/README: Updated.
7628
7629 2002-01-18 Ian Brown <ian.brown@printsoft.de>
7630
7631 * builds/win32/visualc/freetype.dsp: Updated.
7632
7633 2002-01-13 Werner Lemberg <wl@gnu.org>
7634
7635 * builds/unix/freetype2.a4: The script was still buggy.
7636 * builds/unix/freetype-config.in: Make it really work for any install
7637 prefix.
7638
7639 2002-01-10 Werner Lemberg <wl@gnu.org>
7640
7641 * builds/unix/freetype2.a4: Fix some serious bugs.
7642
7643 2002-01-09 David Turner <david@freetype.org>
7644
7645 * builds/unix/configure.ac: Build top-level Jamfile.
7646
7647 2002-01-09 Maxim Shemanarev <mcseemagg@yahoo.com>
7648
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.
7652
7653 2002-01-08 David Turner <david@freetype.org>
7654
7655 Added some wrapper scripts to make the installation more
7656 Unix-friendly.
7657
7658 * configure, install: New files.
7659
7660 * INSTALL, README.UNX: Updated installation documentation to use the
7661 new 'configure' and 'install' scripts.
7662
7663 2002-01-07 David Turner <david@freetype.org>
7664
7665
7666 * Version 2.0.6 released.
7667 =========================
7668
7669
7670 * docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release.
7671
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.
7678
7679 * include/freetype/config/ftoption.h: Setting default options for
7680 a release build (debugging off, bytecode interpreter off).
7681
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).
7686
7687 2002-01-05 David Turner <david@freetype.org>
7688
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.
7692
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).
7698
7699 2002-01-04 David Turner <david@freetype.org>
7700
7701 * README.UNX: Added special README file for Unix users.
7702
7703 * builds/unix/ftsystem.c (FT_New_Stream): Fixed typo.
7704
7705 * src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid
7706 of compiler warnings.
7707
7708 * src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning.
7709
7710 2002-01-03 Werner Lemberg <wl@gnu.org>
7711
7712 * src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler
7713 warning.
7714
7715 2002-01-03 Keith Packard <keithp@keithp.com>
7716
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
7720 control issues.
7721
7722 2002-01-03 David Turner <david@freetype.org>
7723
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).
7727
7728 * src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check):
7729 New function to check the consistency of outline data.
7730
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.
7735
7736 There still is a bug there, though.
7737
7738 * src/truetype/ttgload.c (load_truetype_glyph): Fix error condition.
7739
7740 2001-12-30 David Turner <david@freetype.org>
7741
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.
7745
7746 2001-12-25 Antoine Leca <Antoine-Freetype@Leca-Marti.org>
7747
7748 * builds/dos/detect.mk: Correcting the order for Borland compilers:
7749 16-bit bcc was never selected, always overridden by 32-bit bcc32.
7750
7751 2001-12-22 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
7752
7753 * src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
7754 and fix incorrect computation of `available_sizes'.
7755
7756 2001-12-22 David Turner <david@freetype.org>
7757
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).
7761
7762 2001-12-22 Detlef Würkner <TetiSoft@apg.lahn.de>
7763
7764 * builds/amiga/*: Adaptations to latest changes.
7765 Support added for MorphOS.
7766
7767 2001-12-22 Werner Lemberg <wl@gnu.org>
7768
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
7772 FT_ERROR messages.
7773 * src/pshinter/pshalgo1.c (FT_COMPONENT): Define as
7774 `trace_pshalgo1'.
7775 * src/pshinter/pshalgo2.c (FT_COMPONENT): Define as
7776 `trace_pshalgo2'.
7777 * include/freetype/internal/ftdebug.h (FT_Trace): Updated.
7778
7779 * docs/modules.txt: New file.
7780
7781 2001-12-21 David Turner <david@freetype.org>
7782
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.
7789
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.
7794
7795 * src/pshinter/pshalgo2.c: s/vertical/dimension/.
7796
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.
7801
7802 2001-12-20 Werner Lemberg <wl@gnu.org>
7803
7804 * src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix
7805 tracing strings.
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.
7810
7811 * src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
7812
7813 2001-12-20 David Turner <david@freetype.org>
7814
7815 Added PostScript hinter support to the CFF and CID drivers.
7816
7817 * include/freetype/internal/cfftypes.h (CFF_Font): New member
7818 `pshinter'.
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
7836 functions.
7837 (CFF_Init_Face): Renamed to ...
7838 (CFF_Face_Init): This.
7839 Add hinter support.
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.
7848
7849 * include/freetype/internal/t1types.h (CID_FaceRec): New member
7850 `pshinter'.
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.
7866
7867 * src/pshinter/pshrec.c (t2_hint_stems): Fixed.
7868
7869 * src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
7870 crashed the library on exit.
7871
7872 * src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
7873 transformation of hinted glyphs.
7874
7875 * src/cid/cidload.c (cid_read_subrs): Fix error condition.
7876
7877 * src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs
7878 routines were never released when CID faces were destroyed.
7879
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.
7884
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.
7889
7890 2001-12-19 David Turner <david@freetype.org>
7891
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.
7895
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.
7899
7900 * src/sfnt/sfobjs.c (SFNT_Load_Face): Make the `post' and `name'
7901 tables optional to load PCL fonts properly.
7902
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.
7908
7909 * src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline
7910 shifting bug in the monochrome renderer.
7911
7912 * README: Updated version numbers to 2.0.6.
7913
7914 2001-12-17 Werner Lemberg <wl@gnu.org>
7915
7916 * src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid
7917 glyph header.
7918
7919 2001-12-15 Werner Lemberg <wl@gnu.org>
7920
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
7925 `gfam'.
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
7931 `cfam'.
7932 Remove compiler warning.
7933 (FTC_CMapCache_Lookup): Remove compiler warnings.
7934 (ftc_cmap_family_init): Ditto.
7935 (FTC_CMapCache_Lookup): Ditto.
7936
7937 * builds/unix/configure.ac: Increase `version_info' to 8:0:2.
7938 * builds/unix/configure: Regenerated.
7939
7940 2001-12-14 Werner Lemberg <wl@gnu.org>
7941
7942 * builds/mac/README: Updated.
7943
7944 2001-12-14 Scott Long <scott@swiftview.com>
7945
7946 * src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when
7947 dealing with invalid fonts (i.e. glyph size < 10 bytes).
7948
7949 2001-12-14 Sam Latinga <slouken@devolution.com>
7950
7951 * builds/mac/freetype.make: A new Makefile to build with MPW on
7952 MacOS classic.
7953
7954 2001-12-14 David Turner <david@freetype.org>
7955
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
7960 should).
7961
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.
7965
7966 2001-12-12 David Turner <david@freetype.org>
7967
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.
7972
7973 Started adding support for the Postscript hinter in the CFF module.
7974
7975 * src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
7976 (CFF_Parse_CharStrings): Implement it.
7977 * src/cff/cffgload.h: Updated.
7978
7979 2001-12-12 Werner Lemberg <wl@gnu.org>
7980
7981 * builds/unix/freetype2.m4: Some portability fixes.
7982
7983 2001-12-11 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
7984
7985 * src/base/descrip.mms (OBJS): Add ftdebug.obj.
7986
7987 2001-12-11 Werner Lemberg <wl@gnu.org>
7988
7989 * src/sfnt/ttload.c (TT_Load_Generic_Header): Typos.
7990
7991 2001-12-11 David Turner <david@freetype.org>
7992
7993 * builds/unix/freetype-config.in: Modified the script to prevent
7994 passing `-L/usr/lib' to gcc.
7995
7996 * docs/FTL.TXT: Simple fix (change `LICENSE.TXT' to `FTL.TXT').
7997
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.
8001
8002 * INSTALL: Updated the instructions to build shared libraries with
8003 Jam. They were simply wrong.
8004
8005 * src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused
8006 slightly improper results for `FT_Cos' and `FT_Sin' (example:
8007 FT_Sin(0) == -1!).
8008
8009 2001-12-11 Detlef Würkner <TetiSoft@apg.lahn.de>
8010
8011 * include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE):
8012 Fixed incorrect argument types.
8013
8014 2001-12-10 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
8015
8016 * src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts
8017 by setting the `face->metrics.max_advance' correctly.
8018
8019 2001-12-07 David Turner <david@freetype.org>
8020
8021 * include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new
8022 charmap cache.
8023 * src/cache/ftcache.c: Updated.
8024
8025 * src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/.
8026
8027 2001-12-06 Leonard Rosenthol <leonardr@lazerware.com>
8028
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.
8032
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.
8039
8040 2001-12-06 David Turner <david@freetype.org>
8041
8042 * src/cache/Jamfile, src/cache/rules.mk: Updated.
8043
8044 2001-12-06 Werner Lemberg <wl@gnu.org>
8045
8046 * INSTALL: Small update.
8047
8048 2001-12-05 David Turner <david@freetype.org>
8049
8050 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for
8051 debugging purposes.
8052 Comment out use of `origin'.
8053
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.
8058
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.
8062
8063 2001-12-05 David Turner <david@freetype.org>
8064
8065 * src/pshinter/pshalgo2.c (psh2_hint_table_init),
8066 src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler
8067 warnings.
8068
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
8073 simpler.
8074
8075 I still need to update the documentation in
8076 www/freetype2/docs/cache.html to reflect the new design though.
8077
8078 * include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New
8079 macro.
8080 (FT_CACHE_INTERNAL_CACHE_H): Updated.
8081
8082 2001-12-05 David Krause <freetype@davidkrause.com>
8083
8084 * docs/license.txt: s/X Windows/X Window System/.
8085
8086 2001-12-04 Werner Lemberg <wl@gnu.org>
8087
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
8095 variable.
8096 * src/raster/ftraster.c (MEM_Set): Move definition down to avoid
8097 compiler warning.
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.
8102 Use `const'.
8103 * src/pshinter/pshrec.c (ps_hints_close): Remove redundant
8104 declaration.
8105 * src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables
8106 to avoid shadowing.
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()'.
8110
8111 2001-11-20 Antoine Leca <antoineleca@multimania.com>
8112
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.
8119
8120 2001-11-20 David Turner <david@freetype.org>
8121
8122 * src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting
8123 routine that created nasty alignment artefacts.
8124
8125 * src/pshinter/pshrec.c, tests/gview.c: Debugging updates.
8126
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.
8132
8133 2001-10-29 David Turner <david@freetype.org>
8134
8135 Adding experimental `gamma' support. This produces smoother glyphs
8136 at small sizes for very little cost.
8137
8138 * src/smooth/ftgrays.c (grays_init_gamma): New function.
8139 (gray_raster_new): Use it.
8140
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).
8144
8145 * src/autohint/ahglyph.c (ah_outline_load,
8146 ah_outline_link_segments): Implement it.
8147 Fix typos.
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.
8152 Fix typos.
8153 (ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix
8154 typos.
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').
8161 Fix typos.
8162
8163 * tests/gview.c: Updated the debugging glyph viewer to show the
8164 hints generated by the `autohint' module.
8165
8166 2001-10-27 David Turner <david@freetype.org>
8167
8168 * src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that
8169 considerably lowered the performance of the abstract chunk cache.
8170
8171 2001-10-26 David Turner <david@freetype.org>
8172
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.
8177
8178 2001-10-26 Leonard Rosenthol <leonardr@lazerware.com>
8179
8180 * builds/mac/README: Updated to reflect my taking over the project
8181 and that is now being actively maintained.
8182
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.
8187
8188 2001-10-25 Leonard Rosenthol <leonardr@lazerware.com>
8189
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
8192 source tree.
8193
8194 2001-10-25 David Turner <david@freetype.org>
8195
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.
8199
8200 (FT_CONFIG_FORCE_INT64): Define.
8201
8202 (FT_DEBUG_MEMORY): New macro.
8203
8204 2001-10-24 Tom Kacvinsky <tkacvins@freetype.org>
8205
8206 * builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'.
8207
8208 2001-10-23 David Turner <david@freetype.org>
8209
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.
8214
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.
8219
8220 2001-10-23 David Turner <david@freetype.org>
8221
8222 * src/raster/ftraster.c (Update): Removed to be inlined in ...
8223 (Sort): Updated.
8224
8225 2001-10-22 David Turner <david@freetype.org>
8226
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!
8233
8234 * src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed
8235 some bogus warnings.
8236
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
8240 the source file.
8241
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.
8246
8247 * src/base/Jamfile: Include ftdbgmem.
8248 * src/base/rules.mk: Ditto.
8249 * src/base/ftbase.c: Include ftdbgmem.c.
8250
8251 * include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY
8252 macro definition.
8253
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.
8257
8258 2001-10-21 Tom Kacvinsky <tkacvins@freetype.org>
8259
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.
8264
8265 2001-10-21 Tom Kacvinsky <tkacvins@freetype.org>
8266
8267 * src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to
8268 avoid a memory leak.
8269
8270 2001-10-21 David Turner <david@freetype.org>
8271
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).
8275
8276 2001-10-20 Tom Kacvinsky <tkacvins@freetype.org>
8277
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
8281 synthetic.
8282
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
8288 second time.
8289
8290 2001-10-19 David Turner <david@freetype.org>
8291
8292 * src/smooth/ftgrays.c, src/pshinter/pshglob.h,
8293 src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of
8294 compiler warnings.
8295
8296 * src/pshinter/module.mk, src/pshinter/rules.mk: Adding control
8297 files to build the PostScript hinter with the `old' build system.
8298
8299 2001-10-19 Jacob Jansen <joukj@hrem.stm.tudelft.nl>
8300
8301 * descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build
8302 files.
8303
8304 2001-10-18 David Turner <david@freetype.org>
8305
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.
8310
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.
8315
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.
8319
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.
8324
8325 * src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph):
8326 Adding support to new PostScript hinter.
8327
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.
8337
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.
8345
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.
8350
8351 2001-10-17 David Turner <david@freetype.org>
8352
8353
8354 * Version 2.0.5 released.
8355 =========================
8356
8357
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).
8363
8364 * src/cid/cidriver (cid_get_postscript_name): New function.
8365 (CID_Get_Interface): Handle `postscript_name' interface.
8366
8367 * src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function.
8368 (SFNT_Get_Interface): Handle `postscript_name' interface.
8369
8370 * src/type1/t1driver.c (t1_get_ps_name): New function.
8371 (Get_Interface): Handle `postscript_name' interface.
8372
8373 * README, docs/CHANGES: Updated for 2.0.5 release.
8374
8375 2001-10-08 David Turner <david@freetype.org>
8376
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
8381 for Polish users).
8382
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):
8392 Updated.
8393 * src/psnames/pstables.h: Regenerated.
8394 * src/psnames/psmodule.c (PS_Unicode_Value): Fix offset.
8395 Fix return value.
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'.
8402
8403 * doc/BUGS, doc/TODO: New documents.
8404
8405 2001-10-07 Richard Barber <rich@solutionuk.com>
8406
8407 * src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented
8408 correct LRU behaviour.
8409
8410 2001-10-07 David Turner <david@freetype.org>
8411
8412 setjmp() and longjmp() are now used for rollback (i.e. when memory
8413 pool overflow occurs).
8414
8415 Function names are now all uniformly prefixed with `gray_'.
8416
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
8425 `outline' from it.
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.
8431
8432 2001-10-07 David Turner <david@freetype.org>
8433
8434 Provide a public API to manage multiple size objects for a given
8435 FT_Face in the new header file `ftsizes.h'.
8436
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
8440 ftsizes.h).
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
8445 FT_Activate_Size.
8446
8447 2001-09-20 Detlef Würkner <TetiSoft@apg.lahn.de>
8448
8449 * builds/amiga/*: Added port to Amiga with the SAS/C compiler.
8450
8451 2001-09-15 Detlef Würkner <TetiSoft@apg.lahn.de>
8452
8453 * src/type1/t1afm.c (T1_Done_AFM): Free `afm'.
8454
8455 2001-09-10 Yao Zhang <yzhang@sharemedia.com>
8456
8457 * src/sfnt/ttcmap.c (code_to_index2): Handle code values with
8458 hi-byte == 0 correctly.
8459
8460 2001-09-10 Werner Lemberg <wl@gnu.org>
8461
8462 * builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo.
8463
8464 2001-08-30 Martin Muskens <mmuskens@aurelon.com>
8465
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
8469 ones).
8470
8471 * src/type1/t1load.c (is_alpha): Now supports `+' in font names;
8472 this is used in embedded fonts.
8473
8474 * src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that
8475 generated a dangling pointer reference.
8476
8477 2001-08-30 Anthony Feik <afeick@hotmail.com>
8478
8479 * src/type1/t1afm.c (T1_Read_Afm): Now correctly sets the flag
8480 FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files.
8481
8482 2001-08-25 Werner Lemberg <wl@gnu.org>
8483
8484 * src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of
8485 `cmap_rec_fields'.
8486
8487 * include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]:
8488 Undefine FT_ERR_BASE before defining again.
8489
8490 2001-08-22 Werner Lemberg <wl@gnu.org>
8491
8492 * src/truetype/ttinterp.h: Fix prototype of TT_Move_Func.
8493
8494 2001-08-21 Werner Lemberg <wl@gnu.org>
8495
8496 * builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'.
8497
8498 2001-08-21 David Turner <david@freetype.org>
8499
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
8503 that too.
8504
8505 2001-08-17 Martin Muskens <mmuskens@aurelon.com>
8506
8507 * src/base/ftcalc.c (FT_MulDiv): Fixed serious typo.
8508
8509 2001-08-12 Werner Lemberg <wl@gnu.org>
8510
8511 Updating to OpenType 1.3.
8512
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.
8524
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
8530 cmaps.
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
8535 structure.
8536 (TT_Load_CMap): Ditto.
8537
8538 * src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS
8539 Unicode).
8540
8541 2001-08-11 Werner Lemberg <wl@gnu.org>
8542
8543 * src/type1/t1driver.c (t1_get_name_index): Fix compiler warning.
8544
8545 2001-08-09 Tom Kacvinsky <tkacvins@freetype.org>
8546
8547 * src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to
8548 cff_get_glyph_name for consistency.
8549
8550 (cff_get_glyph_index): Minor documentation change.
8551
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.
8555
8556 (get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency.
8557
8558 2001-08-08 Tom Kacvinsky <tkacvins@freetype.org>
8559
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.
8563
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.
8567
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.
8571
8572 (cff_get_interface): Modified so that it returns the function
8573 `cff_get_name_index' when the `name_index' function is requested.
8574
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.
8578
8579 * include/freetype/internal/ftobjs.h (FT_Name_Index_Requester):
8580 New function pointer type defintion used in the function
8581 FT_Get_Name_Index.
8582
8583 * include/freetype/freetype.h (FT_Get_Name_Index): Added
8584 documentation and prototype.
8585
8586 2001-07-26 Werner Lemberg <wl@gnu.org>
8587
8588 * builds/cygwin/*: Removed. Use the unix stuff instead.
8589
8590 2001-07-26 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
8591
8592 * builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated
8593 2001-06-27.
8594
8595 2001-07-17 Werner Lemberg <wl@gnu.org>
8596
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
8600 parameter.
8601 (PS_Table_Add): Use FT_Offset for `new_size'.
8602
8603 Add support for version 0.5 maxp tables.
8604
8605 * src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it.
8606 (TT_Load_OS2): Initialize some values.
8607
8608 2001-07-13 Werner Lemberg <wl@gnu.org>
8609
8610 * src/base/ftsynth.c: Include ftcalc.h unconditionally.
8611
8612 2001-07-07 David Turner <david@freetype.org>
8613
8614 * src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread:
8615 Removed pedantic compiler warnings when the bytecode interpreter is
8616 compiled in.
8617
8618 2001-07-03 Werner Lemberg <wl@gnu.org>
8619
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
8623 `new_width'.
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.
8627
8628 2001-06-28 David Turner <david@freetype.org>
8629
8630 * include/internal/ftstream.h: Modified the definitions
8631 of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness.
8632
8633 2001-06-26 Werner Lemberg <wl@gnu.org>
8634
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.
8638
8639 2001-06-27 Wolfgang Domröse <porthos.domroese@harz.de>
8640
8641 * src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset
8642 instead of FT_Int as type for `length' parameter.
8643
8644
8645 * Version 2.0.4 released.
8646 =========================
8647
8648
8649 2001-06-27 David Turner <david@freetype.org>
8650
8651 * builds/unix/ftconfig.in: Changed the definition of the
8652 FT_CALLBACK_DEF macro.
8653
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
8656 compilers.
8657
8658 * builds/unix/ftconfig.in: Changed the definition of the
8659 FT_CALLBACK_DEF macro.
8660
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).
8664
8665 2001-06-26 Wolfgang Domröse <porthos.domroese@harz.de>
8666
8667 * include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo.
8668
8669 2001-06-24 David Turner <david@freetype.org>
8670
8671 * src/base/ftcalc.c (ft_div64by32): Fixed the source to work
8672 correctly on 16-bit systems.
8673
8674 2001-06-23 Anthony Fok <fok@debian.org>
8675
8676 * debian/*: Added Debian package build directory for 2.0.4.
8677
8678 2001-06-22 David Turner <david@freetype.org>
8679
8680 * docs/PATENTS: Added patents disclaimer. This one was missing!
8681
8682 * docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release.
8683
8684 2001-06-20 Werner Lemberg <wl@gnu.org>
8685
8686 * include/freetype/config/ftconfig.h: Add two more `L's to
8687 constants.
8688 Add missing semicolons.
8689
8690 * builds/toplevel.mk: Do similar change as for
8691 builds/unix/detect.mk.
8692
8693 * include/freetype/freetype.h (FT_ENC_TAG): New version to make it
8694 easier to redefine.
8695 * include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto.
8696
8697 * src/pcf/pcfread.c (pcf_get_encodings): Add cast.
8698
8699 2001-06-19 David Turner <david@freetype.org>
8700
8701 * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
8702 Updated the Visual C++ project (for the 2.0.4 release).
8703
8704 * builds/unix/detect.mk: Added rule for AIX detection (which uses
8705 /usr/sbin/init instead of /sbin/init).
8706
8707 * include/freetype/fterrors.h, src/*/*err*.h: Updated some of the
8708 error macros to simplify handling of new error scheme.
8709
8710 2001-06-19 Werner Lemberg <wl@gnu.org>
8711
8712 * include/freetype/fttypes.h (FT_ERROR_MODULE): New macro.
8713
8714 2001-06-19 David Turner <david@freetype.org>
8715
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).
8720
8721 * include/freetype/freetype.h (FT_New_Memory_Face): Updated
8722 documentation.
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.
8728 (NEXT_*): Use them.
8729 * src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H.
8730 (FT_New_Memory_Face): Add `const' to function declaration.
8731
8732 2001-06-18 Werner Lemberg <wl@gnu.org>
8733
8734 Minor cleanups to remove compiler warnings.
8735
8736 * include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use
8737 `L' for constant.
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'
8748 variables.
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
8753 compiler warning.
8754 * src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset'
8755 variable.
8756 * src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused
8757 `outline' variable.
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'
8763 variable.
8764 * src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top'
8765 variable.
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'
8769 variables.
8770 (TT_Load_Glyph): Remove unused `memory' variable.
8771 * src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants.
8772
8773 2001-06-18 Werner Lemberg <wl@gnu.org>
8774
8775 Make the new error scheme source compatible with older FT versions
8776 by introducing another layer.
8777
8778 * include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New
8779 macros.
8780 (FT_NOERRORDEF): Removed.
8781 * include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_.
8782
8783 2001-06-16 Werner Lemberg <wl@gnu.org>
8784
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
8788 conditionally.
8789
8790 2001-06-14 David Turner <david@freetype.org>
8791
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.
8796
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
8805 defined.
8806 (Current_Ratio, Normalize): Simplify code.
8807
8808 2001-06-11 Mike Owens <MOwens@amtdatasouth.com>
8809
8810 * src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove
8811 compiler warnings.
8812
8813 2001-06-08 Werner Lemberg <wl@gnu.org>
8814
8815 * builds/unix/configure.in: Renamed to ...
8816 * builds/unix/configure.ac: This to make sure that autoconf 2.50 is
8817 needed.
8818 Run `autoupdate' on it.
8819 Increase `version_info' to 7:0:1.
8820 * builds/unix/configure: Regenerated.
8821
8822 2001-06-08 David Turner <david@freetype.org>
8823
8824 * src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that
8825 corrupted transformed glyphs that were auto-hinted (the transform
8826 was applied twice).
8827
8828 Fixed a bug that returned an invalid linear width for composite
8829 TrueType glyphs.
8830
8831 * include/internal/tttypes.h (TT_Loader_): Two new elements `linear'
8832 and `linear_def'.
8833 * src/truetype/ttgload.c (load_truetype_glyph,
8834 compute_glyph_metrics): Use it.
8835
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
8839 Werner.
8840 * src/base/ftoutln.c (FT_Outline_Render): Ditto.
8841
8842 2001-06-07 Werner Lemberg <wl@gnu.org>
8843
8844 Updating to libtool 1.4.0 and autoconf 2.50.
8845
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.
8850
8851 2001-06-06 Werner Lemberg <wl@gnu.org>
8852
8853 Complete redesign of error codes. Please check ftmoderr.h for more
8854 details.
8855
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
8860 `fterrors.h'.
8861
8862 * src/sfnt/ttpost.h: Move error codes to `fterrors.h'.
8863
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.
8870
8871 * include/freetype/ftmoderr.h: New file, defining the module error
8872 offsets. Its structure is similar to `fterrors.h'.
8873
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.
8878
8879 * include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New
8880 macro.
8881 * include/freetype/config/ftoption.h
8882 (FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro.
8883
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.
8887
8888 All make files have been updated to include the local error files.
8889
8890 2001-06-06 Werner Lemberg <wl@gnu.org>
8891
8892 * src/cid/cidtokens.h: Replaced with...
8893 * src/cid/cidtoken.h: This file for 8+3 consistency.
8894
8895 * src/raster/ftraster.c: Use macros for header file names.
8896
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.
8901
8902 2001-05-29 Werner Lemberg <wl@gnu.org>
8903
8904 * INSTALL: Minor fixes.
8905
8906
8907 * Version 2.0.3 released.
8908 =========================
8909
8910
8911 2001-05-29 David Turner <david@freetype.org>
8912
8913 * INSTALL, docs/CHANGES: Updated.
8914
8915 2001-05-25 David Turner <david@freetype.org>
8916
8917 Moved several documents from the top-level to the `docs' directory.
8918
8919 * src/base/ftcalc.c (FT_DivFix): Small fix to return value.
8920
8921 2001-05-16 David Turner <david@freetype.org>
8922
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.
8927
8928 2001-05-14 David Turner <david@freetype.org>
8929
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.
8935
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
8939 flag.
8940 (ah_outline_compute_blue_edges): Add code to compute active blue
8941 zones.
8942 * src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags
8943 value.
8944
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.
8948
8949 2001-05-12 Werner Lemberg <wl@gnu.org>
8950
8951 * include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__.
8952 * include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ ->
8953 __FTTRIGON_H__.
8954 Include FT_FREETYPE_H.
8955 Beautified; added copyright.
8956 * src/base/fttrigon.c: Beautified; added copyright.
8957
8958 2001-05-11 David Turner <david@freetype.org>
8959
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.
8963
8964 * include/freetype/fttrigon.h, src/base/fttrigon.c: New files,
8965 adding trigonometric functions to the core API (using Cordic
8966 algorithms).
8967 * src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them.
8968
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.
8974
8975 * builds/freetype.mk: Fixed a problem with object deletions under
8976 Dos/Windows/OS/2 systems.
8977
8978 Added new directory to hold tools and test programs.
8979
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.
8985
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
8988 versions).
8989
8990 * Jamfile: Fixed incorrect HDRMACRO argument.
8991
8992 * TODO: Removed the cubic arc bbox computation note, since it has been
8993 fixed recently.
8994 * src/base/ftbbox.c (test_cubic_zero): Renamed to...
8995 (test_cubic_extrema): This function. Use `UL' for unsigned long
8996 constants.
8997
8998 * include/freetype/t1tables.h, include/freetype/config/ftoption.h:
8999 Formatting.
9000
9001 2001-05-10 David Turner <david@freetype.org>
9002
9003 * src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak
9004 which happened when trying to open 0-size font files!
9005
9006 2001-05-09 Werner Lemberg <wl@gnu.org>
9007
9008 * include/freetype/internal/ftcalc.h: Move declaration of
9009 FT_SqrtFixed() out of `#ifdef FT_LONG64'.
9010
9011 2001-05-08 Francesco Zappa Nardelli <Francesco.Zappa.Nardelli@ens.fr>
9012
9013 * src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width
9014 computation.
9015
9016 2001-05-08 David Turner <david@freetype.org>
9017
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
9021 formatting issues.
9022
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'.
9026
9027 2001-04-27 David Turner <david@freetype.org>
9028
9029 * src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient
9030 normalization algorithm (invalid final bit position, and invalid
9031 shift computation).
9032
9033 2001-04-26 Werner Lemberg <wl@gnu.org>
9034
9035 * builds/unix/config.guess, builds/unix/config.sub: Updated to
9036 latest versions from gnu.org.
9037
9038 * builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
9039
9040 * include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
9041 uncoditionally.
9042 * src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
9043 Fix compiler warnings.
9044 * src/base/ftcalc.c: Fix (potential) compiler warnings.
9045
9046 2001-04-26 David Turner <david@freetype.org>
9047
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 :-)
9051
9052 * src/base/ftbbox.c: Removed invalid `#include FT_BEZIER_H' line.
9053
9054 2001-04-25 David Turner <david@freetype.org>
9055
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 :-)
9059
9060 * src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c:
9061 Fixed the bezier stack depths.
9062
9063 * src/base/ftcalc.c (FT_MulFix): Minor rounding fix.
9064
9065 * builds/beos: Added BeOS-specific files to the old build system
9066 (no changes were necessary to support BeOS in the Jamfile though).
9067
9068 2001-04-20 David Turner <david@freetype.org>
9069
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.
9074
9075 * builds/win32/freetype.dsp: Updated the Visual C++ project file.
9076 Doesn't create a DLL yet.
9077
9078 * cffgload.c: Removed a compilation warning.
9079
9080 2001-04-10 Tom Kacvinsky <tkacvins@freetype.org>
9081
9082 * t1load.c (parse_charstrings): Changed code for placing .notdef
9083 glyph into slot 0 so that we no longer have a memory access
9084 violation.
9085
9086 * t1load.h: In structure T1_Loader, added swap_table (of type
9087 PS_Table) to facilitate placing the .notdef glyph into slot 0.
9088
9089 2001-04-10 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
9090
9091 * src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value.
9092
9093 2001-04-09 Laurence Withers <lwithers@lwithers.demon.co.uk>
9094
9095 * builds/dos/detect.mk: Add support for bash.
9096
9097 2001-04-05 Werner Lemberg <wl@gnu.org>
9098
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.
9103
9104 * builds/win32/win32-def.mk (BUILD): Fix typo.
9105
9106 * builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT.
9107 This is already used in the link_*.mk files.
9108
9109 2001-04-03 Werner Lemberg <wl@gnu.org>
9110
9111 * src/*/Jamfile: Slight changes to make files more cryptic.
9112
9113 2001-04-03 Werner Lemberg <wl@gnu.org>
9114
9115 * Jamfile, src/Jamfile, src/*/Jamfile: Formatted. Slight changes
9116 to give files identical structure.
9117
9118 2001-04-02 Werner Lemberg <wl@gnu.org>
9119
9120 * CHANGES: Reformatted, minor fixes.
9121 * TODO: Updated.
9122 * README: Formatting.
9123 * include/freetype/freetype.h: Formatting.
9124
9125 * Jamfile: Fix typo.
9126
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
9134 `TT_Err_*'.
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_*'.
9138
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'.
9145
9146 * src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset'
9147 references.
9148 * src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'.
9149
9150 * src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
9151 FT_LOCAL_DEF.
9152 * src/cid/cidobjs.c (CID_Done_Driver): Ditto.
9153 * src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
9154 Ditto.
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'.
9158
9159 2001-04-02 Tom Kacvinsky <tkacvins@freetype.org>
9160
9161 * src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer
9162 dereference. Submitted by Herbert Duerr <duerr@sun.com>.
9163
9164 2001-03-26 Tom Kacvinsky <tkacvins@freetype.org>
9165
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>.
9169
9170 2001-03-24 David Turner <david.turner@freetype.org>
9171
9172 * Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to
9173 the source tree. See www.freetype.org/jam/index.html for details.
9174
9175
9176 * Version 2.0.2 released.
9177 =========================
9178
9179
9180 2001-03-20 Werner Lemberg <wl@gnu.org>
9181
9182 * builds/win32/detekt.mk: Fix .PHONY target for Intel compiler.
9183
9184 2001-03-20 David Turner <david.turner@freetype.org>
9185
9186 * include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
9187 Renamed `ftnames.h' to `ftsnames.h', and FT_NAMES_H to
9188 FT_SFNT_NAMES_H.
9189
9190 * docs/docmaker.py: Added generation of INDEX link in table of
9191 contents.
9192
9193 * INSTALL, docs/BUILD: Updated documentation to indicate that the
9194 compilation process has changed slightly (no more `src' required in
9195 the include path).
9196
9197 * builds/*/*-def.mk: Changed the objects directory from `obj' to
9198 `objs'.
9199
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.
9204
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'
9208 accordingly.
9209
9210 2001-03-20 Werner Lemberg <wl@gnu.org>
9211
9212 * builds/unix/configure.in: Add $ft_version.
9213 * builds/unix/freetype-config.in: Use it.
9214 * builds/unix/configure: Updated.
9215
9216 2001-03-19 Tom Kacvinsky <tkacvins@freetype.org>
9217
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.
9221
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.
9225
9226 2001-03-17 David Turner <david.turner@freetype.org>
9227
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.
9231
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>.
9235
9236 * include/config/ftheader.h: Added new section describing the #include
9237 macros.
9238
9239 2001-03-17 Tom Kacvinsky <tkacvins@freetype.org>
9240
9241 * src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed
9242 values for the bounding box numbers.
9243
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).
9247
9248 2001-03-16 Tom Kacvinsky <tkacvins@freetype.org>
9249
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().
9253
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>.
9258
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>.
9264
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>.
9268
9269 2001-03-12 Werner Lemberg <wl@gnu.org>
9270
9271 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error
9272 messages.
9273
9274 * INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer.
9275
9276 2001-03-12 Tom Kacvinsky <tkacvins@freetype.org>
9277
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.
9280
9281 * src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Adjust
9282 for lenIV seed bytes at the start of a decrypted subroutine.
9283
9284 * src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only
9285 if lenIV >= 0.
9286
9287 * src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only
9288 if lenIV >= 0.
9289
9290 2001-03-11 Werner Lemberg <wl@gnu.org>
9291
9292 * TODO: Updated.
9293
9294 * src/pcf/pcfread.c: Put READ_Fields() always in a conditional to
9295 avoid compiler warnings.
9296
9297 2001-03-10 Tom Kacvinsky <tkacvins@freetype.org>
9298
9299 * TODO: New file.
9300
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.
9305
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
9310 processing.
9311 (parse_font_bbox): Changed to use FT_Fixed number handling.
9312
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
9316 number handling.
9317
9318 2001-03-10 Henrik Grubbström <grubba@roxen.com>
9319
9320 * src/*/*.c: Added many casts to make code more 64bit-safe.
9321
9322 2001-03-07 Werner Lemberg <wl@gnu.org>
9323
9324 * INSTALL, docs/BUILD: We need GNU make 3.78 or newer.
9325
9326 2001-03-07 Tom Kacvinsky <tkacvins@freetype.org>
9327
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'.
9332
9333 (T1_Done_Face): Free `char_name' table to avoid a memory leak.
9334 Submitted by Sander van der Wal <svdwal@xs4all.nl>.
9335
9336 2001-03-05 Tom Kacvinsky <tkacvins@freetype.org>
9337
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>.
9341
9342 2001-03-04 Antoine Leca <Antoine.Leca@renault.fr>
9343
9344 * include/freetype/ttnameid.h: Correct a stupid typo which prevented
9345 correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice).
9346
9347 2001-03-04 Werner Lemberg <wl@gnu.org>
9348
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.
9355
9356 * builds/unix/detect.mk: Add test for Hurd.
9357 * builds/hurd/detect.mk: Removed.
9358
9359 2001-03-04 Sander van der Wal <svdwal@xs4all.nl>
9360
9361 * src/psnames/pstables.h: Add more `const'.
9362 * src/pcf/pcfutil.c: Ditto.
9363
9364 2001-03-04 Werner Lemberg <wl@gnu.org>
9365
9366 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo
9367 (FT_Glyph_Done -> FT_Done_Glyph).
9368
9369 2001-03-01 Antoine Leca <Antoine.Leca@renault.fr>
9370
9371 * include/freetype/ttnameid.h: Added some new Microsoft language
9372 codes and LCIDs as found in Office Xp.
9373
9374 2001-02-28 David Turner <david.turner@freetype.org>
9375
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
9378 <foka@debian.org>.
9379
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>.
9383
9384 2001-02-22 David Turner <david.turner@freetype.org>
9385
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
9388 finding this out.
9389
9390 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when
9391 bitmap rendering fails (thanks to Graham Asher).
9392
9393 2001-02-13 Werner Lemberg <wl@gnu.org>
9394
9395 * docs/docmaker.py (DocSection::add_element): Use
9396 `self.print_error()'.
9397
9398 * builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org).
9399
9400 2001-02-13 David Turner <david.turner@freetype.org>
9401
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.
9405
9406 * src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format
9407 were not correctly copied.
9408
9409 2001-02-08 Tom Kacvinsky <tkacvins@freetype.org>
9410
9411 * src/cff/cffparse.c (cff_parse_font_matrix): Removed an
9412 unnecessary fprintf( stderr, ... ).
9413
9414 2001-02-07 Tom Kacvinsky <tkacvins@freetype.org>
9415
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.
9419
9420 * src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get
9421 the units_per_EM from the FontMatrix.
9422
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).
9426
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.
9429
9430 * src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units
9431 per EM from the CFF dictionary, if available.
9432
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.
9436
9437 * src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric
9438 character. This is so that font names with `-' are fully parsed,
9439 etc...
9440
9441 2001-02-02 Werner Lemberg <wl@gnu.org>
9442
9443 * src/psaux/psobjs.c (shift_elements): Remove if clause (which is
9444 obsolete now).
9445
9446 (reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC()
9447 + MEM_Copy() to avoid a memory bug.
9448
9449 2001-02-01 David Turner <david.turner@freetype.org>
9450
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.
9454
9455 2001-01-30 Antoine Leca <Antoine.Leca@renault.fr>
9456
9457 * include/freetype/ttnameid.h: Latest updates to Microsoft language
9458 ID codes.
9459
9460 2001-01-24 Tom Kacvinsky <tkacvins@freetype.org>
9461
9462 * src/cff/t1load.c (parse_font_matrix): Added heuristic to get
9463 units_per_EM from the font matrix.
9464
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.
9468
9469 (T1_Open_Face): Deleted empty subroutines array test to make sure
9470 fonts with no subroutines still are parsed.
9471
9472 2001-01-17 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
9473
9474 * src/pcfread.c (pcf_get_properties, pcf_get_metrics,
9475 pcf_get_bitmaps): Fix compiler errors.
9476
9477 2001-01-11 David Turner <david.turner@freetype.org>
9478
9479 * src/pcf/pcfread.c: Removed some compilation warnings related
9480 to comparison of signed vs. unsigned integers.
9481
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.
9485
9486 2001-01-11 Matthew Crosby <mcrosby@marthon.org>
9487
9488 * builds/unix/freetype-config.in: Fix problems with separate
9489 --prefix and --exec-prefix.
9490
9491 2001-01-11 David Turner <david.turner@freetype.org>
9492
9493 * docs/docmaker.py: Added cross-references generation as well as
9494 more robust handling of pathname wildcard matching.
9495
9496 2001-01-10 Werner Lemberg <wl@gnu.org>
9497
9498 * docs/docmaker.py: Minor improvements to reduce unwanted spaces
9499 and empty lines in output.
9500
9501 2001-01-09 David Turner <david.turner@freetype.org>
9502
9503 * docs/docmaker.py: Improved script to generate table of contents
9504 and index pages. It also supports wildcards on non Unix systems.
9505
9506 * include/freetype/*.h, include/freetype/cache/*.h: Updated comments
9507 to include section definitions/delimitations for the API Reference
9508 generator.
9509
9510 * include/freetype/freetype.h: Moved declaration of
9511 `FT_Generic_Finalizer' and the `FT_Generic' structure to...
9512 * include/freetype/fttypes.h: here.
9513
9514 2001-01-04 Werner Lemberg <wl@gnu.org>
9515
9516 * include/freetype/ttnameid.h: Updated Unicode code range comments.
9517
9518 2001-01-03 Tom Kacvinsky <tkacvins@freetype.org>
9519
9520 * src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}.
9521
9522 * include/freetype/internal/internal.h: Changed to use cfftypes.h
9523 (cfferrs.h) instead of t2types.h (t2errors.h, respectively).
9524
9525 * include/freetype/internal/cfftypes.h: Merged in changes from
9526 t2types.h and made this the canonical `types' header for the CFF
9527 driver.
9528
9529 * include/freetype/internal/t2types.h: This file was merged with
9530 cfftypes.h and is no longer necessary.
9531
9532 * include/freetype/internal/t2errors.h: Renamed to cfferrs.h.
9533
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).
9539
9540 * src/cff/t2gload.h: Renamed cffgload.h.
9541
9542 * src/cff/t2gload.c: Renamed cffgload.c
9543
9544 2000-01-02 Jouk Jansen <joukj@hrem.stm.tudelft.nl>
9545
9546 * builds/vms: Support files for VMS architecture added.
9547 * descrip.mms, src/*/descrip.mms: VMS makefiles added.
9548 * README.VMS: New file.
9549
9550 2000-01-01 Werner Lemberg <wl@gnu.org>
9551
9552 * LICENSE.TXT: Added info about PCF driver license.
9553
9554 2001-01-01 Francesco Zappa Nardelli <francesco.zappa.nardelli@ens.fr>
9555
9556 * src/pcf/*: New driver module for PCF font format (used in
9557 X Window System).
9558 * include/freetype/internal/ftdebug.h (FT_Trace): Added values for
9559 PCF driver.
9560 * include/freetype/internal/pcftypes.h: New file.
9561 * include/freetype/config/ftmodule.h: Added PCF driver module.
9562
9563 2001-01-01 Werner Lemberg <wl@gnu.org>
9564
9565 * src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type.
9566
9567 2000-12-31 Werner Lemberg <wl@gnu.org>
9568
9569 * builds/modules.mk (clean_module_list): Fixed deletion of module
9570 file in case `make make_module_list' is called before `make setup'.
9571
9572 2000-12-30 Werner Lemberg <wl@gnu.org>
9573
9574 * src/cff/cffload.c (CFF_Load_Charset): Improved error messages.
9575 (CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable
9576 definition.
9577
9578 2000-12-30 Tom Kacvinsky <tkacvins@freetype.org>
9579
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.
9584
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
9589 operator.
9590
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
9595
9596 cff_isoadobe_charset
9597 cff_expert_charset
9598 cff_expertsubset_charset
9599 cff_standard_encoding
9600 cff_expert_encoding
9601
9602 so that the encoding/charset parser can handle predefined encodings and
9603 charsets.
9604
9605 2000-12-24 Tom Kacvinsky <tkacvins@freetype.org>
9606
9607 * src/cff/t2gload.c (T2_Load_Glyph): Added code so that the font
9608 transform is applied.
9609
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
9613 numbers.
9614
9615 2000-12-22 Tom Kacvinsky <tkacvins@freetype.org>
9616
9617 * src/autohint/ahhint.c (ah_hinter_load_glyph):
9618 Removed unnecessary comments and commented-out code.
9619
9620 2000-12-21 David Turner <david.turner@freetype.org>
9621
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 :-)
9624
9625 2000-12-21 Tom Kacvinsky <tkacvins@freetype.org>
9626
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.
9631
9632 2000-12-17 Werner Lemberg <wl@gnu.org>
9633
9634 * *.mk: Added lots of `.PHONY' targets.
9635
9636 2000-12-17 Karsten Fleischer <kfleisc1@ford.com>
9637
9638 * *.mk: Implemented `platform' target to disable auto-detection.
9639
9640 2000-12-14 Werner Lemberg <wl@gnu.org>
9641
9642 * docs/design/modules.html: Removed. Covered by design-*.html.
9643
9644 * INSTALL: Added info about makepp.
9645
9646 2000-12-14 David Turner <david.turner@freetype.org>
9647
9648 Added support for clipped direct rendering in the smooth renderer.
9649 This should not break binary compatibility of existing applications.
9650
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.
9657
9658 * INSTALL: Updated installation instructions on Win32, listing the
9659 new `make setup list' target used to list supported
9660 compilers/targets.
9661
9662 * src/raster/ftraster.c (ft_black_render): Test for unsupported
9663 direct rendering before testing arguments.
9664
9665 2000-12-13 David Turner <david.turner@freetype.org>
9666
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.
9672
9673 * builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files.
9674
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.
9679
9680 * src/base/ftdebug.c: Added dummy symbol to avoid empty file if
9681 conditionals are off.
9682
9683 2000-12-13 Werner Lemberg <wl@gnu.org>
9684
9685 * builds/unix/ftsystem.c: Fixed typos. Fixed inclusion of wrong
9686 ftconfig.h file.
9687
9688 2000-12-12 Werner Lemberg <wl@gnu.org>
9689
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.
9696
9697 * builds/unix/ft2unix.h: Adapted.
9698
9699 * src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream,
9700 ft_close_stream): Use FT_CALLBACK_DEF.
9701
9702 * builds/unix/ftsystem.c: Use new header scheme.
9703 (FT_Done_Memory): Use free() from FT_Memory structure.
9704
9705 * src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes.
9706
9707 2000-12-11 Werner Lemberg <wl@gnu.org>
9708
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.
9712
9713 2000-12-09 Werner Lemberg <wl@gnu.org>
9714
9715 * builds/unix/detect.mk: Remove unused USE_CFLAGS variable.
9716
9717 2000-12-08 Werner Lemberg <wl@gnu.org>
9718
9719 * */*.h: Changed body inclusion macro names to start and end with
9720 `__' (those which haven't converted yet). Fixed minor conversion
9721 issues.
9722
9723 * src/winfonts/winfnt.c: Updated to new header inclusion scheme.
9724
9725 * src/truetype/ttinterp.c: Remove unused CALC_Length() macro.
9726
9727 2000-12-07 David Turner <david.turner@freetype.org>
9728
9729 * */*.[ch]: Changed source files to adhere to the new
9730 header inclusion scheme. Not completely tested but works for now
9731 here.
9732
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.
9751
9752 * src/cff/cff.c, src/cff/rules.mk: Updated.
9753
9754 2000-12-06 David Turner <david.turner@freetype.org>
9755
9756 * src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak.
9757
9758 2000-12-06 Werner Lemberg <wl@gnu.org>
9759
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
9764 readable.
9765
9766 * docs/docmaker.py: Formatting.
9767
9768 2000-12-05 David Turner <david.turner@freetype.org>
9769
9770 * src/psaux/psauxmod.c: Fixed a broken inclusion of component
9771 header files (an FT_FLAT_COMPILE test was missing).
9772
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
9775 pointer).
9776
9777 * src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug:
9778 The ANSI `free()' function was called instead of `memory->free()'.
9779
9780 * docs/docmaker.py: Added section filtering, multi-page generation
9781 (index page generation is still missing though).
9782
9783 2000-12-04 David Turner <david.turner@freetype.org>
9784
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.
9788
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.
9792
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.
9796
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.
9801
9802 2000-12-01 David Turner <david.turner@freetype.org>
9803
9804
9805 * Version 2.0.1 released.
9806 =========================
9807
9808
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.
9812
9813 * CHANGES: Added a summary of changes between 2.0.1 and 2.0.
9814
9815 * builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes
9816 to allow compilation under Unix with the Unix-specific config
9817 files.
9818
9819 2000-12-01 Werner Lemberg <wl@gnu.org>
9820
9821 * INSTALL: Revised.
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.
9828
9829 2000-11-30 Werner Lemberg <wl@gnu.org>
9830
9831 * builds/toplevel.mk (.PHONY): Adding `distclean'.
9832 * builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
9833 `setup'.
9834
9835 2000-11-30 David Turner <david.turner@freetype.ogr>
9836
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.
9840
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
9846 though.
9847
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'.
9853
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'
9859 in these cases).
9860
9861 2000-11-30 Tom Kacvinsky <tkacvins@freetype.org>
9862
9863 * t2objs.c (T2_Init_Face): Added calculation of `face->height' for
9864 pure CFF fonts.
9865
9866 * t1objs.c (T1_Init_Face): Fixed computation of `face->height'.
9867
9868 2000-11-29 David Turner <david.turner@freetype.org>
9869
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.
9873
9874 2000-11-29 Werner Lemberg <wl@gnu.org>
9875
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.
9883
9884 * src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init),
9885 src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT.
9886
9887 2000-11-29 Werner Lemberg <wl@gnu.org>
9888
9889 * src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only
9890 conditionally.
9891
9892 * src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set
9893 `size->strike_index' only conditionally.
9894
9895 * src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only
9896 conditionally.
9897
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.
9901
9902 2000-11-29 ??? ??? <darin@eazel.com>
9903
9904 * include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT
9905 with a direct solution (which also satifies picky compilers).
9906
9907 2000-11-28 YAMANO-UCHI Hidetoshi <mer@din.or.jp>
9908
9909 * src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with
9910 disabled interpreter also.
9911
9912 * src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect
9913 parentheses.
9914
9915 2000-11-26 Tom Kacvinsky <tkacvins@freetype.org>
9916
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.
9920
9921 2000-11-26 Werner Lemberg <wl@gnu.org>
9922
9923 * builds/ansi/ansi.mk: Fix inclusion order of files.
9924
9925 2000-11-26 Keith Packard <keithp@keithp.com>
9926
9927 * src/type1/t1objs.c (T1_Init_Face): Compute style flags.
9928
9929 2000-11-26 Werner Lemberg <wl@gnu.org>
9930
9931 * builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and
9932 conditional.
9933
9934 2000-11-23 Werner Lemberg <wl@gnu.org>
9935
9936 * src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt
9937 function from PSAux module.
9938
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.
9945
9946 * src/type1/t1parse.h: Adapted.
9947
9948 2000-11-22 Tom Kacvinsky <tkacvins@freetype.org>
9949
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'
9952 to 1000.
9953
9954 * src/cff/t2parse.c (parse_t2_real): Fixed real number parsing
9955 loop.
9956
9957 * src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a
9958 sid that was off by one.
9959
9960 2000-11-16 David Turner <david@freetype.org>
9961
9962 * src/autohint/ahtypes.h (AH_Hinter): Added new fields to control
9963 auto-hinting of synthetic Type 1 fonts.
9964
9965 * src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
9966 Added auto-hinting support of synthetic Type 1 fonts.
9967
9968 2000-11-12 Tom Kacvinsky <tkacvins@freetype.org>
9969
9970 * src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change
9971 tracing output.
9972
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.
9975
9976 2000-11-11 Werner Lemberg <wl@gnu.org>
9977
9978 * builds/win32/visualc/freetype.dsp: Fix raster1->raster and
9979 type1z->type1.
9980
9981 2000-11-11 Tom Kacvinsky <tkacvins@freetype.org>
9982
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
9986 is returned.
9987
9988 2000-11-11 Werner Lemberg <wl@gnu.org>
9989
9990 * builds/cygwin/cygwin-def.in: Same fix as previous.
9991
9992 2000-11-10 Tom Kacvinsky <tkacvins@freetype.org>
9993
9994 * builds/unix/unix-def.in: Add
9995
9996 INSTALL_PROGRAM := @INSTALL_PROGRAM@
9997 INSTALL_SCRIPT := @INSTALL_SCRIPT@
9998
9999 so that installation of freetype-config does not fail.
10000
10001 2000-11-10 Werner Lemberg <wl@gnu.org>
10002
10003 * builds/cygwin/freetype-config.in, builds/unix/freetype-config.in:
10004 Move test down for empty --exec-prefix.
10005 Fix --version.
10006
10007 * builds/cygwin/install.mk, builds/unix/install.mk: Use
10008 $(INSTALL_SCRIPT) for installation of freetype-config.
10009
10010 * builds/cygwin/install.mk: Fix clean target names.
10011
10012 2000-11-09 David Turner <david@freetype.org>
10013
10014
10015 * Version 2.0 released.
10016 =======================
10017
10018
10019 Local Variables:
10020 version-control: never
10021 coding: latin-1
10022 End: