source: trunk/poppler/freetype-2.2.1/ChangeLog @ 150

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

update freetype to 2.2.1

File size: 99.9 KB
Line 
12006-05-12  Werner Lemberg  <wl@gnu.org>
2
3
4        * Version 2.2.1 released.
5        ===============++========
6
7
8        Tag sources with `VER-2-2-1'.
9
102006-05-12  Werner Lemberg  <wl@gnu.org>
11
12        * src/tools/docmaker/sources.py (re_source_keywords): Add word
13        boundary markers.
14        * src/tools/docmaker/content.py (re_field): Allow `.' in field names
15        (but not at the beginning or end).
16        * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset.
17        (block_footer): Split into...
18        (block_footer_start, block_footer_middle, block_footer_end): This to
19        add navigation buttons.
20        (HtmlFormatter::block_exit): Updated.
21
22        * include/freetype/*: Many minor documentation improvements (adding
23        links, spelling errors, etc.).
24
252006-05-11  Werner Lemberg  <wl@gnu.org>
26
27        * README: Minor updates.
28
29        * include/freetype/*: s/scale/scaling value/ where appropriate.
30        Many other minor documentation improvements.
31
32        * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
33        trailing punctuation.
34        * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add
35        warning message for undefined cross references.
36        Update handling of re_italic and re_bold.
37
382006-05-11  Masatake YAMATO  <jet@gyve.org>
39 
40        * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
41        read system call returns -1.
42        Remove a redundant parenthesis.
43
442006-05-10  Werner Lemberg  <wl@gnu.org>
45
46        * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if
47        given an empty, un-mmap()able file.  Reported and suggested fix in
48        Savannah bug #16555.
49
50        * builds/freetype.mk (refdoc): Write-protect the `docmaker'
51        directory to suppress generation of .pyc files.  According to the
52        Python docs there isn't a more elegant solution (currently).
53
54        * builds/toplevel.mk (dist): New target which builds .tar.gz,
55        .tar.bz2, and .zip files.  Note that the version number is still
56        hard-coded.
57        (do-dist): Sub-target of `dist'.
58        (CONFIG_GUESS, CONFIG_SUB): New variables.
59        (.PHONY): Updated.
60
612006-05-09  Rajeev Pahuja  <rpahuja@esri.com>
62
63        * builds/win32/visualc/freetype.sln,
64        builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
65        VS.NET 2003
66        Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
67
68        * builds/win32/visualc/index.html: Updated.
69
702006-05-07  Werner Lemberg  <wl@gnu.org>
71
72        Put version information into the configure script.  Reported by Paul
73        Watson <pwatson@redlinepy.com>.
74
75        * builds/unix/configure.ac: Renamed to...
76        * builds/unix/configure.raw: This which now serves (with appropriate
77        modifications) as a template for configure.ac.
78
79        * version.sed: New script.
80
81        * autogen.sh: Generate configure.ac from configure.raw, using
82        FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
83
842006-05-06  Werner Lemberg  <wl@gnu.org>
85
86        * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
87
88        * builds/unix/configure.ac (version_info): Set to 9:10:3.
89
90        * builds/win32/visualc/index.html,
91        builds/win32/visualc/freetype.dsp,
92        builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc),
93        Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/.
94        Minor updates.
95
96        * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
97        Updated.
98
99        * builds/unix/install-sh: Updated from `texinfo' CVS module at
100        savannah.gnu.org.
101
102        * devel/ftoption.h: Synchronize with
103        include/freetype/config/ftoption.h.
104
1052006-05-04  Werner Lemberg  <wl@gnu.org>
106
107        * src/lzw/ftlzw2.c: Renamed to...
108        * src/lzw/ftlzw.c: This.
109
110        * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
111
112        * builds/mac/FreeType.m68k_cfm.make.txt,
113        builds/mac/FreeType.m68k_far.make.txt,
114        builds/mac/FreeType.ppc_carbon.make.txt,
115        builds/mac/FreeType.ppc_classic.make.txt: Updated.
116
1172006-05-03  David Turner  <david@freetype.org>
118
119        Allow compilation again with C++ compilers.
120
121        * include/freetype/internal/ftmemory.h (FT_ASSIGNP,
122        FT_ASSIGNP_INNER): New macros which do the actual assignment, and
123        which exist in two variants (for C and C++).
124        Update callers accordingly.
125
1262006-05-03  Werner Lemberg  <wl@gnu.org>
127
128        * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
129
1302006-05-02  Werner Lemberg  <wl@gnu.org>
131
132        * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
133        (FT_ALLOC): Remove redundant redefinition.
134
135        * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
136        `-Wstrict-prototypes'.
137
138        * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
139
140        * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
141        Remove `extern'.
142
1432006-05-02  David Turner  <david@freetype.org>
144
145        Update the memory management functions and macros to safely deal
146        with array size buffer overflows.  This corresponds to attemps to
147        allocate arrays that are too large.  For an example, consider the
148        following code:
149
150          count = read_uint32_from_file(); array = malloc( sizeof ( Item ) *
151          count ); for ( nn = 0; nn < count; nn++ )
152            array[nn] = read_item_from_file();
153
154        If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the
155        multiplication overflows, and the array allocated os smaller than
156        the data read from the file.  In this case, the heap will be
157        trashed, and this can be used as a denial-of-service attack, or make
158        the engine crash later.
159
160        The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new
161        count is no larger than `FT_INT_MAX/item_size', otherwise a new
162        error code `FT_Err_Array_Too_Large' will be returned.
163
164        Note that the memory debugger now works again when FT_DEBUG_MEMORY
165        is defined.  FT_STRICT_ALIASING has disappeared; the corresponding
166        code is now the default.
167
168
169        * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
170        Don't use `extern'.
171
172        * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
173        code.
174
175        * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER)
176        [FT_DEBUG_MEMORY]: New macro.
177        (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also.
178        (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug,
179        ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
180        (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC,
181        FT_MEM_FREE): Redefine.
182        (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY,
183        FT_MEM_QRENEW_ARRAY): Redefine.
184        (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT,
185        FT_MEM_QREALLOC_MULT): New macros.  Update callers where
186        appropriate.
187        (FT_MEM_SET_ERROR): Slightly redefine.
188
189
190        * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno)
191        [FT_DEBUG_MEMORY]: New global variables, replacing...
192        (FT_MemTable_Rec) [FT_DEBUG_MEMORY]: Remove `filename' and
193        `line_no'.  Update all callers.
194        (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer
195        overflow.
196        (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
197        ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
198
199        * src/base/ftmac.c (read_lwfn): Catch integer overflow.
200        * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto.
201        * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING.
202        (ft_mem_alloc. ft_mem_realloc, ft_mem_qrealloc): Rewrite.
203
204
205        * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT,
206        FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the
207        place where the frames were entered, extracted, exited or released
208        in the memory debugger.
209
210        * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
211        Call ft_mem_free.
212        (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
213        (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
214
2152006-04-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
216
217        * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos
218        initialization, remove extra cast to copy to pfb_lenpos.  This fixes
219        parsing of PFB fonts with MacOS resource fork (bug introduced
220        2003-09-11).  Patch provided by Huib-Jan Imbens <ft@imbens.nl>.
221
2222006-04-29  Werner Lemberg  <wl@gnu.org>
223
224        Further C library abstraction.  Based on a patch from
225        msn2@bidyut.com.
226
227        * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE,
228        ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc,
229        ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for
230        C library functions.  Update all users accordingly (and catch some
231        other places where the C library function was used instead of the
232        wrapper functions).
233
234        * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
235        * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
236        include malloc.h.
237
238
239        * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
240        and forthcoming versions.
241
2422006-04-28  Werner Lemberg  <wl@gnu.org>
243
244        * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
245        obsolete.
246
2472006-04-27  yi luo  <luoyi.ly@gmail.com>
248
249        * builds/win32/visualc/freetype.vcproj: Updated.
250
2512006-04-26  David Turner  <david@freetype.org>
252
253
254        * Version 2.2 released.
255        =======================
256
257
258        Tag sources with `VER-2-2-0'.
259
2602006-04-26  Werner Lemberg  <wl@gnu.org>
261
262        * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but
263        FT_PtrDiff for `delta'.  Reported by Céline PILLET
264        <Celine.Pillet@Tagginfo.com>.
265
2662006-04-21  David Turner  <david@freetype.org>
267
268        * include/freetype/ftincrem.h: Documentation updates.
269        (FT_Incremental_Interface): New typedef.
270
271        * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
272        Documentation updates.
273
274        * include/freetype/freetype.h: Documentation update.
275        (FT_HAS_FAST_GLYPHS): Always set to 0.
276
277        * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
278        Take an FT_Library argument instead of FT_Memory.
279
280        * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
281
2822006-04-13  David Turner  <david@freetype.org>
283
284        * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
285        superfluous code in the auto-fitter's loader.
286
2872006-04-05  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
288
289        * builds/amiga/makefile, builds/amiga/makefile.os4,
290        builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
291
2922006-04-03  luoyi  <luoyi.ly@gmail.com>
293
294        * builds/compiler/intelc.mk (TE): New variable.
295        (ANSIFLAGS): Updated.
296
2972006-04-03  Werner Lemberg  <wl@gnu.org>
298
299        * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
300        (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
301        (.PHONY): Updated.
302
303        * configure.ac: Minor fixes to improve --help output.
304
305
306        * docs/PROBLEMS: New file.
307
3082006-04-01  David Turner  <david@freetype.org>
309
310        * docs/CHANGES: Updated.
311
312        * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
313        Update documentation comments.
314
3152006-04-01  Werner Lemberg  <wl@gnu.org>
316
317        * builds/unix/install.mk (uninstall): Don't handle `cache'
318        directory which no longer exists.
319
3202006-03-29  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
321
322        * src/psaux/psconv.c: Changed some variables which are expected to
323        hold negative values from `char' to `FT_Char' to allow building with
324        a compiler where `char' is unsigned by default.
325
3262006-03-27  David Turner  <david@freetype.org>
327
328        * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that
329        causes some programs to go into an infinite loop when dealing with
330        fonts that don't have a properly sorted kerning sub-table.
331
3322006-03-26  Werner Lemberg  <wl@gnu.org>
333
334        * src/bdf/bdflib.c (ERRMSG4): New macro.
335        (_bdf_parse_glyphs): Handle invalid BBX values.
336
337        * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
338        macro.
339
3402006-03-23  Werner Lemberg  <wl@gnu.org>
341
342        * docs/CHANGES: Updated.
343
344
345        * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal
346        padding between table elements.
347        (html_header_1): The `DOCTYPE' comment must be in uppercase.
348        (make_html_para): Convert `...' quotations into real left and
349        right single quotes.
350        Use `para_header' and `para_footer'.
351
352        * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
353        also.
354
3552006-03-23  David Turner <david@freetype.org>
356
357        Add FT_Get_SubGlyph_Info API to retrieve subglyph data.  Note that
358        we do not expose the FT_SubGlyphRec structure.
359
360        * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
361        to...
362        * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
363        (FT_Get_SybGlyph_Info): New declaration.
364
365        * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
366
367
368        * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
369        rsb_delta correctly in edge cases.
370
3712006-03-22  Werner Lemberg  <wl@gnu.org>
372
373        * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
374        [!FTC_INLINE]: Compile conditionally.
375        * src/cache/ftccache.h: Updated.
376
377        * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily,
378        FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New):
379        s/FT_EXPORT/FT_LOCAL/.
380        (FTC_GCache_Init, FTC_GCache_Done): Commented out.
381        (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally.
382        s/FT_EXPORT/FT_LOCAL/.
383        * src/cache/ftcglyph.h: Updated.
384
385        * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New):
386        s/FT_EXPORT/FT_LOCAL/.
387        (FTC_INode_Weight): Commented out.
388        * src/cache/ftcimage.h: Updated.
389
390        * src/cache/ftmanag.c (FTC_Manager_Compress,
391        FTC_Manager_RegisterCache, FTC_Manager_FlushN):
392        s/FT_EXPORT/FT_LOCAL/.
393        * src/cache/ftmanag.h: Updated.
394
395        * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New,
396        FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/.
397        (FTC_SNode_Weight): Commented out.
398        * src/cache/ftcsbits.h: Updated.
399
4002006-03-22  Werner Lemberg  <wl@gnu.org>
401
402        * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
403        Remove, unused.
404
405        * src/cache/ftccmap.h: Remove, unused.
406
407        * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
408
4092006-03-21  Zhe Su  <james.su@gmail.com>
410
411        * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
412        algorithm.
413
4142006-03-21  Werner Lemberg  <wl@gnu.org>
415
416        * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
417
418        * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
419
420        * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
421        to `FT_UInt'.
422        Check range of `glyph_index'.
423        * src/cff/cffgload.h: Updated.
424
425
426        * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
427        correctly.
428
429
430        * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
431        README: s/2.1.10/2.2/.
432
4332006-03-21  David Turner  <david@freetype.org>
434
435        * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
436        that crashes the auto-hinter (introduced by previous patch).
437
4382006-03-20  Werner Lemberg  <wl@gnu.org>
439
440        * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
441        (FREETYPE_H): Updated.
442
443        * src/cache/rules.mk (CACHE_H_DIR): Remove.
444        (CACHE_DRV_H): Updated.
445
4462006-03-20  David Turner  <david@freetype.org>
447
448        * include/freetype/cache/ftccache.h,
449        include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h
450        include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h
451        include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h:
452        Move to...
453
454        * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h,
455        src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h,
456        src/cache/ftcmru.h: This new location.
457        Update declarations according to the changes in the corresponding
458        source files.
459
460        Note that these files are not used by FreeType clients; all public
461        APIs of the cache module have been already moved to
462        `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H
463        macros resolve to it.
464
465        Reason for the move is to allow modifications of the internals
466        without interferences with rogue clients.  Note that there are no
467        known clients that access the cache internals at the moment.
468
469        * builds/unix/install.mk (install): Don't install headers from
470        $(CACHE_H).
471        Remove `freetype/cache' from the target directory.
472
473        * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H,
474        FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H,
475        FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H,
476        FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to
477        FT_CACHE_H.
478
479        * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h,
480        src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h,
481        src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c,
482        src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c,
483        src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros
484        but include the headers directly (which are now in `src/cache').
485
486        * src/cache/ftccache.c:  Don't use the FT_CACHE_INTERNAL_XXX_H
487        macros but include the headers directly.
488        (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode,
489        FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF.
490
491        * src/cache/ftccache.c:  Don't use the FT_CACHE_INTERNAL_XXX_H
492        macros but include the headers directly.
493        (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove,
494        FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done,
495        FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection):
496        Declare as FT_LOCAL_DEF.
497        (FTC_MruListFind, FTC_MruList_Lookup) [!FTC_INLINE]: Compile
498        conditionally.
499        Declare as FT_LOCAL_DEF.
500
501
502        * builds/win32/visualc/freetype.dsp: Update project file, add
503        missing base source files (ftstroke.c, ftxf86.c, etc.).
504
505
506        * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c,
507        src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c,
508        src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c,
509        src/type1/t1objs.c: Remove compiler warnings when building with
510        Visual C++ 6 and /W4.
511
512        * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
513        hinting for italic/oblique fonts.
514
515
516
517        * src/truetype/ttpload.c, src/truetype/ttpload.h
518        (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
519
5202006-03-06  David Turner  <david@freetype.org>
521
522        * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
523        Mozilla/FireFox print preview in Ubuntu Hoary.
524
5252006-02-28  Chia-I Wu  <b90201047@ntu.edu.tw>
526
527        * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
528        return error when size == 0.
529
5302006-02-28  Chia-I Wu  <b90201047@ntu.edu.tw>
531
532        * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse
533        order so that type42 module is removed before truetype module.  This
534        avoids double free in some occasions.
535
5362006-02-28  David Turner  <david@freetype.org>
537
538        * Release candidate VER-2-2-0-RC4.
539        ----------------------------------
540
541        * docs/CHANGES: Documentation updates.
542
5432006-02-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
544
545        * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to
546        build ftvalid in ft2demos.  It works as dummy ABI if gxvalid is not
547        built.
548
5492006-02-27  Werner Lemberg  <wl@gnu.org>
550
551        * include/freetype/cache/ftccache.h
552        [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
553        ftc_node_done.
554
555        * src/cache/ftccache.c (ftc_node_destroy)
556        [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF.  This
557        should now fix all possible compilation options.
558
5592006-02-27  David Turner  <david@freetype.org>
560
561        * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc,
562        ft_mem_qrealloc): Return an error if a negative size is passed in
563        parameters.
564
565        * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
566        it needs to be exported for rogue clients.
567
568        * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems
569        with malformed fonts which have an odd number of blue values (these
570        are broken according to the specs).
571
572        * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
573        (T1_Open_Face): Modify the loaders to force even-ness of
574        `num_blue_values'.
575
576        (cff_index_access_element): Ignore invalid entries in index files.
577
5782006-02-27  Chia-I Wu  <b90201047@ntu.edu.tw>
579
580        * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
581        or height is 0.
582
5832006-02-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
584
585        * builds/mac/FreeType.m68k_cfm.make.txt,
586        builds/mac/FreeType.m68k_far.make.txt,
587        builds/mac/FreeType.ppc_carbon.make.txt,
588        builds/mac/FreeType.ppc_classic.make.txt: Update to new header
589        inclusion introduced on 2006-02-16.
590
5912006-02-27  Chia-I Wu  <b90201047@ntu.edu.tw>
592
593        * src/base/ftobjs.c (GRID_FIT_METRICS): New macro.
594        (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]:
595        Re-enable glyph metrics grid-fitting.  It is now done in the base
596        layer.
597        (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and
598        height are not too small or too large, just like we were doing in
599        2.1.10.
600
601        * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
602        are not scaled.
603
6042006-02-26  Werner Lemberg  <wl@gnu.org>
605
606        * docs/release: Minor additions and clarifications.
607
608        * docs/CHANGES: Updated to reflect many fixes for backwards
609        compatibility.  Still incomplete.
610
6112006-02-26  David Turner  <david@freetype.org>
612
613        * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable
614        conservative rounding of metrics to avoid breaking clients like
615        Pango (see http://bugzilla.gnome.org/show_bug.cgi?id=327852).
616
6172006-02-25  Werner Lemberg  <wl@gnu.org>
618
619        * devel/ftoption.h: Synchronize with
620        include/freetype/config/ftoption.h.
621
622        * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
623
6242006-02-25  David Turner  <david@freetype.org>
625
626        Fix compiler warnings as well as C++ compilation problems.
627        Add missing prototypes.
628
629        * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c,
630        src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c,
631        src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c
632        src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts,
633        initialize variables, and decorate functions with FT_CALLBACK_DEF,
634        etc., to fix compiler warnings (and C++ compiling errors).
635
636        * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
637        gcc.
638
639        * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
640        FT_INTERNAL_STREAM_H.
641
642        * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
643
644        * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
645
646        * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
647        define for C++.
648
649        * include/freetype/internal/services/svotval.h: Don't include
650        FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
651
652        * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
653
654        * src/gzip/ftgzip.c: Include FT_GZIP_H.
655
656        * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
657
658        * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
659
6602006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>
661
662        * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
663        ft_contour_enclosed, ft_outline_get_orientation): Commented out.  We
664        have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized.
665        (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'.
666
6672006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>
668
669        * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
670        documentation.
671
672        * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap),
673        src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make
674        sure a glyph slot owns its bitmap.  It is also marked experimental
675        and due to change.
676        (FT_GlyphSlot_Embolden): Undo the last change.  It turns out that
677        rendering the outline confuses some applications.
678
6792006-02-24  David Turner  <david@freetype.org>
680
681        * Release candidate VER-2-2-0-RC3.
682        ----------------------------------
683
684        * src/cache/ftcbasic.c: Correct compatibility hack bug.
685
6862006-02-24  Chia-I Wu  <b90201047@ntu.edu.tw>
687
688        * include/freetype/freetype.h (FT_Size_RequestRec): Change the type
689        of `width' and `height' to `FT_Long'.
690        (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics):
691        New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales
692        directly.
693
6942006-02-23  David Turner  <david@freetype.org>
695
696        Two BDF patches from Debian libfreetype6 for 2.1.10.
697
698        * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
699        glyphs.
700        Fix a problem with large encodings.
701
702
703        Fix binary compatibility issues for gnustep-back (GNUstep backend
704        module) which still crashes under Sarge.
705
706        * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec,
707        FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data
708        structures and enumerations.
709        (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New
710        compatibility code.
711
7122006-02-23  Chia-I Wu  <b90201047@ntu.edu.tw>
713
714        * include/freetype/ftoutln.h (enum FT_Orientation): New value
715        `FT_ORIENTATION_NONE'.
716
717        * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
718        ft_contour_enclosed, ft_outline_get_orientation): Another version of
719        `FT_Outline_Get_Orientation'.  This version differs from the public
720        one in that each part (contour not enclosed in another contour) of the
721        outline is checked for orientation.
722        (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
723
724        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
725        use bitmap's embolden routine when the outline one failed.
726
7272006-02-22  Chia-I Wu  <b90201047@ntu.edu.tw>
728
729        * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
730        compatibility.
731
732        * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
733
734        * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
735        tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
736        loading.  (Only tested with bit aligned sbit with x_pos == 0.)
737
738        * src/truetype/ttpload.c (tt_face_load_hdmx,
739        tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
740        actually used.
741
7422006-02-21  David Turner  <david@freetype.org>
743
744        Add a new API named FT_Get_TrueType_Engine_Type to determine whether
745        we have a patented, unpatented, or unimplemented TrueType bytecode
746        interpreter.
747
748        The FT_Get_Module_Flags API was removed consequently.
749
750        * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
751        Replaced with...
752        (FT_Get_TrueType_Engine_Type): This.
753        (FT_TrueTypeEngineType): New enumeration.
754
755        * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
756        New macro.
757
758        * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
759        (FT_Module_Get_Flags): Removed.  Replaced with...
760        (FT_Get_TrueType_Engine_Type): This.
761
762        * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
763        (tt_service_truetype_engine): New service structure.
764        (tt_services): Register it.
765
766        * include/freetype/internal/services/svtteng.h: New file.
767
768
769        * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
770        embedded bitmaps from being correctly listed and used.
771
772
773        * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
774        if FT_CONFIG_OPTION_OLD_INTERNALS is used.  The is necessary because
775        libXfont is directly accessing the HMTX data, unfortunately.
776        Fix some compiler warnings.
777        (tt_face_get_metrics): Ditto.
778
779
780        * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
781        character advances.
782
7832006-02-20  David Turner  <david@freetype.org>
784
785        Support binary compatibility with the X.Org server's Xfont library.
786        Note that this change unfortunately prevents memory optimizations
787        for the embedded bitmap loader.
788
789        * include/freetype/internal/sfnt.h (SFNT_Interface): Move
790        `set_sbit_strike' and `load_sbit_metrics' fields to the location of
791        version 2.1.8.
792
793        * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
794        FT_Size_Request.
795        (sfnt_interface): Updated.
796
797        * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
798        ttsbit0.c.
799        (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
800
801        * src/sfnt/ttsbit.h: Updated.
802
8032006-02-17  David Turner  <david@freetype.org>
804
805        * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
806        functions anymore.  This ensures that all FT_BASE internal functions
807        are available for dynamic linking.
808
809        * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
810        FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
811        FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
812        FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
813        ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
814        FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
815        [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
816        cache sub-system.  We try to recognize old legacy signatures with a
817        gross hack (hope it works).
818
8192006-02-17  Werner Lemberg  <wl@gnu.org>
820
821        * devel/ftoption.h: Synchronize with
822        include/freetype/config/ftoption.h.
823
8242006-02-16  David Turner  <david@freetype.org>
825
826        Massive changes to the internals to respect the internal object
827        layouts and exported functions of FreeType 2.1.7.  Note that the
828        cache sub-system cannot be fully retrofitted, unfortunately.
829
830        * include/freetype/config/ftoption.h
831        (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
832
833        * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
834        include/freetype/cache/ftccmap.h,
835        include/freetype/internal/ftcalc.h,
836        include/freetype/internal/ftdriver.h,
837        include/freetype/internal/ftmemory.h,
838        include/freetype/internal/ftobjs.h,
839        include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
840        include/freetype/internal/t1types.h,
841        include/freetype/internal/tttypes.h, src/base/ftcalc.c,
842        src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
843        src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
844        src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
845        src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
846        src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
847        src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
848        Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
849        structures.
850
851        Move newly added structure elements to the end of the affected
852        structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
853        defined) to assure binary compatibility with older FreeType
854        versions.
855        Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
856        functions:
857
858          ft_stub_set_char_sizes
859          ft_stub_set_pixel_sizes
860
861        Rename the following internal functions to provide the old function
862        names as stubs:
863
864          FT_Alloc          -> ft_mem_alloc
865          FT_QAlloc         -> ft_mem_qalloc
866          FT_Realloc        -> ft_mem_realloc
867          FT_QRealloc       -> ft_mem_qrealloc
868          FT_Free           -> ft_mem_free
869          FT_Alloc_Debug    -> ft_mem_alloc_debug
870          FT_QAlloc_Debug   -> ft_mem_qalloc_debug
871          FT_Realloc_Debug  -> ft_mem_realloc_debug
872          FT_QRealloc_Debug -> ft_mem_qrealloc_debug
873          FT_Free_Debug     -> ft_mem_free_debug
874
8752006-02-15  Chia-I Wu  <b90201047@ntu.edu.tw>
876
877        * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
878        unused `max_points' and `max_contours'.
879
880        * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
881        (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
882
883        * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
884        `max_components'.
885
886        * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
887        `loadSize' and `loadStack'.
888
889        * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
890        src/sfnt/ttload.c (tt_face_load_maxp): Update.
891
892        * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
893        (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
894        compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
895        defined.
896
897        * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
898        possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
899        (finally!)
900
901
902        For most OpenType tables, `tt_face_load_xxxx' simply loads the table
903        and `face->root' is set later in `sfnt_load_face'.  Here, we try to
904        make this work for _all_ tables.  Also improve tracing messages.
905
906        * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
907        src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
908        then exit.  Error handling or setting face->root is done later in
909        `sfnt_load_face'.
910
911        * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
912        Mac bitmap-only fonts are not scalable.
913        Check that `face->header.Units_Per_EM' is not zero.
914        (LOAD_, LOADM_): Emit pretty trace messages.
915
916        * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
917        from `eblc'.
918
919        * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
920        (load_format_20, load_format_25, tt_face_get_ps_name): Use
921        face->max_profile.numGlyphs, instead of face->root.num_glyphs.
922
9232006-02-14  Werner Lemberg  <wl@gnu.org>
924
925        * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
926        documentation that negative strength values are possible.
927        Give an example call.
928
929        * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
930        documentation of `outline' field.
931
932        * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
933        * src/sfnt/sfdriver.c: Include ttmtx.h.
934
935        * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
936
9372006-02-14  Chia-I Wu  <b90201047@ntu.edu.tw>
938
939        * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
940
9412006-02-14  Chia-I Wu  <b90201047@ntu.edu.tw>
942
943        * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
944        return error if table is missing.
945        Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
946
947        * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
948        tables.  The last change makes Mac bitmap-only font not load and
949        this fixes it.
950
951        * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
952        error when FT_CONFIG_OPTION_INCREMENTAL is defined.
953
9542006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
955
956        Clean up the SFNT_Interface.  In this final pass, `load_hmtx' is
957        splitted from `load_hhea'.
958
959        * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
960        src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
961
962        * src/sfnt/sfobjs.c (sfnt_load_face): Update.
963
9642006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
965
966        * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
967        code...
968
9692006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
970
971        Clean up the SFNT_Interface.  In this pass, we want to treat the
972        font directory (offset table and table directory) as a normal table
973        like the others.  This also means that TTCs are no longer recognized
974        there but in `init_face'.
975
976        * include/freetype/internal/sfnt.h (SFNT_Interface),
977        src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
978        combined and renamed to `load_font_dir'.
979
980        * src/sfnt/ttload.h, src/sfnt/ttload.c:
981        s/sfnt_dir_check/check_table_dir/.
982        `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
983        `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
984        and renamed to `tt_face_load_font_dir'.
985
986        * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
987
9882006-02-13  Chia-I Wu  <b90201047@ntu.edu.tw>
989
990        Clean up the SFNT_Interface.  Table loading functions are now named
991        after the tables' tags; `hdmx' is TrueType-specific and thus the
992        code is moved to the truetype module; `get_metrics' is moved here
993        from the truetype module so that the code can be shared with the cff
994        module.
995
996        This pass involves no real changes.  That is, the code is moved
997        verbatim mostly.  The only exception is the return value of
998        `tt_face_get_metrics'.
999
1000        * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
1001        src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
1002        src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
1003        src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
1004
1005        * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files.  Metrics-related
1006        tables' loading and parsing code is moved to here.
1007        Move `tt_face_get_metrics' here from the truetype module.  The
1008        return value is changed from `void' to `FT_Error'.
1009
1010        * include/freetype/internal/fttrace.h: New trace: ttmtx.
1011
1012        * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
1013        parsing code is moved here.
1014        New function `tt_face_load_prep' splitted from `tt_face_load_fpgm'.
1015        `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
1016
1017        * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
1018
1019        * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
1020
10212006-02-11  Chia-I Wu  <b90201047@ntu.edu.tw>
1022
1023        * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
1024
1025        * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
1026        AF_LatinMetricsRec as the dummy metrics because we cast the metrics
1027        to it later in `af_latin_hints_link_segments'.
1028
10292006-02-11  Chia-I Wu  <b90201047@ntu.edu.tw>
1030
1031        * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
1032        to enable autofit CJK script support.  (#define'd by default.)
1033
1034        * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
1035
1036        * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
1037        that `edge_distance_threshold' is always set.
1038        (af_latin_hints_link_segments): Potential divide-by-zero bug.
1039        Use latin constant in the scoring formula.
1040
1041        * src/autofit/afcjk.c: Minor updates due to the above three changes.
1042
1043        * docs/TODO, docs/CHANGES: Updated.
1044
10452006-02-09  Chia-I Wu  <b90201047@ntu.edu.tw>
1046
1047        Introduce experimental autofit CJK module based on akito's autohint
1048        patch.  You need to #define AF_MOD_CJK in afcjk.c to enable it.
1049
1050        * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
1051        src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
1052        Add CJK module based on akito's autohint patch.
1053
1054        * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
1055        overlap length of the segments.
1056        (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
1057
1058        * src/autofit/aflatin.h (af_latin_metrics_init_widths),
1059        src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
1060        `FT_LOCAL'.
1061        Use the character given by the caller.
1062        (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
1063        the thresholds.
1064
1065        * src/autofit/afloader.c (af_loader_load_g): Respect
1066        AF_SCALER_FLAG_NO_ADVANCE.
1067
10682006-02-09  Werner Lemberg  <wl@gnu.org>
1069
1070        * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
1071
10722006-02-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1073
1074        * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
1075        broken CIDFont.  Reported by Taek Kwan(TK) Lee (see ft-devel
1076        2005-11-02).
1077
10782006-02-08  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1079
1080        * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
1081        option on UNIX platform.  It has been broken since 2006-01-11.
1082
10832006-02-01  Werner Lemberg  <wl@gnu.org>
1084
1085        * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
1086        * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
1087
1088        * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
1089        change from 2006-01-31).
1090        (TOP_DIR, OBJ_DIR): Update.
1091
1092        * builds/unix/install.mk (install): Fix path for ftmodule.h.
1093
1094        * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
1095        `?=' where appropriate.
1096
1097        * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
1098        builds/win32/w32-dev.mk (TOP_DIR): Removed.  Defined elsewhere.
1099
11002006-01-31  Werner Lemberg  <wl@gnu.org>
1101
1102        Implement new, simplified module selection.  With GNU make it is now
1103        sufficient to modify a single file, `modules.cfg', to control the
1104        inclusion of modules and base extension files.
1105
1106        This change also fixes the creation of ftmodule.h; it now depends on
1107        `modules.cfg' and thus is rebuilt only if necessary.
1108
1109        Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
1110        default location.
1111
1112        * modules.cfg: New file.
1113
1114        * builds/freetype.mk: Don't include `modules.mk'.
1115        Include all `rules.mk' files as specified in `modules.cfg'.
1116        (FTOPTION_FLAG, FTOPTION_H): New variables.
1117        (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
1118        Add FTOPTION_FLAG.
1119        ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
1120        (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
1121        (INCLUDES): Add DEVEL_DIR.
1122        (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
1123        OBJ_M, OBJ_S): Use `:=', not `='.
1124        (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
1125        (distclean): Add remove_ftmodule_h.
1126
1127        * builds/modules.mk: (MODULE_LIST): Removed.
1128        (make_module_list, clean_module_list): Replace targets
1129        with...
1130        (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
1131        variables.  Reason for the change is that it is not possible to have
1132        a phony prerequisite which is run only if the target file must be
1133        rebuilt (phony prerequisites act like subroutines and are *always*
1134        executed).  We only want to rebuild `ftmodule.h' if `module.cfg' is
1135        changed.
1136        Update all callers.
1137        ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
1138        `modules.cfg'.
1139
1140        * builds/toplevel.mk: Rewrite and simplify module handling.
1141        (MODULES_CFG, FTMODULE_H): New variables.
1142        Include MODULES_CFG.
1143        (MODULES): New variable to include all `module.mk' and `rules.mk'
1144        files.  We no longer use make's `wildcard' function for this.
1145
1146        * Makefile (USE_MODULES): Remove.  Update all users.
1147        (OBJ_DIR): Define it here.
1148
1149        * src/*/module.mk: Change
1150
1151            make_module_list: foo
1152            foo: ...
1153
1154        to
1155
1156            FTMODULE_H_COMMANDS += FOO
1157            define FOO
1158            ...
1159            endef
1160
1161        in all files.  `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
1162
1163        * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
1164
1165        * builds/unix/detect.mk (setup): Always execute `configure' script.
1166        (have_mk): Rename to...
1167        (have_Makefile): This.
1168        Don't use `strip' function.
1169
1170        * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
1171        defined.
1172        (have_mk): Don't use `strip' function.
1173        Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
1174        accordingly).
1175
1176        * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
1177
1178        * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
1179        builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
1180        BUILD_DIR but DEVEL_DIR for development header files.
1181
1182        * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
1183        builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
1184        (TOP_DIR, OBJ_DIR): Removed.  Defined elsewhere.
1185
1186        * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
1187        builds/win32/win32-def.mk (OBJ_DIR): Removed.  Defined elsewhere.
1188
1189        * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
1190        development header files.
1191        Don't define PLATFORM.
1192
1193        * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
1194        Update snippet taken from autoconf's m4sh.m4 to current CVS version.
1195        Be more verbose.
1196
1197        * include/freetype/config/ftmodule.h: Add comments -- this file is
1198        no longer used if FreeType is built with GNU make.
1199
1200        * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
1201        docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
1202        Other minor updates.
1203
1204        * modules.txt: Removed.  Contents included in `modules.cfg'.
1205
1206
1207        * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
1208        FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
1209
1210        * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
1211        FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
1212        [FT_STRICT_ALIASING]: Implement.
1213
12142006-01-31  Chia-I Wu  <b90201047@ntu.edu.tw>
1215
1216        * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
1217        (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
1218        src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
1219        units_per_EM, ascender - descender).
1220
12212006-01-31  Chia-I Wu  <b90201047@ntu.edu.tw>
1222
1223        * include/freetype/internal/t1types.h (AFM_FontInfo),
1224        src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
1225        `Ascender', and `Descender' from an AFM.
1226
1227        * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
1228
1229        * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
1230        be changed after file attachment.
1231
12322006-01-28  Werner Lemberg  <wl@gnu.org>
1233
1234        * src/*/module.mk (.PHONY): Add.
1235
12362006-01-27  Werner Lemberg  <wl@gnu.org>
1237
1238        * README, docs/FTL.TXT: Fix email address for bug reports.
1239        Other minor formatting.
1240
1241        * devel/ftoption.h: Synchronize with
1242        include/freetype/config/ftoption.h.
1243
1244        * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
1245        (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
1246        whitespace.
1247
1248        * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
1249        renderer classes.
1250
12512006-01-27  David Turner  <david@freetype.org>
1252
1253        * builds/unix/configure.ac: Fix build problem on Cygwin.
1254
1255        * builds/unix/install.mk (install): Don't install the internal
1256        headers, and remove existing ones if found in the target install
1257        directory.
1258
1259        * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
1260        if the warp hinter isn't active (it shouldn't, still experimental).
1261
1262        * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
1263        and `otvalid' from the list of modules that are linked statically
1264        to a given FreeType library.  Functionality has been moved to the
1265        `ftvalid' CVS module.
1266
1267        Note also that current Make-based build system still compiles the
1268        modules though.
1269
1270        * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
1271        which controls the definitions of the memory management functions to
1272        avoid warnings with recent versions of GCC.  This macro is only here
1273        to be disabled, in case we detect problems with the new scheme.
1274
1275        NOTE: Disable macro to use the memory debugger -- this will be fixed
1276              later!
1277
1278        * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
1279        FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
1280        New versions.
1281
1282
1283        * builds/win32/visualc/freetype.dsp: Updating project file to
1284        define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
1285        compilation.
1286
1287
1288        * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
1289        macro FT2_BUILD_LIBRARY when compiling the library.
1290
1291        * include/freetype/config/ftheader.h: Remove inclusions of internal
1292        headers except if the macro FT2_BUILD_LIBRARY is defined.
1293
1294
1295        * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
1296        AFM_FontInfo): Move structure declarations to...
1297        * include/freetype/internal/t1types.h: This file.
1298
1299
1300        * (many files): Fix compiler warnings.
1301        Various minor reorganizations.
1302
1303
1304        * src/cff/cffload.c (cff_font_done): Don't free static array
1305        `subfonts'.
1306
1307        * src/otvalid/otvcommn.c (otv_ClassDef_validate),
1308        src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
1309
1310
1311        Get rid of writable static variables (i.e., the string table) in
1312        afmparse, and fix compilation in FT2_MULTI mode.
1313
1314        * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
1315        (AFM_MAX_ARGUMENTS): Define...
1316        * src/psaux/afmparse.h: Here.
1317        * src/psaux/Jamfile (_sources): Add afmparse.
1318
1319        * src/psaux/psconv.c: Include psconv.h.
1320
1321        * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
1322        FT_INTERNAL_POSTSCRIPT_AUX_H.
1323        * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
1324
13252006-01-23  Chia-I Wu  <b90201047@ntu.edu.tw>
1326
1327        * include/freetype/freetype.h (FT_Select_Size): Rename the second
1328        argument from `idx' to `strike_index'.
1329        (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
1330        this enum.
1331
1332        * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
1333        FT_REQUEST_HEIGHT): New macros to get the width and height of a
1334        request, in fractional pixels.
1335
1336        * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
1337        FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
1338        FT_Request_Metrics): New base functions to set the font metrics.  They
1339        were part of FT_Select_Size/FT_Request_Size and are made independent
1340        functions so that metrics are not set again and again.
1341
1342        * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
1343        only when driver's size_select/size_request is NULL.  That is, drivers
1344        should set the metrics themselves.
1345        (FT_Match_Size): Round before matching.  This was what we did and it
1346        does cause some problems without rounding.
1347
1348        * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
1349        (tt_size_select): Set the font metrics.
1350        s/index/strike_index/.
1351        The scaled metrics are always preferred over strikes' metrics, even
1352        when some strike is selected.  This is done because the strikes'
1353        metrics are not reliable, e.g., the sign of the descender is wrong for
1354        some fonts.
1355
1356        * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
1357        (tt_size_request): Set the font metrics.
1358        Call cff_size_select/tt_size_select when some strike is matched.
1359
1360        * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
1361        src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
1362        src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
1363        Set the font metrics.
1364        s/index/strike_index/.
1365
1366        * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
1367        files were committed.  Just a catch-up.
1368        (PS_Conv_ToFixed): Remove the `goto'.
1369        (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
1370
1371        * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
1372        tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
1373        (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
1374        advertised metrics in `available_sizes' are different from those
1375        actually used.
1376
13772006-01-23  Chia-I Wu  <b90201047@ntu.edu.tw>
1378
1379        * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
1380        AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
1381
13822006-01-22  Werner Lemberg  <wl@gnu.org>
1383
1384        * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1385        `texinfo' CVS module at savannah.gnu.org.
1386
13872006-01-21  Werner Lemberg  <wl@gnu.org>
1388
1389        * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
1390
1391        * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
1392        to avoid compiler warnings.
1393
1394        * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
1395        shadowing variable declarations.
1396        Fix warning parameters and replace printf with AF_LOG.
1397        (af_warper_compute): Remove unused variable.
1398
13992006-01-20  David Turner  <david@freetype.org>
1400
1401        Adding experimental implementation of `warp hinting' (new hinting
1402        algorithm for gray-level and LCD rendering).  It is disabled by
1403        default, you need to #define AF_USE_WARPER in aftypes.h.
1404
1405        * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
1406        New function.
1407        * src/autofit/afhints.h: Updated.
1408
1409        * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
1410        (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
1411        FT_RENDER_MODE_NORMAL if an LCD mode is selected.
1412        (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
1413        appropriately.
1414
1415        * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
1416        Isolate code for adjusting metrics.
1417
1418        * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
1419        default).
1420
1421        * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
1422
1423        * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
1424
1425        * src/autofit/Jamfile (_sources): Add afwarp.
1426
14272006-01-19  David Turner  <david@freetype.org>
1428
1429        * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
1430        that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
1431
14322006-01-19  Brian Weed  <bw@imaginengine.com>
1433
1434        * builds/win32/visualc/freetype.dsp: Updated.
1435
14362006-01-17  Werner Lemberg  <wl@gnu.org>
1437
1438        Use pscmap service in CFF module.
1439
1440        * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
1441        (cff_sid_to_glyph_name): New function.
1442        (cff_cmap_unicode_init, cff_cmap_unicode_done,
1443        cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
1444        service.
1445        (cff_cmap_unicode_class_rec): Updated.
1446        * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
1447
1448
1449        * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
1450        return value.
1451
1452
1453        * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
1454        to avoid compiler warnings regarding type-punning.
1455
14562006-01-16  Chia-I Wu  <b90201047@ntu.edu.tw>
1457
1458        * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
1459        implement an AFM parser.
1460
1461        * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
1462        conversion functions (e.g., PS real number => FT_Fixed) for the
1463        PS_Parser and AFM_Parser.  Some of the functions are taken, with
1464        some modifications, from the file psobjs.c.
1465
1466        * src/psaux/psobjs.c: Use functions from psconv.c.
1467
1468        * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
1469        `AFM_Parser' to the `psaux' service.
1470
1471        * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
1472        those new files.
1473
1474        * src/tools/test_afm.c: A test program for AFM parser.
1475
1476        * include/freetype/internal/services/svkern.h: New file providing a
1477        `Kerning' service.  It is currently only used to get the track
1478        kerning information.
1479
1480        * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
1481        macro.
1482
1483        * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
1484        src/type1/t1afm.h: Update to use the AFM parser.
1485        Provide the `Kerning' service.
1486
1487        * include/freetype/freetype.h, src/base/ftobjs.c: New API
1488        `FT_Get_Track_Kerning'.
1489
14902006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>
1491
1492        * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
1493        src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
1494        src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
1495        s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
1496
1497        * docs/CHANGES: Mention that vertical metrics are synthesized for
1498        fonts not having this info.
1499
15002006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>
1501
1502        * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
1503        src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
1504        vertical metrics.
1505
1506        * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
1507        src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
1508        which are monotone.
1509
1510        * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
1511        formattings in vertical metrics faking.  There is still room for
1512        improvements (and so does the CFF module).
1513
15142006-01-15  Chia-I Wu  <b90201047@ntu.edu.tw>
1515
1516        * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
1517        (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
1518        the linear advance fields as they are only used by the outline
1519        glyphs.
1520
1521        * include/freetype/freetype.h: Documentation updates and
1522        clarifications.
1523        The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
1524        change need be made to the code.
1525
1526        * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
1527        decide whether to use the auto-hinter according to documentation.
1528        There should to be no real difference.
1529        Some checks (e.g., is text height positve?) after the glyph is
1530        loaded.
1531        (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
1532        Be careful that scales won't be negative.
1533
15342006-01-14  Chia-I Wu  <b90201047@ntu.edu.tw>
1535
1536        * docs/CHANGES: Mention the size selection change.
1537
1538        * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
1539        src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
1540        src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
1541        matching for requests of type NOMINAL and REAL_DIM.
1542
1543        * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
1544        `pixel_height' is used for nominal height.
1545
1546        * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
1547        face is bitmap only and driver doesn't provide `request_size'.  This
1548        is added merely for completion as no driver satisfies the conditions.
1549
15502006-01-13  Chia-I Wu  <b90201047@ntu.edu.tw>
1551
1552        Introduce new size selection interface.
1553
1554        * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
1555        Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
1556        `select_size'.
1557
1558        * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
1559        FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
1560        (FT_Select_Size, FT_Request_Size): API additions to export the new
1561        size selection interface.
1562
1563        * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
1564        `FT_Request_Size'.
1565
1566        * include/freetype/internal/ftobjs.h (FT_Match_Size),
1567        src/base/ftobjs.c (FT_Match_Size): New function to match a size
1568        request against `available_sizes'.  Drivers supporting bitmap strikes
1569        can use this function to implement `request_size'.
1570
1571        * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
1572        src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
1573        src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
1574        src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
1575        Update to new size selection interface.
1576
1577        * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
1578        src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
1579        src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
1580        selection interface.
1581        Make `strike_index' FT_ULong and always defined.
1582        Use `load_strike_metrics' provided by SFNT interface.
1583
15842006-01-13  Chia-I Wu  <b90201047@ntu.edu.tw>
1585
1586        * include/freetype/internal/sfnt.h (SFNT_Interface): New method
1587        `load_strike_metrics' used to load the strike's metrics.
1588
1589        * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
1590        src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
1591
1592        * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
1593
1594        * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
1595        nominal size unless it is obviously incorrect.
1596
1597        * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
1598        FNT driver.
1599
16002006-01-12  Werner Lemberg  <wl@gnu.org>
1601
1602        Prepare use of pscmap service within CFF module.
1603
1604        * include/freetype/internal/services/svpscmap.h: Include
1605        FT_INTERNAL_OBJECTS_H.
1606        (PS_Unicode_Index_Func): Removed.  Unused.
1607        (PS_Macintosh_Name_Func): Renamed to...
1608        (PS_Macintosh_NameFunc): This.
1609        Update all callers.
1610        (PS_Adobe_Std_Strings_Func): Renamed to...
1611        (PS_Adobe_Std_StringsFunc): This.
1612        Update all callers.
1613        (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
1614        Add `cmap' member.
1615        Update all callers.
1616        (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
1617        Update all callers.
1618        (PS_Glyph_NameFunc): New typedef.
1619        (PS_Unicodes_InitFunc): Change arguments to expect a function
1620        and generic data pointer which returns a glyph name from a given
1621        index.
1622
1623        * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
1624        ps_unicodes_char_next, pscmaps_interface): Updated.
1625
1626        * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
1627
1628        * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
1629        (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
1630
1631        * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
1632        (t1_cmap_unicode_init, t1_cmap_unicode_done,
1633        t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
1634        t1_cmap_unicode_class_rec): Updated.
1635
1636        * src/type42/t42types.h (T42_FaceRec): Updated.
1637
16382006-01-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1639
1640        * include/freetype/ftmac.h: Add declaration of new functions
1641        FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
1642        were introduced by the jumbo patch on  2006-01-11.
1643
16442006-01-11  Werner Lemberg  <wl@gnu.org>
1645
1646        Fix Savannah bug #15056 and use pscmap service in psaux module.
1647
1648        * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
1649        FT_UInt32 for `glyph_index'.
1650        (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
1651        (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
1652        (PS_Unicodes_CharNextFunc): Make second argument a pointer to
1653        FT_UInt32.
1654
1655        * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
1656        (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
1657        variant glyph (this is, it has non-leading `.' in its name).
1658        (compare_uni_maps): Sort base glyphs before variant glyphs.
1659        (ps_unicodes_init): Use FT_String for `glyph_names' argument.
1660        Reallocate only if number of used entries is much smaller.
1661        Updated to handle variant glyphs.
1662        (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
1663        over variant glyphs.
1664        Simplify code.
1665
1666        * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
1667        (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
1668        t1_cmap_unicode_char_next): Use pscmap service.
1669        (t1_cmap_unicode_done): Updated.
1670
1671        * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
1672        (T1_CMapUnicode): Use PS_Unicodes structure.
1673
16742006-01-11  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1675
1676        Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
1677        Intel, as reported by Sean McBride <sean@rogue-research.com> on
1678        2005-08-24.
1679
1680        * src/base/ftmac.c: Heavy change to build without deprecated Carbon
1681        functions on Tiger.
1682
1683        * builds/unix/configure.ac: Add options and autochecks for Carbon
1684        functions availabilities, for MacOS X.
1685
1686        * builds/mac/ascii2mpw.py: Add converter for character `\305'.
1687        * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
1688        macros to avoid unavailable functions.
1689        ftmac.c must be compiled without `-strict ansi', because it disables
1690        cpp macro to use ToolBox system call.
1691
1692        * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
1693        macros to avoid unavailable functions.
1694
1695        * builds/mac/README: Detailed notes on function availabilities.
1696
1697        * docs/CHANGES: Notes about (possible) incompatibilities.
1698
16992006-01-08  Werner Lemberg  <wl@gnu.org>
1700
1701        * docs/CHANGES: Updated.
1702
17032006-01-08  Huw D M Davies  <h.davies1@physics.ox.ac.uk>
1704
1705        * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
1706        declaration.
1707
1708        * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
1709
17102006-01-07  Werner Lemberg  <wl@gnu.org>
1711
1712        * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
1713        `bitmaps'.  Reported by Yu Lei <yulei0@gmail.com>.
1714
1715        * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
1716        Reported by Niels Boldt <nielsboldt@gmail.com>.
1717
17182005-12-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1719
1720        * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
1721        MPW compiler.
1722
17232005-12-23  David Turner  <david@freetype.org>
1724
1725        * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
1726        refdoc' works correctly to generate the API reference in
1727        `docs/reference'.
1728
1729        * src/tools/docmaker/tohtml.py (print_html_field,
1730        print_html_field_list): Update to output nicer fields lists in the
1731        API reference.
1732
1733        * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
1734        forces auto-hinting.
1735
1736        * freetype/freetype.h: Updating the documentation for
1737        FT_LOAD_TARGET_XXX and FT_Render_Mode values.
1738
17392005-12-23  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1740
1741        * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
1742        in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
1743        unsupported formats (fbit, NFNT).  The number of available faces are
1744        passed via face->num_faces.  If bitmap faces are embedded in sfnt
1745        resource, face->num_fixed_size is correctly set.  In public API,
1746        FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
1747        FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
1748
1749        * doc/CHANGES: Mention the changes.
1750
17512005-12-17  Chia-I Wu  <b90201047@ntu.edu.tw>
1752
1753        * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
1754        correctly (so that memory debug system won't panic).
1755
17562005-12-16  Chia-I Wu  <b90201047@ntu.edu.tw>
1757
1758        * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
1759        src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
1760
1761        * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
1762
1763        * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
1764        (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
1765        src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
1766
1767        * doc/CHANGES: Mention the changes.
1768
17692005-12-13  David Turner  <david@freetype.org>
1770
1771        Change the implementation of the LIGHT hinting mode to completely
1772        disable horizontal hinting.  This is an experimental effort to
1773        integrate David Chester's latest patch without affecting the other
1774        hinting modes as well.
1775
1776        Note that this doesn't force auto-hinting for all fonts, however.
1777
1778        * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
1779        scaler_fiags here but...
1780        (af_glyph_hints_rescale): Here.
1781
1782        * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1783        hinting for `light' hinting mode.
1784
1785
1786        * Jamfile: Small fix to ensure that ftexport.sym is placed into the
1787        same location as other generated objects (i.e., within the `objs'
1788        directory of the current directory).
1789
1790
1791        Add support for an embedded `BDF ' table within SFNT-based bitmap
1792        font files.  This is used to store atoms & properties from the
1793        original BDF fonts that were used to generate the font file.
1794
1795        The feature is controlled by TT_CONFIG_OPTION_BDF within
1796        `ftoption.h' and is used to implement FT_Get_BDF_Property for these
1797        font files.
1798
1799        At the moment, this is still experimental, the BDF table format
1800        isn't cast into stone yet.
1801
1802        * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
1803        macro.
1804
1805        * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
1806
1807        * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
1808        [TT_CONFIG_OPTION_BDF]: New structure.
1809        (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
1810
1811        * include/freetype/ttags.h (TTAG_BDF): New macro.
1812
1813        * src/sfnt/Jamfile (_sources): Add ttbdf.
1814
1815        * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
1816
1817        * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
1818        FT_SERVICE_BDF_H.
1819        (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
1820        (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
1821        (sfnt_servives) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
1822
1823        * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
1824
1825        * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
1826        (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
1827        tt_face_free_bdf_props.
1828
1829        * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
1830
18312005-12-07  Werner Lemberg  <wl@gnu.org>
1832
1833        * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
1834        * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
1835
18362005-12-06  Chia-I Wu  <b90201047@ntu.edu.tw>
1837
1838        * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
1839        initialized twice.
1840        size->strike_index is not initialized.
1841
18422005-12-02  Taek Kwan(TK) Lee  <taeklee@gmail.com>
1843
1844        * src/type42/t42objs.c (T42_Face_Init): Replace call to
1845        FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
1846
18472005-11-30  Werner Lemberg  <wl@gnu.org>
1848
1849        * docs/CHANGES: Document ftdump's `-v' option.
1850        Document latest charmap code changes.
1851
1852        * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
1853        s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
1854
18552005-11-30  Chia-I Wu  <b90201047@ntu.edu.tw>
1856
1857        * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
1858        tt_cmap12_char_map_binary): Fix compiler warnings.
1859
18602005-11-29  Chia-I Wu  <b90201047@ntu.edu.tw>
1861
1862        Major update to distinguish between unsorted and overlapping
1863        segments for cmap format 4.  For overlapping but sorted segments,
1864        which is previously considered unsorted, we still use binary search.
1865
1866        * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
1867        (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
1868
1869        * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
1870        (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
1871        (tt_cmap4_reset): Removed.
1872        (tt_cmap4_init): Updated accordingly.
1873        (tt_cmap4_next): Updated accordingly.
1874        Take care of overlapping segments.
1875        (tt_cmap4_validate): Make sure the subtable is large enough.
1876        Do not check glyph_ids because some fonts set the length wrongly.
1877        Also, if all segments have offset 0, glyph_ids is always invalid.
1878        It does not cause any problem so far only because the check misses
1879        equality.
1880        Distinguish between unsorted and overlapping segments.
1881        (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
1882        to do `charcode => glyph index' by linear/binary search.
1883        (tt_cmap4_char_index, tt_cmap4_char_next): Use
1884        tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
1885        (tt_face_build_cmaps): Treat the return value of validator as flags
1886        for cmap.
1887
18882005-11-29  Chia-I Wu  <b90201047@ntu.edu.tw>
1889
1890        * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
1891        New structures and functions for fast `next char'.
1892        (tt_cmap12_char_map_binary): New function to do `charcode => glyph
1893        index' by binary search.
1894        (tt_cmap12_char_index, tt_cmap12_char_next): Use
1895        tt_cmap12_char_map_binary.
1896        (tt_face_build_cmaps): Check table and offset correctly (equality is
1897        missing).
1898
18992005-11-15  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
1900
1901        * builds/amiga/smakefile: Adjusted the compiler options
1902        to the current sources, now really builds the gxvalid, gzip
1903        and psnames modules.
1904
1905        * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
1906        in the file cache was off by one byte which could cause false
1907        errors in font files.
1908
19092005-11-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1910
1911        * builds/mac/FreeType.m68k_far.make.txt,
1912        builds/mac/FreeType.m68k_cfm.make.txt,
1913        builds/mac/FreeType.ppc_classic.make.txt,
1914        builds/mac/FreeType.ppc_carbon.make.txt:
1915        Updated for MPW to build all available modules.
1916
19172005-11-21  HÃ¥vard Wall  <haavardw@ifi.uio.no>
1918
1919        * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
1920        memory leak.
1921
19222005-11-21  Werner Lemberg  <wl@gnu.org>
1923
1924        * src/sfnt/ttload.c (sfnt_init): Add tracing message.
1925
19262005-11-21  Chia-I Wu  <b90201047@ntu.edu.tw>
1927
1928        * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
1929        added twice to image_start if image_format was 2 or 5.
1930
19312005-11-21  Chia-I Wu  <b90201047@ntu.edu.tw>
1932
1933        * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
1934        before loading the table directory.
1935
1936        * src/sfnt/ttload.c (tt_face_load_sfnt_header,
1937        tt_face_load_directory): Delay sfnt_dir_check from
1938        tt_face_load_sfnt_header to tt_face_load_directory.
1939
19402005-11-20  Chia-I Wu  <b90201047@ntu.edu.tw>
1941
1942        * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
1943        error code.
1944        (sfnt_init): New function to fill in face->ttc_header.  A non-TTC font
1945        is synthesized into a TTC font with one offset table.
1946        (tt_face_load_sfnt_header): Use sfnt_init.
1947        Fix an invalid access if the font is TTC and face_index is -1.
1948
19492005-11-18  Werner Lemberg  <wl@gnu.org>
1950
1951        * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
1952        of metrics instead of aborting.  Patch suggested by Derek Noonburg.
1953
1954        * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
1955        (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
1956        the glyph properly if no hinter is available.
1957
1958        * docs/CHANGES: Mention scaling bug.
1959
19602005-11-18  susuzki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1961
1962        * include/freetype/ftgxval.h, src/base/ftgxval.c
1963        (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
1964        buffers allocated by gxvalid module.
1965        * include/freetype/ftotval.h, src/base/ftotval.c
1966        (FT_OpenType_Free): New function to free buffer allocated by
1967        otvalid module.
1968
19692005-11-18  Chia-I Wu  <b90201047@ntu.edu.tw>
1970
1971        * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
1972        FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
1973        FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
1974        s/FT_EXPORT/FT_BASE/.
1975
19762005-11-17  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
1977
1978        * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
1979        FT_Trace_Get_Name, FT_Message, FT_Panic),
1980        builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
1981        FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
1982
19832005-11-17  Detlef WÃŒrkner  <TetiSoft@apg.lahn.de>
1984
1985        * builds/amiga/makefile, builds/amiga/makefile.os4,
1986        builds/amiga/smakefile,
1987        builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
1988        build files (added support for the gxvalid module).
1989
19902005-11-17  Werner Lemberg  <wl@gnu.org>
1991
1992        Add vertical metrics support to OpenType CFF outlines.  Based on a
1993        patch from Mike Moening <MikeM@RetekSolutions.com>.
1994
1995        * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
1996        (cff_slot_load): Use cff_face_get_vertical_metrics.
1997
1998        * docs/CHANGES: Updated.
1999
20002005-11-17  Chia-I Wu  <b90201047@ntu.edu.tw>
2001
2002        * src/base/ftcalc.c (FT_MulTo64): Commented out.
2003
2004        * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
2005        src/base/ftcalc.c (FT_SqrtFixed),
2006        include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
2007        FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
2008        (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
2009        include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
2010        include/freetype/internal/ftstream.h (FT_Stream_Open),
2011        src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
2012        s/FT_EXPORT/FT_BASE/.
2013
2014        * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
2015        too.
2016
20172005-11-15  David Turner  <david@freetype.org>
2018
2019        * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
2020        invalid computations, resulting in very weird bugs in TrueType
2021        bytecode hinted fonts.
2022
2023        * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
2024        structure copy each time.
2025
20262005-11-11  Werner Lemberg  <wl@gnu.org>
2027
2028        * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
2029        (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
2030
2031        * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
2032        (FT_Div64by32, FT_Sqrt32): Commented out.  Unused.
2033
2034        * include/freetype/internal/ftcalc.h (SQRT_32): Removed.  Unused.
2035        (FT_Sqrt32): Commented out.  Unused.
2036
2037        * include/freetype/cache/ftccache.h:
2038        s/ftc_node_destroy/FTC_Node_Destroy/.
2039
2040        * src/cache/ftccback.h (ftc_node_destroy): New declaration.
2041
2042        * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
2043        (FTC_Node_Destroy): New exported wrapper function for
2044        ftc_node_destroy.
2045
2046        * src/cache/ftcmanag.c: Include ftccback.c.
2047
20482005-11-10  Werner Lemberg  <wl@gnu.org>
2049
2050        * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
2051        Comment out.  Unused.
2052
2053        * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
2054
20552005-11-10  Christian Biesinger  <cbiesinger@web.de>
2056
2057        * builds/beos/beos.mk: Call beos-def.mk before anything else to
2058        define the separator.
2059
2060        * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
2061
20622005-11-07  Werner Lemberg  <wl@gnu.org>
2063
2064        * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
2065        table available'.  From Sergey Tolstov <stolstov@esri.com>.
2066
20672005-11-03  Ville SyrjÀlÀ  <syrjala@sci.fi>
2068
2069        * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
2070
20712005-11-02  Werner Lemberg  <wl@gnu.org>
2072
2073        Make compiling instructions in docs/CUSTOMIZE work again.
2074
2075        * builds/unix/unix-cc.in (CPPFLAGS): New variable.
2076        (CFLAGS): Don't include @CPPFLAGS@.
2077        * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
2078
20792005-10-28  David Turner  <david@freetype.org>
2080
2081        Update build system to support the generation of a list of exported
2082        symbols or Windows .DEF files by parsing the public headers with the
2083        `apinames' tool located in src/tools/apinames.c.
2084
2085        Only tested on Unix at the moment.  On Windows, the .DEF file is
2086        generated but isn't used yet to generate a DLL.
2087
2088        * builds/exports.mk: New file.
2089
2090        * builds/freetype.mk: Include exports.mk.
2091        (dll): New target.
2092        (clean_project_dos): Fix rule.
2093
2094        * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
2095        builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
2096        variables for controlling executable extensions.
2097
2098        * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
2099        builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
2100        builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
2101        builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
2102        builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
2103        APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
2104
2105        * Jamfile (GenExportSymbols): Updated.
2106
2107
2108        * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
2109        [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
2110        FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
2111
2112
2113        * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
2114        (FT_MulFix): Performance optimizations.
2115
2116
2117        * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
2118        FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
2119        checking points and contours.  Update callers to use
2120        FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
2121        at profile-detected hot-spots.
2122
2123        * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
2124        to 0 to not call `AdjustPoints' every time.
2125
2126
2127        * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
2128        FT_Angle_Diff.
2129
2130        * src/autofit/afhints.c (af_direction_compute): Re-implement.
2131        (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
2132        AF_ANGLE_DIFF to speed up the detection of inflexions.
2133
2134
2135        * src/tools/apinames.c: Include <string.h>.
2136        (OutputFormat): New enumeration.
2137        (names_dump): Add two parameters to control output format and DLL
2138        name.
2139        (names_dump_windef): Removed.  Code folded into `names_dump'.
2140        (read_header_file): Use isalnum, not isalpha.  Otherwise function
2141        names with digits aren't read correctly.
2142        (usage): Updated.
2143        (main): New option `-o' to control output file name.
2144        New option `-d' to indicate DLL file name.
2145        Extend `-w' flag to handle Borland and Watcom compilers and linkers.
2146
21472005-10-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2148
2149        * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
2150        ftlib.prj is unmaintained and incompatible with current tree.
2151        freetype.mak is unrecoverably broken.
2152
2153        * builds/mac/ftlib.prj.xml: Added.
2154        Generated by Metrowerks CodeWarrior 9.0.
2155
2156        * builds/mac/FreeType.m68k_far.make.txt,
2157        builds/mac/FreeType.m68k_cfm.make.txt,
2158        builds/mac/FreeType.ppc_classic.make.txt,
2159        builds/mac/FreeType.ppc_carbon.make.txt: Added.
2160        Skeleton files of MPW makefiles.
2161
2162        * builds/mac/ascii2mpw.py: Added.
2163        Python script to make MPW makefile from skeleton.
2164
2165        * builds/mac/README: Updated.
2166        Almost rewritten to use new files.
2167
21682005-10-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2169
2170        * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
2171        variables.  Advised by David Turner, Masatake YAMATO, Sean McBride,
2172        and George Williams.
2173
21742005-10-27  Werner Lemberg  <wl@gnu.org>
2175
2176        * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
2177        Obsolete.
2178
21792005-10-25  Werner Lemberg  <wl@gnu.org>
2180
2181        * src/sfnt/sfdriver.c (sfnt_interface): Move out
2182        `tt_face_get_kerning' from a #ifdef clause.  Reported by Tony J.
2183        Ibbs <tibs@sj.co.uk>.
2184
21852005-10-23  Werner Lemberg  <wl@gnu.org>
2186
2187        * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
2188        C++.
2189
21902005-10-21  David Turner  <david@freetype.org>
2191
2192        * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
2193        Another realloc memory counting bug fix.
2194
2195        * src/tools/Jamfile: Add missing file.
2196
2197        * src/lzw/Jamfile: Fix incorrect source file reference.
2198
21992005-10-20  David Turner  <david@freetype.org>
2200
2201        * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
2202        ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
2203        to better account for memory reallocations.
2204
2205        * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
2206        src/lzw/rules.mk: First version of LZW loader re-implementation.
2207        Apparently, this saves about 330 KB of heap memory when loading
2208        timR24.pcf.Z.
2209
22102005-10-20  Chia-I Wu  <b90201047@ntu.edu.tw>
2211
2212        * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
2213        src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
2214        (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
2215        FT_EXPORT/FT_EXPORT_DEF tagging.
2216
22172005-10-19  Chia-I Wu  <b90201047@ntu.edu.tw>
2218
2219        * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
2220        be invalid when FT_LOAD_NO_SCALE is set.
2221
22222005-10-17  David Turner  <david@freetype.org>
2223
2224        * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
2225        FT_New_Size if we are opening a face with face_index < 0 (which is
2226        only used for testing the format).
2227
2228        * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
2229        Remove compiler warning.
2230
22312005-10-16  David Turner  <david@freetype.org>
2232
2233        * src/tools/apinames.c: Add new tool to extract public API function
2234        names from header files.
2235
22362005-10-05  Werner Lemberg  <wl@gnu.org>
2237
2238        Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
2239        a hinting engine of its own.
2240
2241        * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
2242
2243        * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
2244        (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
2245        [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
2246        (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
2247        [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
2248
2249        * docs/CHANGES: Document it.
2250
22512005-09-27  Werner Lemberg  <wl@gnu.org>
2252
2253        * builds/unix/freetype2.m4: Add license exception so that the file
2254        can be used in any other autoconf script.
2255
22562005-09-26  David Turner  <david@freetype.org>
2257
2258        * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
2259        computation of the `vertical' flag, causing ugly things in LCD mode
2260        and others.
2261
22622005-09-23  David Turner  <david@freetype.org>
2263
2264        * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
2265        prevented internal hint mode bitflags from being computed correctly.
2266
2267        * src/base/Jamfile: Adding src/base/ftgxval.c.
2268
2269        * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
2270        src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
2271        src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
2272        src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2273        src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2274        src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
2275        src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2276        src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
2277        src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
2278        src/truetype/ttgload.c: Remove _many_ compiler warnings when
2279        compiling with Visual C++ at maximum level (/W4).
2280
2281        * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
2282        implementation with one using lookup tables.  This simple thing
2283        speeds up glyph loading by 18%, according to ftbench!
2284
2285        * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
2286        `get_sfnt' and `load_sfnt' module interfaces.
2287
22882005-09-22  Werner Lemberg  <wl@gnu.org>
2289
2290        * docs/CHANGES: Mention SING Glyphlet support.
2291
22922005-09-22  David Turner  <david@freetype.org>
2293
2294        * src/base/Jamfile: Disable compilation of ftgxval module
2295        temporarily.
2296
22972005-09-19  David Somers  <dsomers@omz13.com>
2298
2299        * freetype2/src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
2300        font to have no `head' table if tables `SING' and `META' are
2301        present; this is to support `SING Glyphlet'.
2302
2303        `SING Glyphlet' is an extension to OpenType developed by Adobe
2304        primarily to facilitate adding supplemental glyphs to an OpenType
2305        font (with emphasis on, but not necessariy limited to, gaiji to a
2306        CJK font).  A SING Glyphlet Font is an OpenType font that contains
2307        the outline(s), either in a `glyf' or `CFF' table, for a glyph;
2308        `cmap', `BASE', and `GSUB' tables are present with the same format
2309        and functionaliy as a regular OpenType font; there are no `name',
2310        `head', `OS/2', and `post' tables; there are two new tables, `SING'
2311        which contains details about the glyphlet, and `META' which contains
2312        metadata.
2313
2314        Further information on the SING Glyphlet format can be found at:
2315
2316          http://www.adobe.com/products/indesign/sing_gaiji.html
2317
2318        * freetype2/include/freetype/ttags.h (TTAG_SING, TTAG_META): New
2319        macros for the OpenType tables `SING' and `META'.  These two tables
2320        are used in SING Glyphlet Format fonts.
2321
23222005-09-09  Werner Lemberg  <wl@gnu.org>
2323
2324        * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
2325        FT_FACE_FLAG_KERNING which has been commented out erroneously.
2326
2327        * docs/CHANGES: Document it.
2328
23292005-09-05  Werner Lemberg  <wl@gnu.org>
2330
2331        Fixes for `make multi' and using C++ compiler.
2332
2333        * gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
2334        gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
2335        gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
2336        (gxv_compare_ranges): Make it static.
2337        (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
2338        gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
2339        gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
2340        trace messages.
2341        (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
2342        (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2343        GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
2344        gxvcommn.h.
2345
2346        * gxvalid/gxvcommn.h: Add prototypes for
2347        gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
2348        gxv_XStateTable_validate, gxv_array_getlimits_byte,
2349        gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
2350        gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
2351        gxv_odtect_validate.
2352        (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2353        GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
2354        gxvcommn.c.
2355
2356        * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
2357        gxv_bsln_parts_fmt1_validate): Improve trace messages.
2358
2359        * gxvalid/gxvfeat.c: Split off predefined registry stuff to...
2360        * gxvalid/gxvfeat.h: New file.
2361
2362        * gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
2363        message.
2364
2365        * gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
2366        (gxv_kern_subtable_fmt1_valueTable_load,
2367        gxv_kern_subtable_fmt1_subtable_setup,
2368        gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
2369        (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
2370        Improve trace message.
2371        (gxv_kern_validate_generic): Fix C++ compiler error.
2372        Improve trace message.
2373        (gxv_kern_validate_classic): Fix C++ compiler error.
2374
2375        * gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
2376        with FT_LOCAL_DEF.
2377
2378        * gxvalid/gxvmort1.c
2379        (gxv_mort_subtable_type1_substitutionTable_load,
2380        gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
2381        (gxv_mort_subtable_type1_substTable_validate): Improve trace
2382        message.
2383        (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2384
2385        * gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
2386        gxv_mort_subtable_type2_subtable_setup,
2387        gxv_mort_subtable_type2_ligActionOffset_validate,
2388        gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
2389        errors.
2390        (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2391
2392        * gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
2393        with FT_LOCAL_DEF.
2394
2395        * gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
2396        gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
2397        errors.
2398        (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2399
2400        * gxvalid/gxvmort.c: Include gxvfeat.h.
2401        (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
2402        Declare with FT_LOCAL_DEF.
2403        (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
2404        messages.
2405
2406        * gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
2407
2408        * gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
2409        with FT_LOCAL_DEF.
2410
2411        * gxvalid/gxvmorx1.c
2412        (gxv_morx_subtable_type1_substitutionTable_load,
2413        gxv_morx_subtable_type1_subtable_setup,
2414        gxv_morx_subtable_type1_entry_validate,
2415        gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
2416        compiler errors.
2417        (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2418
2419        * gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
2420        gxv_morx_subtable_type2_subtable_setup,
2421        gxv_morx_subtable_type2_ligActionIndex_validate,
2422        gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
2423        errors.
2424        (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2425        Fix typo.
2426
2427        * gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
2428        with FT_LOCAL_DEF.
2429
2430        * gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
2431        gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
2432        (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2433
2434        * gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
2435        gxv_morx_validate): Improve trace message.
2436
2437        * gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
2438        warnings.
2439        (gxv_opbd_validate): Improve trace message.
2440
2441        * gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
2442        appropriate.
2443        (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
2444        message.
2445
2446        * gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
2447        parameter.  Update all callers.
2448        (gxv_trak_validate): Improve trace message.
2449
2450        * rules.mk (GXV_DRV_H): Add gxvfeat.h.
2451
24522005-09-01  Werner Lemberg  <wl@gnu.org>
2453
2454        * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
2455
2456        * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
2457        src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
2458        typo.
2459
2460        * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2461        src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
2462        src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
2463        messages.
2464        Decorate constants with `U' and `L' where appropriate.
2465        Fix compiler warnings.
2466
24672005-08-31  Werner Lemberg  <wl@gnu.org>
2468
2469        * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
2470
2471        * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
2472
2473        * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
2474
2475        * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
2476        src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
2477        src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2478        src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2479        src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
2480        messages.
2481        Decorate constants with `U' and `L' where appropriate.
2482        Fix compiler warnings.
2483
24842005-08-30  Werner Lemberg  <wl@gnu.org>
2485
2486        * src/gxvalid/README: Revised.
2487        * src/gxvalid/gxvbsln.c: Fix compiler warnings.
2488        * src/gxvalid/gxvcommn.c: Fix compiler warnings.
2489        (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
2490        parameter.  Update all callers.
2491        Improve trace messages.
2492        Some formatting.
2493
24942005-08-29  Werner Lemberg  <wl@gnu.org>
2495
2496        * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
2497        a preliminary section with some explanations about user allocation.
2498
2499        * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
2500        Don't abort if there are no data types, functions, etc., in a
2501        section.
2502        Print synopsis only if we have a data type, function, etc.
2503
2504        * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
2505        docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
2506        docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2507
25082005-08-28  George Williams  <gww@silcom.com>
2509
2510        * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
2511        (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
2512
25132005-08-25  J. Ali Harlow  <ali@avrc.city.ac.uk>
2514
2515        * builds/unix/freetype2.in (CFlags): Add missing directory.
2516
25172005-08-24  Werner Lemberg  <wl@gnu.org>
2518
2519        * docs/CHANGES: Mention gxvalid module.
2520
25212005-08-23  Werner Lemberg  <wl@gnu.org>
2522
2523        * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
2524        render mode properly.  Reported by chris@dokein.co.uk.
2525
25262005-08-23  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2527
2528        Add gxvalid module to validate TrueType GX/AAT tables.
2529
2530        Modifications on existing files:
2531
2532        * Jamfile: Register gxvalid module.
2533        * src/base/Jamfile: Register ftgxval.c.
2534        * src/base/rule.mk: Register ftgxval.c.
2535        * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
2536
2537        * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
2538        to include gxvalid header file.
2539        * include/freetype/config/ftmodule.h: Register gxv_module_class.
2540
2541        * include/freetype/ftchapters.h: Add comment about gx_validation.
2542        * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
2543        to FT_VALIDATE_OTXXX to co-exist with gxvalid.
2544        * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
2545
2546        * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
2547        macro for gxvalid service.
2548        * include/freetype/internal/fttrace.h: Add trace facilities for
2549        gxvalid.
2550
2551        New files on existing directories:
2552
2553        * include/freetype/internal/services/svgxval.h: Registration of
2554        validation service for TrueType GX/AAT and classic kern table.
2555        * include/freetype/ftgxval.h: Public API definition to use gxvalid.
2556        * src/base/ftgxval.c: Public API of gxvalid.
2557
2558        New files under src/gxvalid/:
2559
2560        * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
2561        src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
2562        src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
2563        src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
2564        src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
2565        src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
2566        src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
2567        src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
2568        src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
2569        src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
2570        src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
2571        src/gxvalid/gxvtrak.c: New files, gxvalid body.
2572
25732005-08-21  Werner Lemberg  <wl@gnu.org>
2574
2575        * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
2576        to (0,0) if bit 1 of the `head' table isn't set.  This improves
2577        rendering of buggy fonts.
2578
25792005-08-20  Chia I Wu  <b90201047@ntu.edu.tw>
2580
2581        * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
2582        ttmetrics here.  TrueType fonts with only sbits always have
2583        ttmetrics.valid set to false.
2584
2585        * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
2586        valid before loading outline glyph.
2587
2588        * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
2589
25902005-08-20  Werner Lemberg  <wl@gnu.org>
2591
2592        * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
2593        `hhea' table for SFNT Mac fonts.  Change based on a patch by
2594        mpsuzuki@hiroshima-u.ac.jp.
2595
25962005-08-20  Masatake YAMATO  <jet@gyve.org>
2597
2598        * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
2599        of ft_setjmp.
2600
26012005-08-19  Werner Lemberg  <wl@gnu.org>
2602
2603        * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
2604        warnings.
2605
26062005-08-16  Chia I Wu  <b90201047@ntu.edu.tw>
2607
2608        * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
2609        messages.
2610
26112005-08-16  Chia I Wu  <b90201047@ntu.edu.tw>
2612
2613        * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
2614        TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
2615        with slight changes.
2616        Update all callers.
2617        (TT_New_Context): Now takes TT_Driver argument directly.
2618        Update all callers.
2619
2620        * src/truetype/ttobjs.h (tt_slot_init): New function.
2621        * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
2622        context here.
2623        (tt_slot_init): New function to create extra points for the internal
2624        glyph loader.  We then use it directly, instead of face's glyph
2625        loader, when loading glyph.
2626
2627        * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
2628        glyph slot initialization.
2629        (Load_Glyph): Load flag dependencies are handled here.  Return error
2630        if size is NULL.
2631
2632        * src/truetype/ttgload.c: Heavy cleanup and refactoring.
2633        (org_to_cur): Removed.
2634        (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
2635        (TT_Hint_Glyph): New funcion to hint a zone, prepared by caller.
2636        (TT_Process_Simple_Glyph): s/load/loader/.
2637        Use loader->pp values instead of recalculation.
2638        Use TT_Hint_Glyph.
2639        No need to save/restore loader->stream before and after
2640        TT_Vary_Get_Glyph_Deltas now.
2641        (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
2642        points.
2643        (load_truetype_glyph): Never set exec->glyphSize to 0.  This closes
2644        Savannah bug #13107.
2645        Forget glyph frame before calling TT_Process_Simple_Glyph.
2646        Use TT_LOADER_SET_PP.
2647        Scale all four phantom points.
2648        Split off some functionality to ...
2649        (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
2650        new functions.
2651        (TT_Load_Glyph): Set various fields of `glyph' here, not in
2652        load_truetype_glyph and compute_glyph_metrics.
2653        Split off some functionality to ...
2654        (load_sbit_image, tt_loader_init): These new functions.
2655        (compute_glyph_metrics): Call FT_Outline_Get_CBox.
2656
26572005-08-08  Werner Lemberg  <wl@gnu.org>
2658
2659        * docs/INSTALL.ANY: Updated.
2660
26612005-08-05  Werner Lemberg  <wl@gnu.org>
2662
2663        * src/cff/cffgload.c (cff_builder_close_contour),
2664        src/psaux/psobjs.c (t1_builder_close_contour): Protect against
2665        zero `outline' pointer.
2666
2667        * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
2668        `loader' address.
2669
26702005-08-03  Werner Lemberg  <wl@gnu.org>
2671
2672        * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
2673        Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
2674        to make X work again.
2675
26762005-08-02  Werner Lemberg  <wl@gnu.org>
2677
2678        * src/otvalid/otvcommn.h: Remove dead code.
2679
26802005-07-31  Chia I Wu  <b90201047@ntu.edu.tw>
2681
2682        * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
2683        functions.
2684
2685        * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
2686        functions.
2687        (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
2688        zone.
2689        Move code that runs fpgm to tt_size_run_fpgm.
2690        (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
2691        (tt_glyphzone_new): Allocate right size of arrays.
2692        Set max_points and max_contours properly.
2693
26942005-07-26  Chia I Wu  <b90201047@ntu.edu.tw>
2695
2696        * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
2697        computations and clean up.
2698
2699        * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
2700        internal copy of metrics.
2701
27022005-07-12  Werner Lemberg  <wl@gnu.org>
2703
2704        * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
2705        Reported by Xerxes.
2706
27072005-07-04  Werner Lemberg  <wl@gnu.org>
2708
2709        * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
2710        Reported by Brett Hutley.
2711
27122005-06-30  David Turner  <david@freetype.org>
2713
2714        * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
2715        Removing compiler warnings (Visual C++ /W4).
2716
2717
2718        Implement a work-around for broken C preprocessor in Visual C++ (it
2719        has been confirmed by the MS developers that it is indeed a bug
2720        which won't be fixed in the very near future).
2721
2722        * Jamfile (FT2_COMPONENTS): Include otvalid (again).
2723
2724        * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
2725        (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
2726        avoid argument expansion by argument prescan.
2727        Append `Func' to all affected macros and change them to take just a
2728        single argument.  Example: `AttachList' is renamed to
2729        `AttachListFunc'.
2730
2731        * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
2732        src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
2733        affected by the changes to OTV_NESTx and modify them to take just a
2734        single argument.
2735
27362005-06-20  Chia I Wu  <b90201047@ntu.edu.tw>
2737
2738        * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
2739        ft_glyphslot_grid_fit_metrics.
2740
2741        * src/truetype/ttgload.c (compute_glyph_metrics): Use
2742        ft_glyphslot_grid_fit_metrics.
2743
2744        * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2745        (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
2746        ft_glyphslot_grid_fit_metrics.
2747        FT_Outline_Get_CBox is called twice.
2748
2749        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
2750        reasonable values when emboldening outline glyphs.  The theoretic
2751        ones are unrealistic.
2752
27532005-06-16  Chia I Wu  <b90201047@ntu.edu.tw>
2754
2755        * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
2756        halved.
2757
2758        * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
2759        strength.
2760        Don't increase slot->advance.y.
2761
27622005-06-16  Werner Lemberg  <wl@gnu.org>
2763
2764        * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
2765        (FREETYPE_PATCH): Set to 0.
2766
2767        * builds/unix/configure.ac (version_info): Set to 9:9:3.
2768        Currently, we are still binary compatible.
2769
2770        * builds/win32/visualc/index.html,
2771        builds/win32/visualc/freetype.dsp,
2772        builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
2773
2774        * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
2775        s/2.1.9/2.1.10/.
2776
2777        * docs/CHANGES, docs/VERSION.DLL: Updated.
2778
2779        * ChangeLog: Split off older entries into...
2780        * ChangeLog.20, ChangeLog.21: These new files.
2781
27822005-06-15  Kirill Smelkov  <kirr@mns.spb.ru>
2783
2784        The next release will be 2.2.0, so don't worry about source code
2785        backwards compatibility.
2786
2787        * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
2788        FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
2789        FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
2790        include/freetype/ftrender.h (FT_Glyph_TransformFunc,
2791        FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
2792        parameters with `const' where appropriate.
2793
27942005-06-15  Chia I Wu  <b90201047@ntu.edu.tw>
2795
2796        * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
2797        to make glyphs centered vertically.
2798
2799        * src/truetype/ttgload.c (compute_glyph_metrics): Compute
2800        vertBearingY to make glyphs centered vertically.
2801        Fix some bugs in vertical metrics:
2802
2803          . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
2804            units.
2805          . As we use the glyph's cbox to calculate the top bearing now
2806            there iss no need to adjust `top'.
2807
28082005-06-15  Werner Lemberg  <wl@gnu.org>
2809
2810        * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
2811        in sync with OTV_OPTIONAL_OFFSET.  Reported by YAMATO Masatake.
2812
28132005-06-13  Werner Lemberg  <wl@gnu.org>
2814
2815        * docs/release: Update.
2816
2817----------------------------------------------------------------------------
2818
2819Copyright 2005, 2006 by
2820David Turner, Robert Wilhelm, and Werner Lemberg.
2821
2822This file is part of the FreeType project, and may only be used, modified,
2823and distributed under the terms of the FreeType project license,
2824LICENSE.TXT.  By continuing to use, modify, or distribute this file you
2825indicate that you have read the license and understand and accept it
2826fully.
2827
2828
2829Local Variables:
2830version-control: never
2831coding: utf-8
2832End:
Note: See TracBrowser for help on using the repository browser.