1 2007-07-02 Werner Lemberg <wl@gnu.org>
4 * Version 2.3.5 released.
5 =========================
8 Tag sources with `VER-2-3-5'.
10 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
11 version number to 2.3.5.
13 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
14 builds/win32/visualc/freetype.dsp,
15 builds/win32/visualc/freetype.vcproj,
16 builds/win32/visualce/index.html,
17 builds/win32/visualce/freetype.dsp,
18 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
20 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
22 * builds/unix/configure.raw (version_info): Set to 9:16:3.
24 2007-07-01 David Turner <david@freetype.org>
26 * include/freetype/freetype.h, src/base/ftpatent.c
27 (FT_Face_SetUnpatentedHinting): New function to dynamically change
28 the setting after a face is created.
30 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
31 that created distortions in the bytecode interpreter results.
33 2007-06-30 David Turner <david@freetype.org>
35 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
38 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
39 infinite loop in the case of degenerate fonts.
41 2007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
43 Add autofit module for Indic scripts. This currently just reuses
44 the CJK-specific functions.
46 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
48 * devel/ftoption.h: Synchronize with
49 include/freetype/config/ftoption.h.
51 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
53 * src/autofit/afglobal.c, src/autofit/aftypes.h,
54 src/autofit/autofit.c: Updated.
56 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
57 (AUTOF_DRV_SRC): Updated.
59 2007-06-23 David Turner <david@freetype.org>
61 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
62 2007-06-16 that prevented the TrueType module from loading most
65 2007-06-20 Werner Lemberg <wl@gnu.org>
67 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
70 2007-06-19 Werner Lemberg <wl@gnu.org>
72 * src/type1/t1load.c (parse_encoding): Handle one more error.
74 2007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
76 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
77 FNT_Err_Invalid_File_Format if file format was recognized but
78 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
79 Add verbose debug logs to make it easier to debug failing load
81 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
82 so return an error if requested face index is > 0.
83 Do not do further attempt to load fonts if a previous attempt has
84 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
85 file format has been recognized but no fonts found in the file.
87 2007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
89 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
90 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
91 the compiler warnings against unused arguments.
92 (FT_ATSFontGetFileReference): Ditto.
93 (FT_GetFile_From_Mac_ATS_Name): Ditto.
94 (FT_New_Face_From_FSSpec): Ditto.
95 (lookup_lwfn_by_fond): Fix wrong comment.
96 Replace `const StringPtr' by more appropriate type
98 FSRefMakePathPath always returns UTF8 POSIX pathname in
99 Mach-O, thus HFS pathname support is dropped.
100 (count_faces): Remove HLock and HUnlock which is not
101 required on Mac OS X anymore.
102 (FT_New_Face_From_SFNT): Ditto.
103 (FT_New_Face_From_FOND): Ditto.
104 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
105 except of HFS pathname support and HLock/HUnlock.
106 They are required on classic CFM environment.
108 2007-06-18 Werner Lemberg <wl@gnu.org>
110 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
112 (ps_parser_to_bytes): Fix error message.
114 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
115 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
116 Don't allow mixed binary and hex strings.
117 Handle string_size == 0 and string_buf == 0.
118 (t42_parse_encoding): Handle one more error.
120 2007-06-18 Werner Lemberg <wl@gnu.org>
122 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
124 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
126 (ps_parser_load_field_table): Use `fields->array_max' instead of
127 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
129 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
132 2007-06-17 Werner Lemberg <wl@gnu.org>
134 * src/tools/ftrandom.c (font_size): New global variable.
136 (main): Handle new option `--size' to set `font_size'.
139 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
141 (FNT_Load_Glyph): Protect against invalid bitmap width.
143 2007-06-16 David Turner <david@freetype.org>
145 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
146 Prevent integer overflows when rendering very large outlines.
148 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
149 well-formedness of the contours array when loading a glyph.
151 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
153 (Ins_IP): Check argument ranges to reject bogus operations properly.
154 (IUP_WorkerRec): Add `max_points' member.
155 (_iup_worker_interpolate): Check argument ranges.
156 (Ins_IUP): Ignore empty outlines.
158 2007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
160 * src/winfonts/winfnt.h: Add necessary structures for PE resource
162 (WinPE32_HeaderRec): New structure.
163 (WinPE32_SectionRec): New structure.
164 (WinPE_RsrcDirRec): New structure.
165 (WinPE_RsrcDirEntryRec): New structure.
166 (WinPE_RsrcDataEntryRec): New structure.
167 (FNT_FontRec): Remove unused `size_shift' field.
169 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
170 loading bitmap .fon files in PE format.
172 2007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
174 * builds/win32/ftdebug.c: Unify debug level handling with other
177 2007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
179 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
180 console as well as to the debugger.
182 2007-06-14 Werner Lemberg <wl@gnu.org>
184 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
185 cover all ranges which could possibly be handled by the aflatin
186 module (since the default fallback for unknown ranges is now the
187 afcjk module). It might be necessary to fine-tune this further by
188 splitting off modules for Greek, Cyrillic, or other blocks.
190 2007-06-11 David Turner <david@freetype.org>
192 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
193 incorrect segment linking computation. This was the root cause of
197 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
198 to improve the Latin auto-hinter. Note that the new code is
199 disabled by default since it is not stabilized yet.
201 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
202 (disabled currently).
204 * src/autofit/afhints.c: Remove dead code.
205 (af_axis_hints_new_edge): Add argument to handle segment directions.
206 (af_edge_flags_to_string): New function.
207 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
209 (af_glyph_hints_reload): Add argument to handle inflections.
211 (af_direction_compute): Fine tuning.
212 (af_glyph_hints_align_edge_points): Fix logic.
213 (af_glyph_hints_align_strong_points): Do linear search for small
215 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
216 (af_iup_shift): Handle zero `delta'.
218 * src/autofit/afhints.h: Updated.
219 (AF_SORT_SEGMENTS): New macro (disabled).
220 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
222 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
223 argument to pass option flags for handling scripts.
224 * src/autofit/afglobal.h: Updated.
226 * src/autofit/afcjk.c: Updated.
227 * src/autofit/aflatin.c: Updated.
228 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
230 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
231 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
232 Don't set `edge->dir'
233 (af_latin_hint_edges): Add more logging.
235 * src/autofit/afloader.c: Updated.
237 2007-06-11 Werner Lemberg <wl@gnu.org>
239 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
241 2007-06-10 David Turner <david@freetype.org>
243 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
244 the TrueType glyph loader.
246 * include/freetype/config/ftoption.h: Clarify documentation
247 regarding unpatented hinting.
250 Add new `FT_Face_CheckTrueTypePatents' API.
252 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
255 * include/freetype/internal/services/svttglyf.h,
256 src/base/ftpatent.c: New files.
258 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
261 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
263 (tt_service_truetype_glyf): New service structure.
264 (tt_services): Register it.
266 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
269 2007-06-08 Werner Lemberg <wl@gnu.org>
271 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
272 Fonts without a cmap must be handled correctly by FreeType (anything
273 else would be a bug).
276 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
277 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
279 2007-06-07 Werner Lemberg <wl@gnu.org>
281 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
282 tt_sbit_decoder_load_image): Protect against integer overflows.
285 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
286 for `x_control' and `y_control'.
288 2007-06-06 Werner Lemberg <wl@gnu.org>
290 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
293 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
297 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
301 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
304 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
307 (cff_slot_load): Updated.
308 * src/cff/cffgload.h: Updated.
310 2007-06-05 Werner Lemberg <wl@gnu.org>
312 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
313 (pfr_glyph_load_simple): Convert assertion into normal FreeType
316 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
317 Convert assertion into normal FreeType error.
319 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
322 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
325 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
326 in case of parsing error.
327 (ps_parser_load_field): Updated.
329 * src/type1/t1load.c (parse_font_matrix): Updated.
331 2007-06-04 Werner Lemberg <wl@gnu.org>
333 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
335 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
337 2007-06-03 Werner Lemberg <wl@gnu.org>
339 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
340 George Williams (with some modifications).
342 2007-06-03 Werner Lemberg <wl@gnu.org>
344 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
345 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
346 face == NULL. Suggested by Graham Asher.
348 2007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
350 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
352 2007-06-02 Werner Lemberg <wl@gnu.org>
354 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
355 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
357 * src/bdf/bdflib.c (bdf_load_font): Use them.
359 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
361 2007-06-01 Werner Lemberg <wl@gnu.org>
363 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
364 (FTC_CMapCache_Lookup): Remove unused code.
366 2007-06-01 Sean McBride <sean@rogue-research.com>
368 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
371 2007-06-01 Werner Lemberg <wl@gnu.org>
373 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
374 pass for `StartData' if an error has occurred.
375 Exit properly if no `StartData' has been seen at all.
377 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
378 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
380 2007-05-30 Werner Lemberg <wl@gnu.org>
382 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
383 against too small binary data strings.
385 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
387 2007-05-28 David Turner <david@freetype.org>
389 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
390 transformation. This significantly reduces the loading time of CFF
393 * docs/CHANGES: Updated.
395 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
396 hinting script to CJK, since it works well with more scripts than
397 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
400 2007-05-25 Werner Lemberg <wl@gnu.org>
402 * docs/CHANGES: Updated.
404 2007-05-24 Werner Lemberg <wl@gnu.org>
406 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
407 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
409 2007-05-24 Graham Asher <graham.asher@btinternet.com>
411 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
412 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
414 2007-05-22 David Turner <david@freetype.org>
416 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
417 avoid crashes in case the bytecode interpreter is not used.
420 Avoid heap blowup with very large .Z font files. This fixes
423 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
424 `in_limit', `pad', `pad_bits', and `in_buff' members.
425 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
428 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
430 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
432 2007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
434 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
435 (ps_dimension_set_mask_bits): Remove `const'.
437 2007-05-19 Werner Lemberg <wl@gnu.org>
439 * src/sfnt/ttmtx.c (tt_face_get_metrics)
440 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
442 2007-05-19 Derek Clegg <dclegg@apple.com>
444 Savannah patch #5929.
446 * include/freetype/tttables.h, src/base/ftobjcs.c
447 (FT_Get_CMap_Format): New function.
449 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
451 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
454 2007-05-19 Werner Lemberg <wl@gnu.org>
456 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
457 before handling subglyphs so that it can be reinitialized each time.
458 This fixes Savannah bug #19859.
460 2007-05-16 Werner Lemberg <wl@gnu.org>
462 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
463 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
464 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
465 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
466 tt_face_get_metrics): Fix type-punning issues.
468 2007-05-15 David Turner <david@freetype.org>
470 * include/freetype/config/ftstdlib.h,
471 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
472 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
473 instead on relying on the locale-dependent functions provided by
476 2007-05-15 Graham Asher <graham.asher@btinternet.com>
478 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
480 * src/autofit/afloader.c (af_loader_load_g): Ditto.
482 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
483 (open_face_from_buffer): Initialize `stream'.
484 (FT_Request_Metrics): Remove unused variable.
485 Remove redundant `break' statements.
486 (FT_Get_Track_Kerning): Remove unused variable.
488 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
489 afm_parse_kern_data): Remove redundant
491 (afm_parser_parse): Ditto.
492 Don't use uninitialized variables.
494 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
495 Use `|' operator instead of `^' to set it.
498 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
499 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
501 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
503 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
504 (TT_Load_Glyph): Remove unused variable.
506 2007-05-13 Derek Clegg <dclegg@apple.com>
508 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
509 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
511 2007-05-11 David Turner <david@freetype.org>
513 * src/cache/ftbasic.c, include/freetype/ftcache.h
514 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
515 functions that allow us to look up glyphs using an FTC_Scaler object
516 to specify the size, making it possible to use fractional pixel
519 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
520 `size->cvt_ready'. Reported by Boris Letocha.
522 2007-05-09 Graham Asher <graham.asher@btinternet.com>
524 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
525 (af_latin_metrics_scale_dim): Fix compiler warnings.
527 2007-05-06 Werner Lemberg <wl@gnu.org>
529 * builds/win32/visualce/freetype.sln: Removed, as requested by
532 2007-05-04 Vincent RICHOMME <richom.v@free.fr>
534 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
537 * docs/CHANGES: Document them.
539 2007-05-04 <harry@kdevelop.org>
541 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
542 mmap (which might happen on some RTOS). From Savannah patch #5909.
544 2007-05-03 Werner Lemberg <wl@gnu.org>
546 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
547 * include/freetype/freetype.h (FT_Set_Char_Size): Update
550 2007-04-28 Victor Stinner <victor.stinner@inl.fr>
552 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
555 2007-04-27 Werner Lemberg <wl@gnu.org>
557 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
558 number of points in contours. Problem reported by Victor Stinner
559 <victor.stinner@haypocalc.com>.
560 (TT_Process_Simple_Glyph): Synchronize variable types.
562 2007-04-26 Werner Lemberg <wl@gnu.org>
564 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
565 zero in case of error. This fixes Savannah bug #19689.
567 2007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
569 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
570 in the TrueType bytecode loader.
572 2007-04-10 Martin Horak <horakm@centrum.cz>
574 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
575 Ignore `hhea' table. This fixes Savannah bug #19261.
577 2007-04-09 Werner Lemberg <wl@gnu.org>
580 * Version 2.3.4 released.
581 =========================
584 Tag sources with `VER-2-3-4'.
586 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
587 version number to 2.3.4.
589 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
590 builds/win32/visualc/freetype.dsp,
591 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
593 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
595 * builds/unix/configure.raw (version_info): Set to 9:15:3.
597 2007-04-09 Martin Horak <horakm@centrum.cz>
599 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
600 memory stream to avoid a crash with the incremental memory
601 interface (Savannah bug #19260).
603 2007-04-06 David Turner <david@freetype.org>
605 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
606 (Savannah bug #19536).
608 2007-04-04 Werner Lemberg <wl@gnu.org>
611 * Version 2.3.3 released.
612 =========================
615 Tag sources with `VER-2-3-3'.
617 * docs/CHANGES: Mention CVE-2007-1351.
619 2007-04-03 David Turner <david@freetype.org>
621 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
622 if one of the resolution values is 0, treat it as if it were the
623 same as the other value.
625 2007-04-02 David Turner <david@freetype.org>
627 Add special code to detect `extra-light' fonts and do not snap their
628 stem widths too much to avoid bizarre hinting effects.
630 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
631 `extra_light' members.
633 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
635 (af_latin_metrics_scale_dim): Set `extra_light'.
636 (af_latin_compute_stem_width): Use `extra_light'.
638 2007-03-28 David Turner <david@freetype.org>
640 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
643 2007-03-28 Werner Lemberg <wl@gnu.org>
645 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
647 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
648 issue an error for longer names. This fixes CVE-2007-1351.
649 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
650 number of code points in Unicode.
652 * builds/win32/visualc/index.html,
653 builds/win32/visualc/freetype.dsp,
654 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
657 * docs/CHANGES: Mention ftdiff.
659 2007-03-26 David Turner <david@freetype.org>
661 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
663 (Ins_MD): Last regression fix.
665 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
666 computations in order to ignore single-point contours. These are
667 never rasterized and correspond in certain fonts to mark-attach
668 points that are very far from the glyph's real outline, ruining the
671 * src/autofit/afloader.c (af_loader_load_g): In the case of
672 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
673 Otherwise code that uses them will most certainly ruin the fixed
676 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
677 documentation and bump version number to 2.3.3.
679 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
681 * builds/unix/configure.raw (version_info): Set to 9:14:3.
683 2007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
685 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
686 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
687 * builds/vms/ftconfig.h: Ditto.
688 * include/freetype/config/ftconfig.h: Ditto.
690 2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
692 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
693 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
694 proposed by Sean McBride:
695 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
697 2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
699 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
700 setjmp, proposed by Sean McBride:
701 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
703 2007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
705 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
706 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
707 bug or undocumented behaviour of autoconf.
709 2007-03-18 David Turner <david@freetype.org>
711 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
712 fix; testing still needed.
714 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
716 2007-03-17 David Turner <david@freetype.org>
718 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
719 (undocumented) twilight zone special case.
721 2007-03-09 Werner Lemberg <wl@gnu.org>
724 * Version 2.3.2 released.
725 =========================
728 Tag sources with `VER-2-3-2'.
730 * builds/win32/visualc/index.html,
731 builds/win32/visualc/freetype.dsp,
732 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
735 2007-03-08 David Turner <david@freetype.org>
737 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
739 * builds/unix/configure.raw (version_info): Set to 9:13:3.
741 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
743 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
745 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
746 function to work properly, over-writing user-provided buffers in
747 some cases. Reported by James Cloos <cloos@jhcloos.com>.
750 2007-03-05 Werner Lemberg <wl@gnu.org>
752 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
755 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
756 `trick_names', as suggested by Ivan Nincic.
758 2007-03-05 David Turner <david@freetype.org>
760 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
761 case FT_Init_FreeType fails for some reason. Problem reported by
762 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
764 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
765 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
766 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
769 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
770 signed values, not unsigned ones. Problem reported by Johannes
771 Walther <joh_walt@yahoo.de>.
773 2007-02-21 David Turner <david@freetype.org>
775 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
776 of small and ghost stems in the Postscript interpreter.
778 2007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
780 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
781 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
782 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
784 2007-02-16 Werner Lemberg <wl@gnu.org>
786 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
787 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
789 2007-02-14 David Turner <david@freetype.org>
791 It seems that the following changes fix most of the known
792 interpreter problems with my fonts, but more testing is needed,
795 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
796 (TT_MulFix14): Rewrite.
797 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
800 2007-02-12 Werner Lemberg <wl@gnu.org>
802 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
805 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
806 (bdf_interpret_style): Ditto.
808 2007-02-12 David Turner <david@freetype.org>
810 Simplify projection and dual-projection code interface.
812 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
813 FT_Vector' as argument type.
814 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
816 (CUR_fast_project, CUR_fast_dualproj): New macros.
817 (Project, Dual_Project, Project_x, Project_y): Updated.
818 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
822 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
823 adjustments for the non-light auto-hinted modes. Gets rid of
824 `inter-letter spacing is too wide' problems.
826 * src/autofit/aflatin.c (af_latin_hints_link_segments,
827 af_latin_hints_compute_edges): Slight optimization of the segment
828 linker and better handling of serif segments to get rid of broken
829 `9' in Arial at 9pt (96dpi).
832 Introduce new string functions and the corresponding macros to get
833 rid of various uses of strcpy and other `evil' functions, as well as
834 to simplify a few things.
836 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
837 ft_mem_strcpyn): New declarations.
838 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
840 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
843 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
844 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
845 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
846 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
847 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
848 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
849 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
850 t42_get_name_index): Use new functions and simplify code.
852 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
854 2007-02-11 Werner Lemberg <wl@gnu.org>
856 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
859 2007-02-07 Tom Parker <palfrey@tevp.net>
861 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
864 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
866 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
867 Introduce __attribute((deprecated))__ to warn functions
868 which use non-ANSI data types in its interfaces.
869 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
870 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
871 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
872 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
874 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
875 to avoid warning in building FreeType.
876 * builds/mac/ftmac.c: Ditto.
878 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
880 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
881 `--with-fsspec' etc. Replace #include "ftmac.c" with
884 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
886 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
887 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
888 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
889 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
890 FT_GetFilePath_From_Mac_ATS_Name.
891 * builds/mac/ftmac.c: Ditto.
893 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
895 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
896 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
897 for passing to FT_New_Face_From_FSSpec.
899 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
901 * builds/unix/configure.raw: Check whether Mac OS X system headers
902 can be built under ANSI C mode.
904 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
905 compatible to ANSI C in case system headers are ANSI C incompatible.
906 * builds/mac/ftmac.c (OS_INLINE): Ditto.
908 2007-02-01 Werner Lemberg <wl@gnu.org>
910 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
911 Explain why applications shouldn't use it. Found by Alexei.
913 2007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
915 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
918 * src/gxvalid/gxvmort1.c
919 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
922 2007-01-31 Werner Lemberg <wl@gnu.org>
925 * Version 2.3.1 released.
926 =========================
929 Tag sources with `VER-2-3-1-FINAL'.
931 * builds/win32/visualc/freetype.dsp,
932 builds/win32/visualc/freetype.vcproj: s/230/231/.
933 * builds/win32/visualc/index.html: s/221/231/.
935 * vms_make.com: Add `ftgasp'.
937 2007-01-30 David Turner <david@freetype.org>
939 Tag sources with VER-2-3-1 to prepare release.
941 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
943 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
946 * builds/unix/configure.raw (version_info): Set to 9:12:3.
949 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
950 (af_loader_load_g): Disable the warper (i.e., the light hinting
951 improvements) to make a 2.3.1 bugfix release before introducing a
952 new feature. This should give us more time to tune and improve the
953 warper for the next release.
955 * docs/CHANGES: Update accordingly.
957 2007-01-25 David Turner <david@freetype.org>
959 For light auto-hinting, improve glyph advance widths and resurrect
960 normal/full hinting to its normal quality.
962 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
964 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
967 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
968 preprocessor conditional with if-clause, handling both light and
971 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
972 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
974 2007-01-25 Werner Lemberg <wl@gnu.org>
976 * docs/release: Updated -- Savannah uses a new uploading scheme.
978 2007-01-25 David Turner <david@freetype.org>
980 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
982 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
983 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
986 * docs/CHANGES: Document light auto-hinting improvement.
988 2007-01-25 Werner Lemberg <wl@gnu.org>
990 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
991 correctly in a sanity check. Since this function is only used to
992 load local and global functions, any charstring that called the last
993 local/global function would fail otherwise. This fixes Savannah bug
996 * docs/CHANGES: Document it.
998 2007-01-23 David Turner <david@freetype.org>
1000 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
1001 prevented compilation when disabling both the unpatented and the
1002 bytecode interpreter in the TrueType font driver.
1005 Fix and enable the warper to improve `light' hinting mode. This is
1006 not necessarily a final version, but it seems to work well.
1008 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
1010 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
1011 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
1013 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
1014 (af_warper_compute_line_best): Fix array size of `scores'.
1015 (af_warper_compute): Better handling of border cases.
1016 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
1019 2007-01-21 Werner Lemberg <wl@gnu.org>
1021 * ChangeLog: Split off older entries into...
1022 * ChangeLog.22: This new file.
1024 2007-01-21 Werner Lemberg <wl@gnu.org>
1026 * docs/CHANGES: Document SHZ fix.
1028 2007-01-21 George Williams <gww@silcom.com>
1030 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1033 2007-01-21 Werner Lemberg <wl@gnu.org>
1035 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1036 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1038 2007-01-17 Werner Lemberg <wl@gnu.org>
1041 * Version 2.3.0 released.
1042 =========================
1045 Tag sources with `VER-2-3-0-FINAL'.
1047 2007-01-17 Werner Lemberg <wl@gnu.org>
1049 * docs/release: Updated.
1051 2007-01-16 David Turner <david@freetype.org>
1053 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1054 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1055 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1058 2007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
1060 * builds/amiga/makefile, builds/amiga/makefile.os4,
1061 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1063 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1065 2007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
1067 Fix various compiler warnings.
1069 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1070 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1071 s/index/strike_index/.
1072 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1074 * src/gxvalid/gxvmorx5.c
1075 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1077 * src/truetype/ttinterp.c (Compute_Point_Displacement),
1078 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1079 uninitialized variables.
1081 2007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1083 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1085 2007-01-13 Werner Lemberg <wl@gnu.org>
1087 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1088 versions up to 0x3FF without complaining.
1090 2007-01-13 Derek Clegg <dclegg@apple.com>
1092 Add FT_Get_PS_Font_Info interface to CFF driver.
1094 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1095 (CFF_FontRec): Add `font_info' field.
1097 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1098 (cff_font_done): Free font->font_info if necessary.
1100 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1101 (cff_service_ps_info): Register cff_ps_get_font_info.
1103 2007-01-13 Werner Lemberg <wl@gnu.org>
1105 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1108 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1109 af_glyph_hints_dump_edges): Ditto.
1111 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1114 * src/sfnt/ttsbit0.h: Remove.
1116 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1118 2007-01-12 David Turner <david@freetype.org>
1120 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1121 bug in the bitmap emboldener if the pitch of the source bitmap is
1122 much larger than its width.
1124 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1125 compilation warning.
1127 2007-01-12 Werner Lemberg <wl@gnu.org>
1129 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1130 `automake' CVS module from sources.redhat.com.
1132 2007-01-11 Werner Lemberg <wl@gnu.org>
1134 * src/type1/t1load.c (is_space): Removed.
1135 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1136 (parse_charstrings): Use IS_PS_TOKEN.
1139 * autogen.sh: Avoid bash specific syntax.
1141 2007-01-11 David Turner <david@freetype.org>
1143 * docs/CHANGES: Small update.
1145 * builds/unix/configure.raw (version_info): Set to 9:11:3.
1147 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1148 crash with some Mac OS X .dfont files. Submitted by Masatake
1151 * autogen.sh: Small fix to get it working on Mac OS X properly:
1152 The issue is that GNU libtool is called `glibtool' on this platform,
1153 and we must call `glibtoolize', since `libtoolize' doesn't exist.
1155 2007-01-10 David Turner <david@freetype.org>
1157 * all-sources: Tag all sources with VER-2-3-0-RC1 and
1160 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1161 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1162 version number to 2.3.0.
1164 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1165 (FREETYPE_PATCH): Set to 0.
1167 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
1168 include/freetype/ftlcdfil.h: Update reference documentation with
1169 GASP support and LCD filtering sections.
1171 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1172 which created an endless loop with some malformed font files.
1174 2007-01-10 Derek Clegg <dclegg@apple.com>
1176 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1179 2007-01-08 David Turner <david@freetype.org>
1181 * docs/CHANGES: Updated.
1183 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1184 a new API `FT_Get_Gasp' to return entries of the `gasp' table
1185 corresponding to a given character pixel size.
1187 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1188 `gasp' table, in order to avoid potential problems with later
1191 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1192 <freetype/ftgasp.h>.
1194 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1195 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1196 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1199 2007-01-07 Werner Lemberg <wl@gnu.org>
1201 * src/cid/cidparse.c (cid_parser_new): Improve error message for
1203 Scan for `/sfnts' token.
1205 2007-01-07 Werner Lemberg <wl@gnu.org>
1207 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
1209 2007-01-06 Werner Lemberg <wl@gnu.org>
1211 * src/cff/cffload.c (cff_index_init): Remove unused variable.
1212 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1214 2007-01-04 David Turner <david@freetype.org>
1216 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1217 correctly. This fixes Savannah bug #17876.
1220 Do not allocate interpreter-specific tables in memory if we are not
1221 going to load glyphs with the bytecode interpreter anyway.
1223 * src/truetype/ttgload.c (tt_loader_init): Load execution context
1224 only if glyph is hinted.
1226 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1228 Add `tt_size_ready_bytecode' declaration.
1229 * src/truetype/ttobjs.c (tt_size_done_bytecode,
1230 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1231 (tt_size_init): Move most code into `tt_size_init_bytecode'.
1232 (tt_size_done): Move most code into `tt_size_done_bytecode'.
1233 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
1236 Don't extract the metrics table from the SFNT font file. Instead,
1237 reparse it on each glyph load. The runtime difference is not
1238 noticeable, and it can save a lot of heap memory when memory-mapped
1241 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1242 `horz_metrics_offset' and `vert_metrics_ofset'.
1243 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1247 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1250 Do not load the CFF index offsets into memory, since this wastes a
1251 *lot* of heap memory with large Asian CFF fonts. There is no
1252 significant performance loss.
1254 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1255 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1257 (CFF_CharsetRec): Add field `num_glyphs'.
1259 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1260 cff_charset_cid_to_gindex): New functions.
1261 (cff_new_index): Renamed to...
1262 (cff_index_init): This. Update all callers.
1263 Updated -- some code has been moved to `cff_index_load_offsets'.
1264 (cff_done_index): Renamed to...
1265 (cff_index_done): This. Update all callers.
1266 (cff_index_get_pointers, cff_index_access_element): Updated to use
1268 (cff_charset_compute_cids): Set `num_glyphs' field.
1269 (cff_encoding_load): Updated.
1271 * src/cff/cffgload.c (cff_slot_load): Updated.
1273 2007-01-04 David Turner <david@freetype.org>
1275 * docs/INSTALL.UNIX: Simplify some parts, add reference to
1276 autogen.sh and pointer to README.CVS.
1278 * README.CVS: Add common problem description and solution
1279 when running autogen.sh.
1281 * docs/INSTALL: Add reference to MacOS X.
1283 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
1285 * docs/TODO: Remove obsolete items.
1287 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1289 Remove `count_table' and `memory'.
1290 Make `grays' a pointer.
1291 (TRaster): New structure.
1292 (count_table): New static array.
1293 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1294 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1295 ft_black_set_mode, ft_black_render): Updated.
1296 (ft_black_init): Don't initialize `count_table'.
1297 (ft_black_reset): Use the render pool. This saves about 6KB of
1298 heap space for each FT_Library instance.
1300 * src/smooth/ftgrays.c (TRaster): Replaced with...
1303 (TRaster): New structure.
1305 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1306 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1307 gray_render_span, gray_raster_render): Updated.
1308 (gray_raster_reset): Use the render pool. This saves about 6KB of
1309 heap space for each FT_Library instance.
1311 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1312 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
1313 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1314 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1315 the optimization is no longer experimental.
1317 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1318 Remove a typo that results in no hinting and a memory leak with some
1319 large Asian CFF fonts.
1321 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
1322 which happens when FT_Done_Library is called with still opened
1323 CFF_Faces in it. We need to close all faces before destroying the
1324 modules, or else some bad things (memory leaks) may happen.
1326 2007-01-02 Werner Lemberg <wl@gnu.org>
1328 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1329 Remove compiler warning.
1331 2007-01-02 David Turner <david@freetype.org>
1333 * src/sfnt/sfobjs.c: Add documentation comment.
1335 2006-12-31 Masatake YAMATO <jet@gyve.org>
1337 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1339 Check uniqueness of the gid pairs.
1340 (gxv_kern_subtable_fmt0_validate): Move some code to
1341 `gxv_kern_subtable_fmt0_pairs_validate'.
1343 2006-12-22 David Turner <david@freetype.org>
1345 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1348 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1349 to avoid deprecation warnings with Visual C++ 8.
1351 2006-12-16 Anders Kaseorg <anders@kaseorg.com>
1353 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1354 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1356 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1358 * include/freetype/internal/services/svotval.h: Add `volatile' to
1359 sync with the modification by Jens Claudius on 2006-08-22; cf.
1360 http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
1362 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1364 * src/base/ftmac.c: Specialized for Mac OS X only.
1365 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1366 * builds/unix/configure.raw: Ditto. When explicit switches for
1367 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1368 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1370 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1372 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1373 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1374 instead of src/base/ftmac.c
1375 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1376 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1377 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1378 that cannot be built at present.
1380 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1382 * src/base/ftobjs.c: Improvement of resource fork handler for
1384 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
1385 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1386 format or .dfont, to simulate the face index number counted by ftmac.c.
1387 (IsMacResource): Return the number of scalable faces correctly.
1389 2006-12-10 Werner Lemberg <wl@gnu.org>
1391 * builds/toplevel.mk (version): Protect against `distclean' target.
1393 2006-12-09 Werner Lemberg <wl@gnu.org>
1395 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1398 * builds/freetype.mk (version): Extracted from freetype.h, using
1399 GNU make's built-in string functions.
1400 (refdoc): Use $(version) instead of static version number.
1402 2006-12-08 Werner Lemberg <wl@gnu.org>
1404 * builds/toplevel.mk (dist): Extract version number from freetype.h.
1406 2006-12-08 Vladimir Volovich <vvv@vsu.ru>
1408 * src/tools/apinames (State): Remove final comma in structure -- xlc
1409 v5 under AIX 4.3 doesn't like this.
1411 2006-12-07 David Turner <david@freetype.org>
1413 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1414 to the spacing of auto-fitted glyphs. This only impacts rare
1415 cases (e.g., Arial Bold at rather small character sizes).
1417 2006-12-03 Werner Lemberg <wl@gnu.org>
1419 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1421 2006-12-01 Werner Lemberg <wl@gnu.org>
1423 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1424 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
1425 (tt_name_entry_ascii_from_ucs4): Removed.
1428 * include/freetype/ftxf86.h: Fix and extend comment so that it
1429 appears in the documentation.
1431 * include/freetype/ftchapters.h: Add `font_format' section.
1434 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1435 to TOC in index page.
1437 2006-11-28 David Turner <david@freetype.org>
1439 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1440 trying to render into a zero-width/height bitmap, not an error code.
1442 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1444 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1447 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1450 2006-11-26 Pierre Hanser <hanser@club-internet.fr>
1452 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1454 2006-11-25 David Turner <david@freetype.org>
1456 * src/autofit/afhints.c (af_glyph_hints_dump_points,
1457 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1458 Add stubs to link the `ftgrid' test program when debugging is
1459 disabled in the auto-hinter.
1461 2006-11-23 David Turner <david@freetype.org>
1463 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
1464 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1466 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1467 Emit more sensible information.
1469 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1471 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1472 rounding of blue values.
1473 (af_latin_hints_compute_segments): Hint segment heights.
1474 (af_latin_hints_link_segments): Reduce `len_score' value.
1475 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1476 value and use `height' member for comparisons.
1477 (af_latin_hint_edges): Extend logging message.
1478 Improve handling of remaining edges.
1480 2006-11-22 Werner Lemberg <wl@gnu.org>
1482 Fix Savannah bug #15553.
1484 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1485 program after a change from mono to grayscaling (and vice versa).
1486 Use correct constant for comparison to get `exec->grayscale'.
1488 2006-11-18 Werner Lemberg <wl@gnu.org>
1490 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
1491 test for a valid glyph index must be deferred to the font drivers.
1492 This patch fixes Savannah bug #18301.
1494 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1495 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1496 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1497 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1498 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1499 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1500 (FNT_Load_Glyph): Check validity of `glyph_index'.
1502 2006-11-13 David Turner <david@freetype.org>
1504 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
1505 `enhancements' are still too buggy for general use.
1507 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1508 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
1509 when building the library to change the default LCD filter to be
1510 used. This is only useful for experimentation.
1512 * include/freetype/ftlcdfil.h: Update documentation.
1514 2006-11-10 David Turner <david@freetype.org>
1516 * src/smooth/ftsmooth.c: API change for the LCD
1517 filter. The FT_LcdFilter value is an enumeration describing which
1518 filter to apply, with new values FT_LCD_FILTER_LIGHT and
1519 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1520 algorithm which produces strong color fringes for everything
1521 except very-well hinted text).
1523 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1524 second parameter to an enum type.
1526 * src/base/ftlcdfil.c (USE_LEGACY): Define.
1527 (_ft_lcd_filter): Rename to...
1528 (_ft_lcd_filter_fir): This.
1530 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1531 (FT_Library_Set_LcdFilter): Update parameters.
1532 Handle new filter modes.
1534 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1535 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1536 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1537 callback and update other fields.
1539 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1540 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1541 Other minor improvements.
1543 * src/autofit/aflatin.c: Various tiny improvements that drastically
1544 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1545 (af_latin_hints_compute_edges): Fix typo.
1546 (af_latin_compute_stem_width): Take better care of diagonal stems.
1548 2006-11-09 David Turner <david@freetype.org>
1550 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1551 typo which created a variable-used-before-initialized bug.
1553 2006-11-07 Zhe Su <james.su@gmail.com>
1555 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1558 2006-11-03 Werner Lemberg <wl@gnu.org>
1560 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1562 2006-11-02 David Turner <david@freetype.org>
1564 Add a few tweaks to better handle serif fonts.
1565 Add more debugging messages.
1567 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1568 segments that are less than 1.5 pixels high. This gets rid of
1569 *many* corner cases with serifs.
1570 (af_latin_align_linked_edge): Add logging message.
1571 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1572 Add logging messages.
1573 Handle AF_EDGE_FLAG flag specially.
1575 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1576 _af_debug_disable_blue_hints, and _af_debug_hints variables.
1578 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1579 Update external declarations.
1580 (af_corner_orientation, af_corner_is_flat): Replaced by...
1582 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1583 ft_corner_is_flat): These declarations.
1585 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1586 Comment out. Replaced by...
1588 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1589 These functions. Update all callers.
1590 (FT_Add64) [!FT_LONG64]: Simplify.
1592 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1593 (af_direction_compute): Add a missing FT_ABS call. This bug caused
1594 production of garbage by missing lots of segments.
1596 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1598 * src/autofit/afloader.c (af_loader_init, af_loader_done)
1599 [AF_DEBUG]: Set _af_debug_hints.
1602 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1603 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1604 and ft_corner_orientation.
1607 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
1609 2006-10-24 Werner Lemberg <wl@gnu.org>
1611 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1613 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1616 2006-10-23 Zhe Su <zsu@novell.com>
1618 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1619 better deal with broken Asian fonts with strange glyphs, having
1620 self-intersections and other peculiarities. The used algorithm is
1621 based on the nonzero winding rule.
1623 2006-10-23 David Turner <david@freetype.org>
1625 Speed up the CFF font loader. With some large CFF fonts,
1626 FT_Open_Face is now more than three times faster.
1628 * src/cff/cffload.c (cff_get_offset): Removed.
1629 (cff_new_index): Inline functionality of `cff_get_offset'.
1630 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1631 (cff_charset_done): Call `cff_charset_free_cids'.
1632 (cff_charset_load): Call `cff_charset_compute_cids'.
1633 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1635 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1639 Speed up the Postscript hinter, with more than 100% speed increase
1642 * src/pshinter/pshalgo.c (psh_corner_is_flat,
1643 psh_corner_orientation): New functions.
1644 (psh_glyph_compute_inflections): Merge loops for efficiency.
1645 Use `psh_corner_orientation'.
1646 (psh_glyph_init): Use `psh_corner_is_flat'.
1647 (psh_hint_table_find_strong_point): Renamed to...
1648 (psh_hint_table_find_strong_points): This.
1649 Rewrite, adding argument to handle all points at once.
1651 (PSH_MAX_STRONG_INTERNAL): New macro.
1652 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
1654 2006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1656 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
1657 `error' with FT_Err_Ok.
1659 2006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1661 * docs/INSTALL.CROSS: New document file for cross-building.
1663 * builds/unix/configure.raw: Preliminary cross-building support.
1664 Find native C compiler and pass it by CC_BUILD, and
1665 find suffix for native executable and pass it by EXEEXT_BUILD.
1666 Also suffix for target executable is passed by EXEEXT.
1668 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1669 build `apinames' which runs on building system. They are set by
1670 CC_BUILD and EXEEXT_BUILD.
1672 * builds/exports.mk (APINAMES_EXE): Change the extension for
1673 apinames from the suffix for target (E) to that for building host
1676 2006-10-12 Werner Lemberg <wl@gnu.org>
1678 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1679 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
1680 which reference those files.
1682 2006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1684 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
1685 embedded in freetype2.pc and freetype-config. Use it to record
1686 Carbon dependency of MacOSX.
1688 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1690 * builds/unix/freetype-config.in: Ditto.
1692 2006-10-11 Werner Lemberg <wl@gnu.org>
1694 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1697 2006-10-03 Jens Claudius <jens.claudius@yahoo.com>
1699 * include/freetype/config/ftstdlib.h: Cast away volatileness from
1700 argument to ft_setjmp.
1702 * include/freetype/internal/ftvalid.h: Add comment that
1703 ft_validator_run must not be used.
1705 2006-10-01 Werner Lemberg <wl@gnu.org>
1707 * src/base/ftbase.c: Undo change from 2006-09-30.
1709 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1711 2006-09-30 David Turner <david@freetype.org>
1713 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1714 s/unpatented_hinting/ignore_unpatented_hinter/.
1717 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1718 auto-hinting shall be used or not.
1720 * src/truetype/ttobjs.c (tt_face_init): Ditto.
1722 2006-09-30 Werner Lemberg <wl@gnu.org>
1724 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1727 * src/base/ftbase.c: Include `ftlcdfil.c'.
1729 2006-09-29 Werner Lemberg <wl@gnu.org>
1731 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1732 overlapping segments. Bug reported by Stefan Koch.
1734 2006-09-28 David Turner <david@freetype.org>
1736 Fix a bug in the automatic unpatented hinting support which prevents
1737 normal bytecode hinting to work properly.
1739 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1740 s/force_autohint/unpatented_hinting/. Update all callers.
1742 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1744 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
1746 2006-09-27 David Turner <david@freetype.org>
1748 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
1751 Add a new API to support color filtering of subpixel glyph bitmaps.
1752 In a default build, the function `FT_Library_SetLcdFilter' returns
1753 `FT_Err_Unimplemented_Feature'; you need to #define
1754 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1755 real implementation.
1757 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
1759 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1761 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1762 `lcd_filter_weights' and `lcd_filter'.
1764 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1767 Handle subpixel rendering.
1769 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1770 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1772 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1773 pointing to <freetype/ftlcdfil.h>.
1775 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1776 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1778 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
1780 2006-09-26 David Bustin
1782 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1783 correctly. Reported as Savannah bug #17843.
1785 2006-09-26 David Turner <david@freetype.org>
1787 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1788 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1789 horizontal and vertical hinting for the purpose of debugging the
1792 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1793 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
1795 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1797 * include/freetype/config/ftoption.h, devel/ftoption.h
1798 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1799 we want to compile LCD-optimized rendering code (Ã la ClearType) or
1800 not. The macro *must* be disabled in default builds of the library
1803 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1804 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1805 isn't defined at compile time. This only changes the content of the
1806 rendered glyph to match the one of normal gray-level rendering,
1807 hence clients should not need to be modified.
1809 * docs/CHANGES: Updated.
1811 2006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
1813 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1814 LWFN fails and both are available.
1816 2006-09-11 David Turner <david@freetype.org>
1818 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1819 report their English names through an Apple Roman
1820 (platform,encoding) pair, with language_id != English.
1822 If the font uses another name entry with language_id == English, it
1823 will be selected correctly, though.
1825 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1826 selection for `mingli.ttf'.
1828 2006-09-05 Werner Lemberg <wl@gnu.org>
1830 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
1831 values which have the upper two bytes set to 0xFF instead of 0x00
1832 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1835 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1837 2006-09-05 David Turner <david@freetype.org>
1839 Minor source cleanups and optimizations.
1841 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1842 (TRaster): Remove `count_ex' and `count_ey'.
1843 (gray_find_cell): Remove 2nd and 3rd argument.
1844 (gray_alloc_cell): Merged with `gray_find_cell'.
1845 (gray_record_cell): Simplify.
1846 (gray_set_cell): Rewrite.
1847 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1848 (gray_render_span): Don't use FT_MEM_SET for small values.
1849 (gray_dump_cells) [DEBUG_GRAYS]: New function.
1850 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1852 (gray_convert_glyph): Fix speed-up.
1854 2006-09-04 David Turner <david@freetype.org>
1856 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1859 2006-09-03 Werner Lemberg <wl@gnu.org>
1861 * devel/ftoption.h: Synchronize with
1862 include/freetype/config/ftoption.h.
1864 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1865 variable declaration.
1866 (gray_convert_glyph): Fix compiler warnings.
1868 2006-09-01 David Turner <david@freetype.org>
1870 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1871 to recognize a few fonts that require the automatic unpatented
1874 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1875 rasterizer. The speed improvement is between 15% and 25%, depending
1878 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1880 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1881 (gray_init_cells): Updated.
1882 (gray_find_cell, gray_alloc_cell): New functions.
1883 (gray_record_cell): Rewritten to use `gray_find_cell' and
1885 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1888 (gray_shell_sort, gray_quick_sort, gray_check_sort,
1889 gray_dump_cells): Removed.
1890 (gray_sweep): Rewritten.
1891 (gray_convert_glyph): Rewrite code which used one of the sorting
1893 (gray_raster_render): Updated.
1895 2006-08-29 Dr. Werner Fink <werner@suse.de>
1897 * configure: Make it possible to handle configure options which
1898 have strings containing spaces.
1900 2006-08-27 David Turner <david@freetype.org>
1902 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1903 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1904 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1906 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1907 src/truetype/truetype.c, src/truetype/ttdriver.c,
1908 src/truetype/ttgload.c, src/truetype/ttgload.h,
1909 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1910 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1911 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1913 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1914 member `force_autohint'.
1916 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1918 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1919 against a list of font names which need the bytecode interpreter.
1921 2006-08-27 Jens Claudius <jens.claudius@yahoo.com>
1923 Fix miscellaneous compiler warnings.
1925 * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1926 `*/' to avoid `/* in comment' compiler warning.
1928 * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1929 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1930 64-bit platforms void* is larger than FT_UInt32.
1932 * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1933 volatileness of argument to ft_longjmp. Spotted by Werner
1936 * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1939 * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1940 variable `error' as volatile.
1942 2006-08-27 Werner Lemberg <wl@gnu.org>
1944 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1947 2006-08-22 Jens Claudius <jens.claudius@yahoo.com>
1949 Fix for previous commit, which caused many compiler warnings/errors
1950 about addresses of volatile objects passed as function arguments as
1951 non-volatile pointers.
1953 * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1954 typedef a pointer to a volatile object.
1956 * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1957 argument `table' a pointer to a volatile object.
1959 * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1960 argument `table' a pointer to a volatile object.
1962 2006-08-18 Jens Claudius <jens.claudius@yahoo.com>
1964 * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1965 variable `_sfnt' as volatile since it must keep its value across
1966 a call to ft_setjmp.
1967 (gxv_validate): Same for local variables `memory' and `valid'.
1968 (classic_kern_validate): Same for local variables `memory',
1969 `ckern', and `valid'.
1971 * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1972 parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1973 `jstf', and 'valid'.
1975 * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1976 local variable `cmap'.
1978 2006-08-16 David Turner <david@freetype.org>
1980 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1983 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1984 buggy by design. Always return -1.
1987 Improvements to native TrueType hinting. This is a first try,
1988 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1990 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1993 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1996 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1997 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1998 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1999 handle `extra_points2'.
2001 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
2002 Remove compiler warning.
2003 (cur_to_arg): Remove macro.
2004 (TT_Hint_Glyph): Updated.
2005 (TT_Process_Simple_Glyph): Handle `orus'.
2007 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
2008 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
2009 (LOC_Ins_IUP): Renamed to...
2010 (IUP_WorkerRec): This.
2012 (Shift): Renamed to...
2013 (_iup_worker_shift): This.
2015 (Interp): Renamed to...
2016 (_iup_worker_interpolate): This.
2017 Updated to handle `orus'.
2020 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
2023 2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2025 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
2026 build ftvalid in ft2demos. This has been inadvertedly changed
2029 2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2031 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2033 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
2035 * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2036 `ft_setjmp'. It reverts the change introduced on 2005-08-20.
2038 * freetype2/src/gxvalid/gxvmod.c: Ditto.
2040 2006-08-13 Jens Claudius <jens.claudius@yahoo.com>
2042 * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2044 (T1_FieldRec): Add `dict'.
2045 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2046 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2047 keyword is expected as an additional argument.
2049 * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2050 invocations of T1_FIELD_XXX.
2052 * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2054 * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
2055 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2056 not T1_TOKEN_TYPE_ANY.
2057 (ps_parser_load_field): Make sure a token that should be a string or
2058 name is really a string or name.
2059 Avoid memory leak if a keyword has been already encountered and its
2060 value is overwritten.
2061 * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2063 (parse_dict): Ignore keywords that occur in the wrong dictionary
2064 (e.g., in `Private' instead of `FontDict').
2066 * freetype2/src/type1/t1tokens.h: Adjust invocations of
2069 * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2070 invocations of T1_FIELD_XXX.
2072 2006-07-18 Jens Claudius <jens.claudius@yahoo.com>
2074 Move creation of field `buildchar' of T1_DecoderRec out of
2075 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2078 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2079 and `T1_Compute_Max_Advance'.
2081 * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2082 Remove field `face', add `len_buildchar'.
2084 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2087 * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2088 finisher for T1_Decoder.
2089 (cid_slot_load_glyph): Do not ignore failure when initializing the
2092 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2094 (t1_decoder_init): Remove initialization of fields `buildchar' and
2096 (t1_decoder_done): Remove deallocation of field `buildchar'.
2098 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2099 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2101 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2102 `len_buildchar'; make sure to call finisher for T1_Decoder even in
2105 * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2106 `buildchar' of T1_FaceRec.
2108 * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2109 `buildchar' of T1_FaceRec.
2111 2006-07-14 Jens Claudius <jens.claudius@yahoo.com>
2113 * freetype2/include/freetype/internal/psaux.h: New macros
2114 IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2115 IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2116 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2117 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2118 (T1_DecoderRec): New fields `buildchar' and `face'.
2119 (IS_PS_TOKEN): New macro.
2121 * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2122 fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2124 * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2125 `default_design_vector' and `num_default_design_vector'.
2127 * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2128 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2129 and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2131 * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2132 `token' argument to be NULL if we want only to count the number of
2134 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2135 want to skip the array.
2136 (ps_tofixedarray): Allow `values' argument to be NULL if we just
2137 want to skip the array.
2139 * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2140 support for (partially commented out) othersubrs 19-25, 27, and 28.
2141 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2142 (t1_decoder_done): Release new field `buildchar'.
2144 * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2146 (t1_keywords): Register them.
2147 (t1_allocate_blend): Updated.
2148 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2149 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2150 (parse_dict): Remove `keyword_flags' argument.
2151 Use new macro IS_PS_TOKEN.
2152 Changed function so that later PostScript definitions override
2154 (t1_init_loader): Initialize new field `keywords_encountered'.
2155 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2157 Remove `keywords_flags'.
2159 * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2160 `keywords_encountered'.
2161 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2163 * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2164 New entries for parsing /NDV, /CDV, and /DesignVector.
2166 2006-07-07 Werner Lemberg <wl@gnu.org>
2168 Add many checks to protect against malformed PCF files.
2170 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2171 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2173 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2174 data and check that tables don't overlap (using a simple
2176 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2177 New macros which give the size of data structures in the data
2179 (pcf_get_properties): Use rough estimates to get array size limits.
2180 Assign `face->nprops' and `face->properties' earlier so that a call
2181 to PCF_Face_Done can do the clean-up in case of error.
2182 Protect against invalid string offsets.
2183 (pcf_get_metrics): Clean up code.
2184 Adjust tracing message levels.
2185 Use rough estimate to get array size limit.
2186 (pcf_get_bitmaps): Clean up code.
2187 Adjust tracing message levels.
2188 Use rough estimates to get offset limits.
2189 (pcf_get_encodings): Adjust tracing message level.
2190 (pcf_get_accel): Clean up code.
2192 2006-06-26 Werner Lemberg <wl@gnu.org>
2194 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2195 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
2197 2006-06-26 Jens Claudius <jens.claudius@yahoo.com>
2199 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2200 (t1_decoder_parse_charstrings): Operator with
2201 opcode 15 pops its two arguments.
2202 Handle the case where the pops of an othersubr may be part of a
2204 Handle unknown othersubrs gracefully: count their operands and let
2205 the following pop operators push the operands as the results onto
2207 Improve handling of setcurrentpoint opcode.
2209 2006-06-25 Jens Claudius <jens.claudius@yahoo.com>
2211 The Type 1 parser now skips over top-level procedures as required
2212 for a `Simplified Parser'. This makes the parser more robust as it
2213 doesn't poke around in PostScript code. Additionally, it makes the
2214 FontDirectory hackery in src/type1/t1load.c unnecessary.
2216 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2217 (skip_literal_string): Add FT_Error as return value.
2218 Handle escapes better.
2219 (skip_string): Add FT_Error as return value.
2220 Don't set `parser->error' but return error code directly.
2221 (skip_procedure): New function.
2222 (ps_parser_skip_PS_token): Handle procedures.
2224 (ps_parser_to_token): Update code.
2225 (ps_parser_load_field_table): Handle bbox entries also.
2227 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2228 Add commented-out code for synthetic fonts.
2230 2006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
2232 Fix two hinting bugs as reported in
2233 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2235 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2236 `first_point' member.
2238 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2240 (TT_Process_Composite_Glyph): Always untouch points.
2242 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2243 `first_point' and `last_point' in case of composite glyphs.
2244 (Ins_IUP): Fix computation of `end_point'.
2246 2006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2248 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2249 Mac. The original patch was written by David Sachitano and Lawrence
2250 Coopet, and modified by Sean McBride for MPW compatibility. Only
2251 required data are converted; unused data are left in big endian.
2253 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2255 (OS_INLINE): Undefine before definition.
2256 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2257 FontAssociation table in FOND resource.
2258 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2259 and fontSize at each entry of FontAssociation table in FOND
2261 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2262 ffStylOff of FamilyRecord header of FOND resource, the header,
2263 fontSize, fontID at each entry of FontAssociation table, and
2265 (count_faces): Call `HUnlock' after all FOND utilization.
2267 2006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2269 Public API of TrueTypeGX, OpenType, and classic kern table validator
2270 should return `FT_Err_Unimplemented_Feature' if validation service
2271 is unavailable (disabled in `modules.cfg'). It is originally
2272 suggested by David Turner, cf.
2273 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2275 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2276 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2278 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2279 classic kern table validation service is unavailable.
2281 * src/base/ftotval.c (FT_OpenType_Validate): Return
2282 FT_Err_Unimplemented_Feature if OpenType validation service is
2285 2006-06-08 Werner Lemberg <wl@gnu.org>
2287 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2290 2006-06-07 David Turner <david@freetype.org>
2292 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2293 (T1_Read_Metrics): Fix memory leak which happened when the metrics
2294 file doesn't have kerning pairs. This fixes Savannah bug #16768.
2296 2006-06-06 David Turner <david@freetype.org>
2298 Fix memory leak described in Savannah bug #16759.
2300 We change `ps_unicodes_init' so that it also takes a
2301 `free_glyph_name' callback to release the glyph names returned by
2304 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2306 (PS_GetGlyphNameFunc): This.
2307 (PS_FreeGlyphNameFunc): New typedef.
2308 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2310 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2312 (cff_sid_free_glyph_name): New function.
2313 (cff_cmap_unicode_init): Updated.
2315 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2317 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2318 PS_FreeGlyphNameFunc and use it.
2321 2006-06-04 David Turner <david@freetype.org>
2323 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2324 `item_size == 0' as well -- though this sounds weird, it can
2325 theoretically happen. This fixes Savannah bug #16669.
2327 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2328 of `face->num_glyphs' which missed the last glyph, due to
2329 the offset-by-1 computation, since the PFR format doesn't
2330 guarantee that glyph index 0 corresponds to the `missing
2331 glyph. This fixes Savannah bug #16668.
2333 2006-05-25 Werner Lemberg <wl@gnu.org>
2335 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2336 `-no-undefined'. Reported by Christian Biesinger.
2338 2006-05-19 Brian Weed <bw@imaginengine.com>
2340 * builds/win32/visualc/freetype.dsp: Release libraries no longer
2341 have debug information, and debug libraries use `C7 compatible'
2344 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2346 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
2347 resource fork handler. This fixes Savannah bug #16631.
2349 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2350 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
2352 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
2353 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
2355 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2357 * build/unix/configure.raw: Add a fallback to disable Carbon
2358 dependency, if configured with no options on Mac OS X.
2360 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2362 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
2363 its content cannot be parsed as supported font. This fixes
2364 the second part of Savannah bug #16590.
2366 2006-05-18 Werner Lemberg <wl@gnu.org>
2368 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2369 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2371 2006-05-17 David Turner <david@freetype.org>
2373 This is a major patch used to drastically improve the performance of
2374 loading glyphs. This both speeds up loading the glyph vectors
2375 themselves and the auto-fitter module.
2377 We now use inline assembler code with GCC to implement `FT_MulFix',
2378 which is probably the most important function related to the
2379 engine's performance.
2381 The resulting speed-up is about 25%.
2384 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2385 `cursor' and `limit'.
2387 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2389 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2392 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2395 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2397 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2398 (af_glyph_hints_reload: Rewrite recognition of weak points.
2400 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2401 constant values out of the loops.
2403 * src/autofit/aftypes.h: Updated.
2405 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2407 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2408 product to get orientation.
2410 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2411 (FT_Stream_OpenGzip): Use it to handle small files directly in
2414 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2415 Improve performance.
2417 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2420 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2421 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
2422 exceedingly large values of number of contours. Speed up by
2423 reducing the number of loops.
2425 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2428 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2429 used to detect rogue clients from 4 to 16. This is to prevent some
2430 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2431 comes from the Japanese Adobe Reader Asian Font pack.
2433 2007-05-17 Werner Lemberg <wl@gnu.org>
2435 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
2436 fixes the first part of Savannah bug #16590.
2438 2006-05-16 Werner Lemberg <wl@gnu.org>
2440 * docs/PROBLEMS: Updated icl issues.
2442 ----------------------------------------------------------------------------
2444 Copyright 2006, 2007 by
2445 David Turner, Robert Wilhelm, and Werner Lemberg.
2447 This file is part of the FreeType project, and may only be used, modified,
2448 and distributed under the terms of the FreeType project license,
2449 LICENSE.TXT. By continuing to use, modify, or distribute this file you
2450 indicate that you have read the license and understand and accept it
2455 version-control: never