source: trunk/poppler/freetype2/ChangeLog @ 209

Last change on this file since 209 was 209, checked in by Eugene Romanenko, 14 years ago

PDF plugin: freetype library updated to version 2.3.5

File size: 82.3 KB
Line 
12007-07-02  Werner Lemberg  <wl@gnu.org>
2
3
4        * Version 2.3.5 released.
5        =========================
6
7
8        Tag sources with `VER-2-3-5'.
9
10        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
11        version number to 2.3.5.
12
13        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
14        builds/win32/visualc/freetype.dsp,
15        builds/win32/visualc/freetype.vcproj,
16        builds/win32/visualce/index.html,
17        builds/win32/visualce/freetype.dsp,
18        builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/.
19
20        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
21
22        * builds/unix/configure.raw (version_info): Set to 9:16:3.
23
242007-07-01  David Turner  <david@freetype.org>
25
26        * include/freetype/freetype.h, src/base/ftpatent.c
27        (FT_Face_SetUnpatentedHinting): New function to dynamically change
28        the setting after a face is created.
29
30        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug
31        that created distortions in the bytecode interpreter results.
32
332007-06-30  David Turner  <david@freetype.org>
34
35        * src/truetype/ttinterp.c (Ins_IUP): Add missing variable
36        initialization.
37
38        * src/autofit/aflatin.c (af_latin_metric_init_blues): Get rid of an
39        infinite loop in the case of degenerate fonts.
40
412007-06-26  Rahul Bhalerao  <b.rahul.pm@gmail.com>
42
43        Add autofit module for Indic scripts.  This currently just reuses
44        the CJK-specific functions.
45
46        * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New
47        macro.
48        * devel/ftoption.h: Synchronize with
49        include/freetype/config/ftoption.h.
50
51        * src/autofit/afindic.c, src/autofit/afindic.h: New files.
52
53        * src/autofit/afglobal.c, src/autofit/aftypes.h,
54        src/autofit/autofit.c: Updated.
55
56        * src/autofit/Jamfile (_sources), * src/autofit/rules.mk
57        (AUTOF_DRV_SRC): Updated.
58
592007-06-23  David Turner  <david@freetype.org>
60
61        * src/truetype/ttgload.c (TT_Load_Simple): Fix change from
62        2007-06-16 that prevented the TrueType module from loading most
63        glyphs.
64
652007-06-20  Werner Lemberg  <wl@gnu.org>
66
67        * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28
68        change.
69
702007-06-19  Werner Lemberg  <wl@gnu.org>
71
72        * src/type1/t1load.c (parse_encoding): Handle one more error.
73
742007-06-19  Dmitry Timoshkov  <dmitry@codeweavers.com>
75
76        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error
77        FNT_Err_Invalid_File_Format if file format was recognized but
78        the file doesn't contain any FNT(NE) or RT_FONT(PE) resources.
79        Add verbose debug logs to make it easier to debug failing load
80        attempts.
81        (FNT_Face_Init): A single FNT font can't contain more than 1 face,
82        so return an error if requested face index is > 0.
83        Do not do further attempt to load fonts if a previous attempt has
84        failed but returned error FNT_Err_Invalid_File_Format, i.e., the
85        file format has been recognized but no fonts found in the file.
86
872007-07-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
88
89        * src/base/ftmac.c: Apply patches proposed by Sean McBride.
90        (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix
91        the compiler warnings against unused arguments.
92        (FT_ATSFontGetFileReference): Ditto.
93        (FT_GetFile_From_Mac_ATS_Name): Ditto.
94        (FT_New_Face_From_FSSpec): Ditto.
95        (lookup_lwfn_by_fond): Fix wrong comment.
96        Replace `const StringPtr' by more appropriate type
97        `ConstStr255Param'.
98        FSRefMakePathPath always returns UTF8 POSIX pathname in
99        Mach-O, thus HFS pathname support is dropped.
100        (count_faces): Remove HLock and HUnlock which is not
101        required on Mac OS X anymore.
102        (FT_New_Face_From_SFNT): Ditto.
103        (FT_New_Face_From_FOND): Ditto.
104        * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c,
105        except of HFS pathname support and HLock/HUnlock.
106        They are required on classic CFM environment.
107
1082007-06-18  Werner Lemberg  <wl@gnu.org>
109
110        * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect
111        assertion.
112        (ps_parser_to_bytes): Fix error message.
113
114        * src/type42/t42objs.c (T42_Open_Face): Handle one more error.
115        * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/.
116        Don't allow mixed binary and hex strings.
117        Handle string_size == 0 and string_buf == 0.
118        (t42_parse_encoding): Handle one more error.
119
1202007-06-18  Werner Lemberg  <wl@gnu.org>
121
122        * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit
123        logic.
124        (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters
125        correctly.
126        (ps_parser_load_field_table): Use `fields->array_max' instead of
127        T1_MAX_TABLE_ELEMENTS to limit the number of arguments.
128
129        * src/cff/cffgload.c (cff_decoder_prepare): Fix change from
130        2007-06-06.
131
1322007-06-17  Werner Lemberg  <wl@gnu.org>
133
134        * src/tools/ftrandom.c (font_size): New global variable.
135        (TestFace): Use it.
136        (main): Handle new option `--size' to set `font_size'.
137        (Usage): Updated.
138
139        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of
140        invalid font.
141        (FNT_Load_Glyph): Protect against invalid bitmap width.
142
1432007-06-16  David Turner  <david@freetype.org>
144
145        * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline):
146        Prevent integer overflows when rendering very large outlines.
147
148        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the
149        well-formedness of the contours array when loading a glyph.
150
151        * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1',
152        and `zp2'.
153        (Ins_IP): Check argument ranges to reject bogus operations properly.
154        (IUP_WorkerRec): Add `max_points' member.
155        (_iup_worker_interpolate): Check argument ranges.
156        (Ins_IUP): Ignore empty outlines.
157
1582007-06-16  Dmitry Timoshkov  <dmitry@codeweavers.com>
159
160        * src/winfonts/winfnt.h: Add necessary structures for PE resource
161        parsing.
162        (WinPE32_HeaderRec): New structure.
163        (WinPE32_SectionRec): New structure.
164        (WinPE_RsrcDirRec): New structure.
165        (WinPE_RsrcDirEntryRec): New structure.
166        (WinPE_RsrcDataEntryRec): New structure.
167        (FNT_FontRec): Remove unused `size_shift' field.
168
169        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for
170        loading bitmap .fon files in PE format.
171
1722007-06-15  Dmitry Timoshkov  <dmitry@codeweavers.com>
173
174        * builds/win32/ftdebug.c: Unify debug level handling with other
175        platforms.
176
1772007-06-14  Dmitry Timoshkov  <dmitry@codeweavers.com>
178
179        * builds/win32/ftdebug.c (FT_Message): Send debug output to the
180        console as well as to the debugger.
181
1822007-06-14  Werner Lemberg  <wl@gnu.org>
183
184        * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to
185        cover all ranges which could possibly be handled by the aflatin
186        module (since the default fallback for unknown ranges is now the
187        afcjk module).  It might be necessary to fine-tune this further by
188        splitting off modules for Greek, Cyrillic, or other blocks.
189
1902007-06-11  David Turner  <david@freetype.org>
191
192        * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix
193        incorrect segment linking computation.  This was the root cause of
194        Savannah bug #19565.
195
196
197        * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes
198        to improve the Latin auto-hinter.  Note that the new code is
199        disabled by default since it is not stabilized yet.
200
201        * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files
202        (disabled currently).
203
204        * src/autofit/afhints.c: Remove dead code.
205        (af_axis_hints_new_edge): Add argument to handle segment directions.
206        (af_edge_flags_to_string): New function.
207        (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle
208        option flags.
209        (af_glyph_hints_reload): Add argument to handle inflections.
210        Simplify.
211        (af_direction_compute): Fine tuning.
212        (af_glyph_hints_align_edge_points): Fix logic.
213        (af_glyph_hints_align_strong_points): Do linear search for small
214        edge counts.
215        (af_glyph_hints_align_weak_points): Skip any touched neighbors.
216        (af_iup_shift): Handle zero `delta'.
217
218        * src/autofit/afhints.h: Updated.
219        (AF_SORT_SEGMENTS): New macro (disabled).
220        (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'.
221
222        * src/autofit/afglobal.c (af_face_globals_get_metrics): Add
223        argument to pass option flags for handling scripts.
224        * src/autofit/afglobal.h: Updated.
225
226        * src/autofit/afcjk.c: Updated.
227        * src/autofit/aflatin.c: Updated.
228        (af_latin_metrics_scale_dim): Don't reduce scale by 2%.
229
230        (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code.
231        (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code.
232        Don't set `edge->dir'
233        (af_latin_hint_edges): Add more logging.
234
235        * src/autofit/afloader.c: Updated.
236
2372007-06-11  Werner Lemberg  <wl@gnu.org>
238
239        * docs/CHANGES: Document FT_Face_CheckTrueTypePatents.
240
2412007-06-10  David Turner  <david@freetype.org>
242
243        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to
244        the TrueType glyph loader.
245
246        * include/freetype/config/ftoption.h: Clarify documentation
247        regarding unpatented hinting.
248
249
250        Add new `FT_Face_CheckTrueTypePatents' API.
251
252        * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New
253        declaration.
254
255        * include/freetype/internal/services/svttglyf.h,
256        src/base/ftpatent.c: New files.
257
258        * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H):
259        New macro.
260
261        * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and
262        `ttpload.h'.
263        (tt_service_truetype_glyf): New service structure.
264        (tt_services): Register it.
265
266        * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add
267        `ftpatent.c'.
268
2692007-06-08  Werner Lemberg  <wl@gnu.org>
270
271        * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28.
272        Fonts without a cmap must be handled correctly by FreeType (anything
273        else would be a bug).
274
275
276        * src/psaux/t1decode.c (t1_decoder_parse_charstrings)
277        [FT_DEBUG_LEVEL_TRACE]: Improve tracing message.
278
2792007-06-07  Werner Lemberg  <wl@gnu.org>
280
281        * src/sfnt/ttsbit0.c (tt_sbit_decoder_init,
282        tt_sbit_decoder_load_image): Protect against integer overflows.
283
284
285        * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks
286        for `x_control' and `y_control'.
287
2882007-06-06  Werner Lemberg  <wl@gnu.org>
289
290        * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'.
291
292
293        * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal
294        FreeType error.
295
296
297        * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of
298        `font_count'.
299
300
301        * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'.
302
303
304        * src/cff/cffgload.c (cff_decoder_prepare): Change return type to
305        `FT_Error'.
306        Check `fd_index'.
307        (cff_slot_load): Updated.
308        * src/cff/cffgload.h: Updated.
309
3102007-06-05  Werner Lemberg  <wl@gnu.org>
311
312        * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code.
313        (pfr_glyph_load_simple): Convert assertion into normal FreeType
314        error.
315        Check `idx'.
316        (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to):
317        Convert assertion into normal FreeType error.
318
319        * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code.
320
321
322        * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'.
323
324
325        * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1
326        in case of parsing error.
327        (ps_parser_load_field): Updated.
328
329        * src/type1/t1load.c (parse_font_matrix): Updated.
330
3312007-06-04  Werner Lemberg  <wl@gnu.org>
332
333        * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'.
334
335        * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
336
3372007-06-03  Werner Lemberg  <wl@gnu.org>
338
339        * src/tools/ftrandom/*: Add the `ftrandom' test program written by
340        George Williams (with some modifications).
341
3422007-06-03  Werner Lemberg  <wl@gnu.org>
343
344        * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c
345        (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for
346        face == NULL.  Suggested by Graham Asher.
347
3482007-06-03  Ismail Dönmez  <ismail@pardus.org.tr>
349
350        * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning.
351
3522007-06-02  Werner Lemberg  <wl@gnu.org>
353
354        * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header,
355        FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files.
356
357        * src/bdf/bdflib.c (bdf_load_font): Use them.
358
359        * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better.
360
3612007-06-01  Werner Lemberg  <wl@gnu.org>
362
363        * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c
364        (FTC_CMapCache_Lookup): Remove unused code.
365
3662007-06-01  Sean McBride  <sean@rogue-research.com>
367
368        * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed,
369        unused.
370
3712007-06-01  Werner Lemberg  <wl@gnu.org>
372
373        * src/cid/cidparse.c (cid_parser_new): Don't continue second search
374        pass for `StartData' if an error has occurred.
375        Exit properly if no `StartData' has been seen at all.
376
377        * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but
378        LONG_MAX to avoid compiler warning.  Suggested by Sean McBride.
379
3802007-05-30  Werner Lemberg  <wl@gnu.org>
381
382        * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect
383        against too small binary data strings.
384
385        * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better.
386
3872007-05-28  David Turner  <david@freetype.org>
388
389        * src/cff/cffgload.c (cff_slot_load): Do not apply the identity
390        transformation.  This significantly reduces the loading time of CFF
391        glyphs.
392
393        * docs/CHANGES: Updated.
394
395        * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default
396        hinting script to CJK, since it works well with more scripts than
397        latin.  Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing
398        this out!
399
4002007-05-25  Werner Lemberg  <wl@gnu.org>
401
402        * docs/CHANGES: Updated.
403
4042007-05-24  Werner Lemberg  <wl@gnu.org>
405
406        * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration
407        into TT_USE_BYTECODE_INTERPRETER preprocessor block.
408
4092007-05-24  Graham Asher  <graham.asher@btinternet.com>
410
411        * src/truetype/ttobjs.c (tt_size_ready_bytecode)
412        [!TT_USE_BYTECODE_INTERPRETER]: Removed.  Unused.
413
4142007-05-22  David Turner  <david@freetype.org>
415
416        * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to
417        avoid crashes in case the bytecode interpreter is not used.
418
419
420        Avoid heap blowup with very large .Z font files.  This fixes
421        Savannah bug #19910.
422
423        * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor',
424        `in_limit', `pad', `pad_bits', and `in_buff' members.
425        Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and
426        `buf_total' members.
427
428        * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten.  It now takes
429        only one argument.
430        (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated.
431
4322007-05-20  Ismail Dönmez  <ismail@pardus.org.tr>
433
434        * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'.
435        (ps_dimension_set_mask_bits): Remove `const'.
436
4372007-05-19  Werner Lemberg  <wl@gnu.org>
438
439        * src/sfnt/ttmtx.c (tt_face_get_metrics)
440        [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix.
441
4422007-05-19  Derek Clegg  <dclegg@apple.com>
443
444        Savannah patch #5929.
445
446        * include/freetype/tttables.h, src/base/ftobjcs.c
447        (FT_Get_CMap_Format): New function.
448
449        * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add
450        `format' member.
451        * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set
452        cmap_info->format.
453
4542007-05-19  Werner Lemberg  <wl@gnu.org>
455
456        * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state
457        before handling subglyphs so that it can be reinitialized each time.
458        This fixes Savannah bug #19859.
459
4602007-05-16  Werner Lemberg  <wl@gnu.org>
461
462        * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink),
463        src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h
464        (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init),
465        src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea,
466        tt_face_get_metrics): Fix type-punning issues.
467
4682007-05-15  David Turner  <david@freetype.org>
469
470        * include/freetype/config/ftstdlib.h,
471        include/freetype/internal/ftobjs.h: As suggested by Graham Asher,
472        ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values
473        instead on relying on the locale-dependent functions provided by
474        <ctypes.h>.
475
4762007-05-15  Graham Asher  <graham.asher@btinternet.com>
477
478        * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused
479        variable.
480        * src/autofit/afloader.c (af_loader_load_g): Ditto.
481
482        * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'.
483        (open_face_from_buffer): Initialize `stream'.
484        (FT_Request_Metrics): Remove unused variable.
485        Remove redundant `break' statements.
486        (FT_Get_Track_Kerning): Remove unused variable.
487
488        * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs,
489        afm_parse_kern_data): Remove redundant
490        `break' statements.
491        (afm_parser_parse): Ditto.
492        Don't use uninitialized variables.
493
494        * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long.
495        Use `|' operator instead of `^' to set it.
496        Update all users.
497
498        * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'.
499        * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable.
500
501        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant
502        comparison.
503        (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'.
504        (TT_Load_Glyph): Remove unused variable.
505
5062007-05-13  Derek Clegg  <dclegg@apple.com>
507
508        * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool
509        if FT_RENDER_POOL_SIZE is > 0.  From Savannah patch #5928.
510
5112007-05-11  David Turner  <david@freetype.org>
512
513        * src/cache/ftbasic.c, include/freetype/ftcache.h
514        (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new
515        functions that allow us to look up glyphs using an FTC_Scaler object
516        to specify the size, making it possible to use fractional pixel
517        sizes.
518
519        * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set
520        `size->cvt_ready'.  Reported by Boris Letocha.
521
5222007-05-09  Graham Asher  <graham.asher@btinternet.com>
523
524        * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c
525        (af_latin_metrics_scale_dim): Fix compiler warnings.
526
5272007-05-06  Werner Lemberg  <wl@gnu.org>
528
529        * builds/win32/visualce/freetype.sln: Removed, as requested by
530        Vincent.
531
5322007-05-04  Vincent RICHOMME  <richom.v@free.fr>
533
534        * builds/win32/visualce/*: Add Visual C++ project files for Pocket
535        PC targets.
536
537        * docs/CHANGES: Document them.
538
5392007-05-04  <harry@kdevelop.org>
540
541        * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of
542        mmap (which might happen on some RTOS).  From Savannah patch #5909.
543
5442007-05-03  Werner Lemberg  <wl@gnu.org>
545
546        * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code.
547        * include/freetype/freetype.h (FT_Set_Char_Size): Update
548        documentation.
549
5502007-04-28  Victor Stinner  <victor.stinner@inl.fr>
551
552        * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading
553        `cmap'.
554
5552007-04-27  Werner Lemberg  <wl@gnu.org>
556
557        * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative
558        number of points in contours.  Problem reported by Victor Stinner
559        <victor.stinner@haypocalc.com>.
560        (TT_Process_Simple_Glyph): Synchronize variable types.
561
5622007-04-26  Werner Lemberg  <wl@gnu.org>
563
564        * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to
565        zero in case of error.  This fixes Savannah bug #19689.
566
5672007-04-25  Boris Letocha <b.letocha@cz.gmc.net>
568
569        * src/truetype/ttobjs.c: Fix a typo that created a speed regression
570        in the TrueType bytecode loader.
571
5722007-04-10  Martin Horak  <horakm@centrum.cz>
573
574        * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]:
575        Ignore `hhea' table.  This fixes Savannah bug #19261.
576
5772007-04-09  Werner Lemberg  <wl@gnu.org>
578
579
580        * Version 2.3.4 released.
581        =========================
582
583
584        Tag sources with `VER-2-3-4'.
585
586        * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump
587        version number to 2.3.4.
588
589        * README, Jamfile (RefDoc), builds/win32/visualc/index.html,
590        builds/win32/visualc/freetype.dsp,
591        builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/.
592
593        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
594
595        * builds/unix/configure.raw (version_info): Set to 9:15:3.
596
5972007-04-09  Martin Horak  <horakm@centrum.cz>
598
599        * src/truetype/ttgload.c (load_truetype_glyph): Save and restore
600        memory stream to avoid a crash with the incremental memory
601        interface (Savannah bug #19260).
602
6032007-04-06  David Turner  <david@freetype.org>
604
605        * src/base/ftbimap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite bug
606        (Savannah bug #19536).
607
6082007-04-04  Werner Lemberg  <wl@gnu.org>
609
610
611        * Version 2.3.3 released.
612        =========================
613
614
615        Tag sources with `VER-2-3-3'.
616
617        * docs/CHANGES: Mention CVE-2007-1351.
618
6192007-04-03  David Turner  <david@freetype.org>
620
621        * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos,
622        if one of the resolution values is 0, treat it as if it were the
623        same as the other value.
624
6252007-04-02  David Turner  <david@freetype.org>
626
627        Add special code to detect `extra-light' fonts and do not snap their
628        stem widths too much to avoid bizarre hinting effects.
629
630        * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and
631        `extra_light' members.
632
633        * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
634        them.
635        (af_latin_metrics_scale_dim): Set `extra_light'.
636        (af_latin_compute_stem_width): Use `extra_light'.
637
6382007-03-28  David Turner  <david@freetype.org>
639
640        * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the
641        padding.
642
6432007-03-28  Werner Lemberg  <wl@gnu.org>
644
645        * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128
646        gracefully.
647        (_bdf_set_default_spacing): Increase `name' buffer size to 256 and
648        issue an error for longer names.  This fixes CVE-2007-1351.
649        (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the
650        number of code points in Unicode.
651
652        * builds/win32/visualc/index.html,
653        builds/win32/visualc/freetype.dsp,
654        builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/,
655        s/232/233/.
656
657        * docs/CHANGES: Mention ftdiff.
658
6592007-03-26  David Turner  <david@freetype.org>
660
661        * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and
662        corresponding code.
663        (Ins_MD): Last regression fix.
664
665        * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues
666        computations in order to ignore single-point contours.  These are
667        never rasterized and correspond in certain fonts to mark-attach
668        points that are very far from the glyph's real outline, ruining the
669        computation.
670
671        * src/autofit/afloader.c (af_loader_load_g): In the case of
672        monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0.
673        Otherwise code that uses them will most certainly ruin the fixed
674        advance property.
675
676        * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update
677        documentation and bump version number to 2.3.3.
678
679        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
680
681        * builds/unix/configure.raw (version_info): Set to 9:14:3.
682
6832007-03-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
684
685        * builds/unix/ftconfig.in: Disable Carbon framework dependency on
686        64bit ABI on Mac OS X 10.4.x (ppc & i386).  Found by Sean McBride.
687        * builds/vms/ftconfig.h: Ditto.
688        * include/freetype/config/ftconfig.h: Ditto.
689
6902007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
691
692        * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent
693        32bit unsigned long overflow by 64bit filesize on LP64 platform, as
694        proposed by Sean McBride:
695        http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
696
6972007-03-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
698
699        * builds/unix/ftconfig.in: Suppress SGI compiler's warning against
700        setjmp, proposed by Sean McBride:
701        http://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html
702
7032007-03-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
704
705        * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of
706        conftest.c, to avoid unexpected shell evaluation.  Possibly it is a
707        bug or undocumented behaviour of autoconf.
708
7092007-03-18  David Turner   <david@freetype.org>
710
711        * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression
712        fix; testing still needed.
713
714        * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix.
715
7162007-03-17  David Turner   <david@freetype.org>
717
718        * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the
719        (undocumented) twilight zone special case.
720
7212007-03-09  Werner Lemberg  <wl@gnu.org>
722
723
724        * Version 2.3.2 released.
725        =========================
726
727
728        Tag sources with `VER-2-3-2'.
729
730        * builds/win32/visualc/index.html,
731        builds/win32/visualc/freetype.dsp,
732        builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/,
733        s/231/232/.
734
7352007-03-08  David Turner  <david@freetype.org>
736
737        * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release.
738
739        * builds/unix/configure.raw (version_info): Set to 9:13:3.
740
741        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
742
743        * README, Jamfile (RefDoc): s/2.3.1/2.3.2/.
744
745        * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the
746        function to work properly, over-writing user-provided buffers in
747        some cases.  Reported by James Cloos <cloos@jhcloos.com>.
748
749
7502007-03-05  Werner Lemberg  <wl@gnu.org>
751
752        * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper
753        macro for `strstr'.
754
755        * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning
756        `trick_names', as suggested by Ivan Nincic.
757
7582007-03-05  David Turner  <david@freetype.org>
759
760        * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in
761        case FT_Init_FreeType fails for some reason.  Problem reported by
762        Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>.
763
764        * src/truetype/ttobs.c (tt_size_init_bytecode): Clear the `x_ppem'
765        and `y_ppem' fields of the `TT_Size.metrics' structure, not those of
766        `TT_Size.root.metrics'.  Problem reported by Daniel Glöckner
767        <daniel-gl@gmx.net>.
768
769        * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit
770        signed values, not unsigned ones.  Problem reported by Johannes
771        Walther <joh_walt@yahoo.de>.
772
7732007-02-21  David Turner  <david@freetype.org>
774
775        * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting
776        of small and ghost stems in the Postscript interpreter.
777
7782007-02-20  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
779
780        * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory
781        leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>.
782        * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto.
783
7842007-02-16  Werner Lemberg  <wl@gnu.org>
785
786        * src/truetype/ttinterp.c (Ins_MD): Remove unused variable.
787        * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto.
788
7892007-02-14  David Turner  <david@freetype.org>
790
791        It seems that the following changes fix most of the known
792        interpreter problems with my fonts, but more testing is needed,
793        though.
794
795        * src/truetype/ttinterp.c (FIX_BYTECODE): Activate.
796        (TT_MulFix14): Rewrite.
797        (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated.
798        (Ins_MIRP): Ditto.
799
8002007-02-12  Werner Lemberg  <wl@gnu.org>
801
802        * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler
803        warnings.
804
805        * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c
806        (bdf_interpret_style): Ditto.
807
8082007-02-12  David Turner  <david@freetype.org>
809
810        Simplify projection and dual-projection code interface.
811
812        * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not
813        FT_Vector' as argument type.
814        * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj):
815        Updated.
816        (CUR_fast_project, CUR_fast_dualproj): New macros.
817        (Project, Dual_Project, Project_x, Project_y): Updated.
818        (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast'
819        macros.
820
821
822        * src/autofit/afloader.c (af_loader_load_g): Improve spacing
823        adjustments for the non-light auto-hinted modes.  Gets rid of
824        `inter-letter spacing is too wide' problems.
825
826        * src/autofit/aflatin.c (af_latin_hints_link_segments,
827        af_latin_hints_compute_edges): Slight optimization of the segment
828        linker and better handling of serif segments to get rid of broken
829        `9' in Arial at 9pt (96dpi).
830
831
832        Introduce new string functions and the corresponding macros to get
833        rid of various uses of strcpy and other `evil' functions, as well as
834        to simplify a few things.
835
836        * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup,
837        ft_mem_strcpyn): New declarations.
838        (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New
839        macros.
840        * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New
841        functions.
842
843        * src/bfd/bfddrivr.c (bdf_interpret_style, BDF_Face_Init),
844        src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c
845        (pcf_get_properties, pcf_interpret_style, pcf_load_font),
846        src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c
847        (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy),
848        src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c
849        (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name,
850        t42_get_name_index): Use new functions and simplify code.
851
852        * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN.
853
8542007-02-11  Werner Lemberg  <wl@gnu.org>
855
856        * src/autofit/afloader.c (af_loader_load_g): Don't change width for
857        non-spacing glyphs.
858
8592007-02-07  Tom Parker  <palfrey@tevp.net>
860
861        * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL
862        pointer.
863
8642007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
865
866        * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE):
867        Introduce __attribute((deprecated))__ to warn functions
868        which use non-ANSI data types in its interfaces.
869        (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec.
870        (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec.
871        (FT_New_Face_From_FSSpec): Deprecated, using FSSpec.
872        (FT_New_Face_From_FSRef): Deprecated, using FSRef.
873
874        * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void
875        to avoid warning in building FreeType.
876        * builds/mac/ftmac.c: Ditto.
877
8782007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
879
880        * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured
881        `--with-fsspec' etc.  Replace #include "ftmac.c" with
882        #include <ftmac.c>.
883
8842007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
885
886        * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name):
887        Introduced as replacement of FT_GetFile_From_Mac_ATS_Name.
888        * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto.
889        (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of
890        FT_GetFilePath_From_Mac_ATS_Name.
891        * builds/mac/ftmac.c: Ditto.
892
8932007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
894
895        * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of
896        FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are
897        for passing to FT_New_Face_From_FSSpec.
898
8992007-02-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
900
901        * builds/unix/configure.raw: Check whether Mac OS X system headers
902        can be built under ANSI C mode.
903
904        * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version
905        compatible to ANSI C in case system headers are ANSI C incompatible.
906        * builds/mac/ftmac.c (OS_INLINE): Ditto.
907
9082007-02-01  Werner Lemberg  <wl@gnu.org>
909
910        * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN):
911        Explain why applications shouldn't use it.  Found by Alexei.
912
9132007-02-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
914
915        * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning
916        message.
917
918        * src/gxvalid/gxvmort1.c
919        (gxv_mort_subtable_type1_substTable_validate): Fix debugging
920        message.
921
9222007-01-31  Werner Lemberg  <wl@gnu.org>
923
924
925        * Version 2.3.1 released.
926        =========================
927
928
929        Tag sources with `VER-2-3-1-FINAL'.
930
931        * builds/win32/visualc/freetype.dsp,
932        builds/win32/visualc/freetype.vcproj: s/230/231/.
933        * builds/win32/visualc/index.html: s/221/231/.
934
935        * vms_make.com: Add `ftgasp'.
936
9372007-01-30  David Turner  <david@freetype.org>
938
939        Tag sources with VER-2-3-1 to prepare release.
940
941        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
942
943        * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc):
944        s/2.3.0/2.3.1/.
945
946        * builds/unix/configure.raw (version_info): Set to 9:12:3.
947
948
949        * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c
950        (af_loader_load_g): Disable the warper (i.e., the light hinting
951        improvements) to make a 2.3.1 bugfix release before introducing a
952        new feature.  This should give us more time to tune and improve the
953        warper for the next release.
954
955        * docs/CHANGES: Update accordingly.
956
9572007-01-25  David Turner  <david@freetype.org>
958
959        For light auto-hinting, improve glyph advance widths and resurrect
960        normal/full hinting to its normal quality.
961
962        * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta'
963        and `xmax_delta'.
964        * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta'
965        and `xmax_delta'.
966
967        * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace
968        preprocessor conditional with if-clause, handling both light and
969        normal mode.
970
971        * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again.
972        (af_warper_compute): Handle `xmin_delta' and `xmax_delta'.
973
9742007-01-25  Werner Lemberg  <wl@gnu.org>
975
976        * docs/release: Updated -- Savannah uses a new uploading scheme.
977
9782007-01-25  David Turner  <david@freetype.org>
979
980        * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix.
981
982        * src/cff/cffgload.c (cff_decoder_parse_charstrings)
983        <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty
984        functions.
985
986        * docs/CHANGES: Document light auto-hinting improvement.
987
9882007-01-25  Werner Lemberg  <wl@gnu.org>
989
990        * src/cff/cffload.c (cff_index_get_pointers): Handle last entry
991        correctly in a sanity check.  Since this function is only used to
992        load local and global functions, any charstring that called the last
993        local/global function would fail otherwise.  This fixes Savannah bug
994        #18867.
995
996        * docs/CHANGES: Document it.
997
9982007-01-23  David Turner  <david@freetype.org>
999
1000        * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that
1001        prevented compilation when disabling both the unpatented and the
1002        bytecode interpreter in the TrueType font driver.
1003
1004
1005        Fix and enable the warper to improve `light' hinting mode.  This is
1006        not necessarily a final version, but it seems to work well.
1007
1008        * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]:
1009        Disable code.
1010        (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT.
1011        * src/autofit/aftypes.h: Activate AF_USE_WARPER.
1012
1013        * src/autofit/afwarp.c (AF_WarpScore): Tune table.
1014        (af_warper_compute_line_best): Fix array size of `scores'.
1015        (af_warper_compute): Better handling of border cases.
1016        * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1'
1017        and `X2'.
1018
10192007-01-21  Werner Lemberg  <wl@gnu.org>
1020
1021        * ChangeLog: Split off older entries into...
1022        * ChangeLog.22: This new file.
1023
10242007-01-21  Werner Lemberg  <wl@gnu.org>
1025
1026        * docs/CHANGES: Document SHZ fix.
1027
10282007-01-21  George Williams  <gww@silcom.com>
1029
1030        * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom
1031        points.
1032
10332007-01-21  Werner Lemberg  <wl@gnu.org>
1034
1035        * src/sfnt/ttmtx.c (tt_face_get_metrics)
1036        [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check.
1037
10382007-01-17  Werner Lemberg  <wl@gnu.org>
1039
1040
1041        * Version 2.3.0 released.
1042        =========================
1043
1044
1045        Tag sources with `VER-2-3-0-FINAL'.
1046
10472007-01-17  Werner Lemberg  <wl@gnu.org>
1048
1049        * docs/release: Updated.
1050
10512007-01-16  David Turner  <david@freetype.org>
1052
1053        * src/autofit/aflatin.c (af_latin_hints_compute_segments),
1054        src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
1055        (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
1056        warnings.
1057
10582007-01-15  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
1059
1060        * builds/amiga/makefile, builds/amiga/makefile.os4,
1061        builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
1062
1063        * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
1064
10652007-01-14  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
1066
1067        Fix various compiler warnings.
1068
1069        * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
1070        src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
1071        s/index/strike_index/.
1072        * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
1073
1074        * src/gxvalid/gxvmorx5.c
1075        (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
1076
1077        * src/truetype/ttinterp.c (Compute_Point_Displacement),
1078        src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
1079        uninitialized variables.
1080
10812007-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1082
1083        * docs/CHANGES, docs/INSTALL.MAC: Improvements.
1084
10852007-01-13  Werner Lemberg  <wl@gnu.org>
1086
1087        * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
1088        versions up to 0x3FF without complaining.
1089
10902007-01-13  Derek Clegg  <dclegg@apple.com>
1091
1092        Add FT_Get_PS_Font_Info interface to CFF driver.
1093
1094        * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
1095        (CFF_FontRec): Add `font_info' field.
1096
1097        * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
1098        (cff_font_done): Free font->font_info if necessary.
1099
1100        * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
1101        (cff_service_ps_info): Register cff_ps_get_font_info.
1102
11032007-01-13  Werner Lemberg  <wl@gnu.org>
1104
1105        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
1106        with C++ compiler.
1107
1108        * src/autofit/afhints.c (af_glyph_hints_dump_segments,
1109        af_glyph_hints_dump_edges): Ditto.
1110
1111        * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
1112        `modules.cfg').
1113
1114        * src/sfnt/ttsbit0.h: Remove.
1115
1116        * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
1117
11182007-01-12  David Turner  <david@freetype.org>
1119
1120        * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
1121        bug in the bitmap emboldener if the pitch of the source bitmap is
1122        much larger than its width.
1123
1124        * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
1125        compilation warning.
1126
11272007-01-12  Werner Lemberg  <wl@gnu.org>
1128
1129        * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1130        `automake' CVS module from sources.redhat.com.
1131
11322007-01-11  Werner Lemberg  <wl@gnu.org>
1133
1134        * src/type1/t1load.c (is_space): Removed.
1135        (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
1136        (parse_charstrings): Use IS_PS_TOKEN.
1137
1138
1139        * autogen.sh: Avoid bash specific syntax.
1140
11412007-01-11  David Turner  <david@freetype.org>
1142
1143        * docs/CHANGES: Small update.
1144
1145        * builds/unix/configure.raw (version_info): Set to 9:11:3.
1146
1147        * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
1148        crash with some Mac OS X .dfont files.  Submitted by Masatake
1149        Yamato.
1150
1151        * autogen.sh: Small fix to get it working on Mac OS X properly:
1152        The issue is that GNU libtool is called `glibtool' on this platform,
1153        and we must call `glibtoolize', since `libtoolize' doesn't exist.
1154
11552007-01-10  David Turner  <david@freetype.org>
1156
1157        * all-sources: Tag all sources with VER-2-3-0-RC1 and
1158        VER-2-3-0.
1159
1160        * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
1161        builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
1162        version number to 2.3.0.
1163
1164        * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
1165        (FREETYPE_PATCH): Set to 0.
1166
1167        * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
1168        include/freetype/ftlcdfil.h: Update reference documentation with
1169        GASP support and LCD filtering sections.
1170
1171        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
1172        which created an endless loop with some malformed font files.
1173
11742007-01-10  Derek Clegg  <dclegg@apple.com>
1175
1176        * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
1177        values.
1178
11792007-01-08  David Turner  <david@freetype.org>
1180
1181        * docs/CHANGES: Updated.
1182
1183        * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
1184        a new API `FT_Get_Gasp' to return entries of the `gasp' table
1185        corresponding to a given character pixel size.
1186
1187        * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
1188        `gasp' table, in order to avoid potential problems with later
1189        versions.
1190
1191        * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
1192        <freetype/ftgasp.h>.
1193
1194        * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
1195        modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
1196        builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
1197        default build.
1198
11992007-01-07  Werner Lemberg  <wl@gnu.org>
1200
1201        * src/cid/cidparse.c (cid_parser_new): Improve error message for
1202        Type 11 fonts.
1203        Scan for `/sfnts' token.
1204
12052007-01-07  Werner Lemberg  <wl@gnu.org>
1206
1207        * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
1208
12092007-01-06  Werner Lemberg  <wl@gnu.org>
1210
1211        * src/cff/cffload.c (cff_index_init): Remove unused variable.
1212        (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
1213
12142007-01-04  David Turner  <david@freetype.org>
1215
1216        * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
1217        correctly.  This fixes Savannah bug #17876.
1218
1219
1220        Do not allocate interpreter-specific tables in memory if we are not
1221        going to load glyphs with the bytecode interpreter anyway.
1222
1223        * src/truetype/ttgload.c (tt_loader_init): Load execution context
1224        only if glyph is hinted.
1225        Updated.
1226        * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
1227        and `cvs_ready'.
1228        Add `tt_size_ready_bytecode' declaration.
1229        * src/truetype/ttobjs.c (tt_size_done_bytecode,
1230        tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
1231        (tt_size_init): Move most code into `tt_size_init_bytecode'.
1232        (tt_size_done): Move most code into `tt_size_done_bytecode'.
1233        (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
1234
1235
1236        Don't extract the metrics table from the SFNT font file.  Instead,
1237        reparse it on each glyph load.  The runtime difference is not
1238        noticeable, and it can save a lot of heap memory when memory-mapped
1239        files are not used.
1240
1241        * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
1242        `horz_metrics_offset' and `vert_metrics_ofset'.
1243        * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
1244        Updated.
1245
1246
1247        * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
1248
1249
1250        Do not load the CFF index offsets into memory, since this wastes a
1251        *lot* of heap memory with large Asian CFF fonts.  There is no
1252        significant performance loss.
1253
1254        * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
1255        * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
1256        `data_size'.
1257        (CFF_CharsetRec): Add field `num_glyphs'.
1258
1259        * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
1260        cff_charset_cid_to_gindex): New functions.
1261        (cff_new_index): Renamed to...
1262        (cff_index_init): This.  Update all callers.
1263        Updated -- some code has been moved to `cff_index_load_offsets'.
1264        (cff_done_index): Renamed to...
1265        (cff_index_done): This.  Update all callers.
1266        (cff_index_get_pointers, cff_index_access_element): Updated to use
1267        stream offsets.
1268        (cff_charset_compute_cids): Set `num_glyphs' field.
1269        (cff_encoding_load): Updated.
1270
1271        * src/cff/cffgload.c (cff_slot_load): Updated.
1272
12732007-01-04  David Turner  <david@freetype.org>
1274
1275        * docs/INSTALL.UNIX: Simplify some parts, add reference to
1276        autogen.sh and pointer to README.CVS.
1277
1278        * README.CVS: Add common problem description and solution
1279        when running autogen.sh.
1280
1281        * docs/INSTALL: Add reference to MacOS X.
1282
1283        * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
1284
1285        * docs/TODO: Remove obsolete items.
1286
1287        * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
1288        (TWorker): This.
1289        Remove `count_table' and `memory'.
1290        Make `grays' a pointer.
1291        (TRaster): New structure.
1292        (count_table): New static array.
1293        (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
1294        Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
1295        ft_black_set_mode, ft_black_render): Updated.
1296        (ft_black_init): Don't initialize `count_table'.
1297        (ft_black_reset): Use the render pool.  This saves about 6KB of
1298        heap space for each FT_Library instance.
1299
1300        * src/smooth/ftgrays.c (TRaster): Replaced with...
1301        (TWorker): This.
1302        Remove `memory'.
1303        (TRaster): New structure.
1304
1305        (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
1306        gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
1307        gray_render_span, gray_raster_render): Updated.
1308        (gray_raster_reset): Use the render pool.  This saves about 6KB of
1309        heap space for each FT_Library instance.
1310
1311        * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
1312        src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
1313        src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
1314        FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
1315        the optimization is no longer experimental.
1316
1317        * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
1318        Remove a typo that results in no hinting and a memory leak with some
1319        large Asian CFF fonts.
1320
1321        * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
1322        which happens when FT_Done_Library is called with still opened
1323        CFF_Faces in it.  We need to close all faces before destroying the
1324        modules, or else some bad things (memory leaks) may happen.
1325
13262007-01-02  Werner Lemberg  <wl@gnu.org>
1327
1328        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
1329        Remove compiler warning.
1330
13312007-01-02  David Turner  <david@freetype.org>
1332
1333        * src/sfnt/sfobjs.c: Add documentation comment.
1334
13352006-12-31  Masatake YAMATO  <jet@gyve.org>
1336
1337        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
1338        function.
1339        Check uniqueness of the gid pairs.
1340        (gxv_kern_subtable_fmt0_validate): Move some code to
1341        `gxv_kern_subtable_fmt0_pairs_validate'.
1342
13432006-12-22  David Turner  <david@freetype.org>
1344
1345        * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
1346        warnings.
1347
1348        * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
1349        to avoid deprecation warnings with Visual C++ 8.
1350
13512006-12-16  Anders Kaseorg  <anders@kaseorg.com>
1352
1353        * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
1354        [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
1355
13562006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1357
1358        * include/freetype/internal/services/svotval.h: Add `volatile' to
1359        sync with the modification by Jens Claudius on 2006-08-22; cf.
1360          http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
1361
13622006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1363
1364        * src/base/ftmac.c: Specialized for Mac OS X only.
1365        * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
1366        * builds/unix/configure.raw: Ditto. When explicit switches for
1367        FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
1368        builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
1369
13702006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1371
1372        * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
1373        * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
1374        instead of src/base/ftmac.c
1375        * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
1376        * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
1377        * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
1378        that cannot be built at present.
1379
13802006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1381
1382        * src/base/ftobjs.c: Improvement of resource fork handler for
1383        POSIX, cf.
1384          http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
1385        (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
1386        format or .dfont, to simulate the face index number counted by ftmac.c.
1387        (IsMacResource): Return the number of scalable faces correctly.
1388
13892006-12-10  Werner Lemberg  <wl@gnu.org>
1390
1391        * builds/toplevel.mk (version): Protect against `distclean' target.
1392
13932006-12-09  Werner Lemberg  <wl@gnu.org>
1394
1395        * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
1396        or `type'.
1397
1398        * builds/freetype.mk (version): Extracted from freetype.h, using
1399        GNU make's built-in string functions.
1400        (refdoc): Use $(version) instead of static version number.
1401
14022006-12-08  Werner Lemberg  <wl@gnu.org>
1403
1404        * builds/toplevel.mk (dist): Extract version number from freetype.h.
1405
14062006-12-08  Vladimir Volovich  <vvv@vsu.ru>
1407
1408        * src/tools/apinames (State): Remove final comma in structure -- xlc
1409        v5 under AIX 4.3 doesn't like this.
1410
14112006-12-07  David Turner  <david@freetype.org>
1412
1413        * src/autofit/afloader.c (af_loader_load_g): Small adjustment
1414        to the spacing of auto-fitted glyphs.  This only impacts rare
1415        cases (e.g., Arial Bold at rather small character sizes).
1416
14172006-12-03  Werner Lemberg  <wl@gnu.org>
1418
1419        * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
1420
14212006-12-01  Werner Lemberg  <wl@gnu.org>
1422
1423        * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
1424        encoded in UTF-16BE.  Patch from Rajeev Pahuja <rpahuja@esri.com>.
1425        (tt_name_entry_ascii_from_ucs4): Removed.
1426
1427
1428        * include/freetype/ftxf86.h: Fix and extend comment so that it
1429        appears in the documentation.
1430
1431        * include/freetype/ftchapters.h: Add `font_format' section.
1432
1433
1434        * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
1435        to TOC in index page.
1436
14372006-11-28  David Turner  <david@freetype.org>
1438
1439        * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
1440        trying to render into a zero-width/height bitmap, not an error code.
1441
1442        * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
1443
1444        * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
1445        ones instead.
1446
1447        * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
1448        variable.
1449
14502006-11-26  Pierre Hanser  <hanser@club-internet.fr>
1451
1452        * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
1453
14542006-11-25  David Turner  <david@freetype.org>
1455
1456        * src/autofit/afhints.c (af_glyph_hints_dump_points,
1457        af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
1458        Add stubs to link the `ftgrid' test program when debugging is
1459        disabled in the auto-hinter.
1460
14612006-11-23  David Turner  <david@freetype.org>
1462
1463        * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
1464        src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
1465
1466        * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
1467        Emit more sensible information.
1468
1469        * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
1470
1471        * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
1472        rounding of blue values.
1473        (af_latin_hints_compute_segments): Hint segment heights.
1474        (af_latin_hints_link_segments): Reduce `len_score' value.
1475        (af_latin_hints_compute_edges): Increase `segment_length_threshold'
1476        value and use `height' member for comparisons.
1477        (af_latin_hint_edges): Extend logging message.
1478        Improve handling of remaining edges.
1479
14802006-11-22  Werner Lemberg  <wl@gnu.org>
1481
1482        Fix Savannah bug #15553.
1483
1484        * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
1485        program after a change from mono to grayscaling (and vice versa).
1486        Use correct constant for comparison to get `exec->grayscale'.
1487
14882006-11-18  Werner Lemberg  <wl@gnu.org>
1489
1490        Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
1491        test for a valid glyph index must be deferred to the font drivers.
1492        This patch fixes Savannah bug #18301.
1493
1494        * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
1495        * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
1496        (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
1497        src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
1498        (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
1499        src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
1500        (FNT_Load_Glyph): Check validity of `glyph_index'.
1501
15022006-11-13  David Turner  <david@freetype.org>
1503
1504        * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine.  The interpreter
1505        `enhancements' are still too buggy for general use.
1506
1507        * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
1508        FT_FORCE_LEGACY_LCD_FILTER at compile time.  Define these macros
1509        when building the library to change the default LCD filter to be
1510        used.  This is only useful for experimentation.
1511
1512        * include/freetype/ftlcdfil.h: Update documentation.
1513
15142006-11-10  David Turner  <david@freetype.org>
1515
1516        * src/smooth/ftsmooth.c: API change for the LCD
1517        filter.  The FT_LcdFilter value is an enumeration describing which
1518        filter to apply, with new values FT_LCD_FILTER_LIGHT and
1519        FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
1520        algorithm which produces strong color fringes for everything
1521        except very-well hinted text).
1522
1523        * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
1524        second parameter to an enum type.
1525
1526        * src/base/ftlcdfil.c (USE_LEGACY): Define.
1527        (_ft_lcd_filter): Rename to...
1528        (_ft_lcd_filter_fir): This.
1529        Update parameters.
1530        (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
1531        (FT_Library_Set_LcdFilter): Update parameters.
1532        Handle new filter modes.
1533
1534        * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
1535        (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
1536        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
1537        callback and update other fields.
1538
1539        * src/smooth/ftsmooth.c (ft_smooth_render_generic)
1540        [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
1541        Other minor improvements.
1542
1543        * src/autofit/aflatin.c: Various tiny improvements that drastically
1544        improve the handling of serif fonts and of LCD/LCD_V hinting modes.
1545        (af_latin_hints_compute_edges): Fix typo.
1546        (af_latin_compute_stem_width): Take better care of diagonal stems.
1547
15482006-11-09  David Turner  <david@freetype.org>
1549
1550        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
1551        typo which created a variable-used-before-initialized bug.
1552
15532006-11-07  Zhe Su  <james.su@gmail.com>
1554
1555        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
1556        also.
1557
15582006-11-03  Werner Lemberg  <wl@gnu.org>
1559
1560        * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
1561
15622006-11-02  David Turner  <david@freetype.org>
1563
1564        Add a few tweaks to better handle serif fonts.
1565        Add more debugging messages.
1566
1567        * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
1568        segments that are less than 1.5 pixels high.  This gets rid of
1569        *many* corner cases with serifs.
1570        (af_latin_align_linked_edge): Add logging message.
1571        (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
1572        Add logging messages.
1573        Handle AF_EDGE_FLAG flag specially.
1574
1575        * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
1576        _af_debug_disable_blue_hints, and _af_debug_hints variables.
1577
1578        * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
1579        Update external declarations.
1580        (af_corner_orientation, af_corner_is_flat): Replaced by...
1581
1582        * include/freetype/internal/ftcalc.h (ft_corner_orientation,
1583        ft_corner_is_flat): These declarations.
1584
1585        * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
1586        Comment out.  Replaced by...
1587
1588        * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
1589        These functions.  Update all callers.
1590        (FT_Add64) [!FT_LONG64]: Simplify.
1591
1592        * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
1593        (af_direction_compute): Add a missing FT_ABS call.  This bug caused
1594        production of garbage by missing lots of segments.
1595
1596        * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
1597
1598        * src/autofit/afloader.c (af_loader_init, af_loader_done)
1599        [AF_DEBUG]: Set _af_debug_hints.
1600
1601
1602        * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
1603        (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
1604        and ft_corner_orientation.
1605
1606
1607        * src/gzip/inftrees.c (huft_build): Remove compiler warning.
1608
16092006-10-24  Werner Lemberg  <wl@gnu.org>
1610
1611        * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
1612
1613        * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
1614        as argument.
1615
16162006-10-23  Zhe Su  <zsu@novell.com>
1617
1618        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
1619        better deal with broken Asian fonts with strange glyphs, having
1620        self-intersections and other peculiarities.  The used algorithm is
1621        based on the nonzero winding rule.
1622
16232006-10-23  David Turner  <david@freetype.org>
1624
1625        Speed up the CFF font loader.  With some large CFF fonts,
1626        FT_Open_Face is now more than three times faster.
1627
1628        * src/cff/cffload.c (cff_get_offset): Removed.
1629        (cff_new_index): Inline functionality of `cff_get_offset'.
1630        (cff_charset_compute_cids, cff_charset_free_cids): New functions.
1631        (cff_charset_done): Call `cff_charset_free_cids'.
1632        (cff_charset_load): Call `cff_charset_compute_cids'.
1633        (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
1634
1635        * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
1636        with FT_NEXT_XXX.
1637
1638
1639        Speed up the Postscript hinter, with more than 100% speed increase
1640        on my machine.
1641
1642        * src/pshinter/pshalgo.c (psh_corner_is_flat,
1643        psh_corner_orientation): New functions.
1644        (psh_glyph_compute_inflections): Merge loops for efficiency.
1645        Use `psh_corner_orientation'.
1646        (psh_glyph_init): Use `psh_corner_is_flat'.
1647        (psh_hint_table_find_strong_point): Renamed to...
1648        (psh_hint_table_find_strong_points): This.
1649        Rewrite, adding argument to handle all points at once.
1650        Update all callers.
1651        (PSH_MAX_STRONG_INTERNAL): New macro.
1652        (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
1653
16542006-10-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1655
1656        * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
1657        `error' with FT_Err_Ok.
1658
16592006-10-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1660
1661        * docs/INSTALL.CROSS: New document file for cross-building.
1662
1663        * builds/unix/configure.raw: Preliminary cross-building support.
1664        Find native C compiler and pass it by CC_BUILD, and
1665        find suffix for native executable and pass it by EXEEXT_BUILD.
1666        Also suffix for target executable is passed by EXEEXT.
1667
1668        * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
1669        build `apinames' which runs on building system.  They are set by
1670        CC_BUILD and EXEEXT_BUILD.
1671
1672        * builds/exports.mk (APINAMES_EXE): Change the extension for
1673        apinames from the suffix for target (E) to that for building host
1674        (E_BUILD).
1675
16762006-10-12  Werner Lemberg  <wl@gnu.org>
1677
1678        * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
1679        * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This.  Update all documents
1680        which reference those files.
1681
16822006-10-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1683
1684        * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable.  It is
1685        embedded in freetype2.pc and freetype-config.  Use it to record
1686        Carbon dependency of MacOSX.
1687
1688        * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
1689
1690        * builds/unix/freetype-config.in: Ditto.
1691
16922006-10-11  Werner Lemberg  <wl@gnu.org>
1693
1694        * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
1695        development.
1696
16972006-10-03  Jens Claudius  <jens.claudius@yahoo.com>
1698
1699        * include/freetype/config/ftstdlib.h: Cast away volatileness from
1700        argument to ft_setjmp.
1701
1702        * include/freetype/internal/ftvalid.h: Add comment that
1703        ft_validator_run must not be used.
1704
17052006-10-01  Werner Lemberg  <wl@gnu.org>
1706
1707        * src/base/ftbase.c: Undo change from 2006-09-30.
1708
1709        * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
1710
17112006-09-30  David Turner  <david@freetype.org>
1712
1713        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1714        s/unpatented_hinting/ignore_unpatented_hinter/.
1715        Update all callers.
1716
1717        * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
1718        auto-hinting shall be used or not.
1719
1720        * src/truetype/ttobjs.c (tt_face_init): Ditto.
1721
17222006-09-30  Werner Lemberg  <wl@gnu.org>
1723
1724        * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
1725        in use).
1726
1727        * src/base/ftbase.c: Include `ftlcdfil.c'.
1728
17292006-09-29  Werner Lemberg  <wl@gnu.org>
1730
1731        * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
1732        overlapping segments.  Bug reported by Stefan Koch.
1733
17342006-09-28  David Turner  <david@freetype.org>
1735
1736        Fix a bug in the automatic unpatented hinting support which prevents
1737        normal bytecode hinting to work properly.
1738
1739        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
1740        s/force_autohint/unpatented_hinting/.  Update all callers.
1741
1742        * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
1743
1744        * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
1745
17462006-09-27  David Turner  <david@freetype.org>
1747
1748        * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
1749
1750
1751        Add a new API to support color filtering of subpixel glyph bitmaps.
1752        In a default build, the function `FT_Library_SetLcdFilter' returns
1753        `FT_Err_Unimplemented_Feature'; you need to #define
1754        FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
1755        real implementation.
1756
1757        * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
1758
1759        * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
1760        typedef.
1761        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
1762        `lcd_filter_weights' and `lcd_filter'.
1763
1764        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
1765        `hmul' and `vmul'.
1766
1767        Handle subpixel rendering.
1768        Simplify function.
1769        (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
1770        (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
1771
1772        * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
1773        pointing to <freetype/ftlcdfil.h>.
1774
1775        * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
1776        vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
1777
1778        * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
1779
17802006-09-26  David Bustin
1781
1782        * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
1783        correctly.  Reported as Savannah bug #17843.
1784
17852006-09-26  David Turner  <david@freetype.org>
1786
1787        * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
1788        AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
1789        horizontal and vertical hinting for the purpose of debugging the
1790        auto-fitter.
1791
1792        * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
1793        _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
1794
1795        * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
1796
1797        * include/freetype/config/ftoption.h, devel/ftoption.h
1798        (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
1799        we want to compile LCD-optimized rendering code (à la ClearType) or
1800        not.  The macro *must* be disabled in default builds of the library
1801        for patent reasons.
1802
1803        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
1804        LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
1805        isn't defined at compile time.  This only changes the content of the
1806        rendered glyph to match the one of normal gray-level rendering,
1807        hence clients should not need to be modified.
1808
1809        * docs/CHANGES: Updated.
1810
18112006-09-18  Garrick Meeker  <garrick@digitalanarchy.com>
1812
1813        * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
1814        LWFN fails and both are available.
1815
18162006-09-11  David Turner  <david@freetype.org>
1817
1818        * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
1819        report their English names through an Apple Roman
1820        (platform,encoding) pair, with language_id != English.
1821
1822        If the font uses another name entry with language_id == English, it
1823        will be selected correctly, though.
1824
1825        * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
1826        selection for `mingli.ttf'.
1827
18282006-09-05  Werner Lemberg  <wl@gnu.org>
1829
1830        * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
1831        values which have the upper two bytes set to 0xFF instead of 0x00
1832        (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
1833        `HAN NOM B.ttf').
1834
1835        * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
1836
18372006-09-05  David Turner  <david@freetype.org>
1838
1839        Minor source cleanups and optimizations.
1840
1841        * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
1842        (TRaster): Remove `count_ex' and `count_ey'.
1843        (gray_find_cell): Remove 2nd and 3rd argument.
1844        (gray_alloc_cell): Merged with `gray_find_cell'.
1845        (gray_record_cell): Simplify.
1846        (gray_set_cell): Rewrite.
1847        (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
1848        (gray_render_span): Don't use FT_MEM_SET for small values.
1849        (gray_dump_cells) [DEBUG_GRAYS]: New function.
1850        (gray_sweep): Avoid buffer overwrites when to drawing the end of a
1851        bitmap scanline.
1852        (gray_convert_glyph): Fix speed-up.
1853
18542006-09-04  David Turner  <david@freetype.org>
1855
1856        * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
1857        64bit processors.
1858
18592006-09-03  Werner Lemberg  <wl@gnu.org>
1860
1861        * devel/ftoption.h: Synchronize with
1862        include/freetype/config/ftoption.h.
1863
1864        * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
1865        variable declaration.
1866        (gray_convert_glyph): Fix compiler warnings.
1867
18682006-09-01  David Turner  <david@freetype.org>
1869
1870        * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
1871        to recognize a few fonts that require the automatic unpatented
1872        loader.
1873
1874        * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
1875        rasterizer.  The speed improvement is between 15% and 25%, depending
1876        on the font data.
1877
1878        (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
1879        (TCell): Redefine.
1880        (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
1881        (gray_init_cells): Updated.
1882        (gray_find_cell, gray_alloc_cell): New functions.
1883        (gray_record_cell): Rewritten to use `gray_find_cell' and
1884        `gray_alloc_cell'.
1885        (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
1886        QSORT_THRESHOLD):
1887        Removed.
1888        (gray_shell_sort, gray_quick_sort, gray_check_sort,
1889        gray_dump_cells): Removed.
1890        (gray_sweep): Rewritten.
1891        (gray_convert_glyph): Rewrite code which used one of the sorting
1892        functions.
1893        (gray_raster_render): Updated.
1894
18952006-08-29  Dr. Werner Fink  <werner@suse.de>
1896
1897        * configure: Make it possible to handle configure options which
1898        have strings containing spaces.
1899
19002006-08-27  David Turner  <david@freetype.org>
1901
1902        * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
1903        New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
1904        or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
1905
1906        * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
1907        src/truetype/truetype.c, src/truetype/ttdriver.c,
1908        src/truetype/ttgload.c, src/truetype/ttgload.h,
1909        src/truetype/ttinterp.c, src/truetype/ttobjs.c,
1910        src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
1911        s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
1912
1913        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
1914        member `force_autohint'.
1915
1916        * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
1917
1918        * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
1919        against a list of font names which need the bytecode interpreter.
1920
19212006-08-27  Jens Claudius  <jens.claudius@yahoo.com>
1922
1923        Fix miscellaneous compiler warnings.
1924
1925        * freetype2/include/freetype/internal/ftobjs.h: Close comment with
1926        `*/' to avoid `/* in comment' compiler warning.
1927
1928        * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
1929        `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
1930        64-bit platforms void* is larger than FT_UInt32.
1931
1932        * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
1933        volatileness of argument to ft_longjmp.  Spotted by Werner
1934        `Putzfrau' Lemberg.
1935
1936        * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
1937        variable `lineno'.
1938
1939        * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
1940        variable `error' as volatile.
1941
19422006-08-27  Werner Lemberg  <wl@gnu.org>
1943
1944        * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
1945        Reported by Jens.
1946
19472006-08-22  Jens Claudius  <jens.claudius@yahoo.com>
1948
1949        Fix for previous commit, which caused many compiler warnings/errors
1950        about addresses of volatile objects passed as function arguments as
1951        non-volatile pointers.
1952
1953        * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
1954        typedef a pointer to a volatile object.
1955
1956        * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
1957        argument `table' a pointer to a volatile object.
1958
1959        * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
1960        argument `table' a pointer to a volatile object.
1961
19622006-08-18  Jens Claudius  <jens.claudius@yahoo.com>
1963
1964        * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
1965        variable `_sfnt' as volatile since it must keep its value across
1966        a call to ft_setjmp.
1967        (gxv_validate): Same for local variables `memory' and `valid'.
1968        (classic_kern_validate): Same for local variables `memory',
1969        `ckern', and `valid'.
1970
1971        * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
1972        parameter `face' and local variables `base', `gdef', `gpos', `gsub',
1973        `jstf', and 'valid'.
1974
1975        * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
1976        local variable `cmap'.
1977
19782006-08-16  David Turner  <david@freetype.org>
1979
1980        * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
1981        warnings.
1982
1983        * src/base/ftobjs.c (ft_validator_run): Disable function; it is
1984        buggy by design.  Always return -1.
1985
1986
1987        Improvements to native TrueType hinting. This is a first try,
1988        controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
1989
1990        * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
1991        `extra_points2'.
1992
1993        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
1994        `orus'.
1995
1996        * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
1997        FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
1998        FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
1999        handle `extra_points2'.
2000
2001        * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
2002        Remove compiler warning.
2003        (cur_to_arg): Remove macro.
2004        (TT_Hint_Glyph): Updated.
2005        (TT_Process_Simple_Glyph): Handle `orus'.
2006
2007        * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
2008        (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
2009        (LOC_Ins_IUP): Renamed to...
2010        (IUP_WorkerRec): This.
2011        Add `orus' member.
2012        (Shift): Renamed to...
2013        (_iup_worker_shift): This.
2014        Updated.
2015        (Interp): Renamed to...
2016        (_iup_worker_interpolate): This.
2017        Updated to handle `orus'.
2018        (Ins_IUP): Updated.
2019
2020        * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
2021        Handle `orus'.
2022
20232006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2024
2025        * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
2026        build ftvalid in ft2demos.  This has been inadvertedly changed
2027        2006-08-13.
2028
20292006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2030
2031        `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
2032        Jens:
2033        http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
2034
2035        * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
2036        `ft_setjmp'.  It reverts the change introduced on 2005-08-20.
2037
2038        * freetype2/src/gxvalid/gxvmod.c: Ditto.
2039
20402006-08-13  Jens Claudius  <jens.claudius@yahoo.com>
2041
2042        * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
2043        T1_TOKEN_TYPE_KEY.
2044        (T1_FieldRec): Add `dict'.
2045        (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
2046        (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
2047        keyword is expected as an additional argument.
2048
2049        * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
2050        invocations of T1_FIELD_XXX.
2051
2052        * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
2053
2054        * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
2055        (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
2056        not T1_TOKEN_TYPE_ANY.
2057        (ps_parser_load_field): Make sure a token that should be a string or
2058        name is really a string or name.
2059        Avoid memory leak if a keyword has been already encountered and its
2060        value is overwritten.
2061        * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
2062        T1_FIELD_XXX.
2063        (parse_dict): Ignore keywords that occur in the wrong dictionary
2064        (e.g., in `Private' instead of `FontDict').
2065
2066        * freetype2/src/type1/t1tokens.h: Adjust invocations of
2067        T1_FIELD_XXX.
2068
2069        * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
2070        invocations of T1_FIELD_XXX.
2071
20722006-07-18  Jens Claudius  <jens.claudius@yahoo.com>
2073
2074        Move creation of field `buildchar' of T1_DecoderRec out of
2075        `t1_decoder_init' and let the caller of `t1_decoder_init' take care
2076        of it.
2077
2078        Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
2079        and `T1_Compute_Max_Advance'.
2080
2081        * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
2082        Remove field `face', add `len_buildchar'.
2083
2084        * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
2085        field `buildchar'.
2086
2087        * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
2088        finisher for T1_Decoder.
2089        (cid_slot_load_glyph): Do not ignore failure when initializing the
2090        T1_Decoder.
2091
2092        * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
2093        Updated.
2094        (t1_decoder_init): Remove initialization of fields `buildchar' and
2095        `len_buildchar'.
2096        (t1_decoder_done): Remove deallocation of field `buildchar'.
2097
2098        * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
2099        T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
2100        T1_Decoder.
2101        (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
2102        `len_buildchar'; make sure to call finisher for T1_Decoder even in
2103        case of error.
2104
2105        * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
2106        `buildchar' of T1_FaceRec.
2107
2108        * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
2109        `buildchar' of T1_FaceRec.
2110
21112006-07-14  Jens Claudius  <jens.claudius@yahoo.com>
2112
2113        * freetype2/include/freetype/internal/psaux.h: New macros
2114        IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
2115        IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
2116        (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
2117        T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
2118        (T1_DecoderRec): New fields `buildchar' and `face'.
2119        (IS_PS_TOKEN): New macro.
2120
2121        * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
2122        fields `ndv_idx', `cdv_idx', and `len_buildchar'.
2123
2124        * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
2125        `default_design_vector' and `num_default_design_vector'.
2126
2127        * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
2128        IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
2129        and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
2130
2131        * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
2132        `token' argument to be NULL if we want only to count the number of
2133        tokens.
2134        (ps_tocoordarray): Allow `coords' argument to be NULL if we just
2135        want to skip the array.
2136        (ps_tofixedarray): Allow `values' argument to be NULL if we just
2137        want to skip the array.
2138
2139        * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
2140        support for (partially commented out) othersubrs 19-25, 27, and 28.
2141        (t1_decoder_init): Initialize new fields `face' and `buildchar'.
2142        (t1_decoder_done): Release new field `buildchar'.
2143
2144        * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
2145        functions.
2146        (t1_keywords): Register them.
2147        (t1_allocate_blend): Updated.
2148        (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
2149        T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
2150        (parse_dict): Remove `keyword_flags' argument.
2151        Use new macro IS_PS_TOKEN.
2152        Changed function so that later PostScript definitions override
2153        earlier ones.
2154        (t1_init_loader): Initialize new field `keywords_encountered'.
2155        (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
2156        `len_buildchar'.
2157        Remove `keywords_flags'.
2158
2159        * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
2160        `keywords_encountered'.
2161        (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
2162
2163        * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
2164        New entries for parsing /NDV, /CDV, and /DesignVector.
2165
21662006-07-07  Werner Lemberg  <wl@gnu.org>
2167
2168        Add many checks to protect against malformed PCF files.
2169
2170        * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
2171        (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
2172
2173        * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
2174        data and check that tables don't overlap (using a simple
2175        bubblesort).
2176        (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
2177        New macros which give the size of data structures in the data
2178        stream.
2179        (pcf_get_properties): Use rough estimates to get array size limits.
2180        Assign `face->nprops' and `face->properties' earlier so that a call
2181        to PCF_Face_Done can do the clean-up in case of error.
2182        Protect against invalid string offsets.
2183        (pcf_get_metrics): Clean up code.
2184        Adjust tracing message levels.
2185        Use rough estimate to get array size limit.
2186        (pcf_get_bitmaps): Clean up code.
2187        Adjust tracing message levels.
2188        Use rough estimates to get offset limits.
2189        (pcf_get_encodings): Adjust tracing message level.
2190        (pcf_get_accel): Clean up code.
2191
21922006-06-26  Werner Lemberg  <wl@gnu.org>
2193
2194        * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
2195        don't have a POINT_SIZE property.  This fixes Savannah bug #16914.
2196
21972006-06-26  Jens Claudius  <jens.claudius@yahoo.com>
2198
2199        * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
2200        (t1_decoder_parse_charstrings): Operator with
2201        opcode 15 pops its two arguments.
2202        Handle the case where the pops of an othersubr may be part of a
2203        subroutine.
2204        Handle unknown othersubrs gracefully: count their operands and let
2205        the following pop operators push the operands as the results onto
2206        the Type1 stack.
2207        Improve handling of setcurrentpoint opcode.
2208
22092006-06-25  Jens Claudius  <jens.claudius@yahoo.com>
2210
2211        The Type 1 parser now skips over top-level procedures as required
2212        for a `Simplified Parser'.  This makes the parser more robust as it
2213        doesn't poke around in PostScript code.  Additionally, it makes the
2214        FontDirectory hackery in src/type1/t1load.c unnecessary.
2215
2216        * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
2217        (skip_literal_string): Add FT_Error as return value.
2218        Handle escapes better.
2219        (skip_string): Add FT_Error as return value.
2220        Don't set `parser->error' but return error code directly.
2221        (skip_procedure): New function.
2222        (ps_parser_skip_PS_token): Handle procedures.
2223        Update code.
2224        (ps_parser_to_token): Update code.
2225        (ps_parser_load_field_table): Handle bbox entries also.
2226
2227        * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
2228        Add commented-out code for synthetic fonts.
2229
22302006-06-24  Eugeniy Meshcheryakov  <eugen@univ.kiev.ua>
2231
2232        Fix two hinting bugs as reported in
2233        http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
2234
2235        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
2236        `first_point' member.
2237
2238        * src/truetype/ttgload.c (tt_prepare_zone): Initialize
2239        `first_point'.
2240        (TT_Process_Composite_Glyph): Always untouch points.
2241
2242        * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
2243        `first_point' and `last_point' in case of composite glyphs.
2244        (Ins_IUP): Fix computation of `end_point'.
2245
22462006-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2247
2248        Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
2249        Mac.  The original patch was written by David Sachitano and Lawrence
2250        Coopet, and modified by Sean McBride for MPW compatibility.  Only
2251        required data are converted; unused data are left in big endian.
2252
2253        * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
2254        Mac OS X platforms.
2255        (OS_INLINE): Undefine before definition.
2256        (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
2257        FontAssociation table in FOND resource.
2258        (count_faces_scalable): Insert EndianS16_BtoN to parse the header
2259        and fontSize at each entry of FontAssociation table in FOND
2260        resource.
2261        (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
2262        ffStylOff of FamilyRecord header of FOND resource, the header,
2263        fontSize, fontID at each entry of FontAssociation table, and
2264        StyleMapping table.
2265        (count_faces): Call `HUnlock' after all FOND utilization.
2266
22672006-06-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2268
2269        Public API of TrueTypeGX, OpenType, and classic kern table validator
2270        should return `FT_Err_Unimplemented_Feature' if validation service
2271        is unavailable (disabled in `modules.cfg').  It is originally
2272        suggested by David Turner, cf.
2273        http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
2274
2275        * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
2276        FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
2277        unavailable.
2278        (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
2279        classic kern table validation service is unavailable.
2280
2281        * src/base/ftotval.c (FT_OpenType_Validate): Return
2282        FT_Err_Unimplemented_Feature if OpenType validation service is
2283        unavailable.
2284
22852006-06-08  Werner Lemberg  <wl@gnu.org>
2286
2287        * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
2288        errors.
2289
22902006-06-07  David Turner  <david@freetype.org>
2291
2292        * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
2293        (T1_Read_Metrics): Fix memory leak which happened when the metrics
2294        file doesn't have kerning pairs.  This fixes Savannah bug #16768.
2295
22962006-06-06  David Turner  <david@freetype.org>
2297
2298        Fix memory leak described in Savannah bug #16759.
2299
2300        We change `ps_unicodes_init' so that it also takes a
2301        `free_glyph_name' callback to release the glyph names returned by
2302        `get_glyph_name'
2303
2304        * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
2305        Renamed to ...
2306        (PS_GetGlyphNameFunc): This.
2307        (PS_FreeGlyphNameFunc): New typedef.
2308        (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
2309
2310        * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
2311        argument.
2312        (cff_sid_free_glyph_name): New function.
2313        (cff_cmap_unicode_init): Updated.
2314
2315        * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
2316
2317        * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
2318        PS_FreeGlyphNameFunc and use it.
2319
2320
23212006-06-04  David Turner  <david@freetype.org>
2322
2323        * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
2324        `item_size == 0' as well -- though this sounds weird, it can
2325        theoretically happen.  This fixes Savannah bug #16669.
2326
2327        * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
2328        of `face->num_glyphs' which missed the last glyph, due to
2329        the offset-by-1 computation, since the PFR format doesn't
2330        guarantee that glyph index 0 corresponds to the `missing
2331        glyph.  This fixes Savannah bug #16668.
2332
23332006-05-25  Werner Lemberg  <wl@gnu.org>
2334
2335        * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
2336        `-no-undefined'.  Reported by Christian Biesinger.
2337
23382006-05-19  Brian Weed  <bw@imaginengine.com>
2339
2340        * builds/win32/visualc/freetype.dsp: Release libraries no longer
2341        have debug information, and debug libraries use `C7 compatible'
2342        debug info.
2343
23442006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2345
2346        Apply patch by Derek Clegg to fix two memory leaks in the MacOS
2347        resource fork handler.  This fixes Savannah bug #16631.
2348
2349        * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
2350        `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
2351
2352        * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
2353        Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
2354
23552006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2356
2357        * build/unix/configure.raw: Add a fallback to disable Carbon
2358        dependency, if configured with no options on Mac OS X.
2359
23602006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2361
2362        * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
2363        its content cannot be parsed as supported font.  This fixes
2364        the second part of Savannah bug #16590.
2365
23662006-05-18  Werner Lemberg  <wl@gnu.org>
2367
2368        * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
2369        [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
2370
23712006-05-17  David Turner  <david@freetype.org>
2372
2373        This is a major patch used to drastically improve the performance of
2374        loading glyphs.  This both speeds up loading the glyph vectors
2375        themselves and the auto-fitter module.
2376
2377        We now use inline assembler code with GCC to implement `FT_MulFix',
2378        which is probably the most important function related to the
2379        engine's performance.
2380
2381        The resulting speed-up is about 25%.
2382
2383
2384        * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
2385        `cursor' and `limit'.
2386
2387        * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
2388        New functions.
2389        (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
2390        [TEST]: Remove.
2391
2392        * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
2393        code.
2394
2395        * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
2396        `FT_ZERO'
2397        (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
2398        (af_glyph_hints_reload: Rewrite recognition of weak points.
2399
2400        * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
2401        constant values out of the loops.
2402
2403        * src/autofit/aftypes.h: Updated.
2404
2405        * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
2406
2407        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
2408        product to get orientation.
2409
2410        * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
2411        (FT_Stream_OpenGzip): Use it to handle small files directly in
2412        memory.
2413
2414        * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
2415        Improve performance.
2416
2417        * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
2418        `limit'.
2419
2420        (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
2421        TT_Load_Composite_Glyph): Updated.  Add threshold to protect against
2422        exceedingly large values of number of contours.  Speed up by
2423        reducing the number of loops.
2424
2425        * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
2426
2427
2428        * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
2429        used to detect rogue clients from 4 to 16.  This is to prevent some
2430        segmentation faults with fonts like `KozMinProVI-Regular.otf' which
2431        comes from the Japanese Adobe Reader Asian Font pack.
2432
24332007-05-17  Werner Lemberg  <wl@gnu.org>
2434
2435        * src/cff/cffload.c (cff_font_done): Deallocate subfont array.  This
2436        fixes the first part of Savannah bug #16590.
2437
24382006-05-16  Werner Lemberg  <wl@gnu.org>
2439
2440        * docs/PROBLEMS: Updated icl issues.
2441
2442----------------------------------------------------------------------------
2443
2444Copyright 2006, 2007 by
2445David Turner, Robert Wilhelm, and Werner Lemberg.
2446
2447This file is part of the FreeType project, and may only be used, modified,
2448and distributed under the terms of the FreeType project license,
2449LICENSE.TXT.  By continuing to use, modify, or distribute this file you
2450indicate that you have read the license and understand and accept it
2451fully.
2452
2453
2454Local Variables:
2455version-control: never
2456coding: utf-8
2457End:
Note: See TracBrowser for help on using the repository browser.