12006-05-12 Werner Lemberg <wl@gnu.org> 2 3 4 * Version 2.2.1 released. 5 ========================= 6 7 8 Tag sources with `VER-2-2-1'. 9 102006-05-12 Werner Lemberg <wl@gnu.org> 11 12 * src/tools/docmaker/sources.py (re_source_keywords): Add word 13 boundary markers. 14 * src/tools/docmaker/content.py (re_field): Allow `.' in field names 15 (but not at the beginning or end). 16 * src/tools/docmaker/tohtml.py (html_header_1): Use `utf-8' charset. 17 (block_footer): Split into... 18 (block_footer_start, block_footer_middle, block_footer_end): This to 19 add navigation buttons. 20 (HtmlFormatter::block_exit): Updated. 21 22 * include/freetype/*: Many minor documentation improvements (adding 23 links, spelling errors, etc.). 24 252006-05-11 Werner Lemberg <wl@gnu.org> 26 27 * README: Minor updates. 28 29 * include/freetype/*: s/scale/scaling value/ where appropriate. 30 Many other minor documentation improvements. 31 32 * src/tools/docmaker/sources.py (re_italic, re_bold): Handle 33 trailing punctuation. 34 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Add 35 warning message for undefined cross references. 36 Update handling of re_italic and re_bold. 37 382006-05-11 Masatake YAMATO <jet@gyve.org> 39 40 * builds/unix/ftsystem.c (FT_Stream_Open): Check errno only if 41 read system call returns -1. 42 Remove a redundant parenthesis. 43 442006-05-10 Werner Lemberg <wl@gnu.org> 45 46 * builds/unix/ftsystem.c (FT_Stream_Open): Avoid infinite loop if 47 given an empty, un-mmap()able file. Reported and suggested fix in 48 Savannah bug #16555. 49 50 * builds/freetype.mk (refdoc): Write-protect the `docmaker' 51 directory to suppress generation of .pyc files. According to the 52 Python docs there isn't a more elegant solution (currently). 53 54 * builds/toplevel.mk (dist): New target which builds .tar.gz, 55 .tar.bz2, and .zip files. Note that the version number is still 56 hard-coded. 57 (do-dist): Sub-target of `dist'. 58 (CONFIG_GUESS, CONFIG_SUB): New variables. 59 (.PHONY): Updated. 60 612006-05-09 Rajeev Pahuja <rpahuja@esri.com> 62 63 * builds/win32/visualc/freetype.sln, 64 builds/win32/visualc/freetype.vcproj: Upgraded to VS.NET 2005 from 65 VS.NET 2003 66 Added files ftbbox.c, fttype1.c, ftwinfnt.c, ftsynth.c. 67 68 * builds/win32/visualc/index.html: Updated. 69 702006-05-07 Werner Lemberg <wl@gnu.org> 71 72 Put version information into the configure script. Reported by Paul 73 Watson <pwatson@redlinepy.com>. 74 75 * builds/unix/configure.ac: Renamed to... 76 * builds/unix/configure.raw: This which now serves (with appropriate 77 modifications) as a template for configure.ac. 78 79 * version.sed: New script. 80 81 * autogen.sh: Generate configure.ac from configure.raw, using 82 FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH from freetype.h. 83 842006-05-06 Werner Lemberg <wl@gnu.org> 85 86 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. 87 88 * builds/unix/configure.ac (version_info): Set to 9:10:3. 89 90 * builds/win32/visualc/index.html, 91 builds/win32/visualc/freetype.dsp, 92 builds/win32/visualc/freetype.vcproj, builds/freetype.mk (refdoc), 93 Jamfile (RefDoc), README: s/220/221/, s/2.2.0/2.2.1/. 94 Minor updates. 95 96 * docs/CHANGES, docs/VERSION.DLL, docs/PROBLEMS, README.CVS: 97 Updated. 98 99 * builds/unix/install-sh: Updated from `texinfo' CVS module at 100 savannah.gnu.org. 101 102 * devel/ftoption.h: Synchronize with 103 include/freetype/config/ftoption.h. 104 1052006-05-04 Werner Lemberg <wl@gnu.org> 106 107 * src/lzw/ftlzw2.c: Renamed to... 108 * src/lzw/ftlzw.c: This. 109 110 * src/lzw/Jamfile, src/lzw/rules.mk: Updated. 111 112 * builds/mac/FreeType.m68k_cfm.make.txt, 113 builds/mac/FreeType.m68k_far.make.txt, 114 builds/mac/FreeType.ppc_carbon.make.txt, 115 builds/mac/FreeType.ppc_classic.make.txt: Updated. 116 1172006-05-03 David Turner <david@freetype.org> 118 119 Allow compilation again with C++ compilers. 120 121 * include/freetype/internal/ftmemory.h (FT_ASSIGNP, 122 FT_ASSIGNP_INNER): New macros which do the actual assignment, and 123 which exist in two variants (for C and C++). 124 Update callers accordingly. 125 1262006-05-03 Werner Lemberg <wl@gnu.org> 127 128 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Removed. 129 1302006-05-02 Werner Lemberg <wl@gnu.org> 131 132 * include/freetype/internal/ftmemory.h: s/new/newsz/ (for C++). 133 (FT_ALLOC): Remove redundant redefinition. 134 135 * builds/compiler/gcc-dev.mk (CFLAGS) [g++]: Don't use 136 `-Wstrict-prototypes'. 137 138 * src/base/ftstream.c (FT_Stream_EnterFrame): Add cast. 139 140 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [__cplusplus]: 141 Remove `extern'. 142 1432006-05-02 David Turner <david@freetype.org> 144 145 Update the memory management functions and macros to safely deal 146 with array size buffer overflows. This corresponds to attempts to 147 allocate arrays that are too large. For an example, consider the 148 following code: 149 150 count = read_uint32_from_file(); array = malloc( sizeof ( Item ) * 151 count ); for ( nn = 0; nn < count; nn++ ) 152 array[nn] = read_item_from_file(); 153 154 If `count' is larger than `FT_UINT_MAX/sizeof(Item)', the 155 multiplication overflows, and the array allocated os smaller than 156 the data read from the file. In this case, the heap will be 157 trashed, and this can be used as a denial-of-service attack, or make 158 the engine crash later. 159 160 The FT_ARRAY_NEW and FT_ARRAY_RENEW macros now ensure that the new 161 count is no larger than `FT_INT_MAX/item_size', otherwise a new 162 error code `FT_Err_Array_Too_Large' will be returned. 163 164 Note that the memory debugger now works again when FT_DEBUG_MEMORY 165 is defined. FT_STRICT_ALIASING has disappeared; the corresponding 166 code is now the default. 167 168 169 * include/freetype/config/ftconfig.h (FT_BASE_DEF) [!__cplusplus]: 170 Don't use `extern'. 171 172 * include/freetype/fterrdef.h (FT_Err_Array_Too_Large): New error 173 code. 174 175 * include/freetype/internal/ftmemory.h (FT_DEBUG_INNER) 176 [FT_DEBUG_MEMORY]: New macro. 177 (ft_mem_realloc, ft_mem_qrealloc): Pass new object size count also. 178 (ft_mem_alloc_debug, ft_mem_qalloc_debug, ft_mem_realloc_debug, 179 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed. 180 (FT_MEM_ALLOC, FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, 181 FT_MEM_FREE): Redefine. 182 (FT_MEM_NEW_ARRAY, FT_MEM_RENEW_ARRAY, FT_MEM_QNEW_ARRAY, 183 FT_MEM_QRENEW_ARRAY): Redefine. 184 (FT_ALLOC_MULT, FT_REALLOC_MULT, FT_MEM_QALLOC_MULT, 185 FT_MEM_QREALLOC_MULT): New macros. Update callers where 186 appropriate. 187 (FT_MEM_SET_ERROR): Slightly redefine. 188 189 190 * src/base/ftdbgmem.c (_ft_debug_file, _ft_debug_lineno) 191 [FT_DEBUG_MEMORY]: New global variables, replacing... 192 (FT_MemTableRec) [FT_DEBUG_MEMORY]: Remove `filename' and 193 `line_no'. Update all callers. 194 (ft_mem_debug_alloc) [FT_DEBUG_MEMORY]: Avoid possible integer 195 overflow. 196 (ft_mem_alloc_debug, ft_mem_realloc_debug, ft_mem_qalloc_debug, 197 ft_mem_qrealloc_debug, ft_mem_free_debug): Removed. 198 199 * src/base/ftmac.c (read_lwfn): Catch integer overflow. 200 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus): Ditto. 201 * src/base/ftutil.c: Remove special code for FT_STRICT_ALIASING. 202 (ft_mem_alloc, ft_mem_realloc, ft_mem_qrealloc): Rewrite. 203 204 205 * include/freetype/ftstream.h (FT_FRAME_ENTER, FT_FRAME_EXIT, 206 FT_FRAME_EXTRACT, FT_FRAME_RELEASE): Use FT_DEBUG_INNER to report the 207 place where the frames were entered, extracted, exited or released 208 in the memory debugger. 209 210 * src/base/ftstream.c (FT_Stream_ReleaseFrame) [FT_DEBUG_MEMORY]: 211 Call ft_mem_free. 212 (FT_Stream_EnterFrame) [FT_DEBUG_MEMORY]: Use ft_mem_qalloc. 213 (FT_Stream_ExitFrame) [FT_DEBUG_MEMORY]: Use ft_mem_free. 214 2152006-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 216 217 * src/base/ftobjs.c (Mac_Read_POST_Resource): Correct pfb_pos 218 initialization, remove extra cast to copy to pfb_lenpos. This fixes 219 parsing of PFB fonts with MacOS resource fork (bug introduced 220 2003-09-11). Patch provided by Huib-Jan Imbens <ft@imbens.nl>. 221 2222006-04-29 Werner Lemberg <wl@gnu.org> 223 224 Further C library abstraction. Based on a patch from 225 msn2@bidyut.com. 226 227 * include/freetype/config/ftstdlib.h (FT_CHAR_BIT, FT_FILE, 228 ft_fopen, ft_fclose, ft_fseek, ft_ftell, ft_fread, ft_smalloc, 229 ft_scalloc, ft_srealloc, ft_sfree, ft_labs): New wrapper macros for 230 C library functions. Update all users accordingly (and catch some 231 other places where the C library function was used instead of the 232 wrapper functions). 233 234 * src/base/ftsystem.c: Don't include stdio.h and stdlib.h. 235 * src/gzip/zutil.h [MSDOS && !(__TURBOC__ || __BORLANDC__)]: Don't 236 include malloc.h. 237 238 239 * builds/unix/unix-def.in (datarootdir): Define, for autoconf 2.59c 240 and forthcoming versions. 241 2422006-04-28 Werner Lemberg <wl@gnu.org> 243 244 * src/lzw/ftlzw.c, src/lzw/zopen.c, src/lzw/zopen.h: Removed, 245 obsolete. 246 2472006-04-27 yi luo <luoyi.ly@gmail.com> 248 249 * builds/win32/visualc/freetype.vcproj: Updated. 250 2512006-04-26 David Turner <david@freetype.org> 252 253 254 * Version 2.2 released. 255 ======================= 256 257 258 Tag sources with `VER-2-2-0'. 259 2602006-04-26 Werner Lemberg <wl@gnu.org> 261 262 * src/psaux/psobjs.c (shift_elements): Don't use FT_Long but 263 FT_PtrDist for `delta'. Reported by Céline PILLET 264 <Celine.Pillet@Tagginfo.com>. 265 2662006-04-21 David Turner <david@freetype.org> 267 268 * include/freetype/ftincrem.h: Documentation updates. 269 (FT_Incremental_Interface): New typedef. 270 271 * include/freetype/ftmodapi.h, include/freetype/ftglyph.h: 272 Documentation updates. 273 274 * include/freetype/freetype.h: Documentation update. 275 (FT_HAS_FAST_GLYPHS): Always set to 0. 276 277 * include/freetype/ftstroke.h, src/base/ftstroke.c (FT_Stroker_New): 278 Take an FT_Library argument instead of FT_Memory. 279 280 * src/sfnt/ttcmap.c: Remove compiler warnings (gcc-4.0.2). 281 2822006-04-13 David Turner <david@freetype.org> 283 284 * src/autofit/afloader.c (af_loader_init, af_loader_load_g): Remove 285 superfluous code in the auto-fitter's loader. 286 2872006-04-05 Detlef Würkner <TetiSoft@apg.lahn.de> 288 289 * builds/amiga/makefile, builds/amiga/makefile.os4, 290 builds/amiga/smakefile: Added FT2_BUILD_LIBRARY define. 291 2922006-04-03 luoyi <luoyi.ly@gmail.com> 293 294 * builds/compiler/intelc.mk (TE): New variable. 295 (ANSIFLAGS): Updated. 296 2972006-04-03 Werner Lemberg <wl@gnu.org> 298 299 * builds/exports.mk (clean_symbols_list, clean_apinames): Removed. 300 (CLEAN): Add $(EXPORTS_LIST) and $(APINAMES_EXE). 301 (.PHONY): Updated. 302 303 * configure.ac: Minor fixes to improve --help output. 304 305 306 * docs/PROBLEMS: New file. 307 3082006-04-01 David Turner <david@freetype.org> 309 310 * docs/CHANGES: Updated. 311 312 * include/freetype/ftcache.h, include/freetype/config/ftheader.h: 313 Update documentation comments. 314 3152006-04-01 Werner Lemberg <wl@gnu.org> 316 317 * builds/unix/install.mk (uninstall): Don't handle `cache' 318 directory which no longer exists. 319 3202006-03-29 Detlef Würkner <TetiSoft@apg.lahn.de> 321 322 * src/psaux/psconv.c: Changed some variables which are expected to 323 hold negative values from `char' to `FT_Char' to allow building with 324 a compiler where `char' is unsigned by default. 325 3262006-03-27 David Turner <david@freetype.org> 327 328 * src/sfnt/ttkern.c (tt_face_get_kerning): Fix a serious bug that 329 causes some programs to go into an infinite loop when dealing with 330 fonts that don't have a properly sorted kerning sub-table. 331 3322006-03-26 Werner Lemberg <wl@gnu.org> 333 334 * src/bdf/bdflib.c (ERRMSG4): New macro. 335 (_bdf_parse_glyphs): Handle invalid BBX values. 336 337 * include/freetype/fterrdef.h (FT_Err_Bbx_Too_Big): New error 338 macro. 339 3402006-03-23 Werner Lemberg <wl@gnu.org> 341 342 * docs/CHANGES: Updated. 343 344 345 * src/tools/docmaker/tohtml.py (html_header_2): Add horizontal 346 padding between table elements. 347 (html_header_1): The `DOCTYPE' comment must be in uppercase. 348 (make_html_para): Convert `...' quotations into real left and 349 right single quotes. 350 Use `para_header' and `para_footer'. 351 352 * src/tools/docmaker/sources.py (re_bold, re_italic): Accept "'" 353 also. 354 3552006-03-23 David Turner <david@freetype.org> 356 357 Add FT_Get_SubGlyph_Info API to retrieve subglyph data. Note that 358 we do not expose the FT_SubGlyphRec structure. 359 360 * include/freetype/internal/ftgloadr.h (FT_SUBGLYPH_FLAGS_*): Moved 361 to... 362 * include/freetype/freetype.h (FT_SUBGLYPH_FLAGS_*): Here. 363 (FT_Get_SubGlyph_Info): New declaration. 364 365 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): New function. 366 367 368 * src/autofit/afloader.c (af_loader_load_g): Compute lsb_delta and 369 rsb_delta correctly in edge cases. 370 3712006-03-22 Werner Lemberg <wl@gnu.org> 372 373 * src/cache/ftccache.c, (ftc_node_mru_up, FTC_Cache_Lookup) 374 [!FTC_INLINE]: Compile conditionally. 375 * src/cache/ftccache.h: Updated. 376 377 * src/cache/ftcglyph.c (FTC_GNode_Init, FTC_GNode_UnselectFamily, 378 FTC_GNode_Done, FTC_GNode_Compare, FTC_Family_Init, FTC_GCache_New): 379 s/FT_EXPORT/FT_LOCAL/. 380 (FTC_GCache_Init, FTC_GCache_Done): Commented out. 381 (FTC_GCache_Lookup) [!FTC_INLINE]: Compile conditionally. 382 s/FT_EXPORT/FT_LOCAL/. 383 * src/cache/ftcglyph.h: Updated. 384 385 * src/cache/ftcimage.c (FTC_INode_Free, FTC_INode_New): 386 s/FT_EXPORT/FT_LOCAL/. 387 (FTC_INode_Weight): Commented out. 388 * src/cache/ftcimage.h: Updated. 389 390 * src/cache/ftcmanag.c (FTC_Manager_Compress, 391 FTC_Manager_RegisterCache, FTC_Manager_FlushN): 392 s/FT_EXPORT/FT_LOCAL/. 393 * src/cache/ftcmanag.h: Updated. 394 395 * src/cache/ftcsbits.c (FTC_SNode_Free, FTC_SNode_New, 396 FTC_SNode_Compare): s/FT_EXPORT/FT_LOCAL/. 397 (FTC_SNode_Weight): Commented out. 398 * src/cache/ftcsbits.h: Updated. 399 4002006-03-22 Werner Lemberg <wl@gnu.org> 401 402 * src/cache/ftccache.c, src/cache/ftccache.h (FTC_Node_Destroy): 403 Remove, unused. 404 405 * src/cache/ftccmap.h: Remove, unused. 406 407 * src/cache/rules.mk (CACHE_DRV_H): Remove ftccmap.h. 408 4092006-03-21 Zhe Su <james.su@gmail.com> 410 411 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Improve 412 algorithm. 413 4142006-03-21 Werner Lemberg <wl@gnu.org> 415 416 * src/cff/cfftypes.h (CFF_CharsetRec): Add `max_cid' member. 417 418 * src/cff/cffload.c (cff_charset_load): Set `charset->max_cid'. 419 420 * src/cff/cffgload.c (cff_slot_load): Change type of third parameter 421 to `FT_UInt'. 422 Check range of `glyph_index'. 423 * src/cff/cffgload.h: Updated. 424 425 426 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Handle invalid offset 427 correctly. 428 429 430 * builds/freetype.mk (refdoc), docs/CHANGES, Jamfile (RefDoc), 431 README: s/2.1.10/2.2/. 432 4332006-03-21 David Turner <david@freetype.org> 434 435 * src/autofit/aflatin.c (af_latin_metrics_scale): Fix small bug 436 that crashes the auto-hinter (introduced by previous patch). 437 4382006-03-20 Werner Lemberg <wl@gnu.org> 439 440 * builds/freetype.mk (CACHE_DIR, CACHE_H): Remove. 441 (FREETYPE_H): Updated. 442 443 * src/cache/rules.mk (CACHE_H_DIR): Remove. 444 (CACHE_DRV_H): Updated. 445 4462006-03-20 David Turner <david@freetype.org> 447 448 * include/freetype/cache/ftccache.h, 449 include/freetype/cache/ftccmap.h, include/freetype/cache/ftcglyph.h 450 include/freetype/cache/ftcimage.h include/freetype/cache/ftcmanag.h 451 include/freetype/cache/ftcmru.h include/freetype/cache/ftcsbits.h: 452 Move to... 453 454 * src/cache/ftccache.h, src/cache/ftcglyph.h, src/cache/ftcimage.h, 455 src/cache/ftcsbits.h, src/cache/ftcmanag.h, src/cache/ftccmap.h, 456 src/cache/ftcmru.h: This new location. 457 Update declarations according to the changes in the corresponding 458 source files. 459 460 Note that these files are not used by FreeType clients; all public 461 APIs of the cache module have been already moved to 462 `include/freetype/ftcache.h', and all FT_CACHE_INTERNAL_XXXX_H 463 macros resolve to it. 464 465 Reason for the move is to allow modifications of the internals 466 without interferences with rogue clients. Note that there are no 467 known clients that access the cache internals at the moment. 468 469 * builds/unix/install.mk (install): Don't install headers from 470 $(CACHE_H). 471 Remove `freetype/cache' from the target directory. 472 473 * include/freetype/config/ftheader.h (FT_CACHE_MANAGER_H, 474 FT_CACHE_INTERNAL_MRU_H, FT_CACHE_INTERNAL_MANAGER_H, 475 FT_CACHE_INTERNAL_CACHE_H, FT_CACHE_INTERNAL_GLYPH_H, 476 FT_CACHE_INTERNAL_IMAGE_H, FT_CACHE_INTERNAL_SBITS_H): Point to 477 FT_CACHE_H. 478 479 * src/cache/ftcbasic.c, src/cache/ftccache.h, src/cache/ftccback.h, 480 src/cache/ftccmap.c, src/cache/ftcglyph.c, src/cache/ftcglyph.h, 481 src/cache/ftcimage.c, src/cache/ftcimage.h, src/cache/ftcmanag.c, 482 src/cache/ftcmanag.h, src/cache/ftcmru.h, src/cache/ftcsbits.c, 483 src/cache/ftcsbits.h: Don't use the FT_CACHE_INTERNAL_XXX_H macros 484 but include the headers directly (which are now in `src/cache'). 485 486 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H 487 macros but include the headers directly. 488 (FTC_Cache_Init, FTC_Cache_Done, FTC_Cache_NewNode, 489 FTC_Cache_Lookup, FTC_Cache_RemoveFaceID): Declare as FT_LOCAL_DEF. 490 491 * src/cache/ftccache.c: Don't use the FT_CACHE_INTERNAL_XXX_H 492 macros but include the headers directly. 493 (FTC_MruNode_Prepend, FTC_MruNode_Up, FTC_MruNode_Remove, 494 FTC_MruList_Init, FTC_MruList_Reset, FTC_MruList_Done, 495 FTC_MruList_New, FTC_MruList_Remove, FTC_MruList_RemoveSelection): 496 Declare as FT_LOCAL_DEF. 497 (FTC_MruList_Find, FTC_MruList_Lookup) [!FTC_INLINE]: Compile 498 conditionally. 499 Declare as FT_LOCAL_DEF. 500 501 502 * builds/win32/visualc/freetype.dsp: Update project file, add 503 missing base source files (ftstroke.c, ftxf86.c, etc.). 504 505 506 * src/autofit/afcjk.c, src/autofit/aflatin.c, src/base/ftobjs.c, 507 src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrobjs.c, 508 src/sfnt/sfobjs.c, src/sfnt/ttmtx.c, src/type1/t1afm.c, 509 src/type1/t1objs.c: Remove compiler warnings when building with 510 Visual C++ 6 and /W4. 511 512 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal 513 hinting for italic/oblique fonts. 514 515 516 517 * src/truetype/ttpload.c, src/truetype/ttpload.h 518 (tt_face_get_device_metrics): Change second argument to `FT_UInt'. 519 5202006-03-06 David Turner <david@freetype.org> 521 522 * src/cache/ftcmanag.c (FTC_Manager_Lookup_Size): Prevent crashes in 523 Mozilla/FireFox print preview in Ubuntu Hoary. 524 5252006-02-28 Chia-I Wu <b90201047@ntu.edu.tw> 526 527 * src/base/ftutil.c (ft_mem_qalloc) [FT_STRICT_ALIASING]: Do not 528 return error when size == 0. 529 5302006-02-28 Chia-I Wu <b90201047@ntu.edu.tw> 531 532 * src/base/ftobjs.c (FT_Done_Library): Remove modules in reverse 533 order so that type42 module is removed before truetype module. This 534 avoids double free in some occasions. 535 5362006-02-28 David Turner <david@freetype.org> 537 538 * Release candidate VER-2-2-0-RC4. 539 ---------------------------------- 540 541 * docs/CHANGES: Documentation updates. 542 5432006-02-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 544 545 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to 546 build ftvalid in ft2demos. It works as dummy ABI if gxvalid is not 547 built. 548 5492006-02-27 Werner Lemberg <wl@gnu.org> 550 551 * include/freetype/cache/ftccache.h 552 [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove declaration of 553 ftc_node_done. 554 555 * src/cache/ftccache.c (ftc_node_destroy) 556 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Mark as FT_LOCAL_DEF. This 557 should now fix all possible compilation options. 558 5592006-02-27 David Turner <david@freetype.org> 560 561 * src/base/ftutil.c (ft_mem_alloc, ft_mem_qalloc, ft_mem_realloc, 562 ft_mem_qrealloc): Return an error if a negative size is passed in 563 parameters. 564 565 * src/cache/ftccache.c (ftc_node_destroy): Mark as FT_BASE_DEF since 566 it needs to be exported for rogue clients. 567 568 * src/pshinter/pshglob.c (psh_blues_set_zones_0): Prevent problems 569 with malformed fonts which have an odd number of blue values (these 570 are broken according to the specs). 571 572 * src/cff/cffload.c (cff_subfont_load), src/type1/t1load.c 573 (T1_Open_Face): Modify the loaders to force even-ness of 574 `num_blue_values'. 575 576 (cff_index_access_element): Ignore invalid entries in index files. 577 5782006-02-27 Chia-I Wu <b90201047@ntu.edu.tw> 579 580 * src/base/ftobjs.c (FT_Set_Char_Size): Check the case where width 581 or height is 0. 582 5832006-02-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 584 585 * builds/mac/FreeType.m68k_cfm.make.txt, 586 builds/mac/FreeType.m68k_far.make.txt, 587 builds/mac/FreeType.ppc_carbon.make.txt, 588 builds/mac/FreeType.ppc_classic.make.txt: Update to new header 589 inclusion introduced on 2006-02-16. 590 5912006-02-27 Chia-I Wu <b90201047@ntu.edu.tw> 592 593 * src/base/ftobjs.c (GRID_FIT_METRICS): New macro. 594 (ft_glyphslot_grid_fit_metrics, FT_Load_Glyph) [GRID_FIT_METRICS]: 595 Re-enable glyph metrics grid-fitting. It is now done in the base 596 layer. 597 (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Make sure the width and 598 height are not too small or too large, just like we were doing in 599 2.1.10. 600 601 * src/autofit/afloader.c (af_loader_load_g): The vertical metrics 602 are not scaled. 603 6042006-02-26 Werner Lemberg <wl@gnu.org> 605 606 * docs/release: Minor additions and clarifications. 607 608 * docs/CHANGES: Updated to reflect many fixes for backward 609 compatibility. Still incomplete. 610 6112006-02-26 David Turner <david@freetype.org> 612 613 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Re-enable 614 conservative rounding of metrics to avoid breaking clients like 615 Pango (see https://bugzilla.gnome.org/show_bug.cgi?id=327852). 616 6172006-02-25 Werner Lemberg <wl@gnu.org> 618 619 * devel/ftoption.h: Synchronize with 620 include/freetype/config/ftoption.h. 621 622 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF (again). 623 6242006-02-25 David Turner <david@freetype.org> 625 626 Fix compiler warnings as well as C++ compilation problems. 627 Add missing prototypes. 628 629 * src/autofit/afcjk.c, src/base/ftobjs.c, src/base/ftutil.c, 630 src/bdf/bdfdrivr.c, src/cff/cffcmap.c, src/cff/cffobjs.c, 631 src/psaux/afmparse.c,, src/psaux/t1cmap.c, src/smooth/ftgrays.c 632 src/tools/apinames.c, src/truetype/ttdriver.c: Add various casts, 633 initialize variables, and decorate functions with FT_CALLBACK_DEF, 634 etc., to fix compiler warnings (and C++ compiling errors). 635 636 * src/cache/ftcbasic.c: Fix `-Wmissing-prototypes' warnings with 637 gcc. 638 639 * builds/unix/ftsystem.c: Don't include FT_INTERNAL_OBJECTS_H but 640 FT_INTERNAL_STREAM_H. 641 642 * src/base/ftsystem.c: Include FT_INTERNAL_STREAM_H. 643 644 * include/freetype/config/ftheader.h (FT_PFR_H): New macro. 645 646 * include/freetype/config/ftoption.h (FT_STRICT_ALIASING): Don't 647 define for C++. 648 649 * include/freetype/internal/services/svotval.h: Don't include 650 FT_OPENTYPE_VALIDATE_H but FT_INTERNAL_VALIDATE_H. 651 652 * include/freetype/internal/services/svpfr.h: Include FT_PFR_H. 653 654 * src/gzip/ftgzip.c: Include FT_GZIP_H. 655 656 * src/lzw/ftlzw.c, src/lzw/ftlzw2.c: Include FT_LZW_H. 657 658 * src/sfnt/ttbdf.c (tt_face_load_bdf_props): Rearrange code. 659 6602006-02-24 Chia-I Wu <b90201047@ntu.edu.tw> 661 662 * src/base/ftoutln.c (FT_OUTLINE_GET_CONTOUR, ft_contour_has, 663 ft_contour_enclosed, ft_outline_get_orientation): Commented out. We 664 have to wait until `FT_GlyphSlot_Own_Bitmap' is stabilized. 665 (FT_Outline_Embolden): Use `FT_Outline_Get_Orientation'. 666 6672006-02-24 Chia-I Wu <b90201047@ntu.edu.tw> 668 669 * include/freetype/ftbitmap.h (FT_Bitmap_Embolden): Update 670 documentation. 671 672 * include/freetype/ftsynth.h (FT_GlyphSlot_Own_Bitmap), 673 src/base/ftsynth.c (FT_GlyphSlot_Own_Bitmap): New function to make 674 sure a glyph slot owns its bitmap. It is also marked experimental 675 and due to change. 676 (FT_GlyphSlot_Embolden): Undo the last change. It turns out that 677 rendering the outline confuses some applications. 678 6792006-02-24 David Turner <david@freetype.org> 680 681 * Release candidate VER-2-2-0-RC3. 682 ---------------------------------- 683 684 * src/cache/ftcbasic.c: Correct compatibility hack bug. 685 6862006-02-24 Chia-I Wu <b90201047@ntu.edu.tw> 687 688 * include/freetype/freetype.h (FT_Size_RequestRec): Change the type 689 of `width' and `height' to `FT_Long'. 690 (enum FT_Size_Request_Type), src/base/ftobjs.c (FT_Request_Metrics): 691 New request type `FT_SIZE_REQUEST_TYPE_SCALES' to specify the scales 692 directly. 693 6942006-02-23 David Turner <david@freetype.org> 695 696 Two BDF patches from Debian libfreetype6 for 2.1.10. 697 698 * src/bdf/bdflib.c (_bdf_parse_glyphs): Fix a bug with zero-width 699 glyphs. 700 Fix a problem with large encodings. 701 702 703 Fix binary compatibility issues for gnustep-back (GNUstep backend 704 module) which still crashes under Sarge. 705 706 * src/cache/ftccmap.c (FTC_OldCMapType, FTC_OldCMapIdRec, 707 FTC_OldCMapDesc) [FT_CONFIG_OPTION_OLD_INTERNALS]: New data 708 structures and enumerations. 709 (FTC_CMapCache_Lookup) [FT_CONFIG_OPTION_OLD_INTERNALS]: New 710 compatibility code. 711 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 715 candidate. 716 7172006-02-23 Chia-I Wu <b90201047@ntu.edu.tw> 718 719 * include/freetype/ftoutln.h (enum FT_Orientation): New value 720 `FT_ORIENTATION_NONE'. 721 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'. 728 729 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Render the outline and 730 use bitmap's embolden routine when the outline one failed. 731 7322006-02-22 Chia-I Wu <b90201047@ntu.edu.tw> 733 734 * modules.cfg: Compile in ftotval.c and ftxf86.c by default for ABI 735 compatibility. 736 737 * src/sfnt/sfobjs.c (sfnt_done_face): Fix a memory leak. 738 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.) 742 743 * src/truetype/ttpload.c (tt_face_load_hdmx, 744 tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not 745 actually used. 746 7472006-02-21 David Turner <david@freetype.org> 748 749 Add a new API named FT_Get_TrueType_Engine_Type to determine whether 750 we have a patented, unpatented, or unimplemented TrueType bytecode 751 interpreter. 752 753 The FT_Get_Module_Flags API was removed consequently. 754 755 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed. 756 Replaced with... 757 (FT_Get_TrueType_Engine_Type): This. 758 (FT_TrueTypeEngineType): New enumeration. 759 760 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H): 761 New macro. 762 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. 766 767 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H. 768 (tt_service_truetype_engine): New service structure. 769 (tt_services): Register it. 770 771 * include/freetype/internal/services/svtteng.h: New file. 772 773 774 * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented 775 embedded bitmaps from being correctly listed and used. 776 777 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. 783 784 785 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of 786 character advances. 787 7882006-02-20 David Turner <david@freetype.org> 789 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. 793 794 * include/freetype/internal/sfnt.h (SFNT_Interface): Move 795 `set_sbit_strike' and `load_sbit_metrics' fields to the location of 796 version 2.1.8. 797 798 * src/sfnt/sfdriver.c (tt_face_set_sbit_strike_stub): Call 799 FT_Size_Request. 800 (sfnt_interface): Updated. 801 802 * src/sfnt/ttsbit.c [FT_CONFIG_OPTION_OLD_INTERNALS]: Don't load 803 ttsbit0.c. 804 (tt_load_sbit_metrics): Make `sbit_small_metrics_fields' static. 805 806 * src/sfnt/ttsbit.h: Updated. 807 8082006-02-17 David Turner <david@freetype.org> 809 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. 813 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_OldImageDesc, 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). 823 8242006-02-17 Werner Lemberg <wl@gnu.org> 825 826 * devel/ftoption.h: Synchronize with 827 include/freetype/config/ftoption.h. 828 8292006-02-16 David Turner <david@freetype.org> 830 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. 834 835 * include/freetype/config/ftoption.h 836 (FT_CONFIG_OPTION_OLD_INTERNALS): New macro. 837 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 854 structures. 855 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 859 versions. 860 Use FT_CONFIG_OPTION_OLD_INTERNALS to add function stubs for old 861 functions: 862 863 ft_stub_set_char_sizes 864 ft_stub_set_pixel_sizes 865 866 Rename the following internal functions to provide the old function 867 names as stubs: 868 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 879 8802006-02-15 Chia-I Wu <b90201047@ntu.edu.tw> 881 882 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove 883 unused `max_points' and `max_contours'. 884 885 * src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c 886 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Update. 887 888 * include/freetype/internal/tttypes.h (TT_FaceRec): Remove unused 889 `max_components'. 890 891 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove unused 892 `loadSize' and `loadStack'. 893 894 * src/truetype/ttinterp.c (TT_Done_Context, TT_Load_Context), 895 src/sfnt/ttload.c (tt_face_load_maxp): Update. 896 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 900 defined. 901 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. 904 (finally!) 905 906 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. 910 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 914 `sfnt_load_face'. 915 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. 920 921 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Read metrics 922 from `eblc'. 923 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. 927 9282006-02-14 Werner Lemberg <wl@gnu.org> 929 930 * include/freetype/ftoutln.h (FT_Outline_Embolden): Mention in 931 documentation that negative strength values are possible. 932 Give an example call. 933 934 * include/freetype/freetype.h (FT_GlyphSlotRec): Improve 935 documentation of `outline' field. 936 937 * src/sfnt/sfobjs.c: Include FT_INTERNAL_DEBUG_H. 938 * src/sfnt/sfdriver.c: Include ttmtx.h. 939 940 * src/autofit/afcjk.c: Include aftypes.h and aflatin.h. 941 9422006-02-14 Chia-I Wu <b90201047@ntu.edu.tw> 943 944 * src/sfnt/ttmtx.c (tt_face_get_metrics): Typo. 945 9462006-02-14 Chia-I Wu <b90201047@ntu.edu.tw> 947 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'. 951 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 954 this fixes it. 955 956 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation 957 error when FT_CONFIG_OPTION_INCREMENTAL is defined. 958 9592006-02-13 Chia-I Wu <b90201047@ntu.edu.tw> 960 961 Clean up the SFNT_Interface. In this final pass, `load_hmtx' is 962 split from `load_hhea'. 963 964 * include/freetype/internal/sfnt.h, src/sfnt/sfdriver.c, 965 src/sfnt/ttmtx.c, src/sfnt/ttmtx.h: Split `hmtx' from `hhea'. 966 967 * src/sfnt/sfobjs.c (sfnt_load_face): Update. 968 9692006-02-13 Chia-I Wu <b90201047@ntu.edu.tw> 970 971 * src/sfnt/ttmtx.h, src/sfnt/ttmtx.c: Why are there two copies of 972 code... 973 9742006-02-13 Chia-I Wu <b90201047@ntu.edu.tw> 975 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'. 980 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'. 984 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'. 990 991 * src/sfnt/sfobjs.c (sfnt_init_face): Recognize TTC here. 992 9932006-02-13 Chia-I Wu <b90201047@ntu.edu.tw> 994 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 999 module. 1000 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'. 1004 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. 1009 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'. 1014 1015 * include/freetype/internal/fttrace.h: New trace: ttmtx. 1016 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. 1021 1022 * src/cff/cffgload.c, src/cff/cffobjs.c: Update. 1023 1024 * src/truetype/ttgload.c, src/truetype/ttobjs.c: Update. 1025 10262006-02-11 Chia-I Wu <b90201047@ntu.edu.tw> 1027 1028 * src/autofit/afcjk.c (af_cjk_metrics_init): Fix a stupid bug... 1029 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'. 1033 10342006-02-11 Chia-I Wu <b90201047@ntu.edu.tw> 1035 1036 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_CJK): #define 1037 to enable autofit CJK script support. (#define'd by default.) 1038 1039 * src/autofit/aflatin.h (AF_LATIN_CONSTANT): New macro. 1040 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. 1045 1046 * src/autofit/afcjk.c: Minor updates due to the above three changes. 1047 1048 * docs/TODO, docs/CHANGES: Updated. 1049 10502006-02-09 Chia-I Wu <b90201047@ntu.edu.tw> 1051 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. 1054 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. 1058 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. 1062 1063 * src/autofit/aflatin.h (af_latin_metrics_init_widths), 1064 src/autofit/aflatin.c (af_latin_metrics_init_widths): Made 1065 `FT_LOCAL'. 1066 Use the character given by the caller. 1067 (af_latin_metrics_init_widths, af_latin_hints_link_segments): Scale 1068 the thresholds. 1069 1070 * src/autofit/afloader.c (af_loader_load_g): Respect 1071 AF_SCALER_FLAG_NO_ADVANCE. 1072 10732006-02-09 Werner Lemberg <wl@gnu.org> 1074 1075 * src/cid/cidparse.c (cid_parse_new): Remove shadowing variable. 1076 10772006-02-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1078 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 1081 2005-11-02). 1082 10832006-02-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1084 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. 1087 10882006-02-01 Werner Lemberg <wl@gnu.org> 1089 1090 * src/otvalid/module.mk: s/otvalid_module_class/otv_module_class/. 1091 * src/gxvalid/module.mk: s/gxvalid_module_class/gxv_module_class/. 1092 1093 * builds/unix/unixddef.mk: Actually do define PLATFORM (fixing 1094 change from 2006-01-31). 1095 (TOP_DIR, OBJ_DIR): Update. 1096 1097 * builds/unix/install.mk (install): Fix path for ftmodule.h. 1098 1099 * Makefile, *.mk, builds/unix/unix-cc.in, builds/unix-def.in: Use 1100 `?=' where appropriate. 1101 1102 * builds/detect.mk (TOP_DIR), builds/os2/os2-dev.mk (TOP_DIR), 1103 builds/win32/w32-dev.mk (TOP_DIR): Removed. Defined elsewhere. 1104 11052006-01-31 Werner Lemberg <wl@gnu.org> 1106 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. 1110 1111 This change also fixes the creation of ftmodule.h; it now depends on 1112 `modules.cfg' and thus is rebuilt only if necessary. 1113 1114 Finally, a version of `ftoption.h' in OBJ_DIR is preferred over the 1115 default location. 1116 1117 * modules.cfg: New file. 1118 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. 1123 Add FTOPTION_FLAG. 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. 1131 1132 * builds/modules.mk: (MODULE_LIST): Removed. 1133 (make_module_list, clean_module_list): Replace targets 1134 with... 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 1140 changed. 1141 Update all callers. 1142 ($FTMODULE_H)): Rule to create `ftmodule.h', depending on 1143 `modules.cfg'. 1144 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. 1150 1151 * Makefile (USE_MODULES): Remove. Update all users. 1152 (OBJ_DIR): Define it here. 1153 1154 * src/*/module.mk: Change 1155 1156 make_module_list: foo 1157 foo: ... 1158 1159 to 1160 1161 FTMODULE_H_COMMANDS += FOO 1162 define FOO 1163 ... 1164 endef 1165 1166 in all files. `FTMODULE_H_COMMANDS' is used in `FTMODULE_H_CREATE'. 1167 1168 * src/base/rules.mk (BASE_EXT_SRC): Use BASE_EXTENSIONS. 1169 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. 1174 1175 * builds/unix/unix.mk: Include `install.mk' only if BUILD_PROJECT is 1176 defined. 1177 (have_mk): Don't use `strip' function. 1178 Test for unix-def.mk in OBJ_DIR, not BUILD_DIR (and invert the test 1179 accordingly). 1180 1181 * builds/unix/install.mk (install, uninstall): Handle `ftmodule.h'. 1182 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. 1186 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. 1190 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. 1193 1194 * builds/unix/unixddef.mk: Don't define BUILD_DIR but DEVEL_DIR for 1195 development header files. 1196 Don't define PLATFORM. 1197 1198 * configure: Copy `modules.cfg' to builddir if builddir != srcdir. 1199 Update snippet taken from autoconf's m4sh.m4 to current CVS version. 1200 Be more verbose. 1201 1202 * include/freetype/config/ftmodule.h: Add comments -- this file is 1203 no longer used if FreeType is built with GNU make. 1204 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. 1208 1209 * modules.txt: Removed. Contents included in `modules.cfg'. 1210 1211 1212 * include/freetype/internal/ftmemory.h (FT_QAlloc_Debug, 1213 FT_Free_Debug) [FT_STRICT_ALIASING]: Fix typos. 1214 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. 1218 12192006-01-31 Chia-I Wu <b90201047@ntu.edu.tw> 1220 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). 1225 12262006-01-31 Chia-I Wu <b90201047@ntu.edu.tw> 1227 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. 1231 1232 * src/type1/t1afm.c (T1_Read_Metrics): Use the metrics from the AFM. 1233 1234 * include/freetype/freetype.h (FT_FaceRec): Mention that fields may 1235 be changed after file attachment. 1236 12372006-01-28 Werner Lemberg <wl@gnu.org> 1238 1239 * src/*/module.mk (.PHONY): Add. 1240 12412006-01-27 Werner Lemberg <wl@gnu.org> 1242 1243 * README, docs/FTL.TXT: Fix email address for bug reports. 1244 Other minor formatting. 1245 1246 * devel/ftoption.h: Synchronize with 1247 include/freetype/config/ftoption.h. 1248 1249 * src/autofit/module.mk (add_autofit_module), src/bdf/module.mk 1250 (add_bdf_module), src/type42/module.mk (add_type42_driver): Fix 1251 whitespace. 1252 1253 * src/smooth/module.mk (add_smooth_renderer): Add lcd and lcdv 1254 renderer classes. 1255 12562006-01-27 David Turner <david@freetype.org> 1257 1258 * builds/unix/configure.ac: Fix build problem on Cygwin. 1259 1260 * builds/unix/install.mk (install): Don't install the internal 1261 headers, and remove existing ones if found in the target install 1262 directory. 1263 1264 * src/autofit/afwarp.c: Add simple #ifdef to prevent compilation 1265 if the warp hinter isn't active (it shouldn't, still experimental). 1266 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. 1271 1272 Note also that current Make-based build system still compiles the 1273 modules though. 1274 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. 1279 1280 NOTE: Disable macro to use the memory debugger -- this will be fixed 1281 later! 1282 1283 * include/freetype/internal/ftmemory.h, src/base/ftutil.c (FT_Alloc, 1284 FT_QAlloc, FT_Realloc, FT_QRealloc, FT_Free) [FT_STRICT_ALIASING]: 1285 New versions. 1286 1287 1288 * builds/win32/visualc/freetype.dsp: Updating project file to 1289 define FT2_BUILD_LIBRARY, and remove gxvalid + otvalid modules from 1290 compilation. 1291 1292 1293 * builds/freetype.mk (FT_CFLAGS), Jamfile (DEFINES): Define the 1294 macro FT2_BUILD_LIBRARY when compiling the library. 1295 1296 * include/freetype/config/ftheader.h: Remove inclusions of internal 1297 headers except if the macro FT2_BUILD_LIBRARY is defined. 1298 1299 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. 1303 1304 1305 * (many files): Fix compiler warnings. 1306 Various minor reorganizations. 1307 1308 1309 * src/cff/cffload.c (cff_font_done): Don't free static array 1310 `subfonts'. 1311 1312 * src/otvalid/otvcommn.c (otv_ClassDef_validate), 1313 src/otvalid/otvgpos.c (otv_x_sxy): Fix debugging information. 1314 1315 1316 Get rid of writable static variables (i.e., the string table) in 1317 afmparse, and fix compilation in FT2_MULTI mode. 1318 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. 1323 1324 * src/psaux/psconv.c: Include psconv.h. 1325 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. 1329 13302006-01-23 Chia-I Wu <b90201047@ntu.edu.tw> 1331 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 1335 this enum. 1336 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. 1340 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. 1346 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. 1352 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 1359 some fonts. 1360 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. 1364 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/. 1370 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. 1375 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 1380 actually used. 1381 13822006-01-23 Chia-I Wu <b90201047@ntu.edu.tw> 1383 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'. 1386 13872006-01-22 Werner Lemberg <wl@gnu.org> 1388 1389 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from 1390 `texinfo' CVS module at savannah.gnu.org. 1391 13922006-01-21 Werner Lemberg <wl@gnu.org> 1393 1394 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add afwarp.c. 1395 1396 * src/autofit/afloader.c (af_loader_load_g): Move AF_USE_WARPER up 1397 to avoid compiler warnings. 1398 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. 1403 14042006-01-20 David Turner <david@freetype.org> 1405 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. 1409 1410 * src/autofit/afhints.c (af_glyph_hints_scale_dim) [AF_USE_WARPER]: 1411 New function. 1412 * src/autofit/afhints.h: Updated. 1413 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 1418 appropriately. 1419 1420 * src/autofit/afloader.c (af_loader_load_g) [!AF_USER_WARPER]: 1421 Isolate code for adjusting metrics. 1422 1423 * src/autofit/aftypes.h (AF_USE_WARPER): New macro (commented out by 1424 default). 1425 1426 * src/autofit/afwarp.c, src/autofit/afwarp.h: New files. 1427 1428 * src/autofit/autofit.c [AF_USE_WARPER]: Include afwarp.c. 1429 1430 * src/autofit/Jamfile (_sources): Add afwarp. 1431 14322006-01-19 David Turner <david@freetype.org> 1433 1434 * src/sfnt/ttsbit0.c (tt_face_load_strike_metrics): Fix small bug 1435 that prevented compilation when FT_OPTIMIZE_MEMORY is defined. 1436 14372006-01-19 Brian Weed <bw@imaginengine.com> 1438 1439 * builds/win32/visualc/freetype.dsp: Updated. 1440 14412006-01-17 Werner Lemberg <wl@gnu.org> 1442 1443 Use pscmap service in CFF module. 1444 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 1449 service. 1450 (cff_cmap_unicode_class_rec): Updated. 1451 * src/cff/cffcmap.h (CFF_CMapUnicode, CFF_CMap_UniPair): Removed. 1452 1453 1454 * src/psnames/psmodule.c (ps_unicodes_char_next): Fix `unicode' 1455 return value. 1456 1457 1458 * src/psaux/afmparse.c (afm_parser_read_vals): Use double casting 1459 to avoid compiler warnings regarding type-punning. 1460 14612006-01-16 Chia-I Wu <b90201047@ntu.edu.tw> 1462 1463 * src/psaux/afmparse.c, src/psaux/afmparse.h: New files which 1464 implement an AFM parser. 1465 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. 1470 1471 * src/psaux/psobjs.c: Use functions from psconv.c. 1472 1473 * include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Add 1474 `AFM_Parser' to the `psaux' service. 1475 1476 * src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Include 1477 those new files. 1478 1479 * src/tools/test_afm.c: A test program for AFM parser. 1480 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. 1484 1485 * include/freetype/internal/ftserv.h (FT_SERVICE_KERNING_H): New 1486 macro. 1487 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. 1491 1492 * include/freetype/freetype.h, src/base/ftobjs.c: New API 1493 `FT_Get_Track_Kerning'. 1494 14952006-01-15 Chia-I Wu <b90201047@ntu.edu.tw> 1496 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/. 1501 1502 * docs/CHANGES: Mention that vertical metrics are synthesized for 1503 fonts not having this info. 1504 15052006-01-15 Chia-I Wu <b90201047@ntu.edu.tw> 1506 1507 * include/freetype/internal/ftobjs.h (ft_fake_vertical_metrics), 1508 src/base/ftobjs.c (ft_fake_vertical_metrics): New function to fake 1509 vertical metrics. 1510 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, 1513 which are monotone. 1514 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). 1518 15192006-01-15 Chia-I Wu <b90201047@ntu.edu.tw> 1520 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 1524 glyphs. 1525 1526 * include/freetype/freetype.h: Documentation updates and 1527 clarifications. 1528 The meaning of FT_LOAD_FORCE_AUTOHINT is changed so that no real 1529 change need be made to the code. 1530 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 1535 loaded. 1536 (FT_Select_Size, FT_Request_Size): Scales are set to wrong values. 1537 Be careful that scales won't be negative. 1538 15392006-01-14 Chia-I Wu <b90201047@ntu.edu.tw> 1540 1541 * docs/CHANGES: Mention the size selection change. 1542 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. 1547 1548 * src/winfonts/winfnt.c (FNT_Face_Init): Print trace message when 1549 `pixel_height' is used for nominal height. 1550 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. 1554 15552006-01-13 Chia-I Wu <b90201047@ntu.edu.tw> 1556 1557 Introduce new size selection interface. 1558 1559 * include/freetype/internal/ftdriver.h (struct FT_Driver_ClassRec): 1560 Replace `set_char_sizes' and `set_pixel_sizes' by `request_size' and 1561 `select_size'. 1562 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. 1567 1568 * src/base/ftobjs.c (FT_Set_Char_Size, FT_Set_Pixel_Sizes): Use 1569 `FT_Request_Size'. 1570 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'. 1575 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. 1581 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. 1588 15892006-01-13 Chia-I Wu <b90201047@ntu.edu.tw> 1590 1591 * include/freetype/internal/sfnt.h (SFNT_Interface): New method 1592 `load_strike_metrics' used to load the strike's metrics. 1593 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'. 1596 1597 * src/pfr/pfrobjs.c (pfr_face_init): Set FT_Bitmap_Size correctly. 1598 1599 * src/winfonts/winfnt.c (FNT_Face_Init): Use `nominal_point_size' for 1600 nominal size unless it is obviously incorrect. 1601 1602 * include/freetype/freetype.h (FT_Bitmap_Size): Update the comments on 1603 FNT driver. 1604 16052006-01-12 Werner Lemberg <wl@gnu.org> 1606 1607 Prepare use of pscmap service within CFF module. 1608 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. 1614 Update all callers. 1615 (PS_Adobe_Std_Strings_Func): Renamed to... 1616 (PS_Adobe_Std_StringsFunc): This. 1617 Update all callers. 1618 (PS_UnicodesRec): This is the former `PS_Unicodes' structure. 1619 Add `cmap' member. 1620 Update all callers. 1621 (PS_Unicodes): This is now a typedef'd pointer to PS_UnicodesRec. 1622 Update all callers. 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 1626 index. 1627 1628 * src/psnames/psmodule.c (ps_unicodes_init, ps_unicodes_char_index, 1629 ps_unicodes_char_next, pscmaps_interface): Updated. 1630 1631 * include/freetype/internal/t1types.h (T1_FaceRec): Updated. 1632 1633 * src/psaux/t1cmap.h (T1_CMapStdRec): Updated. 1634 (T1_CMapUnicode, T1_CMapUnicodeRec): Removed. 1635 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. 1640 1641 * src/type42/t42types.h (T42_FaceRec): Updated. 1642 16432006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1644 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. 1648 16492006-01-11 Werner Lemberg <wl@gnu.org> 1650 1651 Fix Savannah bug #15056 and use pscmap service in psaux module. 1652 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 1658 FT_UInt32. 1659 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. 1669 Simplify code. 1670 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. 1675 1676 * src/psaux/t1cmap.h (T1_CMapUniPair): Removed. 1677 (T1_CMapUnicode): Use PS_Unicodes structure. 1678 16792006-01-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1680 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 1683 2005-08-24. 1684 1685 * src/base/ftmac.c: Heavy change to build without deprecated Carbon 1686 functions on Tiger. 1687 1688 * builds/unix/configure.ac: Add options and autochecks for Carbon 1689 functions availabilities, for MacOS X. 1690 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. 1696 1697 * builds/mac/FreeType.ppc_{classic|carbon}.make.txt: Add conditional 1698 macros to avoid unavailable functions. 1699 1700 * builds/mac/README: Detailed notes on function availabilities. 1701 1702 * docs/CHANGES: Notes about (possible) incompatibilities. 1703 17042006-01-08 Werner Lemberg <wl@gnu.org> 1705 1706 * docs/CHANGES: Updated. 1707 17082006-01-08 Huw D M Davies <h.davies1@physics.ox.ac.uk> 1709 1710 * include/freetype/ftmodapi.h (FT_Module_Get_Flags): New 1711 declaration. 1712 1713 * src/base/ftobjs.c (FT_Module_Get_Flags): New function. 1714 17152006-01-07 Werner Lemberg <wl@gnu.org> 1716 1717 * src/pcf/pcfread.c (pcf_get_bitmaps): Remove unused variable 1718 `bitmaps'. Reported by Yu Lei <yulei0@gmail.com>. 1719 1720 * src/base/ftutil.c (ft_highpow2): s/FT_BASE/FT_BASE_DEF/. 1721 Reported by Niels Boldt <nielsboldt@gmail.com>. 1722 17232005-12-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1724 1725 * src/sfnt/sfnt/ttbdf.c: Add newline '\n' to the end of file, for 1726 MPW compiler. 1727 17282005-12-23 David Turner <david@freetype.org> 1729 1730 * Jamfile (RefDoc), docs/reference/README: Fix it so that `jam 1731 refdoc' works correctly to generate the API reference in 1732 `docs/reference'. 1733 1734 * src/tools/docmaker/tohtml.py (print_html_field, 1735 print_html_field_list): Update to output nicer fields lists in the 1736 API reference. 1737 1738 * src/base/ftobjs.c (FT_Load_Glyph): FT_LOAD_TARGET_LIGHT now 1739 forces auto-hinting. 1740 1741 * freetype/freetype.h: Updating the documentation for 1742 FT_LOAD_TARGET_XXX and FT_Render_Mode values. 1743 17442005-12-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1745 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. 1753 1754 * doc/CHANGES: Mention the changes. 1755 17562005-12-17 Chia-I Wu <b90201047@ntu.edu.tw> 1757 1758 * src/truetype/ttinterp.c (Update_Max): Set current size of buffer 1759 correctly (so that memory debug system won't panic). 1760 17612005-12-16 Chia-I Wu <b90201047@ntu.edu.tw> 1762 1763 * include/freetype/internal/ftobjs.h (ft_glyphslot_grid_fit_metrics), 1764 src/base/ftobjs.c (ft_glyphslot_grid_fit_metrics): Removed. 1765 1766 * src/base/ftobjs.c (ft_recompute_scaled_metrics): Do not round. 1767 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. 1771 1772 * doc/CHANGES: Mention the changes. 1773 17742005-12-13 David Turner <david@freetype.org> 1775 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. 1780 1781 Note that this doesn't force auto-hinting for all fonts, however. 1782 1783 * src/autofit/afhints.c (af_glyph_hints_reload): Don't set 1784 scaler_flags here but... 1785 (af_glyph_hints_rescale): Here. 1786 1787 * src/autofit/aflatin.c (af_latin_hints_init): Disable horizontal 1788 hinting for `light' hinting mode. 1789 1790 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). 1794 1795 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. 1799 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 1802 font files. 1803 1804 At the moment, this is still experimental, the BDF table format 1805 isn't cast into stone yet. 1806 1807 * include/freetype/config/ftoption.h (TT_CONFIG_OPTION_BDF): New 1808 macro. 1809 1810 * include/freetype/config/ftstdlib.h (ft_memchr): New macro. 1811 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'. 1815 1816 * include/freetype/tttags.h (TTAG_BDF): New macro. 1817 1818 * src/sfnt/Jamfile (_sources): Add ttbdf. 1819 1820 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttbdf.c. 1821 1822 * src/sfnt/sfdriver.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.h and 1823 FT_SERVICE_BDF_H. 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. 1827 1828 * src/sfnt/sfnt.c [TT_CONFIG_OPTION_BDF]: Include ttbdf.c. 1829 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. 1833 1834 * src/sfnt/ttbdf.h, src/sfnt/ttbdf.c: New files. 1835 18362005-12-07 Werner Lemberg <wl@gnu.org> 1837 1838 * src/sfnt/sfobjs.c (sfnt_init_face): Move tag check to... 1839 * src/sfnt/ttload.c (sfnt_init): Here, before handling TTCs. 1840 18412005-12-06 Chia-I Wu <b90201047@ntu.edu.tw> 1842 1843 * src/truetype/ttobjs.c (tt_size_init): size->ttmetrics.valid is 1844 initialized twice. 1845 size->strike_index is not initialized. 1846 18472005-12-02 Taek Kwan(TK) Lee <taeklee@gmail.com> 1848 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'. 1851 18522005-11-30 Werner Lemberg <wl@gnu.org> 1853 1854 * docs/CHANGES: Document ftdump's `-v' option. 1855 Document latest charmap code changes. 1856 1857 * src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: 1858 s/TT_CMAP_FLAG_OVERLAPPED/TT_CMAP_FLAG_OVERLAPPING/. 1859 18602005-11-30 Chia-I Wu <b90201047@ntu.edu.tw> 1861 1862 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary, 1863 tt_cmap12_char_map_binary): Fix compiler warnings. 1864 18652005-11-29 Chia-I Wu <b90201047@ntu.edu.tw> 1866 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. 1870 1871 * src/sfnt/ttcmap.h (TT_CMapRec_): Replace `unsorted' by `flags'. 1872 (TT_CMAP_FLAG_UNSORTED, TT_CMAP_FLAG_OVERLAPPED): New macros. 1873 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 1884 equality. 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 1891 for cmap. 1892 18932005-11-29 Chia-I Wu <b90201047@ntu.edu.tw> 1894 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 1902 missing). 1903 19042005-11-15 Detlef Würkner <TetiSoft@apg.lahn.de> 1905 1906 * builds/amiga/smakefile: Adjusted the compiler options 1907 to the current sources, now really builds the gxvalid, gzip 1908 and psnames modules. 1909 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. 1913 19142005-11-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1915 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. 1921 19222005-11-21 Håvard Wall <haavardw@ifi.uio.no> 1923 1924 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Done): Fix small 1925 memory leak. 1926 19272005-11-21 Werner Lemberg <wl@gnu.org> 1928 1929 * src/sfnt/ttload.c (sfnt_init): Add tracing message. 1930 19312005-11-21 Chia-I Wu <b90201047@ntu.edu.tw> 1932 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. 1935 19362005-11-21 Chia-I Wu <b90201047@ntu.edu.tw> 1937 1938 * src/sfnt/sfobjs.c (sfnt_init_face): Check that format_tag is known 1939 before loading the table directory. 1940 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. 1944 19452005-11-20 Chia-I Wu <b90201047@ntu.edu.tw> 1946 1947 * src/sfnt/ttload.c (sfnt_dir_check): Clean up and return correct 1948 error code. 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. 1953 19542005-11-18 Werner Lemberg <wl@gnu.org> 1955 1956 * src/sfnt/ttload.c (tt_face_load_metrics): Ignore excess number 1957 of metrics instead of aborting. Patch suggested by Derek Noonburg. 1958 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. 1962 1963 * docs/CHANGES: Mention scaling bug. 1964 19652005-11-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1966 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 1972 otvalid module. 1973 19742005-11-18 Chia-I Wu <b90201047@ntu.edu.tw> 1975 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/. 1980 19812005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de> 1982 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/. 1987 19882005-11-17 Detlef Würkner <TetiSoft@apg.lahn.de> 1989 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). 1994 19952005-11-17 Werner Lemberg <wl@gnu.org> 1996 1997 Add vertical metrics support to OpenType CFF outlines. Based on a 1998 patch from Mike Moening <MikeM@RetekSolutions.com>. 1999 2000 * src/cff/cffgload.c (cff_face_get_vertical_metrics): New function. 2001 (cff_slot_load): Use cff_face_get_vertical_metrics. 2002 2003 * docs/CHANGES: Updated. 2004 20052005-11-17 Chia-I Wu <b90201047@ntu.edu.tw> 2006 2007 * src/base/ftcalc.c (FT_MulTo64): Commented out. 2008 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/. 2018 2019 * builds/exports.mk: Manually add TT_New_Context to EXPORTS_LIST 2020 too. 2021 20222005-11-15 David Turner <david@freetype.org> 2023 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. 2027 2028 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Don't perform a 2029 structure copy each time. 2030 20312005-11-11 Werner Lemberg <wl@gnu.org> 2032 2033 * src/cache/ftccache.c (FTC_Cache_Clear), src/cache/ftcmanag.c 2034 (FTC_Manager_Check): Remove FT_EXPORT_DEF tag. 2035 2036 * src/base/ftcalc.c (FT_Add64): Remove FT_EXPORT_DEF tag. 2037 (FT_Div64by32, FT_Sqrt32): Commented out. Unused. 2038 2039 * include/freetype/internal/ftcalc.h (SQRT_32): Removed. Unused. 2040 (FT_Sqrt32): Commented out. Unused. 2041 2042 * include/freetype/cache/ftccache.h: 2043 s/ftc_node_destroy/FTC_Node_Destroy/. 2044 2045 * src/cache/ftccback.h (ftc_node_destroy): New declaration. 2046 2047 * src/cache/ftccache.c (ftc_node_destroy): Use FT_LOCAL_DEF tag. 2048 (FTC_Node_Destroy): New exported wrapper function for 2049 ftc_node_destroy. 2050 2051 * src/cache/ftcmanag.c: Include ftccback.c. 2052 20532005-11-10 Werner Lemberg <wl@gnu.org> 2054 2055 * src/autofit/afangles.c, src/autofit/aftypes.h (af_angle_diff): 2056 Comment out. Unused. 2057 2058 * builds/exports.mk ($(EXPORTS_LIST)): Add TT_RunIns. 2059 20602005-11-10 Christian Biesinger <cbiesinger@web.de> 2061 2062 * builds/beos/beos.mk: Call beos-def.mk before anything else to 2063 define the separator. 2064 2065 * builds/unix/unix-cc.in (LINK_LIBRARY): Add `-no-undefined' flag. 2066 20672005-11-07 Werner Lemberg <wl@gnu.org> 2068 2069 * src/type1/t1afm.c (T1_Read_PFM): Zero offset means `no kerning 2070 table available'. From Sergey Tolstov <stolstov@esri.com>. 2071 20722005-11-03 Ville Syrjälä <syrjala@sci.fi> 2073 2074 * src/base/ftobjs.c (FT_Open_Face): Avoid possible memory leak. 2075 20762005-11-02 Werner Lemberg <wl@gnu.org> 2077 2078 Make compiling instructions in docs/CUSTOMIZE work again. 2079 2080 * builds/unix/unix-cc.in (CPPFLAGS): New variable. 2081 (CFLAGS): Don't include @CPPFLAGS@. 2082 * builds/freetype.mk (FT_CFLAGS): Add CPPFLAGS. 2083 20842005-10-28 David Turner <david@freetype.org> 2085 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. 2089 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. 2092 2093 * builds/exports.mk: New file. 2094 2095 * builds/freetype.mk: Include exports.mk. 2096 (dll): New target. 2097 (clean_project_dos): Fix rule. 2098 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. 2102 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. 2109 2110 * Jamfile (GenExportSymbols): Updated. 2111 2112 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. 2116 2117 2118 * src/base/fttrigon.c (ft_trig_prenorm), src/base/ftcalc.c 2119 (FT_MulFix): Performance optimizations. 2120 2121 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. 2127 2128 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Set `adjust' 2129 to 0 to not call `AdjustPoints' every time. 2130 2131 2132 * src/autofit/aftypes.h (AF_ANGLE_DIFF): New macro to inline 2133 FT_Angle_Diff. 2134 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. 2138 2139 2140 * src/tools/apinames.c: Include <string.h>. 2141 (OutputFormat): New enumeration. 2142 (names_dump): Add two parameters to control output format and DLL 2143 name. 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. 2147 (usage): Updated. 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. 2151 21522005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2153 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. 2157 2158 * builds/mac/ftlib.prj.xml: Added. 2159 Generated by Metrowerks CodeWarrior 9.0. 2160 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. 2166 2167 * builds/mac/ascii2mpw.py: Added. 2168 Python script to make MPW makefile from skeleton. 2169 2170 * builds/mac/README: Updated. 2171 Almost rewritten to use new files. 2172 21732005-10-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2174 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. 2178 21792005-10-27 Werner Lemberg <wl@gnu.org> 2180 2181 * include/freetype/ftsysmem.h, include/freetype/ftsysio.h: Removed. 2182 Obsolete. 2183 21842005-10-25 Werner Lemberg <wl@gnu.org> 2185 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>. 2189 21902005-10-23 Werner Lemberg <wl@gnu.org> 2191 2192 * src/base/ftdbgmem.c (ft_mem_debug_realloc): Make it compile with 2193 C++. 2194 21952005-10-21 David Turner <david@freetype.org> 2196 2197 * src/base/ftdbgmem.c (ft_mem_table_set, ft_mem_debug_realloc): 2198 Another realloc memory counting bug fix. 2199 2200 * src/tools/Jamfile: Add missing file. 2201 2202 * src/lzw/Jamfile: Fix incorrect source file reference. 2203 22042005-10-20 David Turner <david@freetype.org> 2205 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. 2209 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 2213 timR24.pcf.Z. 2214 22152005-10-20 Chia-I Wu <b90201047@ntu.edu.tw> 2216 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. 2221 22222005-10-19 Chia-I Wu <b90201047@ntu.edu.tw> 2223 2224 * src/truetype/ttgload.c (TT_Load_Glyph): Allow size->ttmetrics to 2225 be invalid when FT_LOAD_NO_SCALE is set. 2226 22272005-10-17 David Turner <david@freetype.org> 2228 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). 2232 2233 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_entry_validate): 2234 Remove compiler warning. 2235 22362005-10-16 David Turner <david@freetype.org> 2237 2238 * src/tools/apinames.c: Add new tool to extract public API function 2239 names from header files. 2240 22412005-10-05 Werner Lemberg <wl@gnu.org> 2242 2243 Add FT_FACE_FLAG_HINTER to indicate that a specific font driver has 2244 a hinting engine of its own. 2245 2246 * include/freetype/freetype.h (FT_FACE_FLAG_HINTER): New macro. 2247 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. 2253 2254 * docs/CHANGES: Document it. 2255 22562005-09-27 Werner Lemberg <wl@gnu.org> 2257 2258 * builds/unix/freetype2.m4: Add license exception so that the file 2259 can be used in any other autoconf script. 2260 22612005-09-26 David Turner <david@freetype.org> 2262 2263 * src/autofit/aflatin.c (af_latin_compute_stem_width): Fix bad 2264 computation of the `vertical' flag, causing ugly things in LCD mode 2265 and others. 2266 22672005-09-23 David Turner <david@freetype.org> 2268 2269 * src/autofit/aflatin.c (af_latin_hints_init): Fix a bug that 2270 prevented internal hint mode bitflags from being computed correctly. 2271 2272 * src/base/Jamfile: Adding src/base/ftgxval.c. 2273 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). 2285 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! 2289 2290 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't check for 2291 `get_sfnt' and `load_sfnt' module interfaces. 2292 22932005-09-22 Werner Lemberg <wl@gnu.org> 2294 2295 * docs/CHANGES: Mention SING Glyphlet support. 2296 22972005-09-22 David Turner <david@freetype.org> 2298 2299 * src/base/Jamfile: Disable compilation of ftgxval module 2300 temporarily. 2301 23022005-09-19 David Somers <dsomers@omz13.com> 2303 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'. 2307 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 functionality 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 2317 metadata. 2318 2319 Further information on the SING Glyphlet format can be found at: 2320 2321 https://www.adobe.com/content/dam/acom/en/devnet/font/pdfs/5148.SING_Tutorial.pdf 2322 2323 * include/freetype/tttags.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. 2326 23272005-09-09 Werner Lemberg <wl@gnu.org> 2328 2329 * src/sfnt/sfobjs.c (sfnt_load_face): Reactivate code to set 2330 FT_FACE_FLAG_KERNING which has been commented out erroneously. 2331 2332 * docs/CHANGES: Document it. 2333 23342005-09-05 Werner Lemberg <wl@gnu.org> 2335 2336 Fixes for `make multi' and using C++ compiler. 2337 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 2345 trace messages. 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 2349 gxvcommn.h. 2350 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 2359 gxvcommn.c. 2360 2361 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate, 2362 gxv_bsln_parts_fmt1_validate): Improve trace messages. 2363 2364 * src/gxvalid/gxvfeat.c: Split off predefined registry stuff to... 2365 * src/gxvalid/gxvfeat.h: New file. 2366 2367 * src/gxvalid/gxvjust.c (gxv_just_wdc_entry_validate): Improve trace 2368 message. 2369 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_UNKNOWN. 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. 2379 2380 * src/gxvalid/gxvmort0.c (gxv_mort_subtable_type0_validate): Declare 2381 with FT_LOCAL_DEF. 2382 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 2387 message. 2388 (gxv_mort_subtable_type1_validate): Declare with FT_LOCAL_DEF. 2389 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 2394 errors. 2395 (gxv_mort_subtable_type2_validate): Declare with FT_LOCAL_DEF. 2396 2397 * src/gxvalid/gxvmort4.c (gxv_mort_subtable_type4_validate): Declare 2398 with FT_LOCAL_DEF. 2399 2400 * src/gxvalid/gxvmort5.c (gxv_mort_subtable_type5_subtable_setup, 2401 gxv_mort_subtable_type5_InsertList_validate): Fix C++ compiler 2402 errors. 2403 (gxv_mort_subtable_type5_validate): Declare with FT_LOCAL_DEF. 2404 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 2409 messages. 2410 2411 * src/gxvalid/gxvmort.h (gxv_mort_feature_validate): Remove. 2412 2413 * src/gxvalid/gxvmorx0.c (gxv_morx_subtable_type0_validate): Declare 2414 with FT_LOCAL_DEF. 2415 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++ 2421 compiler errors. 2422 (gxv_morx_subtable_type1_validate): Declare with FT_LOCAL_DEF. 2423 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 2428 errors. 2429 (gxv_morx_subtable_type2_validate): Declare with FT_LOCAL_DEF. 2430 Fix typo. 2431 2432 * src/gxvalid/gxvmorx4.c (gxv_morx_subtable_type4_validate): Declare 2433 with FT_LOCAL_DEF. 2434 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. 2438 2439 * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate, 2440 gxv_morx_validate): Improve trace message. 2441 2442 * src/gxvalid/gxvopbd.c (gxv_opbd_LookupFmt4_transit): Fix compiler 2443 warnings. 2444 (gxv_opbd_validate): Improve trace message. 2445 2446 * src/gxvalid/gxvprop.c: Decorate constants with `U' and `L' where 2447 appropriate. 2448 (gxv_prop_zero_advance_validate, gxv_prop_validate): Improve trace 2449 message. 2450 2451 * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): Remove unused 2452 parameter. Update all callers. 2453 (gxv_trak_validate): Improve trace message. 2454 2455 * rules.mk (GXV_DRV_H): Add gxvfeat.h. 2456 24572005-09-01 Werner Lemberg <wl@gnu.org> 2458 2459 * src/gxvalid/gxvbsln.c (GXV_BSLN_VALUE_EMPTY): Add `U'. 2460 2461 * src/gxvalid/gxvmort1.c (GXV_MORT_SUBTABLE_TYPE1_HEADER_SIZE), 2462 src/gxvalid/gxvmort2.c (GXV_MORT_SUBTABLE_TYPE2_HEADER_SIZE): Fix 2463 typo. 2464 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 2468 messages. 2469 Decorate constants with `U' and `L' where appropriate. 2470 Fix compiler warnings. 2471 24722005-08-31 Werner Lemberg <wl@gnu.org> 2473 2474 * src/truetype/ttgload.c (load_truetype_glyph): Fix typo. 2475 2476 * src/gxvalid/gxvbsln.c (gxv_bsln_validate): Fix trace message. 2477 2478 * src/gxvalid/gxvcommn.c (gxv_odtect_add_range): Use `const'. 2479 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 2485 messages. 2486 Decorate constants with `U' and `L' where appropriate. 2487 Fix compiler warnings. 2488 24892005-08-30 Werner Lemberg <wl@gnu.org> 2490 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. 2497 Some formatting. 2498 24992005-08-29 Werner Lemberg <wl@gnu.org> 2500 2501 * include/freetype/freetype.h, include/freetype/ftchapters.h: Add 2502 a preliminary section with some explanations about user allocation. 2503 2504 * src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter): 2505 Don't abort if there are no data types, functions, etc., in a 2506 section. 2507 Print synopsis only if we have a data type, function, etc. 2508 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. 2512 25132005-08-28 George Williams <gww@silcom.com> 2514 2515 * src/truetype/ttgload.c [TT_MAX_COMPOSITE_RECURSE]: Removed. 2516 (load_truetype_glyph): Limit recursion depth by `maxComponentDepth'. 2517 25182005-08-25 J. Ali Harlow <ali@avrc.city.ac.uk> 2519 2520 * builds/unix/freetype2.in (CFlags): Add missing directory. 2521 25222005-08-24 Werner Lemberg <wl@gnu.org> 2523 2524 * docs/CHANGES: Mention gxvalid module. 2525 25262005-08-23 Werner Lemberg <wl@gnu.org> 2527 2528 * src/autofit/aflatin.c (af_latin_metrics_scale): Initialize 2529 render mode properly. Reported by chris@dokein.co.uk. 2530 25312005-08-23 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2532 2533 Add gxvalid module to validate TrueType GX/AAT tables. 2534 2535 Modifications on existing files: 2536 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. 2541 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. 2545 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. 2550 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 2554 gxvalid. 2555 2556 New files on existing directories: 2557 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. 2562 2563 New files under src/gxvalid/: 2564 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. 2577 25782005-08-21 Werner Lemberg <wl@gnu.org> 2579 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. 2583 25842005-08-20 Chia I Wu <b90201047@ntu.edu.tw> 2585 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. 2589 2590 * src/truetype/ttgload.c (TT_Load_Glyph): Check that ttmetrics is 2591 valid before loading outline glyph. 2592 2593 * src/cache/ftcimage.c (FTC_INode_New): Fix a memory leak. 2594 25952005-08-20 Werner Lemberg <wl@gnu.org> 2596 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. 2600 26012005-08-20 Masatake YAMATO <jet@gyve.org> 2602 2603 * src/otvalid/otvmod.c (otv_validate): Use ft_validator_run instead 2604 of ft_setjmp. 2605 26062005-08-19 Werner Lemberg <wl@gnu.org> 2607 2608 * src/truetype/ttgload.c (load_truetype_glyph): Fix compiler 2609 warnings. 2610 26112005-08-16 Chia I Wu <b90201047@ntu.edu.tw> 2612 2613 * src/truetype/ttinterp.c, src/truetype/ttinterp.h: Update copyright 2614 messages. 2615 26162005-08-16 Chia I Wu <b90201047@ntu.edu.tw> 2617 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. 2621 Update all callers. 2622 (TT_New_Context): Now takes TT_Driver argument directly. 2623 Update all callers. 2624 2625 * src/truetype/ttobjs.h (tt_slot_init): New function. 2626 * src/truetype/ttobjs.c (tt_driver_init): Initialize execution 2627 context here. 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. 2631 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 2635 if size is NULL. 2636 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. 2643 Use TT_Hint_Glyph. 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 2647 points. 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 2655 new functions. 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. 2661 26622005-08-08 Werner Lemberg <wl@gnu.org> 2663 2664 * docs/INSTALL.ANY: Updated. 2665 26662005-08-05 Werner Lemberg <wl@gnu.org> 2667 2668 * src/cff/cffgload.c (cff_builder_close_contour), 2669 src/psaux/psobjs.c (t1_builder_close_contour): Protect against 2670 zero `outline' pointer. 2671 2672 * src/base/ftgloadr.c (FT_GlyphLoader_Add): Protect against zero 2673 `loader' address. 2674 26752005-08-03 Werner Lemberg <wl@gnu.org> 2676 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. 2680 26812005-08-02 Werner Lemberg <wl@gnu.org> 2682 2683 * src/otvalid/otvcommn.h: Remove dead code. 2684 26852005-07-31 Chia I Wu <b90201047@ntu.edu.tw> 2686 2687 * src/truetype/ttobjs.h (tt_size_run_fpgm, tt_size_run_prep): New 2688 functions. 2689 2690 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): New 2691 functions. 2692 (tt_size_init): Add 4, instead of 2, (phantom) points to twilight 2693 zone. 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. 2698 26992005-07-26 Chia I Wu <b90201047@ntu.edu.tw> 2700 2701 * src/truetype/ttdriver.c (Set_Char_Sizes): Avoid unnecessary 2702 computations and clean up. 2703 2704 * src/truetype/ttobjs.h (struct TT_SizeRec_): Comment on the 2705 internal copy of metrics. 2706 27072005-07-12 Werner Lemberg <wl@gnu.org> 2708 2709 * include/freetype/ftoutln.h (FT_Outline_Embolden): Fix prototype. 2710 Reported by Xerxes. 2711 27122005-07-04 Werner Lemberg <wl@gnu.org> 2713 2714 * include/freetype/internal/ftmemory.h (FT_REALLOC_ARRAY): Fix typo. 2715 Reported by Brett Hutley. 2716 27172005-06-30 David Turner <david@freetype.org> 2718 2719 * src/sfnt/ftbitmap.c, src/truetype/ttgload.c, src/sfnt/ttcmap.c: 2720 Removing compiler warnings (Visual C++ /W4). 2721 2722 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). 2726 2727 * Jamfile (FT2_COMPONENTS): Include otvalid (again). 2728 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 2734 `AttachListFunc'. 2735 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 2739 single argument. 2740 27412005-06-20 Chia I Wu <b90201047@ntu.edu.tw> 2742 2743 * include/freetype/internal/ftobjs.h, src/base/ftobjs.c: New function 2744 ft_glyphslot_grid_fit_metrics. 2745 2746 * src/truetype/ttgload.c (compute_glyph_metrics): Use 2747 ft_glyphslot_grid_fit_metrics. 2748 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. 2753 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. 2757 27582005-06-16 Chia I Wu <b90201047@ntu.edu.tw> 2759 2760 * src/base/ftoutln.c (FT_Outline_Embolden): Strength should be 2761 halved. 2762 2763 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default 2764 strength. 2765 Don't increase slot->advance.y. 2766 27672005-06-16 Werner Lemberg <wl@gnu.org> 2768 2769 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 2. 2770 (FREETYPE_PATCH): Set to 0. 2771 2772 * builds/unix/configure.ac (version_info): Set to 9:9:3. 2773 Currently, we are still binary compatible. 2774 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/. 2778 2779 * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): 2780 s/2.1.9/2.1.10/. 2781 2782 * docs/CHANGES, docs/VERSION.DLL: Updated. 2783 2784 * ChangeLog: Split off older entries into... 2785 * ChangeLog.20, ChangeLog.21: These new files. 2786 27872005-06-15 Kirill Smelkov <kirr@mns.spb.ru> 2788 2789 The next release will be 2.2.0, so don't worry about source code 2790 backward compatibility. 2791 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. 2798 27992005-06-15 Chia I Wu <b90201047@ntu.edu.tw> 2800 2801 * src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY 2802 to make glyphs centered vertically. 2803 2804 * src/truetype/ttgload.c (compute_glyph_metrics): Compute 2805 vertBearingY to make glyphs centered vertically. 2806 Fix some bugs in vertical metrics: 2807 2808 . loader->pp3.y and loader->pp4.y are in 26.6 format, not in font 2809 units. 2810 . As we use the glyph's cbox to calculate the top bearing now 2811 there is no need to adjust `top'. 2812 28132005-06-15 Werner Lemberg <wl@gnu.org> 2814 2815 * src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be 2816 in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake. 2817 28182005-06-13 Werner Lemberg <wl@gnu.org> 2819 2820 * docs/release: Update. 2821 2822---------------------------------------------------------------------------- 2823 2824Copyright (C) 2005-2020 by 2825David Turner, Robert Wilhelm, and Werner Lemberg. 2826 2827This file is part of the FreeType project, and may only be used, modified, 2828and distributed under the terms of the FreeType project license, 2829LICENSE.TXT. By continuing to use, modify, or distribute this file you 2830indicate that you have read the license and understand and accept it 2831fully. 2832 2833 2834Local Variables: 2835version-control: never 2836coding: utf-8 2837End: 2838