1 2006-05-12 Werner Lemberg <wl@gnu.org>
4 * Version 2.2.1 released.
5 =========================
8 Tag sources with `VER-2-2-1'.
10 2006-05-12 Werner Lemberg <wl@gnu.org>
12 * src/tools/docmaker/sources.py (re_source_keywords): Add word
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.
22 * include/freetype/*: Many minor documentation improvements (adding
23 links, spelling errors, etc.).
25 2006-05-11 Werner Lemberg <wl@gnu.org>
27 * README: Minor updates.
29 * include/freetype/*: s/scale/scaling value/ where appropriate.
30 Many other minor documentation improvements.
32 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle
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.
38 2006-05-11 Masatake YAMATO <jet@gyve.org>
40 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if
41 read system call returns -1.
42 Remove a redundant parenthesis.
44 2006-05-10 Werner Lemberg <wl@gnu.org>
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
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).
54 * builds/toplevel.mk (dist): New target which builds .tar.gz,
55 .tar.bz2, and .zip files. Note that the version number is still
57 (do-dist): Sub-target of `dist'.
58 (CONFIG_GUESS, CONFIG_SUB): New variables.
61 2006-05-09 Rajeev Pahuja <rpahuja@esri.com>
63 * builds/win32/visualc/freetype.sln,
64 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from
66 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c.
68 * builds/win32/visualc/index.html: Updated.
70 2006-05-07 Werner Lemberg <wl@gnu.org>
72 Put version information into the configure script. Reported by Paul
73 Watson <pwatson@redlinepy.com>.
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.
79 * version.sed: New script.
81 * autogen.sh: Generate configure.ac from configure.raw, using
82 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h.
84 2006-05-06 Werner Lemberg <wl@gnu.org>
86 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
88 * builds/unix/configure.ac (version_info): Set to 9:10:3.
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/.
96 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS:
99 * builds/unix/install-sh: Updated from `texinfo' CVS module at
102 * devel/ftoption.h: Synchronize with
103 include/freetype/config/ftoption.h.
105 2006-05-04 Werner Lemberg <wl@gnu.org>
107 * src/lzw/ftlzw2.c: Renamed to...
108 * src/lzw/ftlzw.c: This.
110 * src/lzw/Jamfile, src/lzw/rules.mk: Updated.
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.
117 2006-05-03 David Turner <david@freetype.org>
119 Allow compilation again with C++ compilers.
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.
126 2006-05-03 Werner Lemberg <wl@gnu.org>
128 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed.
130 2006-05-02 Werner Lemberg <wl@gnu.org>
132 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++).
133 (FT_ALLOC): Remove redundant redefinition.
135 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use
136 `-Wstrict-prototypes'.
138 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast.
140 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]:
143 2006-05-02 David Turner <david@freetype.org>
145 Update the memory management functions and macros to safely deal
146 with array size buffer overflows. This corresponds to attempts to
147 allocate arrays that are too large. For an example, consider the
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();
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.
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.
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.
169 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]:
172 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error
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
187 (FT_MEM_SET_ERROR): Slightly redefine.
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
196 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug,
197 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed.
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.
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.
210 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]:
212 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc.
213 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free.
215 2006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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>.
222 2006-04-29 Werner Lemberg <wl@gnu.org>
224 Further C library abstraction. Based on a patch from
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
234 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h.
235 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't
239 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c
240 and forthcoming versions.
242 2006-04-28 Werner Lemberg <wl@gnu.org>
244 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed,
247 2006-04-27 yi luo <luoyi.ly@gmail.com>
249 * builds/win32/visualc/freetype.vcproj: Updated.
251 2006-04-26 David Turner <david@freetype.org>
254 * Version 2.2 released.
255 =======================
258 Tag sources with `VER-2-2-0'.
260 2006-04-26 Werner Lemberg <wl@gnu.org>
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>.
266 2006-04-21 David Turner <david@freetype.org>
268 * include/freetype/ftincrem.h: Documentation updates.
269 (FT_Incremental_Interface): New typedef.
271 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h:
272 Documentation updates.
274 * include/freetype/freetype.h: Documentation update.
275 (FT_HAS_FAST_GLYPHS): Always set to 0.
277 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New):
278 Take an FT_Library argument instead of FT_Memory.
280 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2).
282 2006-04-13 David Turner <david@freetype.org>
284 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove
285 superfluous code in the auto-fitter's loader.
287 2006-04-05 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
289 * builds/amiga/makefile, builds/amiga/makefile.os4,
290 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define.
292 2006-04-03 luoyi <luoyi.ly@gmail.com>
294 * builds/compiler/intelc.mk (TE): New variable.
295 (ANSIFLAGS): Updated.
297 2006-04-03 Werner Lemberg <wl@gnu.org>
299 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed.
300 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE).
303 * configure.ac: Minor fixes to improve --help output.
306 * docs/PROBLEMS: New file.
308 2006-04-01 David Turner <david@freetype.org>
310 * docs/CHANGES: Updated.
312 * include/freetype/ftcache.h, include/freetype/config/ftheader.h:
313 Update documentation comments.
315 2006-04-01 Werner Lemberg <wl@gnu.org>
317 * builds/unix/install.mk (uninstall): Don't handle `cache'
318 directory which no longer exists.
320 2006-03-29 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
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.
326 2006-03-27 David Turner <david@freetype.org>
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.
332 2006-03-26 Werner Lemberg <wl@gnu.org>
334 * src/bdf/bdflib.c (ERRMSG4): New macro.
335 (_bdf_parse_glyphs): Handle invalid BBX values.
337 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error
340 2006-03-23 Werner Lemberg <wl@gnu.org>
342 * docs/CHANGES: Updated.
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
350 Use `para_header' and `para_footer'.
352 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'"
355 2006-03-23 David Turner <david@freetype.org>
357 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that
358 we do not expose the FT_SubGlyphRec structure.
360 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved
362 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here.
363 (FT_Get_SybGlyph_Info): New declaration.
365 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function.
368 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and
369 rsb_delta correctly in edge cases.
371 2006-03-22 Werner Lemberg <wl@gnu.org>
373 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup)
374 [!FTC_INLINE]: Compile conditionally.
375 * src/cache/ftccache.h: Updated.
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.
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.
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.
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.
400 2006-03-22 Werner Lemberg <wl@gnu.org>
402 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy):
405 * src/cache/ftccmap.h: Remove, unused.
407 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h.
409 2006-03-21 Zhe Su <james.su@gmail.com>
411 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve
414 2006-03-21 Werner Lemberg <wl@gnu.org>
416 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member.
418 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'.
420 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter
422 Check range of `glyph_index'.
423 * src/cff/cffgload.h: Updated.
426 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset
430 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc),
431 README: s/2.1.10/2.2/.
433 2006-03-21 David Turner <david@freetype.org>
435 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug
436 that crashes the auto-hinter (introduced by previous patch).
438 2006-03-20 Werner Lemberg <wl@gnu.org>
440 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove.
441 (FREETYPE_H): Updated.
443 * src/cache/rules.mk (CACHE_H_DIR): Remove.
444 (CACHE_DRV_H): Updated.
446 2006-03-20 David Turner <david@freetype.org>
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:
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
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.
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.
469 * builds/unix/install.mk (install): Don't install headers from
471 Remove `freetype/cache' from the target directory.
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
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').
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.
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
499 Declare as FT_LOCAL_DEF.
502 * builds/win32/visualc/freetype.dsp: Update project file, add
503 missing base source files (ftstroke.c, ftxf86.c, etc.).
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.
512 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
513 hinting for italic/oblique fonts.
517 * src/truetype/ttpload.c, src/truetype/ttpload.h
518 (tt_face_get_device_metrics): Change second argument to `FT_UInt'.
520 2006-03-06 David Turner <david@freetype.org>
522 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in
523 Mozilla/FireFox print preview in Ubuntu Hoary.
525 2006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
527 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not
528 return error when size == 0.
530 2006-02-28 Chia-I Wu <b90201047@ntu.edu.tw>
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.
536 2006-02-28 David Turner <david@freetype.org>
538 * Release candidate VER-2-2-0-RC4.
539 ----------------------------------
541 * docs/CHANGES: Documentation updates.
543 2006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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
549 2006-02-27 Werner Lemberg <wl@gnu.org>
551 * include/freetype/cache/ftccache.h
552 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of
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.
559 2006-02-27 David Turner <david@freetype.org>
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
565 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since
566 it needs to be exported for rogue clients.
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).
572 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c
573 (T1_Open_Face): Modify the loaders to force even-ness of
576 (cff_index_access_element): Ignore invalid entries in index files.
578 2006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
580 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width
583 2006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
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.
591 2006-02-27 Chia-I Wu <b90201047@ntu.edu.tw>
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
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
601 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics
604 2006-02-26 Werner Lemberg <wl@gnu.org>
606 * docs/release: Minor additions and clarifications.
608 * docs/CHANGES: Updated to reflect many fixes for backwards
609 compatibility. Still incomplete.
611 2006-02-26 David Turner <david@freetype.org>
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).
617 2006-02-25 Werner Lemberg <wl@gnu.org>
619 * devel/ftoption.h: Synchronize with
620 include/freetype/config/ftoption.h.
622 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again).
624 2006-02-25 David Turner <david@freetype.org>
626 Fix compiler warnings as well as C++ compilation problems.
627 Add missing prototypes.
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).
636 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with
639 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but
640 FT_INTERNAL_STREAM_H.
642 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H.
644 * include/freetype/config/ftheader.h (FT_PFR_H): New macro.
646 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't
649 * include/freetype/internal/services/svotval.h: Don't include
650 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H.
652 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H.
654 * src/gzip/ftgzip.c: Include FT_GZIP_H.
656 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H.
658 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code.
660 2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
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'.
667 2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
669 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update
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
676 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that
677 rendering the outline confuses some applications.
679 2006-02-24 David Turner <david@freetype.org>
681 * Release candidate VER-2-2-0-RC3.
682 ----------------------------------
684 * src/cache/ftcbasic.c: Correct compatibility hack bug.
686 2006-02-24 Chia-I Wu <b90201047@ntu.edu.tw>
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
694 2006-02-23 David Turner <david@freetype.org>
696 Two BDF patches from Debian libfreetype6 for 2.1.10.
698 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width
700 Fix a problem with large encodings.
703 Fix binary compatibility issues for gnustep-back (GNUstep backend
704 module) which still crashes under Sarge.
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
712 * src/cache/ftcbasic.c: Fix a silly bug that prevented our `hack' to
713 support rogue clients compiled against 2.1.7 to work correctly.
714 This probably explains the GNUstep crashes with the second release
717 2006-02-23 Chia-I Wu <b90201047@ntu.edu.tw>
719 * include/freetype/ftoutln.h (enum FT_Orientation): New value
720 `FT_ORIENTATION_NONE'.
722 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has,
723 ft_contour_enclosed, ft_outline_get_orientation): Another version of
724 `FT_Outline_Get_Orientation'. This version differs from the public
725 one in that each part (contour not enclosed in another contour) of the
726 outline is checked for orientation.
727 (FT_Outline_Embolden): Use `ft_outline_get_orientation'.
729 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and
730 use bitmap's embolden routine when the outline one failed.
732 2006-02-22 Chia-I Wu <b90201047@ntu.edu.tw>
734 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI
737 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak.
739 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
740 tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit
741 loading. (Only tested with bit aligned sbit with x_pos == 0.)
743 * src/truetype/ttpload.c (tt_face_load_hdmx,
744 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
747 2006-02-21 David Turner <david@freetype.org>
749 Add a new API named FT_Get_TrueType_Engine_Type to determine whether
750 we have a patented, unpatented, or unimplemented TrueType bytecode
753 The FT_Get_Module_Flags API was removed consequently.
755 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed.
757 (FT_Get_TrueType_Engine_Type): This.
758 (FT_TrueTypeEngineType): New enumeration.
760 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
763 * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
764 (FT_Module_Get_Flags): Removed. Replaced with...
765 (FT_Get_TrueType_Engine_Type): This.
767 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
768 (tt_service_truetype_engine): New service structure.
769 (tt_services): Register it.
771 * include/freetype/internal/services/svtteng.h: New file.
774 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented
775 embedded bitmaps from being correctly listed and used.
778 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization
779 if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because
780 libXfont is directly accessing the HMTX data, unfortunately.
781 Fix some compiler warnings.
782 (tt_face_get_metrics): Ditto.
785 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of
788 2006-02-20 David Turner <david@freetype.org>
790 Support binary compatibility with the X.Org server's Xfont library.
791 Note that this change unfortunately prevents memory optimizations
792 for the embedded bitmap loader.
794 * include/freetype/internal/sfnt.h (SFNT_Interface): Move
795 `set_sbit_strike' and `load_sbit_metrics' fields to the location of
798 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call
800 (sfnt_interface): Updated.
802 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load
804 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static.
806 * src/sfnt/ttsbit.h: Updated.
808 2006-02-17 David Turner <david@freetype.org>
810 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't filter out exported
811 functions anymore. This ensures that all FT_BASE internal functions
812 are available for dynamic linking.
814 * include/freetype/ftcache.h (FTC_IMAGE_TYPE_COMPARE,
815 FTC_IMAGE_TYPE_HASH), src/cache/ftcbasic.c (FTC_OldFontRec,
816 FTC_OldImageDescRec, FTC_ImageCache_Lookup, FTC_Image_Cache_New,
817 FTC_OldImage_Desc, FTC_OLD_IMAGE_FORMAT, ftc_old_image_xxx,
818 ftc_image_type_from_old_desc, FTC_Image_Cache_Lookup,
819 FTC_SBitCache_Lookup, FTC_SBit_Cache_New, FTC_SBit_Cache_Lookup)
820 [FT_CONFIG_OPTION_OLD_INTERNALS]: Try to revive old functions of the
821 cache sub-system. We try to recognize old legacy signatures with a
822 gross hack (hope it works).
824 2006-02-17 Werner Lemberg <wl@gnu.org>
826 * devel/ftoption.h: Synchronize with
827 include/freetype/config/ftoption.h.
829 2006-02-16 David Turner <david@freetype.org>
831 Massive changes to the internals to respect the internal object
832 layouts and exported functions of FreeType 2.1.7. Note that the
833 cache sub-system cannot be fully retrofitted, unfortunately.
835 * include/freetype/config/ftoption.h
836 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro.
838 * include/freetype/ftcache.h, include/freetype/cache/ftccache.h,
839 include/freetype/cache/ftccmap.h,
840 include/freetype/internal/ftcalc.h,
841 include/freetype/internal/ftdriver.h,
842 include/freetype/internal/ftmemory.h,
843 include/freetype/internal/ftobjs.h,
844 include/freetype/internal/psaux.h, include/freetype/internal/sfnt.h,
845 include/freetype/internal/t1types.h,
846 include/freetype/internal/tttypes.h, src/base/ftcalc.c,
847 src/base/ftdbgmem.c, src/base/ftobjs.c, src/base/ftutil.c,
848 src/bdf/bdfdrivr.c, src/cache/ftccache.c, src/cache/ftccback.h,
849 src/cache/ftcmanag.c, src/cff/cffdrivr.c, src/cid/cidriver.c,
850 src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c, src/psaux/psauxmod.c,
851 src/sfnt/sfdriver.c, src/truetype/ttdriver.c, src/type1/t1driver.c,
852 src/type1/t1objs.c, src/type42/t42drivr.c, src/winfonts/winfnt.c:
853 Use FT_CONFIG_OPTION_OLD_INTERNALS to revive old functions and data
856 Move newly added structure elements to the end of the affected
857 structure and add stub fields (if FT_CONFIG_OPTION_OLD_INTERNALS is
858 defined) to assure binary compatibility with older FreeType
860 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old
863 ft_stub_set_char_sizes
864 ft_stub_set_pixel_sizes
866 Rename the following internal functions to provide the old function
869 FT_Alloc -> ft_mem_alloc
870 FT_QAlloc -> ft_mem_qalloc
871 FT_Realloc -> ft_mem_realloc
872 FT_QRealloc -> ft_mem_qrealloc
873 FT_Free -> ft_mem_free
874 FT_Alloc_Debug -> ft_mem_alloc_debug
875 FT_QAlloc_Debug -> ft_mem_qalloc_debug
876 FT_Realloc_Debug -> ft_mem_realloc_debug
877 FT_QRealloc_Debug -> ft_mem_qrealloc_debug
878 FT_Free_Debug -> ft_mem_free_debug
880 2006-02-15 Chia-I Wu <b90201047@ntu.edu.tw>
882 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
883 unused `max_points' and `max_contours'.
885 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
886 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update.
888 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused
891 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused
892 `loadSize' and `loadStack'.
894 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context),
895 src/sfnt/ttload.c (tt_face_load_maxp): Update.
897 * src/cff/cffobjs.h (cff_size_select), src/sfnt/sfdriver.c
898 (sfnt_interface), src/truetype/ttdriver.c (tt_size_request): Fix
899 compiler errors/warnings when TT_CONFIG_OPTION_EMBEDDED_BITMAPS is not
902 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): Fix
903 possible segment faults for the non-FT_OPTIMIZE_MEMORY'ed versions.
907 For most OpenType tables, `tt_face_load_xxxx' simply loads the table
908 and `face->root' is set later in `sfnt_load_face'. Here, we try to
909 make this work for _all_ tables. Also improve tracing messages.
911 * src/sfnt/ttsbit.c, src/sfnt/ttsbit0.c, src/sfnt/ttload.c,
912 src/sfnt/ttmtx.c: all `tt_face_load_xxxx' should load the table and
913 then exit. Error handling or setting face->root is done later in
916 * src/sfnt/sfobjs.c (sfnt_load_face): Work harder.
917 Mac bitmap-only fonts are not scalable.
918 Check that `face->header.Units_Per_EM' is not zero.
919 (LOAD_, LOADM_): Emit pretty trace messages.
921 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics
924 * src/sfnt/ttcmap.c (tt_face_build_cmaps), src/sfnt/ttpost.c
925 (load_format_20, load_format_25, tt_face_get_ps_name): Use
926 face->max_profile.numGlyphs, instead of face->root.num_glyphs.
928 2006-02-14 Werner Lemberg <wl@gnu.org>
930 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in
931 documentation that negative strength values are possible.
932 Give an example call.
934 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve
935 documentation of `outline' field.
937 * src/sfnt/sfobjc.s: Inckude FT_INTERNAL_DEBUG_H.
938 * src/sfnt/sfdriver.c: Include ttmtx.h.
940 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h.
942 2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
944 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo.
946 2006-02-14 Chia-I Wu <b90201047@ntu.edu.tw>
948 * src/sfnt/ttmtx.c (tt_face_load_hhea, tt_face_load_hmtx): Simply
949 return error if table is missing.
950 Check table length in non-FT_OPTIMIZE_MEMORY'ed `tt_face_load_hmtx'.
952 * src/sfnt/sfobjs.c (sfnt_load_face): Take care of missing metrics
953 tables. The last change makes Mac bitmap-only font not load and
956 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation
957 error when FT_CONFIG_OPTION_INCREMENTAL is defined.
959 2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
961 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is
962 split from `load_hhea'.
964 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c,
965 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'.
967 * src/sfnt/sfobjs.c (sfnt_load_face): Update.
969 2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
971 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of
974 2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
976 Clean up the SFNT_Interface. In this pass, we want to treat the
977 font directory (offset table and table directory) as a normal table
978 like the others. This also means that TTCs are no longer recognized
979 there but in `init_face'.
981 * include/freetype/internal/sfnt.h (SFNT_Interface),
982 src/sfnt/sfdriver.c: `load_sfnt_header' and `load_directory' are
983 combined and renamed to `load_font_dir'.
985 * src/sfnt/ttload.h, src/sfnt/ttload.c:
986 s/sfnt_dir_check/check_table_dir/.
987 `sfnt_init' is moved to sfobjs.c and renamed to `sfnt_open_font'.
988 `tt_face_load_sfnt_header' and `tt_face_load_directory' are combined
989 and renamed to `tt_face_load_font_dir'.
991 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here.
993 2006-02-13 Chia-I Wu <b90201047@ntu.edu.tw>
995 Clean up the SFNT_Interface. Table loading functions are now named
996 after the tables' tags; `hdmx' is TrueType-specific and thus the
997 code is moved to the truetype module; `get_metrics' is moved here
998 from the truetype module so that the code can be shared with the cff
1001 This pass involves no real changes. That is, the code is moved
1002 verbatim mostly. The only exception is the return value of
1003 `tt_face_get_metrics'.
1005 * include/freetype/internal/sfnt.h, src/sfnt/rules.mk,
1006 src/sfnt/sfdriver.c, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
1007 src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttsbit.c,
1008 src/sfnt/ttsbit.h, src/sfnt/ttsbit0.c: Clean up the SFNT_Interface.
1010 * src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: New files. Metrics-related
1011 tables' loading and parsing code is moved to here.
1012 Move `tt_face_get_metrics' here from the truetype module. The
1013 return value is changed from `void' to `FT_Error'.
1015 * include/freetype/internal/fttrace.h: New trace: ttmtx.
1017 * src/truetype/ttpload.c, src/truetype/ttpload.h: `hdmx' loading and
1018 parsing code is moved here.
1019 New function `tt_face_load_prep' split from `tt_face_load_fpgm'.
1020 `tt_face_load_fpgm' returns `FT_Err_Ok' if `fpgm' doesn't exist.
1022 * src/cff/cffgload.c, src/cff/cffobjs.c: Update.
1024 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update.
1026 2006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1028 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug...
1030 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use
1031 AF_LatinMetricsRec as the dummy metrics because we cast the metrics
1032 to it later in `af_latin_hints_link_segments'.
1034 2006-02-11 Chia-I Wu <b90201047@ntu.edu.tw>
1036 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define
1037 to enable autofit CJK script support. (#define'd by default.)
1039 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro.
1041 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Make sure
1042 that `edge_distance_threshold' is always set.
1043 (af_latin_hints_link_segments): Potential divide-by-zero bug.
1044 Use latin constant in the scoring formula.
1046 * src/autofit/afcjk.c: Minor updates due to the above three changes.
1048 * docs/TODO, docs/CHANGES: Updated.
1050 2006-02-09 Chia-I Wu <b90201047@ntu.edu.tw>
1052 Introduce experimental autofit CJK module based on akito's autohint
1053 patch. You need to #define AF_MOD_CJK in afcjk.c to enable it.
1055 * src/autofit/afglobal.c, src/autofit/afcjk.h, src/autofit/afcjk.c,
1056 src/autofit/rules.mk, src/autofit/autofit.c, src/autofit/aftypes.h:
1057 Add CJK module based on akito's autohint patch.
1059 * src/autofit/afhints.h (AF_SegmentRec): New field `len' for the
1060 overlap length of the segments.
1061 (AF_SEGMENT_LEN, AF_SEGMENT_DIST): New macros.
1063 * src/autofit/aflatin.h (af_latin_metrics_init_widths),
1064 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made
1066 Use the character given by the caller.
1067 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale
1070 * src/autofit/afloader.c (af_loader_load_g): Respect
1071 AF_SCALER_FLAG_NO_ADVANCE.
1073 2006-02-09 Werner Lemberg <wl@gnu.org>
1075 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable.
1077 2006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1079 * src/cid/cidparse.c (cid_parse_new): Fix for abnormally short or
1080 broken CIDFont. Reported by Taek Kwan(TK) Lee (see ft-devel
1083 2006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1085 * builds/unix/configure.ac: Fix bug for `--with-old-mac-fonts'
1086 option on UNIX platform. It has been broken since 2006-01-11.
1088 2006-02-01 Werner Lemberg <wl@gnu.org>
1090 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/.
1091 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/.
1093 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing
1094 change from 2006-01-31).
1095 (TOP_DIR, OBJ_DIR): Update.
1097 * builds/unix/install.mk (install): Fix path for ftmodule.h.
1099 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use
1100 `?=' where appropriate.
1102 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR),
1103 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere.
1105 2006-01-31 Werner Lemberg <wl@gnu.org>
1107 Implement new, simplified module selection. With GNU make it is now
1108 sufficient to modify a single file, `modules.cfg', to control the
1109 inclusion of modules and base extension files.
1111 This change also fixes the creation of ftmodule.h; it now depends on
1112 `modules.cfg' and thus is rebuilt only if necessary.
1114 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the
1117 * modules.cfg: New file.
1119 * builds/freetype.mk: Don't include `modules.mk'.
1120 Include all `rules.mk' files as specified in `modules.cfg'.
1121 (FTOPTION_FLAG, FTOPTION_H): New variables.
1122 (FT_CFLAGS): Add macro definition for FT_CONFIG_MODULES_H.
1124 ($(FT_INIT_OBJ)): Don't use FT_MODULE_LIST.
1125 (CONFIG_H): Add FTMODULE_H and FTOPTION_H.
1126 (INCLUDES): Add DEVEL_DIR.
1127 (INCLUDE_FLAGS, FTSYS_SRC, FTSYS_OBJ, FTDEBUG_SRC, FTDEBUG_OBJ,
1128 OBJ_M, OBJ_S): Use `:=', not `='.
1129 (remove_ftmodule_h): New phony target to delete `ftmodule.h'.
1130 (distclean): Add remove_ftmodule_h.
1132 * builds/modules.mk: (MODULE_LIST): Removed.
1133 (make_module_list, clean_module_list): Replace targets
1135 (FTMODULE_H_INIT, FTMODULE_H_CREATE, FTMODULE_H_DONE): New
1136 variables. Reason for the change is that it is not possible to have
1137 a phony prerequisite which is run only if the target file must be
1138 rebuilt (phony prerequisites act like subroutines and are *always*
1139 executed). We only want to rebuild `ftmodule.h' if `module.cfg' is
1142 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on
1145 * builds/toplevel.mk: Rewrite and simplify module handling.
1146 (MODULES_CFG, FTMODULE_H): New variables.
1147 Include MODULES_CFG.
1148 (MODULES): New variable to include all `module.mk' and `rules.mk'
1149 files. We no longer use make's `wildcard' function for this.
1151 * Makefile (USE_MODULES): Remove. Update all users.
1152 (OBJ_DIR): Define it here.
1154 * src/*/module.mk: Change
1156 make_module_list: foo
1161 FTMODULE_H_COMMANDS += FOO
1166 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'.
1168 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS.
1170 * builds/unix/detect.mk (setup): Always execute `configure' script.
1171 (have_mk): Rename to...
1172 (have_Makefile): This.
1173 Don't use `strip' function.
1175 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is
1177 (have_mk): Don't use `strip' function.
1178 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test
1181 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'.
1183 * builds/os2/os2-dev.mk, builds/unix/unix-dev.mk,
1184 builds/win32/w32-bccd.mk, builds/win32/w32-dev.mk: Don't define
1185 BUILD_DIR but DEVEL_DIR for development header files.
1187 * builds/ansi/ansi-def.mk (TOP_DIR, OBJ_DIR),
1188 builds/beos/beos-def.mk (TOP_DIR, OBJ_DIR), builds/unix/unix-def.in
1189 (TOP_DIR, OBJ_DIR): Removed. Defined elsewhere.
1191 * builds/dos/dos-def.mk (OBJ_DIR), builds/os2/os2-def.mk (OBJ_DIR),
1192 builds/win32/win32-def.mk (OBJ_DIR): Removed. Defined elsewhere.
1194 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for
1195 development header files.
1196 Don't define PLATFORM.
1198 * configure: Copy `modules.cfg' to builddir if builddir != srcdir.
1199 Update snippet taken from autoconf's m4sh.m4 to current CVS version.
1202 * include/freetype/config/ftmodule.h: Add comments -- this file is
1203 no longer used if FreeType is built with GNU make.
1205 * docs/CHANGES, docs/CUSTOMIZE, docs/INSTALL, docs/INSTALL.ANY,
1206 docs/INSTALL.GNU, docs/INSTALL.UNX: Document new build mechanism.
1207 Other minor updates.
1209 * modules.txt: Removed. Contents included in `modules.cfg'.
1212 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug,
1213 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos.
1215 * src/base/ftdbgmem.c (FT_Alloc_Debug, FT_Realloc_Debug,
1216 FT_QAlloc_Debug, FT_QRealloc_Debug, FT_Free_Debug)
1217 [FT_STRICT_ALIASING]: Implement.
1219 2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1221 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
1222 (cid_face_init), src/pfr/pfrobjs.c (pfr_face_init),
1223 src/type1/t1objs.c (T1_Face_Init): Set face->height to MAX(1.2 *
1224 units_per_EM, ascender - descender).
1226 2006-01-31 Chia-I Wu <b90201047@ntu.edu.tw>
1228 * include/freetype/internal/t1types.h (AFM_FontInfo),
1229 src/psaux/afmparse.c, src/tools/test_afm.c: Read `FontBBox',
1230 `Ascender', and `Descender' from an AFM.
1232 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM.
1234 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may
1235 be changed after file attachment.
1237 2006-01-28 Werner Lemberg <wl@gnu.org>
1239 * src/*/module.mk (.PHONY): Add.
1241 2006-01-27 Werner Lemberg <wl@gnu.org>
1243 * README, docs/FTL.TXT: Fix email address for bug reports.
1244 Other minor formatting.
1246 * devel/ftoption.h: Synchronize with
1247 include/freetype/config/ftoption.h.
1249 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk
1250 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix
1253 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv
1256 2006-01-27 David Turner <david@freetype.org>
1258 * builds/unix/configure.ac: Fix build problem on Cygwin.
1260 * builds/unix/install.mk (install): Don't install the internal
1261 headers, and remove existing ones if found in the target install
1264 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation
1265 if the warp hinter isn't active (it shouldn't, still experimental).
1267 * Jamfile, include/freetype/config/ftmodule.h: Remove `gxvalid'
1268 and `otvalid' from the list of modules that are linked statically
1269 to a given FreeType library. Functionality has been moved to the
1270 `ftvalid' CVS module.
1272 Note also that current Make-based build system still compiles the
1275 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): New macro
1276 which controls the definitions of the memory management functions to
1277 avoid warnings with recent versions of GCC. This macro is only here
1278 to be disabled, in case we detect problems with the new scheme.
1280 NOTE: Disable macro to use the memory debugger -- this will be fixed
1283 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc,
1284 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]:
1288 * builds/win32/visualc/freetype.dsp: Updating project file to
1289 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from
1293 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the
1294 macro FT2_BUILD_LIBRARY when compiling the library.
1296 * include/freetype/config/ftheader.h: Remove inclusions of internal
1297 headers except if the macro FT2_BUILD_LIBRARY is defined.
1300 * include/freetype/internal/psaux.h (AFM_KernPair, AFM_TrackKern,
1301 AFM_FontInfo): Move structure declarations to...
1302 * include/freetype/internal/t1types.h: This file.
1305 * (many files): Fix compiler warnings.
1306 Various minor reorganizations.
1309 * src/cff/cffload.c (cff_font_done): Don't free static array
1312 * src/otvalid/otvcommn.c (otv_ClassDef_validate),
1313 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information.
1316 Get rid of writable static variables (i.e., the string table) in
1317 afmparse, and fix compilation in FT2_MULTI mode.
1319 * src/psaux/afmparse.c: Include ft2build.h and FT_FREETYPE_H.
1320 (AFM_MAX_ARGUMENTS): Define...
1321 * src/psaux/afmparse.h: Here.
1322 * src/psaux/Jamfile (_sources): Add afmparse.
1324 * src/psaux/psconv.c: Include psconv.h.
1326 * src/type1/t1afm.c: Don't include FT_INTERNAL_TYPE1_TYPES_H but
1327 FT_INTERNAL_POSTSCRIPT_AUX_H.
1328 * src/type1/t1afm.h: Include FT_INTERNAL_TYPE1_TYPES_H.
1330 2006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
1332 * include/freetype/freetype.h (FT_Select_Size): Rename the second
1333 argument from `idx' to `strike_index'.
1334 (FT_Size_Request_Type): Add FT_SIZE_REQUEST_TYPE_MAX to the end of
1337 * include/freetype/internal/ftobjs.h (FT_REQUEST_WIDTH,
1338 FT_REQUEST_HEIGHT): New macros to get the width and height of a
1339 request, in fractional pixels.
1341 * include/freetype/internal/ftobjs.h (FT_Select_Metrics,
1342 FT_Request_Metrics), src/base/ftobjs.c (FT_Select_Metrics,
1343 FT_Request_Metrics): New base functions to set the font metrics. They
1344 were part of FT_Select_Size/FT_Request_Size and are made independent
1345 functions so that metrics are not set again and again.
1347 * src/base/ftobjs.c (FT_Select_Size, FT_Request_Size): Metrics are set
1348 only when driver's size_select/size_request is NULL. That is, drivers
1349 should set the metrics themselves.
1350 (FT_Match_Size): Round before matching. This was what we did and it
1351 does cause some problems without rounding.
1353 * src/cff/cffobjs.c (cff_size_select), src/truetype/ttdriver.c
1354 (tt_size_select): Set the font metrics.
1355 s/index/strike_index/.
1356 The scaled metrics are always preferred over strikes' metrics, even
1357 when some strike is selected. This is done because the strikes'
1358 metrics are not reliable, e.g., the sign of the descender is wrong for
1361 * src/cff/cffobjs.c (cff_size_request), src/truetype/ttdriver.c
1362 (tt_size_request): Set the font metrics.
1363 Call cff_size_select/tt_size_select when some strike is matched.
1365 * src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/cid/cidobjs.c,
1366 src/pcf/pcfdrivr.c, src/truetype/ttdriver.c, src/type1/t1objs.c,
1367 src/type1/t1objs.h, src/type42/t42objs.c, src/winfonts/winfnt.c:
1368 Set the font metrics.
1369 s/index/strike_index/.
1371 * src/tools/test_afm.c, src/psaux/psconv.c: Older versions of these
1372 files were committed. Just a catch-up.
1373 (PS_Conv_ToFixed): Remove the `goto'.
1374 (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Speed up a little.
1376 * src/sfnt/ttsbit.c (tt_face_load_sbit_strikes,
1377 tt_face_load_strike_metrics), src/sfnt/ttsbit0.c
1378 (tt_face_load_sbit_strikes, tt_face_load_strike_metrics): The
1379 advertised metrics in `available_sizes' are different from those
1382 2006-01-23 Chia-I Wu <b90201047@ntu.edu.tw>
1384 * src/psaux/psaux.c src/psaux/psauxmod.c src/type1/t1driver.c: Make
1385 AFM parser optional, controlled by `T1_CONFIG_OPTION_NO_AFM'.
1387 2006-01-22 Werner Lemberg <wl@gnu.org>
1389 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
1390 `texinfo' CVS module at savannah.gnu.org.
1392 2006-01-21 Werner Lemberg <wl@gnu.org>
1394 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c.
1396 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up
1397 to avoid compiler warnings.
1399 * src/autofit/afwarp.c (af_warper_compute_line_best): Remove
1400 shadowing variable declarations.
1401 Fix warning parameters and replace printf with AF_LOG.
1402 (af_warper_compute): Remove unused variable.
1404 2006-01-20 David Turner <david@freetype.org>
1406 Adding experimental implementation of `warp hinting' (new hinting
1407 algorithm for gray-level and LCD rendering). It is disabled by
1408 default, you need to #define AF_USE_WARPER in aftypes.h.
1410 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]:
1412 * src/autofit/afhints.h: Updated.
1414 * src/autofit/aflatin.c [AF_USE_WARPER]: Include afwarp.h.
1415 (af_latin_hints_init) [AF_USE_WARPER]: Reset mode to
1416 FT_RENDER_MODE_NORMAL if an LCD mode is selected.
1417 (af_latin_hints_apply) [AF_USE_WARPER]: Call af_warper_compute
1420 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]:
1421 Isolate code for adjusting metrics.
1423 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by
1426 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files.
1428 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c.
1430 * src/autofit/Jamfile (_sources): Add afwarp.
1432 2006-01-19 David Turner <david@freetype.org>
1434 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug
1435 that prevented compilation when FT_OPTIMIZE_MEMORY is defined.
1437 2006-01-19 Brian Weed <bw@imaginengine.com>
1439 * builds/win32/visualc/freetype.dsp: Updated.
1441 2006-01-17 Werner Lemberg <wl@gnu.org>
1443 Use pscmap service in CFF module.
1445 * src/cff/cffcmap.c (cff_cmap_uni_pair_compare): Removed.
1446 (cff_sid_to_glyph_name): New function.
1447 (cff_cmap_unicode_init, cff_cmap_unicode_done,
1448 cff_cmap_unicode_char_index, cff_cmap_unicode_char next): Use pscmap
1450 (cff_cmap_unicode_class_rec): Updated.
1451 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed.
1454 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode'
1458 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting
1459 to avoid compiler warnings regarding type-punning.
1461 2006-01-16 Chia-I Wu <b90201047@ntu.edu.tw>
1463 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which
1464 implement an AFM parser.
1466 * src/psaux/psconv.c, src/psaux/psconv.h: New files to provide
1467 conversion functions (e.g., PS real number => FT_Fixed) for the
1468 PS_Parser and AFM_Parser. Some of the functions are taken, with
1469 some modifications, from the file psobjs.c.
1471 * src/psaux/psobjs.c: Use functions from psconv.c.
1473 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add
1474 `AFM_Parser' to the `psaux' service.
1476 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include
1479 * src/tools/test_afm.c: A test program for AFM parser.
1481 * include/freetype/internal/services/svkern.h: New file providing a
1482 `Kerning' service. It is currently only used to get the track
1483 kerning information.
1485 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New
1488 * src/type1/t1driver.c, src/type1/t1objs.c, src/type1/t1afm.c,
1489 src/type1/t1afm.h: Update to use the AFM parser.
1490 Provide the `Kerning' service.
1492 * include/freetype/freetype.h, src/base/ftobjs.c: New API
1493 `FT_Get_Track_Kerning'.
1495 2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1497 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c,
1498 src/bdf/bdfdrivr.c, src/cff/cffgload.c, src/cid/cidgload.c,
1499 src/pcf/pcfdrivr.c, src/type1/t1gload.c, src/winfonts/winfnt.c:
1500 s/ft_fake_vertical_metrics/ft_synthesize_vertical_metrics/.
1502 * docs/CHANGES: Mention that vertical metrics are synthesized for
1503 fonts not having this info.
1505 2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1507 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics),
1508 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake
1511 * src/cff/cffgload.c, src/cid/cidgload.c, src/pcf/pcfdrivr.c,
1512 src/type1/t1gload.c, src/winfonts/winfnt.c: Fake vertical metrics,
1515 * src/truetype/ttgload.c (compute_glyph_metrics): Some fixes and
1516 formattings in vertical metrics faking. There is still room for
1517 improvements (and so does the CFF module).
1519 2006-01-15 Chia-I Wu <b90201047@ntu.edu.tw>
1521 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdrivr.c
1522 (PCF_Glyph_Load), src/winfonts/winfnt.c (FNT_Load_Glyph): Don't set
1523 the linear advance fields as they are only used by the outline
1526 * include/freetype/freetype.h: Documentation updates and
1528 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real
1529 change need be made to the code.
1531 * src/base/ftobjs.c (FT_Load_Glyph): Resolve flag dependencies and
1532 decide whether to use the auto-hinter according to documentation.
1533 There should to be no real difference.
1534 Some checks (e.g., is text height positive?) after the glyph is
1536 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values.
1537 Be careful that scales won't be negative.
1539 2006-01-14 Chia-I Wu <b90201047@ntu.edu.tw>
1541 * docs/CHANGES: Mention the size selection change.
1543 * src/bdf/bdfdrivr.c (BDF_Size_Request, BDF_Size_Select),
1544 src/pcf/pcfdrivr.c (PCF_Size_Request, PCF_Size_Select),
1545 src/winfonts/winfnt.c (FNT_Size_Request, FNT_Size_Select): Do size
1546 matching for requests of type NOMINAL and REAL_DIM.
1548 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when
1549 `pixel_height' is used for nominal height.
1551 * src/base/ftobjs.c (FT_Request_Size): Call `FT_Match_Size' if the
1552 face is bitmap only and driver doesn't provide `request_size'. This
1553 is added merely for completion as no driver satisfies the conditions.
1555 2006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
1557 Introduce new size selection interface.
1559 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec):
1560 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and
1563 * include/freetype/freetype.h (FT_Select_Size, FT_Size_Request_Type,
1564 FT_Size_Request, FT_Request_Size, FT_Select_Size), src/base/ftobjs.c
1565 (FT_Select_Size, FT_Request_Size): API additions to export the new
1566 size selection interface.
1568 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use
1571 * include/freetype/internal/ftobjs.h (FT_Match_Size),
1572 src/base/ftobjs.c (FT_Match_Size): New function to match a size
1573 request against `available_sizes'. Drivers supporting bitmap strikes
1574 can use this function to implement `request_size'.
1576 * src/bdf/bdfdrivr.c, src/cid/cidobjs.c, src/cid/cidobjs.h,
1577 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/type1/t1driver.c,
1578 src/type1/t1objs.c, src/type1/t1objs.h, src/type42/t42drivr.c,
1579 src/type42/t42objs.c, src/type42/t42objs.h, src/winfonts/winfnt.c:
1580 Update to new size selection interface.
1582 * src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffobjs.c,
1583 src/cff/cffobjs.h, src/truetype/ttdriver.c, src/truetype/ttgload.c,
1584 src/truetype/ttobjs.c, src/truetype/ttobjs.h: Update to new size
1585 selection interface.
1586 Make `strike_index' FT_ULong and always defined.
1587 Use `load_strike_metrics' provided by SFNT interface.
1589 2006-01-13 Chia-I Wu <b90201047@ntu.edu.tw>
1591 * include/freetype/internal/sfnt.h (SFNT_Interface): New method
1592 `load_strike_metrics' used to load the strike's metrics.
1594 * src/sfnt/sfdriver.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h,
1595 src/sfnt/ttsbit0.c: New function `tt_face_load_strike_metrics'.
1597 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly.
1599 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for
1600 nominal size unless it is obviously incorrect.
1602 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on
1605 2006-01-12 Werner Lemberg <wl@gnu.org>
1607 Prepare use of pscmap service within CFF module.
1609 * include/freetype/internal/services/svpscmap.h: Include
1610 FT_INTERNAL_OBJECTS_H.
1611 (PS_Unicode_Index_Func): Removed. Unused.
1612 (PS_Macintosh_Name_Func): Renamed to...
1613 (PS_Macintosh_NameFunc): This.
1615 (PS_Adobe_Std_Strings_Func): Renamed to...
1616 (PS_Adobe_Std_StringsFunc): This.
1618 (PS_UnicodesRec): This is the former `PS_Unicodes' structure.
1621 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec.
1623 (PS_Glyph_NameFunc): New typedef.
1624 (PS_Unicodes_InitFunc): Change arguments to expect a function
1625 and generic data pointer which returns a glyph name from a given
1628 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index,
1629 ps_unicodes_char_next, pscmaps_interface): Updated.
1631 * include/freetype/internal/t1types.h (T1_FaceRec): Updated.
1633 * src/psaux/t1cmap.h (T1_CmapStdRec): Updated.
1634 (T1_CmapUnicode, T1_CmapUnicodeRec): Removed.
1636 * src/psaux/t1cmap.c (t1_get_glyph_name): New callback function.
1637 (t1_cmap_unicode_init, t1_cmap_unicode_done,
1638 t1_cmap_unicode_char_index, t1_cmap_unicode_char_next,
1639 t1_cmap_unicode_class_rec): Updated.
1641 * src/type42/t42types.h (T42_FaceRec): Updated.
1643 2006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1645 * include/freetype/ftmac.h: Add declaration of new functions
1646 FT_New_Face_From_FSRef and FT_GetFile_From_Mac_ATS_Name that
1647 were introduced by the jumbo patch on 2006-01-11.
1649 2006-01-11 Werner Lemberg <wl@gnu.org>
1651 Fix Savannah bug #15056 and use pscmap service in psaux module.
1653 * include/freetype/internal/services/svpscmap.h (PS_UniMap): Use
1654 FT_UInt32 for `glyph_index'.
1655 (PS_Unicodes_InitFunc): Use FT_String for `glyph_names'.
1656 (PS_Unicodes_CharIndexFunc): Use FT_UInt32 for `unicode'.
1657 (PS_Unicodes_CharNextFunc): Make second argument a pointer to
1660 * src/psnames/psmodule.c (VARIANT_BIT, BASE_GLYPH): New macros.
1661 (ps_unicode_value): Set VARIANT_BIT in return value if glyph is a
1662 variant glyph (this is, it has non-leading `.' in its name).
1663 (compare_uni_maps): Sort base glyphs before variant glyphs.
1664 (ps_unicodes_init): Use FT_String for `glyph_names' argument.
1665 Reallocate only if number of used entries is much smaller.
1666 Updated to handle variant glyphs.
1667 (ps_unicodes_char_index, ps_unicodes_char_next): Prefer base glyphs
1668 over variant glyphs.
1671 * src/psaux/t1cmap.c (t1_cmap_uni_pair_compare): Removed.
1672 (t1_cmap_unicode_init, t1_cmap_unicode_char_index,
1673 t1_cmap_unicode_char_next): Use pscmap service.
1674 (t1_cmap_unicode_done): Updated.
1676 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed.
1677 (T1_CMapUnicode): Use PS_Unicodes structure.
1679 2006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1681 Jumbo patch to fix `deprecated' warning of cross-build for Tiger on
1682 Intel, as reported by Sean McBride <sean@rogue-research.com> on
1685 * src/base/ftmac.c: Heavy change to build without deprecated Carbon
1688 * builds/unix/configure.ac: Add options and autochecks for Carbon
1689 functions availabilities, for MacOS X.
1691 * builds/mac/ascii2mpw.py: Add converter for character `\305'.
1692 * builds/mac/FreeType.m68k_{far|cfm}.make.txt: Add conditional
1693 macros to avoid unavailable functions.
1694 ftmac.c must be compiled without `-strict ansi', because it disables
1695 cpp macro to use ToolBox system call.
1697 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional
1698 macros to avoid unavailable functions.
1700 * builds/mac/README: Detailed notes on function availabilities.
1702 * docs/CHANGES: Notes about (possible) incompatibilities.
1704 2006-01-08 Werner Lemberg <wl@gnu.org>
1706 * docs/CHANGES: Updated.
1708 2006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk>
1710 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New
1713 * src/base/ftobjs.c (FT_Module_Get_Flags): New function.
1715 2006-01-07 Werner Lemberg <wl@gnu.org>
1717 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable
1718 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>.
1720 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/.
1721 Reported by Niels Boldt <nielsboldt@gmail.com>.
1723 2005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1725 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for
1728 2005-12-23 David Turner <david@freetype.org>
1730 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam
1731 refdoc' works correctly to generate the API reference in
1734 * src/tools/docmaker/tohtml.py (print_html_field,
1735 print_html_field_list): Update to output nicer fields lists in the
1738 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now
1739 forces auto-hinting.
1741 * freetype/freetype.h: Updating the documentation for
1742 FT_LOAD_TARGET_XXX and FT_Render_Mode values.
1744 2005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1746 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Count scalable faces
1747 in supported formats (sfnt, LWFN) only, and ignore bitmap faces in
1748 unsupported formats (fbit, NFNT). The number of available faces are
1749 passed via face->num_faces. If bitmap faces are embedded in sfnt
1750 resource, face->num_fixed_size is correctly set. In public API,
1751 FT_New_Face() and FT_New_Face_From_FSSpec() count the faces as
1752 FT_GetFile_From_Mac_Name(), which ignores NFNT resources.
1754 * doc/CHANGES: Mention the changes.
1756 2005-12-17 Chia-I Wu <b90201047@ntu.edu.tw>
1758 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer
1759 correctly (so that memory debug system won't panic).
1761 2005-12-16 Chia-I Wu <b90201047@ntu.edu.tw>
1763 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics),
1764 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed.
1766 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round.
1768 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
1769 (cid_slot_load_glyph), src/truetype/ttgload.c (compute_glyph_metrics),
1770 src/type1/t1gload.c (T1_Load_Glyph): Do not round glyph metrics.
1772 * doc/CHANGES: Mention the changes.
1774 2005-12-13 David Turner <david@freetype.org>
1776 Change the implementation of the LIGHT hinting mode to completely
1777 disable horizontal hinting. This is an experimental effort to
1778 integrate David Chester's latest patch without affecting the other
1779 hinting modes as well.
1781 Note that this doesn't force auto-hinting for all fonts, however.
1783 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set
1784 scaler_fiags here but...
1785 (af_glyph_hints_rescale): Here.
1787 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal
1788 hinting for `light' hinting mode.
1791 * Jamfile: Small fix to ensure that ftexport.sym is placed into the
1792 same location as other generated objects (i.e., within the `objs'
1793 directory of the current directory).
1796 Add support for an embedded `BDF ' table within SFNT-based bitmap
1797 font files. This is used to store atoms & properties from the
1798 original BDF fonts that were used to generate the font file.
1800 The feature is controlled by TT_CONFIG_OPTION_BDF within
1801 `ftoption.h' and is used to implement FT_Get_BDF_Property for these
1804 At the moment, this is still experimental, the BDF table format
1805 isn't cast into stone yet.
1807 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New
1810 * include/freetype/config/ftstdlib.h (ft_memchr): New macro.
1812 * include/freetype/internal/tttypes.h (TT_BDFRec, TT_BDF)
1813 [TT_CONFIG_OPTION_BDF]: New structure.
1814 (TT_FaceRec) [TT_CONFIG_OPTION_BDF]: New member `bdf'.
1816 * include/freetype/ttags.h (TTAG_BDF): New macro.
1818 * src/sfnt/Jamfile (_sources): Add ttbdf.
1820 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c.
1822 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and
1824 (sfnt_get_charset_it) [TT_CONFIG_OPTION_BDF]: New function.
1825 (sfnt_service_bdf) [TT_CONFIG_OPTION_BDF]: New service.
1826 (sfnt_services) [TT_CONFIG_OPTION_BDF]: Add sfnt_service_bdf.
1828 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c.
1830 * src/sfnt/sfobjs.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h.
1831 (sfnt_done_face) [TT_CONFIG_OPTION_BDF]: Call
1832 tt_face_free_bdf_props.
1834 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files.
1836 2005-12-07 Werner Lemberg <wl@gnu.org>
1838 * src/sfnt/sfobjc.c (sfnt_init_face): Move tag check to...
1839 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs.
1841 2005-12-06 Chia-I Wu <b90201047@ntu.edu.tw>
1843 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is
1845 size->strike_index is not initialized.
1847 2005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com>
1849 * src/type42/t42objs.c (T42_Face_Init): Replace call to
1850 FT_New_Memory_Face with call to FT_Open_Face to pass `params'.
1852 2005-11-30 Werner Lemberg <wl@gnu.org>
1854 * docs/CHANGES: Document ftdump's `-v' option.
1855 Document latest charmap code changes.
1857 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h:
1858 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/.
1860 2005-11-30 Chia-I Wu <b90201047@ntu.edu.tw>
1862 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary,
1863 tt_cmap12_char_map_binary): Fix compiler warnings.
1865 2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
1867 Major update to distinguish between unsorted and overlapping
1868 segments for cmap format 4. For overlapping but sorted segments,
1869 which is previously considered unsorted, we still use binary search.
1871 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'.
1872 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros.
1874 * src/sfnt/ttcmap.c (OPT_CMAP4): Removed as it is always defined.
1875 (TT_CMap4Rec_): Remove `old_charcode' and `table_length'.
1876 (tt_cmap4_reset): Removed.
1877 (tt_cmap4_init): Updated accordingly.
1878 (tt_cmap4_next): Updated accordingly.
1879 Take care of overlapping segments.
1880 (tt_cmap4_validate): Make sure the subtable is large enough.
1881 Do not check glyph_ids because some fonts set the length wrongly.
1882 Also, if all segments have offset 0, glyph_ids is always invalid.
1883 It does not cause any problem so far only because the check misses
1885 Distinguish between unsorted and overlapping segments.
1886 (tt_cmap4_char_map_linear, tt_cmap4_char_map_binary): New functions
1887 to do `charcode => glyph index' by linear/binary search.
1888 (tt_cmap4_char_index, tt_cmap4_char_next): Use
1889 tt_cmap4_char_map_linear and tt_cmap4_char_map_binary.
1890 (tt_face_build_cmaps): Treat the return value of validator as flags
1893 2005-11-29 Chia-I Wu <b90201047@ntu.edu.tw>
1895 * src/sfnt/ttcmap.c (TT_CMap12Rec_, tt_cmap12_init, tt_cmap12_next):
1896 New structures and functions for fast `next char'.
1897 (tt_cmap12_char_map_binary): New function to do `charcode => glyph
1898 index' by binary search.
1899 (tt_cmap12_char_index, tt_cmap12_char_next): Use
1900 tt_cmap12_char_map_binary.
1901 (tt_face_build_cmaps): Check table and offset correctly (equality is
1904 2005-11-15 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
1906 * builds/amiga/smakefile: Adjusted the compiler options
1907 to the current sources, now really builds the gxvalid, gzip
1908 and psnames modules.
1910 * builds/amiga/src/base/ftsystem.c: The assumed Seek() position
1911 in the file cache was off by one byte which could cause false
1912 errors in font files.
1914 2005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1916 * builds/mac/FreeType.m68k_far.make.txt,
1917 builds/mac/FreeType.m68k_cfm.make.txt,
1918 builds/mac/FreeType.ppc_classic.make.txt,
1919 builds/mac/FreeType.ppc_carbon.make.txt:
1920 Updated for MPW to build all available modules.
1922 2005-11-21 HĂĄvard Wall <haavardw@ifi.uio.no>
1924 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small
1927 2005-11-21 Werner Lemberg <wl@gnu.org>
1929 * src/sfnt/ttload.c (sfnt_init): Add tracing message.
1931 2005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
1933 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Image_offset was
1934 added twice to image_start if image_format was 2 or 5.
1936 2005-11-21 Chia-I Wu <b90201047@ntu.edu.tw>
1938 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known
1939 before loading the table directory.
1941 * src/sfnt/ttload.c (tt_face_load_sfnt_header,
1942 tt_face_load_directory): Delay sfnt_dir_check from
1943 tt_face_load_sfnt_header to tt_face_load_directory.
1945 2005-11-20 Chia-I Wu <b90201047@ntu.edu.tw>
1947 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct
1949 (sfnt_init): New function to fill in face->ttc_header. A non-TTC font
1950 is synthesized into a TTC font with one offset table.
1951 (tt_face_load_sfnt_header): Use sfnt_init.
1952 Fix an invalid access if the font is TTC and face_index is -1.
1954 2005-11-18 Werner Lemberg <wl@gnu.org>
1956 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number
1957 of metrics instead of aborting. Patch suggested by Derek Noonburg.
1959 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
1960 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Scale
1961 the glyph properly if no hinter is available.
1963 * docs/CHANGES: Mention scaling bug.
1965 2005-11-18 susuzki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1967 * include/freetype/ftgxval.h, src/base/ftgxval.c
1968 (FT_TrueTypeGX_Free, FT_ClassicKern_Free): New functions to free
1969 buffers allocated by gxvalid module.
1970 * include/freetype/ftotval.h, src/base/ftotval.c
1971 (FT_OpenType_Free): New function to free buffer allocated by
1974 2005-11-18 Chia-I Wu <b90201047@ntu.edu.tw>
1976 * builds/unix/ftsystem.c (FT_Stream_Open, FT_New_Memory,
1977 FT_Done_Memory), builds/vms/ftsystem.c (FT_Stream_Open, FT_New_Memory,
1978 FT_Done_Memory), builds/win32/ftdebug.c (FT_Message, FT_Panic):
1979 s/FT_EXPORT/FT_BASE/.
1981 2005-11-17 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
1983 * builds/amiga/src/base/ftdebug.c (FT_Trace_Get_Count,
1984 FT_Trace_Get_Name, FT_Message, FT_Panic),
1985 builds/amiga/src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory,
1986 FT_Stream_Open): s/FT_EXPORT/FT_BASE/.
1988 2005-11-17 Detlef WĂĽrkner <TetiSoft@apg.lahn.de>
1990 * builds/amiga/makefile, builds/amiga/makefile.os4,
1991 builds/amiga/smakefile,
1992 builds/amiga/include/freetype/config/ftmodule.h: Updated the Amiga
1993 build files (added support for the gxvalid module).
1995 2005-11-17 Werner Lemberg <wl@gnu.org>
1997 Add vertical metrics support to OpenType CFF outlines. Based on a
1998 patch from Mike Moening <MikeM@RetekSolutions.com>.
2000 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function.
2001 (cff_slot_load): Use cff_face_get_vertical_metrics.
2003 * docs/CHANGES: Updated.
2005 2005-11-17 Chia-I Wu <b90201047@ntu.edu.tw>
2007 * src/base/ftcalc.c (FT_MulTo64): Commented out.
2009 * include/freetype/internal/ftcalc.h (FT_SqrtFixed),
2010 src/base/ftcalc.c (FT_SqrtFixed),
2011 include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
2012 FT_Trace_Get_Name, FT_Message, FT_Panic), src/base/ftdebug.c
2013 (FT_Trace_Get_Count, FT_Trace_Get_Name, FT_Message, FT_Panic),
2014 include/freetype/internal/ftobjs.h (FT_New_Memory, FT_Done_Memory),
2015 include/freetype/internal/ftstream.h (FT_Stream_Open),
2016 src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory, FT_Stream_Open):
2017 s/FT_EXPORT/FT_BASE/.
2019 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST
2022 2005-11-15 David Turner <david@freetype.org>
2024 * src/base/fttrigon.c (ft_trig_prenorm): Fix a bug that created
2025 invalid computations, resulting in very weird bugs in TrueType
2026 bytecode hinted fonts.
2028 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a
2029 structure copy each time.
2031 2005-11-11 Werner Lemberg <wl@gnu.org>
2033 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c
2034 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag.
2036 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag.
2037 (FT_Div64by32, FT_Sqrt32): Commented out. Unused.
2039 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused.
2040 (FT_Sqrt32): Commented out. Unused.
2042 * include/freetype/cache/ftccache.h:
2043 s/ftc_node_destroy/FTC_Node_Destroy/.
2045 * src/cache/ftccback.h (ftc_node_destroy): New declaration.
2047 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag.
2048 (FTC_Node_Destroy): New exported wrapper function for
2051 * src/cache/ftcmanag.c: Include ftccback.c.
2053 2005-11-10 Werner Lemberg <wl@gnu.org>
2055 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff):
2056 Comment out. Unused.
2058 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns.
2060 2005-11-10 Christian Biesinger <cbiesinger@web.de>
2062 * builds/beos/beos.mk: Call beos-def.mk before anything else to
2063 define the separator.
2065 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag.
2067 2005-11-07 Werner Lemberg <wl@gnu.org>
2069 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning
2070 table available'. From Sergey Tolstov <stolstov@esri.com>.
2072 2005-11-03 Ville Syrjälä <syrjala@sci.fi>
2074 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak.
2076 2005-11-02 Werner Lemberg <wl@gnu.org>
2078 Make compiling instructions in docs/CUSTOMIZE work again.
2080 * builds/unix/unix-cc.in (CPPFLAGS): New variable.
2081 (CFLAGS): Don't include @CPPFLAGS@.
2082 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS.
2084 2005-10-28 David Turner <david@freetype.org>
2086 Update build system to support the generation of a list of exported
2087 symbols or Windows .DEF files by parsing the public headers with the
2088 `apinames' tool located in src/tools/apinames.c.
2090 Only tested on Unix at the moment. On Windows, the .DEF file is
2091 generated but isn't used yet to generate a DLL.
2093 * builds/exports.mk: New file.
2095 * builds/freetype.mk: Include exports.mk.
2097 (clean_project_dos): Fix rule.
2099 * builds/compiler/visualc.mk (TE), builds/dos/dos-def.mk (E),
2100 builds/os2/os2-def.mk (E), builds/win32/win32-def.mk (E): New
2101 variables for controlling executable extensions.
2103 * builds/unix/unix-cc.in (EXPORTS_LIST, CCexe),
2104 builds/win32/w32-bcc.mk, builds/win32/w32-gcc.mk,
2105 builds/win32/w32-icc.mk, builds/win32/w32-icc.mk,
2106 builds/win32/w32-mingw32.mk, builds/win32/w32-vcc,
2107 builds/win32/w32-wat.mk (EXPORTS_LIST, EXPORT_OPTIONS,
2108 APINAMES_OPTIONS): New targets for controlling the `apinames' tool.
2110 * Jamfile (GenExportSymbols): Updated.
2113 * src/pfr/pfrtypes.h, src/pfr/pfrload.c, src/pfr/pfrobjs.c
2114 [!FT_OPTIMIZE_MEMORY]: Fold memory optimization code into
2115 FT_OPTIMIZE_MEMORY chunks for better maintainability and simplicity.
2118 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c
2119 (FT_MulFix): Performance optimizations.
2122 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P,
2123 FT_GLYPHLOADER_CHECK_C, FT_GLYPHLOADER_CHECK_POINTS): New macros for
2124 checking points and contours. Update callers to use
2125 FT_GLYPHLOADER_CHECK_POINTS instead of FT_GlyphLoader_CheckPoints
2126 at profile-detected hot-spots.
2128 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust'
2129 to 0 to not call `AdjustPoints' every time.
2132 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline
2135 * src/autofit/afhints.c (af_direction_compute): Re-implement.
2136 (af_glyph_hints_compute_inflections, af_glyph_hints_reload): Use
2137 AF_ANGLE_DIFF to speed up the detection of inflexions.
2140 * src/tools/apinames.c: Include <string.h>.
2141 (OutputFormat): New enumeration.
2142 (names_dump): Add two parameters to control output format and DLL
2144 (names_dump_windef): Removed. Code folded into `names_dump'.
2145 (read_header_file): Use isalnum, not isalpha. Otherwise function
2146 names with digits aren't read correctly.
2148 (main): New option `-o' to control output file name.
2149 New option `-d' to indicate DLL file name.
2150 Extend `-w' flag to handle Borland and Watcom compilers and linkers.
2152 2005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2154 * builds/mac/ftlib.prj, builds/mac/freetype.mak: Removed.
2155 ftlib.prj is unmaintained and incompatible with current tree.
2156 freetype.mak is unrecoverably broken.
2158 * builds/mac/ftlib.prj.xml: Added.
2159 Generated by Metrowerks CodeWarrior 9.0.
2161 * builds/mac/FreeType.m68k_far.make.txt,
2162 builds/mac/FreeType.m68k_cfm.make.txt,
2163 builds/mac/FreeType.ppc_classic.make.txt,
2164 builds/mac/FreeType.ppc_carbon.make.txt: Added.
2165 Skeleton files of MPW makefiles.
2167 * builds/mac/ascii2mpw.py: Added.
2168 Python script to make MPW makefile from skeleton.
2170 * builds/mac/README: Updated.
2171 Almost rewritten to use new files.
2173 2005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2175 * src/base/ftmac.c: Fix invalid casts from NULL to integer typed
2176 variables. Advised by David Turner, Masatake YAMATO, Sean McBride,
2177 and George Williams.
2179 2005-10-27 Werner Lemberg <wl@gnu.org>
2181 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed.
2184 2005-10-25 Werner Lemberg <wl@gnu.org>
2186 * src/sfnt/sfdriver.c (sfnt_interface): Move out
2187 `tt_face_get_kerning' from a #ifdef clause. Reported by Tony J.
2188 Ibbs <tibs@sj.co.uk>.
2190 2005-10-23 Werner Lemberg <wl@gnu.org>
2192 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with
2195 2005-10-21 David Turner <david@freetype.org>
2197 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc):
2198 Another realloc memory counting bug fix.
2200 * src/tools/Jamfile: Add missing file.
2202 * src/lzw/Jamfile: Fix incorrect source file reference.
2204 2005-10-20 David Turner <david@freetype.org>
2206 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_table_remove,
2207 ft_mem_debug_alloc, ft_mem_debug_free, ft_mem_debug_realloc): Fixes
2208 to better account for memory reallocations.
2210 * src/lzw/ftlzw2.c, src/lzw/ftzopen.h, src/lzw/ftzopen.c,
2211 src/lzw/rules.mk: First version of LZW loader re-implementation.
2212 Apparently, this saves about 330 KB of heap memory when loading
2215 2005-10-20 Chia-I Wu <b90201047@ntu.edu.tw>
2217 * include/freetype/ftbitmap.h (FT_Bitmap_Copy, FT_Bitmap_Embolden),
2218 src/base/ftbdf.c (FT_Get_BDF_Property), src/cache/ftcmru.c
2219 (FTC_MruList_Reset, FTC_MruList_Done, FTC_MruList_Lookup): Fix
2220 FT_EXPORT/FT_EXPORT_DEF tagging.
2222 2005-10-19 Chia-I Wu <b90201047@ntu.edu.tw>
2224 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to
2225 be invalid when FT_LOAD_NO_SCALE is set.
2227 2005-10-17 David Turner <david@freetype.org>
2229 * src/base/ftobjs.c (FT_Open_Face): Don't call FT_New_GlyphSlot and
2230 FT_New_Size if we are opening a face with face_index < 0 (which is
2231 only used for testing the format).
2233 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate):
2234 Remove compiler warning.
2236 2005-10-16 David Turner <david@freetype.org>
2238 * src/tools/apinames.c: Add new tool to extract public API function
2239 names from header files.
2241 2005-10-05 Werner Lemberg <wl@gnu.org>
2243 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has
2244 a hinting engine of its own.
2246 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro.
2248 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c
2249 (cid_face_init), src/truetype/ttobjs.c (tt_face_init)
2250 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER], src/type1/t1objs.c
2251 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init)
2252 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Update face flags.
2254 * docs/CHANGES: Document it.
2256 2005-09-27 Werner Lemberg <wl@gnu.org>
2258 * builds/unix/freetype2.m4: Add license exception so that the file
2259 can be used in any other autoconf script.
2261 2005-09-26 David Turner <david@freetype.org>
2263 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad
2264 computation of the `vertical' flag, causing ugly things in LCD mode
2267 2005-09-23 David Turner <david@freetype.org>
2269 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that
2270 prevented internal hint mode bitflags from being computed correctly.
2272 * src/base/Jamfile: Adding src/base/ftgxval.c.
2274 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
2275 src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c, src/gxvalid/gxvkern.c,
2276 src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
2277 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2278 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2279 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmorx.c,
2280 src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2281 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx5.c,
2282 src/gxvalid/gxvopbd.c, src/gxvalid/gxvprop.c,
2283 src/truetype/ttgload.c: Remove _many_ compiler warnings when
2284 compiling with Visual C++ at maximum level (/W4).
2286 * src/autofit/afangles.c (af_angle_atan): Replaced CORDIC-based
2287 implementation with one using lookup tables. This simple thing
2288 speeds up glyph loading by 18%, according to ftbench!
2290 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for
2291 `get_sfnt' and `load_sfnt' module interfaces.
2293 2005-09-22 Werner Lemberg <wl@gnu.org>
2295 * docs/CHANGES: Mention SING Glyphlet support.
2297 2005-09-22 David Turner <david@freetype.org>
2299 * src/base/Jamfile: Disable compilation of ftgxval module
2302 2005-09-19 David Somers <dsomers@omz13.com>
2304 * src/sfnt/ttload.c (sfnt_dir_check): Modified to allow a
2305 font to have no `head' table if tables `SING' and `META' are
2306 present; this is to support `SING Glyphlet'.
2308 `SING Glyphlet' is an extension to OpenType developed by Adobe
2309 primarily to facilitate adding supplemental glyphs to an OpenType
2310 font (with emphasis on, but not necessarily limited to, gaiji to a
2311 CJK font). A SING Glyphlet Font is an OpenType font that contains
2312 the outline(s), either in a `glyf' or `CFF' table, for a glyph;
2313 `cmap', `BASE', and `GSUB' tables are present with the same format
2314 and functionaliy as a regular OpenType font; there are no `name',
2315 `head', `OS/2', and `post' tables; there are two new tables, `SING'
2316 which contains details about the glyphlet, and `META' which contains
2319 Further information on the SING Glyphlet format can be found at:
2321 http://www.adobe.com/products/indesign/sing_gaiji.html
2323 * include/freetype/ttags.h (TTAG_SING, TTAG_META): New macros for
2324 the OpenType tables `SING' and `META'. These two tables are used in
2325 SING Glyphlet Format fonts.
2327 2005-09-09 Werner Lemberg <wl@gnu.org>
2329 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set
2330 FT_FACE_FLAG_KERNING which has been commented out erroneously.
2332 * docs/CHANGES: Document it.
2334 2005-09-05 Werner Lemberg <wl@gnu.org>
2336 Fixes for `make multi' and using C++ compiler.
2338 * src/gxvalid/gxvcommn.c (gxv_set_length_by_ushort_offset,
2339 gxv_set_length_by_ulong_offset, gxv_array_getlimits_byte,
2340 gxv_array_getlimits_ushort): Declare with FT_LOCAL_DEF.
2341 (gxv_compare_ranges): Make it static.
2342 (gxv_LookupTable_fmt0_validate, gxv_LookupTable_fmt2_validate,
2343 gxv_LookupTable_fmt4_validate, gxv_LookupTable_fmt6_validate,
2344 gxv_LookupTable_fmt8_validate, gxv_LookupTable_validate): Improve
2346 (gxv_StateArray_validate, gxv_XStateArray_validate): s/class/clazz/.
2347 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2348 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Move to
2351 * src/gxvalid/gxvcommn.h: Add prototypes for
2352 gxv_StateTable_subtable_setup, gxv_XStateTable_subtable_setup,
2353 gxv_XStateTable_validate, gxv_array_getlimits_byte,
2354 gxv_array_getlimits_ushort, gxv_set_length_by_ushort_offset,
2355 gxv_set_length_by_ulong_offset, gxv_odtect_add_range,
2356 gxv_odtect_validate.
2357 (GXV_STATETABLE_HEADER_SIZE, GXV_STATEHEADER_SIZE,
2358 GXV_XSTATETABLE_HEADER_SIZE, GXV_XSTATEHEADER_SIZE): Moved from
2361 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate,
2362 gxv_bsln_parts_fmt1_validate): Improve trace messages.
2364 * src/gxvalid/gxvfeat.c: Split off predefined registry stuff to...
2365 * src/gxvalid/gxvfeat.h: New file.
2367 * src/gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace
2370 * src/gxvalid/gxvkern.c (GXV_kern_Dialect): Add KERN_DIALECT_UNKNOWN.
2371 (gxv_kern_subtable_fmt1_valueTable_load,
2372 gxv_kern_subtable_fmt1_subtable_setup,
2373 gxv_kern_subtable_fmt1_entry_validate): Fix C++ compiler errors.
2374 (gxv_kern_coverage_validate): Use KERN_DIALECT_UNKWOWN.
2375 Improve trace message.
2376 (gxv_kern_validate_generic): Fix C++ compiler error.
2377 Improve trace message.
2378 (gxv_kern_validate_classic): Fix C++ compiler error.
2380 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare
2383 * src/gxvalid/gxvmort1.c
2384 (gxv_mort_subtable_type1_substitutionTable_load,
2385 gxv_mort_subtable_type1_subtable_setup): Fix C++ compiler errors.
2386 (gxv_mort_subtable_type1_substTable_validate): Improve trace
2388 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2390 * src/gxvalid/gxvmort2.c (gxv_mort_subtable_type2_opttable_load,
2391 gxv_mort_subtable_type2_subtable_setup,
2392 gxv_mort_subtable_type2_ligActionOffset_validate,
2393 gxv_mort_subtable_type2_ligatureTable_validate): Fix C++ compiler
2395 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2397 * src/gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare
2400 * src/gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup,
2401 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler
2403 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2405 * src/gxvalid/gxvmort.c: Include gxvfeat.h.
2406 (gxv_mort_featurearray_validate, gxv_mort_coverage_validate):
2407 Declare with FT_LOCAL_DEF.
2408 (gxv_mort_subtables_validate, gxv_mort_validate): Improve trace
2411 * src/gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove.
2413 * src/gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare
2416 * src/gxvalid/gxvmorx1.c
2417 (gxv_morx_subtable_type1_substitutionTable_load,
2418 gxv_morx_subtable_type1_subtable_setup,
2419 gxv_morx_subtable_type1_entry_validate,
2420 gxv_morx_subtable_type1_substitutionTable_validate): Fix C++
2422 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF.
2424 * src/gxvalid/gxvmorx2.c (gxv_morx_subtable_type2_opttable_load,
2425 gxv_morx_subtable_type2_subtable_setup,
2426 gxv_morx_subtable_type2_ligActionIndex_validate,
2427 gxv_morx_subtable_type2_ligatureTable_validate): Fix C++ compiler
2429 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF.
2432 * src/gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare
2435 * src/gxvalid/gxvmorx5.c (gxv_morx_subtable_type5_insertionGlyph_load,
2436 gxv_morx_subtable_type5_subtable_setup): Fix C++ compiler error.
2437 (gxv_morx_subtable_type5_validate): Declare with FT_LOCAL_DEF.
2439 * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate,
2440 gxv_morx_validate): Improve trace message.
2442 * src/gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler
2444 (gxv_opbd_validate): Improve trace message.
2446 * src/gxvalid/gxvprop.c: Decorate constants with `U' and `L' where
2448 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace
2451 * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused
2452 parameter. Update all callers.
2453 (gxv_trak_validate): Improve trace message.
2455 * rules.mk (GXV_DRV_H): Add gxvfeat.h.
2457 2005-09-01 Werner Lemberg <wl@gnu.org>
2459 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'.
2461 * src/gxvalid/gxmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE),
2462 src/gxvalid/gxmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix
2465 * src/gxvalid/gxvmorx0.c, src/gxvalid/gxvmorx1.c,
2466 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvmorx4.c,
2467 src/gxvalid/gxvmorx5.c, src/gxvalid/gxvmort.c: Improve trace
2469 Decorate constants with `U' and `L' where appropriate.
2470 Fix compiler warnings.
2472 2005-08-31 Werner Lemberg <wl@gnu.org>
2474 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo.
2476 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message.
2478 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'.
2480 * src/gxvalid/gxvfeat.c, src/gxvalid/gxvjust.c,
2481 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmod.c,
2482 src/gxvalid/gxvmort0.c, src/gxvalid/gxvmort1.c,
2483 src/gxvalid/gxvmort2.c, src/gxvalid/gxvmort4.c,
2484 src/gxvalid/gxvmort5.c, src/gxvalid/gxvmort.c: Improve trace
2486 Decorate constants with `U' and `L' where appropriate.
2487 Fix compiler warnings.
2489 2005-08-30 Werner Lemberg <wl@gnu.org>
2491 * src/gxvalid/README: Revised.
2492 * src/gxvalid/gxvbsln.c: Fix compiler warnings.
2493 * src/gxvalid/gxvcommn.c: Fix compiler warnings.
2494 (gxv_XEntryTable_validate, gxv_compare_ranges): Remove unused
2495 parameter. Update all callers.
2496 Improve trace messages.
2499 2005-08-29 Werner Lemberg <wl@gnu.org>
2501 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add
2502 a preliminary section with some explanations about user allocation.
2504 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
2505 Don't abort if there are no data types, functions, etc., in a
2507 Print synopsis only if we have a data type, function, etc.
2509 * docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
2510 docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
2511 docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2513 2005-08-28 George Williams <gww@silcom.com>
2515 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed.
2516 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'.
2518 2005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk>
2520 * builds/unix/freetype2.in (CFlags): Add missing directory.
2522 2005-08-24 Werner Lemberg <wl@gnu.org>
2524 * docs/CHANGES: Mention gxvalid module.
2526 2005-08-23 Werner Lemberg <wl@gnu.org>
2528 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize
2529 render mode properly. Reported by chris@dokein.co.uk.
2531 2005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2533 Add gxvalid module to validate TrueType GX/AAT tables.
2535 Modifications on existing files:
2537 * Jamfile: Register gxvalid module.
2538 * src/base/Jamfile: Register ftgxval.c.
2539 * src/base/rule.mk: Register ftgxval.c.
2540 * docs/INSTALL.ANY: Register gxvalid/gxvalid.c.
2542 * include/freetype/config/ftheader.h (FT_GX_VALIDATE_H): New macro
2543 to include gxvalid header file.
2544 * include/freetype/config/ftmodule.h: Register gxv_module_class.
2546 * include/freetype/ftchapters.h: Add comment about gx_validation.
2547 * include/freetype/ftotval.h: Change keyword FT_VALIDATE_XXX
2548 to FT_VALIDATE_OTXXX to co-exist with gxvalid.
2549 * include/freetype/tttags.h: Add tags for TrueType GX/AAT tables.
2551 * include/freetype/internal/ftserv.h (FT_SERVICE_GX_VALIDATE_H): New
2552 macro for gxvalid service.
2553 * include/freetype/internal/fttrace.h: Add trace facilities for
2556 New files on existing directories:
2558 * include/freetype/internal/services/svgxval.h: Registration of
2559 validation service for TrueType GX/AAT and classic kern table.
2560 * include/freetype/ftgxval.h: Public API definition to use gxvalid.
2561 * src/base/ftgxval.c: Public API of gxvalid.
2563 New files under src/gxvalid/:
2565 * src/gxvalid/Jamfile src/gxvalid/README src/gxvalid/module.mk
2566 src/gxvalid/rules.mk src/gxvalid/gxvalid.c src/gxvalid/gxvalid.h
2567 src/gxvalid/gxvbsln.c src/gxvalid/gxvcommn.c src/gxvalid/gxvcommn.h
2568 src/gxvalid/gxverror.h src/gxvalid/gxvfeat.c src/gxvalid/gxvfgen.c
2569 src/gxvalid/gxvjust.c src/gxvalid/gxvkern.c src/gxvalid/gxvlcar.c
2570 src/gxvalid/gxvmod.c src/gxvalid/gxvmod.h src/gxvalid/gxvmort.c
2571 src/gxvalid/gxvmort.h src/gxvalid/gxvmort0.c src/gxvalid/gxvmort1.c
2572 src/gxvalid/gxvmort2.c src/gxvalid/gxvmort4.c src/gxvalid/gxvmort5.c
2573 src/gxvalid/gxvmorx.c src/gxvalid/gxvmorx.h src/gxvalid/gxvmorx0.c
2574 src/gxvalid/gxvmorx1.c src/gxvalid/gxvmorx2.c src/gxvalid/gxvmorx4.c
2575 src/gxvalid/gxvmorx5.c src/gxvalid/gxvopbd.c src/gxvalid/gxvprop.c
2576 src/gxvalid/gxvtrak.c: New files, gxvalid body.
2578 2005-08-21 Werner Lemberg <wl@gnu.org>
2580 * src/truetype/ttgload.c (TT_Load_Glyph): Only translate outline
2581 to (0,0) if bit 1 of the `head' table isn't set. This improves
2582 rendering of buggy fonts.
2584 2005-08-20 Chia I Wu <b90201047@ntu.edu.tw>
2586 * src/truetype/ttdriver.c (Load_Glyph): Don't check the validity of
2587 ttmetrics here. TrueType fonts with only sbits always have
2588 ttmetrics.valid set to false.
2590 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is
2591 valid before loading outline glyph.
2593 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak.
2595 2005-08-20 Werner Lemberg <wl@gnu.org>
2597 * src/sfnt/ttload.c (tt_face_load_metrics_header): Ignore missing
2598 `hhea' table for SFNT Mac fonts. Change based on a patch by
2599 mpsuzuki@hiroshima-u.ac.jp.
2601 2005-08-20 Masatake YAMATO <jet@gyve.org>
2603 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead
2606 2005-08-19 Werner Lemberg <wl@gnu.org>
2608 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler
2611 2005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
2613 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright
2616 2005-08-16 Chia I Wu <b90201047@ntu.edu.tw>
2618 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Remove original
2619 TT_Done_Context and rename TT_Destroy_Context to TT_Done_Context
2620 with slight changes.
2622 (TT_New_Context): Now takes TT_Driver argument directly.
2625 * src/truetype/ttobjs.h (tt_slot_init): New function.
2626 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution
2628 (tt_slot_init): New function to create extra points for the internal
2629 glyph loader. We then use it directly, instead of face's glyph
2630 loader, when loading glyph.
2632 * src/truetype/ttdriver.c (tt_driver_class): Use tt_slot_init for
2633 glyph slot initialization.
2634 (Load_Glyph): Load flag dependencies are handled here. Return error
2637 * src/truetype/ttgload.c: Heavy cleanup and refactoring.
2638 (org_to_cur): Removed.
2639 (TT_Load_Simple_Glyph): Call FT_GlyphLoader_CheckPoints.
2640 (TT_Hint_Glyph): New function to hint a zone, prepared by caller.
2641 (TT_Process_Simple_Glyph): s/load/loader/.
2642 Use loader->pp values instead of recalculation.
2644 No need to save/restore loader->stream before and after
2645 TT_Vary_Get_Glyph_Deltas now.
2646 (TT_LOADER_SET_PP): New macro to calculate and set the four phantom
2648 (load_truetype_glyph): Never set exec->glyphSize to 0. This closes
2649 Savannah bug #13107.
2650 Forget glyph frame before calling TT_Process_Simple_Glyph.
2651 Use TT_LOADER_SET_PP.
2652 Scale all four phantom points.
2653 Split off some functionality to ...
2654 (TT_Process_Composite_Component, TT_Process_Composite_Glyph): These
2656 (TT_Load_Glyph): Set various fields of `glyph' here, not in
2657 load_truetype_glyph and compute_glyph_metrics.
2658 Split off some functionality to ...
2659 (load_sbit_image, tt_loader_init): These new functions.
2660 (compute_glyph_metrics): Call FT_Outline_Get_CBox.
2662 2005-08-08 Werner Lemberg <wl@gnu.org>
2664 * docs/INSTALL.ANY: Updated.
2666 2005-08-05 Werner Lemberg <wl@gnu.org>
2668 * src/cff/cffgload.c (cff_builder_close_contour),
2669 src/psaux/psobjs.c (t1_builder_close_contour): Protect against
2670 zero `outline' pointer.
2672 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero
2675 2005-08-03 Werner Lemberg <wl@gnu.org>
2677 * src/sfnt/sfdriver.c (sfnt_interface) [FT_OPTIMIZE_MEMORY]:
2678 Reactivate pointers to tt_find_sbit_image and tt_load_sbit_metrics
2679 to make X work again.
2681 2005-08-02 Werner Lemberg <wl@gnu.org>
2683 * src/otvalid/otvcommn.h: Remove dead code.
2685 2005-07-31 Chia I Wu <b90201047@ntu.edu.tw>
2687 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New
2690 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New
2692 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight
2694 Move code that runs fpgm to tt_size_run_fpgm.
2695 (Reset_Outline_Size): Move code that runs prep to tt_size_run_prep.
2696 (tt_glyphzone_new): Allocate right size of arrays.
2697 Set max_points and max_contours properly.
2699 2005-07-26 Chia I Wu <b90201047@ntu.edu.tw>
2701 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary
2702 computations and clean up.
2704 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the
2705 internal copy of metrics.
2707 2005-07-12 Werner Lemberg <wl@gnu.org>
2709 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype.
2712 2005-07-04 Werner Lemberg <wl@gnu.org>
2714 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo.
2715 Reported by Brett Hutley.
2717 2005-06-30 David Turner <david@freetype.org>
2719 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c:
2720 Removing compiler warnings (Visual C++ /W4).
2723 Implement a work-around for broken C preprocessor in Visual C++ (it
2724 has been confirmed by the MS developers that it is indeed a bug
2725 which won't be fixed in the very near future).
2727 * Jamfile (FT2_COMPONENTS): Include otvalid (again).
2729 * src/otvalid/otvcommn.h (OTV_NAME, OTV_FUNC): New macros.
2730 (OTV_NEST1, OTV_NEST2, OTV_NEST3): Use OTV_NAME and OTV_FUNC to
2731 avoid argument expansion by argument prescan.
2732 Append `Func' to all affected macros and change them to take just a
2733 single argument. Example: `AttachList' is renamed to
2736 * src/otvalid/otvgdef.c, src/otvalid/otvgpos.c,
2737 src/otvalid/otvgsub.c, src/otvjstf.c: Append `Func' to macros
2738 affected by the changes to OTV_NESTx and modify them to take just a
2741 2005-06-20 Chia I Wu <b90201047@ntu.edu.tw>
2743 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function
2744 ft_glyphslot_grid_fit_metrics.
2746 * src/truetype/ttgload.c (compute_glyph_metrics): Use
2747 ft_glyphslot_grid_fit_metrics.
2749 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c
2750 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): Use
2751 ft_glyphslot_grid_fit_metrics.
2752 FT_Outline_Get_CBox is called twice.
2754 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Modify metrics to more
2755 reasonable values when emboldening outline glyphs. The theoretic
2756 ones are unrealistic.
2758 2005-06-16 Chia I Wu <b90201047@ntu.edu.tw>
2760 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
2763 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
2765 Don't increase slot->advance.y.
2767 2005-06-16 Werner Lemberg <wl@gnu.org>
2769 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
2770 (FREETYPE_PATCH): Set to 0.
2772 * builds/unix/configure.ac (version_info): Set to 9:9:3.
2773 Currently, we are still binary compatible.
2775 * builds/win32/visualc/index.html,
2776 builds/win32/visualc/freetype.dsp,
2777 builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
2779 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
2782 * docs/CHANGES, docs/VERSION.DLL: Updated.
2784 * ChangeLog: Split off older entries into...
2785 * ChangeLog.20, ChangeLog.21: These new files.
2787 2005-06-15 Kirill Smelkov <kirr@mns.spb.ru>
2789 The next release will be 2.2.0, so don't worry about source code
2790 backwards compatibility.
2792 * include/freetype/ftimage.h (FT_Outline_MoveToFunc,
2793 FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
2794 FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
2795 include/freetype/ftrender.h (FT_Glyph_TransformFunc,
2796 FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
2797 parameters with `const' where appropriate.
2799 2005-06-15 Chia I Wu <b90201047@ntu.edu.tw>
2801 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
2802 to make glyphs centered vertically.
2804 * src/truetype/ttgload.c (compute_glyph_metrics): Compute
2805 vertBearingY to make glyphs centered vertically.
2806 Fix some bugs in vertical metrics:
2808 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
2810 . As we use the glyph's cbox to calculate the top bearing now
2811 there is no need to adjust `top'.
2813 2005-06-15 Werner Lemberg <wl@gnu.org>
2815 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
2816 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
2818 2005-06-13 Werner Lemberg <wl@gnu.org>
2820 * docs/release: Update.
2822 ----------------------------------------------------------------------------
2824 Copyright 2005, 2006, 2007, 2008 by
2825 David Turner, Robert Wilhelm, and Werner Lemberg.
2827 This file is part of the FreeType project, and may only be used, modified,
2828 and distributed under the terms of the FreeType project license,
2829 LICENSE.TXT. By continuing to use, modify, or distribute this file you
2830 indicate that you have read the license and understand and accept it
2835 version-control: never