Updated PCI IDs to latest snapshot.
[tangerine.git] / workbench / libs / freetype / ChangeLog
blobb507fa84aa74b2e0406c48a8dcbf33922ae4bfb4
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):
48         New strings.
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
65         availability.
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
87         with IS_HINTED.
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
106         rasterizer.
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
128         Savannah bug #23630.
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
135         from 2008-06-19.
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
148         specification.
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'
185         and `scale_y'.
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
195         `clazz->done_face'.
197 2008-06-09  VaDiM  <s_sliva@rambler.ru>
199         Support debugging on WinCE.  From Savannah patch #6536; this fixes
200         bug #23497.
202         * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
203         as a replacement for OutputDebugStringA (which WinCE doesn't have).
204         Update all callers.
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
221         it as such.
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'
229         for sane value.
230         Fix typo.
233         * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
236         * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
237         `last_point'.
240         * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
241         `maxTwilightPoints'.
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
277         found.
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
283         Microsoft.
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
376         functions.
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
390         and not correct.
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.
396         Update all callers.
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'
403         FT_ULong.
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.
422         Update all callers.
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
430         Savannah bug #23143.
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
446         bug #22909.
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'
456         targets).
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
480         part is zero.
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
502         Savannah bug #22675.
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.
519 2008-02-29  Wolf
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,
542         Savannah bug #22366.
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
584         Murdoch.
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
613         #21990.
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'
627         correctly.
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
635         required.
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
674         `cff_op_closepath.'
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
685         case-sensitive HFS+.
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
694         Carbon functions.
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
701         McBride.
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
722         warning.
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
738         passed.
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
789         removed completely.
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
803         #21468.
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
810         1.5.
811         Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
812         (WWS_SUBFAMILY).
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
838         instead.
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.
862         Update all users.
864         * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
865         macro.
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
870         functions.
872         * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
873         function.
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
921         SingleSubstFormat1.
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).
927         Found by Ryan Hill.
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.
934         Check glyph IDs.
935         (otv_ClassDef_validate): Check `StartGlyph'.
937         * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
938         checks.
940         * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
941         56 constants.
942         (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
943         Check glyph IDs.
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
1111         initialization.
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
1122         macro.
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
1138         glyphs.
1140 2007-06-20  Werner Lemberg  <wl@gnu.org>
1142         * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
1143         change.
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
1155         attempts.
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
1172         `ConstStr255Param'.
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
1186         assertion.
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
1198         logic.
1199         (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
1200         correctly.
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
1205         2007-06-06.
1207 2007-06-17  Werner Lemberg  <wl@gnu.org>
1209         * src/tools/ftrandom.c (font_size): New global variable.
1210         (TestFace): Use it.
1211         (main): Handle new option `--size' to set `font_size'.
1212         (Usage): Updated.
1214         * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
1215         invalid font.
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',
1227         and `zp2'.
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
1236         parsing.
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
1250         platforms.
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
1283         option flags.
1284         (af_glyph_hints_reload): Add argument to handle inflections.
1285         Simplify.
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
1289         edge counts.
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
1328         declaration.
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):
1334         New macro.
1336         * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
1337         `ttpload.h'.
1338         (tt_service_truetype_glyf): New service structure.
1339         (tt_services): Register it.
1341         * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
1342         `ftpatent.c'.
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
1369         FreeType error.
1372         * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
1373         `font_count'.
1376         * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
1379         * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
1380         `FT_Error'.
1381         Check `fd_index'.
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
1389         error.
1390         Check `idx'.
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,
1444         unused.
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
1466         glyphs.
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
1473         this out!
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
1504         only one argument.
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
1525         `format' member.
1526         * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
1527         cmap_info->format.
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
1549         <ctypes.h>.
1551 2007-05-15  Graham Asher  <graham.asher@btinternet.com>
1553         * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
1554         variable.
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
1565         `break' statements.
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.
1571         Update all users.
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
1577         comparison.
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
1592         sizes.
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
1605         Vincent.
1607 2007-05-04  Vincent RICHOMME  <richom.v@free.fr>
1609         * builds/win32/visualce/*: Add Visual C++ project files for Pocket
1610         PC targets.
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
1623         documentation.
1625 2007-04-28  Victor Stinner  <victor.stinner@inl.fr>
1627         * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
1628         `cmap'.
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
1709         them.
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
1716         padding.
1718 2007-03-28  Werner Lemberg  <wl@gnu.org>
1720         * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
1721         gracefully.
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/,
1730         s/232/233/.
1732         * docs/CHANGES: Mention ftdiff.
1734 2007-03-26  David Turner  <david@freetype.org>
1736         * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
1737         corresponding code.
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
1744         computation.
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
1749         advance property.
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/,
1808         s/231/232/.
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
1828         macro for `strstr'.
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,
1868         though.
1870         * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
1871         (TT_MulFix14): Rewrite.
1872         (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
1873         (Ins_MIRP): Ditto.
1875 2007-02-12  Werner Lemberg  <wl@gnu.org>
1877         * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
1878         warnings.
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):
1890         Updated.
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'
1894         macros.
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
1914         macros.
1915         * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
1916         functions.
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
1932         non-spacing glyphs.
1934 2007-02-07  Tom Parker  <palfrey@tevp.net>
1936         * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
1937         pointer.
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
1957         #include <ftmac.c>.
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
1991         message.
1993         * src/gxvalid/gxvmort1.c
1994         (gxv_mort_subtable_type1_substTable_validate): Fix debugging
1995         message.
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):
2019         s/2.3.0/2.3.1/.
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'
2038         and `xmax_delta'.
2039         * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
2040         and `xmax_delta'.
2042         * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
2043         preprocessor conditional with if-clause, handling both light and
2044         normal mode.
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
2059         functions.
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
2069         #18867.
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]:
2084         Disable code.
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'
2092         and `X2'.
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
2106         points.
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
2131         warnings.
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
2181         with C++ compiler.
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
2187         `modules.cfg').
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
2224         Yamato.
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
2233         VER-2-3-0.
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
2252         values.
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
2264         versions.
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
2272         default build.
2274 2007-01-07  Werner Lemberg  <wl@gnu.org>
2276         * src/cid/cidparse.c (cid_parser_new): Improve error message for
2277         Type 11 fonts.
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.
2300         Updated.
2301         * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
2302         and `cvs_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
2314         files are not used.
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):
2319         Updated.
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
2331         `data_size'.
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
2342         stream offsets.
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...
2363         (TWorker): This.
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...
2376         (TWorker): This.
2377         Remove `memory'.
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
2413         function.
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
2421         warnings.
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
2458         POSIX, cf.
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'
2471         or `type'.
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
2520         ones instead.
2522         * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
2523         variable.
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.
2604         Update parameters.
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
2631         also.
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
2689         as argument.
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
2711         with FT_NEXT_XXX.
2714         Speed up the Postscript hinter, with more than 100% speed increase
2715         on my machine.
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.
2725         Update all callers.
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
2749         (E_BUILD).
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
2770         development.
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/.
2790         Update all callers.
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
2800         in use).
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
2835         typedef.
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
2840         `hmul' and `vmul'.
2842         Handle subpixel rendering.
2843         Simplify function.
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
2865         auto-fitter.
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
2876         for patent reasons.
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
2908         `HAN NOM B.ttf').
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
2926         bitmap scanline.
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
2932         64bit processors.
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
2947         loader.
2949         * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
2950         rasterizer.  The speed improvement is between 15% and 25%, depending
2951         on the font data.
2953         (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
2954         (TCell): Redefine.
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
2959         `gray_alloc_cell'.
2960         (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
2961         QSORT_THRESHOLD):
2962         Removed.
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
2967         functions.
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
3009         `Putzfrau' Lemberg.
3011         * src/bdf/bdflib.c (bdf_load_font): Initialize local
3012         variable `lineno'.
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.
3020         Reported by Jens.
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',
3047         and 'valid'.
3049         * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
3050         `cmap'.
3052 2006-08-16  David Turner  <david@freetype.org>
3054         * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
3055         warnings.
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
3065         `extra_points2'.
3067         * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
3068         `orus'.
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.
3085         Add `orus' member.
3086         (Shift): Renamed to...
3087         (_iup_worker_shift): This.
3088         Updated.
3089         (Interp): Renamed to...
3090         (_iup_worker_interpolate): This.
3091         Updated to handle `orus'.
3092         (Ins_IUP): Updated.
3094         * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
3095         Handle `orus'.
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
3101         2006-08-13.
3103 2006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3105         `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
3106         Jens:
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
3117         T1_TOKEN_TYPE_KEY.
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
3124         T1_FIELD_XXX.
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
3136         T1_FIELD_XXX.
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
3143         T1_FIELD_XXX.
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
3149         of it.
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
3158         `buildchar'.
3160         * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
3161         for T1_Decoder.
3162         (cid_slot_load_glyph): Do not ignore failure when initializing the
3163         T1_Decoder.
3165         * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
3166         (t1_decoder_init): Remove initialization of fields `buildchar' and
3167         `len_buildchar'.
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
3172         T1_Decoder.
3173         (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
3174         `len_buildchar'; make sure to call finisher for T1_Decoder even in
3175         case of error.
3177         * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
3178         of T1_FaceRec.
3180         * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
3181         T1_FaceRec.
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
3216         functions.
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
3224         earlier ones.
3225         (t1_init_loader): Initialize new field `keywords_encountered'.
3226         (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
3227         `len_buildchar'.
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
3246         bubblesort).
3247         (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
3248         New macros which give the size of data structures in the data
3249         stream.
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
3274         subroutine.
3275         Handle unknown othersubrs gracefully: count their operands and let
3276         the following pop operators push the operands as the results onto
3277         the Type1 stack.
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.
3294         Update code.
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
3310         `first_point'.
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
3325         Mac OS X platforms.
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
3331         resource.
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
3335         StyleMapping table.
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
3348         unavailable.
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
3354         unavailable.
3356 2006-06-08  Werner Lemberg  <wl@gnu.org>
3358         * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
3359         errors.
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
3373         `get_glyph_name'
3375         * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
3376         Renamed to ...
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
3382         argument.
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'
3413         debug info.
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):
3459         New functions.
3460         (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
3461         [TEST]: Remove.
3463         * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
3464         code.
3466         * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
3467         `FT_ZERO'
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
3483         memory.
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
3489         `limit'.
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
3522 fully.
3525 Local Variables:
3526 version-control: never
3527 coding: utf-8
3528 End: