source: trunk/poppler/freetype2/ChangeLog @ 262

Last change on this file since 262 was 262, checked in by Eugene Romanenko, 12 years ago

PDF plugin: freetype library updated to version 2.3.8

File size: 158.8 KB
Line 
12009-01-14  Werner Lemberg  <wl@gnu.org>
2
3        * Version 2.3.8 released.
4        =========================
5
6
7        Tag sources with `VER-2-3-8'.
8
9        * docs/VERSION.DLL: Update documentation and bump version number to
10        2.3.8.
11
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.7/2.3.8/, s/237/238/.
18
19        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
20
21        * builds/unix/configure.raw (version_info): Set to 9:19:3.
22
23        * docs/release: Updated.
24
252009-01-14  Werner Lemberg  <wl@gnu.org>
26
27        * builds/toplevel.mk (dist): Compress better.
28
292009-01-13  Werner Lemberg  <wl@gnu.org>
30
31        * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation
32        with C++.
33
342009-01-13  Werner Lemberg  <wl@gnu.org>
35
36        Don't use stdlib.h and friends directly.
37        Reported by Mickey Gabel <mickey@monfort.co.il>.
38
39        * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
40
41        * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h:
42        s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/.
43
44        * src/autofit/aftypes.h, src/autofit/afhints.c,
45        src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/
46
47        * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h.
48
492009-01-12  Werner Lemberg  <wl@gnu.org>
50
51        Avoid compiler warnings.
52
53        * */*: s/do ; while ( 0 )/do { } while ( 0 )/.
54        Reported by Sean McBride <sean@rogue-research.com>.
55
562009-01-12  Werner Lemberg  <wl@gnu.org>
57
58        Fix stdlib dependencies.
59
60        Problem reported by Mickey Gabel <mickey@monfort.co.il>.
61
62        * include/freetype/config/ftstdlib.h (ft_exit): Removed.  Unused.
63
64        * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c:
65        s/memcpy/ft_memcpy/.
66        * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/.
67
682009-01-11  Werner Lemberg  <wl@gnu.org>
69
70        * docs/formats.txt: Add link to PCF specification.
71
72        * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve
73        documentation.
74
752009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
76
77        * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
78        FT_Get_Advances): Change the type of load_flags from FT_UInt32 to
79        FT_Int32, to match with the flags for FT_Load_Glyph().
80        * src/cff/cffdrivr.c (cff_get_advances): Ditto.
81        * src/truetype/ttdriver.c (tt_get_advances): Ditto.
82        * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
83        Ditto.
84        * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
85        Ditto.
86
872009-01-09  Daniel Zimmermann  <netzimme@aol.com>
88
89        * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong
90        length check.  From Savannah patch #6682.
91
922009-01-09  Werner Lemberg  <wl@gnu.org>
93
94        Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2.
95
96        * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle
97        `count_offset' if it is zero (i.e., unused).  Otherwise, the first
98        element of the structure which holds the data is erroneously
99        modified.  Problem reported by Chi Nguyen <chint@necsv.com>.
100
1012009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
102
103        * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance,
104        FT_Get_Advances): Extend the type of load_flags from FT_UInt to
105        FT_UInt32, to pass 32-bit flags on 16bit platforms.
106        * src/cff/cffdrivr.c (cff_get_advances): Ditto.
107        * src/truetype/ttdriver.c (tt_get_advances): Ditto.
108        * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances):
109        Ditto.
110        * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
111        Ditto.
112
1132009-01-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
114
115        * src/base/ftobjs.c (FT_Done_Library): Issue an error message when
116        FT_Done_Face() cannot free all faces. If the list of the opened
117        faces includes broken face which FT_Done_Face() cannot free,
118        FT_Done_Library() retries FT_Done_Face() and it can fall into
119        an endless loop. See the discussion:
120        http://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html
121        http://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html
122
1232009-01-07  Werner Lemberg  <wl@gnu.org>
124
125        * docs/CHANGES: Document new key `a' in ftdiff.
126
1272009-01-06  Werner Lemberg  <wl@gnu.org>
128
129        * autogen.sh: Don't use GNUisms while calling sed.  Problem reported
130        by Sean McBride.
131
1322009-01-06  Werner Lemberg  <wl@gnu.org>
133
134        * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD
135        and FT_PIXEL_MODE_LCD_V.  Problem reported by Chi Nguyen
136        <chint@necsv.com>.
137
1382009-01-06  Diego Pettenò  <flameeyes@gmail.com>
139
140        * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and
141        AC_CANONICAL_TARGET and use $host_os only.  A nice explanation for
142        this change can be found at
143        http://blog.flameeyes.eu/s/canonical-target.
144
145        From Savannah patch #6712.
146
1472009-01-06  Sean McBride  <sean@rogue-research.com>
148
149        * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static.
150
151        * src/base/ftmac.c: Remove some #undefs.
152
1532008-12-26  Werner Lemberg  <wl@gnu.org>
154
155        Set `face_index' field in FT_Face for all font formats.
156
157        * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init),
158        sfnt/sfobjs.c (sfnt_init_face): Do it.
159
160        * docs/CHANGES: Document it.
161
1622008-12-22  Steve Grubb
163
164        * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files.
165        Patch from Savannah bug #25151.
166
1672008-12-21  Werner Lemberg  <wl@gnu.org>
168
169        * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c,
170        src/smooth/ftgrays.c, src/base/ftobjc.s, src/sfobjs.c:
171        s/_Err_Bad_Argument/_Err_Invalid_Argument/.  The former is for
172        errors in the bytecode interpreter only.
173
1742008-12-21  Werner Lemberg  <wl@gnu.org>
175
176        * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL
177        arguments.
178        Fix return value for non-PFR fonts.  Both problems reported by Chi
179        Nguyen <chint@necsv.com>.
180
1812008-12-21  anonymous
182
183        FT_USE_MODULE declares things as:
184
185          extern const FT_Module_Class
186
187        (or similar for C++).  However, the actual types of the variables
188        being declared are often different, e.g., FT_Driver_ClassRec or
189        FT_Renderer_Class.  (Some are, indeed, FT_Module_Class.)
190
191        This works with most C compilers (since those structs begin with an
192        FT_Module_Class struct), but technically it's undefined behavior.
193
194        To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
195        paragraph 2:
196
197          All declarations that refer to the same object or function shall
198          have compatible type; otherwise, the behavior is undefined.
199
200        (And they are not compatible types.)
201
202        Most C compilers don't reject (or even detect!) code which has this
203        issue, but the GCC LTO development branch compiler does.  (It
204        outputs the types of the objects while generating .o files, along
205        with a bunch of other information, then compares them when doing the
206        final link-time code generation pass.)
207
208        Patch from Savannah bug #25133.
209
210        * src/base/ftinit.c (FT_USE_MODULE): Include variable type.
211
212        * builds/amiga/include/freetype/config/ftmodule.h,
213        include/freetype/config/ftmodule.h, */module.mk: Updated to declare
214        pass correct types to FT_USE_MODULE.
215
2162008-12-21  Hongbo Ni  <hongbo@njstar.com>
217
218        * src/autofit/aflatin.c (af_latin_hint_edges),
219        src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c
220        (af_cjk_hint_edges): Protect against division by zero.  This fixes
221        Savannah bug #25124.
222
2232008-12-18  Werner Lemberg  <wl@gnu.org>
224
225        * docs/CHANGES: Updated.
226
2272008-12-18  Bevan, David  <dbevan@emtex.com>
228
229        Provide API for accessing embedding and subsetting restriction
230        information.
231
232        * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING,
233        FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING,
234        FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING,
235        FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New
236        macros.
237        (FT_Get_FSType_Flags): New function declaration.
238
239        * src/base/ftobjs.c (FT_Get_FSType_Flags): New function.
240
241        * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c
242        (t42_keywords): Handle `FSType'.
243
244        * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field.
245
2462008-12-17  Werner Lemberg  <wl@gnu.org>
247
248        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal
249        macros so that copying the source code into an application works
250        out of the box.
251
2522008-12-17  Werner Lemberg  <wl@gnu.org>
253
254        * include/freetype/ftsynth.h, src/base/ftsynth.c: Move
255        FT_GlyphSlot_Own_Bitmap to...
256        * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files.
257
258        * docs/CHANGES: Document it.
259
2602008-12-10  Werner Lemberg  <wl@gnu.org>
261
262        Generalize the concept of `tricky' fonts by introducing
263        FT_FACE_FLAG_TRICKY to indicate that the font format's hinting
264        engine is necessary for correct rendering.
265
266        At the same time, slightly modify the behaviour of tricky fonts:
267        FT_LOAD_NO_HINTING is now ignored.  To really force raw loading
268        of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and
269        FT_LOAD_NO_AUTOHINT must be used.
270
271        Finally, tricky TrueType fonts always use the bytecode interpreter
272        even if the patented code is used.
273
274        * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY):
275        New macros.
276
277        * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags
278        semantics as described above.
279
280        * src/truetype/ttobjs.c (tt_check_trickyness): New function, using
281        code of ...
282        (tt_face_init): This function, now simplified and updated to new
283        semantics.
284
285        * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky
286        fonts.
287
288        * docs/CHANGES: Document it.
289
2902008-12-09  Werner Lemberg  <wl@gnu.org>
291
292        Really fix Savannah bug #25010: An SFNT font with neither outlines
293        nor bitmaps can be considered as containing space `glyphs' only.
294
295        * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where
296        a `glyf' table is missing.
297
298        * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no
299        `glyf' table but a non-zero `loca' entry.
300        (tt_loader_init): Handle missing `glyf' table.
301
302        * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05.
303
304        * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines
305        nor bitmaps is scalable.
306
3072008-12-05  Werner Lemberg  <wl@nu.org>
308
309        * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges.  This
310        fixes Savannah bug #21190 which also provides a basic patch.
311
3122008-12-05  Werner Lemberg  <wl@nu.org>
313
314        * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value
315        0x100 instead of 0x10000; the latter value is already occupied by
316        FT_LOAD_TARGET_LIGHT.  Bug reported by James Cloos.
317
318
319        Handle SFNT with neither outlines nor bitmaps.  This fixes Savannah
320        bug #25010.
321
322        * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither
323        outlines nor bitmaps.
324
325        * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there
326        is no table with glyphs.
327
328
329        * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging
330        message.
331
3322008-12-01  Werner Lemberg  <wl@gnu.org>
333
334        GDEF tables need `glyph_count' too for validation.  Problem reported
335        by Chi Nguyen <chint@necsv.com>.
336
337        * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h
338        (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass
339        `glyph_count'.
340
3412008-11-29  Werner Lemberg  <wl@gnu.org>
342
343        * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c,
344        src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c,
345        src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c,
346        src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c,
347        src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings
348        (Atari PureC).
349
3502008-11-29  James Cloos  <cloos@jhcloos.com>
351
352        * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix
353        it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values
354        in the /BlendDesignMap space).
355
3562008-11-29  James Cloos  <cloos@jhcloos.com>
357
358        * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*,
359        whereas `design_points' is FT_Long*.  Therefore, return blend rather
360        than design points.
361
3622008-11-27  Werner Lemberg  <wl@gnu.org>
363
364        * src/cff/cffparse.c (cff_parse_real): Handle more than nine
365        significant digits correctly.  This fixes Savannah bug #24953.
366
3672008-11-25  Daniel Zimmermann  <netzimme@aol.com>
368
369        * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream
370        before the NULL check.  From Savannah patch #6681.
371
3722008-11-24  Werner Lemberg  <wl@gnu.org>
373
374        Fixes from the gnuwin32 port.
375
376        * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/.
377
378        * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H.
379
380        * src/psaux/psobjs.c (ps_table_add): Check `length'.
381
3822008-11-15  Werner Lemberg  <wl@gnu.org>
383
384        * src/truetype/ttinterp.c (tt_default_graphics_state): The default
385        value for `scan_type' is zero, as confirmed by Greg Hitchcock from
386        Microsoft.  Problem reported by Michal Nowakowski
387        <miszka@limes.com.pl>.
388
3892008-11-12  Tor Andersson  <tor.andersson@gmail.com>
390
391        * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field.
392        This fixes Savannah bug #24819.
393
3942008-11-08  Werner Lemberg  <wl@gnu.org>
395
396        * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards
397        since OpenType version 1.5 has been released.
398
399        * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY,
400        TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5.
401        (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE,
402        TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN,
403        TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE,
404        TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI,
405        TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC,
406        TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA,
407        TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING,
408        TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE,
409        TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI,
410        TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS,
411        TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New
412        macros for OpenType 1.5.
413
4142008-11-08  Wenlin Institute  <wenlin@wenlin.com>
415
416        * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against
417        slot->internal == NULL.  Reported by Graham Asher.
418
4192008-11-08  Werner Lemberg  <wl@gnu.org>
420
421        * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error
422        code so that memory allocation problems can be distinguished from
423        missing table entries.  Reported by Graham Asher.
424        (GET_NAME): New macro.
425        (sfnt_load_face): Use it.
426
4272008-11-05  Werner Lemberg  <wl@gnu.org>
428
429        * devel/ftoption.h, include/freetype/config/ftoption.h
430        [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine
431        TT_CONFIG_OPTION_UNPATENTED_HINTING.  This fixes the return value of
432        `FT_Get_TrueType_Engine_Type' (and makes it work as documented).
433        Reported in bug #441638 of bugzilla.novell.com.
434
435        * docs/CHANGES: Document it.
436
4372008-11-03  Werner Lemberg  <wl@gnu.org>
438
439        * src/type1/t1load.c (parse_subrs): Use an endless loop.  There are
440        fonts (like HELVI.PFB version 003.001, used on OS/2) which define
441        some `subrs' elements more than once.  Problem reported by Peter
442        Weilbacher <mozilla@weilbacher.org>.
443
4442008-10-15  Graham Asher  <graham.asher@btinternet.com>
445
446        * src/sfnt/ttpost.c (tt_post_default_names): Add `const'.
447
4482008-10-15  David Turner  <david@freetype.org>
449
450        * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for
451        meddlesome compilers' warning against `for ( ...; ...; ...) ;'.
452
4532008-10-14  Werner Lemberg  <wl@gnu.org>
454
455        * src/cff/cffobjs.c (cff_face_init): Remove compiler warning.
456        Suggested by Bram Tassyns in Savannah patch #6651.
457
4582008-10-12  Graham Asher  <graham.asher@btinternet.com>
459
460        * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of
461        `underline_position'.
462
4632008-10-12  Werner Lemberg  <wl@gnu.org>
464
465        * docs/CHANGES: Updated.
466
4672008-10-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
468
469        Fix Savannah bug #24468.
470
471        According to include/freetype/internal/ftobjs.h, the appropriate
472        type to interchange single character codepoint is FT_UInt32. It
473        should be distinguished from FT_UInt which can be 16bit integer.
474
475        * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type
476        of the second argument `pcharcode' from FT_UInt* to FT_UInt32*.
477        (tt_cmap4_char_map_binary): Ditto.
478        (tt_cmap14_get_nondef_chars): Change the type of return value
479        from FT_UInt* to FT_UInt32*.
480
4812008-10-08  John Tytgat  <John.Tytgat@esko.com>
482
483        Fix Savannah bug #24485.
484
485        * src/type1/t1load.c (parse_charstrings): Assure that we always have
486        a .notdef glyph.
487
4882008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
489
490        * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build.
491        * builds/mac/ftmac.c: Ditto.
492
4932008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
494
495        * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions.
496        * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H.
497
4982008-10-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
499
500        * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in
501        the beginning of sfnt container.
502        * src/sfnt/ttload.c (check_table_dir): Return
503        `SFNT_Err_Table_Missing' when sfnt table directory structure is
504        correct but essential tables for TrueType fonts (`head', `bhed' or
505        `SING') are missing.  Other errors are returned by
506        SFNT_Err_Unknown_File_Format.
507
508        * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns
509        `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'.  It is
510        enabled only when old mac font support is configured.
511
5122008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
513
514        * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN,
515        TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify
516        the repeated calculations of these values in ftobjs.c and ftmac.c.
517        * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags.
518        * src/base/ftmac.c: Ditto.
519        * builds/mac/ftmac.c: Ditto.
520
5212008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
522
523        * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong
524        initialization of *is_sfnt_cid.
525
5262008-10-04  Werner Lemberg  <wl@gnu.org>
527
528        * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler
529        warnings.
530
5312008-10-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
532
533        * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by...
534        (ft_lookup_PS_in_sfnt_stream): This.
535        (open_face_PS_from_sfnt_stream): New function.  It checks whether
536        the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed
537        font, then try to open a face for given face_index.
538        (Mac_Read_sfnt_Resource): Replace the combination of
539        `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by
540        `open_face_PS_from_sfnt_stream'.
541        * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto.
542        * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
543        * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add
544        `open_face_PS_from_sfnt_stream'.
545
5462008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
547
548        * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to
549        FALSE if neither `CID ' nor `TYP1' is found in the sfnt container.
550
5512008-10-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
552
553        * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or
554        MrC compiler of MPW is used.  These compilers do not define the
555        macro __APPLE__ by themselves.
556        * builds/unix/ftconfig.in: Ditto.
557        * builds/vms/ftconfig.h: Ditto.
558        * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to
559        include ftmac.c if FreeType 2 is built by MPW.
560        * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to
561        enable shared functions for ftmac.c if FreeType 2 is built by MPW.
562
563        * builds/mac/ftmac.c: Include ftbase.h.
564        (memory_stream_close): Removed.
565        (new_memory_stream): Ditto.
566        (open_face_from_buffer): Removed.  Use the implementation in
567        ftobjs.c.
568        (ft_lookup_PS_in_sfnt): Ditto.
569
570        * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an
571        included part of ftbase.c, to share the functions in ftobjs.c.  The
572        rule compiling ftmac.c separately is removed and the rule copying
573        ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added.
574        * builds/mac/FreeType.m68k_cfm.make.txt: Ditto.
575        * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
576        * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
577
5782008-10-02  Bram Tassyns  <bramt@enfocus.be>
579
580        * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0.  This
581        fixes Savannah bug #24430.
582
5832008-10-02  Werner Lemberg  <wl@gnu.org>
584
585        * builds/freetype.mk (BASE_H): Rename to...
586        (INTERNAL_H): This.
587        (FREETYPE_H): Updated.
588        * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H.
589        * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h.
590        * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h.
591        * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h.
592        * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h.
593        * src/type42/rules.mk (T42_DRV_H): Add t42types.h.
594
5952008-10-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
596
597        * src/base/ftbase.h: New file to declare the private utility
598        functions shared by the sources of base modules.  Currently,
599        `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to
600        share between ftobjs.c and ftmac.c.
601
602        * src/base/rule.mk: Add ftbase.h.
603
604        * src/base/ftobjs.c: Include ftbase.h.
605        (memory_stream_close): Build on any platform when old MacOS font
606        support is enabled.
607        (new_memory_stream): Ditto.
608        (open_face_from_buffer): Build on any platform when old MacOS font
609        support is enabled.  The counting of the face in a font file is
610        slightly different between Carbon-dependent parser and Carbon-free
611        parser.  They are merged with the platform-specific conditional.
612        (ft_lookup_PS_in_sfnt): Ditto.
613
614        * src/base/ftmac.c: Include ftbase.h.
615        (memory_stream_close): Removed.
616        (new_memory_stream): Ditto.
617        (open_face_from_buffer): Removed.  Use the implementation in
618        ftobjs.c.
619        (ft_lookup_PS_in_sfnt): Ditto.
620
6212008-10-02  Werner Lemberg  <wl@gnu.org>
622
623        * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed
624        if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined.
625
6262008-10-01  Werner Lemberg  <wl@gnu.org>
627
628        * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c
629        (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done),
630        src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c
631        (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done),
632        src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0.
633        Reported by Graham Asher.
634
6352008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
636
637        * src/base/rules.mk: Add conditional source to BASE_SRC, for `make
638        multi' on Mac OS X.  If the macro $(ftmac_c) is defined,
639        $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC.  In a normal build, the
640        lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes
641        ftmac.c.
642        * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c).
643        * builds/unix/configure.raw: Add procedure to set up appropriate
644        value of $(ftmac_c) with the consideration of the availability of
645        Carbon framework.
646
6472008-09-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
648
649        * src/base/Jamfile: Add target for multi build by jam on Mac OS X.
650        * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this
651        function for MPW building.  It is synchronized the condition to
652        include ftmac.c source into ftbase.c.
653
6542008-09-22  Werner Lemberg  <wl@gnu.org>
655
656        * src/cff/cffgload.c (CFF_Operator, cff_argument_counts,
657        cff_decoder_parse_charstrings): Handle (invalid)
658        `callothersubr' and `pop' instructions.
659
6602008-09-22  John Tytgat  <John.Tytgat@esko.com>
661
662        Fix Savannah bug #24307.
663
664        * include/freetype/internal/t1types.h (CID_FaceRec),
665        src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'.
666
6672008-09-21  Werner Lemberg  <wl@gnu.org>
668
669        * src/smooth/ftgrays.c (gray_raster_render): Don't dereference
670        `target_map' if FT_RASTER_FLAG_DIRECT is set.  Problem reported by
671        Stephan T. Lavavej <stl@nuwen.net>.
672
6732008-09-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
674
675        * src/otvalid/Jamfile: Add missing target `otvmath' for multi build
676        by jam.
677        * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by
678        jam.
679
6802008-09-20  Werner Lemberg  <wl@gnu.org>
681
682        * src/smooth/ftgrays.c (gray_find_cell): Fix threshold.  The values
683        passed to this function are already `normalized'.  Problem reported
684        by Stephan T. Lavavej <stl@nuwen.net>.
685
686        * docs/CHANGES: Document it.
687
6882008-09-20  Werner Lemberg  <wl@gnu.org>
689
690        * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H.
691        (FT_Outline_Decompose): Decorate with tracing messages.
692
693        * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with
694        FT_DEBUG_LEVEL_TRACE.
695        [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and
696        stdarg.h.
697
698        (FT_TRACE) [_STANDALONE_]: Remove.
699        (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function.
700        (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros.
701        (FT_ERROR) [_STANDALONE_]: Updated.
702
703        (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition.
704        Use FT_TRACE7.
705        (gray_dump_cells): Make it `static void'.
706        (gray_convert_glyph): Use FT_TRACE7.
707
708        (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in
709        ftoutln.c.
710
711        * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use
712        FT_ERROR_BASE.
713
714        * docs/formats.txt: Updated.
715
7162008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
717
718        * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped
719        CID-keyed font support.
720        * builds/mac/ftmac.c: Ditto.
721
7222008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
723
724        * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in
725        sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code.
726        `open_face_from_buffer' frees the passed buffer if it cannot open a
727        face from the buffer, so the caller must not free it.
728
7292008-09-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
730
731        * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support
732        for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font.
733        (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID '
734        table in sfnt table directory.  It is used before loading TrueType
735        font driver.
736
737        * docs/CHANGES: Add note about the current status of sfnt-wrapped
738        Type1 and sfnt-wrapped CID-keyed font support.
739
7402008-09-18  Werner Lemberg  <wl@gnu.org>
741
742        * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for
743        orthogonality (ft_free and ft_sfree could belong to different memory
744        pools).  This fixes Savannah bug #24297.
745
7462008-09-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
747
748        * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined
749        in ttags.h instead of numerical value 0x4F54544FL.
750
7512008-09-16  Werner Lemberg  <wl@gnu.org>
752
753        * src/cff/cffgload.h, src/cff/cffgload.c
754        (cff_decoder_set_width_only): Eliminate function call.
755
7562008-09-15  George Williams  <gww@silcom.com>
757
758        Fix Savannah bug #24179, reported by Bram Tassyns.
759
760        * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation
761        of default values.
762
7632008-09-15  Werner Lemberg  <wl@gnu.org>
764
765        * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index'
766        and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to
767        prevent unconditional definition.  This fixes Savannah bug #24241.
768
769        * src/psnames/pstables.h: Regenerated.
770
7712008-09-13  Werner Lemberg  <wl@gnu.org>
772
773        * autogen.sh, builds/unix/configure.raw,
774        include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor
775        beautifying.
776
777        * include/freetype/ftadvanc.h, include/freetype/ftgasp.h,
778        include/freetype/ftlcdfil.h: Protect against FreeType 1.
779        Some other minor fixes.
780
781        * devel/ftoption.h: Synchronize with
782        include/freetype/config/ftoption.h.
783
7842008-09-11  Werner Lemberg  <wl@gnu.org>
785
786        * src/base/ftbase.c: Include ftadvanc.c.
787
7882008-09-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
789
790        * builds/unix/ftconfig.in: Duplicate the cpp computation of
791        FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h.
792        (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro.  If defined, the cpp
793        computation is disabled and the statically configured sizes are
794        used.  This fixes Savannah bug #21250.
795
796        * builds/unix/configure.raw: Add the checks to compare the cpp
797        computation results of the bit length of int and long versus the
798        sizes detected by running `configure'.  If the results are
799        different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the
800        results.
801        New option --{enable|disable}-biarch-config is added to define or
802        undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually.
803
8042008-09-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
805
806        * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or
807        ApplicationService framework is missing.  Although this value is not
808        used in building of FreeType2, it is written in `freetype2.pc' and
809        `freetype-config'.
810
8112008-09-01  david turner  <david@freetype.org>
812
813        * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap
814        index to mean `use default cached FT_Face's charmap'.  This fixes
815        Savannah bug #22625.
816        * include/freetype/ftcache.h: Document it.
817
818
819        Make FT_MulFix an inlined function.  This is done to speed up
820        FreeType a little (on x86 3% when loading+hinting, 10% when
821        rendering, ARM savings are more important though).  Disable this by
822        undefining FT_CONFIG_OPTION_INLINE_MULFIX.
823
824        Use of assembler code can now be controlled with
825        FT_CONFIG_OPTION_NO_ASSEMBLER.
826
827        * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in
828        [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler
829        implementation.
830        [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler
831        implementation taken from `ftcalc.c'.
832        [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro
833        which is defined to the platform-specific assembler implementation
834        of FT_MulFix.
835        [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER]
836        (FT_MULFIX_INLINED): New macro.
837
838        * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER,
839        FT_CONFIG_OPTION_INLINE_MULFIX): New macros.
840
841        * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED.
842
843        * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and
844        FT_MULFIX_INLINED.
845
846
847        Add a new header named FT_ADVANCES_H declaring some new APIs to
848        extract the advances of one or more glyphs without necessarily
849        loading their outlines.  Also provide `fast loaders' for the
850        TrueType, Type1, and CFF font drivers (more to come later).
851
852        * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files.
853
854        * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro.
855        * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro.
856
857        * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc):
858        `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed',
859        respectively.
860
861        * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add
862        ftadvanc.c.
863
864        * src/cff/cffdrivr.c (cff_get_advances): New function.
865        (cff_driver_class): Register it.
866
867        * src/cff/cffgload.c (cff_decoder_set_width_only): New function.
868        (cff_decoder_parse_charstrings): Handle `width_only'.
869        (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY.
870
871        * src/cff/cffgload.h (cff_decoder): New element `width_only'.
872        (cff_decoder_set_width_only): New declaration.
873
874        * src/truetype/ttdriver.c (tt_get_advances): New function.
875        (tt_driver_class): Register it.
876
877        * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to...
878        (TT_Get_HMetrics, TT_Get_VMetrics): This.
879        Update callers.
880        * src/truetype/ttgload.h: Declare them.
881
882        * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New
883        function.
884        * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances.
885
886
887        Add checks for minimum version of the `autotools' stuff.
888
889        * autogen.sh: Implement it.
890        (get_major_version, get_minor_version, get_patch_version,
891        compare_to_minimum_version, check_tool_version): New auxiliary
892        functions.
893
894        * README.CVS: Document it.
895
8962008-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
897
898        * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in
899        ttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ).
900
9012008-08-28  Werner Lemberg  <wl@gnu.org>
902
903        * src/type1/t1load.c (parse_encoding): Protect against infinite
904        loop.  This fixes Savannah bug #24150 (where a patch has been posted
905        too).
906
9072008-08-23  Werner Lemberg  <wl@gnu.org>
908
909        * src/type/t1afm.c (compare_kern_pairs), src/pxaux/afmparse.c
910        (afm_compare_kern_pairs): Fix comparison.  This fixes Savannah bug
911        #24119.
912
9132008-08-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
914
915        * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always,
916        even if passed library or arguments are invalid.  This fixes a bug
917        that an uninitialized stream is freed when an invalid library handle
918        is passed.  Originally proposed by Mike Fabian, 2008/08/18 on
919        freetype-devel.
920        (FT_Open_Face): Ditto (stream).
921        (load_face_in_embedded_rfork): Ditto (stream2).
922
9232008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
924
925        * src/base/ftmac.c: Add a fallback to guess the availability of the
926        `ResourceIndex' type.  It is used when built without configure
927        (e.g., a build with Jam).
928        * builds/mac/ftmac.c: Ditto.
929        * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0
930        explicitly, even if `ResourceIndex' is unavailable.
931
9322008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
933
934        * builds/unix/configure.raw: In checking of Mac OS X features,
935        all-in-one header file `Carbon.h' is replaced by the minimum
936        header file `CoreServices.h', similar to current src/base/ftmac.c.
937
9382008-08-18  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
939
940        * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of
941        sub-header when its code_count is 0.  Many Japanese Dynalab fonts
942        include such an empty sub-header (code_count == 0, first_code == 0
943        delta == 0, but offset != 0) as the second sub-header in SJIS cmap.
944
9452008-08-04  Werner Lemberg  <wl@gnu.org>
946
947        * src/type1/t1tokens.h: Handle `ForceBold' keyword.  This fixes
948        Savannah bug #23995.
949
950        * src/cid/cidload.c (parse_expansion_factor): New callback function.
951        (cid_field_records): Use it for `ExpansionFactor'.
952        * src/cod/cidtoken.h: Handle `ForceBold' keyword.
953        Don't handle `ExpansionFactor'.
954
9552008-08-04  Bram Tassyns  <bramt@enfocus.be>
956
957        * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
958        resulted in incorrect scaling.  This fixes Savannah bug #23973.
959
9602008-08-04  Werner Lemberg  <wl@gnu.org>
961
962        Be more tolerant w.r.t. invalid entries in SFNT table directory.
963
964        * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and
965        adjust table count.
966        Add more trace messages.
967        (tt_face_load_font_dir): Updated.
968
9692008-07-30  Werner Lemberg  <wl@gnu.org>
970
971        * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer
972        assume that the first argument on the stack is the bottom-most
973        element.  Two reasons:
974
975          o According to people from Adobe it is missing in the Type 2
976            specification that pushing of additional, superfluous arguments
977            on the stack is prohibited.
978
979          o Acroread in general handles fonts differently, namely by popping
980            the number of arguments needed for a particular operand (as a PS
981            interpreter would do).  In case of buggy fonts this causes a
982            different interpretation which of the elements on the stack are
983            superfluous and which not.
984
985        Since there are CFF subfonts (embedded in PDFs) which rely on
986        Acroread's behaviour, FreeType now does the same.
987
9882008-07-27  Werner Lemberg  <wl@gnu.org>
989
990        Add extra mappings for `Tcommaaccent' and `tcommaaccent'.  This
991        fixes Savannah bug #23940.
992
993        * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to...
994        (EXTRA_GLYPH_LIST_SIZE): This.
995        Increase by 2.
996        (ft_wgl_extra_unicodes): Rename to...
997        (ft_extra_glyph_unicodes): This.
998        Add two code values.
999        (ft_wgl_extra_glyph_names): Rename to...
1000        (ft_extra_glyph_names): This.
1001        Add two glyphs.
1002        (ft_wgl_extra_glyph_name_offsets): Rename to...
1003        (ft_extra_glyph_name_offsets): This.
1004        Add two offsets.
1005
1006        (ps_check_wgl_name, ps_check_wgl_unicode): Rename to...
1007        (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This.
1008        Updated.
1009        (ps_unicodes_init): Updated.
1010
10112008-07-26  Werner Lemberg  <wl@gnu.org>
1012
1013        * src/cff/cffgload.c (cff_decoder_prepare,
1014        cff_decoder_parse_charstrings): Improve debug output.
1015
10162008-07-22  Martin McBride  <mmcbride@emtex.com>
1017
1018        * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear,
1019        tt_cmap4_char_map_binary): Handle fonts which treat the last segment
1020        specially.  According to the specification, such fonts would be
1021        invalid but acroread accepts them.
1022
10232008-07-16  Jon Foster  <Jon.Foster@cabot.co.uk>
1024
1025        * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error.
1026
1027        * src/base/ftcalc.c (FT_MulFix): Fix portability issue.
1028
1029        * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]:
1030        Fix compiler warning.
1031
10322008-07-16  Werner Lemberg  <wl@gnu.org>
1033
1034        Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly.
1035
1036        * src/cff/cffload.c (cff_font_load): Pass `pure_cff'.
1037        Invert sids table only if `pure_cff' is set.
1038        * src/cff/cffload.h: Udpated.
1039
1040        * src/cff/cffobjs.c (cff_face_init): Updated.
1041        Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set.
1042
1043        * docs/CHANGES: Updated.
1044
10452008-07-09  Werner Lemberg  <wl@gnu.org>
1046
1047        * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts
1048        where num_locations < num_glyphs.  Problem reported by Ding Li.
1049
10502008-07-05  Werner Lemberg  <wl@gnu.org>
1051
1052        Since FreeType uses `$(value ...)', we now need GNU make 3.80 or
1053        newer.  This fixes Savannah bug #23648.
1054
1055        * configure: zsh doesn't like ${1+"$@"}.
1056        Update needed GNU make version.
1057        * builds/toplevel.mk: Check for `$(eval ...)'.
1058        * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document
1059        it.
1060
10612008-07-04  Werner Lemberg  <wl@gnu.org>
1062
1063        * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
1064        pixel, only check for dropouts if neither start nor end point lies
1065        on a pixel center.  This fixes Savannah bug #23762.
1066
10672008-06-29  Werner Lemberg  <wl@gnu.org>
1068
1069        * Version 2.3.7 released.
1070        =========================
1071
1072
1073        Tag sources with `VER-2-3-7'.
1074
1075        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1076        version number to 2.3.7.
1077
1078        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1079        builds/win32/visualc/freetype.dsp,
1080        builds/win32/visualc/freetype.vcproj,
1081        builds/win32/visualce/index.html,
1082        builds/win32/visualce/freetype.dsp,
1083        builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/.
1084
1085        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
1086
1087        * builds/unix/configure.raw (version_info): Set to 9:18:3.
1088
1089        * docs/release: Updated.
1090
10912008-06-28  Werner Lemberg  <wl@gnu.org>
1092
1093        * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to...
1094        * src/ftcalc.c: Here.  This fixes Savannah bug #23729.
1095
10962008-06-27  Werner Lemberg  <wl@gnu.org>
1097
1098        * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
1099        Horizontal_Gray_Sweep_Drop): Test for intersections which
1100        degenerate to a single point can be ignored; this has been confirmed
1101        by Greg Hitchcock from Microsoft.  (This was commented out code.)
1102
11032008-06-26  Werner Lemberg  <wl@gnu.org>
1104
1105        Improve navigation in API reference.
1106
1107        * src/tools/docmaker/tohtml.py (html_header_3): Renamed to...
1108        (html_header_6): This.
1109        (html_header_3, html_header_3i, html_header_4, html_header_5,
1110        html_header_5t): New strings.
1111        (toc_footer_start, toc_footer_end): New strings.
1112        (HtmlFormatter::html_header): Updated.
1113        (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header):
1114        New strings.
1115        (HtmlFormatter::index_enter): Use `html_index_header'.
1116        (HtmlFormatter::index_exit): Print `html_footer'.
1117        (HtmlFormatter::toc_enter): Use `html_toc_header'.
1118        (HtmlFormatter::toc_exit): Print proper footer.
1119
1120        Convert ~ to non-breakable space.
1121
1122        * src/tools/docmaker/tohtml.py (make_html_para): Implement it.
1123        Update header files accordingly.
1124
11252008-06-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1126
1127        * builds/unix/configure.raw: Check type `ResourceIndex' explicitly
1128        and define HAVE_TYPE_RESOURCE_INDEX if it is defined.  Mac OS X 10.5
1129        bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without
1130        ResourceIndex type definition.  The macro does not inform the type
1131        availability.
1132        * src/base/ftmac.c: More parentheses are inserted to clarify the
1133        conditionals to disable legacy APIs in `10.5 and later' cases.  If
1134        HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined.
1135
11362008-06-24  Werner Lemberg  <wl@gnu.org>
1137
1138        * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering
1139        mode.
1140
1141        * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph,
1142        Draw_Sweep): No-dropout mode is value 2, not value 0.
1143        (Draw_Sweep): Really skip dropout handling for no-dropout mode.
1144
11452008-06-24  Werner Lemberg  <wl@gnu.org>
1146
1147        * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour
1148        if it consists of one point only.  Based on a patch from Savannah
1149        bug #23683 (from John Tytgat).
1150
11512008-06-22  Werner Lemberg  <wl@gnu.org>
1152
1153        * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff
1154        with IS_HINTED.
1155
1156        * docs/CHANGES: Updated.
1157
11582008-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1159
1160        * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option
1161        but LDFLAGS does not, import it to LDFLAGS.  The option is used to
1162        specify non-default SDK on Mac OS X (e.g., universal binary SDK for
1163        Mac OS X 10.4 on PowerPC platform).  Although Apple TechNote 2137
1164        recommends to add the option only to CFLAGS, LDFLAGS should include
1165        it because libfreetype.la is built with -no-undefined.  This fixes a
1166        bug reported by Ryan Schmidt in MacPorts,
1167        http://trac.macports.org/ticket/15331.
1168
11692008-06-21  Werner Lemberg  <wl@gnu.org>
1170
1171        Enable access to the various dropout rules of the B&W rasterizer.
1172        Pass dropout rules from the TT bytecode interpreter to the
1173        rasterizer.
1174
1175        * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS,
1176        FT_OUTLINE_EXCLUDE_STUBS): New flags for for FT_Outline.
1177
1178        * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop,
1179        Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the
1180        OpenType specification.
1181        Fix mode 4 computation.
1182        (Render_Glyph, Render_Gray_Glyph): Handle new outline flags.
1183
1184        * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion
1185        mode to FT_OUTLINE_XXX flags.
1186
1187        * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check.
1188
11892008-06-19  Werner Lemberg  <wl@gnu.org>
1190
1191        * src/cff/cffobjs.c (cff_face_init): Compute final
1192        `dict->units_per_em' value before assigning it to
1193        `cffface->units_per_EM'.  Otherwise, CFFs without subfonts are
1194        scaled incorrectly if the font matrix is non-standard.  This fixes
1195        Savannah bug #23630.
1196
1197        * docs/CHANGES: Updated.
1198
11992008-06-19  Werner Lemberg  <wl@gnu.org>
1200
1201        * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix
1202        from 2008-06-19.
1203
12042008-06-18  Werner Lemberg  <wl@gnu.org>
1205
1206        * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21.
1207        Reported by Peter Weilbacher <mozilla@weilbacher.org>.
1208
1209        * docs/CHANGES: Updated.
1210
12112008-06-15  George Williams  <gww@silcom.com>
1212
1213        * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set
1214        `valid->extra2' to 1.  This is undocumented in the OpenType 1.5
1215        specification.
1216
12172008-06-15  Werner Lemberg  <wl@gnu.org>
1218
1219        * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly
1220        from clobbering.  Patch from Savannah bug report #23556.
1221
1222        * docs/CHANGES: Document it.
1223
12242008-06-10  Werner Lemberg  <wl@gnu.org>
1225
1226        * autogen.sh: Add option `--install' to libtoolize.
1227
12282008-06-10  Werner Lemberg  <wl@gnu.org>
1229
1230        * Version 2.3.6 released.
1231        =========================
1232
1233
1234        Tag sources with `VER-2-3-6'.
1235
1236        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
1237        version number to 2.3.6.
1238
1239        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
1240        builds/win32/visualc/freetype.dsp,
1241        builds/win32/visualc/freetype.vcproj,
1242        builds/win32/visualce/index.html,
1243        builds/win32/visualce/freetype.dsp,
1244        builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/.
1245
1246        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
1247
1248        * builds/unix/configure.raw (version_info): Set to 9:17:3.
1249
1250
1251        * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x'
1252        and `scale_y'.
1253        * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'.
1254
1255
1256        * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H.
1257        * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
1258
12592008-06-10  Werner Lemberg  <wl@gnu.org>
1260
1261        * src/base/ftobjs.c (open_face): Check `clazz->init_face' and
1262        `clazz->done_face'.
1263
12642008-06-09  VaDiM  <s_sliva@rambler.ru>
1265
1266        Support debugging on WinCE.  From Savannah patch #6536; this fixes
1267        bug #23497.
1268
1269        * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro
1270        as a replacement for OutputDebugStringA (which WinCE doesn't have).
1271        Update all callers.
1272        (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have
1273        environment variables.
1274
12752008-06-09  Werner Lemberg  <wl@gnu.org>
1276
1277        * README.CVS: Updated.
1278
1279        * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated
1280        for newer versions of autoconf and friends.
1281
12822008-06-08  Werner Lemberg  <wl@gnu.org>
1283
1284        * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and
1285        `private_len' unsigned.
1286
1287        * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read
1288        it as such.
1289        (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned.
1290
1291
1292        * src/base/ftstream.c (FT_Stream_Skip): Reject negative values.
1293
1294
1295        * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis'
1296        for sane value.
1297        Fix typo.
1298
1299
1300        * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly.
1301
1302
1303        * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check
1304        `last_point'.
1305
1306
1307        * src/sfnt/ttload.c (tt_face_load_max_profile): Limit
1308        `maxTwilightPoints'.
1309
13102008-06-06  Werner Lemberg  <wl@gnu.org>
1311
1312        * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0'
1313        correctly.  This fixes glyphs `t' and `h' of Arial Narrow at 12ppem.
1314
13152008-06-03  Werner Lemberg  <wl@gnu.org>
1316
1317        * include/freetype/ftcache.h (FTC_FaceID): Change type back to
1318        FT_Pointer.  Reported by Ian Britten <britten@caris.com>.
1319
13202008-06-02  Werner Lemberg  <wl@gnu.org>
1321
1322        Emit header info for defined FreeType objects in reference.
1323
1324        * src/tools/docmaker/content.py (re_header_macro): New regexp.
1325        (ContentProcessor::__init__): Initialize new dictionary `headers'.
1326        (DocBlock::__init__): Collect macro header definitions.
1327
1328        * src/tools/docmaker/tohtml.py (header_location_header,
1329        header_location_footer): New strings.
1330        (HtmlFormatter::__init__): Pass `headers' dictionary.
1331        (HtmlFormatter::print_html_field): Don't emit paragraph tags.
1332        (HtmlFormatter::print_html_field_list): Emit empty paragraph.
1333        (HtmlFormatter::block_enter): Emit header info.
1334
13352008-06-01  Werner Lemberg  <wl@gnu.org>
1336
1337        * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H,
1338        FT_INCREMENTAL_H): Added.
1339
13402008-05-28  Werner Lemberg  <wl@gnu.org>
1341
1342        * src/tools/docmaker/sources.py (SourceBlock::__init__): While
1343        looking for markup tags, return immediately as soon a single one is
1344        found.
1345
13462008-05-28  Werner Lemberg  <wl@gnu.org>
1347
1348        * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses
1349        original, unscaled input values.  Confirmed by Greg Hitchcock from
1350        Microsoft.
1351
13522008-05-27  Werner Lemberg  <wl@gnu.org>
1353
1354        * src/tools/docmaker/tohtml.py (block_footer_start,
1355        block_footer_middle): Beautify output.
1356
13572008-05-25  Werner Lemberg  <wl@gnu.org>
1358
1359        * src/raster/ftraster.c (fc_black_render): Return 0 when we are
1360        trying to render into a zero-width/height bitmap, not an error code.
1361
1362        * src/truetype/ttgload.c (load_truetype_glyph): Move initialization
1363        of the graphics state for subglyphs to...
1364        (TT_Hint_Glyph): This function.
1365        Hinting instructions for a composite glyph apparently refer to the
1366        just hinted subglyphs, not the unhinted, unscaled outline.  This
1367        seems to fix Savannah bugs #20973 and (at least partially) #23310.
1368
13692008-05-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1370
1371        * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid
1372        `aface' is returned by FT_New_Face_From_FOND().  The patch was
1373        proposed by an anonymous reporter of Savannah bug #23204.
1374
13752008-05-18  Werner Lemberg  <wl@gnu.org>
1376
1377        * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after
1378        correction for pixel boundary.  Without this patch, the effect can
1379        be cumulative under certain circumstances, making glyphs taller and
1380        taller after each call.  This fixes Savannah bug #19976.
1381
13822008-05-18  Werner Lemberg  <wl@gnu.org>
1383
1384        * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr.
1385        This fixes Savannah bug #23280.
1386
1387        * docs/CHANGES: Updated.
1388
13892008-05-18  David Turner  <david@freetype.org>
1390
1391        * src/psnames/psmodule.c (ft_wgl_extra_unicodes,
1392        ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets,
1393        ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make
1394        declarations non-global.
1395
1396        * src/type1/t1load.c: Add missing comment.
1397
13982008-05-17  Sam Hocevar  <samh>
1399
1400        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour
1401        glyphs correctly.  Patch from Savannah bug #23277.
1402
14032008-05-16  Werner Lemberg  <wl@gnu.org>
1404
1405        * docs/CHANGES: Updated.
1406
14072008-05-16  Sergey Tolstov  <stolstov@esri.com>
1408
1409        Improve support for WGL4 encoded fonts.
1410
1411        * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro.
1412        (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names,
1413        ft_wgl_extra_glyph_name_offsets): New arrays.
1414        (ps_check_wgl_name, ps_check_wgl_unicode): New functions.
1415        (ps_unicodes_init): Use them to add additional Unicode mappings.
1416
14172008-05-15  Werner Lemberg  <wl@gnu.org>
1418
1419        * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
1420        <op_closepath>: `closepath' without a path is a no-op, not an error
1421        (cf. the PS reference manual).
1422
1423        Reported by Martin McBride.
1424
14252008-05-15  Werner Lemberg  <wl@gnu.org>
1426
1427        * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated.
1428
14292008-05-15  Werner Lemberg  <wl@gnu.org>
1430
1431        * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array
1432        which contains a single but empty entry.  This is technically
1433        invalid (since it must end with `return'), but...
1434
1435        Reported by Martin McBride.
1436
14372008-05-14  Werner Lemberg  <wl@gnu.org>
1438
1439        Finish fix of scaling bug of CID-keyed CFF subfonts.
1440
1441        * include/freetype/internal/ftcalc.h, src/base/ftcalc.c
1442        (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New
1443        functions.
1444
1445        * src/cff/cffobjs.h (CFF_Internal): New struct.  It is used to
1446        provide global hinting data for both the top-font and all subfonts
1447        (with proper scaling).
1448
1449        * src/cff/cffobjs.c (cff_make_private_dict): New function, using
1450        code from `cff_size_init'.
1451        (cff_size_init, cff_size_done, cff_size_select, cff_size_request):
1452        Use CFF_Internal and handle subfonts.
1453        (cff_face_init): Handle top-dict and subfont matrices correctly;
1454        apply some heuristic in case of unlikely matrix concatenation
1455        results.  This has been discussed with people from Adobe (thanks
1456        goes mainly to David Lemon) who confirm that the CFF specs are fuzzy
1457        and not correct.
1458
1459        * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument.
1460
1461        * src/cff/cffgload.c (cff_builder_init): Updated.
1462        (cff_decoder_prepare): Handle hints globals for subfonts.
1463        Update all callers.
1464        (cff_slot_load): Handling scaling of subfonts properly.
1465
1466        * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function.
1467        (cff_parse_font_matrix): Use it.
1468
1469        * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em'
1470        FT_ULong.
1471
1472        * docs/CHANGES: Document it.
1473
14742008-05-13  Werner Lemberg  <wl@gnu.org>
1475
1476        * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
1477        Handle case `face_index < 0'.
1478        * docs/CHANGES: Document it.
1479
14802008-05-04  Werner Lemberg  <wl@gnu.org>
1481
1482        First steps to fix the scaling bug of CID-keyed CFF subfonts,
1483        reported by Ding Li on 2008/03/28 on freetype-devel.
1484
1485        * src/base/cff/cffparse.c (power_tens): New array.
1486        (cff_parse_real): Rewritten to introduce a fourth parameter which
1487        returns the `scaling' of the real number so that we have no
1488        precision loss.  This is not used yet.
1489        Update all callers.
1490        (cff_parse_fixed_thousand): Replace with...
1491        (cff_parse_fixed_scaled): This function.  Update all callers.
1492
14932008-05-03  Werner Lemberg  <wl@gnu.org>
1494
1495        * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without
1496        transformation since it recursively calls FT_Load_Glyph.  This fixes
1497        Savannah bug #23143.
1498
14992008-04-26  Werner Lemberg  <wl@gnu.org>
1500
1501        * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x'
1502        and `scale_y' as obsolete since they aren't used.
1503        * src/psaux/psobjs.c (t1_builder_init): Updated.
1504
1505        * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as
1506        obsolete since they aren't used.
1507        * src/cff/cffgload.c (cff_builder_init): Updated.
1508
15092008-04-14  Werner Lemberg  <wl@gnu.org>
1510
1511        * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to
1512        `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZ'.  From Savannah
1513        bug #22909.
1514
15152008-04-13  Werner Lemberg  <wl@gnu.org>
1516
1517        * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if
1518        integer part is zero.
1519
15202008-04-01  Werner Lemberg  <wl@gnu.org>
1521
1522        Fix compilation with g++ 4.1 (with both `single' and `multi'
1523        targets).
1524
1525        * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block
1526        which is crossed by a `goto'.
1527
1528        * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype.
1529
15302008-03-31  Werner Lemberg  <wl@gnu.org>
1531
1532        Fix support for subsetted CID-keyed CFFs.
1533
1534        * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED,
1535        FT_IS_CID_KEYED): New macros.
1536
1537        * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the
1538        maximum CID value in CID-keyed CFFs.
1539        Handle FT_FACE_FLAG_CID_KEYED flag.
1540
1541        * docs/CHANGES: Document it.
1542
1543
1544        Fix CFF font matrix calculation and improve precision.
1545
1546        * src/cff/cffparse.c (cff_parse_real): Increase precision if integer
1547        part is zero.
1548        (cff_parse_font_matrix): Simplify computation of `units_per_em';
1549        this prevents overflow also.
1550
1551
1552        Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts.
1553
1554        * src/cid/cidriver.c: Include FT_SERVICE_CID_H.
1555        (cid_get_ros): New function.
1556        (cid_service_cid_info): New service structure.
1557        (cid_services): Register it.
1558
15592008-03-23  Werner Lemberg  <wl@gnu.org>
1560
1561        Adjustments for Visual C++ 8.0, as reported by Rainer Deyke.
1562
1563        * builds/compiler/visualc.mk (CFLAGS): Remove /W5.
1564        (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE.
1565
15662008-03-21  Laurence Darby  <ldarby>
1567
1568        * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'.  Patch from
1569        Savannah bug #22675.
1570
15712008-03-13  Derek Clegg  <dclegg@apple.com>
1572
1573        * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop.
1574        Patch from Savannah bug #22541.
1575
15762008-03-03  Masatoshi Kimura  <VYV03354@nifty.ne.jp>
1577
1578        * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary,
1579        tt_cmap14_find_variant): Return correct value.
1580        (tt_cmap14_variant_chars): Fix check for `di'.
1581
15822008-02-29  Wermer Lemberg  <wl@gnu.org>
1583
1584        * docs/CHANGES: Updated.
1585
15862008-02-29  Wolf
1587
1588        Add build support for symbian platform.  From Savannah bug #22440.
1589
1590        * builds/symbian/*: New files.
1591
15922008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1593
1594        * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name
1595        synthesis.  For any face of a specified FOND, always the name for
1596        the first face was used.  Except of a FOND that refers multiple
1597        Type1 font files, wrong synthesized font names are not used at all,
1598        so this is an invisible bug.  A few limit checks are added too.
1599
1600        * builds/mac/ftmac.c: Ditto.
1601
16022008-02-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1603
1604        * builds/unix/configure.raw: Split compiler option to link Carbon
1605        frameworks to one option for CoreServices framework and another
1606        option for ApplicationServices framework.  The split options can be
1607        managed by GNU libtool to avoid unrequired duplication when FreeType
1608        is linked with other applications.  Suggested by Daniel Macks,
1609        Savannah bug #22366.
1610
16112008-02-18  Victor Stinner  <victor.stinner@haypocalc.com>
1612
1613        * src/truetype/ttinterp.c (Ins_IUP): Check number of points.  Fix
1614        from Savannah bug #22356.
1615
16162008-02-17  Jonathan Blow  <jon@number-none.com>
1617
1618        * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
1619        Check for valid callback pointers.
1620
16212008-02-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1622
1623        * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource
1624        handle by its value instead of ResError(), fix provided by Deron
1625        Kazmaier.  According to the Resource Manager Reference,
1626        GetResource(), Get1Resource(), GetNamedResource(),
1627        Get1NamedResource() and RGetResource() set noErr but return NULL
1628        handle when they can not find the requested resource.  These
1629        functions never return undefined values, so it is sufficient to
1630        check if the handle is not NULL.
1631
1632        * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto.
1633
16342008-02-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1635
1636        * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other
1637        inclusion styles.  Now it always includes src/base/ftmac.c;
1638        builds/mac/ftmac.c is never included in any configuration.
1639
1640        * builds/unix/configure.raw: Print warning if configure is executed
1641        with options to specify Carbon functionalities explicitly.
1642
1643        * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not
1644        included automatically and manual replacement is required.
1645
16462008-02-11  Werner Lemberg  <wl@gnu.org>
1647
1648        * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk
1649        (dos_setup), builds/freetype.mk (clean_project_dos,
1650        distclean_project_dos): Don't use \ but $(SEP).  Reported by Duncan
1651        Murdoch.
1652
16532008-01-18  Sylvain Pasche  <sylvain.pasche@gmail.com>
1654
1655        * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to
1656        mention intra-pixel algorithm.
1657
1658        * include/freetype/freetype.h (FT_Render_Mode): Mention that
1659        FT_Library_SetLcdFilter can be used to reduce fringes.
1660
16612008-01-16  Werner Lemberg  <wl@gnu.org>
1662
1663        * src/raster/ftraster.c (ft_black_render): Check `outline' before
1664        using it.  Reported by Allan Yang.
1665
16662008-01-12  Werner Lemberg  <wl@gnu.org>
1667
1668        * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove.
1669
16702008-01-12  Allan Yang, Jian Hua - SH  <Allan.Yang@fmc.fujitsu.com>
1671
1672        * src/raster/ftraster.c (ft_black_init)
1673        [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation.
1674
16752008-01-10  Werner Lemberg  <wl@gnu.org>
1676
1677        * src/truetype/ttgload.c (load_truetype_glyph): Handle the case
1678        where the number of contours in a simple glyph is zero (and which
1679        does contain an entry in the `glyf' table).  This fixes Savannah bug
1680        #21990.
1681
16822008-01-04  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1683
1684        Formatting suggested by Sean McBride.
1685
1686        * builds/mac/ftmac.c: Formatting (tab expanded).
1687        * src/autofit/afindic.c: Ditto.
1688        * src/base/ftcid.c: Ditto.
1689        * src/base/ftmac.c: Ditto.
1690
16912007-12-30  Werner Lemberg  <wl@gnu.org>
1692
1693        * src/smooth/ftgrays.c (gray_raster_render): Check `outline'
1694        correctly.
1695
16962007-12-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1697
1698        Improvement of POSIX resource-fork accessor to load unsorted
1699        references in a resource.  In HelveLTMM (resource-fork PostScript
1700        Type1 font bundled with Mac OS X since 10.3.x), the appearance order
1701        of PFB chunks is not sorted; sorting the chunks by reference IDs is
1702        required.
1703
1704        * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure
1705        type to store a pair of reference ID and offset to the chunk.
1706
1707        * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to
1708        sort FT_RFork_Ref by their reference IDs.
1709
1710        (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is
1711        sorted by reference ID.
1712
17132007-12-14  Werner Lemberg  <wl@gnu.org>
1714
1715        * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten'
1716        division too early; otherwise the most significant digit(s) of the
1717        final result are lost as the value is truncated to an integer.  This
1718        fixes Savannah bug #21794 (where the patch has been posted too).
1719
17202007-12-06  Fix  <4d876b82@gmail.com>
1721
1722        Pass options from one configure script to another as-is (not
1723        expanded).  This is needed for options like
1724        --includedir='${prefix}/include'.
1725
1726        * builds/unix/detect.mk, configure: Prevent argument expansion in
1727        call to the (real) `configure' script.
1728
17292007-12-06  Werner Lemberg  <wl@gnu.org>
1730
1731        * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if
1732        TT_USE_BYTECODE_INTERPRETER isn't defined.
1733
17342007-12-06  Werner Lemberg  <wl@gnu.org>
1735
1736        There exist CFFs which contain opcodes for the Type 1 operators
1737        `hsbw' and `closepath' which are both invalid in Type 2 charstrings.
1738        However, it doesn't harm to support them.
1739
1740        * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and
1741        `cff_op_closepath.'
1742        (cff_argument_counts): Ditto.
1743
1744        (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath)
1745        and 13 (hsbw) which are invalid in Type 2 charstrings.
1746
17472007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1748
1749        * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to
1750        support new pathname syntax `..namedfork/rsrc' to access a resource
1751        fork on Mac OS X.  The legacy syntax `/rsrc' does not work on
1752        case-sensitive HFS+.
1753        (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of
1754        buffer size to store a pathname.
1755        * include/freetype/internal/ftrfork.h: Increment the number of
1756        resource fork guessing rule.
1757
17582007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1759
1760        * builds/unix/configure.raw: Improve the compile tests to search
1761        Carbon functions.
1762        * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities
1763        proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16).
1764
17652007-12-06  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1766
1767        The documents and comments for Mac OS X are improved by Sean
1768        McBride.
1769
1770        * src/base/ftmac.c: Fix a comment.
1771        * include/freetype/ftmac.h: Ditto.
1772        * docs/INSTALL.MAC: Improve English and add comment on lowest
1773        system version specified by MACOSX_DEPLOYMENT_TARGET.
1774
17752007-12-04  Werner Lemberg  <wl@gnu.org>
1776
1777        * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to
1778        concatenate error codes.
1779        * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto.
1780
17812007-12-04  Graham Asher  <graham.asher@btinternet.com>
1782
1783        * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to
1784        concatenate error codes.
1785
17862007-12-04  Sean McBride  <sean@rogue-research.com>
1787
1788        * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler
1789        warning.
1790
17912007-11-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1792
1793        Fix MacOS legacy font support by Masatake Yamato on Mac OS X.  It is
1794        not working since 2.3.5.  In FT_Open_New(), if FT_New_Stream()
1795        cannot mmap() the specified file and cannot seek to head of the
1796        specified file, it returns NULL stream and FT_Open_New() returns the
1797        error immediately.  On MacOS, most legacy MacOS fonts fall into such
1798        a scenario because their data forks are zero-sized and cannot be
1799        sought.  To proceed to guessing of resource fork fonts, the
1800        functions for legacy MacOS font must properly handle the NULL stream
1801        returned by FT_New_Stream().
1802
1803        * src/base/ftobjs.c (IsMacBinary): Return error
1804        FT_Err_Invalid_Stream_Operation immediately when NULL stream is
1805        passed.
1806        (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed
1807        to fallback.  Originally, legacy MacOS font is tested in the cases
1808        of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty)
1809        or FT_Err_Unknown_File_Format (occurs when AppleSingle header or
1810        .dfont header is combined).  Now the case of
1811        FT_Err_Cannot_Open_Stream is included.
1812
1813        * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL,
1814        skip FT_Stream_Seek(), which seeks to the head of stream, and
1815        proceed to unit testing of raccess_guess_XXX().  FT_Stream_Seek()
1816        for a NULL stream causes a Bus error on Mac OS X.
1817        (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream
1818        immediately if passed stream is NULL.
1819        (raccess_guess_apple_single): Ditto.
1820
18212007-11-16  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1822
1823        Fix for Carbon incompatibilities since Mac OS X 10.5,
1824        proposed by Sean McBride.
1825
1826        * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET.
1827
1828        * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and
1829        FT_GetFilePath_From_Mac_ATS_Name.  Since Mac OS X 10.5, calling
1830        Carbon functions from a forked process is classified as unsafe
1831        by Apple.  All Carbon-dependent functions should be deprecated.
1832
1833        * src/base/ftmac.c: Use essential header files
1834        <CoreServices/CoreServices.h> and
1835        <ApplicationServices/ApplicationServices.h> instead of
1836        all-in-one header file <Carbon/Carbon.h>.
1837
1838        Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple
1839        genuine macro PATH_MAX.
1840
1841        Add fallback macro for kATSOptionFlagsUnRestrictedScope which
1842        is not found in Mac OS X 10.0.
1843
1844        Multi-character constants ('POST', 'sfnt' etc) are replaced by
1845        64bit constants calculated by FT_MAKE_TAG() macro.
1846
1847        For the index in the segment of resource fork, new portable
1848        type ResourceIndex is introduced for better compatibility.
1849        This type is since Mac OS X 10.5, so it is defined as short
1850        when built on older platforms.
1851
1852        (FT_ATSFontGetFileReference): If build target is only the systems
1853        10.5 and newer, it calls Apple genuine ATSFontGetFileReference().
1854
1855        (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5
1856        and newer or 64bit platform, because legacy type FSSpec type is
1857        removed completely.
1858
1859        (FT_New_Face_From_FSSpec): Ditto.
1860
18612007-11-01  Werner Lemberg  <wl@gnu.org>
1862
1863        * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere.  This
1864        fixes Savannah bug #21485.
1865
18662007-10-29  Daniel Svoboda  <dasvo@planeta@cz>
1867
1868        * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver
1869        can handle the font at all, then check `face_index'.  Otherwise, the
1870        driver might return the wrong error code.  This fixes Savannah bug
1871        #21468.
1872
18732007-10-21  Werner Lemberg  <wl@gnu.org>
1874
1875        * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare
1876        support for bit 8 of the `fsSelection' field in the `OS/2' table.
1877        MS is already using this; hopefully, this becomes part of OpenType
1878        1.5.
1879        Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22
1880        (WWS_SUBFAMILY).
1881
18822007-10-20  Werner Lemberg  <wl@gnu.org>
1883
1884        * src/tools/docmaker/tohtml.py (html_header_2): Fix typo.
1885        Add `td.left' element to CSS.
1886        (toc_section_enter): Use it.
1887
18882007-10-18  David Turner  <david@freetype.org>
1889
1890        * include/freetype/freetype.h, src/base/ftobjs.c: Rename API
1891        functions related to cmap type 14 support to the
1892        `FT_Object_ActionName' scheme:
1893
1894          FT_Get_Char_Variant_index     -> FT_Face_GetCharVariantIndex
1895          FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault
1896          FT_Get_Variant_Selectors      -> FT_Face_GetVariantSelectors
1897          FT_Get_Variants_Of_Char       -> FT_Face_GetVariantsOfChar
1898          FT_Get_Chars_Of_Variant       -> FT_Face_GetCharsOfVariant
1899
1900        Update documentation accordingly.
1901
1902        * src/sfnt/ttcmap.c: Stronger cmap 14 validation.
1903        Make the code a little more consistent with FreeType coding
1904        conventions and modify the cmap14 functions that returned a newly
1905        allocated array to use a persistent vector from the TT_CMap14 object
1906        instead.
1907
1908        (TT_CMap14Rec): Provide array and auxiliary data for result.
1909        (tt_cmap14_done, tt_cmap14_ensure): New functions.
1910
1911        (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary,
1912        tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant,
1913        tt_cmap14_char_var_index, tt_cmap14_variants,
1914        tt_cmap14_char_variants, tt_cmap14_def_char_count,
1915        tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
1916        tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved.
1917
19182007-10-15  George Williams  <gww@silcom.com>
1919
1920        Add support for cmap type 14.
1921
1922        * devel/ftoption.h, include/freetype/config/ftoption.h
1923        (TT_CONFIG_CMAP_FORMAT_14): New macro.
1924
1925        * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc,
1926        FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc,
1927        FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New
1928        support function prototypes.
1929        (FT_CMap_ClassRec): Add them.
1930        Update all users.
1931
1932        * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New
1933        macro.
1934
1935        * include/freetype/freetype.h (FT_Get_Char_Variant_Index,
1936        FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors,
1937        FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API
1938        functions.
1939
1940        * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary
1941        function.
1942        (FT_Set_Charmap): Disallow cmaps of type 14.
1943        (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault,
1944        FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char,
1945        FT_Get_Chars_Of_Variant): New API functions.
1946
1947        * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros.
1948
1949        (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate,
1950        tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info,
1951        tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary,
1952        tt_cmap14_find_variant, tt_cmap14_char_var_index,
1953        tt_cmap14_char_var_isdefault, tt_cmap14_variants,
1954        tt_cmap14_char_variants, tt_cmap14_def_char_count,
1955        tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars,
1956        tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and
1957        structures for cmap 14 support.
1958        (tt_cmap_classes): Register tt_cmap14_class_rec.
1959        (tt_face_build_cmaps): One more error message.
1960
1961        * docs/CHANGES: Mention cmap 14 support.
1962
19632007-10-01  Werner Lemberg  <wl@gnu.org>
1964
1965        * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4
1966        charmap fails, do the loop again while searching a UCS-2 charmap.
1967        This favours MS charmaps over Apple ones.
1968
19692007-08-29  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1970
1971        * src/base/ftmac.c: Introduction of abstract `short' data types,
1972        ResFileRefNum and ResID.  These types were introduced for Copland,
1973        then backported to MPW.  The variables exchanged with FileManager
1974        QuickDraw frameworks are redefined by these data types.  Patch was
1975        proposed by Sean McBride.
1976        * builds/mac/ftmac.c: Ditto.
1977
19782007-08-18  Werner Lemberg  <wl@gnu.org>
1979
1980        * src/otvalid/otvcmmn.c (otv_x_y_ux_sy): Skip context glyphs.  Found
1981        by Imran Yousaf.  Fixes Savannah bug #20773.
1982
1983        (otv_Lookup_validate): Correct handling of LookupType.  Found by
1984        Imran Yousaf.  Fixes Savannah bug #20782.
1985
19862007-08-17  George Williams  <gww@silcom.com>
1987
1988        * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of
1989        SingleSubstFormat1.
1990
19912007-08-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1992
1993        * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by
1994        ${build-gcc} (unchecked) instead of by ${build}-gcc (checked).
1995        Found by Ryan Hill.
1996
19972007-08-11  George Williams  <gww@silcom.com>
1998
1999        * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h
2000        (otv_Coverage_validate): Add fourth argument to pass an expected
2001        count value.  Update all users.
2002        Check glyph IDs.
2003        (otv_ClassDef_validate): Check `StartGlyph'.
2004
2005        * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID
2006        checks.
2007
2008        * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only
2009        56 constants.
2010        (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate):
2011        Check glyph IDs.
2012
20132007-08-08  Werner Lemberg  <wl@gnu.org>
2014
2015        * src/otvalid/otvbase.c, src/otvalid/otvcommn.c,
2016        src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c,
2017        src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where
2018        appropriate.  Reported by George.
2019
2020        * include/freetype/internal/fttrace.h: Define `trace_otvmath'.
2021
2022        * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c.
2023
2024        * docs/CHANGES: Updated.
2025
20262007-08-08  George Williams  <gww@silcom.com>
2027
2028        Add `MATH' validating support to otvalid module.
2029
2030        * include/freetype/tttags.h (TTAG_MATH): New macro.
2031        * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro.
2032        (FT_VALIDATE_OT): Updated.
2033
2034        * src/otvalid/otmath.c: New file.
2035
2036        * src/otvalid/otvalid.c: Include otvmath.c.
2037        * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table.
2038
20392007-08-04  Werner Lemberg  <wl@gnu.org>
2040
2041        * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL.
2042        Fixes Savannah bug #20686.
2043
20442007-08-03  Werner Lemberg  <wl@gnu.org>
2045
2046        * src/psnames/psmodule.c: Fix usage of
2047        FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro.  Reported by Graham Asher.
2048
20492007-07-31  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2050
2051        * src/base/ftmac.c (open_face_from_buffer): The argument
2052        `driver_name' is typed as `const char*' to match with the
2053        callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT.
2054        This is same with open_face_from_buffer in src/base/ftobjs.c.
2055        Found and fixed by Sean McBride.
2056
20572007-07-28  Werner Lemberg  <wl@gnu.org>
2058
2059        * src/raster/ftraster.c (count_table): Make it conditional.
2060        * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with
2061        a preprocessor statement.
2062
20632007-07-27  Werner Lemberg  <wl@gnu.org>
2064
2065        * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before
2066        first usage.  From Savannah patch #6115.
2067
20682007-07-16  Werner Lemberg  <wl@gnu.org>
2069
2070        * docs/CHANGES: Updated.
2071
20722007-07-16  Derek Clegg  <dclegg@apple.com>
2073
2074        Add new service for getting the ROS from a CID font.
2075
2076        * include/freetype/config/ftheader.h (FT_CID_H): New macro.
2077        * include/freetype/ftcid.h: New file.
2078
2079        * include/freetype/internal/ftserv.h (FT_SERVIVE_CID_H): New macro.
2080        * include/freetype/internal/services/svcid.h: New file.
2081
2082        * src/base/ftcid.c: New file.
2083
2084        * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H.
2085        (cff_get_ros): New function.
2086        (cff_service_cid_info): New service structure.
2087        (cff_services): Register it.
2088
2089        * src/cff/cffload.c (cff_font_done): Free registry and ordering.
2090
2091        * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'.
2092
2093        * modules.cfg (BASE_EXTENSIONS): Add ftcid.c.
2094
20952007-07-11  Derek Clegg  <dclegg@apple.com>
2096
2097        Add support for postscript name service to CFF driver.
2098
2099        * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H.
2100        (cff_get_ps_name): New function.
2101        (cff_service_ps_name): New service structure.
2102        (cff_services): Register it.
2103
21042007-07-07  Werner Lemberg  <wl@gnu.org>
2105
2106        * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of
2107        `target'.  Reported by Sean McBride.
2108
21092007-07-06  Werner Lemberg  <wl@gnu.org>
2110
2111        * src/pfr/pfrcmap.c: Include pfrerror.h.
2112
2113        * src/autofit/afindic.c: Add some external declarations to pacify
2114        `make multi' compilation.
2115
2116        * src/cid/cidgload.c (cid_load_glyph): Pacify compiler.
2117
2118        * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c
2119        (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP),
2120        src/autofit/aflatin.c (af_latin_hints_compute_edges),
2121        src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c
2122        (tt_face_get_metrics), src/base/ftobjs.c (open_face)
2123        [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler.
2124
2125        * docs/release: Mention test compilation targets.
2126
21272007-07-04  Werner Lemberg  <wl@gnu.org>
2128
2129        * docs/PROBLEMS: Mention that some PS based fonts can't be
2130        handled correctly by FreeType.
2131
2132        * src/truetype/ttgload.c (load_truetype_glyph): Always allow a
2133        recursion depth of 1.  This was the maximum value in TrueType 1.0,
2134        and some older fonts don't set this field correctly.
2135
2136        * src/gxvalid/gxvmort1.c
2137        (gxv_mort_subtable_type1_substTable_validate): Fix tracing message.
2138
21392007-07-03  Werner Lemberg  <wl@gnu.org>
2140
2141        * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
2142        `round' to pacify compiler.
2143
21442007-07-02  Werner Lemberg  <wl@gnu.org>
2145
2146
2147        * Version 2.3.5 released.
2148        =========================
2149
2150
2151        Tag sources with `VER-2-3-5'.
2152
2153        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
2154        version number to 2.3.5.
2155
2156        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
2157        builds/win32/visualc/freetype.dsp,
2158        builds/win32/visualc/freetype.vcproj,
2159        builds/win32/visualce/index.html,
2160        builds/win32/visualce/freetype.dsp,
2161        builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
2162
2163        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
2164
2165        * builds/unix/configure.raw (version_info): Set to 9:16:3.
2166
21672007-07-01  David Turner  <david@freetype.org>
2168
2169        * include/freetype/freetype.h, src/base/ftpatent.c
2170        (FT_Face_SetUnpatentedHinting): New function to dynamically change
2171        the setting after a face is created.
2172
2173        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
2174        that created distortions in the bytecode interpreter results.
2175
21762007-06-30  David Turner  <david@freetype.org>
2177
2178        * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
2179        initialization.
2180
2181        * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
2182        infinite loop in the case of degenerate fonts.
2183
21842007-06-26  Rahul Bhalerao  <b.rahul.pm@gmail.com>
2185
2186        Add autofit module for Indic scripts.  This currently just reuses
2187        the CJK-specific functions.
2188
2189        * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
2190        macro.
2191        * devel/ftoption.h: Synchronize with
2192        include/freetype/config/ftoption.h.
2193
2194        * src/autofit/afindic.c, src/autofit/afindic.h: New files.
2195
2196        * src/autofit/afglobal.c, src/autofit/aftypes.h,
2197        src/autofit/autofit.c: Updated.
2198
2199        * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
2200        (AUTOF_DRV_SRC): Updated.
2201
22022007-06-23  David Turner  <david@freetype.org>
2203
2204        * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
2205        2007-06-16 that prevented the TrueType module from loading most
2206        glyphs.
2207
22082007-06-20  Werner Lemberg  <wl@gnu.org>
2209
2210        * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
2211        change.
2212
22132007-06-19  Werner Lemberg  <wl@gnu.org>
2214
2215        * src/type1/t1load.c (parse_encoding): Handle one more error.
2216
22172007-06-19  Dmitry Timoshkov  <dmitry@codeweavers.com>
2218
2219        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
2220        FNT_Err_Invalid_File_Format if file format was recognized but
2221        the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
2222        Add verbose debug logs to make it easier to debug failing load
2223        attempts.
2224        (FNT_Face_Init): A single FNT font can't contain more than 1 face,
2225        so return an error if requested face index is > 0.
2226        Do not do further attempt to load fonts if a previous attempt has
2227        failed but returned error FNT_Err_Invalid_File_Format, i.e., the
2228        file format has been recognized but no fonts found in the file.
2229
22302007-07-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2231
2232        * src/base/ftmac.c: Apply patches proposed by Sean McBride.
2233        (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
2234        the compiler warnings against unused arguments.
2235        (FT_ATSFontGetFileReference): Ditto.
2236        (FT_GetFile_From_Mac_ATS_Name): Ditto.
2237        (FT_New_Face_From_FSSpec): Ditto.
2238        (lookup_lwfn_by_fond): Fix wrong comment.
2239        Replace `const StringPtr' by more appropriate type
2240        `ConstStr255Param'.
2241        FSRefMakePathPath always returns UTF8 POSIX pathname in
2242        Mach-O, thus HFS pathname support is dropped.
2243        (count_faces): Remove HLock and HUnlock which is not
2244        required on Mac OS X anymore.
2245        (FT_New_Face_From_SFNT): Ditto.
2246        (FT_New_Face_From_FOND): Ditto.
2247        * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
2248        except of HFS pathname support and HLock/HUnlock.
2249        They are required on classic CFM environment.
2250
22512007-06-18  Werner Lemberg  <wl@gnu.org>
2252
2253        * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
2254        assertion.
2255        (ps_parser_to_bytes): Fix error message.
2256
2257        * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
2258        * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
2259        Don't allow mixed binary and hex strings.
2260        Handle string_size == 0 and string_buf == 0.
2261        (t42_parse_encoding): Handle one more error.
2262
22632007-06-18  Werner Lemberg  <wl@gnu.org>
2264
2265        * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
2266        logic.
2267        (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
2268        correctly.
2269        (ps_parser_load_field_table): Use `fields->array_max' instead of
2270        T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
2271
2272        * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
2273        2007-06-06.
2274
22752007-06-17  Werner Lemberg  <wl@gnu.org>
2276
2277        * src/tools/ftrandom.c (font_size): New global variable.
2278        (TestFace): Use it.
2279        (main): Handle new option `--size' to set `font_size'.
2280        (Usage): Updated.
2281
2282        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
2283        invalid font.
2284        (FNT_Load_Glyph): Protect against invalid bitmap width.
2285
22862007-06-16  David Turner  <david@freetype.org>
2287
2288        * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
2289        Prevent integer overflows when rendering very large outlines.
2290
2291        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
2292        well-formedness of the contours array when loading a glyph.
2293
2294        * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
2295        and `zp2'.
2296        (Ins_IP): Check argument ranges to reject bogus operations properly.
2297        (IUP_WorkerRec): Add `max_points' member.
2298        (_iup_worker_interpolate): Check argument ranges.
2299        (Ins_IUP): Ignore empty outlines.
2300
23012007-06-16  Dmitry Timoshkov  <dmitry@codeweavers.com>
2302
2303        * src/winfonts/winfnt.h: Add necessary structures for PE resource
2304        parsing.
2305        (WinPE32_HeaderRec): New structure.
2306        (WinPE32_SectionRec): New structure.
2307        (WinPE_RsrcDirRec): New structure.
2308        (WinPE_RsrcDirEntryRec): New structure.
2309        (WinPE_RsrcDataEntryRec): New structure.
2310        (FNT_FontRec): Remove unused `size_shift' field.
2311
2312        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
2313        loading bitmap .fon files in PE format.
2314
23152007-06-15  Dmitry Timoshkov  <dmitry@codeweavers.com>
2316
2317        * builds/win32/ftdebug.c: Unify debug level handling with other
2318        platforms.
2319
23202007-06-14  Dmitry Timoshkov  <dmitry@codeweavers.com>
2321
2322        * builds/win32/ftdebug.c (FT_Message): Send debug output to the
2323        console as well as to the debugger.
2324
23252007-06-14  Werner Lemberg  <wl@gnu.org>
2326
2327        * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
2328        cover all ranges which could possibly be handled by the aflatin
2329        module (since the default fallback for unknown ranges is now the
2330        afcjk module).  It might be necessary to fine-tune this further by
2331        splitting off modules for Greek, Cyrillic, or other blocks.
2332
23332007-06-11  David Turner  <david@freetype.org>
2334
2335        * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
2336        incorrect segment linking computation.  This was the root cause of
2337        Savannah bug #19565.
2338
2339
2340        * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
2341        to improve the Latin auto-hinter.  Note that the new code is
2342        disabled by default since it is not stabilized yet.
2343
2344        * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
2345        (disabled currently).
2346
2347        * src/autofit/afhints.c: Remove dead code.
2348        (af_axis_hints_new_edge): Add argument to handle segment directions.
2349        (af_edge_flags_to_string): New function.
2350        (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
2351        option flags.
2352        (af_glyph_hints_reload): Add argument to handle inflections.
2353        Simplify.
2354        (af_direction_compute): Fine tuning.
2355        (af_glyph_hints_align_edge_points): Fix logic.
2356        (af_glyph_hints_align_strong_points): Do linear search for small
2357        edge counts.
2358        (af_glyph_hints_align_weak_points): Skip any touched neighbors.
2359        (af_iup_shift): Handle zero `delta'.
2360
2361        * src/autofit/afhints.h: Updated.
2362        (AF_SORT_SEGMENTS): New macro (disabled).
2363        (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
2364
2365        * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
2366        argument to pass option flags for handling scripts.
2367        * src/autofit/afglobal.h: Updated.
2368
2369        * src/autofit/afcjk.c: Updated.
2370        * src/autofit/aflatin.c: Updated.
2371        (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
2372
2373        (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
2374        (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
2375        Don't set `edge->dir'
2376        (af_latin_hint_edges): Add more logging.
2377
2378        * src/autofit/afloader.c: Updated.
2379
23802007-06-11  Werner Lemberg  <wl@gnu.org>
2381
2382        * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
2383
23842007-06-10  David Turner  <david@freetype.org>
2385
2386        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
2387        the TrueType glyph loader.
2388
2389        * include/freetype/config/ftoption.h: Clarify documentation
2390        regarding unpatented hinting.
2391
2392
2393        Add new `FT_Face_CheckTrueTypePatents' API.
2394
2395        * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
2396        declaration.
2397
2398        * include/freetype/internal/services/svttglyf.h,
2399        src/base/ftpatent.c: New files.
2400
2401        * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
2402        New macro.
2403
2404        * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
2405        `ttpload.h'.
2406        (tt_service_truetype_glyf): New service structure.
2407        (tt_services): Register it.
2408
2409        * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
2410        `ftpatent.c'.
2411
24122007-06-08  Werner Lemberg  <wl@gnu.org>
2413
2414        * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
2415        Fonts without a cmap must be handled correctly by FreeType (anything
2416        else would be a bug).
2417
2418
2419        * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
2420        [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
2421
24222007-06-07  Werner Lemberg  <wl@gnu.org>
2423
2424        * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
2425        tt_sbit_decoder_load_image): Protect against integer overflows.
2426
2427
2428        * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
2429        for `x_control' and `y_control'.
2430
24312007-06-06  Werner Lemberg  <wl@gnu.org>
2432
2433        * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
2434
2435
2436        * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
2437        FreeType error.
2438
2439
2440        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
2441        `font_count'.
2442
2443
2444        * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
2445
2446
2447        * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
2448        `FT_Error'.
2449        Check `fd_index'.
2450        (cff_slot_load): Updated.
2451        * src/cff/cffgload.h: Updated.
2452
24532007-06-05  Werner Lemberg  <wl@gnu.org>
2454
2455        * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
2456        (pfr_glyph_load_simple): Convert assertion into normal FreeType
2457        error.
2458        Check `idx'.
2459        (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
2460        Convert assertion into normal FreeType error.
2461
2462        * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
2463
2464
2465        * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
2466
2467
2468        * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
2469        in case of parsing error.
2470        (ps_parser_load_field): Updated.
2471
2472        * src/type1/t1load.c (parse_font_matrix): Updated.
2473
24742007-06-04  Werner Lemberg  <wl@gnu.org>
2475
2476        * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
2477
2478        * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
2479
24802007-06-03  Werner Lemberg  <wl@gnu.org>
2481
2482        * src/tools/ftrandom/*: Add the `ftrandom' test program written by
2483        George Williams (with some modifications).
2484
24852007-06-03  Werner Lemberg  <wl@gnu.org>
2486
2487        * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
2488        (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
2489        face == NULL.  Suggested by Graham Asher.
2490
24912007-06-03  Ismail Dönmez  <ismail@pardus.org.tr>
2492
2493        * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
2494
24952007-06-02  Werner Lemberg  <wl@gnu.org>
2496
2497        * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
2498        FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
2499
2500        * src/bdf/bdflib.c (bdf_load_font): Use them.
2501
2502        * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
2503
25042007-06-01  Werner Lemberg  <wl@gnu.org>
2505
2506        * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
2507        (FTC_CMapCache_Lookup): Remove unused code.
2508
25092007-06-01  Sean McBride  <sean@rogue-research.com>
2510
2511        * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
2512        unused.
2513
25142007-06-01  Werner Lemberg  <wl@gnu.org>
2515
2516        * src/cid/cidparse.c (cid_parser_new): Don't continue second search
2517        pass for `StartData' if an error has occurred.
2518        Exit properly if no `StartData' has been seen at all.
2519
2520        * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
2521        LONG_MAX to avoid compiler warning.  Suggested by Sean McBride.
2522
25232007-05-30  Werner Lemberg  <wl@gnu.org>
2524
2525        * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
2526        against too small binary data strings.
2527
2528        * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
2529
25302007-05-28  David Turner  <david@freetype.org>
2531
2532        * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
2533        transformation.  This significantly reduces the loading time of CFF
2534        glyphs.
2535
2536        * docs/CHANGES: Updated.
2537
2538        * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
2539        hinting script to CJK, since it works well with more scripts than
2540        latin.  Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
2541        this out!
2542
25432007-05-25  Werner Lemberg  <wl@gnu.org>
2544
2545        * docs/CHANGES: Updated.
2546
25472007-05-24  Werner Lemberg  <wl@gnu.org>
2548
2549        * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
2550        into TT_USE_BYTECODE_INTERPRETER preprocessor block.
2551
25522007-05-24  Graham Asher  <graham.asher@btinternet.com>
2553
2554        * src/truetype/ttobjs.c (tt_size_ready_bytecode)
2555        [!TT_USE_BYTECODE_INTERPRETER]: Removed.  Unused.
2556
25572007-05-22  David Turner  <david@freetype.org>
2558
2559        * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
2560        avoid crashes in case the bytecode interpreter is not used.
2561
2562
2563        Avoid heap blowup with very large .Z font files.  This fixes
2564        Savannah bug #19910.
2565
2566        * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
2567        `in_limit', `pad', `pad_bits', and `in_buff' members.
2568        Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
2569        `buf_total' members.
2570
2571        * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten.  It now takes
2572        only one argument.
2573        (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
2574
25752007-05-20  Ismail Dönmez  <ismail@pardus.org.tr>
2576
2577        * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
2578        (ps_dimension_set_mask_bits): Remove `const'.
2579
25802007-05-19  Werner Lemberg  <wl@gnu.org>
2581
2582        * src/sfnt/ttmtx.c (tt_face_get_metrics)
2583        [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
2584
25852007-05-19  Derek Clegg  <dclegg@apple.com>
2586
2587        Savannah patch #5929.
2588
2589        * include/freetype/tttables.h, src/base/ftobjcs.c
2590        (FT_Get_CMap_Format): New function.
2591
2592        * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
2593        `format' member.
2594        * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
2595        cmap_info->format.
2596
25972007-05-19  Werner Lemberg  <wl@gnu.org>
2598
2599        * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
2600        before handling subglyphs so that it can be reinitialized each time.
2601        This fixes Savannah bug #19859.
2602
26032007-05-16  Werner Lemberg  <wl@gnu.org>
2604
2605        * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
2606        src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
2607        (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
2608        src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
2609        tt_face_get_metrics): Fix type-punning issues.
2610
26112007-05-15  David Turner  <david@freetype.org>
2612
2613        * include/freetype/config/ftstdlib.h,
2614        include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
2615        ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
2616        instead on relying on the locale-dependent functions provided by
2617        <ctypes.h>.
2618
26192007-05-15  Graham Asher  <graham.asher@btinternet.com>
2620
2621        * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
2622        variable.
2623        * src/autofit/afloader.c (af_loader_load_g): Ditto.
2624
2625        * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
2626        (open_face_from_buffer): Initialize `stream'.
2627        (FT_Request_Metrics): Remove unused variable.
2628        Remove redundant `break' statements.
2629        (FT_Get_Track_Kerning): Remove unused variable.
2630
2631        * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
2632        afm_parse_kern_data): Remove redundant
2633        `break' statements.
2634        (afm_parser_parse): Ditto.
2635        Don't use uninitialized variables.
2636
2637        * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
2638        Use `|' operator instead of `^' to set it.
2639        Update all users.
2640
2641        * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
2642        * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
2643
2644        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
2645        comparison.
2646        (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
2647        (TT_Load_Glyph): Remove unused variable.
2648
26492007-05-13  Derek Clegg  <dclegg@apple.com>
2650
2651        * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
2652        if FT_RENDER_POOL_SIZE is > 0.  From Savannah patch #5928.
2653
26542007-05-11  David Turner  <david@freetype.org>
2655
2656        * src/cache/ftbasic.c, include/freetype/ftcache.h
2657        (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
2658        functions that allow us to look up glyphs using an FTC_Scaler object
2659        to specify the size, making it possible to use fractional pixel
2660        sizes.
2661
2662        * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
2663        `size->cvt_ready'.  Reported by Boris Letocha.
2664
26652007-05-09  Graham Asher  <graham.asher@btinternet.com>
2666
2667        * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
2668        (af_latin_metrics_scale_dim): Fix compiler warnings.
2669
26702007-05-06  Werner Lemberg  <wl@gnu.org>
2671
2672        * builds/win32/visualce/freetype.sln: Removed, as requested by
2673        Vincent.
2674
26752007-05-04  Vincent RICHOMME  <richom.v@free.fr>
2676
2677        * builds/win32/visualce/*: Add Visual C++ project files for Pocket
2678        PC targets.
2679
2680        * docs/CHANGES: Document them.
2681
26822007-05-04  <harry@kdevelop.org>
2683
2684        * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
2685        mmap (which might happen on some RTOS).  From Savannah patch #5909.
2686
26872007-05-03  Werner Lemberg  <wl@gnu.org>
2688
2689        * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
2690        * include/freetype/freetype.h (FT_Set_Char_Size): Update
2691        documentation.
2692
26932007-04-28  Victor Stinner  <victor.stinner@inl.fr>
2694
2695        * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
2696        `cmap'.
2697
26982007-04-27  Werner Lemberg  <wl@gnu.org>
2699
2700        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
2701        number of points in contours.  Problem reported by Victor Stinner
2702        <victor.stinner@haypocalc.com>.
2703        (TT_Process_Simple_Glyph): Synchronize variable types.
2704
27052007-04-26  Werner Lemberg  <wl@gnu.org>
2706
2707        * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
2708        zero in case of error.  This fixes Savannah bug #19689.
2709
27102007-04-25  Boris Letocha  <b.letocha@cz.gmc.net>
2711
2712        * src/truetype/ttobjs.c: Fix a typo that created a speed regression
2713        in the TrueType bytecode loader.
2714
27152007-04-10  Martin Horak  <horakm@centrum.cz>
2716
2717        * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
2718        Ignore `hhea' table.  This fixes Savannah bug #19261.
2719
27202007-04-09  Werner Lemberg  <wl@gnu.org>
2721
2722
2723        * Version 2.3.4 released.
2724        =========================
2725
2726
2727        Tag sources with `VER-2-3-4'.
2728
2729        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
2730        version number to 2.3.4.
2731
2732        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
2733        builds/win32/visualc/freetype.dsp,
2734        builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
2735
2736        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
2737
2738        * builds/unix/configure.raw (version_info): Set to 9:15:3.
2739
27402007-04-09  Martin Horak  <horakm@centrum.cz>
2741
2742        * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
2743        memory stream to avoid a crash with the incremental memory
2744        interface (Savannah bug #19260).
2745
27462007-04-06  David Turner  <david@freetype.org>
2747
2748        * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
2749        (Savannah bug #19536).
2750
27512007-04-04  Werner Lemberg  <wl@gnu.org>
2752
2753
2754        * Version 2.3.3 released.
2755        =========================
2756
2757
2758        Tag sources with `VER-2-3-3'.
2759
2760        * docs/CHANGES: Mention CVE-2007-1351.
2761
27622007-04-03  David Turner  <david@freetype.org>
2763
2764        * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
2765        if one of the resolution values is 0, treat it as if it were the
2766        same as the other value.
2767
27682007-04-02  David Turner  <david@freetype.org>
2769
2770        Add special code to detect `extra-light' fonts and do not snap their
2771        stem widths too much to avoid bizarre hinting effects.
2772
2773        * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
2774        `extra_light' members.
2775
2776        * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
2777        them.
2778        (af_latin_metrics_scale_dim): Set `extra_light'.
2779        (af_latin_compute_stem_width): Use `extra_light'.
2780
27812007-03-28  David Turner  <david@freetype.org>
2782
2783        * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
2784        padding.
2785
27862007-03-28  Werner Lemberg  <wl@gnu.org>
2787
2788        * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
2789        gracefully.
2790        (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
2791        issue an error for longer names.  This fixes CVE-2007-1351.
2792        (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
2793        number of code points in Unicode.
2794
2795        * builds/win32/visualc/index.html,
2796        builds/win32/visualc/freetype.dsp,
2797        builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
2798        s/232/233/.
2799
2800        * docs/CHANGES: Mention ftdiff.
2801
28022007-03-26  David Turner  <david@freetype.org>
2803
2804        * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
2805        corresponding code.
2806        (Ins_MD): Last regression fix.
2807
2808        * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
2809        computations in order to ignore single-point contours.  These are
2810        never rasterized and correspond in certain fonts to mark-attach
2811        points that are very far from the glyph's real outline, ruining the
2812        computation.
2813
2814        * src/autofit/afloader.c (af_loader_load_g): In the case of
2815        monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
2816        Otherwise code that uses them will most certainly ruin the fixed
2817        advance property.
2818
2819        * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
2820        documentation and bump version number to 2.3.3.
2821
2822        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
2823
2824        * builds/unix/configure.raw (version_info): Set to 9:14:3.
2825
28262007-03-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2827
2828        * builds/unix/ftconfig.in: Disable Carbon framework dependency on
2829        64bit ABI on Mac OS X 10.4.x (ppc & i386).  Found by Sean McBride.
2830        * builds/vms/ftconfig.h: Ditto.
2831        * include/freetype/config/ftconfig.h: Ditto.
2832
28332007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2834
2835        * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
2836        32bit unsigned long overflow by 64bit filesize on LP64 platform, as
2837        proposed by Sean McBride:
2838        http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
2839
28402007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2841
2842        * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
2843        setjmp, proposed by Sean McBride:
2844        http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
2845
28462007-03-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2847
2848        * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
2849        conftest.c, to avoid unexpected shell evaluation.  Possibly it is a
2850        bug or undocumented behaviour of autoconf.
2851
28522007-03-18  David Turner   <david@freetype.org>
2853
2854        * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
2855        fix; testing still needed.
2856
2857        * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
2858
28592007-03-17  David Turner   <david@freetype.org>
2860
2861        * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
2862        (undocumented) twilight zone special case.
2863
28642007-03-09  Werner Lemberg  <wl@gnu.org>
2865
2866
2867        * Version 2.3.2 released.
2868        =========================
2869
2870
2871        Tag sources with `VER-2-3-2'.
2872
2873        * builds/win32/visualc/index.html,
2874        builds/win32/visualc/freetype.dsp,
2875        builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
2876        s/231/232/.
2877
28782007-03-08  David Turner  <david@freetype.org>
2879
2880        * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
2881
2882        * builds/unix/configure.raw (version_info): Set to 9:13:3.
2883
2884        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
2885
2886        * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
2887
2888        * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
2889        function to work properly, over-writing user-provided buffers in
2890        some cases.  Reported by James Cloos <cloos@jhcloos.com>.
2891
2892
28932007-03-05  Werner Lemberg  <wl@gnu.org>
2894
2895        * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
2896        macro for `strstr'.
2897
2898        * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
2899        `trick_names', as suggested by Ivan Nincic.
2900
29012007-03-05  David Turner  <david@freetype.org>
2902
2903        * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
2904        case FT_Init_FreeType fails for some reason.  Problem reported by
2905        Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
2906
2907        * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
2908        and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
2909        `TT_Size.root.metrics'.  Problem reported by Daniel Glöckner
2910        <daniel-gl@gmx.net>.
2911
2912        * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
2913        signed values, not unsigned ones.  Problem reported by Johannes
2914        Walther <joh_walt@yahoo.de>.
2915
29162007-02-21  David Turner  <david@freetype.org>
2917
2918        * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
2919        of small and ghost stems in the Postscript interpreter.
2920
29212007-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2922
2923        * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
2924        leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
2925        * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
2926
29272007-02-16  Werner Lemberg  <wl@gnu.org>
2928
2929        * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
2930        * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
2931
29322007-02-14  David Turner  <david@freetype.org>
2933
2934        It seems that the following changes fix most of the known
2935        interpreter problems with my fonts, but more testing is needed,
2936        though.
2937
2938        * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
2939        (TT_MulFix14): Rewrite.
2940        (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
2941        (Ins_MIRP): Ditto.
2942
29432007-02-12  Werner Lemberg  <wl@gnu.org>
2944
2945        * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
2946        warnings.
2947
2948        * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
2949        (bdf_interpret_style): Ditto.
2950
29512007-02-12  David Turner  <david@freetype.org>
2952
2953        Simplify projection and dual-projection code interface.
2954
2955        * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
2956        FT_Vector' as argument type.
2957        * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
2958        Updated.
2959        (CUR_fast_project, CUR_fast_dualproj): New macros.
2960        (Project, Dual_Project, Project_x, Project_y): Updated.
2961        (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
2962        macros.
2963
2964
2965        * src/autofit/afloader.c (af_loader_load_g): Improve spacing
2966        adjustments for the non-light auto-hinted modes.  Gets rid of
2967        `inter-letter spacing is too wide' problems.
2968
2969        * src/autofit/aflatin.c (af_latin_hints_link_segments,
2970        af_latin_hints_compute_edges): Slight optimization of the segment
2971        linker and better handling of serif segments to get rid of broken
2972        `9' in Arial at 9pt (96dpi).
2973
2974
2975        Introduce new string functions and the corresponding macros to get
2976        rid of various uses of strcpy and other `evil' functions, as well as
2977        to simplify a few things.
2978
2979        * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
2980        ft_mem_strcpyn): New declarations.
2981        (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
2982        macros.
2983        * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
2984        functions.
2985
2986        * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
2987        src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
2988        (pcf_get_properties, pcf_interpret_style, pcf_load_font),
2989        src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
2990        (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
2991        src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
2992        (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
2993        t42_get_name_index): Use new functions and simplify code.
2994
2995        * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
2996
29972007-02-11  Werner Lemberg  <wl@gnu.org>
2998
2999        * src/autofit/afloader.c (af_loader_load_g): Don't change width for
3000        non-spacing glyphs.
3001
30022007-02-07  Tom Parker  <palfrey@tevp.net>
3003
3004        * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
3005        pointer.
3006
30072007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3008
3009        * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
3010        Introduce __attribute((deprecated))__ to warn functions
3011        which use non-ANSI data types in its interfaces.
3012        (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
3013        (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
3014        (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
3015        (FT_New_Face_From_FSRef): Deprecated, using FSRef.
3016
3017        * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
3018        to avoid warning in building FreeType.
3019        * builds/mac/ftmac.c: Ditto.
3020
30212007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3022
3023        * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
3024        `--with-fsspec' etc.  Replace #include "ftmac.c" with
3025        #include <ftmac.c>.
3026
30272007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3028
3029        * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
3030        Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
3031        * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
3032        (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
3033        FT_GetFilePath_From_Mac_ATS_Name.
3034        * builds/mac/ftmac.c: Ditto.
3035
30362007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3037
3038        * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
3039        FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
3040        for passing to FT_New_Face_From_FSSpec.
3041
30422007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3043
3044        * builds/unix/configure.raw: Check whether Mac OS X system headers
3045        can be built under ANSI C mode.
3046
3047        * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
3048        compatible to ANSI C in case system headers are ANSI C incompatible.
3049        * builds/mac/ftmac.c (OS_INLINE): Ditto.
3050
30512007-02-01  Werner Lemberg  <wl@gnu.org>
3052
3053        * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
3054        Explain why applications shouldn't use it.  Found by Alexei.
3055
30562007-02-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
3057
3058        * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
3059        message.
3060
3061        * src/gxvalid/gxvmort1.c
3062        (gxv_mort_subtable_type1_substTable_validate): Fix debugging
3063        message.
3064
30652007-01-31  Werner Lemberg  <wl@gnu.org>
3066
3067
3068        * Version 2.3.1 released.
3069        =========================
3070
3071
3072        Tag sources with `VER-2-3-1-FINAL'.
3073
3074        * builds/win32/visualc/freetype.dsp,
3075        builds/win32/visualc/freetype.vcproj: s/230/231/.
3076        * builds/win32/visualc/index.html: s/221/231/.
3077
3078        * vms_make.com: Add `ftgasp'.
3079
30802007-01-30  David Turner  <david@freetype.org>
3081
3082        Tag sources with VER-2-3-1 to prepare release.
3083
3084        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
3085
3086        * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
3087        s/2.3.0/2.3.1/.
3088
3089        * builds/unix/configure.raw (version_info): Set to 9:12:3.
3090
3091
3092        * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
3093        (af_loader_load_g): Disable the warper (i.e., the light hinting
3094        improvements) to make a 2.3.1 bugfix release before introducing a
3095        new feature.  This should give us more time to tune and improve the
3096        warper for the next release.
3097
3098        * docs/CHANGES: Update accordingly.
3099
31002007-01-25  David Turner  <david@freetype.org>
3101
3102        For light auto-hinting, improve glyph advance widths and resurrect
3103        normal/full hinting to its normal quality.
3104
3105        * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
3106        and `xmax_delta'.
3107        * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
3108        and `xmax_delta'.
3109
3110        * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
3111        preprocessor conditional with if-clause, handling both light and
3112        normal mode.
3113
3114        * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
3115        (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
3116
31172007-01-25  Werner Lemberg  <wl@gnu.org>
3118
3119        * docs/release: Updated -- Savannah uses a new uploading scheme.
3120
31212007-01-25  David Turner  <david@freetype.org>
3122
3123        * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
3124
3125        * src/cff/cffgload.c (cff_decoder_parse_charstrings)
3126        <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
3127        functions.
3128
3129        * docs/CHANGES: Document light auto-hinting improvement.
3130
31312007-01-25  Werner Lemberg  <wl@gnu.org>
3132
3133        * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
3134        correctly in a sanity check.  Since this function is only used to
3135        load local and global functions, any charstring that called the last
3136        local/global function would fail otherwise.  This fixes Savannah bug
3137        #18867.
3138
3139        * docs/CHANGES: Document it.
3140
31412007-01-23  David Turner  <david@freetype.org>
3142
3143        * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
3144        prevented compilation when disabling both the unpatented and the
3145        bytecode interpreter in the TrueType font driver.
3146
3147
3148        Fix and enable the warper to improve `light' hinting mode.  This is
3149        not necessarily a final version, but it seems to work well.
3150
3151        * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
3152        Disable code.
3153        (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
3154        * src/autofit/aftypes.h: Activate AF_USE_WARPER.
3155
3156        * src/autofit/afwarp.c (AF_WarpScore): Tune table.
3157        (af_warper_compute_line_best): Fix array size of `scores'.
3158        (af_warper_compute): Better handling of border cases.
3159        * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
3160        and `X2'.
3161
31622007-01-21  Werner Lemberg  <wl@gnu.org>
3163
3164        * ChangeLog: Split off older entries into...
3165        * ChangeLog.22: This new file.
3166
31672007-01-21  Werner Lemberg  <wl@gnu.org>
3168
3169        * docs/CHANGES: Document SHZ fix.
3170
31712007-01-21  George Williams  <gww@silcom.com>
3172
3173        * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
3174        points.
3175
31762007-01-21  Werner Lemberg  <wl@gnu.org>
3177
3178        * src/sfnt/ttmtx.c (tt_face_get_metrics)
3179        [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
3180
31812007-01-17  Werner Lemberg  <wl@gnu.org>
3182
3183
3184        * Version 2.3.0 released.
3185        =========================
3186
3187
3188        Tag sources with `VER-2-3-0-FINAL'.
3189
31902007-01-17  Werner Lemberg  <wl@gnu.org>
3191
3192        * docs/release: Updated.
3193
31942007-01-16  David Turner  <david@freetype.org>
3195
3196        * src/autofit/aflatin.c (af_latin_hints_compute_segments),
3197        src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
3198        (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
3199        warnings.
3200
32012007-01-15  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
3202
3203        * builds/amiga/makefile, builds/amiga/makefile.os4,
3204        builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
3205
3206        * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
3207
32082007-01-14  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
3209
3210        Fix various compiler warnings.
3211
3212        * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
3213        src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
3214        s/index/strike_index/.
3215        * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
3216
3217        * src/gxvalid/gxvmorx5.c
3218        (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
3219
3220        * src/truetype/ttinterp.c (Compute_Point_Displacement),
3221        src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
3222        uninitialized variables.
3223
32242007-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3225
3226        * docs/CHANGES, docs/INSTALL.MAC: Improvements.
3227
32282007-01-13  Werner Lemberg  <wl@gnu.org>
3229
3230        * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
3231        versions up to 0x3FF without complaining.
3232
32332007-01-13  Derek Clegg  <dclegg@apple.com>
3234
3235        Add FT_Get_PS_Font_Info interface to CFF driver.
3236
3237        * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
3238        (CFF_FontRec): Add `font_info' field.
3239
3240        * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
3241        (cff_font_done): Free font->font_info if necessary.
3242
3243        * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
3244        (cff_service_ps_info): Register cff_ps_get_font_info.
3245
32462007-01-13  Werner Lemberg  <wl@gnu.org>
3247
3248        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
3249        with C++ compiler.
3250
3251        * src/autofit/afhints.c (af_glyph_hints_dump_segments,
3252        af_glyph_hints_dump_edges): Ditto.
3253
3254        * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
3255        `modules.cfg').
3256
3257        * src/sfnt/ttsbit0.h: Remove.
3258
3259        * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
3260
32612007-01-12  David Turner  <david@freetype.org>
3262
3263        * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
3264        bug in the bitmap emboldener if the pitch of the source bitmap is
3265        much larger than its width.
3266
3267        * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
3268        compilation warning.
3269
32702007-01-12  Werner Lemberg  <wl@gnu.org>
3271
3272        * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
3273        `automake' CVS module from sources.redhat.com.
3274
32752007-01-11  Werner Lemberg  <wl@gnu.org>
3276
3277        * src/type1/t1load.c (is_space): Removed.
3278        (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
3279        (parse_charstrings): Use IS_PS_TOKEN.
3280
3281
3282        * autogen.sh: Avoid bash specific syntax.
3283
32842007-01-11  David Turner  <david@freetype.org>
3285
3286        * docs/CHANGES: Small update.
3287
3288        * builds/unix/configure.raw (version_info): Set to 9:11:3.
3289
3290        * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
3291        crash with some Mac OS X .dfont files.  Submitted by Masatake
3292        Yamato.
3293
3294        * autogen.sh: Small fix to get it working on Mac OS X properly:
3295        The issue is that GNU libtool is called `glibtool' on this platform,
3296        and we must call `glibtoolize', since `libtoolize' doesn't exist.
3297
32982007-01-10  David Turner  <david@freetype.org>
3299
3300        * all-sources: Tag all sources with VER-2-3-0-RC1 and
3301        VER-2-3-0.
3302
3303        * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
3304        builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
3305        version number to 2.3.0.
3306
3307        * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
3308        (FREETYPE_PATCH): Set to 0.
3309
3310        * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
3311        include/freetype/ftlcdfil.h: Update reference documentation with
3312        GASP support and LCD filtering sections.
3313
3314        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
3315        which created an endless loop with some malformed font files.
3316
33172007-01-10  Derek Clegg  <dclegg@apple.com>
3318
3319        * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
3320        values.
3321
33222007-01-08  David Turner  <david@freetype.org>
3323
3324        * docs/CHANGES: Updated.
3325
3326        * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
3327        a new API `FT_Get_Gasp' to return entries of the `gasp' table
3328        corresponding to a given character pixel size.
3329
3330        * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
3331        `gasp' table, in order to avoid potential problems with later
3332        versions.
3333
3334        * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
3335        <freetype/ftgasp.h>.
3336
3337        * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
3338        modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
3339        builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
3340        default build.
3341
33422007-01-07  Werner Lemberg  <wl@gnu.org>
3343
3344        * src/cid/cidparse.c (cid_parser_new): Improve error message for
3345        Type 11 fonts.
3346        Scan for `/sfnts' token.
3347
33482007-01-07  Werner Lemberg  <wl@gnu.org>
3349
3350        * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
3351
33522007-01-06  Werner Lemberg  <wl@gnu.org>
3353
3354        * src/cff/cffload.c (cff_index_init): Remove unused variable.
3355        (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
3356
33572007-01-04  David Turner  <david@freetype.org>
3358
3359        * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
3360        correctly.  This fixes Savannah bug #17876.
3361
3362
3363        Do not allocate interpreter-specific tables in memory if we are not
3364        going to load glyphs with the bytecode interpreter anyway.
3365
3366        * src/truetype/ttgload.c (tt_loader_init): Load execution context
3367        only if glyph is hinted.
3368        Updated.
3369        * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
3370        and `cvs_ready'.
3371        Add `tt_size_ready_bytecode' declaration.
3372        * src/truetype/ttobjs.c (tt_size_done_bytecode,
3373        tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
3374        (tt_size_init): Move most code into `tt_size_init_bytecode'.
3375        (tt_size_done): Move most code into `tt_size_done_bytecode'.
3376        (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
3377
3378
3379        Don't extract the metrics table from the SFNT font file.  Instead,
3380        reparse it on each glyph load.  The runtime difference is not
3381        noticeable, and it can save a lot of heap memory when memory-mapped
3382        files are not used.
3383
3384        * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
3385        `horz_metrics_offset' and `vert_metrics_ofset'.
3386        * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
3387        Updated.
3388
3389
3390        * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
3391
3392
3393        Do not load the CFF index offsets into memory, since this wastes a
3394        *lot* of heap memory with large Asian CFF fonts.  There is no
3395        significant performance loss.
3396
3397        * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
3398        * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
3399        `data_size'.
3400        (CFF_CharsetRec): Add field `num_glyphs'.
3401
3402        * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
3403        cff_charset_cid_to_gindex): New functions.
3404        (cff_new_index): Renamed to...
3405        (cff_index_init): This.  Update all callers.
3406        Updated -- some code has been moved to `cff_index_load_offsets'.
3407        (cff_done_index): Renamed to...
3408        (cff_index_done): This.  Update all callers.
3409        (cff_index_get_pointers, cff_index_access_element): Updated to use
3410        stream offsets.
3411        (cff_charset_compute_cids): Set `num_glyphs' field.
3412        (cff_encoding_load): Updated.
3413
3414        * src/cff/cffgload.c (cff_slot_load): Updated.
3415
34162007-01-04  David Turner  <david@freetype.org>
3417
3418        * docs/INSTALL.UNIX: Simplify some parts, add reference to
3419        autogen.sh and pointer to README.CVS.
3420
3421        * README.CVS: Add common problem description and solution
3422        when running autogen.sh.
3423
3424        * docs/INSTALL: Add reference to MacOS X.
3425
3426        * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
3427
3428        * docs/TODO: Remove obsolete items.
3429
3430        * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
3431        (TWorker): This.
3432        Remove `count_table' and `memory'.
3433        Make `grays' a pointer.
3434        (TRaster): New structure.
3435        (count_table): New static array.
3436        (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
3437        Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
3438        ft_black_set_mode, ft_black_render): Updated.
3439        (ft_black_init): Don't initialize `count_table'.
3440        (ft_black_reset): Use the render pool.  This saves about 6KB of
3441        heap space for each FT_Library instance.
3442
3443        * src/smooth/ftgrays.c (TRaster): Replaced with...
3444        (TWorker): This.
3445        Remove `memory'.
3446        (TRaster): New structure.
3447
3448        (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
3449        gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
3450        gray_render_span, gray_raster_render): Updated.
3451        (gray_raster_reset): Use the render pool.  This saves about 6KB of
3452        heap space for each FT_Library instance.
3453
3454        * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
3455        src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
3456        src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
3457        FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
3458        the optimization is no longer experimental.
3459
3460        * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
3461        Remove a typo that results in no hinting and a memory leak with some
3462        large Asian CFF fonts.
3463
3464        * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
3465        which happens when FT_Done_Library is called with still opened
3466        CFF_Faces in it.  We need to close all faces before destroying the
3467        modules, or else some bad things (memory leaks) may happen.
3468
34692007-01-02  Werner Lemberg  <wl@gnu.org>
3470
3471        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
3472        Remove compiler warning.
3473
34742007-01-02  David Turner  <david@freetype.org>
3475
3476        * src/sfnt/sfobjs.c: Add documentation comment.
3477
34782006-12-31  Masatake YAMATO  <jet@gyve.org>
3479
3480        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
3481        function.
3482        Check uniqueness of the gid pairs.
3483        (gxv_kern_subtable_fmt0_validate): Move some code to
3484        `gxv_kern_subtable_fmt0_pairs_validate'.
3485
34862006-12-22  David Turner  <david@freetype.org>
3487
3488        * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
3489        warnings.
3490
3491        * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
3492        to avoid deprecation warnings with Visual C++ 8.
3493
34942006-12-16  Anders Kaseorg  <anders@kaseorg.com>
3495
3496        * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
3497        [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
3498
34992006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3500
3501        * include/freetype/internal/services/svotval.h: Add `volatile' to
3502        sync with the modification by Jens Claudius on 2006-08-22; cf.
3503          http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
3504
35052006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3506
3507        * src/base/ftmac.c: Specialized for Mac OS X only.
3508        * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
3509        * builds/unix/configure.raw: Ditto.  When explicit switches for
3510        FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
3511        builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
3512
35132006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3514
3515        * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
3516        * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
3517        instead of src/base/ftmac.c
3518        * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
3519        * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
3520        * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
3521        that cannot be built at present.
3522
35232006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3524
3525        * src/base/ftobjs.c: Improvement of resource fork handler for
3526        POSIX, cf.
3527          http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
3528        (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
3529        format or .dfont, to simulate the face index number counted by ftmac.c.
3530        (IsMacResource): Return the number of scalable faces correctly.
3531
35322006-12-10  Werner Lemberg  <wl@gnu.org>
3533
3534        * builds/toplevel.mk (version): Protect against `distclean' target.
3535
35362006-12-09  Werner Lemberg  <wl@gnu.org>
3537
3538        * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
3539        or `type'.
3540
3541        * builds/freetype.mk (version): Extracted from freetype.h, using
3542        GNU make's built-in string functions.
3543        (refdoc): Use $(version) instead of static version number.
3544
35452006-12-08  Werner Lemberg  <wl@gnu.org>
3546
3547        * builds/toplevel.mk (dist): Extract version number from freetype.h.
3548
35492006-12-08  Vladimir Volovich  <vvv@vsu.ru>
3550
3551        * src/tools/apinames (State): Remove final comma in structure -- xlc
3552        v5 under AIX 4.3 doesn't like this.
3553
35542006-12-07  David Turner  <david@freetype.org>
3555
3556        * src/autofit/afloader.c (af_loader_load_g): Small adjustment
3557        to the spacing of auto-fitted glyphs.  This only impacts rare
3558        cases (e.g., Arial Bold at rather small character sizes).
3559
35602006-12-03  Werner Lemberg  <wl@gnu.org>
3561
3562        * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
3563
35642006-12-01  Werner Lemberg  <wl@gnu.org>
3565
3566        * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
3567        encoded in UTF-16BE.  Patch from Rajeev Pahuja <rpahuja@esri.com>.
3568        (tt_name_entry_ascii_from_ucs4): Removed.
3569
3570
3571        * include/freetype/ftxf86.h: Fix and extend comment so that it
3572        appears in the documentation.
3573
3574        * include/freetype/ftchapters.h: Add `font_format' section.
3575
3576
3577        * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
3578        to TOC in index page.
3579
35802006-11-28  David Turner  <david@freetype.org>
3581
3582        * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
3583        trying to render into a zero-width/height bitmap, not an error code.
3584
3585        * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
3586
3587        * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
3588        ones instead.
3589
3590        * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
3591        variable.
3592
35932006-11-26  Pierre Hanser  <hanser@club-internet.fr>
3594
3595        * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
3596
35972006-11-25  David Turner  <david@freetype.org>
3598
3599        * src/autofit/afhints.c (af_glyph_hints_dump_points,
3600        af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
3601        Add stubs to link the `ftgrid' test program when debugging is
3602        disabled in the auto-hinter.
3603
36042006-11-23  David Turner  <david@freetype.org>
3605
3606        * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
3607        src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
3608
3609        * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
3610        Emit more sensible information.
3611
3612        * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
3613
3614        * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
3615        rounding of blue values.
3616        (af_latin_hints_compute_segments): Hint segment heights.
3617        (af_latin_hints_link_segments): Reduce `len_score' value.
3618        (af_latin_hints_compute_edges): Increase `segment_length_threshold'
3619        value and use `height' member for comparisons.
3620        (af_latin_hint_edges): Extend logging message.
3621        Improve handling of remaining edges.
3622
36232006-11-22  Werner Lemberg  <wl@gnu.org>
3624
3625        Fix Savannah bug #15553.
3626
3627        * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
3628        program after a change from mono to grayscaling (and vice versa).
3629        Use correct constant for comparison to get `exec->grayscale'.
3630
36312006-11-18  Werner Lemberg  <wl@gnu.org>
3632
3633        Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
3634        test for a valid glyph index must be deferred to the font drivers.
3635        This patch fixes Savannah bug #18301.
3636
3637        * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
3638        * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
3639        (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
3640        src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
3641        (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
3642        src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
3643        (FNT_Load_Glyph): Check validity of `glyph_index'.
3644
36452006-11-13  David Turner  <david@freetype.org>
3646
3647        * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine.  The interpreter
3648        `enhancements' are still too buggy for general use.
3649
3650        * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
3651        FT_FORCE_LEGACY_LCD_FILTER at compile time.  Define these macros
3652        when building the library to change the default LCD filter to be
3653        used.  This is only useful for experimentation.
3654
3655        * include/freetype/ftlcdfil.h: Update documentation.
3656
36572006-11-10  David Turner  <david@freetype.org>
3658
3659        * src/smooth/ftsmooth.c: API change for the LCD
3660        filter.  The FT_LcdFilter value is an enumeration describing which
3661        filter to apply, with new values FT_LCD_FILTER_LIGHT and
3662        FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
3663        algorithm which produces strong color fringes for everything
3664        except very-well hinted text).
3665
3666        * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
3667        second parameter to an enum type.
3668
3669        * src/base/ftlcdfil.c (USE_LEGACY): Define.
3670        (_ft_lcd_filter): Rename to...
3671        (_ft_lcd_filter_fir): This.
3672        Update parameters.
3673        (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
3674        (FT_Library_Set_LcdFilter): Update parameters.
3675        Handle new filter modes.
3676
3677        * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
3678        (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
3679        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
3680        callback and update other fields.
3681
3682        * src/smooth/ftsmooth.c (ft_smooth_render_generic)
3683        [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
3684        Other minor improvements.
3685
3686        * src/autofit/aflatin.c: Various tiny improvements that drastically
3687        improve the handling of serif fonts and of LCD/LCD_V hinting modes.
3688        (af_latin_hints_compute_edges): Fix typo.
3689        (af_latin_compute_stem_width): Take better care of diagonal stems.
3690
36912006-11-09  David Turner  <david@freetype.org>
3692
3693        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
3694        typo which created a variable-used-before-initialized bug.
3695
36962006-11-07  Zhe Su  <james.su@gmail.com>
3697
3698        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
3699        also.
3700
37012006-11-03  Werner Lemberg  <wl@gnu.org>
3702
3703        * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
3704
37052006-11-02  David Turner  <david@freetype.org>
3706
3707        Add a few tweaks to better handle serif fonts.
3708        Add more debugging messages.
3709
3710        * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
3711        segments that are less than 1.5 pixels high.  This gets rid of
3712        *many* corner cases with serifs.
3713        (af_latin_align_linked_edge): Add logging message.
3714        (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
3715        Add logging messages.
3716        Handle AF_EDGE_FLAG flag specially.
3717
3718        * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
3719        _af_debug_disable_blue_hints, and _af_debug_hints variables.
3720
3721        * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
3722        Update external declarations.
3723        (af_corner_orientation, af_corner_is_flat): Replaced by...
3724
3725        * include/freetype/internal/ftcalc.h (ft_corner_orientation,
3726        ft_corner_is_flat): These declarations.
3727
3728        * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
3729        Comment out.  Replaced by...
3730
3731        * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
3732        These functions.  Update all callers.
3733        (FT_Add64) [!FT_LONG64]: Simplify.
3734
3735        * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
3736        (af_direction_compute): Add a missing FT_ABS call.  This bug caused
3737        production of garbage by missing lots of segments.
3738
3739        * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
3740
3741        * src/autofit/afloader.c (af_loader_init, af_loader_done)
3742        [AF_DEBUG]: Set _af_debug_hints.
3743
3744
3745        * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
3746        (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
3747        and ft_corner_orientation.
3748
3749
3750        * src/gzip/inftrees.c (huft_build): Remove compiler warning.
3751
37522006-10-24  Werner Lemberg  <wl@gnu.org>
3753
3754        * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
3755
3756        * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
3757        as argument.
3758
37592006-10-23  Zhe Su  <zsu@novell.com>
3760
3761        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
3762        better deal with broken Asian fonts with strange glyphs, having
3763        self-intersections and other peculiarities.  The used algorithm is
3764        based on the nonzero winding rule.
3765
37662006-10-23  David Turner  <david@freetype.org>
3767
3768        Speed up the CFF font loader.  With some large CFF fonts,
3769        FT_Open_Face is now more than three times faster.
3770
3771        * src/cff/cffload.c (cff_get_offset): Removed.
3772        (cff_new_index): Inline functionality of `cff_get_offset'.
3773        (cff_charset_compute_cids, cff_charset_free_cids): New functions.
3774        (cff_charset_done): Call `cff_charset_free_cids'.
3775        (cff_charset_load): Call `cff_charset_compute_cids'.
3776        (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
3777
3778        * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
3779        with FT_NEXT_XXX.
3780
3781
3782        Speed up the Postscript hinter, with more than 100% speed increase
3783        on my machine.
3784
3785        * src/pshinter/pshalgo.c (psh_corner_is_flat,
3786        psh_corner_orientation): New functions.
3787        (psh_glyph_compute_inflections): Merge loops for efficiency.
3788        Use `psh_corner_orientation'.
3789        (psh_glyph_init): Use `psh_corner_is_flat'.
3790        (psh_hint_table_find_strong_point): Renamed to...
3791        (psh_hint_table_find_strong_points): This.
3792        Rewrite, adding argument to handle all points at once.
3793        Update all callers.
3794        (PSH_MAX_STRONG_INTERNAL): New macro.
3795        (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
3796
37972006-10-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3798
3799        * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
3800        `error' with FT_Err_Ok.
3801
38022006-10-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3803
3804        * docs/INSTALL.CROSS: New document file for cross-building.
3805
3806        * builds/unix/configure.raw: Preliminary cross-building support.
3807        Find native C compiler and pass it by CC_BUILD, and
3808        find suffix for native executable and pass it by EXEEXT_BUILD.
3809        Also suffix for target executable is passed by EXEEXT.
3810
3811        * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
3812        build `apinames' which runs on building system.  They are set by
3813        CC_BUILD and EXEEXT_BUILD.
3814
3815        * builds/exports.mk (APINAMES_EXE): Change the extension for
3816        apinames from the suffix for target (E) to that for building host
3817        (E_BUILD).
3818
38192006-10-12  Werner Lemberg  <wl@gnu.org>
3820
3821        * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
3822        * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This.  Update all documents
3823        which reference those files.
3824
38252006-10-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3826
3827        * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable.  It is
3828        embedded in freetype2.pc and freetype-config.  Use it to record
3829        Carbon dependency of MacOSX.
3830
3831        * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
3832
3833        * builds/unix/freetype-config.in: Ditto.
3834
38352006-10-11  Werner Lemberg  <wl@gnu.org>
3836
3837        * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
3838        development.
3839
38402006-10-03  Jens Claudius  <jens.claudius@yahoo.com>
3841
3842        * include/freetype/config/ftstdlib.h: Cast away volatileness from
3843        argument to ft_setjmp.
3844
3845        * include/freetype/internal/ftvalid.h: Add comment that
3846        ft_validator_run must not be used.
3847
38482006-10-01  Werner Lemberg  <wl@gnu.org>
3849
3850        * src/base/ftbase.c: Undo change from 2006-09-30.
3851
3852        * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
3853
38542006-09-30  David Turner  <david@freetype.org>
3855
3856        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
3857        s/unpatented_hinting/ignore_unpatented_hinter/.
3858        Update all callers.
3859
3860        * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
3861        auto-hinting shall be used or not.
3862
3863        * src/truetype/ttobjs.c (tt_face_init): Ditto.
3864
38652006-09-30  Werner Lemberg  <wl@gnu.org>
3866
3867        * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
3868        in use).
3869
3870        * src/base/ftbase.c: Include `ftlcdfil.c'.
3871
38722006-09-29  Werner Lemberg  <wl@gnu.org>
3873
3874        * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
3875        overlapping segments.  Bug reported by Stefan Koch.
3876
38772006-09-28  David Turner  <david@freetype.org>
3878
3879        Fix a bug in the automatic unpatented hinting support which prevents
3880        normal bytecode hinting to work properly.
3881
3882        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
3883        s/force_autohint/unpatented_hinting/.  Update all callers.
3884
3885        * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
3886
3887        * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
3888
38892006-09-27  David Turner  <david@freetype.org>
3890
3891        * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
3892
3893
3894        Add a new API to support color filtering of subpixel glyph bitmaps.
3895        In a default build, the function `FT_Library_SetLcdFilter' returns
3896        `FT_Err_Unimplemented_Feature'; you need to #define
3897        FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
3898        real implementation.
3899
3900        * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
3901
3902        * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
3903        typedef.
3904        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
3905        `lcd_filter_weights' and `lcd_filter'.
3906
3907        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
3908        `hmul' and `vmul'.
3909
3910        Handle subpixel rendering.
3911        Simplify function.
3912        (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
3913        (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
3914
3915        * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
3916        pointing to <freetype/ftlcdfil.h>.
3917
3918        * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
3919        vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
3920
3921        * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
3922
39232006-09-26  David Bustin
3924
3925        * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
3926        correctly.  Reported as Savannah bug #17843.
3927
39282006-09-26  David Turner  <david@freetype.org>
3929
3930        * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
3931        AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
3932        horizontal and vertical hinting for the purpose of debugging the
3933        auto-fitter.
3934
3935        * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
3936        _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
3937
3938        * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
3939
3940        * include/freetype/config/ftoption.h, devel/ftoption.h
3941        (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
3942        we want to compile LCD-optimized rendering code (à la ClearType) or
3943        not.  The macro *must* be disabled in default builds of the library
3944        for patent reasons.
3945
3946        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
3947        LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
3948        isn't defined at compile time.  This only changes the content of the
3949        rendered glyph to match the one of normal gray-level rendering,
3950        hence clients should not need to be modified.
3951
3952        * docs/CHANGES: Updated.
3953
39542006-09-18  Garrick Meeker  <garrick@digitalanarchy.com>
3955
3956        * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
3957        LWFN fails and both are available.
3958
39592006-09-11  David Turner  <david@freetype.org>
3960
3961        * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
3962        report their English names through an Apple Roman
3963        (platform,encoding) pair, with language_id != English.
3964
3965        If the font uses another name entry with language_id == English, it
3966        will be selected correctly, though.
3967
3968        * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
3969        selection for `mingli.ttf'.
3970
39712006-09-05  Werner Lemberg  <wl@gnu.org>
3972
3973        * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
3974        values which have the upper two bytes set to 0xFF instead of 0x00
3975        (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
3976        `HAN NOM B.ttf').
3977
3978        * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
3979
39802006-09-05  David Turner  <david@freetype.org>
3981
3982        Minor source cleanups and optimizations.
3983
3984        * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
3985        (TRaster): Remove `count_ex' and `count_ey'.
3986        (gray_find_cell): Remove 2nd and 3rd argument.
3987        (gray_alloc_cell): Merged with `gray_find_cell'.
3988        (gray_record_cell): Simplify.
3989        (gray_set_cell): Rewrite.
3990        (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
3991        (gray_render_span): Don't use FT_MEM_SET for small values.
3992        (gray_dump_cells) [DEBUG_GRAYS]: New function.
3993        (gray_sweep): Avoid buffer overwrites when to drawing the end of a
3994        bitmap scanline.
3995        (gray_convert_glyph): Fix speed-up.
3996
39972006-09-04  David Turner  <david@freetype.org>
3998
3999        * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
4000        64bit processors.
4001
40022006-09-03  Werner Lemberg  <wl@gnu.org>
4003
4004        * devel/ftoption.h: Synchronize with
4005        include/freetype/config/ftoption.h.
4006
4007        * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
4008        variable declaration.
4009        (gray_convert_glyph): Fix compiler warnings.
4010
40112006-09-01  David Turner  <david@freetype.org>
4012
4013        * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
4014        to recognize a few fonts that require the automatic unpatented
4015        loader.
4016
4017        * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
4018        rasterizer.  The speed improvement is between 15% and 25%, depending
4019        on the font data.
4020
4021        (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
4022        (TCell): Redefine.
4023        (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
4024        (gray_init_cells): Updated.
4025        (gray_find_cell, gray_alloc_cell): New functions.
4026        (gray_record_cell): Rewritten to use `gray_find_cell' and
4027        `gray_alloc_cell'.
4028        (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
4029        QSORT_THRESHOLD):
4030        Removed.
4031        (gray_shell_sort, gray_quick_sort, gray_check_sort,
4032        gray_dump_cells): Removed.
4033        (gray_sweep): Rewritten.
4034        (gray_convert_glyph): Rewrite code which used one of the sorting
4035        functions.
4036        (gray_raster_render): Updated.
4037
40382006-08-29  Dr. Werner Fink  <werner@suse.de>
4039
4040        * configure: Make it possible to handle configure options which
4041        have strings containing spaces.
4042
40432006-08-27  David Turner  <david@freetype.org>
4044
4045        * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
4046        New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
4047        or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
4048
4049        * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
4050        src/truetype/truetype.c, src/truetype/ttdriver.c,
4051        src/truetype/ttgload.c, src/truetype/ttgload.h,
4052        src/truetype/ttinterp.c, src/truetype/ttobjs.c,
4053        src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
4054        s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
4055
4056        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
4057        member `force_autohint'.
4058
4059        * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
4060
4061        * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
4062        against a list of font names which need the bytecode interpreter.
4063
40642006-08-27  Jens Claudius  <jens.claudius@yahoo.com>
4065
4066        Fix miscellaneous compiler warnings.
4067
4068        * include/freetype/internal/ftobjs.h: Close comment with `*/' to
4069        avoid `/* in comment' compiler warning.
4070
4071        * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
4072        `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
4073        64-bit platforms void* is larger than FT_UInt32.
4074
4075        * src/base/ftobjs.c (t_validator_error): Cast away
4076        volatileness of argument to ft_longjmp.  Spotted by Werner
4077        `Putzfrau' Lemberg.
4078
4079        * src/bdf/bdflib.c (bdf_load_font): Initialize local
4080        variable `lineno'.
4081
4082        * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable
4083        `error' as volatile.
4084
40852006-08-27  Werner Lemberg  <wl@gnu.org>
4086
4087        * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
4088        Reported by Jens.
4089
40902006-08-22  Jens Claudius  <jens.claudius@yahoo.com>
4091
4092        Fix for previous commit, which caused many compiler warnings/errors
4093        about addresses of volatile objects passed as function arguments as
4094        non-volatile pointers.
4095
4096        * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a
4097        pointer to a volatile object.
4098
4099        * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument
4100        `table' a pointer to a volatile object.
4101
4102        * src/otvalid/otvmod.c (otv_load_table): Make function argument
4103        `table' a pointer to a volatile object.
4104
41052006-08-18  Jens Claudius  <jens.claudius@yahoo.com>
4106
4107        * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt'
4108        as volatile since it must keep its value across a call to ft_setjmp.
4109        (gxv_validate): Same for local variables `memory' and `valid'.
4110        (classic_kern_validate): Same for local variables `memory',
4111        `ckern', and `valid'.
4112
4113        * src/otvalid/otvmod.c (otv_validate): Same for function parameter
4114        `face' and local variables `base', `gdef', `gpos', `gsub', `jstf',
4115        and 'valid'.
4116
4117        * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable
4118        `cmap'.
4119
41202006-08-16  David Turner  <david@freetype.org>
4121
4122        * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
4123        warnings.
4124
4125        * src/base/ftobjs.c (ft_validator_run): Disable function; it is
4126        buggy by design.  Always return -1.
4127
4128
4129        Improvements to native TrueType hinting.  This is a first try,
4130        controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
4131
4132        * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
4133        `extra_points2'.
4134
4135        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
4136        `orus'.
4137
4138        * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
4139        FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
4140        FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
4141        handle `extra_points2'.
4142
4143        * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
4144        Remove compiler warning.
4145        (cur_to_arg): Remove macro.
4146        (TT_Hint_Glyph): Updated.
4147        (TT_Process_Simple_Glyph): Handle `orus'.
4148
4149        * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
4150        (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
4151        (LOC_Ins_IUP): Renamed to...
4152        (IUP_WorkerRec): This.
4153        Add `orus' member.
4154        (Shift): Renamed to...
4155        (_iup_worker_shift): This.
4156        Updated.
4157        (Interp): Renamed to...
4158        (_iup_worker_interpolate): This.
4159        Updated to handle `orus'.
4160        (Ins_IUP): Updated.
4161
4162        * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
4163        Handle `orus'.
4164
41652006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4166
4167        * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
4168        build ftvalid in ft2demos.  This has been inadvertedly changed
4169        2006-08-13.
4170
41712006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4172
4173        `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
4174        Jens:
4175        http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
4176
4177        * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'.
4178        It reverts the change introduced on 2005-08-20.
4179
4180        * src/gxvalid/gxvmod.c: Ditto.
4181
41822006-08-13  Jens Claudius  <jens.claudius@yahoo.com>
4183
4184        * finclude/freetype/internal/psaux.h: (T1_TokenType): Add
4185        T1_TOKEN_TYPE_KEY.
4186        (T1_FieldRec): Add `dict'.
4187        (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
4188        (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
4189        keyword is expected as an additional argument.
4190
4191        * src/cid/cidload.c: (cid_field_records): Adjust invocations of
4192        T1_FIELD_XXX.
4193
4194        * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
4195
4196        * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
4197        (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
4198        not T1_TOKEN_TYPE_ANY.
4199        (ps_parser_load_field): Make sure a token that should be a string or
4200        name is really a string or name.
4201        Avoid memory leak if a keyword has been already encountered and its
4202        value is overwritten.
4203        * src/type1/t1load.c: (t1_keywords): Adjust invocations of
4204        T1_FIELD_XXX.
4205        (parse_dict): Ignore keywords that occur in the wrong dictionary
4206        (e.g., in `Private' instead of `FontDict').
4207
4208        * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX.
4209
4210        * src/type42/t42parse.c: (t42_keywords): Adjust invocations of
4211        T1_FIELD_XXX.
4212
42132006-07-18  Jens Claudius  <jens.claudius@yahoo.com>
4214
4215        Move creation of field `buildchar' of T1_DecoderRec out of
4216        `t1_decoder_init' and let the caller of `t1_decoder_init' take care
4217        of it.
4218
4219        Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
4220        and `T1_Compute_Max_Advance'.
4221
4222        * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field
4223        `face', add `len_buildchar'.
4224
4225        * include/freetype/internal/t1types.h (T1_FaceRec): Add field
4226        `buildchar'.
4227
4228        * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher
4229        for T1_Decoder.
4230        (cid_slot_load_glyph): Do not ignore failure when initializing the
4231        T1_Decoder.
4232
4233        * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated.
4234        (t1_decoder_init): Remove initialization of fields `buildchar' and
4235        `len_buildchar'.
4236        (t1_decoder_done): Remove deallocation of field `buildchar'.
4237
4238        * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
4239        T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
4240        T1_Decoder.
4241        (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
4242        `len_buildchar'; make sure to call finisher for T1_Decoder even in
4243        case of error.
4244
4245        * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar'
4246        of T1_FaceRec.
4247
4248        * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of
4249        T1_FaceRec.
4250
42512006-07-14  Jens Claudius  <jens.claudius@yahoo.com>
4252
4253        * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE,
4254        IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
4255        and IS_PS_BASE85 (from src/psaux/psconv.h).
4256        (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
4257        T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
4258        (T1_DecoderRec): New fields `buildchar' and `face'.
4259        (IS_PS_TOKEN): New macro.
4260
4261        * include/freetype/internal/t1types.h (T1_FaceRec): New fields
4262        `ndv_idx', `cdv_idx', and `len_buildchar'.
4263
4264        * include/freetype/t1tables.h (PS_BlendRec): New fields
4265        `default_design_vector' and `num_default_design_vector'.
4266
4267        * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE,
4268        IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and
4269        IS_PS_BASE85 to include/freetype/internal/psaux.h.
4270
4271        * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token'
4272        argument to be NULL if we want only to count the number of tokens.
4273        (ps_tocoordarray): Allow `coords' argument to be NULL if we just
4274        want to skip the array.
4275        (ps_tofixedarray): Allow `values' argument to be NULL if we just
4276        want to skip the array.
4277
4278        * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support
4279        for (partially commented out) othersubrs 19-25, 27, and 28.
4280        (t1_decoder_init): Initialize new fields `face' and `buildchar'.
4281        (t1_decoder_done): Release new field `buildchar'.
4282
4283        * src/type1/t1load.c (parse_buildchar, parse_private): New
4284        functions.
4285        (t1_keywords): Register them.
4286        (t1_allocate_blend): Updated.
4287        (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
4288        T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
4289        (parse_dict): Remove `keyword_flags' argument.
4290        Use new macro IS_PS_TOKEN.
4291        Changed function so that later PostScript definitions override
4292        earlier ones.
4293        (t1_init_loader): Initialize new field `keywords_encountered'.
4294        (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
4295        `len_buildchar'.
4296        Remove `keywords_flags'.
4297
4298        * src/type1/t1load.h (T1_LoaderRect): New field
4299        `keywords_encountered'.
4300        (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
4301
4302        * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New
4303        entries for parsing /NDV, /CDV, and /DesignVector.
4304
43052006-07-07  Werner Lemberg  <wl@gnu.org>
4306
4307        Add many checks to protect against malformed PCF files.
4308
4309        * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
4310        (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
4311
4312        * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
4313        data and check that tables don't overlap (using a simple
4314        bubblesort).
4315        (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
4316        New macros which give the size of data structures in the data
4317        stream.
4318        (pcf_get_properties): Use rough estimates to get array size limits.
4319        Assign `face->nprops' and `face->properties' earlier so that a call
4320        to PCF_Face_Done can do the clean-up in case of error.
4321        Protect against invalid string offsets.
4322        (pcf_get_metrics): Clean up code.
4323        Adjust tracing message levels.
4324        Use rough estimate to get array size limit.
4325        (pcf_get_bitmaps): Clean up code.
4326        Adjust tracing message levels.
4327        Use rough estimates to get offset limits.
4328        (pcf_get_encodings): Adjust tracing message level.
4329        (pcf_get_accel): Clean up code.
4330
43312006-06-26  Werner Lemberg  <wl@gnu.org>
4332
4333        * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
4334        don't have a POINT_SIZE property.  This fixes Savannah bug #16914.
4335
43362006-06-26  Jens Claudius  <jens.claudius@yahoo.com>
4337
4338        * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
4339        (t1_decoder_parse_charstrings): Operator with
4340        opcode 15 pops its two arguments.
4341        Handle the case where the pops of an othersubr may be part of a
4342        subroutine.
4343        Handle unknown othersubrs gracefully: count their operands and let
4344        the following pop operators push the operands as the results onto
4345        the Type1 stack.
4346        Improve handling of setcurrentpoint opcode.
4347
43482006-06-25  Jens Claudius  <jens.claudius@yahoo.com>
4349
4350        The Type 1 parser now skips over top-level procedures as required
4351        for a `Simplified Parser'.  This makes the parser more robust as it
4352        doesn't poke around in PostScript code.  Additionally, it makes the
4353        FontDirectory hackery in src/type1/t1load.c unnecessary.
4354
4355        * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
4356        (skip_literal_string): Add FT_Error as return value.
4357        Handle escapes better.
4358        (skip_string): Add FT_Error as return value.
4359        Don't set `parser->error' but return error code directly.
4360        (skip_procedure): New function.
4361        (ps_parser_skip_PS_token): Handle procedures.
4362        Update code.
4363        (ps_parser_to_token): Update code.
4364        (ps_parser_load_field_table): Handle bbox entries also.
4365
4366        * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
4367        Add commented-out code for synthetic fonts.
4368
43692006-06-24  Eugeniy Meshcheryakov  <eugen@univ.kiev.ua>
4370
4371        Fix two hinting bugs as reported in
4372        http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
4373
4374        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
4375        `first_point' member.
4376
4377        * src/truetype/ttgload.c (tt_prepare_zone): Initialize
4378        `first_point'.
4379        (TT_Process_Composite_Glyph): Always untouch points.
4380
4381        * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
4382        `first_point' and `last_point' in case of composite glyphs.
4383        (Ins_IUP): Fix computation of `end_point'.
4384
43852006-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4386
4387        Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
4388        Mac.  The original patch was written by David Sachitano and Lawrence
4389        Coopet, and modified by Sean McBride for MPW compatibility.  Only
4390        required data are converted; unused data are left in big endian.
4391
4392        * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
4393        Mac OS X platforms.
4394        (OS_INLINE): Undefine before definition.
4395        (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
4396        FontAssociation table in FOND resource.
4397        (count_faces_scalable): Insert EndianS16_BtoN to parse the header
4398        and fontSize at each entry of FontAssociation table in FOND
4399        resource.
4400        (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
4401        ffStylOff of FamilyRecord header of FOND resource, the header,
4402        fontSize, fontID at each entry of FontAssociation table, and
4403        StyleMapping table.
4404        (count_faces): Call `HUnlock' after all FOND utilization.
4405
44062006-06-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4407
4408        Public API of TrueTypeGX, OpenType, and classic kern table validator
4409        should return `FT_Err_Unimplemented_Feature' if validation service
4410        is unavailable (disabled in `modules.cfg').  It is originally
4411        suggested by David Turner, cf.
4412        http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
4413
4414        * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
4415        FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
4416        unavailable.
4417        (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
4418        classic kern table validation service is unavailable.
4419
4420        * src/base/ftotval.c (FT_OpenType_Validate): Return
4421        FT_Err_Unimplemented_Feature if OpenType validation service is
4422        unavailable.
4423
44242006-06-08  Werner Lemberg  <wl@gnu.org>
4425
4426        * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
4427        errors.
4428
44292006-06-07  David Turner  <david@freetype.org>
4430
4431        * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
4432        (T1_Read_Metrics): Fix memory leak which happened when the metrics
4433        file doesn't have kerning pairs.  This fixes Savannah bug #16768.
4434
44352006-06-06  David Turner  <david@freetype.org>
4436
4437        Fix memory leak described in Savannah bug #16759.
4438
4439        We change `ps_unicodes_init' so that it also takes a
4440        `free_glyph_name' callback to release the glyph names returned by
4441        `get_glyph_name'
4442
4443        * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
4444        Renamed to ...
4445        (PS_GetGlyphNameFunc): This.
4446        (PS_FreeGlyphNameFunc): New typedef.
4447        (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
4448
4449        * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
4450        argument.
4451        (cff_sid_free_glyph_name): New function.
4452        (cff_cmap_unicode_init): Updated.
4453
4454        * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
4455
4456        * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
4457        PS_FreeGlyphNameFunc and use it.
4458
4459
44602006-06-04  David Turner  <david@freetype.org>
4461
4462        * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
4463        `item_size == 0' as well -- though this sounds weird, it can
4464        theoretically happen.  This fixes Savannah bug #16669.
4465
4466        * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
4467        of `face->num_glyphs' which missed the last glyph, due to
4468        the offset-by-1 computation, since the PFR format doesn't
4469        guarantee that glyph index 0 corresponds to the `missing
4470        glyph.  This fixes Savannah bug #16668.
4471
44722006-05-25  Werner Lemberg  <wl@gnu.org>
4473
4474        * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
4475        `-no-undefined'.  Reported by Christian Biesinger.
4476
44772006-05-19  Brian Weed  <bw@imaginengine.com>
4478
4479        * builds/win32/visualc/freetype.dsp: Release libraries no longer
4480        have debug information, and debug libraries use `C7 compatible'
4481        debug info.
4482
44832006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4484
4485        Apply patch by Derek Clegg to fix two memory leaks in the MacOS
4486        resource fork handler.  This fixes Savannah bug #16631.
4487
4488        * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
4489        `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
4490
4491        * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
4492        Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
4493
44942006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4495
4496        * build/unix/configure.raw: Add a fallback to disable Carbon
4497        dependency, if configured with no options on Mac OS X.
4498
44992006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4500
4501        * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
4502        its content cannot be parsed as supported font.  This fixes
4503        the second part of Savannah bug #16590.
4504
45052006-05-18  Werner Lemberg  <wl@gnu.org>
4506
4507        * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
4508        [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
4509
45102006-05-17  David Turner  <david@freetype.org>
4511
4512        This is a major patch used to drastically improve the performance of
4513        loading glyphs.  This both speeds up loading the glyph vectors
4514        themselves and the auto-fitter module.
4515
4516        We now use inline assembler code with GCC to implement `FT_MulFix',
4517        which is probably the most important function related to the
4518        engine's performance.
4519
4520        The resulting speed-up is about 25%.
4521
4522
4523        * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
4524        `cursor' and `limit'.
4525
4526        * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
4527        New functions.
4528        (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
4529        [TEST]: Remove.
4530
4531        * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
4532        code.
4533
4534        * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
4535        `FT_ZERO'
4536        (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
4537        (af_glyph_hints_reload: Rewrite recognition of weak points.
4538
4539        * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
4540        constant values out of the loops.
4541
4542        * src/autofit/aftypes.h: Updated.
4543
4544        * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
4545
4546        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
4547        product to get orientation.
4548
4549        * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
4550        (FT_Stream_OpenGzip): Use it to handle small files directly in
4551        memory.
4552
4553        * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
4554        Improve performance.
4555
4556        * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
4557        `limit'.
4558
4559        (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
4560        TT_Load_Composite_Glyph): Updated.  Add threshold to protect against
4561        exceedingly large values of number of contours.  Speed up by
4562        reducing the number of loops.
4563
4564        * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
4565
4566
4567        * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
4568        used to detect rogue clients from 4 to 16.  This is to prevent some
4569        segmentation faults with fonts like `KozMinProVI-Regular.otf' which
4570        comes from the Japanese Adobe Reader Asian Font pack.
4571
45722007-05-17  Werner Lemberg  <wl@gnu.org>
4573
4574        * src/cff/cffload.c (cff_font_done): Deallocate subfont array.  This
4575        fixes the first part of Savannah bug #16590.
4576
45772006-05-16  Werner Lemberg  <wl@gnu.org>
4578
4579        * docs/PROBLEMS: Updated icl issues.
4580
4581----------------------------------------------------------------------------
4582
4583Copyright 2006, 2007, 2008, 2009 by
4584David Turner, Robert Wilhelm, and Werner Lemberg.
4585
4586This file is part of the FreeType project, and may only be used, modified,
4587and distributed under the terms of the FreeType project license,
4588LICENSE.TXT.  By continuing to use, modify, or distribute this file you
4589indicate that you have read the license and understand and accept it
4590fully.
4591
4592
4593Local Variables:
4594version-control: never
4595coding: utf-8
4596End:
Note: See TracBrowser for help on using the repository browser.