source: trunk/poppler/freetype2/ChangeLog @ 182

Last change on this file since 182 was 182, checked in by Eugene Romanenko, 15 years ago

freetype update to version 2.3.0

File size: 150.0 KB
Line 
12007-01-17  Werner Lemberg  <wl@gnu.org>
2
3
4        * Version 2.3.0 released.
5        =========================
6
7
8        Tag sources with `VER-2-3-0-FINAL'.
9
102007-01-17  Werner Lemberg  <wl@gnu.org>
11
12        * docs/release: Updated.
13
142007-01-16  David Turner  <david@freetype.org>
15
16        * src/autofit/aflatin.c (af_latin_hints_compute_segments),
17        src/cff/cffdriver.c (cff_ps_get_font_info), src/truetype/ttobjs.c
18        (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler
19        warnings.
20
212007-01-15  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
22
23        * builds/amiga/makefile, builds/amiga/makefile.os4,
24        builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'.
25
26        * builds/amiga/include/freetype/config/ftconfig.h: Synchronize.
27
282007-01-14  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
29
30        Fix various compiler warnings.
31
32        * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h,
33        src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h:
34        s/index/strike_index/.
35        * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/.
36
37        * src/gxvalid/gxvmorx5.c
38        (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/.
39
40        * src/truetype/ttinterp.c (Compute_Point_Displacement),
41        src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly
42        uninitialized variables.
43
442007-01-13  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
45
46        * docs/CHANGES, docs/INSTALL.MAC: Improvements.
47
482007-01-13  Werner Lemberg  <wl@gnu.org>
49
50        * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM
51        versions up to 0x3FF without complaining.
52
532007-01-13  Derek Clegg  <dclegg@apple.com>
54
55        Add FT_Get_PS_Font_Info interface to CFF driver.
56
57        * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H.
58        (CFF_FontRec): Add `font_info' field.
59
60        * src/cff/cffload.c: Include FT_TYPE1_TABLES_H.
61        (cff_font_done): Free font->font_info if necessary.
62
63        * src/cff/cffdrvr.c (cff_ps_get_font_info): New function.
64        (cff_service_ps_info): Register cff_ps_get_font_info.
65
662007-01-13  Werner Lemberg  <wl@gnu.org>
67
68        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation
69        with C++ compiler.
70
71        * src/autofit/afhints.c (af_glyph_hints_dump_segments,
72        af_glyph_hints_dump_edges): Ditto.
73
74        * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in
75        `modules.cfg').
76
77        * src/sfnt/ttsbit0.h: Remove.
78
79        * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c.
80
812007-01-12  David Turner  <david@freetype.org>
82
83        * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping
84        bug in the bitmap emboldener if the pitch of the source bitmap is
85        much larger than its width.
86
87        * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related
88        compilation warning.
89
902007-01-12  Werner Lemberg  <wl@gnu.org>
91
92        * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
93        `automake' CVS module from sources.redhat.com.
94
952007-01-11  Werner Lemberg  <wl@gnu.org>
96
97        * src/type1/t1load.c (is_space): Removed.
98        (parse_encoding, parse_charstrings): Use IS_PS_DELIM.
99        (parse_charstrings): Use IS_PS_TOKEN.
100
101
102        * autogen.sh: Avoid bash specific syntax.
103
1042007-01-11  David Turner  <david@freetype.org>
105
106        * docs/CHANGES: Small update.
107
108        * builds/unix/configure.raw (version_info): Set to 9:11:3.
109
110        * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a
111        crash with some Mac OS X .dfont files.  Submitted by Masatake
112        Yamato.
113
114        * autogen.sh: Small fix to get it working on Mac OS X properly:
115        The issue is that GNU libtool is called `glibtool' on this platform,
116        and we must call `glibtoolize', since `libtoolize' doesn't exist.
117
1182007-01-10  David Turner  <david@freetype.org>
119
120        * all-sources: Tag all sources with VER-2-3-0-RC1 and
121        VER-2-3-0.
122
123        * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp,
124        builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update
125        version number to 2.3.0.
126
127        * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3.
128        (FREETYPE_PATCH): Set to 0.
129
130        * include/freetype/ftchapters.h, include/freetype/ftgasp.h,
131        include/freetype/ftlcdfil.h: Update reference documentation with
132        GASP support and LCD filtering sections.
133
134        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo
135        which created an endless loop with some malformed font files.
136
1372007-01-10  Derek Clegg  <dclegg@apple.com>
138
139        * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed point
140        values.
141
1422007-01-08  David Turner  <david@freetype.org>
143
144        * docs/CHANGES: Updated.
145
146        * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add
147        a new API `FT_Get_Gasp' to return entries of the `gasp' table
148        corresponding to a given character pixel size.
149
150        * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the
151        `gasp' table, in order to avoid potential problems with later
152        versions.
153
154        * include/freetype/config/ftheader.h (FT_GASP_H): New macro for
155        <freetype/ftgasp.h>.
156
157        * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources),
158        modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp,
159        builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the
160        default build.
161
1622007-01-07  Werner Lemberg  <wl@gnu.org>
163
164        * src/cid/cidparse.c (cid_parser_new): Improve error message for
165        Type 11 fonts.
166        Scan for `/sfnts' token.
167
1682007-01-07  Werner Lemberg  <wl@gnu.org>
169
170        * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts.
171
1722007-01-06  Werner Lemberg  <wl@gnu.org>
173
174        * src/cff/cffload.c (cff_index_init): Remove unused variable.
175        (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing.
176
1772007-01-04  David Turner  <david@freetype.org>
178
179        * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts
180        correctly.  This fixes Savannah bug #17876.
181
182
183        Do not allocate interpreter-specific tables in memory if we are not
184        going to load glyphs with the bytecode interpreter anyway.
185
186        * src/truetype/ttgload.c (tt_loader_init): Load execution context
187        only if glyph is hinted.
188        Updated.
189        * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready'
190        and `cvs_ready'.
191        Add `tt_size_ready_bytecode' declaration.
192        * src/truetype/ttobjs.c (tt_size_done_bytecode,
193        tt_size_init_bytecode, tt_size_ready_bytecode): New functions.
194        (tt_size_init): Move most code into `tt_size_init_bytecode'.
195        (tt_size_done): Move most code into `tt_size_done_bytecode'.
196        (tt_size_reset): Move some code to `tt_size_ready_bytecode'.
197
198
199        Don't extract the metrics table from the SFNT font file.  Instead,
200        reparse it on each glyph load.  The runtime difference is not
201        noticeable, and it can save a lot of heap memory when memory-mapped
202        files are not used.
203
204        * include/freetype/internal/tttypes.h (TT_FaceRec): Add members
205        `horz_metrics_offset' and `vert_metrics_ofset'.
206        * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics):
207        Updated.
208
209
210        * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization.
211
212
213        Do not load the CFF index offsets into memory, since this wastes a
214        *lot* of heap memory with large Asian CFF fonts.  There is no
215        significant performance loss.
216
217        * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration.
218        * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and
219        `data_size'.
220        (CFF_CharsetRec): Add field `num_glyphs'.
221
222        * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets,
223        cff_charset_cid_to_gindex): New functions.
224        (cff_new_index): Renamed to...
225        (cff_index_init): This.  Update all callers.
226        Updated -- some code has been moved to `cff_index_load_offsets'.
227        (cff_done_index): Renamed to...
228        (cff_index_done): This.  Update all callers.
229        (cff_index_get_pointers, cff_index_access_element): Updated to use
230        stream offsets.
231        (cff_charset_compute_cids): Set `num_glyphs' field.
232        (cff_encoding_load): Updated.
233
234        * src/cff/cffgload.c (cff_slot_load): Updated.
235
2362007-01-04  David Turner  <david@freetype.org>
237
238        * docs/INSTALL.UNIX: Simplify some parts, add reference to
239        autogen.sh and pointer to README.CVS.
240
241        * README.CVS: Add common problem description and solution
242        when running autogen.sh.
243
244        * docs/INSTALL: Add reference to MacOS X.
245
246        * docs/MAKEPP, docs/INSTALL.MAC: New documentation files.
247
248        * docs/TODO: Remove obsolete items.
249
250        * src/raster/ftraster.c: (TRaster_Instance): Replace it with...
251        (TWorker): This.
252        Remove `count_table' and `memory'.
253        Make `grays' a pointer.
254        (TRaster): New structure.
255        (count_table): New static array.
256        (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras,
257        Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done,
258        ft_black_set_mode, ft_black_render): Updated.
259        (ft_black_init): Don't initialize `count_table'.
260        (ft_black_reset): Use the render pool.  This saves about 6KB of
261        heap space for each FT_Library instance.
262
263        * src/smooth/ftgrays.c (TRaster): Replaced with...
264        (TWorker): This.
265        Remove `memory'.
266        (TRaster): New structure.
267
268        (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line,
269        gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to,
270        gray_render_span, gray_raster_render): Updated.
271        (gray_raster_reset): Use the render pool.  This saves about 6KB of
272        heap space for each FT_Library instance.
273
274        * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h,
275        src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
276        src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove
277        FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since
278        the optimization is no longer experimental.
279
280        * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points):
281        Remove a typo that results in no hinting and a memory leak with some
282        large Asian CFF fonts.
283
284        * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak
285        which happens when FT_Done_Library is called with still opened
286        CFF_Faces in it.  We need to close all faces before destroying the
287        modules, or else some bad things (memory leaks) may happen.
288
2892007-01-02  Werner Lemberg  <wl@gnu.org>
290
291        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate):
292        Remove compiler warning.
293
2942007-01-02  David Turner  <david@freetype.org>
295
296        * src/sfnt/sfobjs.c: Add documentation comment.
297
2982006-12-31  Masatake YAMATO  <jet@gyve.org>
299
300        * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New
301        function.
302        Check uniqueness of the gid pairs.
303        (gxv_kern_subtable_fmt0_validate): Move some code to
304        `gxv_kern_subtable_fmt0_pairs_validate'.
305
3062006-12-22  David Turner  <david@freetype.org>
307
308        * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler
309        warnings.
310
311        * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE
312        to avoid deprecation warnings with Visual C++ 8.
313
3142006-12-16  Anders Kaseorg  <anders@kaseorg.com>
315
316        * src/base/ftlcdfil.c (FT_Library_SetLcdFilter)
317        [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo.
318
3192006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
320
321        * include/freetype/internal/services/svotval.h: Add `volatile' to
322        sync with the modification by Jens Claudius on 2006-08-22; cf.
323          http://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5
324
3252006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
326
327        * src/base/ftmac.c: Specialized for Mac OS X only.
328        * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework.
329        * builds/unix/configure.raw: Ditto. When explicit switches for
330        FSSpec/FSRef/QuickDraw/ATS availability are given to configure,
331        builds/mac/ftmac.c is used instead of default src/base/ftmac.c.
332
3332006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
334
335        * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system.
336        * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c
337        instead of src/base/ftmac.c
338        * builds/mac/FreeType.ppc_carbon.make.txt: Ditto.
339        * builds/mac/FreeType.ppc_classic.make.txt: Ditto.
340        * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c
341        that cannot be built at present.
342
3432006-12-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
344
345        * src/base/ftobjs.c: Improvement of resource fork handler for
346        POSIX, cf.
347          http://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html
348        (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font
349        format or .dfont, to simulate the face index number counted by ftmac.c.
350        (IsMacResource): Return the number of scalable faces correctly.
351
3522006-12-10  Werner Lemberg  <wl@gnu.org>
353
354        * builds/toplevel.mk (version): Protect against `distclean' target.
355
3562006-12-09  Werner Lemberg  <wl@gnu.org>
357
358        * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat'
359        or `type'.
360
361        * builds/freetype.mk (version): Extracted from freetype.h, using
362        GNU make's built-in string functions.
363        (refdoc): Use $(version) instead of static version number.
364
3652006-12-08  Werner Lemberg  <wl@gnu.org>
366
367        * builds/toplevel.mk (dist): Extract version number from freetype.h.
368
3692006-12-08  Vladimir Volovich  <vvv@vsu.ru>
370
371        * src/tools/apinames (State): Remove final comma in structure -- xlc
372        v5 under AIX 4.3 doesn't like this.
373
3742006-12-07  David Turner  <david@freetype.org>
375
376        * src/autofit/afloader.c (af_loader_load_g): Small adjustment
377        to the spacing of auto-fitted glyphs.  This only impacts rare
378        cases (e.g., Arial Bold at rather small character sizes).
379
3802006-12-03  Werner Lemberg  <wl@gnu.org>
381
382        * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c.
383
3842006-12-01  Werner Lemberg  <wl@gnu.org>
385
386        * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are
387        encoded in UTF-16BE.  Patch from Rajeev Pahuja <rpahuja@esri.com>.
388        (tt_name_entry_ascii_from_ucs4): Removed.
389
390
391        * include/freetype/ftxf86.h: Fix and extend comment so that it
392        appears in the documentation.
393
394        * include/freetype/ftchapters.h: Add `font_format' section.
395
396
397        * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link
398        to TOC in index page.
399
4002006-11-28  David Turner  <david@freetype.org>
401
402        * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are
403        trying to render into a zero-width/height bitmap, not an error code.
404
405        * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch.
406
407        * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType
408        ones instead.
409
410        * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused
411        variable.
412
4132006-11-26  Pierre Hanser  <hanser@club-internet.fr>
414
415        * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer.
416
4172006-11-25  David Turner  <david@freetype.org>
418
419        * src/autofit/afhints.c (af_glyph_hints_dump_points,
420        af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]:
421        Add stubs to link the `ftgrid' test program when debugging is
422        disabled in the auto-hinter.
423
4242006-11-23  David Turner  <david@freetype.org>
425
426        * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
427        src/autofit/aftypes.h: Miscellaneous auto-hinter improvements.
428
429        * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]:
430        Emit more sensible information.
431
432        * src/autofit/afhints.h (AF_SegmentRec): Add `height' member.
433
434        * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve
435        rounding of blue values.
436        (af_latin_hints_compute_segments): Hint segment heights.
437        (af_latin_hints_link_segments): Reduce `len_score' value.
438        (af_latin_hints_compute_edges): Increase `segment_length_threshold'
439        value and use `height' member for comparisons.
440        (af_latin_hint_edges): Extend logging message.
441        Improve handling of remaining edges.
442
4432006-11-22  Werner Lemberg  <wl@gnu.org>
444
445        Fix Savannah bug #15553.
446
447        * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT
448        program after a change from mono to grayscaling (and vice versa).
449        Use correct constant for comparison to get `exec->grayscale'.
450
4512006-11-18  Werner Lemberg  <wl@gnu.org>
452
453        Because FT_Load_Glyph expects CID values for CID-keyed fonts, the
454        test for a valid glyph index must be deferred to the font drivers.
455        This patch fixes Savannah bug #18301.
456
457        * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'.
458        * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c
459        (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph),
460        src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c
461        (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph),
462        src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c
463        (FNT_Load_Glyph): Check validity of `glyph_index'.
464
4652006-11-13  David Turner  <david@freetype.org>
466
467        * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine.  The interpreter
468        `enhancements' are still too buggy for general use.
469
470        * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and
471        FT_FORCE_LEGACY_LCD_FILTER at compile time.  Define these macros
472        when building the library to change the default LCD filter to be
473        used.  This is only useful for experimentation.
474
475        * include/freetype/ftlcdfil.h: Update documentation.
476
4772006-11-10  David Turner  <david@freetype.org>
478
479        * src/smooth/ftsmooth.c: API change for the LCD
480        filter.  The FT_LcdFilter value is an enumeration describing which
481        filter to apply, with new values FT_LCD_FILTER_LIGHT and
482        FT_LCD_FILTER_LEGACY (the latter implements the LibXft original
483        algorithm which produces strong color fringes for everything
484        except very-well hinted text).
485
486        * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change
487        second parameter to an enum type.
488
489        * src/base/ftlcdfil.c (USE_LEGACY): Define.
490        (_ft_lcd_filter): Rename to...
491        (_ft_lcd_filter_fir): This.
492        Update parameters.
493        (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function.
494        (FT_Library_Set_LcdFilter): Update parameters.
495        Handle new filter modes.
496
497        * include/internal/ftobjs.h: Include FT_LCD_FILTER_H.
498        (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'.
499        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering
500        callback and update other fields.
501
502        * src/smooth/ftsmooth.c (ft_smooth_render_generic)
503        [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update.
504        Other minor improvements.
505
506        * src/autofit/aflatin.c: Various tiny improvements that drastically
507        improve the handling of serif fonts and of LCD/LCD_V hinting modes.
508        (af_latin_hints_compute_edges): Fix typo.
509        (af_latin_compute_stem_width): Take better care of diagonal stems.
510
5112006-11-09  David Turner  <david@freetype.org>
512
513        * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix
514        typo which created a variable-used-before-initialized bug.
515
5162006-11-07  Zhe Su  <james.su@gmail.com>
517
518        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout
519        also.
520
5212006-11-03  Werner Lemberg  <wl@gnu.org>
522
523        * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'.
524
5252006-11-02  David Turner  <david@freetype.org>
526
527        Add a few tweaks to better handle serif fonts.
528        Add more debugging messages.
529
530        * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore
531        segments that are less than 1.5 pixels high.  This gets rid of
532        *many* corner cases with serifs.
533        (af_latin_align_linked_edge): Add logging message.
534        (af_latin_hint_edges): Use AF_HINTS_DO_BLUES.
535        Add logging messages.
536        Handle AF_EDGE_FLAG flag specially.
537
538        * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug,
539        _af_debug_disable_blue_hints, and _af_debug_hints variables.
540
541        * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug.
542        Update external declarations.
543        (af_corner_orientation, af_corner_is_flat): Replaced by...
544
545        * include/freetype/internal/ftcalc.h (ft_corner_orientation,
546        ft_corner_is_flat): These declarations.
547
548        * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat):
549        Comment out.  Replaced by...
550
551        * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat):
552        These functions.  Update all callers.
553        (FT_Add64) [!FT_LONG64]: Simplify.
554
555        * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H.
556        (af_direction_compute): Add a missing FT_ABS call.  This bug caused
557        production of garbage by missing lots of segments.
558
559        * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro.
560
561        * src/autofit/afloader.c (af_loader_init, af_loader_done)
562        [AF_DEBUG]: Set _af_debug_hints.
563
564
565        * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H.
566        (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat
567        and ft_corner_orientation.
568
569
570        * src/gzip/inftrees.c (huft_build): Remove compiler warning.
571
5722006-10-24  Werner Lemberg  <wl@gnu.org>
573
574        * src/cff/cffload.c (cff_encoding_load): Remove unused variable.
575
576        * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE
577        as argument.
578
5792006-10-23  Zhe Su  <zsu@novell.com>
580
581        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to
582        better deal with broken Asian fonts with strange glyphs, having
583        self-intersections and other peculiarities.  The used algorithm is
584        based on the nonzero winding rule.
585
5862006-10-23  David Turner  <david@freetype.org>
587
588        Speed up the CFF font loader.  With some large CFF fonts,
589        FT_Open_Face is now more than three times faster.
590
591        * src/cff/cffload.c (cff_get_offset): Removed.
592        (cff_new_index): Inline functionality of `cff_get_offset'.
593        (cff_charset_compute_cids, cff_charset_free_cids): New functions.
594        (cff_charset_done): Call `cff_charset_free_cids'.
595        (cff_charset_load): Call `cff_charset_compute_cids'.
596        (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop.
597
598        * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX
599        with FT_NEXT_XXX.
600
601
602        Speed up the Postscript hinter, with more than 100% speed increase
603        on my machine.
604
605        * src/pshinter/pshalgo.c (psh_corner_is_flat,
606        psh_corner_orientation): New functions.
607        (psh_glyph_compute_inflections): Merge loops for efficiency.
608        Use `psh_corner_orientation'.
609        (psh_glyph_init): Use `psh_corner_is_flat'.
610        (psh_hint_table_find_strong_point): Renamed to...
611        (psh_hint_table_find_strong_points): This.
612        Rewrite, adding argument to handle all points at once.
613        Update all callers.
614        (PSH_MAX_STRONG_INTERNAL): New macro.
615        (psh_glyph_interpolate_normal_points): Rewrite for efficiency.
616
6172006-10-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
618
619        * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable
620        `error' with FT_Err_Ok.
621
6222006-10-14  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
623
624        * docs/INSTALL.CROSS: New document file for cross-building.
625
626        * builds/unix/configure.raw: Preliminary cross-building support.
627        Find native C compiler and pass it by CC_BUILD, and
628        find suffix for native executable and pass it by EXEEXT_BUILD.
629        Also suffix for target executable is passed by EXEEXT.
630
631        * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to
632        build `apinames' which runs on building system.  They are set by
633        CC_BUILD and EXEEXT_BUILD.
634
635        * builds/exports.mk (APINAMES_EXE): Change the extension for
636        apinames from the suffix for target (E) to that for building host
637        (E_BUILD).
638
6392006-10-12  Werner Lemberg  <wl@gnu.org>
640
641        * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to...
642        * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This.  Update all documents
643        which reference those files.
644
6452006-10-12  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
646
647        * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable.  It is
648        embedded in freetype2.pc and freetype-config.  Use it to record
649        Carbon dependency of MacOSX.
650
651        * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS.
652
653        * builds/unix/freetype-config.in: Ditto.
654
6552006-10-11  Werner Lemberg  <wl@gnu.org>
656
657        * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for
658        development.
659
6602006-10-03  Jens Claudius  <jens.claudius@yahoo.com>
661
662        * include/freetype/config/ftstdlib.h: Cast away volatileness from
663        argument to ft_setjmp.
664
665        * include/freetype/internal/ftvalid.h: Add comment that
666        ft_validator_run must not be used.
667
6682006-10-01  Werner Lemberg  <wl@gnu.org>
669
670        * src/base/ftbase.c: Undo change from 2006-09-30.
671
672        * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'.
673
6742006-09-30  David Turner  <david@freetype.org>
675
676        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
677        s/unpatented_hinting/ignore_unpatented_hinter/.
678        Update all callers.
679
680        * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether
681        auto-hinting shall be used or not.
682
683        * src/truetype/ttobjs.c (tt_face_init): Ditto.
684
6852006-09-30  Werner Lemberg  <wl@gnu.org>
686
687        * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer
688        in use).
689
690        * src/base/ftbase.c: Include `ftlcdfil.c'.
691
6922006-09-29  Werner Lemberg  <wl@gnu.org>
693
694        * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for
695        overlapping segments.  Bug reported by Stefan Koch.
696
6972006-09-28  David Turner  <david@freetype.org>
698
699        Fix a bug in the automatic unpatented hinting support which prevents
700        normal bytecode hinting to work properly.
701
702        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec):
703        s/force_autohint/unpatented_hinting/.  Update all callers.
704
705        * src/base/ftobjs.c (FT_Load_Glyph): Updated code.
706
707        * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces.
708
7092006-09-27  David Turner  <david@freetype.org>
710
711        * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2.
712
713
714        Add a new API to support color filtering of subpixel glyph bitmaps.
715        In a default build, the function `FT_Library_SetLcdFilter' returns
716        `FT_Err_Unimplemented_Feature'; you need to #define
717        FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the
718        real implementation.
719
720        * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files.
721
722        * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New
723        typedef.
724        (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members
725        `lcd_filter_weights' and `lcd_filter'.
726
727        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments
728        `hmul' and `vmul'.
729
730        Handle subpixel rendering.
731        Simplify function.
732        (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'.
733        (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'.
734
735        * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro,
736        pointing to <freetype/ftlcdfil.h>.
737
738        * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC),
739        vms_make.com: Add `ftlcdfil.c' to the list of compiled source files.
740
741        * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c.
742
7432006-09-26  David Bustin
744
745        * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes
746        correctly.  Reported as Savannah bug #17843.
747
7482006-09-26  David Turner  <david@freetype.org>
749
750        * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
751        AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
752        horizontal and vertical hinting for the purpose of debugging the
753        auto-fitter.
754
755        * src/autofit/afmodule.c (_af_debug_disable_horz_hints,
756        _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
757
758        * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
759
760        * include/freetype/config/ftoption.h, devel/ftoption.h
761        (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
762        we want to compile LCD-optimized rendering code (à la ClearType) or
763        not.  The macro *must* be disabled in default builds of the library
764        for patent reasons.
765
766        * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
767        LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
768        isn't defined at compile time.  This only changes the content of the
769        rendered glyph to match the one of normal gray-level rendering,
770        hence clients should not need to be modified.
771
772        * docs/CHANGES: Updated.
773
7742006-09-18  Garrick Meeker  <garrick@digitalanarchy.com>
775
776        * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if
777        LWFN fails and both are available.
778
7792006-09-11  David Turner  <david@freetype.org>
780
781        * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which
782        report their English names through an Apple Roman
783        (platform,encoding) pair, with language_id != English.
784
785        If the font uses another name entry with language_id == English, it
786        will be selected correctly, though.
787
788        * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting
789        selection for `mingli.ttf'.
790
7912006-09-05  Werner Lemberg  <wl@gnu.org>
792
793        * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size'
794        values which have the upper two bytes set to 0xFF instead of 0x00
795        (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and
796        `HAN NOM B.ttf').
797
798        * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code.
799
8002006-09-05  David Turner  <david@freetype.org>
801
802        Minor source cleanups and optimizations.
803
804        * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed.
805        (TRaster): Remove `count_ex' and `count_ey'.
806        (gray_find_cell): Remove 2nd and 3rd argument.
807        (gray_alloc_cell): Merged with `gray_find_cell'.
808        (gray_record_cell): Simplify.
809        (gray_set_cell): Rewrite.
810        (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'.
811        (gray_render_span): Don't use FT_MEM_SET for small values.
812        (gray_dump_cells) [DEBUG_GRAYS]: New function.
813        (gray_sweep): Avoid buffer overwrites when to drawing the end of a
814        bitmap scanline.
815        (gray_convert_glyph): Fix speed-up.
816
8172006-09-04  David Turner  <david@freetype.org>
818
819        * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with
820        64bit processors.
821
8222006-09-03  Werner Lemberg  <wl@gnu.org>
823
824        * devel/ftoption.h: Synchronize with
825        include/freetype/config/ftoption.h.
826
827        * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing
828        variable declaration.
829        (gray_convert_glyph): Fix compiler warnings.
830
8312006-09-01  David Turner  <david@freetype.org>
832
833        * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader
834        to recognize a few fonts that require the automatic unpatented
835        loader.
836
837        * src/smooth/ftgrays.c: Optmize the performance of the anti-aliased
838        rasterizer.  The speed improvement is between 15% and 25%, depending
839        on the font data.
840
841        (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code.
842        (TCell): Redefine.
843        (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'.
844        (gray_init_cells): Updated.
845        (gray_find_cell, gray_alloc_cell): New functions.
846        (gray_record_cell): Rewritten to use `gray_find_cell' and
847        `gray_alloc_cell'.
848        (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT,
849        QSORT_THRESHOLD):
850        Removed.
851        (gray_shell_sort, gray_quick_sort, gray_check_sort,
852        gray_dump_cells): Removed.
853        (gray_sweep): Rewritten.
854        (gray_convert_glyph): Rewrite code which used one of the sorting
855        functions.
856        (gray_raster_render): Updated.
857
8582006-08-29  Dr. Werner Fink  <werner@suse.de>
859
860        * configure: Make it possible to handle configure options which
861        have strings containing spaces.
862
8632006-08-27  David Turner  <david@freetype.org>
864
865        * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER):
866        New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER
867        or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined.
868
869        * include/freetype/internal/ftcalc.h, src/base/ftcalc.c,
870        src/truetype/truetype.c, src/truetype/ttdriver.c,
871        src/truetype/ttgload.c, src/truetype/ttgload.h,
872        src/truetype/ttinterp.c, src/truetype/ttobjs.c,
873        src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c:
874        s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/.
875
876        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
877        member `force_autohint'.
878
879        * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'.
880
881        * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing
882        against a list of font names which need the bytecode interpreter.
883
8842006-08-27  Jens Claudius  <jens.claudius@yahoo.com>
885
886        Fix miscellaneous compiler warnings.
887
888        * freetype2/include/freetype/internal/ftobjs.h: Close comment with
889        `*/' to avoid `/* in comment' compiler warning.
890
891        * freetype2/src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast
892        `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on
893        64-bit platforms void* is larger than FT_UInt32.
894
895        * freetype2/src/base/ftobjs.c (t_validator_error): Cast away
896        volatileness of argument to ft_longjmp.  Spotted by Werner
897        `Putzfrau' Lemberg.
898
899        * freetype2/src/bdf/bdflib.c (bdf_load_font): Initialize local
900        variable `lineno'.
901
902        * freetype2/src/gxvalid/gxvmod.c (classic_kern_validate): Mark local
903        variable `error' as volatile.
904
9052006-08-27  Werner Lemberg  <wl@gnu.org>
906
907        * builds/unix/ftconfig.in: Synchronize with main ftconfig.h.
908        Reported by Jens.
909
9102006-08-22  Jens Claudius  <jens.claudius@yahoo.com>
911
912        Fix for previous commit, which caused many compiler warnings/errors
913        about addresses of volatile objects passed as function arguments as
914        non-volatile pointers.
915
916        * freetype2/include/freetype/internal/ftvalid.h: Make FT_Validator
917        typedef a pointer to a volatile object.
918
919        * freetype2/src/gxvalid/gxvmod.c (gxv_load_table): Make function
920        argument `table' a pointer to a volatile object.
921
922        * freetype2/src/otvalid/otvmod.c (otv_load_table): Make function
923        argument `table' a pointer to a volatile object.
924
9252006-08-18  Jens Claudius  <jens.claudius@yahoo.com>
926
927        * freetype2/src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local
928        variable `_sfnt' as volatile since it must keep its value across
929        a call to ft_setjmp.
930        (gxv_validate): Same for local variables `memory' and `valid'.
931        (classic_kern_validate): Same for local variables `memory',
932        `ckern', and `valid'.
933
934        * freetype2/src/otvalid/otvmod.c (otv_validate): Same for function
935        parameter `face' and local variables `base', `gdef', `gpos', `gsub',
936        `jstf', and 'valid'.
937
938        * freetype2/src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for
939        local variable `cmap'.
940
9412006-08-16  David Turner  <david@freetype.org>
942
943        * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler
944        warnings.
945
946        * src/base/ftobjs.c (ft_validator_run): Disable function; it is
947        buggy by design.  Always return -1.
948
949
950        Improvements to native TrueType hinting. This is a first try,
951        controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c.
952
953        * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member
954        `extra_points2'.
955
956        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member
957        `orus'.
958
959        * src/base/ftgloadr.c (FT_GlyphLoader_Reset,
960        FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra,
961        FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to
962        handle `extra_points2'.
963
964        * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'.
965        Remove compiler warning.
966        (cur_to_arg): Remove macro.
967        (TT_Hint_Glyph): Updated.
968        (TT_Process_Simple_Glyph): Handle `orus'.
969
970        * src/truetype/ttinterp.c (FIX_BYTECODE): New macro.
971        (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'.
972        (LOC_Ins_IUP): Renamed to...
973        (IUP_WorkerRec): This.
974        Add `orus' member.
975        (Shift): Renamed to...
976        (_iup_worker_shift): This.
977        Updated.
978        (Interp): Renamed to...
979        (_iup_worker_interpolate): This.
980        Updated to handle `orus'.
981        (Ins_IUP): Updated.
982
983        * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new):
984        Handle `orus'.
985
9862006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
987
988        * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
989        build ftvalid in ft2demos.  This has been inadvertedly changed
990        2006-08-13.
991
9922006-08-15  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
993
994        `ft_validator_run' wrapping `setjmp' can cause a crash, as found by
995        Jens:
996        http://lists.nongnu.org/archive/html/freetype-devel/2006-08/msg00004.htm.
997
998        * freetype2/src/otvalid/otvmod.c: Replace `ft_validator_run' by
999        `ft_setjmp'.  It reverts the change introduced on 2005-08-20.
1000
1001        * freetype2/src/gxvalid/gxvmod.c: Ditto.
1002
10032006-08-13  Jens Claudius  <jens.claudius@yahoo.com>
1004
1005        * freetype2/include/freetype/internal/psaux.h: (T1_TokenType): Add
1006        T1_TOKEN_TYPE_KEY.
1007        (T1_FieldRec): Add `dict'.
1008        (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros.
1009        (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS
1010        keyword is expected as an additional argument.
1011
1012        * freetype2/src/cid/cidload.c: (cid_field_records): Adjust
1013        invocations of T1_FIELD_XXX.
1014
1015        * freetype2/src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX.
1016
1017        * freetype2/src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing.
1018        (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY,
1019        not T1_TOKEN_TYPE_ANY.
1020        (ps_parser_load_field): Make sure a token that should be a string or
1021        name is really a string or name.
1022        Avoid memory leak if a keyword has been already encountered and its
1023        value is overwritten.
1024        * freetype2/src/type1/t1load.c: (t1_keywords): Adjust invocations of
1025        T1_FIELD_XXX.
1026        (parse_dict): Ignore keywords that occur in the wrong dictionary
1027        (e.g., in `Private' instead of `FontDict').
1028
1029        * freetype2/src/type1/t1tokens.h: Adjust invocations of
1030        T1_FIELD_XXX.
1031
1032        * freetype2/src/type42/t42parse.c: (t42_keywords): Adjust
1033        invocations of T1_FIELD_XXX.
1034
10352006-07-18  Jens Claudius  <jens.claudius@yahoo.com>
1036
1037        Move creation of field `buildchar' of T1_DecoderRec out of
1038        `t1_decoder_init' and let the caller of `t1_decoder_init' take care
1039        of it.
1040
1041        Call the finisher for T1_Decoder in `cid_face_compute_max_advance'
1042        and `T1_Compute_Max_Advance'.
1043
1044        * freetype2/include/freetype/internal/psaux.h (T1_DecoderRec):
1045        Remove field `face', add `len_buildchar'.
1046
1047        * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): Add
1048        field `buildchar'.
1049
1050        * freetype2/src/cid/cidgload.c (cid_face_compute_max_advance): Call
1051        finisher for T1_Decoder.
1052        (cid_slot_load_glyph): Do not ignore failure when initializing the
1053        T1_Decoder.
1054
1055        * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings):
1056        Updated.
1057        (t1_decoder_init): Remove initialization of fields `buildchar' and
1058        `len_buildchar'.
1059        (t1_decoder_done): Remove deallocation of field `buildchar'.
1060
1061        * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize
1062        T1_Decoder's `buildchar' and `len_buildchar'; call finisher for
1063        T1_Decoder.
1064        (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and
1065        `len_buildchar'; make sure to call finisher for T1_Decoder even in
1066        case of error.
1067
1068        * freetype2/src/type1/t1load.c (T1_Open_Face): Allocate new field
1069        `buildchar' of T1_FaceRec.
1070
1071        * freetype2/src/type1/t1objs.c (T1_Face_Done): Free new field
1072        `buildchar' of T1_FaceRec.
1073
10742006-07-14  Jens Claudius  <jens.claudius@yahoo.com>
1075
1076        * freetype2/include/freetype/internal/psaux.h: New macros
1077        IS_PS_NEWLINE, IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT,
1078        IS_PS_XDIGIT, and IS_PS_BASE85 (from freetype2/src/psaux/psconv.h).
1079        (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER,
1080        T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND.
1081        (T1_DecoderRec): New fields `buildchar' and `face'.
1082        (IS_PS_TOKEN): New macro.
1083
1084        * freetype2/include/freetype/internal/t1types.h (T1_FaceRec): New
1085        fields `ndv_idx', `cdv_idx', and `len_buildchar'.
1086
1087        * freetype2/include/freetype/t1tables.h (PS_BlendRec): New fields
1088        `default_design_vector' and `num_default_design_vector'.
1089
1090        * freetype2/src/psaux/psconv.h: Move macros IS_PS_NEWLINE,
1091        IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT,
1092        and IS_PS_BASE85 to freetype2/include/freetype/internal/psaux.h.
1093
1094        * freetype2/src/psaux/psobjs.c (ps_parser_to_token_array): Allow
1095        `token' argument to be NULL if we want only to count the number of
1096        tokens.
1097        (ps_tocoordarray): Allow `coords' argument to be NULL if we just
1098        want to skip the array.
1099        (ps_tofixedarray): Allow `values' argument to be NULL if we just
1100        want to skip the array.
1101
1102        * freetype2/src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add
1103        support for (partially commented out) othersubrs 19-25, 27, and 28.
1104        (t1_decoder_init): Initialize new fields `face' and `buildchar'.
1105        (t1_decoder_done): Release new field `buildchar'.
1106
1107        * freetype2/src/type1/t1load.c (parse_buildchar, parse_private): New
1108        functions.
1109        (t1_keywords): Register them.
1110        (t1_allocate_blend): Updated.
1111        (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER,
1112        T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND.
1113        (parse_dict): Remove `keyword_flags' argument.
1114        Use new macro IS_PS_TOKEN.
1115        Changed function so that later PostScript definitions override
1116        earlier ones.
1117        (t1_init_loader): Initialize new field `keywords_encountered'.
1118        (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and
1119        `len_buildchar'.
1120        Remove `keywords_flags'.
1121
1122        * freetype2/src/type1/t1load.h (T1_LoaderRect): New field
1123        `keywords_encountered'.
1124        (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros.
1125
1126        * freetype2/src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]:
1127        New entries for parsing /NDV, /CDV, and /DesignVector.
1128
11292006-07-07  Werner Lemberg  <wl@gnu.org>
1130
1131        Add many checks to protect against malformed PCF files.
1132
1133        * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers.
1134        (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors.
1135
1136        * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table
1137        data and check that tables don't overlap (using a simple
1138        bubblesort).
1139        (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE):
1140        New macros which give the size of data structures in the data
1141        stream.
1142        (pcf_get_properties): Use rough estimates to get array size limits.
1143        Assign `face->nprops' and `face->properties' earlier so that a call
1144        to PCF_Face_Done can do the clean-up in case of error.
1145        Protect against invalid string offsets.
1146        (pcf_get_metrics): Clean up code.
1147        Adjust tracing message levels.
1148        Use rough estimate to get array size limit.
1149        (pcf_get_bitmaps): Clean up code.
1150        Adjust tracing message levels.
1151        Use rough estimates to get offset limits.
1152        (pcf_get_encodings): Adjust tracing message level.
1153        (pcf_get_accel): Clean up code.
1154
11552006-06-26  Werner Lemberg  <wl@gnu.org>
1156
1157        * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which
1158        don't have a POINT_SIZE property.  This fixes Savannah bug #16914.
1159
11602006-06-26  Jens Claudius  <jens.claudius@yahoo.com>
1161
1162        * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15.
1163        (t1_decoder_parse_charstrings): Operator with
1164        opcode 15 pops its two arguments.
1165        Handle the case where the pops of an othersubr may be part of a
1166        subroutine.
1167        Handle unknown othersubrs gracefully: count their operands and let
1168        the following pop operators push the operands as the results onto
1169        the Type1 stack.
1170        Improve handling of setcurrentpoint opcode.
1171
11722006-06-25  Jens Claudius  <jens.claudius@yahoo.com>
1173
1174        The Type 1 parser now skips over top-level procedures as required
1175        for a `Simplified Parser'.  This makes the parser more robust as it
1176        doesn't poke around in PostScript code.  Additionally, it makes the
1177        FontDirectory hackery in src/type1/t1load.c unnecessary.
1178
1179        * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro.
1180        (skip_literal_string): Add FT_Error as return value.
1181        Handle escapes better.
1182        (skip_string): Add FT_Error as return value.
1183        Don't set `parser->error' but return error code directly.
1184        (skip_procedure): New function.
1185        (ps_parser_skip_PS_token): Handle procedures.
1186        Update code.
1187        (ps_parser_to_token): Update code.
1188        (ps_parser_load_field_table): Handle bbox entries also.
1189
1190        * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery.
1191        Add commented-out code for synthetic fonts.
1192
11932006-06-24  Eugeniy Meshcheryakov  <eugen@univ.kiev.ua>
1194
1195        Fix two hinting bugs as reported in
1196        http://lists.nongnu.org/archive/html/freetype-devel/2006-06/msg00057.html.
1197
1198        * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add
1199        `first_point' member.
1200
1201        * src/truetype/ttgload.c (tt_prepare_zone): Initialize
1202        `first_point'.
1203        (TT_Process_Composite_Glyph): Always untouch points.
1204
1205        * src/truetype/ttinterp.c (Ins_SHC): Fix computation of
1206        `first_point' and `last_point' in case of composite glyphs.
1207        (Ins_IUP): Fix computation of `end_point'.
1208
12092006-06-22  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1210
1211        Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel
1212        Mac.  The original patch was written by David Sachitano and Lawrence
1213        Coopet, and modified by Sean McBride for MPW compatibility.  Only
1214        required data are converted; unused data are left in big endian.
1215
1216        * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non
1217        Mac OS X platforms.
1218        (OS_INLINE): Undefine before definition.
1219        (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of
1220        FontAssociation table in FOND resource.
1221        (count_faces_scalable): Insert EndianS16_BtoN to parse the header
1222        and fontSize at each entry of FontAssociation table in FOND
1223        resource.
1224        (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse
1225        ffStylOff of FamilyRecord header of FOND resource, the header,
1226        fontSize, fontID at each entry of FontAssociation table, and
1227        StyleMapping table.
1228        (count_faces): Call `HUnlock' after all FOND utilization.
1229
12302006-06-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1231
1232        Public API of TrueTypeGX, OpenType, and classic kern table validator
1233        should return `FT_Err_Unimplemented_Feature' if validation service
1234        is unavailable (disabled in `modules.cfg').  It is originally
1235        suggested by David Turner, cf.
1236        http://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html
1237
1238        * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return
1239        FT_Err_Unimplemented_Feature if TrueTypeGX validation service is
1240        unavailable.
1241        (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if
1242        classic kern table validation service is unavailable.
1243
1244        * src/base/ftotval.c (FT_OpenType_Validate): Return
1245        FT_Err_Unimplemented_Feature if OpenType validation service is
1246        unavailable.
1247
12482006-06-08  Werner Lemberg  <wl@gnu.org>
1249
1250        * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of
1251        errors.
1252
12532006-06-07  David Turner  <david@freetype.org>
1254
1255        * src/type1/t1afm.c (KERN_INDEX): Make it more robust.
1256        (T1_Read_Metrics): Fix memory leak which happened when the metrics
1257        file doesn't have kerning pairs.  This fixes Savannah bug #16768.
1258
12592006-06-06  David Turner  <david@freetype.org>
1260
1261        Fix memory leak described in Savannah bug #16759.
1262
1263        We change `ps_unicodes_init' so that it also takes a
1264        `free_glyph_name' callback to release the glyph names returned by
1265        `get_glyph_name'
1266
1267        * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc):
1268        Renamed to ...
1269        (PS_GetGlyphNameFunc): This.
1270        (PS_FreeGlyphNameFunc): New typedef.
1271        (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc.
1272
1273        * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first
1274        argument.
1275        (cff_sid_free_glyph_name): New function.
1276        (cff_cmap_unicode_init): Updated.
1277
1278        * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated.
1279
1280        * src/psnames/psmodule.c (ps_unicodes_init): Add variable for
1281        PS_FreeGlyphNameFunc and use it.
1282
1283
12842006-06-04  David Turner  <david@freetype.org>
1285
1286        * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept
1287        `item_size == 0' as well -- though this sounds weird, it can
1288        theorically happen.  This fixes Savannah bug #16669.
1289
1290        * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation
1291        of `face->num_glyphs' which missed the last glyph, due to
1292        the offset-by-1 computation, since the PFR format doesn't
1293        guarantee that glyph index 0 corresponds to the `missing
1294        glyph.  This fixes Savannah bug #16668.
1295
12962006-05-25  Werner Lemberg  <wl@gnu.org>
1297
1298        * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out
1299        `-no-undefined'.  Reported by Christian Biesinger.
1300
13012006-05-19  Brian Weed  <bw@imaginengine.com>
1302
1303        * builds/win32/visualc/freetype.dsp: Release libraries no longer
1304        have debug information, and debug libraries use `C7 compatible'
1305        debug info.
1306
13072006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1308
1309        Apply patch by Derek Clegg to fix two memory leaks in the MacOS
1310        resource fork handler.  This fixes Savannah bug #16631.
1311
1312        * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace
1313        `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
1314
1315        * src/base/ftrfrk.c (raccess_guess_linux_double_from_file_name):
1316        Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak.
1317
13182006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1319
1320        * build/unix/configure.raw: Add a fallback to disable Carbon
1321        dependency, if configured with no options on Mac OS X.
1322
13232006-05-19  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1324
1325        * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when
1326        its content cannot be parsed as supported font.  This fixes
1327        the second part of Savannah bug #16590.
1328
13292006-05-18  Werner Lemberg  <wl@gnu.org>
1330
1331        * src/truetype/ttgload.c (TT_Load_Composite_Glyph)
1332        [FT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again.
1333
13342006-05-17  David Turner  <david@freetype.org>
1335
1336        This is a major patch used to drastically improve the performance of
1337        loading glyphs.  This both speeds up loading the glyph vectors
1338        themselves and the auto-fitter module.
1339
1340        We now use inline assembler code with GCC to implement `FT_MulFix',
1341        which is probably the most important function related to the
1342        engine's performance.
1343
1344        The resulting speed-up is about 25%.
1345
1346
1347        * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields
1348        `cursor' and `limit'.
1349
1350        * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation):
1351        New functions.
1352        (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out.
1353        [TEST]: Remove.
1354
1355        * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test
1356        code.
1357
1358        * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call
1359        `FT_ZERO'
1360        (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten.
1361        (af_glyph_hints_reload: Rewrite recognition of weak points.
1362
1363        * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move
1364        constant values out of the loops.
1365
1366        * src/autofit/aftypes.h: Updated.
1367
1368        * src/base/ftcalc.c (FT_MulFix): Use inline assembler code.
1369
1370        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector
1371        product to get orientation.
1372
1373        * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function.
1374        (FT_Stream_OpenGzip): Use it to handle small files directly in
1375        memory.
1376
1377        * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_ConvEexecDecode):
1378        Improve performance.
1379
1380        * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and
1381        `limit'.
1382
1383        (TT_Load_Glyph_Header, TT_Load_Simple_Glyph,
1384        TT_Load_Composite_Glyph): Updated.  Add threshold to protect against
1385        exceedingly large values of number of contours.  Speed up by
1386        reducing the number of loops.
1387
1388        * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix.
1389
1390
1391        * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold
1392        used to detect rogue clients from 4 to 16.  This is to prevent some
1393        segmentation faults with fonts like `KozMinProVI-Regular.otf' which
1394        comes from the Japanese Adobe Reader Asian Font pack.
1395
13962007-05-17  Werner Lemberg  <wl@gnu.org>
1397
1398        * src/cff/cffload.c (cff_font_done): Deallocate subfont array.  This
1399        fixes the first part of Savannah bug #16590.
1400
14012006-05-16  Werner Lemberg  <wl@gnu.org>
1402
1403        * docs/PROBLEMS: Updated icl issues.
1404
14052006-05-12  Werner Lemberg  <wl@gnu.org>
1406
1407
1408        * Version 2.2.1 released.
1409        =========================
1410
1411
1412        Tag sources with `VER-2-2-1'.
1413
14142006-05-12  Werner Lemberg  <wl@gnu.org>
1415
1416        * src/tools/docmaker/sources.py (re_source_keywords): Add word
1417        boundary markers.
1418        * src/tools/docmaker/content.py (re_field): Allow `.' in field names
1419        (but not at the beginning or end).
1420        * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
1421        (block_footer): Split into...
1422        (block_footer_start, block_footer_middle, block_footer_end): This to
1423        add navigation buttons.
1424        (HtmlFormatter::block_exit): Updated.
1425
1426        * include/freetype/*: Many minor documentation improvements (adding
1427        links, spelling errors, etc.).
1428
14292006-05-11  Werner Lemberg  <wl@gnu.org>
1430
1431        * README: Minor updates.
1432
1433        * include/freetype/*: s/scale/scaling value/ where appropriate.
1434        Many other minor documentation improvements.
1435
1436        * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
1437        trailing punctuation.
1438        * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
1439        warning message for undefined cross references.
1440        Update handling of re_italic and re_bold.
1441
14422006-05-11  Masatake YAMATO  <jet@gyve.org>
1443
1444        * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
1445        read system call returns -1.
1446        Remove a redundant parenthesis.
1447
14482006-05-10  Werner Lemberg  <wl@gnu.org>
1449
1450        * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
1451        given an empty, un-mmap()able file.  Reported and suggested fix in
1452        Savannah bug #16555.
1453
1454        * builds/freetype.mk (refdoc): Write-protect the `docmaker'
1455        directory to suppress generation of .pyc files.  According to the
1456        Python docs there isn't a more elegant solution (currently).
1457
1458        * builds/toplevel.mk (dist): New target which builds .tar.gz,
1459        .tar.bz2, and .zip files.  Note that the version number is still
1460        hard-coded.
1461        (do-dist): Sub-target of `dist'.
1462        (CONFIG_GUESS, CONFIG_SUB): New variables.
1463        (.PHONY): Updated.
1464
14652006-05-09  Rajeev Pahuja  <rpahuja@esri.com>
1466
1467        * builds/win32/visualc/freetype.sln,
1468        builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
1469        VS.NET 2003
1470        Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
1471
1472        * builds/win32/visualc/index.html: Updated.
1473
14742006-05-07  Werner Lemberg  <wl@gnu.org>
1475
1476        Put version information into the configure script.  Reported by Paul
1477        Watson <pwatson@redlinepy.com>.
1478
1479        * builds/unix/configure.ac: Renamed to...
1480        * builds/unix/configure.raw: This which now serves (with appropriate
1481        modifications) as a template for configure.ac.
1482
1483        * version.sed: New script.
1484
1485        * autogen.sh: Generate configure.ac from configure.raw, using
1486        FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
1487
14882006-05-06  Werner Lemberg  <wl@gnu.org>
1489
1490        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
1491
1492        * builds/unix/configure.ac (version_info): Set to 9:10:3.
1493
1494        * builds/win32/visualc/index.html,
1495        builds/win32/visualc/freetype.dsp,
1496        builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
1497        Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
1498        Minor updates.
1499
1500        * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
1501        Updated.
1502
1503        * builds/unix/install-sh: Updated from `texinfo' CVS module at
1504        savannah.gnu.org.
1505
1506        * devel/ftoption.h: Synchronize with
1507        include/freetype/config/ftoption.h.
1508
15092006-05-04  Werner Lemberg  <wl@gnu.org>
1510
1511        * src/lzw/ftlzw2.c: Renamed to...
1512        * src/lzw/ftlzw.c: This.
1513
1514        * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
1515
1516        * builds/mac/FreeType.m68k_cfm.make.txt,
1517        builds/mac/FreeType.m68k_far.make.txt,
1518        builds/mac/FreeType.ppc_carbon.make.txt,
1519        builds/mac/FreeType.ppc_classic.make.txt: Updated.
1520
15212006-05-03  David Turner  <david@freetype.org>
1522
1523        Allow compilation again with C++ compilers.
1524
1525        * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
1526        FT_ASSIGNP_INNER): New macros which do the actual assignment, and
1527        which exist in two variants (for C and C++).
1528        Update callers accordingly.
1529
15302006-05-03  Werner Lemberg  <wl@gnu.org>
1531
1532        * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
1533
15342006-05-02  Werner Lemberg  <wl@gnu.org>
1535
1536        * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
1537        (FT_ALLOC): Remove redundant redefinition.
1538
1539        * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
1540        `-Wstrict-prototypes'.
1541
1542        * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
1543
1544        * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
1545        Remove `extern'.
1546
15472006-05-02  David Turner  <david@freetype.org>
1548
1549        Update the memory management functions and macros to safely deal
1550        with array size buffer overflows.  This corresponds to attemps to
1551        allocate arrays that are too large.  For an example, consider the
1552        following code:
1553
1554          count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
1555          count ); for ( nn = 0; nn < count; nn++ )
1556            array[nn] = read_item_from_file();
1557
1558        If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
1559        multiplication overflows, and the array allocated os smaller than
1560        the data read from the file.  In this case, the heap will be
1561        trashed, and this can be used as a denial-of-service attack, or make
1562        the engine crash later.
1563
1564        The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
1565        count is no larger than `FT_INT_MAX/item_size', otherwise a new
1566        error code `FT_Err_Array_Too_Large' will be returned.
1567
1568        Note that the memory debugger now works again when FT_DEBUG_MEMORY
1569        is defined.  FT_STRICT_ALIASING has disappeared; the corresponding
1570        code is now the default.
1571
1572
1573        * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
1574        Don't use `extern'.
1575
1576        * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
1577        code.
1578
1579        * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
1580        [FT_DEBUG_MEMORY]: New macro.
1581        (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
1582        (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
1583        ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1584        (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
1585        FT_MEM_FREE): Redefine.
1586        (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
1587        FT_MEM_QRENEW_ARRAY): Redefine.
1588        (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
1589        FT_MEM_QREALLOC_MULT): New macros.  Update callers where
1590        appropriate.
1591        (FT_MEM_SET_ERROR): Slightly redefine.
1592
1593
1594        * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
1595        [FT_DEBUG_MEMORY]: New global variables, replacing...
1596        (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
1597        `line_no'.  Update all callers.
1598        (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
1599        overflow.
1600        (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
1601        ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
1602
1603        * src/base/ftmac.c (read_lwfn): Catch integer overflow.
1604        * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
1605        * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
1606        (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
1607
1608
1609        * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
1610        FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
1611        place where the frames were entered, extracted, exited or released
1612        in the memory debugger.
1613
1614        * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
1615        Call ft_mem_free.
1616        (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
1617        (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
1618
16192006-04-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1620
1621        * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
1622        initialization, remove extra cast to copy to pfb_lenpos.  This fixes
1623        parsing of PFB fonts with MacOS resource fork (bug introduced
1624        2003-09-11).  Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
1625
16262006-04-29  Werner Lemberg  <wl@gnu.org>
1627
1628        Further C library abstraction.  Based on a patch from
1629        msn2@bidyut.com.
1630
1631        * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
1632        ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
1633        ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
1634        C library functions.  Update all users accordingly (and catch some
1635        other places where the C library function was used instead of the
1636        wrapper functions).
1637
1638        * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
1639        * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
1640        include malloc.h.
1641
1642
1643        * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
1644        and forthcoming versions.
1645
16462006-04-28  Werner Lemberg  <wl@gnu.org>
1647
1648        * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
1649        obsolete.
1650
16512006-04-27  yi luo  <luoyi.ly@gmail.com>
1652
1653        * builds/win32/visualc/freetype.vcproj: Updated.
1654
16552006-04-26  David Turner  <david@freetype.org>
1656
1657
1658        * Version 2.2 released.
1659        =======================
1660
1661
1662        Tag sources with `VER-2-2-0'.
1663
16642006-04-26  Werner Lemberg  <wl@gnu.org>
1665
1666        * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
1667        FT_PtrDiff for `delta'.  Reported by Céline PILLET
1668        <Celine.Pillet@Tagginfo.com>.
1669
16702006-04-21  David Turner  <david@freetype.org>
1671
1672        * include/freetype/ftincrem.h: Documentation updates.
1673        (FT_Incremental_Interface): New typedef.
1674
1675        * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
1676        Documentation updates.
1677
1678        * include/freetype/freetype.h: Documentation update.
1679        (FT_HAS_FAST_GLYPHS): Always set to 0.
1680
1681        * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
1682        Take an FT_Library argument instead of FT_Memory.
1683
1684        * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
1685
16862006-04-13  David Turner  <david@freetype.org>
1687
1688        * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
1689        superfluous code in the auto-fitter's loader.
1690
16912006-04-05  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
1692
1693        * builds/amiga/makefile, builds/amiga/makefile.os4,
1694        builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
1695
16962006-04-03  luoyi  <luoyi.ly@gmail.com>
1697
1698        * builds/compiler/intelc.mk (TE): New variable.
1699        (ANSIFLAGS): Updated.
1700
17012006-04-03  Werner Lemberg  <wl@gnu.org>
1702
1703        * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
1704        (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
1705        (.PHONY): Updated.
1706
1707        * configure.ac: Minor fixes to improve --help output.
1708
1709
1710        * docs/PROBLEMS: New file.
1711
17122006-04-01  David Turner  <david@freetype.org>
1713
1714        * docs/CHANGES: Updated.
1715
1716        * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
1717        Update documentation comments.
1718
17192006-04-01  Werner Lemberg  <wl@gnu.org>
1720
1721        * builds/unix/install.mk (uninstall): Don't handle `cache'
1722        directory which no longer exists.
1723
17242006-03-29  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
1725
1726        * src/psaux/psconv.c: Changed some variables which are expected to
1727        hold negative values from `char' to `FT_Char' to allow building with
1728        a compiler where `char' is unsigned by default.
1729
17302006-03-27  David Turner  <david@freetype.org>
1731
1732        * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
1733        causes some programs to go into an infinite loop when dealing with
1734        fonts that don't have a properly sorted kerning sub-table.
1735
17362006-03-26  Werner Lemberg  <wl@gnu.org>
1737
1738        * src/bdf/bdflib.c (ERRMSG4): New macro.
1739        (_bdf_parse_glyphs): Handle invalid BBX values.
1740
1741        * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
1742        macro.
1743
17442006-03-23  Werner Lemberg  <wl@gnu.org>
1745
1746        * docs/CHANGES: Updated.
1747
1748
1749        * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
1750        padding between table elements.
1751        (html_header_1): The `DOCTYPE' comment must be in uppercase.
1752        (make_html_para): Convert `...' quotations into real left and
1753        right single quotes.
1754        Use `para_header' and `para_footer'.
1755
1756        * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
1757        also.
1758
17592006-03-23  David Turner <david@freetype.org>
1760
1761        Add FT_Get_SubGlyph_Info API to retrieve subglyph data.  Note that
1762        we do not expose the FT_SubGlyphRec structure.
1763
1764        * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
1765        to...
1766        * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
1767        (FT_Get_SybGlyph_Info): New declaration.
1768
1769        * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
1770
1771
1772        * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
1773        rsb_delta correctly in edge cases.
1774
17752006-03-22  Werner Lemberg  <wl@gnu.org>
1776
1777        * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
1778        [!FTC_INLINE]: Compile conditionally.
1779        * src/cache/ftccache.h: Updated.
1780
1781        * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
1782        FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
1783        s/FT_EXPORT/FT_LOCAL/.
1784        (FTC_GCache_Init, FTC_GCache_Done): Commented out.
1785        (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
1786        s/FT_EXPORT/FT_LOCAL/.
1787        * src/cache/ftcglyph.h: Updated.
1788
1789        * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
1790        s/FT_EXPORT/FT_LOCAL/.
1791        (FTC_INode_Weight): Commented out.
1792        * src/cache/ftcimage.h: Updated.
1793
1794        * src/cache/ftmanag.c (FTC_Manager_Compress,
1795        FTC_Manager_RegisterCache, FTC_Manager_FlushN):
1796        s/FT_EXPORT/FT_LOCAL/.
1797        * src/cache/ftmanag.h: Updated.
1798
1799        * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
1800        FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
1801        (FTC_SNode_Weight): Commented out.
1802        * src/cache/ftcsbits.h: Updated.
1803
18042006-03-22  Werner Lemberg  <wl@gnu.org>
1805
1806        * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
1807        Remove, unused.
1808
1809        * src/cache/ftccmap.h: Remove, unused.
1810
1811        * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
1812
18132006-03-21  Zhe Su  <james.su@gmail.com>
1814
1815        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
1816        algorithm.
1817
18182006-03-21  Werner Lemberg  <wl@gnu.org>
1819
1820        * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
1821
1822        * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
1823
1824        * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
1825        to `FT_UInt'.
1826        Check range of `glyph_index'.
1827        * src/cff/cffgload.h: Updated.
1828
1829
1830        * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
1831        correctly.
1832
1833
1834        * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
1835        README: s/2.1.10/2.2/.
1836
18372006-03-21  David Turner  <david@freetype.org>
1838
1839        * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
1840        that crashes the auto-hinter (introduced by previous patch).
1841
18422006-03-20  Werner Lemberg  <wl@gnu.org>
1843
1844        * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
1845        (FREETYPE_H): Updated.
1846
1847        * src/cache/rules.mk (CACHE_H_DIR): Remove.
1848        (CACHE_DRV_H): Updated.
1849
18502006-03-20  David Turner  <david@freetype.org>
1851
1852        * include/freetype/cache/ftccache.h,
1853        include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
1854        include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
1855        include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
1856        Move to...
1857
1858        * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
1859        src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
1860        src/cache/ftcmru.h: This new location.
1861        Update declarations according to the changes in the corresponding
1862        source files.
1863
1864        Note that these files are not used by FreeType clients; all public
1865        APIs of the cache module have been already moved to
1866        `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
1867        macros resolve to it.
1868
1869        Reason for the move is to allow modifications of the internals
1870        without interferences with rogue clients.  Note that there are no
1871        known clients that access the cache internals at the moment.
1872
1873        * builds/unix/install.mk (install): Don't install headers from
1874        $(CACHE_H).
1875        Remove `freetype/cache' from the target directory.
1876
1877        * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
1878        FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
1879        FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
1880        FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
1881        FT_CACHE_H.
1882
1883        * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
1884        src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
1885        src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
1886        src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
1887        src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
1888        but include the headers directly (which are now in `src/cache').
1889
1890        * src/cache/ftccache.c:  Don't use the FT_CACHE_INTERNAL_XXX_H
1891        macros but include the headers directly.
1892        (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
1893        FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
1894
1895        * src/cache/ftccache.c:  Don't use the FT_CACHE_INTERNAL_XXX_H
1896        macros but include the headers directly.
1897        (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
1898        FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
1899        FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
1900        Declare as FT_LOCAL_DEF.
1901        (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
1902        conditionally.
1903        Declare as FT_LOCAL_DEF.
1904
1905
1906        * builds/win32/visualc/freetype.dsp: Update project file, add
1907        missing base source files (ftstroke.c, ftxf86.c, etc.).
1908
1909
1910        * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
1911        src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
1912        src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
1913        src/type1/t1objs.c: Remove compiler warnings when building with
1914        Visual C++ 6 and /W4.
1915
1916        * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1917        hinting for italic/oblique fonts.
1918
1919
1920
1921        * src/truetype/ttpload.c, src/truetype/ttpload.h
1922        (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
1923
19242006-03-06  David Turner  <david@freetype.org>
1925
1926        * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
1927        Mozilla/FireFox print preview in Ubuntu Hoary.
1928
19292006-02-28  Chia-I Wu  <b90201047@ntu.edu.tw>
1930
1931        * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
1932        return error when size == 0.
1933
19342006-02-28  Chia-I Wu  <b90201047@ntu.edu.tw>
1935
1936        * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
1937        order so that type42 module is removed before truetype module.  This
1938        avoids double free in some occasions.
1939
19402006-02-28  David Turner  <david@freetype.org>
1941
1942        * Release candidate VER-2-2-0-RC4.
1943        ----------------------------------
1944
1945        * docs/CHANGES: Documentation updates.
1946
19472006-02-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1948
1949        * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
1950        build ftvalid in ft2demos.  It works as dummy ABI if gxvalid is not
1951        built.
1952
19532006-02-27  Werner Lemberg  <wl@gnu.org>
1954
1955        * include/freetype/cache/ftccache.h
1956        [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
1957        ftc_node_done.
1958
1959        * src/cache/ftccache.c (ftc_node_destroy)
1960        [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF.  This
1961        should now fix all possible compilation options.
1962
19632006-02-27  David Turner  <david@freetype.org>
1964
1965        * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
1966        ft_mem_qrealloc): Return an error if a negative size is passed in
1967        parameters.
1968
1969        * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
1970        it needs to be exported for rogue clients.
1971
1972        * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
1973        with malformed fonts which have an odd number of blue values (these
1974        are broken according to the specs).
1975
1976        * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
1977        (T1_Open_Face): Modify the loaders to force even-ness of
1978        `num_blue_values'.
1979
1980        (cff_index_access_element): Ignore invalid entries in index files.
1981
19822006-02-27  Chia-I Wu  <b90201047@ntu.edu.tw>
1983
1984        * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
1985        or height is 0.
1986
19872006-02-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1988
1989        * builds/mac/FreeType.m68k_cfm.make.txt,
1990        builds/mac/FreeType.m68k_far.make.txt,
1991        builds/mac/FreeType.ppc_carbon.make.txt,
1992        builds/mac/FreeType.ppc_classic.make.txt: Update to new header
1993        inclusion introduced on 2006-02-16.
1994
19952006-02-27  Chia-I Wu  <b90201047@ntu.edu.tw>
1996
1997        * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
1998        (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
1999        Re-enable glyph metrics grid-fitting.  It is now done in the base
2000        layer.
2001        (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
2002        height are not too small or too large, just like we were doing in
2003        2.1.10.
2004
2005        * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
2006        are not scaled.
2007
20082006-02-26  Werner Lemberg  <wl@gnu.org>
2009
2010        * docs/release: Minor additions and clarifications.
2011
2012        * docs/CHANGES: Updated to reflect many fixes for backwards
2013        compatibility.  Still incomplete.
2014
20152006-02-26  David Turner  <david@freetype.org>
2016
2017        * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
2018        conservative rounding of metrics to avoid breaking clients like
2019        Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
2020
20212006-02-25  Werner Lemberg  <wl@gnu.org>
2022
2023        * devel/ftoption.h: Synchronize with
2024        include/freetype/config/ftoption.h.
2025
2026        * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
2027
20282006-02-25  David Turner  <david@freetype.org>
2029
2030        Fix compiler warnings as well as C++ compilation problems.
2031        Add missing prototypes.
2032
2033        * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
2034        src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
2035        src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
2036        src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
2037        initialize variables, and decorate functions with FT_CALLBACK_DEF,
2038        etc., to fix compiler warnings (and C++ compiling errors).
2039
2040        * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
2041        gcc.
2042
2043        * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
2044        FT_INTERNAL_STREAM_H.
2045
2046        * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
2047
2048        * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
2049
2050        * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
2051        define for C++.
2052
2053        * include/freetype/internal/services/svotval.h: Don't include
2054        FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
2055
2056        * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
2057
2058        * src/gzip/ftgzip.c: Include FT_GZIP_H.
2059
2060        * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
2061
2062        * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
2063
20642006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>
2065
2066        * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
2067        ft_contour_enclosed, ft_outline_get_orientation): Commented out.  We
2068        have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
2069        (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
2070
20712006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>
2072
2073        * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
2074        documentation.
2075
2076        * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
2077        src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
2078        sure a glyph slot owns its bitmap.  It is also marked experimental
2079        and due to change.
2080        (FT_GlyphSlot_Embolden): Undo the last change.  It turns out that
2081        rendering the outline confuses some applications.
2082
20832006-02-24  David Turner  <david@freetype.org>
2084
2085        * Release candidate VER-2-2-0-RC3.
2086        ----------------------------------
2087
2088        * src/cache/ftcbasic.c: Correct compatibility hack bug.
2089
20902006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>
2091
2092        * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
2093        of `width' and `height' to `FT_Long'.
2094        (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
2095        New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
2096        directly.
2097
20982006-02-23  David Turner  <david@freetype.org>
2099
2100        Two BDF patches from Debian libfreetype6 for 2.1.10.
2101
2102        * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
2103        glyphs.
2104        Fix a problem with large encodings.
2105
2106
2107        Fix binary compatibility issues for gnustep-back (GNUstep backend
2108        module) which still crashes under Sarge.
2109
2110        * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
2111        FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
2112        structures and enumerations.
2113        (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
2114        compatibility code.
2115
2116        * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
2117        support rogue clients compiled against 2.1.7 to work correctly.
2118        This probably explains the GNUstep crashes with the second release
2119        candidate.
2120
21212006-02-23  Chia-I Wu  <b90201047@ntu.edu.tw>
2122
2123        * include/freetype/ftoutln.h (enum FT_Orientation): New value
2124        `FT_ORIENTATION_NONE'.
2125
2126        * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
2127        ft_contour_enclosed, ft_outline_get_orientation): Another version of
2128        `FT_Outline_Get_Orientation'.  This version differs from the public
2129        one in that each part (contour not enclosed in another contour) of the
2130        outline is checked for orientation.
2131        (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
2132
2133        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
2134        use bitmap's embolden routine when the outline one failed.
2135
21362006-02-22  Chia-I Wu  <b90201047@ntu.edu.tw>
2137
2138        * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
2139        compatibility.
2140
2141        * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
2142
2143        * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
2144        tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
2145        loading.  (Only tested with bit aligned sbit with x_pos == 0.)
2146
2147        * src/truetype/ttpload.c (tt_face_load_hdmx,
2148        tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
2149        actually used.
2150
21512006-02-21  David Turner  <david@freetype.org>
2152
2153        Add a new API named FT_Get_TrueType_Engine_Type to determine whether
2154        we have a patented, unpatented, or unimplemented TrueType bytecode
2155        interpreter.
2156
2157        The FT_Get_Module_Flags API was removed consequently.
2158
2159        * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
2160        Replaced with...
2161        (FT_Get_TrueType_Engine_Type): This.
2162        (FT_TrueTypeEngineType): New enumeration.
2163
2164        * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
2165        New macro.
2166
2167        * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
2168        (FT_Module_Get_Flags): Removed.  Replaced with...
2169        (FT_Get_TrueType_Engine_Type): This.
2170
2171        * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
2172        (tt_service_truetype_engine): New service structure.
2173        (tt_services): Register it.
2174
2175        * include/freetype/internal/services/svtteng.h: New file.
2176
2177
2178        * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
2179        embedded bitmaps from being correctly listed and used.
2180
2181
2182        * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
2183        if FT_CONFIG_OPTION_OLD_INTERNALS is used.  The is necessary because
2184        libXfont is directly accessing the HMTX data, unfortunately.
2185        Fix some compiler warnings.
2186        (tt_face_get_metrics): Ditto.
2187
2188
2189        * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
2190        character advances.
2191
21922006-02-20  David Turner  <david@freetype.org>
2193
2194        Support binary compatibility with the X.Org server's Xfont library.
2195        Note that this change unfortunately prevents memory optimizations
2196        for the embedded bitmap loader.
2197
2198        * include/freetype/internal/sfnt.h (SFNT_Interface): Move
2199        `set_sbit_strike' and `load_sbit_metrics' fields to the location of
2200        version 2.1.8.
2201
2202        * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
2203        FT_Size_Request.
2204        (sfnt_interface): Updated.
2205
2206        * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
2207        ttsbit0.c.
2208        (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
2209
2210        * src/sfnt/ttsbit.h: Updated.
2211
22122006-02-17  David Turner  <david@freetype.org>
2213
2214        * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
2215        functions anymore.  This ensures that all FT_BASE internal functions
2216        are available for dynamic linking.
2217
2218        * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
2219        FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
2220        FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
2221        FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
2222        ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
2223        FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
2224        [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
2225        cache sub-system.  We try to recognize old legacy signatures with a
2226        gross hack (hope it works).
2227
22282006-02-17  Werner Lemberg  <wl@gnu.org>
2229
2230        * devel/ftoption.h: Synchronize with
2231        include/freetype/config/ftoption.h.
2232
22332006-02-16  David Turner  <david@freetype.org>
2234
2235        Massive changes to the internals to respect the internal object
2236        layouts and exported functions of FreeType 2.1.7.  Note that the
2237        cache sub-system cannot be fully retrofitted, unfortunately.
2238
2239        * include/freetype/config/ftoption.h
2240        (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
2241
2242        * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
2243        include/freetype/cache/ftccmap.h,
2244        include/freetype/internal/ftcalc.h,
2245        include/freetype/internal/ftdriver.h,
2246        include/freetype/internal/ftmemory.h,
2247        include/freetype/internal/ftobjs.h,
2248        include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
2249        include/freetype/internal/t1types.h,
2250        include/freetype/internal/tttypes.h, src/base/ftcalc.c,
2251        src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
2252        src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
2253        src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
2254        src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
2255        src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
2256        src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
2257        Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
2258        structures.
2259
2260        Move newly added structure elements to the end of the affected
2261        structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
2262        defined) to assure binary compatibility with older FreeType
2263        versions.
2264        Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
2265        functions:
2266
2267          ft_stub_set_char_sizes
2268          ft_stub_set_pixel_sizes
2269
2270        Rename the following internal functions to provide the old function
2271        names as stubs:
2272
2273          FT_Alloc          -> ft_mem_alloc
2274          FT_QAlloc         -> ft_mem_qalloc
2275          FT_Realloc        -> ft_mem_realloc
2276          FT_QRealloc       -> ft_mem_qrealloc
2277          FT_Free           -> ft_mem_free
2278          FT_Alloc_Debug    -> ft_mem_alloc_debug
2279          FT_QAlloc_Debug   -> ft_mem_qalloc_debug
2280          FT_Realloc_Debug  -> ft_mem_realloc_debug
2281          FT_QRealloc_Debug -> ft_mem_qrealloc_debug
2282          FT_Free_Debug     -> ft_mem_free_debug
2283
22842006-02-15  Chia-I Wu  <b90201047@ntu.edu.tw>
2285
2286        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
2287        unused `max_points' and `max_contours'.
2288
2289        * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
2290        (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
2291
2292        * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
2293        `max_components'.
2294
2295        * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
2296        `loadSize' and `loadStack'.
2297
2298        * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
2299        src/sfnt/ttload.c (tt_face_load_maxp): Update.
2300
2301        * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
2302        (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
2303        compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
2304        defined.
2305
2306        * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
2307        possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
2308        (finally!)
2309
2310
2311        For most OpenType tables, `tt_face_load_xxxx' simply loads the table
2312        and `face->root' is set later in `sfnt_load_face'.  Here, we try to
2313        make this work for _all_ tables.  Also improve tracing messages.
2314
2315        * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
2316        src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
2317        then exit.  Error handling or setting face->root is done later in
2318        `sfnt_load_face'.
2319
2320        * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
2321        Mac bitmap-only fonts are not scalable.
2322        Check that `face->header.Units_Per_EM' is not zero.
2323        (LOAD_, LOADM_): Emit pretty trace messages.
2324
2325        * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
2326        from `eblc'.
2327
2328        * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
2329        (load_format_20, load_format_25, tt_face_get_ps_name): Use
2330        face->max_profile.numGlyphs, instead of face->root.num_glyphs.
2331
23322006-02-14  Werner Lemberg  <wl@gnu.org>
2333
2334        * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
2335        documentation that negative strength values are possible.
2336        Give an example call.
2337
2338        * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
2339        documentation of `outline' field.
2340
2341        * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
2342        * src/sfnt/sfdriver.c: Include ttmtx.h.
2343
2344        * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
2345
23462006-02-14  Chia-I Wu  <b90201047@ntu.edu.tw>
2347
2348        * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
2349
23502006-02-14  Chia-I Wu  <b90201047@ntu.edu.tw>
2351
2352        * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
2353        return error if table is missing.
2354        Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
2355
2356        * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
2357        tables.  The last change makes Mac bitmap-only font not load and
2358        this fixes it.
2359
2360        * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
2361        error when FT_CONFIG_OPTION_INCREMENTAL is defined.
2362
23632006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
2364
2365        Clean up the SFNT_Interface.  In this final pass, `load_hmtx' is
2366        split from `load_hhea'.
2367
2368        * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
2369        src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
2370
2371        * src/sfnt/sfobjs.c (sfnt_load_face): Update.
2372
23732006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
2374
2375        * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
2376        code...
2377
23782006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
2379
2380        Clean up the SFNT_Interface.  In this pass, we want to treat the
2381        font directory (offset table and table directory) as a normal table
2382        like the others.  This also means that TTCs are no longer recognized
2383        there but in `init_face'.
2384
2385        * include/freetype/internal/sfnt.h (SFNT_Interface),
2386        src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
2387        combined and renamed to `load_font_dir'.
2388
2389        * src/sfnt/ttload.h, src/sfnt/ttload.c:
2390        s/sfnt_dir_check/check_table_dir/.
2391        `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
2392        `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
2393        and renamed to `tt_face_load_font_dir'.
2394
2395        * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
2396
23972006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
2398
2399        Clean up the SFNT_Interface.  Table loading functions are now named
2400        after the tables' tags; `hdmx' is TrueType-specific and thus the
2401        code is moved to the truetype module; `get_metrics' is moved here
2402        from the truetype module so that the code can be shared with the cff
2403        module.
2404
2405        This pass involves no real changes.  That is, the code is moved
2406        verbatim mostly.  The only exception is the return value of
2407        `tt_face_get_metrics'.
2408
2409        * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
2410        src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
2411        src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
2412        src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
2413
2414        * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files.  Metrics-related
2415        tables' loading and parsing code is moved to here.
2416        Move `tt_face_get_metrics' here from the truetype module.  The
2417        return value is changed from `void' to `FT_Error'.
2418
2419        * include/freetype/internal/fttrace.h: New trace: ttmtx.
2420
2421        * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
2422        parsing code is moved here.
2423        New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
2424        `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
2425
2426        * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
2427
2428        * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
2429
24302006-02-11  Chia-I Wu  <b90201047@ntu.edu.tw>
2431
2432        * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
2433
2434        * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
2435        AF_LatinMetricsRec as the dummy metrics because we cast the metrics
2436        to it later in `af_latin_hints_link_segments'.
2437
24382006-02-11  Chia-I Wu  <b90201047@ntu.edu.tw>
2439
2440        * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
2441        to enable autofit CJK script support.  (#define'd by default.)
2442
2443        * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
2444
2445        * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
2446        that `edge_distance_threshold' is always set.
2447        (af_latin_hints_link_segments): Potential divide-by-zero bug.
2448        Use latin constant in the scoring formula.
2449
2450        * src/autofit/afcjk.c: Minor updates due to the above three changes.
2451
2452        * docs/TODO, docs/CHANGES: Updated.
2453
24542006-02-09  Chia-I Wu  <b90201047@ntu.edu.tw>
2455
2456        Introduce experimental autofit CJK module based on akito's autohint
2457        patch.  You need to #define AF_MOD_CJK in afcjk.c to enable it.
2458
2459        * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
2460        src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
2461        Add CJK module based on akito's autohint patch.
2462
2463        * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
2464        overlap length of the segments.
2465        (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
2466
2467        * src/autofit/aflatin.h (af_latin_metrics_init_widths),
2468        src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
2469        `FT_LOCAL'.
2470        Use the character given by the caller.
2471        (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
2472        the thresholds.
2473
2474        * src/autofit/afloader.c (af_loader_load_g): Respect
2475        AF_SCALER_FLAG_NO_ADVANCE.
2476
24772006-02-09  Werner Lemberg  <wl@gnu.org>
2478
2479        * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
2480
24812006-02-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2482
2483        * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
2484        broken CIDFont.  Reported by Taek Kwan(TK) Lee (see ft-devel
2485        2005-11-02).
2486
24872006-02-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2488
2489        * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
2490        option on UNIX platform.  It has been broken since 2006-01-11.
2491
24922006-02-01  Werner Lemberg  <wl@gnu.org>
2493
2494        * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
2495        * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
2496
2497        * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
2498        change from 2006-01-31).
2499        (TOP_DIR, OBJ_DIR): Update.
2500
2501        * builds/unix/install.mk (install): Fix path for ftmodule.h.
2502
2503        * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
2504        `?=' where appropriate.
2505
2506        * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
2507        builds/win32/w32-dev.mk (TOP_DIR): Removed.  Defined elsewhere.
2508
25092006-01-31  Werner Lemberg  <wl@gnu.org>
2510
2511        Implement new, simplified module selection.  With GNU make it is now
2512        sufficient to modify a single file, `modules.cfg', to control the
2513        inclusion of modules and base extension files.
2514
2515        This change also fixes the creation of ftmodule.h; it now depends on
2516        `modules.cfg' and thus is rebuilt only if necessary.
2517
2518        Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
2519        default location.
2520
2521        * modules.cfg: New file.
2522
2523        * builds/freetype.mk: Don't include `modules.mk'.
2524        Include all `rules.mk' files as specified in `modules.cfg'.
2525        (FTOPTION_FLAG, FTOPTION_H): New variables.
2526        (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
2527        Add FTOPTION_FLAG.
2528        ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
2529        (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
2530        (INCLUDES): Add DEVEL_DIR.
2531        (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
2532        OBJ_M, OBJ_S): Use `:=', not `='.
2533        (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
2534        (distclean): Add remove_ftmodule_h.
2535
2536        * builds/modules.mk: (MODULE_LIST): Removed.
2537        (make_module_list, clean_module_list): Replace targets
2538        with...
2539        (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
2540        variables.  Reason for the change is that it is not possible to have
2541        a phony prerequisite which is run only if the target file must be
2542        rebuilt (phony prerequisites act like subroutines and are *always*
2543        executed).  We only want to rebuild `ftmodule.h' if `module.cfg' is
2544        changed.
2545        Update all callers.
2546        ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
2547        `modules.cfg'.
2548
2549        * builds/toplevel.mk: Rewrite and simplify module handling.
2550        (MODULES_CFG, FTMODULE_H): New variables.
2551        Include MODULES_CFG.
2552        (MODULES): New variable to include all `module.mk' and `rules.mk'
2553        files.  We no longer use make's `wildcard' function for this.
2554
2555        * Makefile (USE_MODULES): Remove.  Update all users.
2556        (OBJ_DIR): Define it here.
2557
2558        * src/*/module.mk: Change
2559
2560            make_module_list: foo
2561            foo: ...
2562
2563        to
2564
2565            FTMODULE_H_COMMANDS += FOO
2566            define FOO
2567            ...
2568            endef
2569
2570        in all files.  `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
2571
2572        * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
2573
2574        * builds/unix/detect.mk (setup): Always execute `configure' script.
2575        (have_mk): Rename to...
2576        (have_Makefile): This.
2577        Don't use `strip' function.
2578
2579        * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
2580        defined.
2581        (have_mk): Don't use `strip' function.
2582        Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
2583        accordingly).
2584
2585        * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
2586
2587        * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
2588        builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
2589        BUILD_DIR but DEVEL_DIR for development header files.
2590
2591        * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
2592        builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
2593        (TOP_DIR, OBJ_DIR): Removed.  Defined elsewhere.
2594
2595        * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
2596        builds/win32/win32-def.mk (OBJ_DIR): Removed.  Defined elsewhere.
2597
2598        * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
2599        development header files.
2600        Don't define PLATFORM.
2601
2602        * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
2603        Update snippet taken from autoconf's m4sh.m4 to current CVS version.
2604        Be more verbose.
2605
2606        * include/freetype/config/ftmodule.h: Add comments -- this file is
2607        no longer used if FreeType is built with GNU make.
2608
2609        * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
2610        docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
2611        Other minor updates.
2612
2613        * modules.txt: Removed.  Contents included in `modules.cfg'.
2614
2615
2616        * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
2617        FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
2618
2619        * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
2620        FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
2621        [FT_STRICT_ALIASING]: Implement.
2622
26232006-01-31  Chia-I Wu  <b90201047@ntu.edu.tw>
2624
2625        * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
2626        (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
2627        src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
2628        units_per_EM, ascender - descender).
2629
26302006-01-31  Chia-I Wu  <b90201047@ntu.edu.tw>
2631
2632        * include/freetype/internal/t1types.h (AFM_FontInfo),
2633        src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
2634        `Ascender', and `Descender' from an AFM.
2635
2636        * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
2637
2638        * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
2639        be changed after file attachment.
2640
26412006-01-28  Werner Lemberg  <wl@gnu.org>
2642
2643        * src/*/module.mk (.PHONY): Add.
2644
26452006-01-27  Werner Lemberg  <wl@gnu.org>
2646
2647        * README, docs/FTL.TXT: Fix email address for bug reports.
2648        Other minor formatting.
2649
2650        * devel/ftoption.h: Synchronize with
2651        include/freetype/config/ftoption.h.
2652
2653        * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
2654        (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
2655        whitespace.
2656
2657        * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
2658        renderer classes.
2659
26602006-01-27  David Turner  <david@freetype.org>
2661
2662        * builds/unix/configure.ac: Fix build problem on Cygwin.
2663
2664        * builds/unix/install.mk (install): Don't install the internal
2665        headers, and remove existing ones if found in the target install
2666        directory.
2667
2668        * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
2669        if the warp hinter isn't active (it shouldn't, still experimental).
2670
2671        * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
2672        and `otvalid' from the list of modules that are linked statically
2673        to a given FreeType library.  Functionality has been moved to the
2674        `ftvalid' CVS module.
2675
2676        Note also that current Make-based build system still compiles the
2677        modules though.
2678
2679        * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
2680        which controls the definitions of the memory management functions to
2681        avoid warnings with recent versions of GCC.  This macro is only here
2682        to be disabled, in case we detect problems with the new scheme.
2683
2684        NOTE: Disable macro to use the memory debugger -- this will be fixed
2685              later!
2686
2687        * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
2688        FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
2689        New versions.
2690
2691
2692        * builds/win32/visualc/freetype.dsp: Updating project file to
2693        define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
2694        compilation.
2695
2696
2697        * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
2698        macro FT2_BUILD_LIBRARY when compiling the library.
2699
2700        * include/freetype/config/ftheader.h: Remove inclusions of internal
2701        headers except if the macro FT2_BUILD_LIBRARY is defined.
2702
2703
2704        * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
2705        AFM_FontInfo): Move structure declarations to...
2706        * include/freetype/internal/t1types.h: This file.
2707
2708
2709        * (many files): Fix compiler warnings.
2710        Various minor reorganizations.
2711
2712
2713        * src/cff/cffload.c (cff_font_done): Don't free static array
2714        `subfonts'.
2715
2716        * src/otvalid/otvcommn.c (otv_ClassDef_validate),
2717        src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
2718
2719
2720        Get rid of writable static variables (i.e., the string table) in
2721        afmparse, and fix compilation in FT2_MULTI mode.
2722
2723        * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
2724        (AFM_MAX_ARGUMENTS): Define...
2725        * src/psaux/afmparse.h: Here.
2726        * src/psaux/Jamfile (_sources): Add afmparse.
2727
2728        * src/psaux/psconv.c: Include psconv.h.
2729
2730        * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
2731        FT_INTERNAL_POSTSCRIPT_AUX_H.
2732        * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
2733
27342006-01-23  Chia-I Wu  <b90201047@ntu.edu.tw>
2735
2736        * include/freetype/freetype.h (FT_Select_Size): Rename the second
2737        argument from `idx' to `strike_index'.
2738        (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
2739        this enum.
2740
2741        * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
2742        FT_REQUEST_HEIGHT): New macros to get the width and height of a
2743        request, in fractional pixels.
2744
2745        * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
2746        FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
2747        FT_Request_Metrics): New base functions to set the font metrics.  They
2748        were part of FT_Select_Size/FT_Request_Size and are made independent
2749        functions so that metrics are not set again and again.
2750
2751        * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
2752        only when driver's size_select/size_request is NULL.  That is, drivers
2753        should set the metrics themselves.
2754        (FT_Match_Size): Round before matching.  This was what we did and it
2755        does cause some problems without rounding.
2756
2757        * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
2758        (tt_size_select): Set the font metrics.
2759        s/index/strike_index/.
2760        The scaled metrics are always preferred over strikes' metrics, even
2761        when some strike is selected.  This is done because the strikes'
2762        metrics are not reliable, e.g., the sign of the descender is wrong for
2763        some fonts.
2764
2765        * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
2766        (tt_size_request): Set the font metrics.
2767        Call cff_size_select/tt_size_select when some strike is matched.
2768
2769        * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
2770        src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
2771        src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
2772        Set the font metrics.
2773        s/index/strike_index/.
2774
2775        * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
2776        files were committed.  Just a catch-up.
2777        (PS_Conv_ToFixed): Remove the `goto'.
2778        (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
2779
2780        * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
2781        tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
2782        (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
2783        advertised metrics in `available_sizes' are different from those
2784        actually used.
2785
27862006-01-23  Chia-I Wu  <b90201047@ntu.edu.tw>
2787
2788        * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
2789        AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
2790
27912006-01-22  Werner Lemberg  <wl@gnu.org>
2792
2793        * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
2794        `texinfo' CVS module at savannah.gnu.org.
2795
27962006-01-21  Werner Lemberg  <wl@gnu.org>
2797
2798        * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
2799
2800        * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
2801        to avoid compiler warnings.
2802
2803        * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
2804        shadowing variable declarations.
2805        Fix warning parameters and replace printf with AF_LOG.
2806        (af_warper_compute): Remove unused variable.
2807
28082006-01-20  David Turner  <david@freetype.org>
2809
2810        Adding experimental implementation of `warp hinting' (new hinting
2811        algorithm for gray-level and LCD rendering).  It is disabled by
2812        default, you need to #define AF_USE_WARPER in aftypes.h.
2813
2814        * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
2815        New function.
2816        * src/autofit/afhints.h: Updated.
2817
2818        * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
2819        (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
2820        FT_RENDER_MODE_NORMAL if an LCD mode is selected.
2821        (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
2822        appropriately.
2823
2824        * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
2825        Isolate code for adjusting metrics.
2826
2827        * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
2828        default).
2829
2830        * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
2831
2832        * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
2833
2834        * src/autofit/Jamfile (_sources): Add afwarp.
2835
28362006-01-19  David Turner  <david@freetype.org>
2837
2838        * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
2839        that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
2840
28412006-01-19  Brian Weed  <bw@imaginengine.com>
2842
2843        * builds/win32/visualc/freetype.dsp: Updated.
2844
28452006-01-17  Werner Lemberg  <wl@gnu.org>
2846
2847        Use pscmap service in CFF module.
2848
2849        * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
2850        (cff_sid_to_glyph_name): New function.
2851        (cff_cmap_unicode_init, cff_cmap_unicode_done,
2852        cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
2853        service.
2854        (cff_cmap_unicode_class_rec): Updated.
2855        * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
2856
2857
2858        * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
2859        return value.
2860
2861
2862        * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
2863        to avoid compiler warnings regarding type-punning.
2864
28652006-01-16  Chia-I Wu  <b90201047@ntu.edu.tw>
2866
2867        * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
2868        implement an AFM parser.
2869
2870        * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
2871        conversion functions (e.g., PS real number => FT_Fixed) for the
2872        PS_Parser and AFM_Parser.  Some of the functions are taken, with
2873        some modifications, from the file psobjs.c.
2874
2875        * src/psaux/psobjs.c: Use functions from psconv.c.
2876
2877        * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
2878        `AFM_Parser' to the `psaux' service.
2879
2880        * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
2881        those new files.
2882
2883        * src/tools/test_afm.c: A test program for AFM parser.
2884
2885        * include/freetype/internal/services/svkern.h: New file providing a
2886        `Kerning' service.  It is currently only used to get the track
2887        kerning information.
2888
2889        * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
2890        macro.
2891
2892        * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
2893        src/type1/t1afm.h: Update to use the AFM parser.
2894        Provide the `Kerning' service.
2895
2896        * include/freetype/freetype.h, src/base/ftobjs.c: New API
2897        `FT_Get_Track_Kerning'.
2898
28992006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>
2900
2901        * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
2902        src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
2903        src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
2904        s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
2905
2906        * docs/CHANGES: Mention that vertical metrics are synthesized for
2907        fonts not having this info.
2908
29092006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>
2910
2911        * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
2912        src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
2913        vertical metrics.
2914
2915        * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
2916        src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
2917        which are monotone.
2918
2919        * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
2920        formattings in vertical metrics faking.  There is still room for
2921        improvements (and so does the CFF module).
2922
29232006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>
2924
2925        * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
2926        (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
2927        the linear advance fields as they are only used by the outline
2928        glyphs.
2929
2930        * include/freetype/freetype.h: Documentation updates and
2931        clarifications.
2932        The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
2933        change need be made to the code.
2934
2935        * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
2936        decide whether to use the auto-hinter according to documentation.
2937        There should to be no real difference.
2938        Some checks (e.g., is text height positve?) after the glyph is
2939        loaded.
2940        (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
2941        Be careful that scales won't be negative.
2942
29432006-01-14  Chia-I Wu  <b90201047@ntu.edu.tw>
2944
2945        * docs/CHANGES: Mention the size selection change.
2946
2947        * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
2948        src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
2949        src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
2950        matching for requests of type NOMINAL and REAL_DIM.
2951
2952        * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
2953        `pixel_height' is used for nominal height.
2954
2955        * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
2956        face is bitmap only and driver doesn't provide `request_size'.  This
2957        is added merely for completion as no driver satisfies the conditions.
2958
29592006-01-13  Chia-I Wu  <b90201047@ntu.edu.tw>
2960
2961        Introduce new size selection interface.
2962
2963        * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
2964        Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
2965        `select_size'.
2966
2967        * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
2968        FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
2969        (FT_Select_Size, FT_Request_Size): API additions to export the new
2970        size selection interface.
2971
2972        * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
2973        `FT_Request_Size'.
2974
2975        * include/freetype/internal/ftobjs.h (FT_Match_Size),
2976        src/base/ftobjs.c (FT_Match_Size): New function to match a size
2977        request against `available_sizes'.  Drivers supporting bitmap strikes
2978        can use this function to implement `request_size'.
2979
2980        * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
2981        src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
2982        src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
2983        src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
2984        Update to new size selection interface.
2985
2986        * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
2987        src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
2988        src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
2989        selection interface.
2990        Make `strike_index' FT_ULong and always defined.
2991        Use `load_strike_metrics' provided by SFNT interface.
2992
29932006-01-13  Chia-I Wu  <b90201047@ntu.edu.tw>
2994
2995        * include/freetype/internal/sfnt.h (SFNT_Interface): New method
2996        `load_strike_metrics' used to load the strike's metrics.
2997
2998        * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
2999        src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
3000
3001        * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
3002
3003        * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
3004        nominal size unless it is obviously incorrect.
3005
3006        * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
3007        FNT driver.
3008
30092006-01-12  Werner Lemberg  <wl@gnu.org>
3010
3011        Prepare use of pscmap service within CFF module.
3012
3013        * include/freetype/internal/services/svpscmap.h: Include
3014        FT_INTERNAL_OBJECTS_H.
3015        (PS_Unicode_Index_Func): Removed.  Unused.
3016        (PS_Macintosh_Name_Func): Renamed to...
3017        (PS_Macintosh_NameFunc): This.
3018        Update all callers.
3019        (PS_Adobe_Std_Strings_Func): Renamed to...
3020        (PS_Adobe_Std_StringsFunc): This.
3021        Update all callers.
3022        (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
3023        Add `cmap' member.
3024        Update all callers.
3025        (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
3026        Update all callers.
3027        (PS_Glyph_NameFunc): New typedef.
3028        (PS_Unicodes_InitFunc): Change arguments to expect a function
3029        and generic data pointer which returns a glyph name from a given
3030        index.
3031
3032        * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
3033        ps_unicodes_char_next, pscmaps_interface): Updated.
3034
3035        * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
3036
3037        * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
3038        (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
3039
3040        * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
3041        (t1_cmap_unicode_init, t1_cmap_unicode_done,
3042        t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
3043        t1_cmap_unicode_class_rec): Updated.
3044
3045        * src/type42/t42types.h (T42_FaceRec): Updated.
3046
30472006-01-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3048
3049        * include/freetype/ftmac.h: Add declaration of new functions
3050        FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
3051        were introduced by the jumbo patch on  2006-01-11.
3052
30532006-01-11  Werner Lemberg  <wl@gnu.org>
3054
3055        Fix Savannah bug #15056 and use pscmap service in psaux module.
3056
3057        * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
3058        FT_UInt32 for `glyph_index'.
3059        (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
3060        (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
3061        (PS_Unicodes_CharNextFunc): Make second argument a pointer to
3062        FT_UInt32.
3063
3064        * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
3065        (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
3066        variant glyph (this is, it has non-leading `.' in its name).
3067        (compare_uni_maps): Sort base glyphs before variant glyphs.
3068        (ps_unicodes_init): Use FT_String for `glyph_names' argument.
3069        Reallocate only if number of used entries is much smaller.
3070        Updated to handle variant glyphs.
3071        (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
3072        over variant glyphs.
3073        Simplify code.
3074
3075        * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
3076        (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
3077        t1_cmap_unicode_char_next): Use pscmap service.
3078        (t1_cmap_unicode_done): Updated.
3079
3080        * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
3081        (T1_CMapUnicode): Use PS_Unicodes structure.
3082
30832006-01-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3084
3085        Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
3086        Intel, as reported by Sean McBride <sean@rogue-research.com> on
3087        2005-08-24.
3088
3089        * src/base/ftmac.c: Heavy change to build without deprecated Carbon
3090        functions on Tiger.
3091
3092        * builds/unix/configure.ac: Add options and autochecks for Carbon
3093        functions availabilities, for MacOS X.
3094
3095        * builds/mac/ascii2mpw.py: Add converter for character `\305'.
3096        * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
3097        macros to avoid unavailable functions.
3098        ftmac.c must be compiled without `-strict ansi', because it disables
3099        cpp macro to use ToolBox system call.
3100
3101        * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
3102        macros to avoid unavailable functions.
3103
3104        * builds/mac/README: Detailed notes on function availabilities.
3105
3106        * docs/CHANGES: Notes about (possible) incompatibilities.
3107
31082006-01-08  Werner Lemberg  <wl@gnu.org>
3109
3110        * docs/CHANGES: Updated.
3111
31122006-01-08  Huw D M Davies  <h.davies1@physics.ox.ac.uk>
3113
3114        * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
3115        declaration.
3116
3117        * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
3118
31192006-01-07  Werner Lemberg  <wl@gnu.org>
3120
3121        * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
3122        `bitmaps'.  Reported by Yu Lei <yulei0@gmail.com>.
3123
3124        * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
3125        Reported by Niels Boldt <nielsboldt@gmail.com>.
3126
31272005-12-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3128
3129        * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
3130        MPW compiler.
3131
31322005-12-23  David Turner  <david@freetype.org>
3133
3134        * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
3135        refdoc' works correctly to generate the API reference in
3136        `docs/reference'.
3137
3138        * src/tools/docmaker/tohtml.py (print_html_field,
3139        print_html_field_list): Update to output nicer fields lists in the
3140        API reference.
3141
3142        * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
3143        forces auto-hinting.
3144
3145        * freetype/freetype.h: Updating the documentation for
3146        FT_LOAD_TARGET_XXX and FT_Render_Mode values.
3147
31482005-12-23  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3149
3150        * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
3151        in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
3152        unsupported formats (fbit, NFNT).  The number of available faces are
3153        passed via face->num_faces.  If bitmap faces are embedded in sfnt
3154        resource, face->num_fixed_size is correctly set.  In public API,
3155        FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
3156        FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
3157
3158        * doc/CHANGES: Mention the changes.
3159
31602005-12-17  Chia-I Wu  <b90201047@ntu.edu.tw>
3161
3162        * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
3163        correctly (so that memory debug system won't panic).
3164
31652005-12-16  Chia-I Wu  <b90201047@ntu.edu.tw>
3166
3167        * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
3168        src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
3169
3170        * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
3171
3172        * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3173        (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
3174        src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
3175
3176        * doc/CHANGES: Mention the changes.
3177
31782005-12-13  David Turner  <david@freetype.org>
3179
3180        Change the implementation of the LIGHT hinting mode to completely
3181        disable horizontal hinting.  This is an experimental effort to
3182        integrate David Chester's latest patch without affecting the other
3183        hinting modes as well.
3184
3185        Note that this doesn't force auto-hinting for all fonts, however.
3186
3187        * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
3188        scaler_fiags here but...
3189        (af_glyph_hints_rescale): Here.
3190
3191        * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
3192        hinting for `light' hinting mode.
3193
3194
3195        * Jamfile: Small fix to ensure that ftexport.sym is placed into the
3196        same location as other generated objects (i.e., within the `objs'
3197        directory of the current directory).
3198
3199
3200        Add support for an embedded `BDF ' table within SFNT-based bitmap
3201        font files.  This is used to store atoms & properties from the
3202        original BDF fonts that were used to generate the font file.
3203
3204        The feature is controlled by TT_CONFIG_OPTION_BDF within
3205        `ftoption.h' and is used to implement FT_Get_BDF_Property for these
3206        font files.
3207
3208        At the moment, this is still experimental, the BDF table format
3209        isn't cast into stone yet.
3210
3211        * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
3212        macro.
3213
3214        * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
3215
3216        * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
3217        [TT_CONFIG_OPTION_BDF]: New structure.
3218        (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
3219
3220        * include/freetype/ttags.h (TTAG_BDF): New macro.
3221
3222        * src/sfnt/Jamfile (_sources): Add ttbdf.
3223
3224        * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
3225
3226        * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
3227        FT_SERVICE_BDF_H.
3228        (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
3229        (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
3230        (sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
3231
3232        * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
3233
3234        * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
3235        (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
3236        tt_face_free_bdf_props.
3237
3238        * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
3239
32402005-12-07  Werner Lemberg  <wl@gnu.org>
3241
3242        * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
3243        * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
3244
32452005-12-06  Chia-I Wu  <b90201047@ntu.edu.tw>
3246
3247        * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
3248        initialized twice.
3249        size->strike_index is not initialized.
3250
32512005-12-02  Taek Kwan(TK) Lee  <taeklee@gmail.com>
3252
3253        * src/type42/t42objs.c (T42_Face_Init): Replace call to
3254        FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
3255
32562005-11-30  Werner Lemberg  <wl@gnu.org>
3257
3258        * docs/CHANGES: Document ftdump's `-v' option.
3259        Document latest charmap code changes.
3260
3261        * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
3262        s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
3263
32642005-11-30  Chia-I Wu  <b90201047@ntu.edu.tw>
3265
3266        * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
3267        tt_cmap12_char_map_binary): Fix compiler warnings.
3268
32692005-11-29  Chia-I Wu  <b90201047@ntu.edu.tw>
3270
3271        Major update to distinguish between unsorted and overlapping
3272        segments for cmap format 4.  For overlapping but sorted segments,
3273        which is previously considered unsorted, we still use binary search.
3274
3275        * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
3276        (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
3277
3278        * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
3279        (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
3280        (tt_cmap4_reset): Removed.
3281        (tt_cmap4_init): Updated accordingly.
3282        (tt_cmap4_next): Updated accordingly.
3283        Take care of overlapping segments.
3284        (tt_cmap4_validate): Make sure the subtable is large enough.
3285        Do not check glyph_ids because some fonts set the length wrongly.
3286        Also, if all segments have offset 0, glyph_ids is always invalid.
3287        It does not cause any problem so far only because the check misses
3288        equality.
3289        Distinguish between unsorted and overlapping segments.
3290        (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
3291        to do `charcode => glyph index' by linear/binary search.
3292        (tt_cmap4_char_index, tt_cmap4_char_next): Use
3293        tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
3294        (tt_face_build_cmaps): Treat the return value of validator as flags
3295        for cmap.
3296
32972005-11-29  Chia-I Wu  <b90201047@ntu.edu.tw>
3298
3299        * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
3300        New structures and functions for fast `next char'.
3301        (tt_cmap12_char_map_binary): New function to do `charcode => glyph
3302        index' by binary search.
3303        (tt_cmap12_char_index, tt_cmap12_char_next): Use
3304        tt_cmap12_char_map_binary.
3305        (tt_face_build_cmaps): Check table and offset correctly (equality is
3306        missing).
3307
33082005-11-15  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
3309
3310        * builds/amiga/smakefile: Adjusted the compiler options
3311        to the current sources, now really builds the gxvalid, gzip
3312        and psnames modules.
3313
3314        * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
3315        in the file cache was off by one byte which could cause false
3316        errors in font files.
3317
33182005-11-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3319
3320        * builds/mac/FreeType.m68k_far.make.txt,
3321        builds/mac/FreeType.m68k_cfm.make.txt,
3322        builds/mac/FreeType.ppc_classic.make.txt,
3323        builds/mac/FreeType.ppc_carbon.make.txt:
3324        Updated for MPW to build all available modules.
3325
33262005-11-21  HÃ¥vard Wall  <haavardw@ifi.uio.no>
3327
3328        * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
3329        memory leak.
3330
33312005-11-21  Werner Lemberg  <wl@gnu.org>
3332
3333        * src/sfnt/ttload.c (sfnt_init): Add tracing message.
3334
33352005-11-21  Chia-I Wu  <b90201047@ntu.edu.tw>
3336
3337        * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
3338        added twice to image_start if image_format was 2 or 5.
3339
33402005-11-21  Chia-I Wu  <b90201047@ntu.edu.tw>
3341
3342        * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
3343        before loading the table directory.
3344
3345        * src/sfnt/ttload.c (tt_face_load_sfnt_header,
3346        tt_face_load_directory): Delay sfnt_dir_check from
3347        tt_face_load_sfnt_header to tt_face_load_directory.
3348
33492005-11-20  Chia-I Wu  <b90201047@ntu.edu.tw>
3350
3351        * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
3352        error code.
3353        (sfnt_init): New function to fill in face->ttc_header.  A non-TTC font
3354        is synthesized into a TTC font with one offset table.
3355        (tt_face_load_sfnt_header): Use sfnt_init.
3356        Fix an invalid access if the font is TTC and face_index is -1.
3357
33582005-11-18  Werner Lemberg  <wl@gnu.org>
3359
3360        * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
3361        of metrics instead of aborting.  Patch suggested by Derek Noonburg.
3362
3363        * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
3364        (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
3365        the glyph properly if no hinter is available.
3366
3367        * docs/CHANGES: Mention scaling bug.
3368
33692005-11-18  susuzki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3370
3371        * include/freetype/ftgxval.h, src/base/ftgxval.c
3372        (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
3373        buffers allocated by gxvalid module.
3374        * include/freetype/ftotval.h, src/base/ftotval.c
3375        (FT_OpenType_Free): New function to free buffer allocated by
3376        otvalid module.
3377
33782005-11-18  Chia-I Wu  <b90201047@ntu.edu.tw>
3379
3380        * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3381        FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
3382        FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
3383        s/FT_EXPORT/FT_BASE/.
3384
33852005-11-17  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
3386
3387        * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
3388        FT_Trace_Get_Name, FT_Message, FT_Panic),
3389        builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
3390        FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
3391
33922005-11-17  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
3393
3394        * builds/amiga/makefile, builds/amiga/makefile.os4,
3395        builds/amiga/smakefile,
3396        builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
3397        build files (added support for the gxvalid module).
3398
33992005-11-17  Werner Lemberg  <wl@gnu.org>
3400
3401        Add vertical metrics support to OpenType CFF outlines.  Based on a
3402        patch from Mike Moening <MikeM@RetekSolutions.com>.
3403
3404        * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
3405        (cff_slot_load): Use cff_face_get_vertical_metrics.
3406
3407        * docs/CHANGES: Updated.
3408
34092005-11-17  Chia-I Wu  <b90201047@ntu.edu.tw>
3410
3411        * src/base/ftcalc.c (FT_MulTo64): Commented out.
3412
3413        * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
3414        src/base/ftcalc.c (FT_SqrtFixed),
3415        include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
3416        FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
3417        (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
3418        include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
3419        include/freetype/internal/ftstream.h (FT_Stream_Open),
3420        src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
3421        s/FT_EXPORT/FT_BASE/.
3422
3423        * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
3424        too.
3425
34262005-11-15  David Turner  <david@freetype.org>
3427
3428        * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
3429        invalid computations, resulting in very weird bugs in TrueType
3430        bytecode hinted fonts.
3431
3432        * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
3433        structure copy each time.
3434
34352005-11-11  Werner Lemberg  <wl@gnu.org>
3436
3437        * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
3438        (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
3439
3440        * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
3441        (FT_Div64by32, FT_Sqrt32): Commented out.  Unused.
3442
3443        * include/freetype/internal/ftcalc.h (SQRT_32): Removed.  Unused.
3444        (FT_Sqrt32): Commented out.  Unused.
3445
3446        * include/freetype/cache/ftccache.h:
3447        s/ftc_node_destroy/FTC_Node_Destroy/.
3448
3449        * src/cache/ftccback.h (ftc_node_destroy): New declaration.
3450
3451        * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
3452        (FTC_Node_Destroy): New exported wrapper function for
3453        ftc_node_destroy.
3454
3455        * src/cache/ftcmanag.c: Include ftccback.c.
3456
34572005-11-10  Werner Lemberg  <wl@gnu.org>
3458
3459        * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
3460        Comment out.  Unused.
3461
3462        * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
3463
34642005-11-10  Christian Biesinger  <cbiesinger@web.de>
3465
3466        * builds/beos/beos.mk: Call beos-def.mk before anything else to
3467        define the separator.
3468
3469        * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
3470
34712005-11-07  Werner Lemberg  <wl@gnu.org>
3472
3473        * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
3474        table available'.  From Sergey Tolstov <stolstov@esri.com>.
3475
34762005-11-03  Ville SyrjÀlÀ  <syrjala@sci.fi>
3477
3478        * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
3479
34802005-11-02  Werner Lemberg  <wl@gnu.org>
3481
3482        Make compiling instructions in docs/CUSTOMIZE work again.
3483
3484        * builds/unix/unix-cc.in (CPPFLAGS): New variable.
3485        (CFLAGS): Don't include @CPPFLAGS@.
3486        * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
3487
34882005-10-28  David Turner  <david@freetype.org>
3489
3490        Update build system to support the generation of a list of exported
3491        symbols or Windows .DEF files by parsing the public headers with the
3492        `apinames' tool located in src/tools/apinames.c.
3493
3494        Only tested on Unix at the moment.  On Windows, the .DEF file is
3495        generated but isn't used yet to generate a DLL.
3496
3497        * builds/exports.mk: New file.
3498
3499        * builds/freetype.mk: Include exports.mk.
3500        (dll): New target.
3501        (clean_project_dos): Fix rule.
3502
3503        * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
3504        builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
3505        variables for controlling executable extensions.
3506
3507        * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
3508        builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
3509        builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
3510        builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
3511        builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
3512        APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
3513
3514        * Jamfile (GenExportSymbols): Updated.
3515
3516
3517        * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
3518        [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
3519        FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
3520
3521
3522        * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
3523        (FT_MulFix): Performance optimizations.
3524
3525
3526        * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
3527        FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
3528        checking points and contours.  Update callers to use
3529        FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
3530        at profile-detected hot-spots.
3531
3532        * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
3533        to 0 to not call `AdjustPoints' every time.
3534
3535
3536        * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
3537        FT_Angle_Diff.
3538
3539        * src/autofit/afhints.c (af_direction_compute): Re-implement.
3540        (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
3541        AF_ANGLE_DIFF to speed up the detection of inflexions.
3542
3543
3544        * src/tools/apinames.c: Include <string.h>.
3545        (OutputFormat): New enumeration.
3546        (names_dump): Add two parameters to control output format and DLL
3547        name.
3548        (names_dump_windef): Removed.  Code folded into `names_dump'.
3549        (read_header_file): Use isalnum, not isalpha.  Otherwise function
3550        names with digits aren't read correctly.
3551        (usage): Updated.
3552        (main): New option `-o' to control output file name.
3553        New option `-d' to indicate DLL file name.
3554        Extend `-w' flag to handle Borland and Watcom compilers and linkers.
3555
35562005-10-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3557
3558        * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
3559        ftlib.prj is unmaintained and incompatible with current tree.
3560        freetype.mak is unrecoverably broken.
3561
3562        * builds/mac/ftlib.prj.xml: Added.
3563        Generated by Metrowerks CodeWarrior 9.0.
3564
3565        * builds/mac/FreeType.m68k_far.make.txt,
3566        builds/mac/FreeType.m68k_cfm.make.txt,
3567        builds/mac/FreeType.ppc_classic.make.txt,
3568        builds/mac/FreeType.ppc_carbon.make.txt: Added.
3569        Skeleton files of MPW makefiles.
3570
3571        * builds/mac/ascii2mpw.py: Added.
3572        Python script to make MPW makefile from skeleton.
3573
3574        * builds/mac/README: Updated.
3575        Almost rewritten to use new files.
3576
35772005-10-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3578
3579        * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
3580        variables.  Advised by David Turner, Masatake YAMATO, Sean McBride,
3581        and George Williams.
3582
35832005-10-27  Werner Lemberg  <wl@gnu.org>
3584
3585        * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
3586        Obsolete.
3587
35882005-10-25  Werner Lemberg  <wl@gnu.org>
3589
3590        * src/sfnt/sfdriver.c (sfnt_interface): Move out
3591        `tt_face_get_kerning' from a #ifdef clause.  Reported by Tony J.
3592        Ibbs <tibs@sj.co.uk>.
3593
35942005-10-23  Werner Lemberg  <wl@gnu.org>
3595
3596        * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
3597        C++.
3598
35992005-10-21  David Turner  <david@freetype.org>
3600
3601        * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
3602        Another realloc memory counting bug fix.
3603
3604        * src/tools/Jamfile: Add missing file.
3605
3606        * src/lzw/Jamfile: Fix incorrect source file reference.
3607
36082005-10-20  David Turner  <david@freetype.org>
3609
3610        * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
3611        ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
3612        to better account for memory reallocations.
3613
3614        * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
3615        src/lzw/rules.mk: First version of LZW loader re-implementation.
3616        Apparently, this saves about 330 KB of heap memory when loading
3617        timR24.pcf.Z.
3618
36192005-10-20  Chia-I Wu  <b90201047@ntu.edu.tw>
3620
3621        * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
3622        src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
3623        (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
3624        FT_EXPORT/FT_EXPORT_DEF tagging.
3625
36262005-10-19  Chia-I Wu  <b90201047@ntu.edu.tw>
3627
3628        * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
3629        be invalid when FT_LOAD_NO_SCALE is set.
3630
36312005-10-17  David Turner  <david@freetype.org>
3632
3633        * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
3634        FT_New_Size if we are opening a face with face_index < 0 (which is
3635        only used for testing the format).
3636
3637        * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
3638        Remove compiler warning.
3639
36402005-10-16  David Turner  <david@freetype.org>
3641
3642        * src/tools/apinames.c: Add new tool to extract public API function
3643        names from header files.
3644
36452005-10-05  Werner Lemberg  <wl@gnu.org>
3646
3647        Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
3648        a hinting engine of its own.
3649
3650        * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
3651
3652        * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
3653        (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
3654        [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
3655        (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
3656        [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
3657
3658        * docs/CHANGES: Document it.
3659
36602005-09-27  Werner Lemberg  <wl@gnu.org>
3661
3662        * builds/unix/freetype2.m4: Add license exception so that the file
3663        can be used in any other autoconf script.
3664
36652005-09-26  David Turner  <david@freetype.org>
3666
3667        * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
3668        computation of the `vertical' flag, causing ugly things in LCD mode
3669        and others.
3670
36712005-09-23  David Turner  <david@freetype.org>
3672
3673        * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
3674        prevented internal hint mode bitflags from being computed correctly.
3675
3676        * src/base/Jamfile: Adding src/base/ftgxval.c.
3677
3678        * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
3679        src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
3680        src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
3681        src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3682        src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3683        src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
3684        src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3685        src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
3686        src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
3687        src/truetype/ttgload.c: Remove _many_ compiler warnings when
3688        compiling with Visual C++ at maximum level (/W4).
3689
3690        * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
3691        implementation with one using lookup tables.  This simple thing
3692        speeds up glyph loading by 18%, according to ftbench!
3693
3694        * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
3695        `get_sfnt' and `load_sfnt' module interfaces.
3696
36972005-09-22  Werner Lemberg  <wl@gnu.org>
3698
3699        * docs/CHANGES: Mention SING Glyphlet support.
3700
37012005-09-22  David Turner  <david@freetype.org>
3702
3703        * src/base/Jamfile: Disable compilation of ftgxval module
3704        temporarily.
3705
37062005-09-19  David Somers  <dsomers@omz13.com>
3707
3708        * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
3709        font to have no `head' table if tables `SING' and `META' are
3710        present; this is to support `SING Glyphlet'.
3711
3712        `SING Glyphlet' is an extension to OpenType developed by Adobe
3713        primarily to facilitate adding supplemental glyphs to an OpenType
3714        font (with emphasis on, but not necessariy limited to, gaiji to a
3715        CJK font).  A SING Glyphlet Font is an OpenType font that contains
3716        the outline(s), either in a `glyf' or `CFF' table, for a glyph;
3717        `cmap', `BASE', and `GSUB' tables are present with the same format
3718        and functionaliy as a regular OpenType font; there are no `name',
3719        `head', `OS/2', and `post' tables; there are two new tables, `SING'
3720        which contains details about the glyphlet, and `META' which contains
3721        metadata.
3722
3723        Further information on the SING Glyphlet format can be found at:
3724
3725          http://www.adobe.com/products/indesign/sing_gaiji.html
3726
3727        * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
3728        macros for the OpenType tables `SING' and `META'.  These two tables
3729        are used in SING Glyphlet Format fonts.
3730
37312005-09-09  Werner Lemberg  <wl@gnu.org>
3732
3733        * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
3734        FT_FACE_FLAG_KERNING which has been commented out erroneously.
3735
3736        * docs/CHANGES: Document it.
3737
37382005-09-05  Werner Lemberg  <wl@gnu.org>
3739
3740        Fixes for `make multi' and using C++ compiler.
3741
3742        * gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
3743        gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
3744        gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
3745        (gxv_compare_ranges): Make it static.
3746        (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
3747        gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
3748        gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
3749        trace messages.
3750        (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
3751        (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3752        GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
3753        gxvcommn.h.
3754
3755        * gxvalid/gxvcommn.h: Add prototypes for
3756        gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
3757        gxv_XStateTable_validate, gxv_array_getlimits_byte,
3758        gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
3759        gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
3760        gxv_odtect_validate.
3761        (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
3762        GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
3763        gxvcommn.c.
3764
3765        * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
3766        gxv_bsln_parts_fmt1_validate): Improve trace messages.
3767
3768        * gxvalid/gxvfeat.c: Split off predefined registry stuff to...
3769        * gxvalid/gxvfeat.h: New file.
3770
3771        * gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
3772        message.
3773
3774        * gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
3775        (gxv_kern_subtable_fmt1_valueTable_load,
3776        gxv_kern_subtable_fmt1_subtable_setup,
3777        gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
3778        (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
3779        Improve trace message.
3780        (gxv_kern_validate_generic): Fix C++ compiler error.
3781        Improve trace message.
3782        (gxv_kern_validate_classic): Fix C++ compiler error.
3783
3784        * gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
3785        with FT_LOCAL_DEF.
3786
3787        * gxvalid/gxvmort1.c
3788        (gxv_mort_subtable_type1_substitutionTable_load,
3789        gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
3790        (gxv_mort_subtable_type1_substTable_validate): Improve trace
3791        message.
3792        (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3793
3794        * gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
3795        gxv_mort_subtable_type2_subtable_setup,
3796        gxv_mort_subtable_type2_ligActionOffset_validate,
3797        gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
3798        errors.
3799        (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3800
3801        * gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
3802        with FT_LOCAL_DEF.
3803
3804        * gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
3805        gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
3806        errors.
3807        (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3808
3809        * gxvalid/gxvmort.c: Include gxvfeat.h.
3810        (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
3811        Declare with FT_LOCAL_DEF.
3812        (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
3813        messages.
3814
3815        * gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
3816
3817        * gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
3818        with FT_LOCAL_DEF.
3819
3820        * gxvalid/gxvmorx1.c
3821        (gxv_morx_subtable_type1_substitutionTable_load,
3822        gxv_morx_subtable_type1_subtable_setup,
3823        gxv_morx_subtable_type1_entry_validate,
3824        gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
3825        compiler errors.
3826        (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
3827
3828        * gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
3829        gxv_morx_subtable_type2_subtable_setup,
3830        gxv_morx_subtable_type2_ligActionIndex_validate,
3831        gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
3832        errors.
3833        (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
3834        Fix typo.
3835
3836        * gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
3837        with FT_LOCAL_DEF.
3838
3839        * gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
3840        gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
3841        (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
3842
3843        * gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
3844        gxv_morx_validate): Improve trace message.
3845
3846        * gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
3847        warnings.
3848        (gxv_opbd_validate): Improve trace message.
3849
3850        * gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
3851        appropriate.
3852        (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
3853        message.
3854
3855        * gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
3856        parameter.  Update all callers.
3857        (gxv_trak_validate): Improve trace message.
3858
3859        * rules.mk (GXV_DRV_H): Add gxvfeat.h.
3860
38612005-09-01  Werner Lemberg  <wl@gnu.org>
3862
3863        * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
3864
3865        * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
3866        src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
3867        typo.
3868
3869        * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
3870        src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
3871        src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
3872        messages.
3873        Decorate constants with `U' and `L' where appropriate.
3874        Fix compiler warnings.
3875
38762005-08-31  Werner Lemberg  <wl@gnu.org>
3877
3878        * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
3879
3880        * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
3881
3882        * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
3883
3884        * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
3885        src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
3886        src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
3887        src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
3888        src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
3889        messages.
3890        Decorate constants with `U' and `L' where appropriate.
3891        Fix compiler warnings.
3892
38932005-08-30  Werner Lemberg  <wl@gnu.org>
3894
3895        * src/gxvalid/README: Revised.
3896        * src/gxvalid/gxvbsln.c: Fix compiler warnings.
3897        * src/gxvalid/gxvcommn.c: Fix compiler warnings.
3898        (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
3899        parameter.  Update all callers.
3900        Improve trace messages.
3901        Some formatting.
3902
39032005-08-29  Werner Lemberg  <wl@gnu.org>
3904
3905        * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
3906        a preliminary section with some explanations about user allocation.
3907
3908        * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
3909        Don't abort if there are no data types, functions, etc., in a
3910        section.
3911        Print synopsis only if we have a data type, function, etc.
3912
3913        * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
3914        docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
3915        docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
3916
39172005-08-28  George Williams  <gww@silcom.com>
3918
3919        * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
3920        (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
3921
39222005-08-25  J. Ali Harlow  <ali@avrc.city.ac.uk>
3923
3924        * builds/unix/freetype2.in (CFlags): Add missing directory.
3925
39262005-08-24  Werner Lemberg  <wl@gnu.org>
3927
3928        * docs/CHANGES: Mention gxvalid module.
3929
39302005-08-23  Werner Lemberg  <wl@gnu.org>
3931
3932        * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
3933        render mode properly.  Reported by chris@dokein.co.uk.
3934
39352005-08-23  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3936
3937        Add gxvalid module to validate TrueType GX/AAT tables.
3938
3939        Modifications on existing files:
3940
3941        * Jamfile: Register gxvalid module.
3942        * src/base/Jamfile: Register ftgxval.c.
3943        * src/base/rule.mk: Register ftgxval.c.
3944        * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
3945
3946        * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
3947        to include gxvalid header file.
3948        * include/freetype/config/ftmodule.h: Register gxv_module_class.
3949
3950        * include/freetype/ftchapters.h: Add comment about gx_validation.
3951        * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
3952        to FT_VALIDATE_OTXXX to co-exist with gxvalid.
3953        * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
3954
3955        * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
3956        macro for gxvalid service.
3957        * include/freetype/internal/fttrace.h: Add trace facilities for
3958        gxvalid.
3959
3960        New files on existing directories:
3961
3962        * include/freetype/internal/services/svgxval.h: Registration of
3963        validation service for TrueType GX/AAT and classic kern table.
3964        * include/freetype/ftgxval.h: Public API definition to use gxvalid.
3965        * src/base/ftgxval.c: Public API of gxvalid.
3966
3967        New files under src/gxvalid/:
3968
3969        * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
3970        src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
3971        src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
3972        src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
3973        src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
3974        src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
3975        src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
3976        src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
3977        src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
3978        src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
3979        src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
3980        src/gxvalid/gxvtrak.c: New files, gxvalid body.
3981
39822005-08-21  Werner Lemberg  <wl@gnu.org>
3983
3984        * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
3985        to (0,0) if bit 1 of the `head' table isn't set.  This improves
3986        rendering of buggy fonts.
3987
39882005-08-20  Chia I Wu  <b90201047@ntu.edu.tw>
3989
3990        * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
3991        ttmetrics here.  TrueType fonts with only sbits always have
3992        ttmetrics.valid set to false.
3993
3994        * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
3995        valid before loading outline glyph.
3996
3997        * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
3998
39992005-08-20  Werner Lemberg  <wl@gnu.org>
4000
4001        * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
4002        `hhea' table for SFNT Mac fonts.  Change based on a patch by
4003        mpsuzuki@hiroshima-u.ac.jp.
4004
40052005-08-20  Masatake YAMATO  <jet@gyve.org>
4006
4007        * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
4008        of ft_setjmp.
4009
40102005-08-19  Werner Lemberg  <wl@gnu.org>
4011
4012        * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
4013        warnings.
4014
40152005-08-16  Chia I Wu  <b90201047@ntu.edu.tw>
4016
4017        * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
4018        messages.
4019
40202005-08-16  Chia I Wu  <b90201047@ntu.edu.tw>
4021
4022        * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
4023        TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
4024        with slight changes.
4025        Update all callers.
4026        (TT_New_Context): Now takes TT_Driver argument directly.
4027        Update all callers.
4028
4029        * src/truetype/ttobjs.h (tt_slot_init): New function.
4030        * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
4031        context here.
4032        (tt_slot_init): New function to create extra points for the internal
4033        glyph loader.  We then use it directly, instead of face's glyph
4034        loader, when loading glyph.
4035
4036        * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
4037        glyph slot initialization.
4038        (Load_Glyph): Load flag dependencies are handled here.  Return error
4039        if size is NULL.
4040
4041        * src/truetype/ttgload.c: Heavy cleanup and refactoring.
4042        (org_to_cur): Removed.
4043        (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
4044        (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
4045        (TT_Process_Simple_Glyph): s/load/loader/.
4046        Use loader->pp values instead of recalculation.
4047        Use TT_Hint_Glyph.
4048        No need to save/restore loader->stream before and after
4049        TT_Vary_Get_Glyph_Deltas now.
4050        (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
4051        points.
4052        (load_truetype_glyph): Never set exec->glyphSize to 0.  This closes
4053        Savannah bug #13107.
4054        Forget glyph frame before calling TT_Process_Simple_Glyph.
4055        Use TT_LOADER_SET_PP.
4056        Scale all four phantom points.
4057        Split off some functionality to ...
4058        (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
4059        new functions.
4060        (TT_Load_Glyph): Set various fields of `glyph' here, not in
4061        load_truetype_glyph and compute_glyph_metrics.
4062        Split off some functionality to ...
4063        (load_sbit_image, tt_loader_init): These new functions.
4064        (compute_glyph_metrics): Call FT_Outline_Get_CBox.
4065
40662005-08-08  Werner Lemberg  <wl@gnu.org>
4067
4068        * docs/INSTALL.ANY: Updated.
4069
40702005-08-05  Werner Lemberg  <wl@gnu.org>
4071
4072        * src/cff/cffgload.c (cff_builder_close_contour),
4073        src/psaux/psobjs.c (t1_builder_close_contour): Protect against
4074        zero `outline' pointer.
4075
4076        * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
4077        `loader' address.
4078
40792005-08-03  Werner Lemberg  <wl@gnu.org>
4080
4081        * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
4082        Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
4083        to make X work again.
4084
40852005-08-02  Werner Lemberg  <wl@gnu.org>
4086
4087        * src/otvalid/otvcommn.h: Remove dead code.
4088
40892005-07-31  Chia I Wu  <b90201047@ntu.edu.tw>
4090
4091        * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
4092        functions.
4093
4094        * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
4095        functions.
4096        (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
4097        zone.
4098        Move code that runs fpgm to tt_size_run_fpgm.
4099        (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
4100        (tt_glyphzone_new): Allocate right size of arrays.
4101        Set max_points and max_contours properly.
4102
41032005-07-26  Chia I Wu  <b90201047@ntu.edu.tw>
4104
4105        * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
4106        computations and clean up.
4107
4108        * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
4109        internal copy of metrics.
4110
41112005-07-12  Werner Lemberg  <wl@gnu.org>
4112
4113        * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
4114        Reported by Xerxes.
4115
41162005-07-04  Werner Lemberg  <wl@gnu.org>
4117
4118        * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
4119        Reported by Brett Hutley.
4120
41212005-06-30  David Turner  <david@freetype.org>
4122
4123        * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
4124        Removing compiler warnings (Visual C++ /W4).
4125
4126
4127        Implement a work-around for broken C preprocessor in Visual C++ (it
4128        has been confirmed by the MS developers that it is indeed a bug
4129        which won't be fixed in the very near future).
4130
4131        * Jamfile (FT2_COMPONENTS): Include otvalid (again).
4132
4133        * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
4134        (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
4135        avoid argument expansion by argument prescan.
4136        Append `Func' to all affected macros and change them to take just a
4137        single argument.  Example: `AttachList' is renamed to
4138        `AttachListFunc'.
4139
4140        * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
4141        src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
4142        affected by the changes to OTV_NESTx and modify them to take just a
4143        single argument.
4144
41452005-06-20  Chia I Wu  <b90201047@ntu.edu.tw>
4146
4147        * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
4148        ft_glyphslot_grid_fit_metrics.
4149
4150        * src/truetype/ttgload.c (compute_glyph_metrics): Use
4151        ft_glyphslot_grid_fit_metrics.
4152
4153        * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
4154        (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
4155        ft_glyphslot_grid_fit_metrics.
4156        FT_Outline_Get_CBox is called twice.
4157
4158        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
4159        reasonable values when emboldening outline glyphs.  The theoretic
4160        ones are unrealistic.
4161
41622005-06-16  Chia I Wu  <b90201047@ntu.edu.tw>
4163
4164        * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
4165        halved.
4166
4167        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
4168        strength.
4169        Don't increase slot->advance.y.
4170
41712005-06-16  Werner Lemberg  <wl@gnu.org>
4172
4173        * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
4174        (FREETYPE_PATCH): Set to 0.
4175
4176        * builds/unix/configure.ac (version_info): Set to 9:9:3.
4177        Currently, we are still binary compatible.
4178
4179        * builds/win32/visualc/index.html,
4180        builds/win32/visualc/freetype.dsp,
4181        builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
4182
4183        * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
4184        s/2.1.9/2.1.10/.
4185
4186        * docs/CHANGES, docs/VERSION.DLL: Updated.
4187
4188        * ChangeLog: Split off older entries into...
4189        * ChangeLog.20, ChangeLog.21: These new files.
4190
41912005-06-15  Kirill Smelkov  <kirr@mns.spb.ru>
4192
4193        The next release will be 2.2.0, so don't worry about source code
4194        backwards compatibility.
4195
4196        * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
4197        FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
4198        FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
4199        include/freetype/ftrender.h (FT_Glyph_TransformFunc,
4200        FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
4201        parameters with `const' where appropriate.
4202
42032005-06-15  Chia I Wu  <b90201047@ntu.edu.tw>
4204
4205        * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
4206        to make glyphs centered vertically.
4207
4208        * src/truetype/ttgload.c (compute_glyph_metrics): Compute
4209        vertBearingY to make glyphs centered vertically.
4210        Fix some bugs in vertical metrics:
4211
4212          . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
4213            units.
4214          . As we use the glyph's cbox to calculate the top bearing now
4215            there iss no need to adjust `top'.
4216
42172005-06-15  Werner Lemberg  <wl@gnu.org>
4218
4219        * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
4220        in sync with OTV_OPTIONAL_OFFSET.  Reported by YAMATO Masatake.
4221
42222005-06-13  Werner Lemberg  <wl@gnu.org>
4223
4224        * docs/release: Update.
4225
4226----------------------------------------------------------------------------
4227
4228Copyright 2005, 2006, 2007 by
4229David Turner, Robert Wilhelm, and Werner Lemberg.
4230
4231This file is part of the FreeType project, and may only be used, modified,
4232and distributed under the terms of the FreeType project license,
4233LICENSE.TXT.  By continuing to use, modify, or distribute this file you
4234indicate that you have read the license and understand and accept it
4235fully.
4236
4237
4238Local Variables:
4239version-control: never
4240coding: utf-8
4241End:
Note: See TracBrowser for help on using the repository browser.