1 2008-06-29 Werner Lemberg <wl@gnu.org>
3 * Version 2.3.7 released.
4 =========================
7 Tag sources with `VER-2-3-7'.
9 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
10 version number to 2.3.7.
12 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
13 builds/win32/visualc/freetype.dsp,
14 builds/win32/visualc/freetype.vcproj,
15 builds/win32/visualce/index.html,
16 builds/win32/visualce/freetype.dsp,
17 builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
19 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
21 * builds/unix/configure.raw (version_info): Set to 9:18:3.
23 * docs/release: Updated.
25 2008-06-28 Werner Lemberg <wl@gnu.org>
27 * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
28 * src/ftcalc.c: Here. This fixes Savannah bug #23729.
30 2008-06-27 Werner Lemberg <wl@gnu.org>
32 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
33 Horizontal_Gray_Sweep_Drop): Test for intersections which
34 degenerate to a single point can be ignored; this has been confirmed
35 by Greg Hitchcock from Microsoft. (This was commented out code.)
37 2008-06-26 Werner Lemberg <wl@gnu.org>
39 Improve navigation in API reference.
41 * src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
42 (html_header_6): This.
43 (html_header_3, html_header_3i, html_header_4, html_header_5,
44 html_header_5t): New strings.
45 (toc_footer_start, toc_footer_end): New strings.
46 (HtmlFormatter::html_header): Updated.
47 (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
49 (HtmlFormatter::index_enter): Use `html_index_header'.
50 (HtmlFormatter::index_exit): Print `html_footer'.
51 (HtmlFormatter::toc_enter): Use `html_toc_header'.
52 (HtmlFormatter::toc_exit): Print proper footer.
54 Convert ~ to non-breakable space.
56 * src/tools/docmaker/tohtml.py (make_html_para): Implement it.
57 Update header files accordingly.
59 2008-06-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
61 * builds/unix/configure.raw: Check type `ResourceIndex' explicitly
62 and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5
63 bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
64 ResourceIndex type definition. The macro does not inform the type
66 * src/base/ftmac.c: More parentheses are inserted to clarify the
67 conditionals to disable legacy APIs in `10.5 and later' cases. If
68 HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
70 2008-06-24 Werner Lemberg <wl@gnu.org>
72 * src/truetype/ttinterp. (Ins_SCANTYPE): Don't check rendering mode.
74 * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
75 Draw_Sweep): No-dropout mode is value 2, not value 0.
76 (Draw_Sweep): Really skip dropout handling for no-dropout mode.
78 2008-06-24 Werner Lemberg <wl@gnu.org>
80 * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
81 if it consists of one point only. Based on a patch from Savannah
82 bug #23683 (from John Tytgat).
84 2008-06-22 Werner Lemberg <wl@gnu.org>
86 * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
89 * docs/CHANGES: Updated.
91 2008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
93 * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
94 but LDFLAGS does not, import it to LDFLAGS. The option is used to
95 specify non-default SDK on Mac OS X (e.g., universal binary SDK for
96 Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137
97 recommends to add the option only to CFLAGS, LDFLAGS should include
98 it because libfreetype.la is built with -no-undefined. This fixes a
99 bug reported by Ryan Schmidt in MacPorts,
100 http://trac.macports.org/ticket/15331.
102 2008-06-21 Werner Lemberg <wl@gnu.org>
104 Enable access to the various dropout rules of the B&W rasterizer.
105 Pass dropout rules from the TT bytecode interpreter to the
108 * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
109 FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.
111 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
112 Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
113 OpenType specification.
114 Fix mode 4 computation.
115 (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
117 * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
118 mode to FT_OUTLINE_XXX flags.
120 * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
122 2008-06-19 Werner Lemberg <wl@gnu.org>
124 * src/cff/cffobjs.c (cff_face_init): Compute final
125 `dict->units_per_em' value before assigning it to
126 `cffface->units_per_EM'. Otherwise, CFFs without subfonts are
127 scaled incorrectly if the font matrix is non-standard. This fixes
130 * docs/CHANGES: Updated.
132 2008-06-19 Werner Lemberg <wl@gnu.org>
134 * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
137 2008-06-18 Werner Lemberg <wl@gnu.org>
139 * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
140 Reported by Peter Weilbacher <mozilla@weilbacher.org>.
142 * docs/CHANGES: Updated.
144 2008-06-15 George Williams <gww@silcom.com>
146 * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
147 `valid->extra2' to 1. This is undocumented in the OpenType 1.5
150 2008-06-15 Werner Lemberg <wl@gnu.org>
152 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
153 from clobbering. Patch from Savannah bug report #23556.
155 * docs/CHANGES: Document it.
157 2008-06-10 Werner Lemberg <wl@gnu.org>
159 * autogen.sh: Add option `--install' to libtoolize.
161 2008-06-10 Werner Lemberg <wl@gnu.org>
163 * Version 2.3.6 released.
164 =========================
167 Tag sources with `VER-2-3-6'.
169 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
170 version number to 2.3.6.
172 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
173 builds/win32/visualc/freetype.dsp,
174 builds/win32/visualc/freetype.vcproj,
175 builds/win32/visualce/index.html,
176 builds/win32/visualce/freetype.dsp,
177 builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
179 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
181 * builds/unix/configure.raw (version_info): Set to 9:17:3.
184 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
186 * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
189 * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
190 * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
192 2008-06-10 Werner Lemberg <wl@gnu.org>
194 * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
197 2008-06-09 VaDiM <s_sliva@rambler.ru>
199 Support debugging on WinCE. From Savannah patch #6536; this fixes
202 * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
203 as a replacement for OutputDebugStringA (which WinCE doesn't have).
205 (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
206 environment variables.
208 2008-06-09 Werner Lemberg <wl@gnu.org>
210 * README.CVS: Updated.
212 * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
213 for newer versions of autoconf and friends.
215 2008-06-08 Werner Lemberg <wl@gnu.org>
217 * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
218 `private_len' unsigned.
220 * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
222 (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
225 * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
228 * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
233 * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
236 * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
240 * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
243 2008-06-06 Werner Lemberg <wl@gnu.org>
245 * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
246 correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
248 2008-06-03 Werner Lemberg <wl@gnu.org>
250 * include/freetype/ftcache.h (FTC_FaceID): Change type back to
251 FT_Pointer. Reported by Ian Britten <britten@caris.com>.
253 2008-06-02 Werner Lemberg <wl@gnu.org>
255 Emit header info for defined FreeType objects in reference.
257 * src/tools/docmaker/content.py (re_header_macro): New regexp.
258 (ContentProcessor::__init__): Initialize new dictionary `headers'.
259 (DocBlock::__init__): Collect macro header definitions.
261 * src/tools/docmaker/tohtml.py (header_location_header,
262 header_location_footer): New strings.
263 (HtmlFormatter::__init__): Pass `headers' dictionary.
264 (HtmlFormatter::print_html_field): Don't emit paragraph tags.
265 (HtmlFormatter::print_html_field_list): Emit empty paragraph.
266 (HtmlFormatter::block_enter): Emit header info.
268 2008-06-01 Werner Lemberg <wl@gnu.org>
270 * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
271 FT_INCREMENTAL_H): Added.
273 2008-05-28 Werner Lemberg <wl@gnu.org>
275 * src/tools/docmaker/sources.py (SourceBlock::__init__): While
276 looking for markup tags, return immediately as soon a single one is
279 2008-05-28 Werner Lemberg <wl@gnu.org>
281 * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
282 original, unscaled input values. Confirmed by Greg Hitchcock from
285 2008-05-27 Werner Lemberg <wl@gnu.org>
287 * src/tools/docmaker/tohtml.py (block_footer_start,
288 block_footer_middle): Beautify output.
290 2008-05-25 Werner Lemberg <wl@gnu.org>
292 * src/raster/ftraster.c (fc_black_render): Return 0 when we are
293 trying to render into a zero-width/height bitmap, not an error code.
295 * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
296 of the graphics state for subglyphs to...
297 (TT_Hint_Glyph): This function.
298 Hinting instructions for a composite glyph apparently refer to the
299 just hinted subglyphs, not the unhinted, unscaled outline. This
300 seems to fix Savannah bugs #20973 and (at least partially) #23310.
302 2008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
304 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
305 `aface' is returned by FT_New_Face_From_FOND(). The patch was
306 proposed by an anonymous reporter of Savannah bug #23204.
308 2008-05-18 Werner Lemberg <wl@gnu.org>
310 * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
311 correction for pixel boundary. Without this patch, the effect can
312 be cumulative under certain circumstances, making glyphs taller and
313 taller after each call. This fixes Savannah bug #19976.
315 2008-05-18 Werner Lemberg <wl@gnu.org>
317 * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
318 This fixes Savannah bug #23280.
320 * docs/CHANGES: Updated.
322 2008-05-18 David Turner <david@freetype.org>
324 * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
325 ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
326 ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
327 declarations non-global.
329 * src/type1/t1load.c: Add missing comment.
331 2008-05-17 Sam Hocevar <samh>
333 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
334 glyphs correctly. Patch from Savannah bug #23277.
336 2008-05-16 Werner Lemberg <wl@gnu.org>
338 * docs/CHANGES: Updated.
340 2008-05-16 Sergey Tolstov <stolstov@esri.com>
342 Improve support for WGL4 encoded fonts.
344 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
345 (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
346 ft_wgl_extra_glyph_name_offsets): New arrays.
347 (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
348 (ps_unicodes_init): Use them to add additional Unicode mappings.
350 2008-05-15 Werner Lemberg <wl@gnu.org>
352 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
353 <op_closepath>: `closepath' without a path is a no-op, not an error
354 (cf. the PS reference manual).
356 Reported by Martin McBride.
358 2008-05-15 Werner Lemberg <wl@gnu.org>
360 * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
362 2008-05-15 Werner Lemberg <wl@gnu.org>
364 * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
365 which contains a single but empty entry. This is technically
366 invalid (since it must end with `return'), but...
368 Reported by Martin McBride.
370 2008-05-14 Werner Lemberg <wl@gnu.org>
372 Finish fix of scaling bug of CID-keyed CFF subfonts.
374 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
375 (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
378 * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to
379 provide global hinting data for both the top-font and all subfonts
380 (with proper scaling).
382 * src/cff/cffobjs.c (cff_make_private_dict): New function, using
383 code from `cff_size_init'.
384 (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
385 Use CFF_Internal and handle subfonts.
386 (cff_face_init): Handle top-dict and subfont matrices correctly;
387 apply some heuristic in case of unlikely matrix concatenation
388 results. This has been discussed with people from Adobe (thanks
389 goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
392 * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
394 * src/cff/cffgload.c (cff_builder_init): Updated.
395 (cff_decoder_prepare): Handle hints globals for subfonts.
397 (cff_slot_load): Handling scaling of subfonts properly.
399 * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
400 (cff_parse_font_matrix): Use it.
402 * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
405 * docs/CHANGES: Document it.
407 2008-05-13 Werner Lemberg <wl@gnu.org>
409 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
410 Handle case `face_index < 0'.
411 * docs/CHANGES: Document it.
413 2008-05-04 Werner Lemberg <wl@gnu.org>
415 First steps to fix the scaling bug of CID-keyed CFF subfonts,
416 reported by Ding Li on 2008/03/28 on freetype-devel.
418 * src/base/cff/cffparse.c (power_tens): New array.
419 (cff_parse_real): Rewritten to introduce a fourth parameter which
420 returns the `scaling' of the real number so that we have no
421 precision loss. This is not used yet.
423 (cff_parse_fixed_thousand): Replace with...
424 (cff_parse_fixed_scaled): This function. Update all callers.
426 2008-05-03 Werner Lemberg <wl@gnu.org>
428 * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
429 transformation since it recursively calls FT_Load_Glyph. This fixes
432 2008-04-26 Werner Lemberg <wl@gnu.org>
434 * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
435 and `scale_y' as obsolete since they aren't used.
436 * src/psaux/psobjs.c (t1_builder_init): Updated.
438 * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
439 obsolete since they aren't used.
440 * src/cff/cffgload.c (cff_builder_init): Updated.
442 2008-04-14 Werner Lemberg <wl@gnu.org>
444 * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
445 `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'. From Savannah
448 2008-04-13 Werner Lemberg <wl@gnu.org>
450 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
451 integer part is zero.
453 2008-04-01 Werner Lemberg <wl@gnu.org>
455 Fix compilation with g++ 4.1 (with both `single' and `multi'
458 * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
459 which is crossed by a `goto'.
461 * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
463 2008-03-31 Werner Lemberg <wl@gnu.org>
465 Fix support for subsetted CID-keyed CFFs.
467 * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
468 FT_IS_CID_KEYED): New macros.
470 * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
471 maximum CID value in CID-keyed CFFs.
472 Handle FT_FACE_FLAG_CID_KEYED flag.
474 * docs/CHANGES: Document it.
477 Fix CFF font matrix calculation and improve precision.
479 * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
481 (cff_parse_font_matrix): Simplify computation of `units_per_em';
482 this prevents overflow also.
485 Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
487 * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
488 (cid_get_ros): New function.
489 (cid_service_cid_info): New service structure.
490 (cid_services): Register it.
492 2008-03-23 Werner Lemberg <wl@gnu.org>
494 Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
496 * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
497 (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
499 2008-03-21 Laurence Darby <ldarby>
501 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from
504 2008-03-13 Derek Clegg <dclegg@apple.com>
506 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
507 Patch from Savannah bug #22541.
509 2008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp>
511 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
512 tt_cmap14_find_variant): Return correct value.
513 (tt_cmap14_variant_chars): Fix check for `di'.
515 2008-02-29 Wermer Lemberg <wl@gnu.org>
517 * docs/CHANGES: Updated.
521 Add build support for symbian platform. From Savannah bug #22440.
523 * builds/symbian/*: New files.
525 2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
527 * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
528 synthesis. For any face of a specified FOND, always the name for
529 the first face was used. Except of a FOND that refers multiple
530 Type1 font files, wrong synthesized font names are not used at all,
531 so this is an invisible bug. A few limit checks are added too.
533 * builds/mac/ftmac.c: Ditto.
535 2008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
537 * builds/unix/configure.raw: Split compiler option to link Carbon
538 frameworks to one option for CoreServices framework and another
539 option for ApplicationServices framework. The split options can be
540 managed by GNU libtool to avoid unrequired duplication when FreeType
541 is linked with other applications. Suggested by Daniel Macks,
544 2008-02-18 Victor Stinner <victor.stinner@haypocalc.com>
546 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix
547 from Savannah bug #22356.
549 2008-02-17 Jonathan Blow <jon@number-none.com>
551 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
552 Check for valid callback pointers.
554 2008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
556 * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
557 handle by its value instead of ResError(), fix provided by Deron
558 Kazmaier. According to the Resource Manager Reference,
559 GetResource(), Get1Resource(), GetNamedResource(),
560 Get1NamedResource() and RGetResource() set noErr but return NULL
561 handle when they can not find the requested resource. These
562 functions never return undefined values, so it is sufficient to
563 check if the handle is not NULL.
565 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
567 2008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
569 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
570 inclusion styles. Now it always includes src/base/ftmac.c;
571 builds/mac/ftmac.c is never included in any configuration.
573 * builds/unix/configure.raw: Print warning if configure is executed
574 with options to specify Carbon functionalities explicitly.
576 * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
577 included automatically and manual replacement is required.
579 2008-02-11 Werner Lemberg <wl@gnu.org>
581 * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
582 (dos_setup), builds/freetype.mk (clean_project_dos,
583 distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan
586 2008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com>
588 * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
589 mention intra-pixel algorithm.
591 * include/freetype/freetype.h (FT_Render_Mode): Mention that
592 FT_Library_SetLcdFilter can be used to reduce fringes.
594 2008-01-16 Werner Lemberg <wl@gnu.org>
596 * src/raster/ftraster.c (ft_black_render): Check `outline' before
597 using it. Reported by Allan Yang.
599 2008-01-12 Werner Lemberg <wl@gnu.org>
601 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
603 2008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com>
605 * src/raster/ftraster.c (ft_black_init)
606 [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
608 2008-01-10 Werner Lemberg <wl@gnu.org>
610 * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
611 where the number of contours in a simple glyph is zero (and which
612 does contain an entry in the `glyf' table). This fixes Savannah bug
615 2008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
617 Formatting suggested by Sean McBride.
619 * builds/mac/ftmac.c: Formatting (tab expanded).
620 * src/autofit/afindic.c: Ditto.
621 * src/base/ftcid.c: Ditto.
622 * src/base/ftmac.c: Ditto.
624 2007-12-30 Werner Lemberg <wl@gnu.org>
626 * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
629 2007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
631 Improvement of POSIX resource-fork accessor to load unsorted
632 references in a resource. In HelveLTMM (resource-fork PostScript
633 Type1 font bundled with Mac OS X since 10.3.x), the appearance order
634 of PFB chunks is not sorted; sorting the chunks by reference IDs is
637 * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
638 type to store a pair of reference ID and offset to the chunk.
640 * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
641 sort FT_RFork_Ref by their reference IDs.
643 (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
644 sorted by reference ID.
646 2007-12-14 Werner Lemberg <wl@gnu.org>
648 * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
649 division too early; otherwise the most significant digit(s) of the
650 final result are lost as the value is truncated to an integer. This
651 fixes Savannah bug #21794 (where the patch has been posted too).
653 2007-12-06 Fix <4d876b82@gmail.com>
655 Pass options from one configure script to another as-is (not
656 expanded). This is needed for options like
657 --includedir='${prefix}/include'.
659 * builds/unix/detect.mk, configure: Prevent argument expansion in
660 call to the (real) `configure' script.
662 2007-12-06 Werner Lemberg <wl@gnu.org>
664 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
665 TT_USE_BYTECODE_INTERPRETER isn't defined.
667 2007-12-06 Werner Lemberg <wl@gnu.org>
669 There exist CFFs which contain opcodes for the Type 1 operators
670 `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
671 However, it doesn't harm to support them.
673 * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
675 (cff_argument_counts): Ditto.
677 (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
678 and 13 (hsbw) which are invalid in Type 2 charstrings.
680 2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
682 * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
683 support new pathname syntax `..namedfork/rsrc' to access a resource
684 fork on Mac OS X. The legacy syntax `/rsrc' does not work on
686 (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
687 buffer size to store a pathname.
688 * include/freetype/internal/ftrfork.h: Increment the number of
689 resource fork guessing rule.
691 2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
693 * builds/unix/configure.raw: Improve the compile tests to search
695 * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
696 proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
698 2007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
700 The documents and comments for Mac OS X are improved by Sean
703 * src/base/ftmac.c: Fix a comment.
704 * include/freetype/ftmac.h: Ditto.
705 * docs/INSTALL.MAC: Improve English and add comment on lowest
706 system version specified by MACOSX_DEPLOYMENT_TARGET.
708 2007-12-04 Werner Lemberg <wl@gnu.org>
710 * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
711 concatenate error codes.
712 * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
714 2007-12-04 Graham Asher <graham.asher@btinternet.com>
716 * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
717 concatenate error codes.
719 2007-12-04 Sean McBride <sean@rogue-research.com>
721 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
724 2007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
726 Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is
727 not working since 2.3.5. In FT_Open_New(), if FT_New_Stream()
728 cannot mmap() the specified file and cannot seek to head of the
729 specified file, it returns NULL stream and FT_Open_New() returns the
730 error immediately. On MacOS, most legacy MacOS fonts fall into such
731 a scenario because their data forks are zero-sized and cannot be
732 sought. To proceed to guessing of resource fork fonts, the
733 functions for legacy MacOS font must properly handle the NULL stream
734 returned by FT_New_Stream().
736 * src/base/ftobjs.c (IsMacBinary): Return error
737 FT_Err_Invalid_Stream_Operation immediately when NULL stream is
739 (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
740 to fallback. Originally, legacy MacOS font is tested in the cases
741 of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
742 or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
743 .dfont header is combined). Now the case of
744 FT_Err_Cannot_Open_Stream is included.
746 * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
747 skip FT_Stream_Seek(), which seeks to the head of stream, and
748 proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek()
749 for a NULL stream causes a Bus error on Mac OS X.
750 (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
751 immediately if passed stream is NULL.
752 (raccess_guess_apple_single): Ditto.
754 2007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
756 Fix for Carbon incompatibilities since Mac OS X 10.5,
757 proposed by Sean McBride.
759 * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
761 * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
762 FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling
763 Carbon functions from a forked process is classified as unsafe
764 by Apple. All Carbon-dependent functions should be deprecated.
766 * src/base/ftmac.c: Use essential header files <Carbon/Carbon.h>
767 and <ApplicationServices/ApplicationServices.h> instead of
768 all-in-one header file <CoreServices/CoreServices.h>.
770 Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
771 genuine macro PATH_MAX.
773 Add fallback macro for kATSOptionFlagsUnRestrictedScope which
774 is not found in Mac OS X 10.0.
776 Multi-character constants ('POST', 'sfnt' etc) are replaced by
777 64bit constants calculated by FT_MAKE_TAG() macro.
779 For the index in the segment of resource fork, new portable
780 type ResourceIndex is introduced for better compatibility.
781 This type is since Mac OS X 10.5, so it is defined as short
782 when built on older platforms.
784 (FT_ATSFontGetFileReference): If build target is only the systems
785 10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
787 (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
788 and newer or 64bit platform, because legacy type FSSpec type is
791 (FT_New_Face_From_FSSpec): Ditto.
793 2007-11-01 Werner Lemberg <wl@gnu.org>
795 * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This
796 fixes Savannah bug #21485.
798 2007-10-29 Daniel Svoboda <dasvo@planeta@cz>
800 * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
801 can handle the font at all, then check `face_index'. Otherwise, the
802 driver might return the wrong error code. This fixes Savannah bug
805 2007-10-21 Werner Lemberg <wl@gnu.org>
807 * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
808 support for bit 8 of the `fsSelection' field in the `OS/2' table.
809 MS is already using this; hopefully, this becomes part of OpenType
811 Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
814 2007-10-20 Werner Lemberg <wl@gnu.org>
816 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
817 Add `td.left' element to CSS.
818 (toc_section_enter): Use it.
820 2007-10-18 David Turner <david@freetype.org>
822 * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
823 functions related to cmap type 14 support to the
824 `FT_Object_ActionName' scheme:
826 FT_Get_Char_Variant_index -> FT_Face_GetCharVariantIndex
827 FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
828 FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors
829 FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar
830 FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant
832 Update documentation accordingly.
834 * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
835 Make the code a little more consistent with FreeType coding
836 conventions and modify the cmap14 functions that returned a newly
837 allocated array to use a persistent vector from the TT_CMap14 object
840 (TT_CMap14Rec): Provide array and auxiliary data for result.
841 (tt_cmap14_done, tt_cmap14_ensure): New functions.
843 (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
844 tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
845 tt_cmap14_char_var_index, tt_cmap14_variants,
846 tt_cmap14_char_variants, tt_cmap14_def_char_count,
847 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
848 tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
850 2007-10-15 George Williams <gww@silcom.com>
852 Add support for cmap type 14.
854 * devel/ftoption.h, include/freetype/config/ftoption.h
855 (TT_CONFIG_CMAP_FORMAT_14): New macro.
857 * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
858 FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
859 FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
860 support function prototypes.
861 (FT_CMap_ClassRec): Add them.
864 * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
867 * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
868 FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
869 FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
872 * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
874 (FT_Set_Charmap): Disallow cmaps of type 14.
875 (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
876 FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
877 FT_Get_Chars_Of_Variant): New API functions.
879 * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
881 (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
882 tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
883 tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
884 tt_cmap14_find_variant, tt_cmap14_char_var_index,
885 tt_cmap14_char_var_isdefault, tt_cmap14_variants,
886 tt_cmap14_char_variants, tt_cmap14_def_char_count,
887 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
888 tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
889 structures for cmap 14 support.
890 (tt_cmap_classes): Register tt_cmap14_class_rec.
891 (tt_face_build_cmaps): One more error message.
893 * docs/CHANGES: Mention cmap 14 support.
895 2007-10-01 Werner Lemberg <wl@gnu.org>
897 * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
898 charmap fails, do the loop again while searching a UCS-2 charmap.
899 This favours MS charmaps over Apple ones.
901 2007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
903 * src/base/ftmac.c: Introduction of abstract `short' data types,
904 ResFileRefNum and ResID. These types were introduced for Copland,
905 then backported to MPW. The variables exchanged with FileManager
906 QuickDraw frameworks are redefined by these data types. Patch was
907 proposed by Sean McBride.
908 * builds/mac/ftmac.c: Ditto.
910 2007-08-18 Werner Lemberg <wl@gnu.org>
912 * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs. Found
913 by Imran Yousaf. Fixes Savannah bug #20773.
915 (otv_Lookup_validate): Correct handling of LookupType. Found by
916 Imran Yousaf. Fixes Savannah bug #20782.
918 2007-08-17 George Williams <gww@silcom.com>
920 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
923 2007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
925 * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
926 ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
929 2007-08-11 George Williams <gww@silcom.com>
931 * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
932 (otv_Coverage_validate): Add fourth argument to pass an expected
933 count value. Update all users.
935 (otv_ClassDef_validate): Check `StartGlyph'.
937 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
940 * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
942 (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
945 2007-08-08 Werner Lemberg <wl@gnu.org>
947 * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
948 src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
949 src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
950 appropriate. Reported by George.
952 * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
954 * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
956 * docs/CHANGES: Updated.
958 2007-08-08 George Williams <gww@silcom.com>
960 Add `MATH' validating support to otvalid module.
962 * include/freetype/tttags.h (TTAG_MATH): New macro.
963 * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
964 (FT_VALIDATE_OT): Updated.
966 * src/otvalid/otmath.c: New file.
968 * src/otvalid/otvalid.c: Include otvmath.c.
969 * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
971 2007-08-04 Werner Lemberg <wl@gnu.org>
973 * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
974 Fixes Savannah bug #20686.
976 2007-08-03 Werner Lemberg <wl@gnu.org>
978 * src/psnames/psmodule.c: Fix usage of
979 FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher.
981 2007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
983 * src/base/ftmac.c (open_face_from_buffer): The argument
984 `driver_name' is typed as `const char*' to match with the
985 callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
986 This is same with open_face_from_buffer in src/base/ftobjs.c.
987 Found and fixed by Sean McBride.
989 2007-07-28 Werner Lemberg <wl@gnu.org>
991 * src/raster/ftraster.c (count_table): Make it conditional.
992 * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
993 a preprocessor statement.
995 2007-07-27 Werner Lemberg <wl@gnu.org>
997 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
998 first usage. From Savannah patch #6115.
1000 2007-07-16 Werner Lemberg <wl@gnu.org>
1002 * docs/CHANGES: Updated.
1004 2007-07-16 Derek Clegg <dclegg@apple.com>
1006 Add new service for getting the ROS from a CID font.
1008 * include/freetype/config/ftheader.h (FT_CID_H): New macro.
1009 * include/freetype/ftcid.h: New file.
1011 * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
1012 * include/freetype/internal/services/svcid.h: New file.
1014 * src/base/ftcid.c: New file.
1016 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
1017 (cff_get_ros): New function.
1018 (cff_service_cid_info): New service structure.
1019 (cff_services): Register it.
1021 * src/cff/cffload.c (cff_font_done): Free registry and ordering.
1023 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
1025 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
1027 2007-07-11 Derek Clegg <dclegg@apple.com>
1029 Add support for postscript name service to CFF driver.
1031 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
1032 (cff_get_ps_name): New function.
1033 (cff_service_ps_name): New service structure.
1034 (cff_services): Register it.
1036 2007-07-07 Werner Lemberg <wl@gnu.org>
1038 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
1039 `target'. Reported by Sean McBride.
1041 2007-07-06 Werner Lemberg <wl@gnu.org>
1043 * src/pfr/pfrcmap.c: Include pfrerror.h.
1045 * src/autofit/afindic.c: Add some external declarations to pacify
1046 `make multi' compilation.
1048 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
1050 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
1051 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
1052 src/autofit/aflatin.c (af_latin_hints_compute_edges),
1053 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
1054 (tt_face_get_metrics), src/base/ftobjs.c (open_face)
1055 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
1057 * docs/release: Mention test compilation targets.
1059 2007-07-04 Werner Lemberg <wl@gnu.org>
1061 * docs/PROBLEMS: Mention that some PS based fonts can't be
1062 handled correctly by FreeType.
1064 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
1065 recursion depth of 1. This was the maximum value in TrueType 1.0,
1066 and some older fonts don't set this field correctly.
1068 * src/gxvalid/gxvmort1.c
1069 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
1071 2007-07-03 Werner Lemberg <wl@gnu.org>
1073 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
1074 `round' to pacify compiler.
1076 2007-07-02 Werner Lemberg <wl@gnu.org>
1079 * Version 2.3.5 released.
1080 =========================
1083 Tag sources with `VER-2-3-5'.
1085 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1086 version number to 2.3.5.
1088 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1089 builds/win32/visualc/freetype.dsp,
1090 builds/win32/visualc/freetype.vcproj,
1091 builds/win32/visualce/index.html,
1092 builds/win32/visualce/freetype.dsp,
1093 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
1095 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
1097 * builds/unix/configure.raw (version_info): Set to 9:16:3.
1099 2007-07-01 David Turner <david@freetype.org>
1101 * include/freetype/freetype.h, src/base/ftpatent.c
1102 (FT_Face_SetUnpatentedHinting): New function to dynamically change
1103 the setting after a face is created.
1105 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
1106 that created distortions in the bytecode interpreter results.
1108 2007-06-30 David Turner <david@freetype.org>
1110 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
1113 * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
1114 infinite loop in the case of degenerate fonts.
1116 2007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com>
1118 Add autofit module for Indic scripts. This currently just reuses
1119 the CJK-specific functions.
1121 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
1123 * devel/ftoption.h: Synchronize with
1124 include/freetype/config/ftoption.h.
1126 * src/autofit/afindic.c, src/autofit/afindic.h: New files.
1128 * src/autofit/afglobal.c, src/autofit/aftypes.h,
1129 src/autofit/autofit.c: Updated.
1131 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
1132 (AUTOF_DRV_SRC): Updated.
1134 2007-06-23 David Turner <david@freetype.org>
1136 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
1137 2007-06-16 that prevented the TrueType module from loading most
1140 2007-06-20 Werner Lemberg <wl@gnu.org>
1142 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
1145 2007-06-19 Werner Lemberg <wl@gnu.org>
1147 * src/type1/t1load.c (parse_encoding): Handle one more error.
1149 2007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com>
1151 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
1152 FNT_Err_Invalid_File_Format if file format was recognized but
1153 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
1154 Add verbose debug logs to make it easier to debug failing load
1156 (FNT_Face_Init): A single FNT font can't contain more than 1 face,
1157 so return an error if requested face index is > 0.
1158 Do not do further attempt to load fonts if a previous attempt has
1159 failed but returned error FNT_Err_Invalid_File_Format, i.e., the
1160 file format has been recognized but no fonts found in the file.
1162 2007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1164 * src/base/ftmac.c: Apply patches proposed by Sean McBride.
1165 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
1166 the compiler warnings against unused arguments.
1167 (FT_ATSFontGetFileReference): Ditto.
1168 (FT_GetFile_From_Mac_ATS_Name): Ditto.
1169 (FT_New_Face_From_FSSpec): Ditto.
1170 (lookup_lwfn_by_fond): Fix wrong comment.
1171 Replace `const StringPtr' by more appropriate type
1173 FSRefMakePathPath always returns UTF8 POSIX pathname in
1174 Mach-O, thus HFS pathname support is dropped.
1175 (count_faces): Remove HLock and HUnlock which is not
1176 required on Mac OS X anymore.
1177 (FT_New_Face_From_SFNT): Ditto.
1178 (FT_New_Face_From_FOND): Ditto.
1179 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
1180 except of HFS pathname support and HLock/HUnlock.
1181 They are required on classic CFM environment.
1183 2007-06-18 Werner Lemberg <wl@gnu.org>
1185 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
1187 (ps_parser_to_bytes): Fix error message.
1189 * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
1190 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
1191 Don't allow mixed binary and hex strings.
1192 Handle string_size == 0 and string_buf == 0.
1193 (t42_parse_encoding): Handle one more error.
1195 2007-06-18 Werner Lemberg <wl@gnu.org>
1197 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
1199 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
1201 (ps_parser_load_field_table): Use `fields->array_max' instead of
1202 T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
1204 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
1207 2007-06-17 Werner Lemberg <wl@gnu.org>
1209 * src/tools/ftrandom.c (font_size): New global variable.
1211 (main): Handle new option `--size' to set `font_size'.
1214 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
1216 (FNT_Load_Glyph): Protect against invalid bitmap width.
1218 2007-06-16 David Turner <david@freetype.org>
1220 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
1221 Prevent integer overflows when rendering very large outlines.
1223 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
1224 well-formedness of the contours array when loading a glyph.
1226 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
1228 (Ins_IP): Check argument ranges to reject bogus operations properly.
1229 (IUP_WorkerRec): Add `max_points' member.
1230 (_iup_worker_interpolate): Check argument ranges.
1231 (Ins_IUP): Ignore empty outlines.
1233 2007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com>
1235 * src/winfonts/winfnt.h: Add necessary structures for PE resource
1237 (WinPE32_HeaderRec): New structure.
1238 (WinPE32_SectionRec): New structure.
1239 (WinPE_RsrcDirRec): New structure.
1240 (WinPE_RsrcDirEntryRec): New structure.
1241 (WinPE_RsrcDataEntryRec): New structure.
1242 (FNT_FontRec): Remove unused `size_shift' field.
1244 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
1245 loading bitmap .fon files in PE format.
1247 2007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com>
1249 * builds/win32/ftdebug.c: Unify debug level handling with other
1252 2007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com>
1254 * builds/win32/ftdebug.c (FT_Message): Send debug output to the
1255 console as well as to the debugger.
1257 2007-06-14 Werner Lemberg <wl@gnu.org>
1259 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
1260 cover all ranges which could possibly be handled by the aflatin
1261 module (since the default fallback for unknown ranges is now the
1262 afcjk module). It might be necessary to fine-tune this further by
1263 splitting off modules for Greek, Cyrillic, or other blocks.
1265 2007-06-11 David Turner <david@freetype.org>
1267 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
1268 incorrect segment linking computation. This was the root cause of
1269 Savannah bug #19565.
1272 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
1273 to improve the Latin auto-hinter. Note that the new code is
1274 disabled by default since it is not stabilized yet.
1276 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
1277 (disabled currently).
1279 * src/autofit/afhints.c: Remove dead code.
1280 (af_axis_hints_new_edge): Add argument to handle segment directions.
1281 (af_edge_flags_to_string): New function.
1282 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
1284 (af_glyph_hints_reload): Add argument to handle inflections.
1286 (af_direction_compute): Fine tuning.
1287 (af_glyph_hints_align_edge_points): Fix logic.
1288 (af_glyph_hints_align_strong_points): Do linear search for small
1290 (af_glyph_hints_align_weak_points): Skip any touched neighbors.
1291 (af_iup_shift): Handle zero `delta'.
1293 * src/autofit/afhints.h: Updated.
1294 (AF_SORT_SEGMENTS): New macro (disabled).
1295 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
1297 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
1298 argument to pass option flags for handling scripts.
1299 * src/autofit/afglobal.h: Updated.
1301 * src/autofit/afcjk.c: Updated.
1302 * src/autofit/aflatin.c: Updated.
1303 (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
1305 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
1306 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
1307 Don't set `edge->dir'
1308 (af_latin_hint_edges): Add more logging.
1310 * src/autofit/afloader.c: Updated.
1312 2007-06-11 Werner Lemberg <wl@gnu.org>
1314 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
1316 2007-06-10 David Turner <david@freetype.org>
1318 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
1319 the TrueType glyph loader.
1321 * include/freetype/config/ftoption.h: Clarify documentation
1322 regarding unpatented hinting.
1325 Add new `FT_Face_CheckTrueTypePatents' API.
1327 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
1330 * include/freetype/internal/services/svttglyf.h,
1331 src/base/ftpatent.c: New files.
1333 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
1336 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
1338 (tt_service_truetype_glyf): New service structure.
1339 (tt_services): Register it.
1341 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
1344 2007-06-08 Werner Lemberg <wl@gnu.org>
1346 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
1347 Fonts without a cmap must be handled correctly by FreeType (anything
1348 else would be a bug).
1351 * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
1352 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
1354 2007-06-07 Werner Lemberg <wl@gnu.org>
1356 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
1357 tt_sbit_decoder_load_image): Protect against integer overflows.
1360 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
1361 for `x_control' and `y_control'.
1363 2007-06-06 Werner Lemberg <wl@gnu.org>
1365 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
1368 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
1372 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
1376 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
1379 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
1382 (cff_slot_load): Updated.
1383 * src/cff/cffgload.h: Updated.
1385 2007-06-05 Werner Lemberg <wl@gnu.org>
1387 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
1388 (pfr_glyph_load_simple): Convert assertion into normal FreeType
1391 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
1392 Convert assertion into normal FreeType error.
1394 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
1397 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
1400 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
1401 in case of parsing error.
1402 (ps_parser_load_field): Updated.
1404 * src/type1/t1load.c (parse_font_matrix): Updated.
1406 2007-06-04 Werner Lemberg <wl@gnu.org>
1408 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
1410 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
1412 2007-06-03 Werner Lemberg <wl@gnu.org>
1414 * src/tools/ftrandom/*: Add the `ftrandom' test program written by
1415 George Williams (with some modifications).
1417 2007-06-03 Werner Lemberg <wl@gnu.org>
1419 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
1420 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
1421 face == NULL. Suggested by Graham Asher.
1423 2007-06-03 Ismail Dönmez <ismail@pardus.org.tr>
1425 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
1427 2007-06-02 Werner Lemberg <wl@gnu.org>
1429 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
1430 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
1432 * src/bdf/bdflib.c (bdf_load_font): Use them.
1434 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
1436 2007-06-01 Werner Lemberg <wl@gnu.org>
1438 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
1439 (FTC_CMapCache_Lookup): Remove unused code.
1441 2007-06-01 Sean McBride <sean@rogue-research.com>
1443 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
1446 2007-06-01 Werner Lemberg <wl@gnu.org>
1448 * src/cid/cidparse.c (cid_parser_new): Don't continue second search
1449 pass for `StartData' if an error has occurred.
1450 Exit properly if no `StartData' has been seen at all.
1452 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
1453 LONG_MAX to avoid compiler warning. Suggested by Sean McBride.
1455 2007-05-30 Werner Lemberg <wl@gnu.org>
1457 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
1458 against too small binary data strings.
1460 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
1462 2007-05-28 David Turner <david@freetype.org>
1464 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
1465 transformation. This significantly reduces the loading time of CFF
1468 * docs/CHANGES: Updated.
1470 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
1471 hinting script to CJK, since it works well with more scripts than
1472 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
1475 2007-05-25 Werner Lemberg <wl@gnu.org>
1477 * docs/CHANGES: Updated.
1479 2007-05-24 Werner Lemberg <wl@gnu.org>
1481 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
1482 into TT_USE_BYTECODE_INTERPRETER preprocessor block.
1484 2007-05-24 Graham Asher <graham.asher@btinternet.com>
1486 * src/truetype/ttobjs.c (tt_size_ready_bytecode)
1487 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused.
1489 2007-05-22 David Turner <david@freetype.org>
1491 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
1492 avoid crashes in case the bytecode interpreter is not used.
1495 Avoid heap blowup with very large .Z font files. This fixes
1496 Savannah bug #19910.
1498 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
1499 `in_limit', `pad', `pad_bits', and `in_buff' members.
1500 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
1501 `buf_total' members.
1503 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes
1505 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
1507 2007-05-20 Ismail Dönmez <ismail@pardus.org.tr>
1509 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
1510 (ps_dimension_set_mask_bits): Remove `const'.
1512 2007-05-19 Werner Lemberg <wl@gnu.org>
1514 * src/sfnt/ttmtx.c (tt_face_get_metrics)
1515 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
1517 2007-05-19 Derek Clegg <dclegg@apple.com>
1519 Savannah patch #5929.
1521 * include/freetype/tttables.h, src/base/ftobjcs.c
1522 (FT_Get_CMap_Format): New function.
1524 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
1526 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
1529 2007-05-19 Werner Lemberg <wl@gnu.org>
1531 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
1532 before handling subglyphs so that it can be reinitialized each time.
1533 This fixes Savannah bug #19859.
1535 2007-05-16 Werner Lemberg <wl@gnu.org>
1537 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
1538 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
1539 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
1540 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
1541 tt_face_get_metrics): Fix type-punning issues.
1543 2007-05-15 David Turner <david@freetype.org>
1545 * include/freetype/config/ftstdlib.h,
1546 include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
1547 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
1548 instead on relying on the locale-dependent functions provided by
1551 2007-05-15 Graham Asher <graham.asher@btinternet.com>
1553 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
1555 * src/autofit/afloader.c (af_loader_load_g): Ditto.
1557 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
1558 (open_face_from_buffer): Initialize `stream'.
1559 (FT_Request_Metrics): Remove unused variable.
1560 Remove redundant `break' statements.
1561 (FT_Get_Track_Kerning): Remove unused variable.
1563 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
1564 afm_parse_kern_data): Remove redundant
1566 (afm_parser_parse): Ditto.
1567 Don't use uninitialized variables.
1569 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
1570 Use `|' operator instead of `^' to set it.
1573 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
1574 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
1576 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
1578 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
1579 (TT_Load_Glyph): Remove unused variable.
1581 2007-05-13 Derek Clegg <dclegg@apple.com>
1583 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
1584 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928.
1586 2007-05-11 David Turner <david@freetype.org>
1588 * src/cache/ftbasic.c, include/freetype/ftcache.h
1589 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
1590 functions that allow us to look up glyphs using an FTC_Scaler object
1591 to specify the size, making it possible to use fractional pixel
1594 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
1595 `size->cvt_ready'. Reported by Boris Letocha.
1597 2007-05-09 Graham Asher <graham.asher@btinternet.com>
1599 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
1600 (af_latin_metrics_scale_dim): Fix compiler warnings.
1602 2007-05-06 Werner Lemberg <wl@gnu.org>
1604 * builds/win32/visualce/freetype.sln: Removed, as requested by
1607 2007-05-04 Vincent RICHOMME <richom.v@free.fr>
1609 * builds/win32/visualce/*: Add Visual C++ project files for Pocket
1612 * docs/CHANGES: Document them.
1614 2007-05-04 <harry@kdevelop.org>
1616 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
1617 mmap (which might happen on some RTOS). From Savannah patch #5909.
1619 2007-05-03 Werner Lemberg <wl@gnu.org>
1621 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
1622 * include/freetype/freetype.h (FT_Set_Char_Size): Update
1625 2007-04-28 Victor Stinner <victor.stinner@inl.fr>
1627 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
1630 2007-04-27 Werner Lemberg <wl@gnu.org>
1632 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
1633 number of points in contours. Problem reported by Victor Stinner
1634 <victor.stinner@haypocalc.com>.
1635 (TT_Process_Simple_Glyph): Synchronize variable types.
1637 2007-04-26 Werner Lemberg <wl@gnu.org>
1639 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
1640 zero in case of error. This fixes Savannah bug #19689.
1642 2007-04-25 Boris Letocha <b.letocha@cz.gmc.net>
1644 * src/truetype/ttobjs.c: Fix a typo that created a speed regression
1645 in the TrueType bytecode loader.
1647 2007-04-10 Martin Horak <horakm@centrum.cz>
1649 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
1650 Ignore `hhea' table. This fixes Savannah bug #19261.
1652 2007-04-09 Werner Lemberg <wl@gnu.org>
1655 * Version 2.3.4 released.
1656 =========================
1659 Tag sources with `VER-2-3-4'.
1661 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1662 version number to 2.3.4.
1664 * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1665 builds/win32/visualc/freetype.dsp,
1666 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
1668 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
1670 * builds/unix/configure.raw (version_info): Set to 9:15:3.
1672 2007-04-09 Martin Horak <horakm@centrum.cz>
1674 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
1675 memory stream to avoid a crash with the incremental memory
1676 interface (Savannah bug #19260).
1678 2007-04-06 David Turner <david@freetype.org>
1680 * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
1681 (Savannah bug #19536).
1683 2007-04-04 Werner Lemberg <wl@gnu.org>
1686 * Version 2.3.3 released.
1687 =========================
1690 Tag sources with `VER-2-3-3'.
1692 * docs/CHANGES: Mention CVE-2007-1351.
1694 2007-04-03 David Turner <david@freetype.org>
1696 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
1697 if one of the resolution values is 0, treat it as if it were the
1698 same as the other value.
1700 2007-04-02 David Turner <david@freetype.org>
1702 Add special code to detect `extra-light' fonts and do not snap their
1703 stem widths too much to avoid bizarre hinting effects.
1705 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
1706 `extra_light' members.
1708 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
1710 (af_latin_metrics_scale_dim): Set `extra_light'.
1711 (af_latin_compute_stem_width): Use `extra_light'.
1713 2007-03-28 David Turner <david@freetype.org>
1715 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
1718 2007-03-28 Werner Lemberg <wl@gnu.org>
1720 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
1722 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
1723 issue an error for longer names. This fixes CVE-2007-1351.
1724 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
1725 number of code points in Unicode.
1727 * builds/win32/visualc/index.html,
1728 builds/win32/visualc/freetype.dsp,
1729 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
1732 * docs/CHANGES: Mention ftdiff.
1734 2007-03-26 David Turner <david@freetype.org>
1736 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
1738 (Ins_MD): Last regression fix.
1740 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
1741 computations in order to ignore single-point contours. These are
1742 never rasterized and correspond in certain fonts to mark-attach
1743 points that are very far from the glyph's real outline, ruining the
1746 * src/autofit/afloader.c (af_loader_load_g): In the case of
1747 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
1748 Otherwise code that uses them will most certainly ruin the fixed
1751 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
1752 documentation and bump version number to 2.3.3.
1754 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
1756 * builds/unix/configure.raw (version_info): Set to 9:14:3.
1758 2007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1760 * builds/unix/ftconfig.in: Disable Carbon framework dependency on
1761 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride.
1762 * builds/vms/ftconfig.h: Ditto.
1763 * include/freetype/config/ftconfig.h: Ditto.
1765 2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1767 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
1768 32bit unsigned long overflow by 64bit filesize on LP64 platform, as
1769 proposed by Sean McBride:
1770 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
1772 2007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1774 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
1775 setjmp, proposed by Sean McBride:
1776 http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
1778 2007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1780 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
1781 conftest.c, to avoid unexpected shell evaluation. Possibly it is a
1782 bug or undocumented behaviour of autoconf.
1784 2007-03-18 David Turner <david@freetype.org>
1786 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
1787 fix; testing still needed.
1789 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
1791 2007-03-17 David Turner <david@freetype.org>
1793 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
1794 (undocumented) twilight zone special case.
1796 2007-03-09 Werner Lemberg <wl@gnu.org>
1799 * Version 2.3.2 released.
1800 =========================
1803 Tag sources with `VER-2-3-2'.
1805 * builds/win32/visualc/index.html,
1806 builds/win32/visualc/freetype.dsp,
1807 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
1810 2007-03-08 David Turner <david@freetype.org>
1812 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
1814 * builds/unix/configure.raw (version_info): Set to 9:13:3.
1816 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
1818 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
1820 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
1821 function to work properly, over-writing user-provided buffers in
1822 some cases. Reported by James Cloos <cloos@jhcloos.com>.
1825 2007-03-05 Werner Lemberg <wl@gnu.org>
1827 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
1830 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
1831 `trick_names', as suggested by Ivan Nincic.
1833 2007-03-05 David Turner <david@freetype.org>
1835 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
1836 case FT_Init_FreeType fails for some reason. Problem reported by
1837 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
1839 * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
1840 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
1841 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner
1842 <daniel-gl@gmx.net>.
1844 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
1845 signed values, not unsigned ones. Problem reported by Johannes
1846 Walther <joh_walt@yahoo.de>.
1848 2007-02-21 David Turner <david@freetype.org>
1850 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
1851 of small and ghost stems in the Postscript interpreter.
1853 2007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1855 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
1856 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
1857 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
1859 2007-02-16 Werner Lemberg <wl@gnu.org>
1861 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
1862 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
1864 2007-02-14 David Turner <david@freetype.org>
1866 It seems that the following changes fix most of the known
1867 interpreter problems with my fonts, but more testing is needed,
1870 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
1871 (TT_MulFix14): Rewrite.
1872 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
1875 2007-02-12 Werner Lemberg <wl@gnu.org>
1877 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
1880 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
1881 (bdf_interpret_style): Ditto.
1883 2007-02-12 David Turner <david@freetype.org>
1885 Simplify projection and dual-projection code interface.
1887 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
1888 FT_Vector' as argument type.
1889 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
1891 (CUR_fast_project, CUR_fast_dualproj): New macros.
1892 (Project, Dual_Project, Project_x, Project_y): Updated.
1893 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
1897 * src/autofit/afloader.c (af_loader_load_g): Improve spacing
1898 adjustments for the non-light auto-hinted modes. Gets rid of
1899 `inter-letter spacing is too wide' problems.
1901 * src/autofit/aflatin.c (af_latin_hints_link_segments,
1902 af_latin_hints_compute_edges): Slight optimization of the segment
1903 linker and better handling of serif segments to get rid of broken
1904 `9' in Arial at 9pt (96dpi).
1907 Introduce new string functions and the corresponding macros to get
1908 rid of various uses of strcpy and other `evil' functions, as well as
1909 to simplify a few things.
1911 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
1912 ft_mem_strcpyn): New declarations.
1913 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
1915 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
1918 * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
1919 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
1920 (pcf_get_properties, pcf_interpret_style, pcf_load_font),
1921 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
1922 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
1923 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
1924 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
1925 t42_get_name_index): Use new functions and simplify code.
1927 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
1929 2007-02-11 Werner Lemberg <wl@gnu.org>
1931 * src/autofit/afloader.c (af_loader_load_g): Don't change width for
1934 2007-02-07 Tom Parker <palfrey@tevp.net>
1936 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
1939 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1941 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
1942 Introduce __attribute((deprecated))__ to warn functions
1943 which use non-ANSI data types in its interfaces.
1944 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
1945 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
1946 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
1947 (FT_New_Face_From_FSRef): Deprecated, using FSRef.
1949 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
1950 to avoid warning in building FreeType.
1951 * builds/mac/ftmac.c: Ditto.
1953 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1955 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
1956 `--with-fsspec' etc. Replace #include "ftmac.c" with
1959 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1961 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
1962 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
1963 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
1964 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
1965 FT_GetFilePath_From_Mac_ATS_Name.
1966 * builds/mac/ftmac.c: Ditto.
1968 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1970 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
1971 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
1972 for passing to FT_New_Face_From_FSSpec.
1974 2007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1976 * builds/unix/configure.raw: Check whether Mac OS X system headers
1977 can be built under ANSI C mode.
1979 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
1980 compatible to ANSI C in case system headers are ANSI C incompatible.
1981 * builds/mac/ftmac.c (OS_INLINE): Ditto.
1983 2007-02-01 Werner Lemberg <wl@gnu.org>
1985 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
1986 Explain why applications shouldn't use it. Found by Alexei.
1988 2007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com>
1990 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
1993 * src/gxvalid/gxvmort1.c
1994 (gxv_mort_subtable_type1_substTable_validate): Fix debugging
1997 2007-01-31 Werner Lemberg <wl@gnu.org>
2000 * Version 2.3.1 released.
2001 =========================
2004 Tag sources with `VER-2-3-1-FINAL'.
2006 * builds/win32/visualc/freetype.dsp,
2007 builds/win32/visualc/freetype.vcproj: s/230/231/.
2008 * builds/win32/visualc/index.html: s/221/231/.
2010 * vms_make.com: Add `ftgasp'.
2012 2007-01-30 David Turner <david@freetype.org>
2014 Tag sources with VER-2-3-1 to prepare release.
2016 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
2018 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
2021 * builds/unix/configure.raw (version_info): Set to 9:12:3.
2024 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
2025 (af_loader_load_g): Disable the warper (i.e., the light hinting
2026 improvements) to make a 2.3.1 bugfix release before introducing a
2027 new feature. This should give us more time to tune and improve the
2028 warper for the next release.
2030 * docs/CHANGES: Update accordingly.
2032 2007-01-25 David Turner <david@freetype.org>
2034 For light auto-hinting, improve glyph advance widths and resurrect
2035 normal/full hinting to its normal quality.
2037 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
2039 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
2042 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
2043 preprocessor conditional with if-clause, handling both light and
2046 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
2047 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
2049 2007-01-25 Werner Lemberg <wl@gnu.org>
2051 * docs/release: Updated -- Savannah uses a new uploading scheme.
2053 2007-01-25 David Turner <david@freetype.org>
2055 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
2057 * src/cff/cffgload.c (cff_decoder_parse_charstrings)
2058 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
2061 * docs/CHANGES: Document light auto-hinting improvement.
2063 2007-01-25 Werner Lemberg <wl@gnu.org>
2065 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
2066 correctly in a sanity check. Since this function is only used to
2067 load local and global functions, any charstring that called the last
2068 local/global function would fail otherwise. This fixes Savannah bug
2071 * docs/CHANGES: Document it.
2073 2007-01-23 David Turner <david@freetype.org>
2075 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
2076 prevented compilation when disabling both the unpatented and the
2077 bytecode interpreter in the TrueType font driver.
2080 Fix and enable the warper to improve `light' hinting mode. This is
2081 not necessarily a final version, but it seems to work well.
2083 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
2085 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
2086 * src/autofit/aftypes.h: Activate AF_USE_WARPER.
2088 * src/autofit/afwarp.c (AF_WarpScore): Tune table.
2089 (af_warper_compute_line_best): Fix array size of `scores'.
2090 (af_warper_compute): Better handling of border cases.
2091 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
2094 2007-01-21 Werner Lemberg <wl@gnu.org>
2096 * ChangeLog: Split off older entries into...
2097 * ChangeLog.22: This new file.
2099 2007-01-21 Werner Lemberg <wl@gnu.org>
2101 * docs/CHANGES: Document SHZ fix.
2103 2007-01-21 George Williams <gww@silcom.com>
2105 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
2108 2007-01-21 Werner Lemberg <wl@gnu.org>
2110 * src/sfnt/ttmtx.c (tt_face_get_metrics)
2111 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
2113 2007-01-17 Werner Lemberg <wl@gnu.org>
2116 * Version 2.3.0 released.
2117 =========================
2120 Tag sources with `VER-2-3-0-FINAL'.
2122 2007-01-17 Werner Lemberg <wl@gnu.org>
2124 * docs/release: Updated.
2126 2007-01-16 David Turner <david@freetype.org>
2128 * src/autofit/aflatin.c (af_latin_hints_compute_segments),
2129 src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
2130 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
2133 2007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de>
2135 * builds/amiga/makefile, builds/amiga/makefile.os4,
2136 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
2138 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
2140 2007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de>
2142 Fix various compiler warnings.
2144 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
2145 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
2146 s/index/strike_index/.
2147 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
2149 * src/gxvalid/gxvmorx5.c
2150 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
2152 * src/truetype/ttinterp.c (Compute_Point_Displacement),
2153 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
2154 uninitialized variables.
2156 2007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2158 * docs/CHANGES, docs/INSTALL.MAC: Improvements.
2160 2007-01-13 Werner Lemberg <wl@gnu.org>
2162 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
2163 versions up to 0x3FF without complaining.
2165 2007-01-13 Derek Clegg <dclegg@apple.com>
2167 Add FT_Get_PS_Font_Info interface to CFF driver.
2169 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
2170 (CFF_FontRec): Add `font_info' field.
2172 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
2173 (cff_font_done): Free font->font_info if necessary.
2175 * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
2176 (cff_service_ps_info): Register cff_ps_get_font_info.
2178 2007-01-13 Werner Lemberg <wl@gnu.org>
2180 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
2183 * src/autofit/afhints.c (af_glyph_hints_dump_segments,
2184 af_glyph_hints_dump_edges): Ditto.
2186 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
2189 * src/sfnt/ttsbit0.h: Remove.
2191 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
2193 2007-01-12 David Turner <david@freetype.org>
2195 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
2196 bug in the bitmap emboldener if the pitch of the source bitmap is
2197 much larger than its width.
2199 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
2200 compilation warning.
2202 2007-01-12 Werner Lemberg <wl@gnu.org>
2204 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
2205 `automake' CVS module from sources.redhat.com.
2207 2007-01-11 Werner Lemberg <wl@gnu.org>
2209 * src/type1/t1load.c (is_space): Removed.
2210 (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
2211 (parse_charstrings): Use IS_PS_TOKEN.
2214 * autogen.sh: Avoid bash specific syntax.
2216 2007-01-11 David Turner <david@freetype.org>
2218 * docs/CHANGES: Small update.
2220 * builds/unix/configure.raw (version_info): Set to 9:11:3.
2222 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
2223 crash with some Mac OS X .dfont files. Submitted by Masatake
2226 * autogen.sh: Small fix to get it working on Mac OS X properly:
2227 The issue is that GNU libtool is called `glibtool' on this platform,
2228 and we must call `glibtoolize', since `libtoolize' doesn't exist.
2230 2007-01-10 David Turner <david@freetype.org>
2232 * all-sources: Tag all sources with VER-2-3-0-RC1 and
2235 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
2236 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
2237 version number to 2.3.0.
2239 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
2240 (FREETYPE_PATCH): Set to 0.
2242 * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
2243 include/freetype/ftlcdfil.h: Update reference documentation with
2244 GASP support and LCD filtering sections.
2246 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
2247 which created an endless loop with some malformed font files.
2249 2007-01-10 Derek Clegg <dclegg@apple.com>
2251 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
2254 2007-01-08 David Turner <david@freetype.org>
2256 * docs/CHANGES: Updated.
2258 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
2259 a new API `FT_Get_Gasp' to return entries of the `gasp' table
2260 corresponding to a given character pixel size.
2262 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
2263 `gasp' table, in order to avoid potential problems with later
2266 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
2267 <freetype/ftgasp.h>.
2269 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
2270 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
2271 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
2274 2007-01-07 Werner Lemberg <wl@gnu.org>
2276 * src/cid/cidparse.c (cid_parser_new): Improve error message for
2278 Scan for `/sfnts' token.
2280 2007-01-07 Werner Lemberg <wl@gnu.org>
2282 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
2284 2007-01-06 Werner Lemberg <wl@gnu.org>
2286 * src/cff/cffload.c (cff_index_init): Remove unused variable.
2287 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
2289 2007-01-04 David Turner <david@freetype.org>
2291 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
2292 correctly. This fixes Savannah bug #17876.
2295 Do not allocate interpreter-specific tables in memory if we are not
2296 going to load glyphs with the bytecode interpreter anyway.
2298 * src/truetype/ttgload.c (tt_loader_init): Load execution context
2299 only if glyph is hinted.
2301 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
2303 Add `tt_size_ready_bytecode' declaration.
2304 * src/truetype/ttobjs.c (tt_size_done_bytecode,
2305 tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
2306 (tt_size_init): Move most code into `tt_size_init_bytecode'.
2307 (tt_size_done): Move most code into `tt_size_done_bytecode'.
2308 (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
2311 Don't extract the metrics table from the SFNT font file. Instead,
2312 reparse it on each glyph load. The runtime difference is not
2313 noticeable, and it can save a lot of heap memory when memory-mapped
2316 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
2317 `horz_metrics_offset' and `vert_metrics_ofset'.
2318 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
2322 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
2325 Do not load the CFF index offsets into memory, since this wastes a
2326 *lot* of heap memory with large Asian CFF fonts. There is no
2327 significant performance loss.
2329 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
2330 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
2332 (CFF_CharsetRec): Add field `num_glyphs'.
2334 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
2335 cff_charset_cid_to_gindex): New functions.
2336 (cff_new_index): Renamed to...
2337 (cff_index_init): This. Update all callers.
2338 Updated -- some code has been moved to `cff_index_load_offsets'.
2339 (cff_done_index): Renamed to...
2340 (cff_index_done): This. Update all callers.
2341 (cff_index_get_pointers, cff_index_access_element): Updated to use
2343 (cff_charset_compute_cids): Set `num_glyphs' field.
2344 (cff_encoding_load): Updated.
2346 * src/cff/cffgload.c (cff_slot_load): Updated.
2348 2007-01-04 David Turner <david@freetype.org>
2350 * docs/INSTALL.UNIX: Simplify some parts, add reference to
2351 autogen.sh and pointer to README.CVS.
2353 * README.CVS: Add common problem description and solution
2354 when running autogen.sh.
2356 * docs/INSTALL: Add reference to MacOS X.
2358 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
2360 * docs/TODO: Remove obsolete items.
2362 * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
2364 Remove `count_table' and `memory'.
2365 Make `grays' a pointer.
2366 (TRaster): New structure.
2367 (count_table): New static array.
2368 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
2369 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
2370 ft_black_set_mode, ft_black_render): Updated.
2371 (ft_black_init): Don't initialize `count_table'.
2372 (ft_black_reset): Use the render pool. This saves about 6KB of
2373 heap space for each FT_Library instance.
2375 * src/smooth/ftgrays.c (TRaster): Replaced with...
2378 (TRaster): New structure.
2380 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
2381 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
2382 gray_render_span, gray_raster_render): Updated.
2383 (gray_raster_reset): Use the render pool. This saves about 6KB of
2384 heap space for each FT_Library instance.
2386 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
2387 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
2388 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
2389 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
2390 the optimization is no longer experimental.
2392 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
2393 Remove a typo that results in no hinting and a memory leak with some
2394 large Asian CFF fonts.
2396 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
2397 which happens when FT_Done_Library is called with still opened
2398 CFF_Faces in it. We need to close all faces before destroying the
2399 modules, or else some bad things (memory leaks) may happen.
2401 2007-01-02 Werner Lemberg <wl@gnu.org>
2403 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
2404 Remove compiler warning.
2406 2007-01-02 David Turner <david@freetype.org>
2408 * src/sfnt/sfobjs.c: Add documentation comment.
2410 2006-12-31 Masatake YAMATO <jet@gyve.org>
2412 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
2414 Check uniqueness of the gid pairs.
2415 (gxv_kern_subtable_fmt0_validate): Move some code to
2416 `gxv_kern_subtable_fmt0_pairs_validate'.
2418 2006-12-22 David Turner <david@freetype.org>
2420 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
2423 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
2424 to avoid deprecation warnings with Visual C++ 8.
2426 2006-12-16 Anders Kaseorg <anders@kaseorg.com>
2428 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
2429 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
2431 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2433 * include/freetype/internal/services/svotval.h: Add `volatile' to
2434 sync with the modification by Jens Claudius on 2006-08-22; cf.
2435 http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
2437 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2439 * src/base/ftmac.c: Specialized for Mac OS X only.
2440 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
2441 * builds/unix/configure.raw: Ditto. When explicit switches for
2442 FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
2443 builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
2445 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2447 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
2448 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
2449 instead of src/base/ftmac.c
2450 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
2451 * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
2452 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
2453 that cannot be built at present.
2455 2006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2457 * src/base/ftobjs.c: Improvement of resource fork handler for
2459 http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
2460 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
2461 format or .dfont, to simulate the face index number counted by ftmac.c.
2462 (IsMacResource): Return the number of scalable faces correctly.
2464 2006-12-10 Werner Lemberg <wl@gnu.org>
2466 * builds/toplevel.mk (version): Protect against `distclean' target.
2468 2006-12-09 Werner Lemberg <wl@gnu.org>
2470 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
2473 * builds/freetype.mk (version): Extracted from freetype.h, using
2474 GNU make's built-in string functions.
2475 (refdoc): Use $(version) instead of static version number.
2477 2006-12-08 Werner Lemberg <wl@gnu.org>
2479 * builds/toplevel.mk (dist): Extract version number from freetype.h.
2481 2006-12-08 Vladimir Volovich <vvv@vsu.ru>
2483 * src/tools/apinames (State): Remove final comma in structure -- xlc
2484 v5 under AIX 4.3 doesn't like this.
2486 2006-12-07 David Turner <david@freetype.org>
2488 * src/autofit/afloader.c (af_loader_load_g): Small adjustment
2489 to the spacing of auto-fitted glyphs. This only impacts rare
2490 cases (e.g., Arial Bold at rather small character sizes).
2492 2006-12-03 Werner Lemberg <wl@gnu.org>
2494 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
2496 2006-12-01 Werner Lemberg <wl@gnu.org>
2498 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
2499 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>.
2500 (tt_name_entry_ascii_from_ucs4): Removed.
2503 * include/freetype/ftxf86.h: Fix and extend comment so that it
2504 appears in the documentation.
2506 * include/freetype/ftchapters.h: Add `font_format' section.
2509 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
2510 to TOC in index page.
2512 2006-11-28 David Turner <david@freetype.org>
2514 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
2515 trying to render into a zero-width/height bitmap, not an error code.
2517 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
2519 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
2522 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
2525 2006-11-26 Pierre Hanser <hanser@club-internet.fr>
2527 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
2529 2006-11-25 David Turner <david@freetype.org>
2531 * src/autofit/afhints.c (af_glyph_hints_dump_points,
2532 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
2533 Add stubs to link the `ftgrid' test program when debugging is
2534 disabled in the auto-hinter.
2536 2006-11-23 David Turner <david@freetype.org>
2538 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
2539 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
2541 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
2542 Emit more sensible information.
2544 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
2546 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
2547 rounding of blue values.
2548 (af_latin_hints_compute_segments): Hint segment heights.
2549 (af_latin_hints_link_segments): Reduce `len_score' value.
2550 (af_latin_hints_compute_edges): Increase `segment_length_threshold'
2551 value and use `height' member for comparisons.
2552 (af_latin_hint_edges): Extend logging message.
2553 Improve handling of remaining edges.
2555 2006-11-22 Werner Lemberg <wl@gnu.org>
2557 Fix Savannah bug #15553.
2559 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
2560 program after a change from mono to grayscaling (and vice versa).
2561 Use correct constant for comparison to get `exec->grayscale'.
2563 2006-11-18 Werner Lemberg <wl@gnu.org>
2565 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
2566 test for a valid glyph index must be deferred to the font drivers.
2567 This patch fixes Savannah bug #18301.
2569 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
2570 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
2571 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
2572 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
2573 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
2574 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
2575 (FNT_Load_Glyph): Check validity of `glyph_index'.
2577 2006-11-13 David Turner <david@freetype.org>
2579 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter
2580 `enhancements' are still too buggy for general use.
2582 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
2583 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros
2584 when building the library to change the default LCD filter to be
2585 used. This is only useful for experimentation.
2587 * include/freetype/ftlcdfil.h: Update documentation.
2589 2006-11-10 David Turner <david@freetype.org>
2591 * src/smooth/ftsmooth.c: API change for the LCD
2592 filter. The FT_LcdFilter value is an enumeration describing which
2593 filter to apply, with new values FT_LCD_FILTER_LIGHT and
2594 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
2595 algorithm which produces strong color fringes for everything
2596 except very-well hinted text).
2598 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
2599 second parameter to an enum type.
2601 * src/base/ftlcdfil.c (USE_LEGACY): Define.
2602 (_ft_lcd_filter): Rename to...
2603 (_ft_lcd_filter_fir): This.
2605 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
2606 (FT_Library_Set_LcdFilter): Update parameters.
2607 Handle new filter modes.
2609 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
2610 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
2611 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
2612 callback and update other fields.
2614 * src/smooth/ftsmooth.c (ft_smooth_render_generic)
2615 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
2616 Other minor improvements.
2618 * src/autofit/aflatin.c: Various tiny improvements that drastically
2619 improve the handling of serif fonts and of LCD/LCD_V hinting modes.
2620 (af_latin_hints_compute_edges): Fix typo.
2621 (af_latin_compute_stem_width): Take better care of diagonal stems.
2623 2006-11-09 David Turner <david@freetype.org>
2625 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
2626 typo which created a variable-used-before-initialized bug.
2628 2006-11-07 Zhe Su <james.su@gmail.com>
2630 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
2633 2006-11-03 Werner Lemberg <wl@gnu.org>
2635 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
2637 2006-11-02 David Turner <david@freetype.org>
2639 Add a few tweaks to better handle serif fonts.
2640 Add more debugging messages.
2642 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
2643 segments that are less than 1.5 pixels high. This gets rid of
2644 *many* corner cases with serifs.
2645 (af_latin_align_linked_edge): Add logging message.
2646 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
2647 Add logging messages.
2648 Handle AF_EDGE_FLAG flag specially.
2650 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
2651 _af_debug_disable_blue_hints, and _af_debug_hints variables.
2653 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
2654 Update external declarations.
2655 (af_corner_orientation, af_corner_is_flat): Replaced by...
2657 * include/freetype/internal/ftcalc.h (ft_corner_orientation,
2658 ft_corner_is_flat): These declarations.
2660 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
2661 Comment out. Replaced by...
2663 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
2664 These functions. Update all callers.
2665 (FT_Add64) [!FT_LONG64]: Simplify.
2667 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
2668 (af_direction_compute): Add a missing FT_ABS call. This bug caused
2669 production of garbage by missing lots of segments.
2671 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
2673 * src/autofit/afloader.c (af_loader_init, af_loader_done)
2674 [AF_DEBUG]: Set _af_debug_hints.
2677 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
2678 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
2679 and ft_corner_orientation.
2682 * src/gzip/inftrees.c (huft_build): Remove compiler warning.
2684 2006-10-24 Werner Lemberg <wl@gnu.org>
2686 * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
2688 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
2691 2006-10-23 Zhe Su <zsu@novell.com>
2693 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
2694 better deal with broken Asian fonts with strange glyphs, having
2695 self-intersections and other peculiarities. The used algorithm is
2696 based on the nonzero winding rule.
2698 2006-10-23 David Turner <david@freetype.org>
2700 Speed up the CFF font loader. With some large CFF fonts,
2701 FT_Open_Face is now more than three times faster.
2703 * src/cff/cffload.c (cff_get_offset): Removed.
2704 (cff_new_index): Inline functionality of `cff_get_offset'.
2705 (cff_charset_compute_cids, cff_charset_free_cids): New functions.
2706 (cff_charset_done): Call `cff_charset_free_cids'.
2707 (cff_charset_load): Call `cff_charset_compute_cids'.
2708 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
2710 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
2714 Speed up the Postscript hinter, with more than 100% speed increase
2717 * src/pshinter/pshalgo.c (psh_corner_is_flat,
2718 psh_corner_orientation): New functions.
2719 (psh_glyph_compute_inflections): Merge loops for efficiency.
2720 Use `psh_corner_orientation'.
2721 (psh_glyph_init): Use `psh_corner_is_flat'.
2722 (psh_hint_table_find_strong_point): Renamed to...
2723 (psh_hint_table_find_strong_points): This.
2724 Rewrite, adding argument to handle all points at once.
2726 (PSH_MAX_STRONG_INTERNAL): New macro.
2727 (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
2729 2006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2731 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
2732 `error' with FT_Err_Ok.
2734 2006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2736 * docs/INSTALL.CROSS: New document file for cross-building.
2738 * builds/unix/configure.raw: Preliminary cross-building support.
2739 Find native C compiler and pass it by CC_BUILD, and
2740 find suffix for native executable and pass it by EXEEXT_BUILD.
2741 Also suffix for target executable is passed by EXEEXT.
2743 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
2744 build `apinames' which runs on building system. They are set by
2745 CC_BUILD and EXEEXT_BUILD.
2747 * builds/exports.mk (APINAMES_EXE): Change the extension for
2748 apinames from the suffix for target (E) to that for building host
2751 2006-10-12 Werner Lemberg <wl@gnu.org>
2753 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
2754 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents
2755 which reference those files.
2757 2006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2759 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is
2760 embedded in freetype2.pc and freetype-config. Use it to record
2761 Carbon dependency of MacOSX.
2763 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
2765 * builds/unix/freetype-config.in: Ditto.
2767 2006-10-11 Werner Lemberg <wl@gnu.org>
2769 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
2772 2006-10-03 Jens Claudius <jens.claudius@yahoo.com>
2774 * include/freetype/config/ftstdlib.h: Cast away volatileness from
2775 argument to ft_setjmp.
2777 * include/freetype/internal/ftvalid.h: Add comment that
2778 ft_validator_run must not be used.
2780 2006-10-01 Werner Lemberg <wl@gnu.org>
2782 * src/base/ftbase.c: Undo change from 2006-09-30.
2784 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
2786 2006-09-30 David Turner <david@freetype.org>
2788 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
2789 s/unpatented_hinting/ignore_unpatented_hinter/.
2792 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
2793 auto-hinting shall be used or not.
2795 * src/truetype/ttobjs.c (tt_face_init): Ditto.
2797 2006-09-30 Werner Lemberg <wl@gnu.org>
2799 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
2802 * src/base/ftbase.c: Include `ftlcdfil.c'.
2804 2006-09-29 Werner Lemberg <wl@gnu.org>
2806 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
2807 overlapping segments. Bug reported by Stefan Koch.
2809 2006-09-28 David Turner <david@freetype.org>
2811 Fix a bug in the automatic unpatented hinting support which prevents
2812 normal bytecode hinting to work properly.
2814 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
2815 s/force_autohint/unpatented_hinting/. Update all callers.
2817 * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
2819 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
2821 2006-09-27 David Turner <david@freetype.org>
2823 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
2826 Add a new API to support color filtering of subpixel glyph bitmaps.
2827 In a default build, the function `FT_Library_SetLcdFilter' returns
2828 `FT_Err_Unimplemented_Feature'; you need to #define
2829 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
2830 real implementation.
2832 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
2834 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
2836 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
2837 `lcd_filter_weights' and `lcd_filter'.
2839 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
2842 Handle subpixel rendering.
2844 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
2845 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
2847 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
2848 pointing to <freetype/ftlcdfil.h>.
2850 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
2851 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
2853 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
2855 2006-09-26 David Bustin
2857 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
2858 correctly. Reported as Savannah bug #17843.
2860 2006-09-26 David Turner <david@freetype.org>
2862 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
2863 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
2864 horizontal and vertical hinting for the purpose of debugging the
2867 * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
2868 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
2870 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
2872 * include/freetype/config/ftoption.h, devel/ftoption.h
2873 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
2874 we want to compile LCD-optimized rendering code (Ã la ClearType) or
2875 not. The macro *must* be disabled in default builds of the library
2878 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
2879 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
2880 isn't defined at compile time. This only changes the content of the
2881 rendered glyph to match the one of normal gray-level rendering,
2882 hence clients should not need to be modified.
2884 * docs/CHANGES: Updated.
2886 2006-09-18 Garrick Meeker <garrick@digitalanarchy.com>
2888 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
2889 LWFN fails and both are available.
2891 2006-09-11 David Turner <david@freetype.org>
2893 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
2894 report their English names through an Apple Roman
2895 (platform,encoding) pair, with language_id != English.
2897 If the font uses another name entry with language_id == English, it
2898 will be selected correctly, though.
2900 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
2901 selection for `mingli.ttf'.
2903 2006-09-05 Werner Lemberg <wl@gnu.org>
2905 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
2906 values which have the upper two bytes set to 0xFF instead of 0x00
2907 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
2910 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
2912 2006-09-05 David Turner <david@freetype.org>
2914 Minor source cleanups and optimizations.
2916 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
2917 (TRaster): Remove `count_ex' and `count_ey'.
2918 (gray_find_cell): Remove 2nd and 3rd argument.
2919 (gray_alloc_cell): Merged with `gray_find_cell'.
2920 (gray_record_cell): Simplify.
2921 (gray_set_cell): Rewrite.
2922 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
2923 (gray_render_span): Don't use FT_MEM_SET for small values.
2924 (gray_dump_cells) [DEBUG_GRAYS]: New function.
2925 (gray_sweep): Avoid buffer overwrites when to drawing the end of a
2927 (gray_convert_glyph): Fix speed-up.
2929 2006-09-04 David Turner <david@freetype.org>
2931 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
2934 2006-09-03 Werner Lemberg <wl@gnu.org>
2936 * devel/ftoption.h: Synchronize with
2937 include/freetype/config/ftoption.h.
2939 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
2940 variable declaration.
2941 (gray_convert_glyph): Fix compiler warnings.
2943 2006-09-01 David Turner <david@freetype.org>
2945 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
2946 to recognize a few fonts that require the automatic unpatented
2949 * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
2950 rasterizer. The speed improvement is between 15% and 25%, depending
2953 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
2955 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
2956 (gray_init_cells): Updated.
2957 (gray_find_cell, gray_alloc_cell): New functions.
2958 (gray_record_cell): Rewritten to use `gray_find_cell' and
2960 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
2963 (gray_shell_sort, gray_quick_sort, gray_check_sort,
2964 gray_dump_cells): Removed.
2965 (gray_sweep): Rewritten.
2966 (gray_convert_glyph): Rewrite code which used one of the sorting
2968 (gray_raster_render): Updated.
2970 2006-08-29 Dr. Werner Fink <werner@suse.de>
2972 * configure: Make it possible to handle configure options which
2973 have strings containing spaces.
2975 2006-08-27 David Turner <david@freetype.org>
2977 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
2978 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
2979 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
2981 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
2982 src/truetype/truetype.c, src/truetype/ttdriver.c,
2983 src/truetype/ttgload.c, src/truetype/ttgload.h,
2984 src/truetype/ttinterp.c, src/truetype/ttobjs.c,
2985 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
2986 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
2988 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
2989 member `force_autohint'.
2991 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
2993 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
2994 against a list of font names which need the bytecode interpreter.
2996 2006-08-27 Jens Claudius <jens.claudius@yahoo.com>
2998 Fix miscellaneous compiler warnings.
3000 * include/freetype/internal/ftobjs.h: Close comment with `*/' to
3001 avoid `/* in comment' compiler warning.
3003 * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
3004 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
3005 64-bit platforms void* is larger than FT_UInt32.
3007 * src/base/ftobjs.c (t_validator_error): Cast away
3008 volatileness of argument to ft_longjmp. Spotted by Werner
3011 * src/bdf/bdflib.c (bdf_load_font): Initialize local
3014 * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
3015 `error' as volatile.
3017 2006-08-27 Werner Lemberg <wl@gnu.org>
3019 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
3022 2006-08-22 Jens Claudius <jens.claudius@yahoo.com>
3024 Fix for previous commit, which caused many compiler warnings/errors
3025 about addresses of volatile objects passed as function arguments as
3026 non-volatile pointers.
3028 * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
3029 pointer to a volatile object.
3031 * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
3032 `table' a pointer to a volatile object.
3034 * src/otvalid/otvmod.c (otv_load_table): Make function argument
3035 `table' a pointer to a volatile object.
3037 2006-08-18 Jens Claudius <jens.claudius@yahoo.com>
3039 * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
3040 as volatile since it must keep its value across a call to ft_setjmp.
3041 (gxv_validate): Same for local variables `memory' and `valid'.
3042 (classic_kern_validate): Same for local variables `memory',
3043 `ckern', and `valid'.
3045 * src/otvalid/otvmod.c (otv_validate): Same for function parameter
3046 `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
3049 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
3052 2006-08-16 David Turner <david@freetype.org>
3054 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
3057 * src/base/ftobjs.c (ft_validator_run): Disable function; it is
3058 buggy by design. Always return -1.
3061 Improvements to native TrueType hinting. This is a first try,
3062 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
3064 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
3067 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
3070 * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
3071 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
3072 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
3073 handle `extra_points2'.
3075 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
3076 Remove compiler warning.
3077 (cur_to_arg): Remove macro.
3078 (TT_Hint_Glyph): Updated.
3079 (TT_Process_Simple_Glyph): Handle `orus'.
3081 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
3082 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
3083 (LOC_Ins_IUP): Renamed to...
3084 (IUP_WorkerRec): This.
3086 (Shift): Renamed to...
3087 (_iup_worker_shift): This.
3089 (Interp): Renamed to...
3090 (_iup_worker_interpolate): This.
3091 Updated to handle `orus'.
3094 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
3097 2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3099 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
3100 build ftvalid in ft2demos. This has been inadvertedly changed
3103 2006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3105 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
3107 http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
3109 * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
3110 It reverts the change introduced on 2005-08-20.
3112 * src/gxvalid/gxvmod.c: Ditto.
3114 2006-08-13 Jens Claudius <jens.claudius@yahoo.com>
3116 * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
3118 (T1_FieldRec): Add `dict'.
3119 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
3120 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
3121 keyword is expected as an additional argument.
3123 * src/cid/cidload.c: (cid_field_records): Adjust invocations of
3126 * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
3128 * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
3129 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
3130 not T1_TOKEN_TYPE_ANY.
3131 (ps_parser_load_field): Make sure a token that should be a string or
3132 name is really a string or name.
3133 Avoid memory leak if a keyword has been already encountered and its
3134 value is overwritten.
3135 * src/type1/t1load.c: (t1_keywords): Adjust invocations of
3137 (parse_dict): Ignore keywords that occur in the wrong dictionary
3138 (e.g., in `Private' instead of `FontDict').
3140 * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
3142 * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
3145 2006-07-18 Jens Claudius <jens.claudius@yahoo.com>
3147 Move creation of field `buildchar' of T1_DecoderRec out of
3148 `t1_decoder_init' and let the caller of `t1_decoder_init' take care
3151 Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
3152 and `T1_Compute_Max_Advance'.
3154 * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
3155 `face', add `len_buildchar'.
3157 * include/freetype/internal/t1types.h (T1_FaceRec): Add field
3160 * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
3162 (cid_slot_load_glyph): Do not ignore failure when initializing the
3165 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
3166 (t1_decoder_init): Remove initialization of fields `buildchar' and
3168 (t1_decoder_done): Remove deallocation of field `buildchar'.
3170 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
3171 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
3173 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
3174 `len_buildchar'; make sure to call finisher for T1_Decoder even in
3177 * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
3180 * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
3183 2006-07-14 Jens Claudius <jens.claudius@yahoo.com>
3185 * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
3186 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
3187 and IS_PS_BASE85 (from src/psaux/psconv.h).
3188 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
3189 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
3190 (T1_DecoderRec): New fields `buildchar' and `face'.
3191 (IS_PS_TOKEN): New macro.
3193 * include/freetype/internal/t1types.h (T1_FaceRec): New fields
3194 `ndv_idx', `cdv_idx', and `len_buildchar'.
3196 * include/freetype/t1tables.h (PS_BlendRec): New fields
3197 `default_design_vector' and `num_default_design_vector'.
3199 * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
3200 IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
3201 IS_PS_BASE85 to include/freetype/internal/psaux.h.
3203 * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
3204 argument to be NULL if we want only to count the number of tokens.
3205 (ps_tocoordarray): Allow `coords' argument to be NULL if we just
3206 want to skip the array.
3207 (ps_tofixedarray): Allow `values' argument to be NULL if we just
3208 want to skip the array.
3210 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
3211 for (partially commented out) othersubrs 19-25, 27, and 28.
3212 (t1_decoder_init): Initialize new fields `face' and `buildchar'.
3213 (t1_decoder_done): Release new field `buildchar'.
3215 * src/type1/t1load.c (parse_buildchar, parse_private): New
3217 (t1_keywords): Register them.
3218 (t1_allocate_blend): Updated.
3219 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
3220 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
3221 (parse_dict): Remove `keyword_flags' argument.
3222 Use new macro IS_PS_TOKEN.
3223 Changed function so that later PostScript definitions override
3225 (t1_init_loader): Initialize new field `keywords_encountered'.
3226 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
3228 Remove `keywords_flags'.
3230 * src/type1/t1load.h (T1_LoaderRect): New field
3231 `keywords_encountered'.
3232 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
3234 * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
3235 entries for parsing /NDV, /CDV, and /DesignVector.
3237 2006-07-07 Werner Lemberg <wl@gnu.org>
3239 Add many checks to protect against malformed PCF files.
3241 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
3242 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
3244 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
3245 data and check that tables don't overlap (using a simple
3247 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
3248 New macros which give the size of data structures in the data
3250 (pcf_get_properties): Use rough estimates to get array size limits.
3251 Assign `face->nprops' and `face->properties' earlier so that a call
3252 to PCF_Face_Done can do the clean-up in case of error.
3253 Protect against invalid string offsets.
3254 (pcf_get_metrics): Clean up code.
3255 Adjust tracing message levels.
3256 Use rough estimate to get array size limit.
3257 (pcf_get_bitmaps): Clean up code.
3258 Adjust tracing message levels.
3259 Use rough estimates to get offset limits.
3260 (pcf_get_encodings): Adjust tracing message level.
3261 (pcf_get_accel): Clean up code.
3263 2006-06-26 Werner Lemberg <wl@gnu.org>
3265 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
3266 don't have a POINT_SIZE property. This fixes Savannah bug #16914.
3268 2006-06-26 Jens Claudius <jens.claudius@yahoo.com>
3270 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
3271 (t1_decoder_parse_charstrings): Operator with
3272 opcode 15 pops its two arguments.
3273 Handle the case where the pops of an othersubr may be part of a
3275 Handle unknown othersubrs gracefully: count their operands and let
3276 the following pop operators push the operands as the results onto
3278 Improve handling of setcurrentpoint opcode.
3280 2006-06-25 Jens Claudius <jens.claudius@yahoo.com>
3282 The Type 1 parser now skips over top-level procedures as required
3283 for a `Simplified Parser'. This makes the parser more robust as it
3284 doesn't poke around in PostScript code. Additionally, it makes the
3285 FontDirectory hackery in src/type1/t1load.c unnecessary.
3287 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
3288 (skip_literal_string): Add FT_Error as return value.
3289 Handle escapes better.
3290 (skip_string): Add FT_Error as return value.
3291 Don't set `parser->error' but return error code directly.
3292 (skip_procedure): New function.
3293 (ps_parser_skip_PS_token): Handle procedures.
3295 (ps_parser_to_token): Update code.
3296 (ps_parser_load_field_table): Handle bbox entries also.
3298 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
3299 Add commented-out code for synthetic fonts.
3301 2006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua>
3303 Fix two hinting bugs as reported in
3304 http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
3306 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
3307 `first_point' member.
3309 * src/truetype/ttgload.c (tt_prepare_zone): Initialize
3311 (TT_Process_Composite_Glyph): Always untouch points.
3313 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
3314 `first_point' and `last_point' in case of composite glyphs.
3315 (Ins_IUP): Fix computation of `end_point'.
3317 2006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3319 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
3320 Mac. The original patch was written by David Sachitano and Lawrence
3321 Coopet, and modified by Sean McBride for MPW compatibility. Only
3322 required data are converted; unused data are left in big endian.
3324 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
3326 (OS_INLINE): Undefine before definition.
3327 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
3328 FontAssociation table in FOND resource.
3329 (count_faces_scalable): Insert EndianS16_BtoN to parse the header
3330 and fontSize at each entry of FontAssociation table in FOND
3332 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
3333 ffStylOff of FamilyRecord header of FOND resource, the header,
3334 fontSize, fontID at each entry of FontAssociation table, and
3336 (count_faces): Call `HUnlock' after all FOND utilization.
3338 2006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3340 Public API of TrueTypeGX, OpenType, and classic kern table validator
3341 should return `FT_Err_Unimplemented_Feature' if validation service
3342 is unavailable (disabled in `modules.cfg'). It is originally
3343 suggested by David Turner, cf.
3344 http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
3346 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
3347 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
3349 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
3350 classic kern table validation service is unavailable.
3352 * src/base/ftotval.c (FT_OpenType_Validate): Return
3353 FT_Err_Unimplemented_Feature if OpenType validation service is
3356 2006-06-08 Werner Lemberg <wl@gnu.org>
3358 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
3361 2006-06-07 David Turner <david@freetype.org>
3363 * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
3364 (T1_Read_Metrics): Fix memory leak which happened when the metrics
3365 file doesn't have kerning pairs. This fixes Savannah bug #16768.
3367 2006-06-06 David Turner <david@freetype.org>
3369 Fix memory leak described in Savannah bug #16759.
3371 We change `ps_unicodes_init' so that it also takes a
3372 `free_glyph_name' callback to release the glyph names returned by
3375 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
3377 (PS_GetGlyphNameFunc): This.
3378 (PS_FreeGlyphNameFunc): New typedef.
3379 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
3381 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
3383 (cff_sid_free_glyph_name): New function.
3384 (cff_cmap_unicode_init): Updated.
3386 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
3388 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
3389 PS_FreeGlyphNameFunc and use it.
3392 2006-06-04 David Turner <david@freetype.org>
3394 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
3395 `item_size == 0' as well -- though this sounds weird, it can
3396 theoretically happen. This fixes Savannah bug #16669.
3398 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
3399 of `face->num_glyphs' which missed the last glyph, due to
3400 the offset-by-1 computation, since the PFR format doesn't
3401 guarantee that glyph index 0 corresponds to the `missing
3402 glyph. This fixes Savannah bug #16668.
3404 2006-05-25 Werner Lemberg <wl@gnu.org>
3406 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
3407 `-no-undefined'. Reported by Christian Biesinger.
3409 2006-05-19 Brian Weed <bw@imaginengine.com>
3411 * builds/win32/visualc/freetype.dsp: Release libraries no longer
3412 have debug information, and debug libraries use `C7 compatible'
3415 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3417 Apply patch by Derek Clegg to fix two memory leaks in the MacOS
3418 resource fork handler. This fixes Savannah bug #16631.
3420 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
3421 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
3423 * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
3424 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
3426 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3428 * build/unix/configure.raw: Add a fallback to disable Carbon
3429 dependency, if configured with no options on Mac OS X.
3431 2006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3433 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
3434 its content cannot be parsed as supported font. This fixes
3435 the second part of Savannah bug #16590.
3437 2006-05-18 Werner Lemberg <wl@gnu.org>
3439 * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
3440 [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
3442 2006-05-17 David Turner <david@freetype.org>
3444 This is a major patch used to drastically improve the performance of
3445 loading glyphs. This both speeds up loading the glyph vectors
3446 themselves and the auto-fitter module.
3448 We now use inline assembler code with GCC to implement `FT_MulFix',
3449 which is probably the most important function related to the
3450 engine's performance.
3452 The resulting speed-up is about 25%.
3455 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
3456 `cursor' and `limit'.
3458 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
3460 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
3463 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
3466 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
3468 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
3469 (af_glyph_hints_reload: Rewrite recognition of weak points.
3471 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
3472 constant values out of the loops.
3474 * src/autofit/aftypes.h: Updated.
3476 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
3478 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
3479 product to get orientation.
3481 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
3482 (FT_Stream_OpenGzip): Use it to handle small files directly in
3485 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
3486 Improve performance.
3488 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
3491 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
3492 TT_Load_Composite_Glyph): Updated. Add threshold to protect against
3493 exceedingly large values of number of contours. Speed up by
3494 reducing the number of loops.
3496 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
3499 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
3500 used to detect rogue clients from 4 to 16. This is to prevent some
3501 segmentation faults with fonts like `KozMinProVI-Regular.otf' which
3502 comes from the Japanese Adobe Reader Asian Font pack.
3504 2007-05-17 Werner Lemberg <wl@gnu.org>
3506 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This
3507 fixes the first part of Savannah bug #16590.
3509 2006-05-16 Werner Lemberg <wl@gnu.org>
3511 * docs/PROBLEMS: Updated icl issues.
3513 ----------------------------------------------------------------------------
3515 Copyright 2006, 2007, 2008 by
3516 David Turner, Robert Wilhelm, and Werner Lemberg.
3518 This file is part of the FreeType project, and may only be used, modified,
3519 and distributed under the terms of the FreeType project license,
3520 LICENSE.TXT. By continuing to use, modify, or distribute this file you
3521 indicate that you have read the license and understand and accept it
3526 version-control: never