12010-02-13 Werner Lemberg <wl@gnu.org> 2 3 * Version 2.3.12 released. 4 ========================== 5 6 7 Tag sources with `VER-2-3-12'. 8 9 * docs/CHANGES: Updated. 10 11 * docs/VERSION.DLL: Update documentation and bump version number to 12 2.3.12. 13 14 * README, Jamfile (RefDoc), 15 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 16 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 17 builds/win32/visualc/freetype.dsp, 18 builds/win32/visualc/freetype.vcproj, 19 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 20 builds/win32/visualce/freetype.vcproj, 21 builds/win32/visualce/index.html, 22 builds/wince/vc2005-ce/freetype.vcproj, 23 builds/wince/vc2005-ce/index.html, 24 builds/wince/vc2008-ce/freetype.vcproj, 25 builds/wince/vc2008-ce/index.html: s/2.3.11/2.3.12/, s/2311/2312/. 26 27 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12. 28 29 * builds/unix/configure.raw (version_info): Set to 10:0:4. 30 312010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 32 33 Improve autotool version checking to work with beta releases. 34 35 * autogen.sh (check_tool_version): Improve the extraction of version 36 number from "tool --version" output. Some beta releases of 37 autotools have extra strings before version number. 38 392010-02-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 40 41 Fix overallocating bug in FT_Outline_New_Internal(). 42 43 * src/base/ftoutln.c (FT_Outline_New_Internal): The length of 44 FT_Outline->points[] should be numPoints, not 2 * numPoints. 45 Found by Paul Messmer, see 46 https://lists.gnu.org/archive/html/freetype-devel/2010-02/msg00003.html 47 482010-02-10 Ken Sharp <ken.sharp@artifex.com> 49 50 Really fix Savannah bug #28678 (part 2). 51 52 Since we consider `sbw' for the horizontal direction only, we still have 53 to synthesize vertical metrics if the user wants to use the vertical 54 writing direction. 55 56 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c 57 (cid_slot_load_glyph), src/type1/t1gload.c (T1_Load_Glyph): 58 Synthesize vertical metrics (only) if FT_LOAD_VERTICAL_LAYOUT is 59 set. 60 612010-02-10 Ken Sharp <ken.sharp@artifex.com> 62 63 Really fix Savannah bug #28678 (part 1). 64 65 After long discussion, we now consider the character width vector 66 (wx,wy) returned by the `sbw' Type 1 operator as being part of *one* 67 direction only. For example, if you are using the horizontal 68 writing direction, you get the horizontal and vertical components of 69 the advance width for this direction. Note that OpenType and CFF fonts 70 don't have such a vertical component; instead, the GPOS table can be 71 used to generate two-dimensional advance widths (but this isn't 72 handled by FreeType). 73 74 * include/freetype/ftincrem.h (FT_Incremental_MetricsRec): Add 75 `advance_v' field to hold the vertical component of the advance 76 value. 77 78 * src/truetype/ttgload.c (tt_get_metrics), src/cff/cffgload.c 79 (cff_slot_load), src/type1/t1gload.c 80 (T1_Parse_Glyph_And_Get_Char_String), src/cid/cidgload.c 81 (cid_load_glyph): Use it. 82 832010-02-08 Werner Lemberg <wl@gnu.org> 84 85 * devel/ftoption.h [FT_CONFIG_OPTION_PIC]: Define. 86 872010-02-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 88 89 Prevent NULL pointer dereference passed to FT_Module_Requester. 90 91 * src/sfnt/sfdriver.c (sfnt_get_interface): Don't use `module'. 92 * src/psnames/psmodule.c (psnames_get_interface): Ditto. 93 94 * src/cff/cffdrivr.c (cff_get_interface): Check NULL `driver'. 95 * src/truetype/ttdriver.c (tt_get_interface): Ditto. 96 972010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 98 99 Fix memory leaks in previous patch. 100 101 * src/sfnt/sfobjs.c (sfnt_load_face): Don't overwrite the strings 102 allocated for face->root.family_name and style_name. 103 1042010-01-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 105 106 New parameters for FT_Open_Face() to ignore preferred family names. 107 108 Preferred family names should be used for legacy systems that 109 can hold only a few faces (<= 4) for a family name. Suggested by 110 Andreas Heinrich. 111 https://lists.gnu.org/archive/html/freetype/2010-01/msg00001.html 112 113 * include/freetype/ftsnames.h (FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY, 114 FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY): Define. 115 116 * src/sfnt/sfobjs.c (sfnt_load_face): Check the arguments and 117 ignore preferred family and subfamily names if requested. 118 1192010-01-27 Ken Sharp <ken.sharp@artifex.com> 120 121 Fix Savannah bug #28678. 122 123 * src/cff/cffgload.c (cff_slot_load), src/cid/cidgload.c 124 (cid_load_glyph): Handle vertical metrics correctly. 125 126 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Handle 127 vertical metrics correctly. 128 (T1_Load_Glyph): Don't synthesize vertical metrics. 129 1302010-01-14 Werner Lemberg <wl@gnu.org> 131 132 Make FT_Set_Transform work if no renderer is available. 133 134 * src/base/ftobjs.c (FT_Load_Glyph): Apply `standard' transformation 135 if no renderer is compiled into the library. 136 1372010-01-14 Werner Lemberg <wl@gnu.org> 138 139 Fix compilation warning. 140 141 * src/base/ftbase.h: s/LOCAL_DEF/LOCAL/. 142 * src/base/ftobjs.c: Include ftbase.h conditionally. 143 1442010-01-11 Kwang Yul Seo <skyul@company100.net> 145 146 Provide inline assembly code for RVCT compiler. 147 This is Savannah patch #7059. 148 149 * include/freetype/config/ftconfig.h (FT_MULFIX_ASSEMBLER, 150 FT_MulFix_arm) [__CC_ARM || __ARM_CC]: Define. 151 1522010-01-08 Ken Sharp <ken.sharp@artifex.com> 153 154 Fix Savannah bug #28521. 155 156 Issue #28226 involved a work-around for a font which used the 157 `setcurrentpoint' operator in an invalid way; this operator is only 158 supposed to be used with the result of OtherSubrs, and the font used 159 it directly. The supplied patch removed the block of code which 160 checked this usage entirely. 161 162 This turns out to be a Bad Thing. If `setcurrentpoint' is being 163 used correctly it should reset the flex flag in the decoder. If we 164 don't do this then the flag never gets reset and we omit any further 165 contours from the glyph (at least until we close the path or 166 similar). 167 168 * src/psaux/t1decode.c (t1_decoder_parse_charstrings) 169 <op_setcurrentpoint>: Handle `flex_state' correctly. 170 1712010-01-05 Werner Lemberg <wl@gnu.org> 172 173 Apply reports from clang static analyzer. 174 175 * src/lzw/ftlzw.c (ft_lzw_file_init), src/base/ftstroke.c 176 (FT_Stroker_ParseOutline), src/base/ftsynth.c 177 (FT_GlyphSlot_Embolden): Remove dead code. 178 179 * src/base/ftpatent.c (_tt_check_patents_in_table): Initialize 180 `offset_i' and `length_i'. 181 1822010-01-05 Ralph Giles <giles@ghostscript.com> 183 184 Enable the incremental font interface by default. 185 186 Ghostscript requires the incremental font interface for handling 187 some Postscript documents. It is moving to using FreeType as its 188 primary renderer; supporting this in the default build makes it 189 Ghostscript to be linked against the system FreeType when one is 190 available. 191 192 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL): 193 Uncomment. 194 1952010-01-05 Werner Lemberg <wl@gnu.org> 196 197 Fix Savannah bug #28395. 198 199 * src/truetype/ttdriver.c (Load_Glyph), src/type1/t1gload.c 200 (T1_Load_Glyph): Don't check `num_glyphs' if incremental interface 201 is used. 202 2032010-01-05 Ken Sharp <ken.sharp@artifex.com> 204 205 Make Type 1 `seac' operator work with incremental interface. 206 This fixes Savannah bug #28480. 207 208 * src/psaux/t1decode.c (t1operator_seac): Don't check `glyph_names' 209 if incremental interface is used. 210 2112010-01-04 Ken Sharp <ken.sharp@artifex.com> 212 213 Make incremental interface work with TrueType fonts. 214 This fixes Savannah bug #28478. 215 216 * src/truetype/ttgload.c (load_truetype_glyph): Don't check 217 `glyf_offset' if incremental interface is used. 218 2192009-12-31 Lars Abrahamsson <wonko@opera.com> 220 221 Make compilation with FT_CONFIG_OPTION_PIC work again. 222 223 * src/base/ftglyph.c (FT_Glyph_To_Bitmap) [FT_CONFIG_OPTION_PIC]: 224 Declare `library' for FT_BITMAP_GLYPH_CLASS_GET. 225 226 * src/base/ftinit.c (ft_destroy_default_module_classes, 227 ft_create_default_module_classes): Use proper casts (needed for C++ 228 compilation). 229 230 * src/sfnt/ttcmap.c (tt_cmap13_class_rec): Use FT_DEFINE_TT_CMAP. 231 2322009-12-22 Marc Kleine-Budde <mkl@pengutronix.de> 233 234 Make freetype-config aware of $SYSROOT. 235 This is Savannah patch #7040. 236 237 * builds/unix/freetype-config.in: Decorate with ${SYSROOT} where 238 appropriate. 239 2402009-12-20 Werner Lemberg <wl@gnu.org> 241 242 Fix compiler warning. 243 Reported by Sean. 244 245 * src/base/ftdbgmem.c [!FT_DEBUG_MEMORY]: ANSI C doesn't like empty 246 source files; however, some compilers warn about an unused variable 247 declaration. This is now replaced with a typedef. 248 2492009-12-18 Werner Lemberg <wl@gnu.org> 250 251 Fix Savannah bug #28320. 252 253 There exist corrupt, subsetted fonts (embedded in PDF files) which 254 contain a private dict that ends with an unterminated floating point 255 number (no operator following). We now ignore this error (as 256 acrobat does). 257 258 * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for 259 unterminated floating point numbers. 260 2612009-12-16 Werner Lemberg <wl@gnu.org> 262 263 Really fix compiler warnings. 264 Reported by Sean. 265 266 * src/truetype/ttgxvar.c (GX_PT_POINTS_ARE_WORDS, 267 GX_PT_POINT_RUN_COUNT_MASK): Convert enum values to macros. 268 2692009-12-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 270 271 Improve configure.raw to copy some options from CFLAGS to LDFLAGS. 272 The linker of Mac OS X 10.6 is sensitive to the architecture. If 273 the architectures are specified explicitly for the C compiler, the 274 linker requires the architecture specifications too. 275 276 * builds/unix/configure.raw: Replace `-isysroot' option parser by 277 more generic argument parser. 278 2792009-12-15 Werner Lemberg <wl@gnu.org> 280 281 Fix compiler warnings. 282 Reported by Sean. 283 284 * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): Fix counter data 285 type. 286 2872009-12-14 Ken Sharp <ken.sharp@artifex.com> 288 289 Ignore invalid `setcurrentpoint' operations in Type 1 fonts. 290 This fixes Savannah bug #28226. 291 292 At least two wild PostScript files of unknown provenance contain 293 Type 1 fonts, apparently converted from TrueType fonts in earlier 294 PDF versions of the files, which use the `setcurrentpoint' operator 295 inappropriately. 296 297 FreeType currently throws an error in this case, but Ghostscript and 298 Adobe Distiller both accept the fonts and ignore the problem. This 299 commit #ifdefs out the check so PostScript interpreters using 300 FreeType can render these files. 301 302 The specification says `setcurrentpoint' should only be used to set 303 the point after a `Subr' call, but these fonts use it to set the 304 initial point to (0,0). Unnecessarily so, as they correctly use an 305 `hsbw' operation which implicitly sets the initial point. 306 307 * src/psaux/t1decode.c (t1_decoder_parse_charstrings) 308 <op_setcurrentpoint>: Comment out code. 309 3102009-12-14 Bram Tassyns <bramt@enfocus.be> 311 312 Fix parsing of /CIDFontVersion. 313 This fixes Savannah bug #28287. 314 315 * src/cid/cidtoken.h: `cid_version' in CID_FaceInfoRec (in 316 t1tables.h) is of type FT_Fixed. 317 3182009-12-14 Werner Lemberg <wl@gnu.org> 319 320 Trace glyph index in CID module. 321 Suggested in Savannah patch #7023. 322 323 * src/cid/cidgload.c (cid_load_glyph): Add tracing message. 324 3252009-12-03 Werner Lemberg <wl@gnu.org> 326 327 Fix compiler warnings. 328 329 * src/truetype/ttgload.c (tt_get_metrics): Put `Exit' label into the 330 proper preprocessor conditional. 331 * src/pfr/pfrobjs.c (pfr_slot_load): Pacify gcc. 332 3332009-11-25 John Tytgat <John.Tytgat@esko.com> 334 335 Better handling of start of `eexec' section. 336 This fixes Savannah bug #28090. 337 338 * src/type1/t1parse.c (T1_Get_Private_Dict): Skip all whitespace 339 characters before start of `eexec' section. 340 3412009-11-20 Werner Lemberg <wl@gnu.org> 342 343 Fix Savannah bug #27742. 344 345 * src/base/ftstroke.c (ft_stroker_outside): Avoid silent division by 346 zero, using a threshold for `theta'. 347 3482009-11-20 Werner Lemberg <wl@gnu.org> 349 350 Fix Savannah bug #28036. 351 352 * src/type1/t1afm.c (t1_get_index): Fix comparison. 353 3542009-11-16 Werner Lemberg <wl@gnu.org> 355 356 Fix compiler warnings. 357 Reported by Kevin Blenkinsopp <arqon@promode.org>. 358 359 * src/sfnt/ttload.c (check_table_dir): Use proper data type. 360 3612009-11-15 Werner Lemberg <wl@gnu.org> 362 363 Really fix FreeDesktop bug #21197. 364 This also fixes Savannah bug #28021. 365 366 * src/autofit/aflatin.c (af_latin_metrics_check_digits), 367 src/autofit/aflatin2.c (af_latin2_metrics_check_digits): Fix loop. 368 3692009-11-15 Werner Lemberg <wl@gnu.org> 370 371 Add tracing messages for advance values. 372 373 * src/base/ftobjs.c (FT_Load_Glyph), src/truetype/ttgload.c 374 (TT_Get_HMetrics, TT_Get_VMetrics): Do it. 375 3762009-11-08 Werner Lemberg <wl@gnu.org> 377 378 Fix compiler warning. 379 Reported by Jeremy Manson <jeremy.manson@gmail.com>. 380 381 * src/truetype/ttgload.c (load_truetype_glyph): Initialize `error'. 382 3832009-11-04 Werner Lemberg <wl@gnu.org> 384 385 Remove compiler warning. 386 Reported by Sean McBride <sean@rogue-research.com>. 387 388 * src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to 389 `int', as specified in the printf(3) man page. 390 3912009-11-04 Werner Lemberg <wl@gnu.org> 392 393 Fix Savannah bug #27921. 394 395 * src/cff/cffobjs.c (cff_face_init), src/cid/cidobjs.c 396 (cid_face_init), src/type1/t1afm.c (T1_Read_Metrics), 397 src/type1/t1objs.c (T1_Face_Init): Don't use unsigned constant 398 values for rounding if the argument can be negative. 399 4002009-11-03 Bram Tassyns <bramt@enfocus.be> 401 402 Add basic support for Type1 charstrings in CFF. 403 This fixes Savannah bug #27922. 404 405 * src/cff/cffgload.c (CFF_Operator, cff_argument_counts): Handle 406 `seac', `sbw', and `setcurrentpoint' opcodes. 407 (cff_compute_bias): Add parameter to indicate the charstring type. 408 Update all callers. 409 (cff_operator_seac): Add parameter for side bearing. 410 (cff_decoder_parse_charstrings): Updated for more Type1 support. 411 4122009-11-03 Werner Lemberg <wl@gnu.org> 413 414 Return correct `linearHoriAdvance' value for embedded TT bitmaps too. 415 Reported by Jeremy Manson <jeremy.manson@gmail.com>. 416 417 src/truetype/ttgload.c (load_truetype_glyph): Add parameter to 418 quickly load the glyph header only. 419 Update all callers. 420 (tt_loader_init): Add parameter to quickly load the `glyf' table 421 only. 422 Update all callers. 423 (TT_Load_Glyph): Compute linear advance values for embedded bitmap 424 glyphs too. 425 4262009-11-03 Werner Lemberg <wl@gnu.org> 427 428 Improve code readability. 429 430 * src/ttgload.c (load_truetype_glyph): Move metrics calculation 431 to... 432 (tt_get_metrics): This new function. 433 4342009-10-26 Bram Tassyns <bramt@enfocus.be> 435 436 Fix Savannah bug #27811. 437 438 * src/truetype/ttxgvar.c (ft_var_readpackeddeltas): Fix 439 signed/unsigned mismatch. 440 4412009-10-19 Ning Dong <flintning@163.com> 442 443 Fix handling of `get' and `put' CFF instructions. 444 445 * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_get, 446 cff_op_put>: Appendix B of Adobe Technote #5177 limits the number of 447 elements for the `get' and `put' operators to 32. 448 * src/cff/cffgload.h (CFF_MAX_TRANS_ELEMENTS): Define. 449 (CFF_Decoder): Use it for `buildchar' and remove `len_buildchar'. 450 4512009-10-18 Werner Lemberg <wl@gnu.org> 452 453 Fix handling of `dup' CFF instruction. 454 Problem and solution reported by Ning Dong <flintning@163.com>. 455 456 * src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_dup>: 457 Increase `args' by 2, not 1. 458 4592009-10-10 Werner Lemberg <wl@gnu.org> 460 461 * Version 2.3.11 released. 462 ========================== 463 464 465 Tag sources with `VER-2-3-11'. 466 467 * docs/VERSION.DLL: Update documentation and bump version number to 468 2.3.11. 469 470 * README, Jamfile (RefDoc), builds/win32/visualc/index.html, 471 builds/win32/visualc/freetype.dsp, 472 builds/win32/visualc/freetype.vcproj, 473 builds/win32/visualce/index.html, 474 builds/win32/visualce/freetype.dsp, 475 builds/win32/visualce/freetype.vcproj: s/2.3.10/2.3.11/, s/2310/2311/. 476 477 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11. 478 479 * builds/unix/configure.raw (version_info): Set to 9:22:3. 480 4812009-10-10 Werner Lemberg <wl@gnu.org> 482 483 * docs/CHANGES, docs/release: Updated. 484 4852009-10-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 486 487 * src/pcf/pcfread.c (pcf_get_properties): Fix a bug in the nprops 488 truncation. Reported by Martin von Gagern and Peter Volkov. 489 https://bugs.gentoo.org/288357 and https://bugs.gentoo.org/288256 490 4912009-10-06 Werner Lemberg <wl@gnu.org> 492 493 * Version 2.3.10 released. 494 ========================== 495 496 497 Tag sources with `VER-2-3-10'. 498 499 * builds/toplevel.mk (major, minor, patch): Fix regexp to allow more 500 than a single digit. 501 (dist): We now use git. 502 503 * docs/VERSION.DLL: Update documentation and bump version number to 504 2.3.10. 505 506 * README, Jamfile (RefDoc), builds/win32/visualc/index.html, 507 builds/win32/visualc/freetype.dsp, 508 builds/win32/visualc/freetype.vcproj, 509 builds/win32/visualce/index.html, 510 builds/win32/visualce/freetype.dsp, 511 builds/win32/visualce/freetype.vcproj: s/2.3.9/2.3.10/, s/239/2310/. 512 513 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. 514 515 * builds/unix/configure.raw (version_info): Set to 9:21:3. 516 5172009-10-06 Werner Lemberg <wl@gnu.org> 518 519 Fix `make multi'. 520 521 * src/cache/ftccache.c, src/cache/ftcsbits.c (FT_COMPONENT): Define. 522 523 * src/sfnt/sfdriver.c: Include FT_INTERNAL_DEBUG_H. 524 5252009-09-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 526 527 [cache] Fix Savannah bug #27441, clean up Redhat bugzilla #513582. 528 Tricky casts in FTC_{CACHE,GCACHE,MRULIST}_LOOKUP_CMP() are removed. 529 Now these functions should be called with FTC_Node or FTC_MruNode 530 variable, and the caller should cast them to appropriate pointers to 531 concrete data. These tricky casts can GCC-4.4 optimizer (-O2) 532 confused and the crashing binaries are generated. 533 534 * src/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Drop tricky cast. 535 Now the 4th argument `node' of this function should be typed as 536 FTC_MruNode. 537 538 * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): For inline 539 implementation, new temporal variable FTC_MruNode `_mrunode' to take 540 the pointer from FTC_MRULIST_LOOKUP_CMP(). For non-inline 541 implementation, tricky cast is dropped. 542 543 * src/cache/ftcmanag.c (FTC_SIZE_NODE): New macro casting 544 to FTC_SizeNode. 545 (FTC_Manager_LookupSize): Replace FTC_SizeNode `node' by FTC_MruNode 546 `mrunode', and FTC_SIZE_NODE() is inserted. 547 (FTC_FACE_NODE): New macro casting to FTC_FaceNode. 548 (FTC_Manager_LookupFace) Replace FTC_FaceNode `node' by FTC_MruNode 549 `mrunode', and FTC_FACE_NODE() is inserted. 550 551 * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Change the type of 552 `node' from FTC_INode to FTC_Node. Extra casting macro FTC_NODE() 553 is dropped. 554 (FTC_ImageCache_LookupScaler): Ditto. 555 (FTC_SBitCache_Lookup): Change the type of `node' from FTC_SNode to 556 FTC_Node. Extra casting macro FTC_NODE() is dropped. FTC_SNODE() 557 is inserted. 558 (FTC_SBitCache_LookupScaler): Ditto. 559 560 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the type of 561 `node' from FTC_CMapNode to FTC_Node. Extra casting macro 562 FTC_NODE() is dropped, FTC_CMAP_NODE() is inserted. 563 5642009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 565 566 [cache, psaux, type1] Fix for multi build. 567 In multi build, some cpp functions are left as unresolved symbols. 568 569 * src/cache/ftcbasic.c: Include FT_INTERNAL_DEBUG_H for FT_TRACE1(). 570 571 * src/psaux/t1decode.c: Include FT_INTERNAL_CALC_H for 572 FIXED_TO_INT(). 573 * src/type1/t1gload.c: Ditto. 574 * src/type1/t1objs.c: Ditto. 575 5762009-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 577 578 [autofit] Fix for multi build. 579 580 * src/autofit/afmodule.h: Include FT_INTERNAL_OBJECTS_H to use 581 FT_DECLARE_MODULE() macro in multi build. 582 583 * src/autofit/aflatin.c: Include <ft2build.h> to handle 584 FT_ADVANCES_H correctly in multi build. 585 5862009-09-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 587 588 [cache] Check the face filled by FTC_Manager_LookupFace(). 589 590 * src/cache/ftcbasic.c (ftc_basic_family_get_count): Return 591 immediately if FTC_Manager_LookupFace() fills face by NULL. Such 592 case can occur when the code is optimized by GCC-4.2.x. 593 5942009-09-23 Werner Lemberg <wl@gnu.org> 595 596 * docs/CHANGES: Updated. 597 5982009-09-12 Werner Lemberg <wl@gnu.org> 599 600 [raster] Fix 5-levels grayscale output. 601 This was broken since version 2.3.0. 602 603 * src/raster/ftraster.c (count_table): Use pre-2.3.0 values (which 604 were then computed dynamically). 605 (Vertical_Gray_Sweep_Step): Updated. 606 607 (ft_black_render): Initialize `worker->gray_lines' (problem found by 608 valgrind). 609 610 (FT_RASTER_OPTION_ANTI_ALIASING, DEBUG_RASTER): Don't #undef, just 611 comment out. 612 6132009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 614 615 Improve configure.raw for cross build. 616 617 * builds/unix/configure.raw: Remove temporal files created by the 618 suffix checking for CC_BUILD. Set XX_ANSIFLAGS and XX_CFLAGS when 619 cross compiler is GCC. AC_PROG_CC checks whether the cross compiler 620 is GCC, its result is stored in GCC. 621 6222009-09-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 623 624 [BDF] Modify hash API to take size_t value instead of void *. 625 626 The hash API in BDF driver is designed to be generic, it takes 627 void * typed data. But BDF driver always gives an unsigned long 628 integer (the index to a property). To reduce non-essential 629 casts from unsigned long to void* and from void* to unsigned 630 long, the hash API is changed to take size_t integer. 631 The issue of incompatible cast between unsigned long and void* 632 on LLP64 platform is reported by NightStrike from MinGW-Win64 633 project. See 634 https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html 635 636 * src/bdf/bdf.h: The type of hashnode->data is changed from 637 void* to size_t. 638 639 * src/bdf/bdflib.c (hash_insert): Get size_t data, instead of 640 void* data. 641 (bdf_create_property): Get the name length of new property by 642 size_t variable, with a cut-off at FT_ULONG_MAX. 643 (_bdf_set_default_spacing): Get the name length of the face by 644 size_t variable, with a cut-off at 256. 645 (bdf_get_property): Get the property id by size_t variable to 646 reduce the casts between 32-bit prop ID & hashnode->data during 647 simple copying. 648 (_bdf_add_property): Ditto. 649 (_bdf_parse_start): Calculate the index to the property array 650 by size_t variable. 651 (bdf_get_font_property): Drop a cast to unsigned long. 652 6532009-09-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 654 655 [Win64] Improve the computation of random seed from stack address. 656 657 On LLP64 platform, the conversion from pointer to FT_Fixed need 658 to drop higher 32-bit. Explicit casts are required. Reported by 659 NightStrike from MinGW-w64 project. See 660 https://lists.gnu.org/archive/html/freetype/2009-09/msg00000.html 661 662 * src/cff/cffgload.c: Convert the pointers to FT_Fixed explicitly. 663 664 * src/psaux/t1decode.c: Ditto. 665 666 6672009-09-03 Werner Lemberg <wl@gnu.org> 668 669 [raster] Improvements for stand-alone mode. 670 671 * src/raster/rules.mk: Don't handle ftmisc.h. It is needed for 672 stand-alone mode only. 673 674 * src/raster/ftmisc.h (FT_MemoryRec, FT_Alloc_Func, FT_Free_Func, 675 FT_Realloc_Func): Copy declarations from ftsystem.h. 676 6772009-09-02 Bram Tassyns <bramt@enfocus.be> 678 679 Improve vertical metrics calculation (Savannah bug #27364). 680 681 The calculation of `vertBearingX' is not defined in the OTF font 682 spec so FreeType does a `best effort' attempt. However, this value 683 is defined in the PDF and PostScript specs, and that algorithm is 684 better than the one FreeType currently uses: 685 686 FreeType: Use the middle of the bounding box as the X coordinate 687 of the vertical origin. 688 689 Adobe PDF spec: Use the middle of the horizontal advance vector as 690 the X coordinate of the vertical origin. 691 692 FreeType's algorithm goes wrong if you have a really small glyph 693 (like the full-width, circle-like dot at the end of the sentence, as 694 used in CJK scripts) with large bearings. With the FreeType 695 algorithm this dot gets centered on the baseline; with the PDF 696 algorithm it gets the correct location (in the top right). Note 697 that this is a serious issue, it's like printing the dot at the end 698 of a Roman sentence at the center of the textline instead of on the 699 baseline like it should. So i believe the PDF spec's algorithm 700 should be used in FreeType as well. 701 702 The `vertBearingY' value for such small glyphs is also very strange 703 if no `vmtx' information is present, since the height of the bbox is 704 not representable for the height of the glyph visually (the 705 whitespace up to the baseline is part of the glyph). The fix also 706 includes some code for a better estimate of `vertBearingY'. 707 708 * src/base/ftobjs.c (ft_synthesize_vertical_metrics): `vertBearingX' 709 is now calculated as described by the Adobe PDF Spec. Estimate for 710 `vertBearingY' now works better for small glyphs completely above or 711 below the baseline into account. 712 713 * src/cff/cffgload.c (cff_slot_load): `vertBearingX' is now 714 calculated as described by the Adobe PDF Spec. Vertical metrics 715 information was always ignored when FT_CONFIG_OPTION_OLD_INTERNALS 716 was not defined. 717 718 * src/truetype/ttgload.c (compute_glyph_metrics): `vertBearingX' is 719 now calculated as described by the Adobe PDF Spec. 720 7212009-09-01 John Tytgat <John.Tytgat@esko.com> 722 723 Fix custom cmap for empty Type 1 font (Savannah bug #27294). 724 725 * include/freetype/internal/t1types.h (T1_EncodingRecRec_): Update 726 comment to reflect revised code_last meaning. 727 * src/type1/t1load.c (T1_Open_Face), src/type42/t42objs.c 728 (T42_Open_Face): Assign max_char as highest character code + 1 and 729 use this for T1_EncodingRecRec_::code_last. 730 * src/psaux/t1cmap.c (t1_cmap_custom_init): Follow revised 731 T1_EncodingRecRec_::code_last meaning. 732 7332009-08-25 Werner Lemberg <wl@gnu.org> 734 735 Fix rendering of horizontally compressed CFFs. 736 Bug reported by Ivan Nincic <inincic@pdftron.com>. 737 738 * src/cff/cffgload.c (cff_slot_load): Thinko: Check `xx' element of 739 `font_matrix' also. 740 741 * docs/CHANGES: Updated. 742 7432009-08-03 suyu0925@gmail.com 744 745 Don't call `ft_fseek' every time when executing `ft_fread'. 746 747 * src/base/ftstream.c (FT_Stream_Seek), src/base/ftsystem.c 748 (ft_ansi_stream_io): Implement it. 749 7502009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 751 752 sfnt: Cast a charcode to 32-bit in cmap format 14 parser. 753 754 * src/sfnt/ttcmap.c (tt_cmap14_char_var_index, 755 tt_cmap14_char_var_isdefault, tt_cmap14_char_variants, 756 tt_cmap14_variant_chars): Correct mismatches from 757 FT_CMap_CharVarIndexFunc prototype, FT_ULong arguments 758 are replaced by FT_UInt32 arguments. 759 7602009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 761 762 sfnt: Cast a charcode to 32-bit in cmap format 12 parser. 763 764 * src/sfnt/ttcmap.c (tt_cmap12_char_next): 765 Insert explicit cast from FT_UFast to FT_UInt32 766 for return value. 767 7682009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 769 770 psaux: Fix a few casts to FT_Int32 value. 771 772 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): 773 Fix a few casts setting `value' from FT_Long to FT_Int32, 774 because `value' is typed as FT_Int32 since 2009-06-22. 775 7762009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 777 778 sfnt: Fix a data type mismatching with its source. 779 780 * src/sfnt/ttcmap.c (tt_cmap13_char_next): Fix the 781 type of `gindex' from FT_ULong to FT_UInt because 782 it is set by FT_UInt tt_cmap13_char_map_binary() or 783 TT_CMap13->cur_gindex. 784 7852009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 786 787 sfnt: Extend a few local variables to load 32-bit values. 788 789 * src/sfnt/ttkern.c (tt_face_load_kern): Extend `count' 790 and `kern' to load 32-bit values. 791 7922009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 793 794 pfr: Extend `num_aux' to take 32-bit value. 795 796 * src/pfr/pfrload.c (pfr_phy_font_load): Extend 797 `num_aux' to load 32-bit value. 798 7992009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 800 801 pcf: Truncate FT_ULong `nprops' to fit to int PCF_Face->nprops. 802 803 * src/pcf/pcfread.c (pcf_get_properties): Load `nprops' 804 as FT_ULong value from PCF file, but truncate it as 805 int to fit PCF_Face->nprops. The number of truncated 806 properties is shown in the trace message. 807 8082009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 809 810 gxvalid: Extend a few local variables to reduce the casts. 811 812 * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate): 813 Extend `type' and `rest' to take FT_ULong values. 814 8152009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 816 817 gxvalid: Extend `settingTable' to take 32-bit offset. 818 819 * src/gxvalid/gxvfeat.c (gxv_feat_name_validate): 820 Extend `settingTable' to take 32-bit offset. 821 8222009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 823 824 autofit: Cast FT_Long glyph_count to compare with FT_UInt GID. 825 826 * src/autofit/afglobal.c (af_face_globals_is_digit, 827 af_face_globals_compute_script_coverage): Cast FT_Long 828 globals->glyph_count to FT_ULong, to compare with FT_UInt 829 gindex. 830 8312009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 832 833 smooth: Exclude 16-bit system in invalid pitch/height check. 834 835 * src/smooth/ftsmooth.c (ft_smooth_render_generic): 836 pitch and height are typed as FT_UInt but checked to fit 837 16-bit range, to avoid the overflows. On 16-bit system, 838 this checking inserts a conditional that never occurs. 839 8402009-07-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 841 842 cff: Type large constants > 0x7FFF as long for 16-bit systems. 843 844 * src/cff/cffload.c (cff_charset_load): Type large 845 constants > 0x7FFF as long, because normal constants 846 are typed signed integer that is less than 0x8000 on 847 16-bit systems. 848 8492009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 850 851 base: Remove an unused variable. 852 853 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove an 854 unused variable `library'. glyph->library is used. 855 8562009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 857 858 cache: Check higher bits in flags for non ILP32 systems. 859 860 4 public functions ought to take FT_ULong flags, but take 861 FT_UInt flags. To keep binary compatibility, we drop higher 862 bits on non ILP32 platforms, 863 ILP64 systems: No drop occurs. 864 LP64 systems: Higher bits are not used. 865 16-bit systems: Drop can occur. 866 See 867 https://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00065.html 868 These functions will be refined to take FT_ULong flags in 869 next bump with incompatible API change. 870 871 * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): 872 Check `flags' in `type', the 2nd argument. 873 (FTC_SBitCache_Lookup): Ditto. 874 (FTC_ImageCache_LookupScaler): Check `load_flags', 875 the 3rd argument. 876 (FTC_SBitCache_LookupScaler): Ditto. 877 8782009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 879 880 sfnt: Ignore invalid GIDs in glyph name lookup. 881 882 * include/freetype/internal/fttrace.h: 883 New trace module for sfdriver.c is added. 884 885 * src/sfnt/sfdriver.c (sfnt_get_name_index): 886 Restrict glyph name lookup to FT_UInt GID. 887 Genuine TrueType can hold 16-bit glyphs. 888 8892009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 890 891 pcf: Fix a comparison between FT_Long and FT_ULong. 892 893 * src/pcf/pcfread.c (pcf_get_bitmaps): Return an error 894 if PCF_Face->nmetrics is negative. 895 8962009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 897 898 gxvalid: Guarantee `nFeatureFlags' size up to 32-bit. 899 900 * src/gxvalid/gxvmort.c (gxv_mort_featurearray_validate): 901 Extend the 3rd argument `nFeatureFlags' to FT_ULong. 902 * src/gxvalid/gxvmort.h: Ditto. 903 9042009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 905 906 sfnt: Insert explicit cast for LP64 system. 907 908 * src/sfnt/ttkern.c (tt_face_load_kern): Insert 909 cast from unsigned long to FT_UInt32. 910 9112009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 912 913 gxvalid: Guarantee `just' table size upto 32-bit. 914 915 * src/gxvalid/gxvjust.c (gxv_just_validate): 916 The type of `offset' is changed from FT_UInt to 917 FT_Offset, for 16-bit platforms. 918 9192009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 920 921 gxvalid: Guarantee `trak' table size upto 32-bit. 922 923 * src/gxvalid/gxvtrak.c (gxv_trak_validate): 924 The type of `offset' is changed from FT_UInt to 925 FT_Offset, for 16-bit platforms. 926 9272009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 928 929 type1: Fix a data type mismatching with its source. 930 931 * include/freetype/internal/t1types.h: The type of 932 T1_Face->buildchar is matched with T1_Decoder->top. 933 9342009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 935 936 pfr: Fix a data type mismatching with its source. 937 938 * src/pfr/pfrtypes.h: The type of PFR_KernItem->offset 939 is extended from FT_UInt32 to FT_Offset, because it is 940 calculated with the pointer difference, in 941 pfr_extra_item_load_kerning_pairs(). 942 9432009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 944 945 pfr: Fix a data type mismatching with its source. 946 947 * src/pfr/pfrtypes.h: The type of PFR_PhyFont->chars_offset 948 is extended from FT_UInt32 to FT_Offset, because it is 949 calculated with the pointer difference in pfr_phy_font_load(). 950 9512009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 952 953 pfr: Fix a data type mismatching with its source. 954 955 * src/pfr/pfrtypes.h: The type of PFR_PhyFont->bct_offset 956 is extended from FT_UInt32 to FT_Long, because it is 957 loaded by FT_STREAM_POS() in pfr_phy_font_load(). 958 9592009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 960 961 smooth: Improve the format in debug message. 962 963 * src/smooth/ftgrays.c (gray_dump_cells): Improve the 964 format specifications to dump variables. 965 9662009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 967 968 sfnt: Fix a data type mismatching with its source. 969 970 * src/sfnt/sfobjs.c (sfnt_load_face): The type of 971 local `flags' is matched with FT_Face->face_flags. 972 9732009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 974 975 psaux: Fix a data type mismatching with its source. 976 977 * include/freetype/internal/psaux.h: The type of 978 T1_DecoderRec.buildchar is matched with 979 T1_DecoderRec.top. 980 9812009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 982 983 truetype: Extend TrueType GX packed deltas to FT_Offset. 984 985 * src/truetype/ttgxvar.c (ft_var_readpackeddeltas): 986 The type of 2nd argument `delta_cnt' is changed from 987 FT_Int to FT_Offset, because its source can be cvt 988 table size calculated from stream position. 989 9902009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 991 992 truetype: Extend mmvar_len to hold size_t values. 993 994 * src/truetype/ttgxvar.h: The type of 995 GX_BlendRec.mmvar_len is changed from FT_Int to 996 FT_Offset, because TT_Get_MM_Var() calculates it 997 by sizeof() results. 998 9992009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1000 1001 truetype: Check invalid function number in IDEF instruction. 1002 1003 * src/truetype/ttinterp.c (Ins_IDEF): Check 1004 if the operand fits to 8-bit opcode limitation. 1005 10062009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1007 1008 truetype: Check invalid function number in FDEF instruction. 1009 1010 * src/truetype/ttinterp.c (Ins_FDEF): Check 1011 if the operand fits 16-bit function number. 1012 10132009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1014 1015 truetype: Truncate the deltas of composite glyph at 16-bit values. 1016 1017 * src/truetype/ttgload.c (load_truetype_glyph): 1018 Insert cast from FT_Long (deltas[i].{x,y}) to 1019 FT_Int16 in the summation of deltas[] for composite 1020 glyphs. Because deltas[i] is typed as FT_Pos, 1021 its component x, y are typed as FT_Long, but 1022 their sources are always FT_Int16 when they are 1023 loaded by ft_var_readpackeddeltas(). However, 1024 the limitation about the summed deltas is unclear. 1025 10262009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1027 1028 truetype: Truncate the instructions upto 16-bit per a glyph. 1029 1030 * src/truetype/ttgload.c (TT_Hint_Glyph): Truncate 1031 the instructions upto 16-bit length per a glyph. 1032 10332009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1034 1035 truetype: Cast the numerical operands to 32-bit for LP64 systems. 1036 1037 * src/truetype/ttinterp.c (Ins_SPHIX, INS_MIAP, 1038 Ins_MIRP): Insert cast from long (args[], the 1039 operands passed to TrueType operator) to FT_Int32 1040 (the argument of TT_MulFix14()). 1041 10422009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1043 1044 truetype: Cast the project vector to 32-bit for LP64 system. 1045 1046 * src/truetype/ttinterp.c (Project, DualProject): 1047 Insert casts from FT_Pos (the arguments `dx', `dy') 1048 to FT_UInt32 (the argument to TT_DotFix14()). 1049 10502009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1051 1052 truetype: Cast the scaling params to 32-bit for LP64 system. 1053 1054 * src/truetype/ttgload.c (TT_Process_Composite_Component): 1055 Insert casts from long (return value of FT_MulFix()) to 1056 FT_Int32 (the argument to FT_SqrtFixed()). 1057 10582009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1059 1060 sfnt: Cast a character code to FT_UInt32 for LP64 system. 1061 1062 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary, 1063 tt_cmap14_variants, tt_cmap14_char_variants, 1064 tt_cmap14_def_char_count, tt_cmap14_get_def_chars, 1065 tt_cmap14_get_nondef_chars, tt_cmap14_variant_chars) 1066 Insert casts when FT_UInt32 variable is loaded by 1067 TT_NEXT_{UINT24|ULONG}. Because most of them are 1068 compared with FT_UInt32 values in public API, replacing 1069 FT_UFast is not recommended. 1070 10712009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1072 1073 sfnt: Cast a character code to FT_UInt32 for LP64 system. 1074 1075 * src/sfnt/ttcmap.c (tt_cmap4_init, tt_cmap4_next): 1076 Insert the casts from unsigned long constant to 1077 FT_UInt32. 1078 10792009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1080 1081 sfnt: Extend TT_BDF->strings_size to FT_ULong for huge BDF. 1082 1083 * include/freetype/internal/tttypes.h: The type 1084 of TT_BDF->string_size is extended from FT_UInt32 1085 to FT_ULong, because BDF specification does not 1086 restrict the length of string. 1087 * src/sfnt/ttbdf.c: The scratch variable `strings' 1088 to load TT_BDF->string_size is matched with 1089 TT_BDF->string_size. 1090 10912009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1092 1093 psaux: Handle the string length by FT_Offset variables. 1094 1095 * src/psaux/afmparse.c (afm_parser_next_key, 1096 afm_tokenize, afm_parse_track_kern, 1097 afm_parse_kern_pairs, afm_parse_kern_data, 1098 afm_parser_skip_section, afm_parser_parse): 1099 The length of key is handled by FT_Offset, 1100 instead of FT_UInt. Although the length of 1101 PostScript strings or name object is 16-bit, 1102 AFM_STREAM_KEY_LEN() calculates the length 1103 from the pointer difference. 1104 1105 * src/psaux/afmparse.h (afm_parser_next_key): 1106 Ditto. 1107 11082009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1109 1110 pcf: Fix some data types mismatching with their sources. 1111 1112 * src/pcf/pcfread.c (pcf_get_bitmaps): The types 1113 of `nbitmaps', `i', `sizebitmaps' are matched with 1114 the type of area FT_Bitmap.pitch * FT_Bitmap.rows. 1115 11162009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1117 1118 pcf: Handle the string length by size_t variables. 1119 1120 * src/pcf/pcfread.c (pcf_interpret_style): The types 1121 of nn, len, lengths[4] are changed to size_t, because 1122 they are loaded by (or compared with) ft_strlen(). 1123 1124 * src/pcf/pcfutil.c (BitOrderInvert, TwoByteSwap, 1125 FourByteSwap): The type of the 2nd argument `nbytes' 1126 is changed to size_t, for similarity with ANSI C 1127 string functions. 1128 1129 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): The type of 1130 `bytes' is changed to FT_Offset, because it is passed 1131 to FT_ALLOC(), via ft_glyphslot_alloc_bitmap(). At 1132 least, using unsigned type is better. 1133 11342009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1135 1136 pcf: Fix some data types mismatching with their sources. 1137 1138 * src/pcf/pcfread.c (pcf_seek_to_table_type, 1139 pcf_has_table_type): The type of 3rd argument 1140 `ntables' is matched with PCF_Toc->count. 1141 11422009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1143 1144 otvalid: Truncate the glyph index to 16-bit. 1145 1146 * src/otvalid/otvalid.c (otv_validate): Checks 1147 face->num_glyphs does not exceed 16-bit limit, 1148 pass FT_UInt num_glyphs to backend functions 1149 otv_{GPOS|GSUB|GDEF|JSTF|MATH}_validate(). 1150 11512009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1152 1153 cache: Insert explicit casts for LP64 systems. 1154 1155 * src/cache/ftcbasic.c (FTC_ImageCache_Lookup, 1156 FTC_SBitCache_Lookup): The type of FTC_ImageType->width 1157 is FT_Int, so the cast to unsigned larger type FT_ULong 1158 is introduced for the comparisons with 0x10000L for 1159 LP64 platform. 1160 11612009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1162 1163 cache: Fix some data types mismatching with their sources. 1164 1165 * src/cache/ftccache.h: The type of return value 1166 by FTC_Node_WeightFunc function is changed to 1167 FT_Offset. The type of FTC_CacheClass->cache_size 1168 is changed to FT_Offset, too. 1169 1170 * src/cache/ftccback.h (ft_inode_weight, 1171 ftc_snode_weight): Ditto. 1172 1173 * src/cache/ftccmap.c (ftc_cmap_node_weight): Ditto. 1174 1175 * src/cache/ftcimage.c (ftc_inode_weight, 1176 FTC_INode_Weight): Ditto. 1177 1178 * src/cache/ftcsbits.c (ftc_snode_weight, 1179 FTC_SNode_Weight): Ditto. 1180 1181 * src/cache/ftcmru.h: The type of 1182 FTC_MruListClass->node_size is changed to FT_Offset, 1183 because it is passed to FT_ALLOC() to specify the 1184 size of buffer. 1185 11862009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1187 1188 XXX_cmap_encoding_char_next() return FT_UInt32 values. 1189 1190 * include/freetype/internal/services/svpscmap.h: 1191 The size of the charcode value returned by 1192 the function typed PS_Unicodes_CharNextFunc is 1193 matched with its input charcode value. 1194 1195 * src/cff/cffmap.c (cff_cmap_encoding_char_next, 1196 cff_cmap_unicode_char_next): Ditto. 1197 1198 * src/pfr/pfrmap.c (pfr_cmap_encoding_char_next): 1199 Ditto. 1200 1201 * src/psaux/t1cmap.c (t1_cmap_std_char_next, 1202 t1_cmap_custom_char_next, t1_cmap_unicode_char_next): 1203 Ditto. 1204 1205 * src/psnames/psmodule.c (ps_unicodes_char_next): 1206 Ditto. 1207 1208 * src/winfonts/winfnt.c (fnt_cmap_char_next): 1209 Ditto. 1210 1211 * src/sfnt/ttcmap.c (tt_cmap0_char_next, 1212 tt_cmap2_char_next, tt_cmap4_char_next, 1213 tt_cmap6_char_next, tt_cmap10_char_next, 1214 tt_cmap12_char_next, tt_cmap13_char_next): Ditto. 1215 (tt_cmap14_char_variants): Handle base unicode 1216 codepoint by FT_UInt32 variable to avoid overflow 1217 on 16-bit platforms. 1218 (tt_cmap14_ensure): The type of `num_results' is 1219 extend to FT_UInt32, to cover unsigned 32-bit 1220 `numVarSelectorRecords' in cmap14 table header. 1221 12222009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1223 1224 truetype: Extend TT_Face->num_locations for broken TTFs. 1225 1226 * include/freetype/internal/tttypes.h: 1227 TT_Face->num_locations are extended from FT_UInt 1228 to FT_ULong, to stand with broken huge loca table. 1229 Some people insists there are broken TTF including 1230 the glyphs over 16-bit limitation, in PRC market. 1231 * src/truetype/ttpload.c (tt_face_load_loca): 1232 Remove unrequired 16-bit truncation for FT_UInt 1233 TT_Face->num_locations. 1234 12352009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1236 1237 smooth: Fix some data types mismatching with their sources. 1238 1239 * src/smooth/ftgrays.c: The type of `TCoord' is 1240 matched to `TPos', because they are mixed in 1241 gray_set_cell(). The type of TCell->x is extended 1242 to `TPos', because gray_find_cell() sets it by 1243 TWorker.ex. The type of TCell->cover is extended 1244 to `TCoord', because gray_render_scanline() adds 1245 TCoord value to it. The type of TWork.cover is matched 1246 with TCell->cover. The types of 1247 TWork.{max_cells,num_cells} are changed to FT_PtrDist, 1248 because they are calculated from the memory addresses. 1249 The type of TWork.ycount is changed to TPos, because 1250 it is calculated from TPos variables. 1251 (gray_find_cell): The type of `x' is matched with 1252 its initial value ras.ex. 1253 (gray_render_scanline): The types of `mod', `lift' 1254 and `rem' are changed to TCoord, because their values 1255 are set with explicit casts to TCoord. When ras.area 1256 is updated by the differential values including 1257 `delta', they are explicitly cast to TArea, because 1258 the type of `delta' is not TArea but TCoord. 1259 (gray_render_line): The type of `mod' is extended 1260 from int to TCoord, because (TCoord)dy is added to mod. 1261 (gray_hline): The argument `acount' is extended to 1262 TCoord, to match with the parameters in the callers. 1263 12642009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1265 1266 cff: Fix some data types mismatching with their sources. 1267 1268 * src/cff/cffobjs.c (cff_face_init): The type of 1269 `scaling' is matched with the scaling parameter 1270 in FT_Matrix_Multiply_Scaled() and 1271 FT_Vector_Transform_Scaled(). 1272 1273 * src/cff/cffparse.c (cff_parse_real): The type of 1274 `power_ten', `scaling', `exponent_add', 1275 `integer_length', `fraction_length', 1276 `new_fraction_length' and `shift' are matched with 1277 the type of `exponent' to avoid unexpected truncation. 1278 (cff_parse_fixed_scaled): The type of `scaling' is 1279 matched with the `scaling' argument to 1280 cff_parse_real(). 1281 (cff_parse_fixed_dynamic): Ditto. 1282 (cff_parse_font_matrix): The type of `scaling' is 1283 matched with the `scaling' argument to 1284 cff_parse_dynamic(). 1285 12862009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1287 1288 autofit: Fix some data types mismatching with their sources. 1289 1290 * src/autofit/afglobal.c: Correct the type of 1291 AF_FaceGlobalsRec.glyph_count to match with 1292 FT_Face->num_glyphs. 1293 (af_face_globals_compute_script_coverage): 1294 Insert explicit cast to compare 1295 FT_Long AF_FaceGlobalsRec.glyph_count versus 1296 FT_UInt gindex. The type of `nn' is changed 1297 to scan glyph index upto AF_FaceGlobalsRec.glyph_count. 1298 (af_face_globals_get_metrics): The type of `script_max' 1299 is changed to cover size_t value. Insert explicit cast 1300 to compare FT_Long AF_FaceGlobalsRec.glyph_count versus 1301 FT_UInt gindex. 1302 1303 * src/autofit/afhints.c (af_axis_hints_new_segment): 1304 Insert explicit cast to calculate `big_max' from 1305 integer and size_t values. 1306 (af_axis_hints_new_edge): Ditto. 1307 1308 * src/autofit/aflatin.c (af_latin_metrics_init_blues): 1309 The type of `best_y' is matched to FT_Vector.y. 1310 (af_latin_compute_stem_width): The type of `delta' is 1311 matched to `dist' and `org_dist'. 1312 13132009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1314 1315 autofit: Count the size of the memory object by ptrdiff_t. 1316 1317 * src/autofit/afcjk.c (af_cjk_hint_edges): The 1318 number of edges `n_edges' should be counted by 1319 FT_PtrDist variable instead of FT_Int. 1320 1321 * src/autofit/aflatin.c (af_latin_hint_edges): 1322 Ditto. 1323 1324 * src/autofit/aftypes.h: In AF_ScriptClassRec, 1325 the size of metric `script_metrics_size' should 1326 be counted by FT_Offset variable instead of FT_UInt. 1327 1328 * src/autofit/afhints.c 1329 (af_glyph_hints_align_strong_points): The cursors 1330 for the edges `min', `max', `mid' in the memory 1331 buffer should be typed FT_PtrDist. 1332 13332009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1334 1335 autofit: Fix for unused variable `first'. 1336 1337 * src/autofit/afhints.c (af_glyph_hints_reload): Insert 1338 FT_UNUSED() to hide the unused variable warning. 1339 13402009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1341 1342 Improve bitmap size or pixel variables for 16-bit systems. 1343 1344 * include/freetype/config/ftstdlib.h: Introduce 1345 FT_INT_MIN, to use in signed integer overflow in 1346 16-bit and 64-bit platforms. 1347 1348 * include/freetype/internal/fttrace.h: Add a tracer 1349 to ftsynth.c. 1350 1351 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Check 1352 invalid strength causing integer overflow on 16-bit 1353 platform. 1354 1355 * src/base/ftcalc.c (ft_corner_orientation): Change 1356 the internal calculation from FT_Int to FT_Long, to 1357 avoid an overflow on 16-bit platforms. The caller of 1358 this function should use only the sign of result, 1359 so the cast to FT_Int is acceptable. 1360 1361 * src/base/ftsynth.c: Introduce a tracer for synth module. 1362 (FT_GlyphSlot_Embolden): Check invalid strength causing 1363 integer overflow on 16-bit platform. 1364 1365 * src/bdf/bdfdrivr.c (BDF_Face_Init): The glyph index 1366 in FT2 API is typed as FT_UInt, although BDF driver 1367 can handle unsigned long glyph index internally. To 1368 avoid integer overflow on 16-bit platform, too large 1369 glyph index should be excluded. 1370 (BDF_Glyph_Load): The glyph pitch in FT2 is typed as 1371 FT_UInt, although BDF driver can handle unsigned long 1372 glyph pitch internally. To avoid integer overflow on 1373 16-bit platform, too large glyph pitch should not be 1374 returned. 1375 1376 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): The glyph 1377 pitch in FT2 is typed as FT_UInt, although PFR font 1378 format can include huge bitmap glyph with 24-bit pitch 1379 (however, a glyph spends 16.7 pixel, it's not realistic). 1380 To avoid integer overflow on 16-bit platform, huge 1381 bitmap glyph should be excluded. 1382 1383 * src/smooth/ftgrays.c (gray_hline): As FT_Span.x is 1384 truncated to fit its type (16-bit short), FT_Span.y 1385 should be truncated to fit its type (FT_Int). 1386 1387 * src/cff/cffdrivr.c (cff_get_ros): CFF specification 1388 defines the supplement in ROS as a real number. 1389 Truncate it to fit public FT2 API. 1390 1391 * src/cff/cffparse.c (cff_parse_cid_ros): Warn the 1392 supplement if it is truncated or rounded in cff_get_ros(). 1393 1394 * src/cff/cfftypes.h: Change the type of internal variable 1395 `supplement' from FT_Long to FT_ULong to fit the signedness 1396 to the type in public API. 1397 13982009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1399 1400 psaux: Prevent invalid arguments to afm_parser_read_vals(). 1401 1402 * src/psaux/afmparse.c (afm_parser_read_vals): Change 1403 the type of `n' to prevent negative number how many 1404 arguments should be parsed. 1405 1406 * src/psaux/afmparse.h (afm_parser_read_vals): Ditto. 1407 14082009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1409 1410 base: Prevent some overflows on LP64 systems. 1411 1412 * src/base/ftadvanc.c (FT_Get_Advances): Cast the 1413 unsigned long constant FT_LOAD_ADVANCE_ONLY to FT_UInt32 1414 for LP64 platforms. 1415 1416 * src/base/ftcalc.c (FT_Sqrt32): All internal variables 1417 are changed to FT_UInt32 from FT_ULong. 1418 (FT_MulDiv): Insert casts to FT_Int32 for LP64 platforms. 1419 This function is designed for 32-bit integer, although 1420 their arguments and return value are FT_Long. 1421 1422 * src/base/ftobjs.c (FT_Get_Char_Index): Check `charcode' 1423 is within unsigned 32-bit integer for LP64 platforms. 1424 (FT_Face_GetCharVariantIndex): Check `charcode' and 1425 `variantSelector' are within 32-bit integer for LP64 1426 platforms. 1427 (FT_Face_GetCharsOfVariant): Check `variantSelector' is 1428 within unsigned 32-bit integer for LP64 platforms. 1429 1430 * src/base/fttrigon.c (ft_trig_downscale): The FT_Fixed 1431 variable `val' and unsigned long constant FT_TRIG_SCALE 1432 are cast to FT_UInt32, when calculates FT_UInt32. 1433 (FT_Vector_Rotate): The long constant 1L is cast to 1434 FT_Int32 to calculate FT_Int32 `half'. 1435 14362009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1437 1438 cff: Cast the long variables to 32-bit for LP64 systems. 1439 1440 * src/cff/cffdrivr.c (cff_get_advances): Insert 1441 explicit cast to modify a 32-bit flag by unsigned 1442 long constant. 1443 1444 * src/cff/cffobjs.c (cff_face_init): Ditto. 1445 1446 * src/cff/cffgload.c (cff_decoder_parse_charstrings): 1447 Replace the casts to FT_Long by the casts to FT_Int32 1448 for LP64 platforms. 1449 14502009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1451 1452 pcf: Improve PCF_PropertyRec.value names on LP64 platforms. 1453 1454 * src/pcf/pcf.h: In PCF_PropertyRec.value, the member 1455 `integer' is replaced by `l', `cardinal' is replaced 1456 by `ul', to fix the difference between the name and 1457 the types on LP64 platforms. 1458 1459 * src/pcf/pcfdrivr.c (pcf_get_bdf_property): Reflect 1460 PCF_PropertyRec.value change, with appropriate casts 1461 to FT_Int32/FT_UInt32. Their destinations 1462 BDF_PropertyRec.{integer|cardinal} are public and 1463 explicitly defined as FT_Int32/FT_UInt32. 1464 1465 * src/pcf/pcfread.c (pcf_get_properties, pcf_load_font): 1466 Reflect PCF_PropertyRec.value change. 1467 14682009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1469 1470 pcf: Fix some data types mismatching with their sources. 1471 1472 * src/pcf/pcfdrivr.c (pcf_cmap_char_index): The type of 1473 `code' is matched to PCF_Encoding->enc. 1474 (pcf_cmap_char_next): The type of `charcode' is matched 1475 to PCF_Encoding->enc. When *acharcode is set by charcode, 1476 an overflow is checked and cast to unsigned 32-bit 1477 integer. 1478 14792009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1480 1481 bdf: Improve bdf_property_t.value names for LP64 platforms. 1482 1483 * src/bdf/bdf.h: In bdf_property_t.value, the member 1484 `int32' is replaced by `l', `card32' is replaced by 1485 `ul', to fix the difference between the name and the 1486 types on LP64 platforms. 1487 1488 * src/bdf/bdfdrivr.c (BDF_Face_Init): Reflect 1489 bdf_property_t.value change. 1490 (bdf_get_bdf_property): Reflect bdf_property_t.value 1491 change, with appropriate casts to FT_Int32/FT_UInt32. 1492 Their destinations BDF_PropertyRec.{integer|cardinal} 1493 are public and explicitly defined as FT_Int32/FT_UInt32. 1494 1495 * src/bdf/bdflib.c (_bdf_add_property): Reflect 1496 bdf_property_t.value change. 1497 14982009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1499 1500 bdf: Fix some data types mismatching with their sources. 1501 1502 * src/bdf/bdfdrivr.c (bdf_cmap_char_index): The type 1503 of `code' is matched with BDF_encoding_el->enc. 1504 (bdf_cmap_char_next): The type of `charcode' is 1505 matched with BDF_encoding_el->enc. When *acharcode 1506 is set by charcode, an overflow is checked and 1507 cast to unsigned 32-bit integer. 1508 15092009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1510 1511 autofit: Improve Unicode range definitions. 1512 1513 * src/autofit/aftypes.h (AF_UNIRANGE_REC): New macro 1514 to declare a range by two unsigned 32-bit integer, 1515 to avoid 64-bit range definition on LP64 platforms. 1516 1517 * src/autofit/aflatin.c (af_latin_uniranges): Ditto. 1518 1519 * src/autofit/aflatin2.c (af_latin2_uniranges): Ditto. 1520 1521 * src/autofit/afindic.c (af_indic_uniranges): Ditto. 1522 1523 * src/autofit/afcjk.c (af_cjk_uniranges): Declare 1524 the ranges by AF_UNIRANGE_REC. 1525 15262009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1527 1528 smooth: Fix a data type mismatching with its source. 1529 1530 * src/smooth/ftgrays.c (gray_sweep): The type of 1531 `area' is matched with the 3rd argument `area' 1532 of gray_hline(). 1533 15342009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1535 1536 smooth: Fix a data type mismatching with its source. 1537 1538 * src/smooth/ftgrays.c (gray_render_line): The type 1539 of `area' is matched with TWorker.area. 1540 15412009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1542 1543 cache: Disable the legacy compatibility if 16-bit system. 1544 1545 * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): Exclude 1546 the legacy behaviour from 16-bit platform, because the 1547 current hack cannot detect the caller uses this function 1548 via legacy convention. 1549 (FTC_SBitCache_Lookup): Ditto. 1550 15512009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1552 1553 cache: Check 32-bit glyph index on 16-bit systems. 1554 1555 * src/cache/ftcbasic.c (ftc_basic_family_get_count): 1556 Check overflow caused by the face including large 1557 number of glyphs > 64k. 1558 15592009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1560 1561 cache: Fix some data types mismatching with their sources. 1562 1563 * src/cache/ftccache.c (ftc_cache_resize): The types of 1564 `p', `mask', `count' are matched with FTC_Cache->{p,mask}. 1565 (FTC_Cache_Clear): The type of `old_index' is matched to 1566 FTC_Cache->{p,mask}. 1567 1568 * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): The type 1569 of `_idx' is matched with FTC_Cache->{p,mask}. 1570 15712009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1572 1573 cache: Fix some data types mismatching with their sources. 1574 1575 * src/cache/ftcsbits.c (ftc_snode_load): The types 1576 of `xadvance' and `yadvance' are matched with 1577 FT_GlyphSlot->advance.{x|y}. 1578 15792009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1580 1581 cache: Cast NULL to a required function type explicitly. 1582 1583 * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): 1584 Insert explicit cast from NULL to function type. 1585 15862009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1587 1588 fttypes.h: Cast FT_MAKE_TAG output to FT_Tag explicitly. 1589 1590 * include/freetype/fttypes.h (FT_MAKE_TAG): 1591 Cast the result to FT_Tag. 1592 15932009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1594 1595 psnames: Handle Unicode codepoints by FT_UInt32 variables. 1596 1597 * src/psnames/psmodule.c (BASE_GLYPH): Cast the result 1598 to unsigned 32-bit integer for LP64 platform. 1599 (ps_unicode_value): Return the value by unsigned 32-bit 1600 integer instead of unsigned long. 1601 16022009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1603 1604 psaux: Use size_t variable to pass the buffer size. 1605 1606 * src/psaux/psaux.h (to_bytes): The type of `max_bytes' 1607 (the argument to pass the buffer size) is changed to 1608 size_t, to match with ANSI C string functions. 1609 1610 * src/psaux/psconv.h (PS_Conv_StringDecode, 1611 PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto. 1612 1613 * src/psaux/psconv.c (PS_Conv_StringDecode, 1614 PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Ditto. 1615 1616 * src/psaux/psobjs.h (ps_parser_to_bytes): Ditto. 1617 1618 * src/psaux/psobjs.c (ps_parser_to_bytes): Ditto. 1619 16202009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1621 1622 type1: Use size_t variable to pass the string length. 1623 1624 * psaux.h: The type of `len' (the argument to pass 1625 the buffer size to the function in AFM_ParserRec) 1626 is changed to size_t, to match with ANSI C string 1627 functions. 1628 1629 * t1afm.c (t1_get_index): Ditto. 1630 1631 * test_afm.c (dummy_get_index): Ditto. 1632 1633 * afmparse.c (afm_parser_read_vals): To call 1634 AFM_ParserRec.get_index, the length of token 1635 `len' is cast to size_t. 1636 16372009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1638 1639 cid: Fix some data types mismatching with their sources. 1640 1641 * src/cid/cidparse.c (cid_parser_new): The types of 1642 `read_len' and `stream_len' are matched to 1643 FT_Stream->size. Unrequired cast is removed. 1644 16452009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1646 1647 cff: Fix for unused variable `rest'. 1648 1649 * src/cff/cffparse.c (cff_parse_real): Insert 1650 FT_UNUSED() to hide the unused variable warning. 1651 16522009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1653 1654 cff: Fix some data types mismatching with their sources. 1655 1656 * src/cff/cffgload.c (cff_slot_load): The types of 1657 `top_upm' and `sub_upm' are matched with 1658 CFF_FontRecDict->units_per_em. 1659 1660 * src/cff/cffobjs.c (cff_size_select): Ditto. 1661 (cff_size_request): Ditto. 1662 16632009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1664 1665 bdf: Fix some data types mismatching with their sources. 1666 1667 * bdflib.c (_bdf_list_ensure): The type of `num_items' 1668 is matched with _bdf_list_t.used. Also the types of 1669 `oldsize', `newsize', `bigsize' are matched too. 1670 (_bdf_readstream): `cursor' is used as an offset to 1671 the pointer, it should be typed as FT_Offset. Also 1672 the types of `bytes', `start', `end', `avail' are matched. 1673 1674 * bdfdrivr.c: The type of BDF_CMap->num_encodings is 1675 matched with FT_CMap->clazz->size. 1676 (bdf_cmap_char_index): The types of `min', `max', `mid' 1677 are matched with BDF_CMap->num_encodings. The type of 1678 `result' is matched with encoding->glyph. 1679 (bdf_cmap_char_next): Ditto, the type of `code' is 1680 matched with BDF_encoding_el.enc. 1681 (bdf_interpret_style): The type of `lengths' is changed 1682 to size_t, to take the value by ft_strlen(). Also the 1683 types of `len', `nn', `mm' are matched. 1684 16852009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1686 1687 sfnt: Count the size of the memory object by ptrdiff_t. 1688 1689 * src/sfnt/ttbdf.c (tt_face_find_bdf_prop): The type of 1690 `property_len' is changed from FT_UInt to FT_Offset, 1691 to match with size_t, which is appropriate type for the 1692 object in the memory buffer. 1693 16942009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1695 1696 lzw: Count the size of the memory object by ptrdiff_t. 1697 1698 * src/lzw/ftzopen.h: The types of FT_LzwState->{buf_total, 1699 stack_size} are changed from FT_UInt to FT_Offset, to match 1700 with size_t, which is appropriate type for the object in 1701 the memory buffer. 1702 1703 * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): The types of 1704 `old_size' and `new_size' are changed from FT_UInt to 1705 FT_Offset, to match with size_t, which is appropriate type 1706 for the object in the memory buffer. 1707 17082009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1709 1710 otvalid: Count the table size on memory by ptrdiff_t. 1711 1712 * src/otvalid/otvgpos.c (otv_ValueRecord_validate): 1713 Change the type of table size from FT_UInt to 1714 FT_PtrDist because it is calculated by the memory 1715 addresses. 1716 17172009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1718 1719 otvalid: Prevent an overflow by GPOS/GSUB 32b-bit offset. 1720 1721 * src/otvalid/otvgpos.c (otv_ExtensionPos_validate): 1722 Extend ExtensionOffset from FT_UInt to FT_ULong, to 1723 cover 32-bit offset on 16-bit platform. 1724 1725 * src/otvalid/otvgsub.c (otv_ExtensionSubst_validate): 1726 Ditto. 1727 17282009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1729 1730 ftobjs.c: Prevent an overflow in glyph index handling. 1731 1732 * src/base/ftobjs.c (FT_Face_GetCharsOfVariant): 1733 Improve the cast in comparison to avoid the truncation. 1734 17352009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1736 1737 Improve the variable types in raccess_make_file_name(). 1738 1739 * src/base/ftrfork.c (raccess_make_file_name): 1740 Change the type of cursor variable `tmp' to const char*, 1741 to prevent the unexpected modification of original pathname. 1742 (raccess_make_file_name): Change the type of new_length 1743 to size_t. 1744 17452009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1746 1747 ftpatent.c: Fix for unused variable `error'. 1748 1749 * src/base/ftpatent.c (_tt_check_patents_in_range): 1750 Fix warning for unused variable `error'. 1751 17522009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1753 1754 type1: Check invalid string longer than PostScript limit. 1755 1756 * src/type1/t1afm.c (t1_get_index): Check invalid string 1757 which exceeds the limit of PostScript string/name objects. 1758 17592009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1760 1761 gzip: Use FT2 zcalloc() & zfree() in ftgzip.c by default. 1762 1763 * src/gzip/ftgzip.c (zcalloc, zcfree): Disable all 1764 zcalloc() & zfree() by zlib in zutil.c, those in 1765 ftgzip.c by FT2 are enabled by default. To use 1766 zlib zcalloc() & zfree(), define USE_ZLIB_ZCALLOC. 1767 See discussion: 1768 https://lists.gnu.org/archive/html/freetype-devel/2009-02/msg00000.html 1769 17702009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1771 1772 gzip: Distinguish PureC from TurboC on MSDOS. 1773 1774 * src/gzip/zutil.c (zcalloc, zcfree): Enable only for 1775 MSDOS platform. 1776 17772009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1778 1779 gxvalid: Insert PureC pragma to allow unevaluated variables. 1780 1781 * builds/atari/ATARI.H: Insert PureC pragma not to 1782 warn against set-but-unevaluated variable in gxvalid 1783 module. 1784 17852009-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1786 1787 gxvalid: Pass the union by the pointer instead of the value. 1788 1789 * src/gxvalid/gxvcommn.h: 1790 - Declare new type `GXV_LookupValueCPtr'. 1791 - Update the type of the 2nd argument to pass GXV_LookupValueDesc 1792 data to the function prototyped as GXV_Lookup_Value_Validate_Func, 1793 from GXV_LookupValueDesc to GXV_LookupValueCPtr. 1794 - Likewise for the function prototyped as 1795 GXV_Lookup_Fmt4_Transit_Func. 1796 1797 - Declare new type `GXV_StateTable_GlyphOffsetCPtr'. 1798 - Update the type of the 3rd argument to pass 1799 GXV_StateTable_GlyphOffsetDesc data to the function prototyped 1800 as GXV_StateTable_Entry_Validate_Func, from 1801 GXV_StateTable_GlyphOffsetDesc to GXV_StateTable_GlyphOffsetCPtr. 1802 1803 - Declare new type `GXV_XStateTable_GlyphOffsetCPtr'. 1804 - Update the type of the 3rd argument to pass 1805 GXV_XStateTable_GlyphOffsetDesc data to the function prototyped 1806 as GXV_XStateTable_Entry_Validate_Func, 1807 from GXV_XStateTable_GlyphOffsetDesc 1808 to GXV_XStateTable_GlyphOffsetCPtr. 1809 1810 * src/gxvalid/gxvcommn.c (gxv_LookupTable_fmt0_validate, 1811 gxv_XClassTable_lookupval_validate, 1812 gxv_XClassTable_lookupfmt4_transit): 1813 Update from GXV_LookupValueDesc to GXV_LookupValueCPtr. 1814 1815 * src/gxvalid/gxvbsln.c (gxv_bsln_LookupValue_validate, 1816 gxv_bsln_LookupFmt4_transit): Ditto. 1817 1818 * src/gxvalid/gxvjust.c 1819 (gxv_just_pcTable_LookupValue_entry_validate, 1820 gxv_just_classTable_entry_validate, 1821 gxv_just_wdcTable_LookupValue_validate): Ditto. 1822 1823 * src/gxvalid/gxvkern.c 1824 (gxv_kern_subtable_fmt1_entry_validate): Ditto. 1825 1826 * src/gxvalid/gxvlcar.c (gxv_lcar_LookupValue_validate, 1827 gxv_lcar_LookupFmt4_transit): Ditto. 1828 1829 * src/gxvalid/gxvopbd.c (gxv_opbd_LookupValue_validate, 1830 gxv_opbd_LookupFmt4_transit): Ditto. 1831 1832 * src/gxvalid/gxvprop.c (gxv_prop_LookupValue_validate, 1833 gxv_prop_LookupFmt4_transit): Ditto. 1834 1835 * src/gxvalid/gxvmort4.c 1836 (gxv_mort_subtable_type4_lookupval_validate): Ditto. 1837 1838 * src/gxvalid/gxvmort0.c 1839 (gxv_mort_subtable_type0_entry_validate): Update 1840 from GXV_StateTable_GlyphOffsetDesc 1841 to GXV_StateTable_GlyphOffsetCPtr. 1842 1843 * src/gxvalid/gxvmort1.c 1844 (gxv_mort_subtable_type1_entry_validate): Ditto. 1845 1846 * src/gxvalid/gxvmort2.c 1847 (gxv_mort_subtable_type2_entry_validate): Ditto. 1848 1849 * src/gxvalid/gxvmort5.c 1850 (gxv_mort_subtable_type5_entry_validate): Ditto. 1851 1852 * src/gxvalid/gxvmorx2.c 1853 (gxv_morx_subtable_type2_entry_validate): Ditto. 1854 1855 * src/gxvalid/gxvmorx5.c 1856 (gxv_morx_subtable_type5_entry_validate): Ditto. 1857 1858 * src/gxvalid/gxvmorx1.c 1859 (gxv_morx_subtable_type1_entry_validate): Ditto. 1860 (gxv_morx_subtable_type1_LookupValue_validate, 1861 gxv_morx_subtable_type1_LookupFmt4_transit): 1862 Update from GXV_LookupValueDesc to GXV_LookupValueCPtr. 1863 1864 * src/gxvalid/gxvmorx0.c 1865 (gxv_morx_subtable_type0_entry_validate): Update 1866 from GXV_XStateTable_GlyphOffsetDesc 1867 to GXV_XStateTable_GlyphOffsetCPtr. 1868 18692009-07-29 Fabrice Bellet <fabrice@bellet.info> 1870 1871 Fix Redhat bugzilla #513582 and Savannah bug #26849. 1872 1873 * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP) <FTC_INLINE>: Fix 1874 aliasing bug. 1875 18762009-07-19 Werner Lemberg <wl@gnu.org> 1877 1878 Document recent library changes. 1879 1880 * docs/CHANGES: Do it. 1881 18822009-07-17 Werner Lemberg <wl@gnu.org> 1883 1884 Fix Savannah bug #23786. 1885 1886 * src/truetype/ttobjs.c (tt_size_init_bytecode): Don't reset x_ppem 1887 and y_ppem. Otherwise the `*_CVT_Stretched' functions in ttinterp.c 1888 get never called. 1889 An anonymous guy suggested this change on Savannah, and it seems to 1890 be the right solution. 1891 18922009-07-15 Werner Lemberg <wl@gnu.org> 1893 1894 * docs/release: Updated. 1895 18962009-07-15 Werner Lemberg <wl@gnu.org> 1897 1898 README.CVS -> README.git 1899 1900 * README.CVS: Renamed to... 1901 * README.git: This. 1902 Updated. 1903 19042009-07-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1905 1906 Borland C++ compiler patch proposed by Mirco Babin. 1907 https://lists.gnu.org/archive/html/freetype/2009-07/msg00016.html. 1908 1909 * builds/exports.mk: Delete unused flags, CCexe_{CFLAGS,LDFLAGS}. 1910 Fix APINAMES_C and APINAMES_EXE pathnames to reflect the platform 1911 specific pathname syntax. 1912 * builds/compiler/bcc.mk: Remove unused flag, CCexe_LDFLAGS. 1913 Define TE = `-e' separately (bcc32 cannot specify the pathname of 1914 binary executable by T = `-o'). 1915 Extend the large page size in linking freetype.lib. 1916 Add extra CLEAN target to delete bcc specific temporary files. 1917 * builds/compiler/bcc-dev.mk: Ditto. 1918 19192009-07-14 Werner Lemberg <wl@gnu.org> 1920 1921 Fix Savannah bug #27026. 1922 1923 * builds/win32/vc2005/freetype.sln: Use correct version number. 1924 19252009-07-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1926 1927 Add a script to check the undefined and unused trace macros. 1928 1929 * src/tools/chktrcmp.py: A script to check trace_XXXX macros 1930 that are used in C source but undefined in fttrace.h, or 1931 defined in fttrace.h but unused in C sources. See 1932 https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html. 1933 * docs/DEBUG: Mention on chktrcmp.py. 1934 * docs/release: Ditto. 1935 19362009-07-09 Werner Lemberg <wl@gnu.org> 1937 1938 [ftraster] Make it compile again with -D_STANDALONE_. 1939 1940 * src/raster/ftraster.c [_STANDALONE_]: Define 1941 FT_CONFIG_STANDARD_LIBRARY_H. 1942 Include `string.h'. 1943 Don't include `rastpic.h'. 1944 Define FT_DEFINE_RASTER_FUNCS. 1945 19462009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1947 1948 smooth: Check glyph size by width/height, instead of pitch/height. 1949 Suggested by der Mouse <mouse@Rodents-Montreal.ORG>. 1950 1951 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Improve 1952 the check for too large glyph. Replace the pair of `pitch' and 1953 `height' by the pair of `width' and `height'. `pitch' cannot 1954 be greater than `height'. The required is checking the product 1955 `pitch' * `height' <= FT_ULONG_MAX, but we use cheap checks for 1956 the realistic case only. 1957 19582009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1959 1960 Register 2 missing trace components, t1afm and ttbdf. 1961 1962 * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( t1afm ) 1963 and FT_TRACE_DEF( ttbdf ). See 1964 https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00013.html 1965 19662009-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1967 1968 Register a trace component for ftgloadr.c. 1969 1970 * include/freetype/internal/fttrace.h: Add FT_TRACE_DEF( gloader ). 1971 The macro `trace_gloader' was already used in the initial version 1972 on 2002-02-24. 1973 19742009-07-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 1975 1976 Prevent the overflows by a glyph with too many points or contours. 1977 The bug is reported by Boris Letocha <b.letocha@gmc.net>. See 1978 https://lists.gnu.org/archive/html/freetype-devel/2009-06/msg00031.html 1979 https://lists.gnu.org/archive/html/freetype-devel/2009-07/msg00002.html 1980 1981 * include/freetype/ftimage.h (FT_OUTLINE_CONTOURS_MAX, 1982 FT_OUTLINE_POINTS_MAX): New macros to declare the maximum 1983 values of FT_Outline.{n_contours,n_points}. 1984 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Check the 1985 total numbers of points and contours cause no overflows in 1986 FT_Outline.{n_contours,n_points}. 1987 1988 * include/freetype/internal/ftgloadr.h (FT_GLYPHLOADER_CHECK_P, 1989 FT_GLYPHLOADER_CHECK_C): Compare the numbers of points and 1990 contours as unsigned long number, instead of signed int, to 1991 prevent the overflows on 16-bit systems. 1992 19932009-07-05 Bram Tassyns <bramt@enfocus.be> 1994 1995 Improve compatibility to Acroread. 1996 This fixes Savannah bug #26944. 1997 1998 * src/cff/cffload.c (cff_charset_compute_cids): For multiple GID to 1999 single CID mappings, make the lowest value win. 2000 20012009-06-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2002 2003 ftpatent: Fix a bug by wrong usage of service->table_info(). 2004 https://lists.gnu.org/archive/html/freetype-devel/2008-12/msg00039.html 2005 2006 * include/freetype/internal/services/svsfnt.h: Extend 2007 FT_SFNT_TableInfoFunc() to take new argument to obtain the offset 2008 to the specified table. 2009 * src/sfnt/sfdriver.c (sfnt_table_info): Extend to return the 2010 table-offset to the caller function. 2011 * src/base/ftpatent.c (_tt_check_patents_in_table): Use new 2012 service->table_info(). 2013 * src/base/ftobjs.c (FT_Sfnt_Table_Info): Synchronize to new 2014 service->table_info(). 2015 20162009-06-28 Werner Lemberg <wl@gnu.org> 2017 2018 [psaux, cff] Protect against nested `seac' calls. 2019 2020 * include/freetype/internal/psaux.h (T1_Decoder), src/cff/cffgload.h 2021 (CFF_Decoder): Add `seac' boolean variable. 2022 2023 * src/cff/cffgload.c (cff_operator_seac), src/psaux/t1decode.c 2024 (t1operator_seac): Use it. 2025 20262009-06-28 Werner Lemberg <wl@gnu.org> 2027 2028 Thinko. 2029 2030 * src/psaux/t1decode.c (t1operator_seac) 2031 [FT_CONFIG_OPTION_INCREMENTAL]: Test for existence of incremental 2032 interface. 2033 20342009-06-28 Werner Lemberg <wl@gnu.org> 2035 2036 * devel/ftoption.h [FT_CONFIG_OPTION_INCREMENTAL]: Define. 2037 20382009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2039 2040 Add tools to preprocess the source files for AtariST PureC. 2041 2042 * builds/atari/deflinejoiner.awk: New file to filter C source files 2043 for broken C preprocessor of PureC compiler. 2044 2045 * builds/atari/gen-purec-patch.sh: New file to generate a patch set 2046 for PureC, by using deflinejoiner.awk. 2047 20482009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2049 2050 Keep existing modules.cfg in the building tree. 2051 2052 * configure: If `configure' is executed outside of the source tree, 2053 an existing `modules.cfg' file in the build directory should be 2054 kept, not overwritten by the version in the source tree. 2055 20562009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2057 2058 Filter --srcdir= option before invoking builds/unix/configure. 2059 2060 * configure: If builds/unix/configure is invoked with --srcdir 2061 option, the option should take `builds/unix' directory instead of 2062 the top source directory. Thus the configure script in the top 2063 directory should modify the --srcdir= option if 2064 `builds/unix/configure' is invoked. 2065 20662009-06-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2067 2068 Improve configure.raw for cross-building on exe-suffixed systems. 2069 2070 * builds/unix/configure.raw: Fix a bug in sed script to extract 2071 native suffix for binary executables, patch by Peter Breitenlohner. 2072 https://lists.gnu.org/archive/html/freetype-devel/2009-04/msg00036.html 2073 20742009-06-26 Werner Lemberg <wl@gnu.org> 2075 2076 [truetype] Remove TT_SubGlyphRec. 2077 2078 * src/truetype/ttobjs.h (TT_SubGlyphRec): Removed, unused. 2079 20802009-06-26 Werner Lemberg <wl@gnu.org> 2081 2082 * */*: For warning messages, replace FT_ERROR with FT_TRACE0. 2083 2084 FT_ERROR is now used only if a function produces a non-zero `error' 2085 value. 2086 2087 Formatting, improving and harmonizing debug strings. 2088 20892009-06-25 Werner Lemberg <wl@gnu.org> 2090 2091 Provide version information better. 2092 2093 * src/base/ftinit.c (FT_Init_FreeType): Don't set version here 2094 but... 2095 * src/base/ftobjs.c (FT_New_Library): Here. 2096 20972009-06-22 Werner Lemberg <wl@gnu.org> 2098 2099 Use 16.16 format while parsing Type 1 charstrings. 2100 This fixes Savannah bug #26867. 2101 2102 Previously, only integers have been used which can lead to serious 2103 rounding errors. 2104 2105 However, fractional values are only used internally; after the 2106 charstrings (of either Type 1 or 2) have been processed, the 2107 resulting coordinates get rounded to integers currently -- before 2108 applying scaling. This should be fixed; at the same time a new load 2109 flag should be introduced, to be used in combination with 2110 FT_LOAD_NO_SCALE, which indicates that font units are returned in 2111 16.16 format. Similarly, the incremental interface should be 2112 extended to allow fractional values for metrics. 2113 2114 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `shift' 2115 field. 2116 * include/freetype/internal/pshints.h (T1_Hints_SetStemFunc, 2117 T1_Hints_SetStem3Func): Use FT_Fixed for coordinates. 2118 2119 * src/psaux/psobjs.c: Include FT_INTERNAL_CALC_H. 2120 (t1_build_add_point): Always convert fixed to integer. 2121 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): 2122 Use 16.16 format everywhere (except for large integers followed by a 2123 `div'). 2124 [CAN_HANDLE_NON_INTEGRAL_T1_OPERANDS]: Remove #ifdef and activate 2125 code unconditionally. 2126 Add support for random numbers and update remaining code 2127 accordingly; this should work now. 2128 (t1operator_seac): Updated. 2129 * src/psaux/pshrec.c: Include FT_INTERNAL_CALC_H. 2130 (ps_hints_t1stem3, t1_hints_stem): Updated. 2131 2132 * src/cid/cidgload.c: Include FT_INTERNAL_CALC_H. 2133 (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL], 2134 (cid_face_compute_max_advance, cid_slot_load_glyph): Updated. 2135 2136 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String) 2137 [FT_CONFIG_OPTION_INCREMENTAL], (T1_Get_Advances, T1_Load_Glyph): 2138 Updated. 2139 * src/type1/t1load.c: Include FT_INTERNAL_CALC_H. 2140 * src/type1/t1objs.c (T1_Face_Init): Updated. 2141 21422009-06-21 Werner Lemberg <wl@gnu.org> 2143 2144 * src/pshinter/pshrec.c: Use PSH_Err_Ok. 2145 21462009-06-21 Werner Lemberg <wl@gnu.org> 2147 2148 Code beautification. 2149 2150 * src/type1/t1load.c (FT_INT_TO_FIXED): Removed. 2151 Replace everywhere with INT_TO_FIXED. 2152 (FT_FIXED_TO_INT): Move to ... 2153 * include/freetype/internal/ftcalc.h (FIXED_TO_INT): Here. 2154 Update all users. 2155 21562009-06-20 Werner Lemberg <wl@gnu.org> 2157 2158 Remove unused variables. 2159 2160 * include/freetype/internal/psaux.h (T1_BuilderRec), 2161 src/cff/cffgload.h (CFF_Builder): Remove `last'. 2162 Update all users. 2163 21642009-06-20 Werner Lemberg <wl@gnu.org> 2165 2166 [psaux] Check large integers while parsing charstrings. 2167 2168 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Large 2169 integers must be followed by a `div' operator. 2170 21712009-06-20 Werner Lemberg <wl@gnu.org> 2172 2173 [cff] Revert last change. 2174 2175 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Do it. 2176 Next time, don't confuse Type 2 charstring opcodes with TOP DICT 2177 values... 2178 21792009-06-20 Werner Lemberg <wl@gnu.org> 2180 2181 * src/autofit/aflatin.c (af_latin_metrics_check_digits): Fix 2182 compiler warning. 2183 21842009-06-20 Werner Lemberg <wl@gnu.org> 2185 2186 * builds/compiler/gcc.mk (CFLAGS): Use -O3, not -O6. 2187 21882009-06-19 Werner Lemberg <wl@gnu.org> 2189 2190 [cff] Fix handling of reserved byte 0xFF. 2191 2192 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Abort if byte 2193 0xFF is encountered. 2194 21952009-06-19 Werner Lemberg <wl@gnu.org> 2196 2197 Improve debug messages for Type1 charstrings. 2198 2199 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Emit newlines 2200 after instructions. 2201 Prettify output. 2202 22032009-06-19 Werner Lemberg <wl@gnu.org> 2204 2205 More ftgray fixes for FT_STATIC_RASTER. 2206 Problems reported by suyu@cooee.cn. 2207 2208 * src/smooth/ftgrays.c (gray_move_to, gray_raster_render): Use 2209 RAS_VAR. 2210 22112009-06-18 Werner Lemberg <wl@gnu.org> 2212 2213 * docs/CHANGES: Updated. 2214 22152009-06-18 Werner Lemberg <wl@gnu.org> 2216 2217 Fix B/W rasterization of subglyphs with different drop-out modes. 2218 2219 Normally, the SCANMODE instruction (if present) to set the drop-out 2220 mode in a TrueType font is located in the `prep' table only and thus 2221 valid for all glyphs. However, there are fonts like `pala.ttf' 2222 which additionally contain this instruction in the hinting code of 2223 some glyphs (but not all). As a result it can happen that a 2224 composite glyph needs multiple drop-out modes for its subglyphs 2225 since the rendering state gets reset for each subglyph. 2226 2227 FreeType collects the hinted outlines from all subglyphs, then it 2228 sends the data to the rasterizer. It also sends the drop-out mode 2229 -- after hinting has been applied -- and here is the error: It sends 2230 the drop-out mode of the last subglyph only; drop-out modes of all 2231 other subglyphs are lost. 2232 2233 This patch fixes the problem; it adds a second, alternative 2234 mechanism to pass the drop-out mode: For each contour, the 2235 rasterizer now checks the first `tags' array element. If bit 2 is 2236 set, bits 5-7 contain the contour's drop-out mode, overriding the 2237 global drop-out mode. 2238 2239 * include/freetype/ftimage.h (FT_CURVE_TAG_HAS_SCANMODE): New macro. 2240 2241 * src/truetype/ttgload.c (TT_Hint_Glyph): Store drop-out mode in 2242 `tags[0]'. 2243 2244 * src/raster/ftraster.c (Flow_Up, Overshoot_Top, Overshoot_Bottom): 2245 Use bits 3-5 instead of 0-2. 2246 (New_Profile): Set the drop-out mode in the profile's `flags' field. 2247 (Decompose_Curve): Check `tags[0]' and set `dropOutControl' if 2248 necessary. 2249 (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, 2250 Horizontal_Gray_Sweep_Drop, Draw_Sweep): Use the profile's drop-out 2251 mode. 2252 22532009-06-16 Werner Lemberg <wl@gnu.org> 2254 2255 Improve scan conversion rules 4 and 6. 2256 2257 Two new constraints are introduced to better identify a `stub' -- a 2258 concept which is only vaguely described in the OpenType 2259 specification. The old code was too rigorous and suppressed more 2260 pixel than it should. 2261 2262 . The intersection of the two profiles with the scanline is less 2263 than a half pixel. Code related to this was already present in 2264 the sources but has been commented out. 2265 2266 . The endpoint of the original contour forming a profile has a 2267 distance (`overshoot') less than half a pixel to the scanline. 2268 2269 Note that the two additional conditions fix almost all differences 2270 to the Windows rasterizer, but some problematic cases remain. 2271 2272 * src/raster/ftraster.c (Overshoot_Top, Overshoot_Bottom): New 2273 macros for the `flags' field in the `TProfile' structure. 2274 (IS_BOTTOM_OVERSHOOT, IS_TOP_OVERSHOOT): New macros. 2275 (New_Profile, End_Profile): Pass overshoot flag as an argument and 2276 set it accordingly. 2277 Update callers. 2278 (Vertical_Sweep_Drop, Horizontal_Sweep_Drop): Implement the two new 2279 constraints. 2280 22812009-06-11 Werner Lemberg <wl@gnu.org> 2282 2283 Increase precision for B/W rasterizer. 2284 2285 * src/raster/ftraster.c (Set_High_Precision): Add two more bits to 2286 the precision. This corrects rendering of some small glyphs, for 2287 example, glyph `xi' in verdana.ttf at 13 ppem. Testing with ftbench 2288 on my GNU/Linux box I don't see a performance degradation. 2289 22902009-06-08 Michael Zucchi <notzed@gmail.com> 2291 2292 Handle FT_STROKER_LINECAP_BUTT. 2293 This fixes Savannah bug #26757. 2294 2295 * src/base/ftstroke.c (ft_stroker_cap): Implement it. 2296 22972009-06-07 Harald Fernengel <harry@kdevelop.org> 2298 2299 Fix some potential out-of-memory crashes. 2300 2301 * src/base/ftobjs.c (ft_glyphslot_done): Check `slot->internal'. 2302 * src/base/ftstream.c (FT_Stream_ReleaseFrame): Check `stream'. 2303 * src/truetype/ttinterp.c (TT_New_Context): Avoid double-free of 2304 `exec' in case of failure. 2305 23062009-06-07 Werner Lemberg <wl@gnu.org> 2307 2308 Simplify math. 2309 Suggested by Alexei Podtelezhnikov <apodtele@gmail.com>. 2310 2311 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, 2312 Horizontal_Gray_Sweep_Drop): Do it. 2313 23142009-06-04 Werner Lemberg <wl@gnu.org> 2315 2316 Preparation for fixing scan conversion rules 4 and 6. 2317 2318 * src/raster/ftraster.c (TFlow): Replace enumeration with... 2319 (Flow_Up): This macro. 2320 (TProfile): Replace `flow' member with `flags' bit field. 2321 Update all affected code. 2322 23232009-05-29 James Cloos <cloos@jhcloos.com> 2324 2325 Enable autohinting for glyphs rotated by multiples of 90°. 2326 2327 * src/base/ftobjs.c (FT_Load_Glyph): Alter check for permitted 2328 matrices to allow rotations by multiples of 90°, not only unrotated, 2329 possibly slanted matrices. 2330 23312009-05-28 Werner Lemberg <wl@gnu.org> 2332 2333 Remove compiler warning. 2334 Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>. 2335 2336 * src/autofit/aflatin2.c (af_latin2_hint_edges): Move declaration of 2337 `n_edges' into `#if' block. 2338 23392009-05-28 Werner Lemberg <wl@gnu.org> 2340 2341 Make compilation work with FT_CONFIG_OPTION_USE_ZLIB not defined. 2342 Reported by Krzysztof Kowalczyk <kkowalczyk@gmail.com>. 2343 2344 * src/pcf/pcfdrivr.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_ZLIB]: 2345 Make it work. 2346 Simplify #ifdef logic. 2347 23482009-05-22 Werner Lemberg <wl@gnu.org> 2349 2350 Improve b/w rasterizer. 2351 Problem reported by Krzysztof Kotlenga <pocek@users.sf.net>. 2352 2353 * src/raster/raster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, 2354 Horizontal_Gray_Sweep_Drop): For smart drop-out mode, if 2355 intersections are equally distant relative to next pixel center, 2356 select the left pixel, not the right one. 2357 23582009-05-19 Werner Lemberg <wl@gnu.org> 2359 2360 Fix Savannah bug #26600. 2361 2362 * src/type42/t42parse.c (t42_load_keyword): Handle 2363 T1_FIELD_LOCATION_FONT_EXTRA. 2364 23652009-04-30 Werner Lemberg <wl@gnu.org> 2366 2367 Document recent changes to ftview. 2368 2369 * docs/CHANGES: Do it. 2370 23712009-04-27 Werner Lemberg <wl@gnu.org> 2372 2373 autohinter: Don't change digit widths if all widths are the same. 2374 This fixes FreeDesktop bug #21197. 2375 2376 * src/autofit/afglobal.c (AF_DIGIT): New macro. 2377 (af_face_globals_compute_script_coverage): Mark ASCII digits in 2378 `glyph_scripts' array. 2379 (af_face_globals_get_metrics): Updated. 2380 (af_face_globals_is_digit): New function. 2381 * src/autofit/afglobal.h: Updated. 2382 (AF_ScriptMetricsRec): Add `digits_have_same_width' flag. 2383 2384 * src/autofit/aflatin.c: Include FT_ADVANCES_H. 2385 (af_latin_metrics_check_digits): New function. 2386 (af_latin_metrics_init): Use it. 2387 * src/autofit/aflatin.h: Updated. 2388 * src/autofit/afcjk.c (af_cjk_metrics_init): Updated. 2389 2390 * src/autofit/aflatin2.c: Similar changes as with aflatin.c. 2391 2392 * src/autofit/afloader.c (af_loader_load_g): Test digit width. 2393 2394 * docs/CHANGES: Document it. 2395 23962009-04-26 Werner Lemberg <wl@gnu.org> 2397 2398 Make ftgrays compile with _STANDALONE_ and FT_STATIC_RASTER again. 2399 Problems reported by suyu@cooee.cn. 2400 2401 * src/smooth/ftgrays.c (FT_DEFINE_OUTLINE_FUNCS, 2402 FT_DEFINE_RASTER_FUNCS) [_STANDALONE_]: Define. 2403 [!_STANDALONE_]: Include ftspic.h only here. 2404 (ras): Define/declare after definition of `TWorker'. 2405 Use `RAS_VAR_' where necessary. 2406 24072009-04-21 Karl Berry <karl@gnu.org> 2408 2409 Fix AC_CHECK_FT2. 2410 2411 * builds/unix/freetype2.m4: Only check PATH for freetype-config if 2412 we did not already find it from a prefix option. 2413 24142009-04-05 Oran Agra <oran@monfort.co.il> 2415 2416 Add #error to modules and files that do not support PIC yet. 2417 2418 When FT_CONFIG_OPTION_PIC is defined the following files will 2419 create #error: 2420 * src/bdf/bdfdrivr.h 2421 * src/cache/ftcmanag.c 2422 * src/cid/cidriver.h 2423 * src/gxvalid/gxvmod.h 2424 * src/gzip/ftgzip.c 2425 * src/lzw/ftlzw.c 2426 * src/otvalid/otvmod.h 2427 * src/pcf/pcfdrivr.h 2428 * src/pfr/pfrdrivr.h 2429 * src/psaux/psauxmod.h 2430 * src/type1/t1driver.h 2431 * src/type42/t42drivr.h 2432 * src/winfonts/winfnt.h 2433 24342009-04-05 Oran Agra <oran@monfort.co.il> 2435 2436 Position Independent Code (PIC) support in autofit module. 2437 2438 * include/freetype/internal/autohint.h add macros to init 2439 instances of FT_AutoHinter_ServiceRec. 2440 2441 * src/autofit/afmodule.h declare autofit_module_class 2442 using macros from ftmodapi.h, 2443 when FT_CONFIG_OPTION_PIC is defined create and destroy 2444 functions will be declared. 2445 * src/autofit/afmodule.c when FT_CONFIG_OPTION_PIC is defined 2446 af_autofitter_service and autofit_module_class structs 2447 will have functions to init or create and destroy them 2448 instead of being allocated in the global scope. 2449 And macros will be used from afpic.h in order to access them. 2450 2451 * src/autofit/aftypes.h add macros to init and declare 2452 instances of AF_ScriptClassRec. 2453 2454 * src/autofit/afcjk.h declare af_cjk_script_class 2455 using macros from aftypes.h, 2456 when FT_CONFIG_OPTION_PIC is defined init function will be declared. 2457 * src/autofit/afcjk.c when FT_CONFIG_OPTION_PIC is defined 2458 af_cjk_script_class struct will have function to init it instead of 2459 being allocated in the global scope. 2460 2461 * src/autofit/afdummy.h declare af_dummy_script_class 2462 using macros from aftypes.h, 2463 when FT_CONFIG_OPTION_PIC is defined init function will be declared. 2464 * src/autofit/afdummy.c when FT_CONFIG_OPTION_PIC is defined 2465 af_dummy_script_class struct will have function to init it instead of 2466 being allocated in the global scope. 2467 2468 * src/autofit/afindic.h declare af_indic_script_class 2469 using macros from aftypes.h, 2470 when FT_CONFIG_OPTION_PIC is defined init function will be declared. 2471 * src/autofit/afindic.c when FT_CONFIG_OPTION_PIC is defined 2472 af_indic_script_class struct will have function to init it instead of 2473 being allocated in the global scope. 2474 2475 * src/autofit/aflatin.h declare af_latin_script_class 2476 using macros from aftypes.h, 2477 when FT_CONFIG_OPTION_PIC is defined init function will be declared. 2478 * src/autofit/aflatin.c when FT_CONFIG_OPTION_PIC is defined 2479 af_latin_script_class struct will have function to init it instead of 2480 being allocated in the global scope. 2481 Change af_latin_blue_chars to be PIC-compatible by being a two 2482 dimensional array rather than array of pointers. 2483 2484 2485 * src/autofit/aflatin2.h declare af_latin2_script_class 2486 using macros from aftypes.h, 2487 when FT_CONFIG_OPTION_PIC is defined init function will be declared. 2488 * src/autofit/aflatin2.c when FT_CONFIG_OPTION_PIC is defined 2489 af_latin2_script_class struct will have function to init it instead of 2490 being allocated in the global scope. 2491 Change af_latin2_blue_chars to be PIC-compatible by being a two 2492 dimensional array rather than array of pointers. 2493 2494 * src/autofit/afglobal.c when FT_CONFIG_OPTION_PIC is defined 2495 af_script_classes array initialization was moved to afpic.c and 2496 is later referred using macros defined in afpic.h. 2497 2498 New Files: 2499 * src/autofit/afpic.h declare struct to hold PIC globals for autofit 2500 module and macros to access them. 2501 * src/autofit/afpic.c implement functions to allocate, destroy and 2502 initialize PIC globals for autofit module. 2503 2504 * src/autofit/autofit.c add new file to build: afpic.c. 2505 * src/autofit/jamfile add new files to FT2_MULTI build: afpic.c. 2506 25072009-04-05 Oran Agra <oran@monfort.co.il> 2508 2509 Position Independent Code (PIC) support in pshinter module. 2510 2511 * include/freetype/internal/pshints.h add macros to init 2512 instances of PSHinter_Interface. 2513 2514 * src/pshinter/pshmod.h declare pshinter_module_class 2515 using macros from ftmodapi.h, 2516 when FT_CONFIG_OPTION_PIC is defined create and destroy 2517 functions will be declared. 2518 * src/pshinter/pshmod.c when FT_CONFIG_OPTION_PIC is defined 2519 pshinter_interface and pshinter_module_class structs 2520 will have functions to init or create and destroy them 2521 instead of being allocated in the global scope. 2522 And macros will be used from pshpic.h in order to access them. 2523 2524 New Files: 2525 * src/pshinter/pshpic.h declare struct to hold PIC globals for pshinter 2526 module and macros to access them. 2527 * src/pshinter/pshpic.c implement functions to allocate, destroy and 2528 initialize PIC globals for pshinter module. 2529 2530 * src/pshinter/pshinter.c add new file to build: pshpic.c. 2531 * src/pshinter/jamfile add new files to FT2_MULTI build: pshpic.c. 2532 25332009-04-05 Oran Agra <oran@monfort.co.il> 2534 2535 Position Independent Code (PIC) support in psnames module. 2536 2537 * include/freetype/internal/services/svpscmap.h add macros to init 2538 instances of FT_Service_PsCMapsRec. 2539 2540 * src/psnames/psmodule.h declare psnames_module_class 2541 using macros from ftmodapi.h, 2542 when FT_CONFIG_OPTION_PIC is defined create and destroy 2543 functions will be declared. 2544 * src/psnames/psmodule.c when FT_CONFIG_OPTION_PIC is defined 2545 pscmaps_interface and pscmaps_services structs 2546 and psnames_module_class array 2547 will have functions to init or create and destroy them 2548 instead of being allocated in the global scope. 2549 And macros will be used from pspic.h in order to access them. 2550 2551 New Files: 2552 * src/psnames/pspic.h declare struct to hold PIC globals for psnames 2553 module and macros to access them. 2554 * src/psnames/pspic.c implement functions to allocate, destroy and 2555 initialize PIC globals for psnames module. 2556 2557 * src/psnames/psnames.c add new file to build: pspic.c. 2558 * src/psnames/jamfile add new files to FT2_MULTI build: pspic.c. 2559 25602009-04-05 Oran Agra <oran@monfort.co.il> 2561 2562 Position Independent Code (PIC) support in raster renderer. 2563 2564 * src/raster/ftrend1.h declare ft_raster1_renderer_class 2565 and ft_raster5_renderer_class 2566 using macros from ftrender.h, 2567 when FT_CONFIG_OPTION_PIC is defined create and destroy 2568 functions will be declared. 2569 * src/smooth/ftrend1.c when FT_CONFIG_OPTION_PIC is defined 2570 ft_raster1_renderer_class and ft_raster5_renderer_class structs 2571 will have functions to init or create and destroy them 2572 instead of being allocated in the global scope. 2573 Macros will be used from rastpic.h in order to access 2574 ft_standard_raster from the pic_container (allocated in ftraster.c). 2575 In ft_raster1_render when PIC is enabled, the last letter of 2576 module_name is used to verify the renderer class rather than the 2577 class pointer. 2578 2579 * src/raster/ftraster.c when FT_CONFIG_OPTION_PIC is defined 2580 ft_standard_raster struct will have function to init it 2581 instead of being allocated in the global scope. 2582 2583 New Files: 2584 * src/raster/rastpic.h declare struct to hold PIC globals for raster 2585 renderer and macros to access them. 2586 * src/raster/rastpic.c implement functions to allocate, destroy and 2587 initialize PIC globals for raster renderer. 2588 2589 * src/raster/raster.c add new file to build: rastpic.c. 2590 * src/raster/jamfile add new files to FT2_MULTI build: rastpic.c. 2591 25922009-04-05 Oran Agra <oran@monfort.co.il> 2593 2594 Position Independent Code (PIC) support in smooth renderer. 2595 2596 * src/smooth/ftsmooth.h declare ft_smooth_renderer_class, 2597 ft_smooth_lcd_renderer_class and ft_smooth_lcdv_renderer_class 2598 using macros from ftrender.h, 2599 when FT_CONFIG_OPTION_PIC is defined create and destroy 2600 functions will be declared. 2601 * src/smooth/ftsmooth.c when FT_CONFIG_OPTION_PIC is defined 2602 the following structs: 2603 ft_smooth_renderer_class, ft_smooth_lcd_renderer_class 2604 and ft_smooth_lcdv_renderer_class 2605 will have functions to init or create and destroy them 2606 instead of being allocated in the global scope. 2607 And macros will be used from ftspic.h in order to access 2608 ft_grays_raster from the pic_container (allocated in ftgrays.c). 2609 2610 * src/smooth/ftgrays.h include FT_CONFIG_CONFIG_H 2611 * src/smooth/ftgrays.c when FT_CONFIG_OPTION_PIC is NOT defined 2612 func_interface was moved from gray_convert_glyph_inner function 2613 to the global scope. 2614 When FT_CONFIG_OPTION_PIC is defined 2615 func_interface and ft_grays_raster structs 2616 will have functions to init them 2617 instead of being allocated in the global scope. 2618 And func_interface will be allocated on the stack of 2619 gray_convert_glyph_inner. 2620 2621 New Files: 2622 * src/smooth/ftspic.h declare struct to hold PIC globals for smooth 2623 renderer and macros to access them. 2624 * src/smooth/ftspic.c implement functions to allocate, destroy and 2625 initialize PIC globals for smooth renderer. 2626 2627 * src/smooth/smooth.c add new file to build: ftspic.c. 2628 * src/smooth/jamfile add new files to FT2_MULTI build: ftspic.c. 2629 26302009-04-05 Oran Agra <oran@monfort.co.il> 2631 2632 Position Independent Code (PIC) support in cff driver. 2633 2634 * include/freetype/internal/services/svcid.h add macros to init 2635 instances of FT_Service_CIDRec. 2636 * include/freetype/internal/services/svpsinfo.h add macros to init 2637 instances of FT_Service_PsInfoRec. 2638 2639 * src/cff/cffcmap.h declare cff_cmap_encoding_class_rec 2640 and cff_cmap_unicode_class_rec using macros from 2641 ftobjs.h, when FT_CONFIG_OPTION_PIC is defined create and destroy 2642 functions will be declared. 2643 * src/cff/cffcmap.c when FT_CONFIG_OPTION_PIC is defined 2644 the following structs: 2645 cff_cmap_encoding_class_rec and cff_cmap_unicode_class_rec 2646 will have functions to init or create and destroy them 2647 instead of being allocated in the global scope. 2648 2649 * src/cff/cffdrivr.h declare cff_driver_class using macros from 2650 ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy 2651 functions will be declared. 2652 * src/cff/cffdrivr.c when FT_CONFIG_OPTION_PIC is defined 2653 the following structs: 2654 cff_service_glyph_dict, cff_service_ps_info, cff_service_ps_name 2655 cff_service_get_cmap_info, cff_service_cid_info, cff_driver_class, 2656 and cff_services array 2657 will have functions to init or create and destroy them 2658 instead of being allocated in the global scope. 2659 And macros will be used from cffpic.h in order to access them 2660 from the pic_container. 2661 Use macros from cffpic.h in order to access the 2662 structs allocated in cffcmap.c 2663 2664 * src/cff/cffobjs.c Use macros from cffpic.h in order to access the 2665 structs allocated in cffcmap.c 2666 2667 * src/cff/parser.c when FT_CONFIG_OPTION_PIC is defined 2668 implement functions to create and destroy cff_field_handlers array 2669 instead of being allocated in the global scope. 2670 And macros will be used from cffpic.h in order to access it 2671 from the pic_container. 2672 2673 New Files: 2674 * src/cff/cffpic.h declare struct to hold PIC globals for cff 2675 driver and macros to access them. 2676 * src/cff/cffpic.c implement functions to allocate, destroy and 2677 initialize PIC globals for cff driver. 2678 2679 * src/cff/cff.c add new file to build: cffpic.c. 2680 * src/cff/jamfile add new files to FT2_MULTI build: cffpic.c. 2681 26822009-04-05 Oran Agra <oran@monfort.co.il> 2683 2684 Position Independent Code (PIC) support in sfnt driver. 2685 2686 * include/freetype/internal/services/svbdf.h add macros to init 2687 instances of FT_Service_BDFRec. 2688 * include/freetype/internal/services/svgldict.h add macros to init 2689 instances of FT_Service_GlyphDictRec. 2690 * include/freetype/internal/services/svpostnm.h add macros to init 2691 instances of FT_Service_PsFontNameRec. 2692 * include/freetype/internal/services/svsfnt.h add macros to init 2693 instances of FT_Service_SFNT_TableRec. 2694 * include/freetype/internal/services/svttcmap.h add macros to init 2695 instances of FT_Service_TTCMapsRec. 2696 * include/freetype/internal/sfnt.h add macros to init 2697 instances of SFNT_Interface. 2698 2699 * src/sfnt/sfdriver.h declare sfnt_module_class using macros from 2700 ftmodapi.h, when FT_CONFIG_OPTION_PIC is defined create and destroy 2701 functions will be declared. 2702 * src/sfnt/sfdriver.c when FT_CONFIG_OPTION_PIC is defined 2703 the following structs: 2704 sfnt_service_sfnt_table, sfnt_service_glyph_dict, sfnt_service_ps_name 2705 tt_service_get_cmap_info, sfnt_service_bdf, sfnt_interface, 2706 sfnt_module_class, and sfnt_services array 2707 will have functions to init or create and destroy them 2708 instead of being allocated in the global scope. 2709 And macros will be used from sfntpic.h in order to access them 2710 from the pic_container. 2711 2712 * src/sfnt/ttcmap.h add macros to init 2713 instances of TT_CMap_ClassRec. 2714 * src/sfnt/ttcmap.c when FT_CONFIG_OPTION_PIC is defined 2715 the following structs: 2716 tt_cmap0_class_rec, tt_cmap2_class_rec, tt_cmap4_class_rec 2717 tt_cmap6_class_rec, tt_cmap8_class_rec, tt_cmap10_class_rec, 2718 tt_cmap12_class_rec, tt_cmap14_class_rec and tt_cmap_classes array 2719 will have functions to init or create and destroy them 2720 instead of being allocated in the global scope. 2721 And macros will be used from sfntpic.h in order to access them 2722 from the pic_container. 2723 The content of tt_cmap_classes is now described in the 2724 new file 'ttcmapc.h'. 2725 2726 New Files: 2727 * src/sfnt/sfntpic.h declare struct to hold PIC globals for sfnt 2728 driver and macros to access them. 2729 * src/sfnt/sfntpic.c implement functions to allocate, destroy and 2730 initialize PIC globals for sfnt driver. 2731 * src/sfnt/ttcmapc.h describing the content of 2732 tt_cmap_classes allocated in ttcmap.c 2733 2734 * src/sfnt/sfnt.c add new file to build: sfntpic.c. 2735 * src/sfnt/jamfile add new files to FT2_MULTI build: sfntpic.c. 2736 27372009-04-05 Oran Agra <oran@monfort.co.il> 2738 2739 Position Independent Code (PIC) support in truetype driver. 2740 2741 * include/freetype/internal/services/svmm.h add macros to init 2742 instances of FT_Service_MultiMastersRec. 2743 * include/freetype/internal/services/svttglyf.h add macros to init 2744 instances of FT_Service_TTGlyfRec. 2745 2746 * src/truetype/ttdriver.h declare tt_driver_class using macros from 2747 ftdriver.h, when FT_CONFIG_OPTION_PIC is defined create and destroy 2748 functions will be declared. 2749 * src/truetype/ttdriver.c when FT_CONFIG_OPTION_PIC is defined 2750 the following structs: 2751 tt_service_gx_multi_masters, tt_service_truetype_glyf, tt_driver_class 2752 and tt_services array, 2753 will have functions to init or create and destroy them 2754 instead of being allocated in the global scope. 2755 And macros will be used from ttpic.h in order to access them 2756 from the pic_container. 2757 * src/truetype/ttobjs.c change trick_names array to be 2758 PIC-compatible by being a two dimensional array rather than array 2759 of pointers. 2760 2761 New Files: 2762 * src/truetype/ttpic.h declare struct to hold PIC globals for truetype 2763 driver and macros to access them. 2764 * src/truetype/ttpic.c implement functions to allocate, destroy and 2765 initialize PIC globals for truetype driver. 2766 2767 * src/truetype/truetype.c add new file to build: ttpic.c. 2768 * src/truetype/jamfile add new files to FT2_MULTI build: ttpic.c. 2769 27702009-04-05 Oran Agra <oran@monfort.co.il> 2771 2772 Position Independent Code (PIC) support and infrastructure in base. 2773 2774 * include/freetype/config/ftoption.h add FT_CONFIG_OPTION_PIC 2775 * include/freetype/internal/ftobjs.h Add pic_container member to 2776 FT_LibraryRec. 2777 Add macros to declare and init instances of FT_CMap_ClassRec. 2778 Add macros to init instances of FT_Outline_Funcs and FT_Raster_Funcs. 2779 Add macros to declare, allocate and initialize modules 2780 (FT_Module_Class). 2781 Add macros to declare, allocate and initialize renderers 2782 (FT_Renderer_Class). 2783 Add macro to init instances of FT_Glyph_Class. 2784 Add macros to declare, allocate and initialize drivers 2785 (FT_Driver_ClassRec). 2786 * include/freetype/internal/ftpic.h new file to declare the 2787 FT_PIC_Container struct and the functions to allocate and destroy it. 2788 * include/freetype/internal/ftserv.h add macros to allocate and 2789 destroy arrays of FT_ServiceDescRec. 2790 * include/freetype/internal/internal.h define macro to include 2791 ftpic.h. 2792 2793 New Files: 2794 * src/base/ftpic.c implement functions to allocate and destroy the 2795 global pic_container. 2796 * src/base/basepic.h declare struct to hold PIC globals for base and 2797 macros to access them. 2798 * src/base/basepic.c implement functions to allocate, destroy and 2799 initialize PIC globals for base. 2800 2801 * src/base/ftinit.c when FT_CONFIG_OPTION_PIC is defined implement 2802 functions that allocate and destroy ft_default_modules according to 2803 FT_CONFIG_MODULES_H in the pic_container instead of the global scope 2804 and use macro from basepic.h to access it. 2805 * src/base/ftobjs.c add calls to the functions that allocate and 2806 destroy the global pic_container when the library is created and 2807 destroyed. 2808 2809 * src/base/jamfile add new files to FT2_MULTI build: 2810 ftpic.c and basepic.c. 2811 * src/base/ftbase.c add new files to build: 2812 ftpic.c and basepic.c. 2813 2814 * src/base/ftglyph.c when FT_CONFIG_OPTION_PIC is defined 2815 ft_bitmap_glyph_class and ft_outline_glyph_class will be allocated 2816 in the pic_container instead of the global scope and use macros from 2817 basepic.h to access them. 2818 * src/base/ftbbox.c allocate bbox_interface struct on the stack 2819 instead of the global scope when FT_CONFIG_OPTION_PIC is defined. 2820 * src/base/ftstroke.c access ft_outline_glyph_class allocated in 2821 ftglyph.c via macros from basepic.h 2822 28232009-04-05 Oran Agra <oran@monfort.co.il> 2824 2825 Preparing changes in cff parser later needed for PIC version. 2826 2827 * src/cff/cffload.c, src/cff/cffload.h, src/cff/cffobjs.c, 2828 src/cff/cffparse.c, src/cff/cffparse.h: Add library pointer to 2829 'CFF_ParserRec' set by `cff_parser_init'. 2830 Route library pointer from 'cff_face_init' to 'cff_subfont_load' 2831 for `cff_parser_init'. 2832 2833 * src/cff/cffparse.c (CFF_Field_Handler): Move it to... 2834 * src/cff/cffparse.h: This file, to be used by other C files. 2835 28362009-04-05 Oran Agra <oran@monfort.co.il> 2837 2838 Minor change in ftstroke.c. 2839 2840 * src/base/ftstroke.c (FT_StrokerRec): Replace `memory' member with 2841 `library' needed for PIC version. 2842 Update all callers. 2843 28442009-04-04 Werner Lemberg <wl@gnu.org> 2845 2846 ftnames.c -> ftsnames.c 2847 2848 * src/base/ftnames.c: Rename to... 2849 * src/base/ftsnames.c: This. 2850 * src/base/Jamfile, src/base/rules.mk, src/base/ftbase.c: Updated. 2851 28522009-04-04 Werner Lemberg <wl@gnu.org> 2853 2854 Add support for cmap type 13. 2855 2856 * devel/ftoption.h, include/freetype/config/ftoption.h 2857 (TT_CONFIG_CMAP_FORMAT_13): New macro. 2858 2859 * src/sfnt/ttcmap.c (TT_CMap13Rec, tt_cmap13_init, 2860 tt_cmap13_validate, tt_cmap13_char_index, tt_cmap13_char_next, 2861 tt_cmap13_get_info, tt_cmap13_char_map_def_binary, 2862 tt_cmap14_class_rec): New functions and structures for cmap 13 2863 support. 2864 (tt_cmap_classes): Register tt_cmap13_class_rec. 2865 2866 * docs/CHANGES: Mention cmap 13 support. 2867 28682009-04-01 Werner Lemberg <wl@gnu.org> 2869 2870 Ignore empty contours in CFF glyphs. 2871 2872 Problem reported by Albert Astals Cid <aacid@kde.org>. 2873 2874 * src/cff/cffgload.c (cff_builder_close_contour): Synchronize with 2875 t1_builder_close_contour. 2876 28772009-03-21 Werner Lemberg <wl@gnu.org> 2878 2879 Another redundant header inclusion. 2880 2881 * src/truetype/ttgxvar.c: Fix Ghostscript Coverity issue #4041. 2882 28832009-03-21 Werner Lemberg <wl@gnu.org> 2884 2885 Remove redundant header inclusions. 2886 2887 This covers many Ghostscript Coverity issues. 2888 2889 * src/*: Do it. 2890 28912009-03-21 Werner Lemberg <wl@gnu.org> 2892 2893 Fix Ghostscript Coverity issue #3904. 2894 2895 * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against 2896 invalid values of `runcnt'. 2897 28982009-03-20 Werner Lemberg <wl@gnu.org> 2899 2900 Fix `make multi' run. 2901 2902 * src/smooth/ftsmooth.h: Include FT_INTERNAL_DEBUG_H. 2903 29042009-03-20 Werner Lemberg <wl@gnu.org> 2905 2906 Fix Savannah bug #25923. 2907 2908 * src/cache/ftccmap.c (FTC_CMAP_HASH): Fix typo. 2909 29102009-03-20 Werner Lemberg <wl@gnu.org> 2911 2912 Protect against too large glyphs. 2913 2914 Problem reported by Tavis Ormandy <taviso@google.com>. 2915 2916 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Don't allow 2917 `pitch' or `height' to be larger than 0xFFFF. 2918 29192009-03-20 Werner Lemberg <wl@gnu.org> 2920 Tavis Ormandy <taviso@google.com> 2921 2922 Fix validation for various cmap table formats. 2923 2924 * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate, 2925 tt_cmap12_validate): Check `length' correctly. 2926 (tt_cmap_14_validate): Check `length' and `numMappings' correctly. 2927 29282009-03-20 Werner Lemberg <wl@gnu.org> 2929 2930 Protect against malformed compressed data. 2931 2932 * src/lzw/ftzopen.c (ft_lzwstate_io): Test whether `state->prefix' is 2933 zero. 2934 29352009-03-20 Werner Lemberg <wl@gnu.org> 2936 2937 Protect against invalid SID values in CFFs. 2938 2939 Problem reported by Tavis Ormandy <taviso@google.com>. 2940 2941 * src/cff/cffload.c (cff_charset_load): Reject SID values larger 2942 than 64999. 2943 29442009-03-19 Vincent Richomme <richom.v@free.fr> 2945 2946 Update WinCE Visual C project files. 2947 2948 * builds/wince/vc2005-ce/freetype.vcproj, 2949 builds/wince/vc2008-ce/freetype.vcproj: Add missing base extension 2950 files. 2951 29522009-03-19 Werner Lemberg <wl@gnu.org> 2953 2954 Remove unused Win32 code. 2955 2956 * builds/wince/ftdebug.c: Remove code guarded with `!_WIN32_WCE'. 2957 Since Win32 is handled separately this is no longer needed. 2958 29592009-03-19 Vincent Richomme <richom.v@free.fr> 2960 2961 Make `gzip' module compile on WinCE. 2962 2963 * src/gzip/zconf.h [_WIN32_WCE]: Define NO_ERRNO_H. 2964 29652009-03-19 Werner Lemberg <wl@gnu.org> 2966 2967 Remove unused WinCE code. 2968 2969 * builds/win32/ftdebug.c: Remove code guarded with `_WIN32_WCE'. 2970 Since WinCE is handled separately this is no longer needed. 2971 29722009-03-16 Werner Lemberg <wl@gnu.org> 2973 2974 docmaker: Don't ignore single-line code blocks. 2975 2976 * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from 2977 2009-01-31. 2978 29792009-03-15 Steve Langasek <steve.langasek@canonical.com> 2980 2981 Use __asm__ for declaring assembly instead of asm. 2982 2983 * builds/unix/ftconfig.in (FT_MulFix_arm): Use __asm__ instead of 2984 asm on arm, fixing a build failure on armel with -pedantic. 2985 29862009-03-14 Werner Lemberg <wl@gnu.org> 2987 2988 Fix valgrind warning. 2989 2990 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned): Don't read 2991 past the end of the frame. 2992 29932009-03-12 Werner Lemberg <wl@gnu.org> 2994 2995 * Version 2.3.9 released. 2996 ========================= 2997 2998 2999 Tag sources with `VER-2-3-9'. 3000 30012009-03-12 Werner Lemberg <wl@gnu.org> 3002 3003 * builds/unix/freetype2.in: Move @FT2_EXTRA_LIBS@ to `Libs.private'. 3004 30052009-03-12 Werner Lemberg <wl@gnu.org> 3006 3007 Fix some FreeType Coverity issues as reported for Ghostscript. 3008 3009 * src/base/ftobjs.c (FT_New_Face, FT_New_Memory_Face): Initialize 3010 `args.stream' (#3874, #3875). 3011 (open_face_PS_from_sfnt_stream): Improve error management (#3786). 3012 * src/base/ftmm.c (ft_face_get_mm_service): Fix check of `aservice' 3013 (#3870). 3014 * src/base/ftstroke.c (ft_stroke_border_get_counts): Remove dead 3015 code (#3790). 3016 * src/base/ftrfork.c (raccess_guess_apple_generic): Check error 3017 value of `FT_Stream_Skip' (#3784). 3018 3019 * src/type1/t1gload.c (T1_Load_Glyph): Check `size' before accessing 3020 it (#3872) 3021 3022 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Check `face' before accessing 3023 it (#3871). 3024 * src/pcf/pcfread.c (pcf_get_metrics): Handle return value of 3025 `pcf_get_metric' (#3789, #3782). 3026 (pcf_get_properties): Use FT_STREAM_SKIP (#3783). 3027 3028 * src/cache/ftcmanag.c (FTC_Manager_RegisterCache): Fix check of 3029 `acache' (#3797) 3030 3031 * src/cff/cffdrivr.c (cff_ps_get_font_info): Fix check of `cff' 3032 (#3796). 3033 * src/cff/cffgload.c (cff_decoder_prepare): Check `size' (#3795). 3034 * src/cff/cffload.c (cff_index_get_pointers): Add comment (#3794). 3035 3036 * src/bdf/bdflib.c (_bdf_add_property): Check `fp->value.atom' 3037 (#3793). 3038 (_bdf_parse_start): Add comment (#3792). 3039 3040 * src/raster/ftraster.c (Finalize_Profile_Table): Check 3041 `ras.fProfile' (#3791). 3042 3043 * src/sfnt/ttsbit.c (Load_SBit_Image): Use FT_STREAM_SKIP (#3785). 3044 3045 * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Properly ignore 3046 seek error (#3781). 3047 30482009-03-11 Michael Toftdal <toftdal@gmail.com> 3049 3050 Extend CID service functions to handle CID-keyed CFFs as CID fonts. 3051 3052 * include/freetype/ftcid.h (FT_Get_CID_Is_Internally_CID_keyed, 3053 FT_Get_CID_From_Glyph_Index): New functions. 3054 3055 * include/freetype/internal/services/svcid.h 3056 (FT_CID_GetIsInternallyCIDKeyedFunc, 3057 FT_CID_GetCIDFromGlyphIndexFunc): New function typedefs. 3058 (CID Service): Use them. 3059 3060 * src/base/ftcid.c: Include FT_CID_H. 3061 (FT_Get_CID_Is_Internally_CID_keyed, FT_Get_CID_From_Glyph_Index): 3062 New functions. 3063 3064 * src/cff/cffdrivr.c (cff_get_is_cid, cff_get_cid_from_glyph_index): 3065 New functions. 3066 (cff_service_cid_info): Add them. 3067 * src/cff/cffload.c (cff_font_load): Don't free `font->charset.sids' 3068 -- it is needed for access as a CID-keyed font. It gets deleted 3069 later on. 3070 3071 * src/cid/cidriver.c (cid_get_is_cid, cid_get_cid_from_glyph_index): 3072 New functions. 3073 (cid_service_cid_info): Add them. 3074 3075 * docs/CHANGES: Updated. 3076 30772009-03-11 Bram Tassyns <bramt@enfocus.be> 3078 3079 Fix Savannah bug #25597. 3080 3081 * src/cff/cffparse.c (cff_parse_real): Don't allow fraction_length 3082 to become larger than 9. 3083 30842009-03-11 Werner Lemberg <wl@gnu.org> 3085 3086 Fix Savannah bug #25814. 3087 3088 * builds/unix/freetype2.in: As suggested in the bug report, move 3089 @LIBZ@ to `Libs.private'. 3090 30912009-03-11 Werner Lemberg <wl@gnu.org> 3092 3093 Fix Savannah bug #25781. 3094 We now simply check for a valid `offset', no longer handling `delta 3095 = 1' specially. 3096 3097 * src/sfnt/ttcmap.c (tt_cmap4_validate): Don't check `delta' for 3098 last segment. 3099 (tt_cmap4_set_range, tt_cmap4_char_map_linear, 3100 tt_cmap4_char_map_binary): Check offset. 3101 31022009-03-11 Werner Lemberg <wl@gnu.org> 3103 3104 * src/base/Jamfile: Fix handling of ftadvanc.c. 3105 Reported by Oran Agra <oran@monfort.co.il>. 3106 31072009-03-10 Vincent Richomme <richom.v@free.fr> 3108 3109 Restructure Win32 and Wince compiler support. 3110 3111 * src/builds/win32: Remove files for WinCE. 3112 Move VC 2005 support to a separate directory. 3113 Add directory for VC 2008 support. 3114 3115 * src/builds/wince: New directory hierarchy for WinCE compilers 3116 (VC 2005 and VC 2008). 3117 31182009-03-09 Werner Lemberg <wl@gnu.org> 3119 3120 More preparations for 2.3.9 release. 3121 3122 * docs/CHANGES: Updated. 3123 3124 * Jamfile, README: s/2.3.8/2.3.9/, s/238/239/. 3125 31262009-03-09 Werner Lemberg <wl@gnu.org> 3127 3128 * src/sfnt/rules.mk (SFNT_DRV_H): Add ttsbit0.c. 3129 31302009-03-09 Alexey Kryukov <anagnost@yandex.ru> 3131 3132 Fix handling of EBDT formats 8 and 9 (part 2). 3133 3134 This patch fixes the following problems in ttsbit0.c: 3135 3136 . Bitmaps for compound glyphs were never allocated. 3137 3138 . `SBitDecoder' refused to load metrics if some other metrics have 3139 already been loaded. This condition certainly makes no sense for 3140 recursive calls, so I've just disabled it. Another possibility 3141 would be resetting `decoder->metrics_loaded' to false before 3142 loading each composite component. However, we must restore the 3143 original metrics after finishing the recursion; otherwise we can 3144 get a misaligned glyph. 3145 3146 . `tt_sbit_decoder_load_bit_aligned' incorrectly handled `x_pos', 3147 causing some glyph components to be shifted too far to the right 3148 (especially noticeable for small sizes). 3149 3150 Note that support for grayscale bitmaps (not necessarily compound) is 3151 completely broken in ttsbit0.c. 3152 3153 * src/sfnt/tt_sbit_decoder_load_metrics: Always load metrics. 3154 (tt_sbit_decoder_load_bit_aligned): Handle `x_pos' correctly in case 3155 of `h == height'. 3156 (tt_sbit_decoder_load_compound): Reset metrics after loading 3157 components. 3158 Allocate bitmap. 3159 31602009-03-09 Werner Lemberg <wl@gnu.org> 3161 3162 * builds/unix/configure.raw (version_info): Set to 9:20:3. 3163 31642009-03-03 David Turner <david@freetype.org> 3165 3166 Protect SFNT kerning table parser against malformed tables. 3167 3168 This closes Savannah BUG #25750. 3169 3170 * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): Fix a 3171 bug where a malformed table would be successfully loaded but later 3172 crash the engine during parsing. 3173 31742009-03-03 David Turner <david@freetype.org> 3175 3176 Update documentation and bump version number to 2.3.9. 3177 3178 * include/freetype/freetype.h: Bump patch version to 9. 3179 * docs/CHANGES: Document the ABI break in 2.3.8. 3180 * docs/VERSION.DLL: Update version numbers table for 2.3.9. 3181 31822009-03-03 David Turner <david@freetype.org> 3183 3184 Remove ABI-breaking field in public PS_InfoFontRec definition. 3185 3186 Instead, we define a new internal PS_FontExtraRec structure to 3187 hold the additional field, then place it in various internal 3188 positions of the corresponding FT_Face derived objects. 3189 3190 * include/freetype/t1tables.h (PS_FontInfoRec): Remove the 3191 `fs_type' field from the public structure. 3192 * include/freetype/internal/psaux.h (T1_FieldLocation): New 3193 enumeration `T1_FIELD_LOCATION_FONT_EXTRA'. 3194 * include/freetype/internal/t1types.h (PS_FontExtraRec): New 3195 structure. 3196 (T1_FontRec, CID_FaceRec): Add it. 3197 3198 * src/cid/cidload.c (cid_load_keyword): Handle 3199 T1_FIELD_LOCATION_FONT_EXTRA. 3200 * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c: 3201 Adjust FT_STRUCTURE and T1CODE properly to handle `FSType'. 3202 * src/type1/t1load.c (t1_load_keyword): Handle 3203 T1_FIELD_LOCATION_FONT_EXTRA. 3204 3205 * include/freetype/internal/services/svpsinfo.h (PsInfo service): 3206 Add `PS_GetFontExtraFunc' function typedef. 3207 3208 * src/base/ftfstype.c: Include FT_INTERNAL_SERVICE_H and 3209 FT_SERVICE_POSTSCRIPT_INFO_H. 3210 (FT_Get_FSType_Flags): Use POSTSCRIPT_INFO service. 3211 3212 * src/cff/cffdrivr.c (cff_service_ps_info): Updated. 3213 * src/cid/cidriver.c (cid_ps_get_font_extra): New function. 3214 (cid_service_ps_info): Updated. 3215 * src/type1/t1driver.c (t1_ps_get_font_extra): New function. 3216 (t1_service_ps_info): Updated. 3217 * src/type42/t42drivr.c (t42_ps_get_font_extra): New function. 3218 (t42_service_ps_info): Updated. 3219 32202009-03-02 Alexey Kryukov <anagnost@yandex.ru> 3221 3222 Fix handling of EBDT formats 8 and 9. 3223 3224 The main cycle in `blit_sbit' makes too many iterations: it actually 3225 needs the count of lines in the source bitmap rather than in the 3226 target image. 3227 3228 * src/sfnt/ttsbit.c (blit_sbit) [FT_CONFIG_OPTION_OLD_INTERNALS]: 3229 Add parameter `source_height' and use it for main loop. 3230 (Load_SBit_Single) [FT_CONFIG_OPTION_OLD_INTERNALS]: Updated. 3231 32322009-02-23 Werner Lemberg <wl@gnu.org> 3233 3234 Fix Savannah bug #25669. 3235 3236 * src/base/ftadvanc.h (FT_Get_Advances): Fix serious typo. 3237 3238 * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): Fix 3239 scaling factor for non-scalable fonts. 3240 3241 * src/cff/cffdrivr.c (cff_get_advances): Use correct advance width 3242 value to prevent incorrect scaling. 3243 3244 * docs/CHANGES: Document it. 3245 32462009-02-15 Matt Godbolt <matt@godbolt.org> 3247 3248 Fix Savannah bug #25588. 3249 3250 * builds/unix/ftconfig.in (FT_MulFix_arm): Use correct syntax for 3251 `orr' instruction. 3252 32532009-02-11 Werner Lemberg <wl@gnu.org> 3254 3255 * src/truetype/ttobjs.c (tt_check_trickyness): Add `DFKaiShu'. 3256 Reported by David Bevan <dbevan@emtex.com>. 3257 32582009-02-09 Werner Lemberg <wl@gnu.org> 3259 3260 Fix Savannah bug #25495. 3261 3262 * src/sfnt/sfobjs.c (sfnt_load_face): Test for bitmap strikes before 3263 setting metrics and bbox values. This ensures that the check for a 3264 font with neither a `glyf' table nor bitmap strikes can be performed 3265 early enough to set metrics and bbox values too. 3266 32672009-02-04 Werner Lemberg <wl@gnu.org> 3268 3269 Fix Savannah bug #25480. 3270 3271 * builds/unix/freetype-config.in: For --ftversion, don't use $prefix 3272 but $includedir. 3273 32742009-01-31 Werner Lemberg <wl@gnu.org> 3275 3276 Minor docmaker improvements. 3277 3278 * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty 3279 code blocks. 3280 32812009-01-25 Werner Lemberg <wl@gnu.org> 3282 3283 Fix SCANCTRL handling in TTFs. 3284 Problem reported by Alexey Kryukov <anagnost@yandex.ru>. 3285 3286 * src/truetype/ttinterp.c (Ins_SCANCTRL): Fix threshold handling. 3287 32882009-01-23 Werner Lemberg <wl@gnu.org> 3289 3290 Move FT_Get_FSType_Flags to a separate file. 3291 Problem reported by Mickey Gabel <mickey@monfort.co.il>. 3292 3293 * src/base/ftobjs.c (FT_Get_FSType_Flags): Move to... 3294 * src/base/ftfstype.c: This new file. 3295 3296 * modules.cfg (BASE_EXTENSION): Add ftfstype.c. 3297 3298 * docs/INSTALL.ANY: Updated. 3299 3300 * builds/mac/*.txt, builds/amiga/*makefile*, 3301 builds/win32/{visualc,visualce}/freetype.*, builds/symbian/*: 3302 Updated. 3303 33042009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3305 3306 * builds/unix/ftsystem.c (FT_Stream_Open): Fix 2 error 3307 messages ending without "\n". 3308 33092009-01-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3310 3311 Fix Savannah bug #25347. 3312 3313 * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Rewind 3314 the stream to the original position passed to this function, 3315 when ft_lookup_PS_in_sfnt_stream() failed. 3316 (Mac_Read_sfnt_Resource): Rewind the stream to the head of 3317 sfnt resource body, when open_face_PS_from_sfnt_stream() 3318 failed. 3319 33202009-01-19 Michael Lotz <mmlr@mlotz.ch> 3321 3322 Fix Savannah bug #25355. 3323 3324 * include/freetype/config/ftconfig.h (FT_MulFix_i386): Make 3325 assembler code work with gcc 2.95.3 (as used by the Haiku project). 3326 Add `cc' register to the clobber list. 3327 33282009-01-18 Werner Lemberg <wl@gnu.org> 3329 3330 Protect FT_Get_Next_Char. 3331 3332 * src/sfnt/ttcmap.c (tt_cmap4_set_range): Apply fix similar to 3333 change from 2008-07-22. 3334 3335 Patch from Ronen Ghoshal <rghoshal@emtex.com>. 3336 33372009-01-18 Werner Lemberg <wl@gnu.org> 3338 3339 Implement FT_Get_Name_Index for SFNT driver. 3340 3341 * src/sfnt/sfdriver.c (sfnt_get_name_index): New function. 3342 (sfnt_service_glyph_dict): Use it. 3343 3344 Problem reported by Truc Truong <tructv@necsv.com>. 3345 33462009-01-18 Werner Lemberg <wl@gnu.org> 3347 3348 * include/freetype/ftstroke.h (FT_Outline_GetInsideBorder): Fix 3349 documentation. Problem reported by Truc Truong <tructv@necsv.com>. 3350 3351 * docs/CHANGES: Updated. 3352 33532009-01-14 Werner Lemberg <wl@gnu.org> 3354 3355 * Version 2.3.8 released. 3356 ========================= 3357 3358 3359 Tag sources with `VER-2-3-8'. 3360 3361 * docs/VERSION.DLL: Update documentation and bump version number to 3362 2.3.8. 3363 3364 * README, Jamfile (RefDoc), builds/win32/visualc/index.html, 3365 builds/win32/visualc/freetype.dsp, 3366 builds/win32/visualc/freetype.vcproj, 3367 builds/win32/visualce/index.html, 3368 builds/win32/visualce/freetype.dsp, 3369 builds/win32/visualce/freetype.vcproj: s/2.3.7/2.3.8/, s/237/238/. 3370 3371 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. 3372 3373 * builds/unix/configure.raw (version_info): Set to 9:19:3. 3374 3375 * docs/release: Updated. 3376 33772009-01-14 Werner Lemberg <wl@gnu.org> 3378 3379 * builds/toplevel.mk (dist): Compress better. 3380 33812009-01-13 Werner Lemberg <wl@gnu.org> 3382 3383 * src/base/ftobjs.c (FT_Get_FSType_Flags): Cast for compilation 3384 with C++. 3385 33862009-01-13 Werner Lemberg <wl@gnu.org> 3387 3388 Don't use stdlib.h and friends directly. 3389 Reported by Mickey Gabel <mickey@monfort.co.il>. 3390 3391 * src/base/ftdbgmem.c: s/<stdlib.h>/FT_CONFIG_STANDARD_LIBRARY_H/. 3392 3393 * src/gzip/ftgzip.c, src/lzw/ftlzw.c, src/raster/ftmisc.h: 3394 s/<string.h>/FT_CONFIG_STANDARD_LIBRARY_H/. 3395 3396 * src/autofit/aftypes.h, src/autofit/afhints.c, 3397 src/pshinter/pshalgo.c: s/<stdio.h>/FT_CONFIG_STANDARD_LIBRARY_H/ 3398 3399 * src/lzw/ftlzw.c, src/base/ftdbgmem.c: Don't include stdio.h. 3400 34012009-01-12 Werner Lemberg <wl@gnu.org> 3402 3403 Avoid compiler warnings. 3404 3405 * */*: s/do ; while ( 0 )/do { } while ( 0 )/. 3406 Reported by Sean McBride <sean@rogue-research.com>. 3407 34082009-01-12 Werner Lemberg <wl@gnu.org> 3409 3410 Fix stdlib dependencies. 3411 3412 Problem reported by Mickey Gabel <mickey@monfort.co.il>. 3413 3414 * include/freetype/config/ftstdlib.h (ft_exit): Removed. Unused. 3415 3416 * src/autofit/afhints.c, src/base/ftlcdfil.c, src/smooth/ftsmooth.c: 3417 s/memcpy/ft_memcpy/. 3418 * src/psaux/t1decode.c: s/memset/ft_memset/, s/memcpy/ft_memcpy/. 3419 34202009-01-11 Werner Lemberg <wl@gnu.org> 3421 3422 * docs/formats.txt: Add link to PCF specification. 3423 3424 * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve 3425 documentation. 3426 34272009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3428 3429 * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance, 3430 FT_Get_Advances): Change the type of load_flags from FT_UInt32 to 3431 FT_Int32, to match with the flags for FT_Load_Glyph(). 3432 * src/cff/cffdrivr.c (cff_get_advances): Ditto. 3433 * src/truetype/ttdriver.c (tt_get_advances): Ditto. 3434 * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances): 3435 Ditto. 3436 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): 3437 Ditto. 3438 34392009-01-09 Daniel Zimmermann <netzimme@aol.com> 3440 3441 * src/gxvalid/gxvmort.c (gxv_mort_feature_validate): Fix wrong 3442 length check. From Savannah patch #6682. 3443 34442009-01-09 Werner Lemberg <wl@gnu.org> 3445 3446 Fix problem with T1_FIELD_{NUM,FIXED}_TABLE2. 3447 3448 * src/psaux/psobjs.c (ps_parser_load_field_table): Don't handle 3449 `count_offset' if it is zero (i.e., unused). Otherwise, the first 3450 element of the structure which holds the data is erroneously 3451 modified. Problem reported by Chi Nguyen <chint@necsv.com>. 3452 34532009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3454 3455 * src/base/ftadvanc.c (_ft_face_scale_advances, FT_Get_Advance, 3456 FT_Get_Advances): Extend the type of load_flags from FT_UInt to 3457 FT_UInt32, to pass 32-bit flags on 16bit platforms. 3458 * src/cff/cffdrivr.c (cff_get_advances): Ditto. 3459 * src/truetype/ttdriver.c (tt_get_advances): Ditto. 3460 * include/freetype/ftadvanc.h (FT_Get_Advance, FT_Get_Advances): 3461 Ditto. 3462 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): 3463 Ditto. 3464 34652009-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3466 3467 * src/base/ftobjs.c (FT_Done_Library): Issue an error message when 3468 FT_Done_Face() cannot free all faces. If the list of the opened 3469 faces includes broken face which FT_Done_Face() cannot free, 3470 FT_Done_Library() retries FT_Done_Face() and it can fall into 3471 an endless loop. See the discussion: 3472 https://lists.gnu.org/archive/html/freetype-devel/2008-09/msg00047.html 3473 https://lists.gnu.org/archive/html/freetype-devel/2008-10/msg00000.html 3474 34752009-01-07 Werner Lemberg <wl@gnu.org> 3476 3477 * docs/CHANGES: Document new key `a' in ftdiff. 3478 34792009-01-06 Werner Lemberg <wl@gnu.org> 3480 3481 * autogen.sh: Don't use GNUisms while calling sed. Problem reported 3482 by Sean McBride. 3483 34842009-01-06 Werner Lemberg <wl@gnu.org> 3485 3486 * src/base/ftbitmap.c (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_LCD 3487 and FT_PIXEL_MODE_LCD_V. Problem reported by Chi Nguyen 3488 <chint@necsv.com>. 3489 34902009-01-06 Diego Pettenò <flameeyes@gmail.com> 3491 3492 * builds/unix/configure.raw: Don't call AC_CANONICAL_BUILD and 3493 AC_CANONICAL_TARGET and use $host_os only. A nice explanation for 3494 this change can be found at 3495 https://blog.flameeyes.eu/s/canonical-target. 3496 3497 From Savannah patch #6712. 3498 34992009-01-06 Sean McBride <sean@rogue-research.com> 3500 3501 * src/base/ftdbgmem.c (_debug_mem_dummy): Make it static. 3502 3503 * src/base/ftmac.c: Remove some #undefs. 3504 35052008-12-26 Werner Lemberg <wl@gnu.org> 3506 3507 Set `face_index' field in FT_Face for all font formats. 3508 3509 * cff/cffobjs.c (cff_face_init), winfonts/winfnt.c (FNT_Face_Init), 3510 sfnt/sfobjs.c (sfnt_init_face): Do it. 3511 3512 * docs/CHANGES: Document it. 3513 35142008-12-22 Steve Grubb 3515 3516 * builds/unix/ftsystem.c (FT_Stream_Open): Reject zero-length files. 3517 Patch from Savannah bug #25151. 3518 35192008-12-21 Werner Lemberg <wl@gnu.org> 3520 3521 * src/pfr/pfrdrivr.c, src/winfonts/winfnt.c, src/cache/ftcmanag.c, 3522 src/smooth/ftgrays.c, src/base/ftobjs.c, src/sfobjs.c: 3523 s/_Err_Bad_Argument/_Err_Invalid_Argument/. The former is for 3524 errors in the bytecode interpreter only. 3525 35262008-12-21 Werner Lemberg <wl@gnu.org> 3527 3528 * src/base/ftpfr.c (FT_Get_PFR_Metrics): Protect against NULL 3529 arguments. 3530 Fix return value for non-PFR fonts. Both problems reported by Chi 3531 Nguyen <chint@necsv.com>. 3532 35332008-12-21 anonymous 3534 3535 FT_USE_MODULE declares things as: 3536 3537 extern const FT_Module_Class 3538 3539 (or similar for C++). However, the actual types of the variables 3540 being declared are often different, e.g., FT_Driver_ClassRec or 3541 FT_Renderer_Class. (Some are, indeed, FT_Module_Class.) 3542 3543 This works with most C compilers (since those structs begin with an 3544 FT_Module_Class struct), but technically it's undefined behavior. 3545 3546 To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7 3547 paragraph 2: 3548 3549 All declarations that refer to the same object or function shall 3550 have compatible type; otherwise, the behavior is undefined. 3551 3552 (And they are not compatible types.) 3553 3554 Most C compilers don't reject (or even detect!) code which has this 3555 issue, but the GCC LTO development branch compiler does. (It 3556 outputs the types of the objects while generating .o files, along 3557 with a bunch of other information, then compares them when doing the 3558 final link-time code generation pass.) 3559 3560 Patch from Savannah bug #25133. 3561 3562 * src/base/ftinit.c (FT_USE_MODULE): Include variable type. 3563 3564 * builds/amiga/include/freetype/config/ftmodule.h, 3565 include/freetype/config/ftmodule.h, */module.mk: Updated to declare 3566 pass correct types to FT_USE_MODULE. 3567 35682008-12-21 Hongbo Ni <hongbo@njstar.com> 3569 3570 * src/autofit/aflatin.c (af_latin_hint_edges), 3571 src/autofit/aflatin2.c (af_latin2_hint_edges), src/autofit/afcjk.c 3572 (af_cjk_hint_edges): Protect against division by zero. This fixes 3573 Savannah bug #25124. 3574 35752008-12-18 Werner Lemberg <wl@gnu.org> 3576 3577 * docs/CHANGES: Updated. 3578 35792008-12-18 David Bevan <dbevan@emtex.com> 3580 3581 Provide API for accessing embedding and subsetting restriction 3582 information. 3583 3584 * include/freetype.h (FT_FSTYPE_INSTALLABLE_EMBEDDING, 3585 FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING, 3586 FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING, FT_FSTYPE_EDITABLE_EMBEDDING, 3587 FT_FSTYPE_NO_SUBSETTING, FT_FSTYPE_BITMAP_EMBEDDING_ONLY): New 3588 macros. 3589 (FT_Get_FSType_Flags): New function declaration. 3590 3591 * src/base/ftobjs.c (FT_Get_FSType_Flags): New function. 3592 3593 * src/cid/cidtoken.h, src/type1/t1tokens.h, src/type42/t42parse.c 3594 (t42_keywords): Handle `FSType'. 3595 3596 * include/freetype/t1tables.h (PS_FontInfoRec): Add `fs_type' field. 3597 35982008-12-17 Werner Lemberg <wl@gnu.org> 3599 3600 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Don't use internal 3601 macros so that copying the source code into an application works 3602 out of the box. 3603 36042008-12-17 Werner Lemberg <wl@gnu.org> 3605 3606 * include/freetype/ftsynth.h, src/base/ftsynth.c: Move 3607 FT_GlyphSlot_Own_Bitmap to... 3608 * include/freetype/ftbitmap.h, src/base/ftbitmap.c: These files. 3609 3610 * docs/CHANGES: Document it. 3611 36122008-12-10 Werner Lemberg <wl@gnu.org> 3613 3614 Generalize the concept of `tricky' fonts by introducing 3615 FT_FACE_FLAG_TRICKY to indicate that the font format's hinting 3616 engine is necessary for correct rendering. 3617 3618 At the same time, slightly modify the behaviour of tricky fonts: 3619 FT_LOAD_NO_HINTING is now ignored. To really force raw loading 3620 of tricky fonts (without hinting), both FT_LOAD_NO_HINTING and 3621 FT_LOAD_NO_AUTOHINT must be used. 3622 3623 Finally, tricky TrueType fonts always use the bytecode interpreter 3624 even if the patented code is used. 3625 3626 * include/freetype/freetype.h (FT_FACE_FLAG_TRICKY, FT_IS_TRICKY): 3627 New macros. 3628 3629 * src/truetype/ttdriver.c (Load_Glyph): Handle new load flags 3630 semantics as described above. 3631 3632 * src/truetype/ttobjs.c (tt_check_trickyness): New function, using 3633 code of ... 3634 (tt_face_init): This function, now simplified and updated to new 3635 semantics. 3636 3637 * src/base/ftobjs.c (FT_Load_Glyph): Don't use autohinter for tricky 3638 fonts. 3639 3640 * docs/CHANGES: Document it. 3641 36422008-12-09 Werner Lemberg <wl@gnu.org> 3643 3644 Really fix Savannah bug #25010: An SFNT font with neither outlines 3645 nor bitmaps can be considered as containing space `glyphs' only. 3646 3647 * src/truetype/ttpload.c (tt_face_load_loca): Handle the case where 3648 a `glyf' table is missing. 3649 3650 * src/truetype/ttgload.c (load_truetype_glyph): Abort if we have no 3651 `glyf' table but a non-zero `loca' entry. 3652 (tt_loader_init): Handle missing `glyf' table. 3653 3654 * src/base/ftobjs.c (FT_Load_Glyph): Undo change 2008-12-05. 3655 3656 * src/sfnt/sfobjs.c (sfnt_load_face): A font with neither outlines 3657 nor bitmaps is scalable. 3658 36592008-12-05 Werner Lemberg <wl@gnu.org> 3660 3661 * src/autofit/aflatin.c (af_latin_uniranges): Add more ranges. This 3662 fixes Savannah bug #21190 which also provides a basic patch. 3663 36642008-12-05 Werner Lemberg <wl@gnu.org> 3665 3666 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value 3667 0x100 instead of 0x10000; the latter value is already occupied by 3668 FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos. 3669 3670 3671 Handle SFNT with neither outlines nor bitmaps. This fixes Savannah 3672 bug #25010. 3673 3674 * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither 3675 outlines nor bitmaps. 3676 3677 * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there 3678 is no table with glyphs. 3679 3680 3681 * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging 3682 message. 3683 36842008-12-01 Werner Lemberg <wl@gnu.org> 3685 3686 GDEF tables need `glyph_count' too for validation. Problem reported 3687 by Chi Nguyen <chint@necsv.com>. 3688 3689 * src/otvalid/otvgdef.c (otv_GDEF_validate), src/otvalid/otvalid.h 3690 (otv_GDEF_validate), src/otvalid/otvmod.c (otv_validate): Pass 3691 `glyph_count'. 3692 36932008-11-29 Werner Lemberg <wl@gnu.org> 3694 3695 * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c, 3696 src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c, 3697 src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c, 3698 src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c, 3699 src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings 3700 (Atari PureC). 3701 37022008-11-29 James Cloos <cloos@jhcloos.com> 3703 3704 * src/type/t1load.c (mm_axis_unmap): Revert previous patch and fix 3705 it correctly by using FT_INT_TO_FIXED (FreeType expects 16.16 values 3706 in the /BlendDesignMap space). 3707 37082008-11-29 James Cloos <cloos@jhcloos.com> 3709 3710 * src/type1/t1load.c (mm_axis_unmap): `blend_points' is FT_Fixed*, 3711 whereas `design_points' is FT_Long*. Therefore, return blend rather 3712 than design points. 3713 37142008-11-27 Werner Lemberg <wl@gnu.org> 3715 3716 * src/cff/cffparse.c (cff_parse_real): Handle more than nine 3717 significant digits correctly. This fixes Savannah bug #24953. 3718 37192008-11-25 Daniel Zimmermann <netzimme@aol.com> 3720 3721 * src/base/ftstream.c (FT_Stream_ReadFields): Don't access stream 3722 before the NULL check. From Savannah patch #6681. 3723 37242008-11-24 Werner Lemberg <wl@gnu.org> 3725 3726 Fixes from the gnuwin32 port. 3727 3728 * src/base/ftlcdfil.c: s/EXPORT/EXPORT_DEF/. 3729 3730 * src/base/ftotval.c: Include FT_OPENTYPE_VALIDATE_H. 3731 3732 * src/psaux/psobjs.c (ps_table_add): Check `length'. 3733 37342008-11-15 Werner Lemberg <wl@gnu.org> 3735 3736 * src/truetype/ttinterp.c (tt_default_graphics_state): The default 3737 value for `scan_type' is zero, as confirmed by Greg Hitchcock from 3738 Microsoft. Problem reported by Michal Nowakowski 3739 <miszka@limes.com.pl>. 3740 37412008-11-12 Tor Andersson <tor.andersson@gmail.com> 3742 3743 * src/cff/cffdrivr.c (cff_get_cmap_info): Initialize `format' field. 3744 This fixes Savannah bug #24819. 3745 37462008-11-08 Werner Lemberg <wl@gnu.org> 3747 3748 * src/sfnt/sfobjs.c (sfnt_load_face): Remove #if 0/#endif guards 3749 since OpenType version 1.5 has been released. 3750 3751 * include/ttnameid.h (TT_NAME_ID_WWS_FAMILY, 3752 TT_NAME_ID_WWS_SUBFAMILY): New macros for OpenType 1.5. 3753 (TT_URC_COPTIC, TT_URC_VAI, TT_URC_NKO, TT_URC_BALINESE, 3754 TT_URC_PHAGSPA, TT_URC_NON_PLANE_0, TT_URC_PHOENICIAN, 3755 TT_URC_TAI_LE, TT_URC_NEW_TAI_LUE, TT_URC_BUGINESE, 3756 TT_URC_GLAGOLITIC, TT_URC_YIJING, TT_URC_SYLOTI_NAGRI, 3757 TT_URC_LINEAR_B, TT_URC_ANCIENT_GREEK_NUMBERS, TT_URC_UGARITIC, 3758 TT_URC_OLD_PERSIAN, TT_URC_SHAVIAN, TT_URC_OSMANYA, 3759 TT_URC_CYPRIOT_SYLLABARY, TT_URC_KHAROSHTHI, TT_URC_TAI_XUAN_JING, 3760 TT_URC_CUNEIFORM, TT_URC_COUNTING_ROD_NUMERALS, TT_URC_SUNDANESE, 3761 TT_URC_LEPCHA, TT_URC_OL_CHIKI, TT_URC_SAURASHTRA, TT_URC_KAYAH_LI, 3762 TT_URC_REJANG, TT_URC_CHAM, TT_URC_ANCIENT_SYMBOLS, 3763 TT_URC_PHAISTOS_DISC, TT_URC_OLD_ANATOLIAN, TT_URC_GAME_TILES): New 3764 macros for OpenType 1.5. 3765 37662008-11-08 Wenlin Institute <wenlin@wenlin.com> 3767 3768 * src/base/ftobjs.c (ft_glyphslot_free_bitmap): Protect against 3769 slot->internal == NULL. Reported by Graham Asher. 3770 37712008-11-08 Werner Lemberg <wl@gnu.org> 3772 3773 * src/sfnt/sfobjs.c (tt_face_get_name): Modified to return an error 3774 code so that memory allocation problems can be distinguished from 3775 missing table entries. Reported by Graham Asher. 3776 (GET_NAME): New macro. 3777 (sfnt_load_face): Use it. 3778 37792008-11-05 Werner Lemberg <wl@gnu.org> 3780 3781 * devel/ftoption.h, include/freetype/config/ftoption.h 3782 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Undefine 3783 TT_CONFIG_OPTION_UNPATENTED_HINTING. This fixes the return value of 3784 `FT_Get_TrueType_Engine_Type' (and makes it work as documented). 3785 Reported in bug #441638 of bugzilla.novell.com. 3786 3787 * docs/CHANGES: Document it. 3788 37892008-11-03 Werner Lemberg <wl@gnu.org> 3790 3791 * src/type1/t1load.c (parse_subrs): Use an endless loop. There are 3792 fonts (like HELVI.PFB version 003.001, used on OS/2) which define 3793 some `subrs' elements more than once. Problem reported by Peter 3794 Weilbacher <mozilla@weilbacher.org>. 3795 37962008-10-15 Graham Asher <graham.asher@btinternet.com> 3797 3798 * src/sfnt/ttpost.c (tt_post_default_names): Add `const'. 3799 38002008-10-15 David Turner <david@freetype.org> 3801 3802 * src/truetype/ttgxvar.c (TT_Set_MM_Blend): Disambiguate for 3803 meddlesome compilers' warning against `for ( ...; ...; ...) ;'. 3804 38052008-10-14 Werner Lemberg <wl@gnu.org> 3806 3807 * src/cff/cffobjs.c (cff_face_init): Remove compiler warning. 3808 Suggested by Bram Tassyns in Savannah patch #6651. 3809 38102008-10-12 Graham Asher <graham.asher@btinternet.com> 3811 3812 * src/sfnt/sfobjs.c (sfnt_load_face): Fix computation of 3813 `underline_position'. 3814 38152008-10-12 Werner Lemberg <wl@gnu.org> 3816 3817 * docs/CHANGES: Updated. 3818 38192008-10-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3820 3821 Fix Savannah bug #24468. 3822 3823 According to include/freetype/internal/ftobjs.h, the appropriate 3824 type to interchange single character codepoint is FT_UInt32. It 3825 should be distinguished from FT_UInt which can be 16bit integer. 3826 3827 * src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Change the type 3828 of the second argument `pcharcode' from FT_UInt* to FT_UInt32*. 3829 (tt_cmap4_char_map_binary): Ditto. 3830 (tt_cmap14_get_nondef_chars): Change the type of return value 3831 from FT_UInt* to FT_UInt32*. 3832 38332008-10-08 John Tytgat <John.Tytgat@esko.com> 3834 3835 Fix Savannah bug #24485. 3836 3837 * src/type1/t1load.c (parse_charstrings): Assure that we always have 3838 a .notdef glyph. 3839 38402008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3841 3842 * src/base/ftmac.c: Include FT_TRUETYPE_TAGS_H for multi build. 3843 * builds/mac/ftmac.c: Ditto. 3844 38452008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3846 3847 * include/freetype/tttags.h (TTAG_TYP1, TTAG_typ1): Fix definitions. 3848 * src/base/ftobjs.c: Include FT_TRUETYPE_TAGS_H. 3849 38502008-10-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3851 3852 * src/sfnt/sfobjs.c (sfnt_open_font): Allow `typ1' version tag in 3853 the beginning of sfnt container. 3854 * src/sfnt/ttload.c (check_table_dir): Return 3855 `SFNT_Err_Table_Missing' when sfnt table directory structure is 3856 correct but essential tables for TrueType fonts (`head', `bhed' or 3857 `SING') are missing. Other errors are returned by 3858 SFNT_Err_Unknown_File_Format. 3859 3860 * src/base/ftobjs.c (FT_Open_Face): When TrueType driver returns 3861 `FT_Err_Table_Missing', try `open_face_PS_from_sfnt_stream'. It is 3862 enabled only when old mac font support is configured. 3863 38642008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3865 3866 * include/freetype/tttags.h (TTAG_CID, TTAG_FOND, TTAG_LWFN, 3867 TTAG_POST, TTAG_sfnt, TTAG_TYP1, TTAG_typ1): New tags to simplify 3868 the repeated calculations of these values in ftobjs.c and ftmac.c. 3869 * src/base/ftobjs.c: Replace all FT_MAKE_TAG by new tags. 3870 * src/base/ftmac.c: Ditto. 3871 * builds/mac/ftmac.c: Ditto. 3872 38732008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3874 3875 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt_stream): Remove wrong 3876 initialization of *is_sfnt_cid. 3877 38782008-10-04 Werner Lemberg <wl@gnu.org> 3879 3880 * src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Remove compiler 3881 warnings. 3882 38832008-10-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3884 3885 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Replaced by... 3886 (ft_lookup_PS_in_sfnt_stream): This. 3887 (open_face_PS_from_sfnt_stream): New function. It checks whether 3888 the stream is sfnt-wrapped Type1 PS font or sfnt-wrapped CID-keyed 3889 font, then try to open a face for given face_index. 3890 (Mac_Read_sfnt_Resource): Replace the combination of 3891 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' by 3892 `open_face_PS_from_sfnt_stream'. 3893 * src/base/ftmac.c (FT_New_Face_From_SFNT): Ditto. 3894 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto. 3895 * src/base/ftbase.h: Remove `ft_lookup_PS_in_sfnt' and add 3896 `open_face_PS_from_sfnt_stream'. 3897 38982008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3899 3900 * src/base/ftobjs.c (ft_lookup_PS_in_sfnt): Set *is_sfnt_cid to 3901 FALSE if neither `CID ' nor `TYP1' is found in the sfnt container. 3902 39032008-10-03 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3904 3905 * include/freetype/config/ftconfig.h: Define FT_MACINTOSH when SC or 3906 MrC compiler of MPW is used. These compilers do not define the 3907 macro __APPLE__ by themselves. 3908 * builds/unix/ftconfig.in: Ditto. 3909 * builds/vms/ftconfig.h: Ditto. 3910 * src/base/ftbase.c: Use FT_MACINTOSH instead of __APPLE__, to 3911 include ftmac.c if FreeType 2 is built by MPW. 3912 * src/base/ftobjs.c: Use FT_MACINTOSH instead of __APPLE__, to 3913 enable shared functions for ftmac.c if FreeType 2 is built by MPW. 3914 3915 * builds/mac/ftmac.c: Include ftbase.h. 3916 (memory_stream_close): Removed. 3917 (new_memory_stream): Ditto. 3918 (open_face_from_buffer): Removed. Use the implementation in 3919 ftobjs.c. 3920 (ft_lookup_PS_in_sfnt): Ditto. 3921 3922 * builds/mac/FreeType.m68k_far.make.txt: Build ftmac.c as an 3923 included part of ftbase.c, to share the functions in ftobjs.c. The 3924 rule compiling ftmac.c separately is removed and the rule copying 3925 ftbase.c from src/base/ftbase.c to builds/mac/ftbase.c is added. 3926 * builds/mac/FreeType.m68k_cfm.make.txt: Ditto. 3927 * builds/mac/FreeType.ppc_classic.make.txt: Ditto. 3928 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. 3929 39302008-10-02 Bram Tassyns <bramt@enfocus.be> 3931 3932 * src/cff/cffgload.c (cff_slot_load): Map CID 0 to GID 0. This 3933 fixes Savannah bug #24430. 3934 39352008-10-02 Werner Lemberg <wl@gnu.org> 3936 3937 * builds/freetype.mk (BASE_H): Rename to... 3938 (INTERNAL_H): This. 3939 (FREETYPE_H): Updated. 3940 * src/base/rules.mk: (BASE_OBJ_S, OBJ_DIR/%.$O): Add BASE_H. 3941 * src/bdf/rules.mk (BDF_DRV_H): Add bdferror.h. 3942 * src/cache/rules.mk (CACHE_DRV_H): Add ftccache.h and ftcsbits.h. 3943 * src/pcf/rules.mk (PCF_DRV_H): Add pcfread.h. 3944 * src/raster/rules.mk (RASTER_DRV_H): Add ftmisc.h. 3945 * src/type42/rules.mk (T42_DRV_H): Add t42types.h. 3946 39472008-10-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3948 3949 * src/base/ftbase.h: New file to declare the private utility 3950 functions shared by the sources of base modules. Currently, 3951 `ft_lookup_PS_in_sfnt' and `open_face_from_buffer' are declared to 3952 share between ftobjs.c and ftmac.c. 3953 3954 * src/base/rule.mk: Add ftbase.h. 3955 3956 * src/base/ftobjs.c: Include ftbase.h. 3957 (memory_stream_close): Build on any platform when old MacOS font 3958 support is enabled. 3959 (new_memory_stream): Ditto. 3960 (open_face_from_buffer): Build on any platform when old MacOS font 3961 support is enabled. The counting of the face in a font file is 3962 slightly different between Carbon-dependent parser and Carbon-free 3963 parser. They are merged with the platform-specific conditional. 3964 (ft_lookup_PS_in_sfnt): Ditto. 3965 3966 * src/base/ftmac.c: Include ftbase.h. 3967 (memory_stream_close): Removed. 3968 (new_memory_stream): Ditto. 3969 (open_face_from_buffer): Removed. Use the implementation in 3970 ftobjs.c. 3971 (ft_lookup_PS_in_sfnt): Ditto. 3972 39732008-10-02 Werner Lemberg <wl@gnu.org> 3974 3975 * src/sfnt/sfobjs.c (sfnt_load_face): `psnames_error' is only needed 3976 if TT_CONFIG_OPTION_POSTSCRIPT_NAMES is defined. 3977 39782008-10-01 Werner Lemberg <wl@gnu.org> 3979 3980 * src/truetype/ttobjs.c (tt_face_done), src/cff/cffobjs.c 3981 (cff_face_done), src/pfr/pfrobjs.c (pfr_face_done), 3982 src/pcf/pcfdrivr.c (PCF_Face_Done), src/cid/cidobjs.c 3983 (cid_face_done), src/bdf/bdfdrivr. (BDF_Face_Done), 3984 src/sfnt/sfobjs.c (sfnt_face_done): Protect against face == 0. 3985 Reported by Graham Asher. 3986 39872008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3988 3989 * src/base/rules.mk: Add conditional source to BASE_SRC, for `make 3990 multi' on Mac OS X. If the macro $(ftmac_c) is defined, 3991 $(BASE_DIR)/$(ftmac_c) is added to BASE_SRC. In a normal build, the 3992 lack of ftmac.c in BASE_SRC is not serious because ftbase.c includes 3993 ftmac.c. 3994 * builds/unix/unix-def.in: Add a macro definition of $(ftmac_c). 3995 * builds/unix/configure.raw: Add procedure to set up appropriate 3996 value of $(ftmac_c) with the consideration of the availability of 3997 Carbon framework. 3998 39992008-09-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4000 4001 * src/base/Jamfile: Add target for multi build by jam on Mac OS X. 4002 * src/base/ftobjs.c (FT_New_Face): Fix the condition to include this 4003 function for MPW building. It is synchronized the condition to 4004 include ftmac.c source into ftbase.c. 4005 40062008-09-22 Werner Lemberg <wl@gnu.org> 4007 4008 * src/cff/cffgload.c (CFF_Operator, cff_argument_counts, 4009 cff_decoder_parse_charstrings): Handle (invalid) 4010 `callothersubr' and `pop' instructions. 4011 40122008-09-22 John Tytgat <John.Tytgat@esko.com> 4013 4014 Fix Savannah bug #24307. 4015 4016 * include/freetype/internal/t1types.h (CID_FaceRec), 4017 src/type42/t42types.h (T42_FaceRec): Comment out `afm_data'. 4018 40192008-09-21 Werner Lemberg <wl@gnu.org> 4020 4021 * src/smooth/ftgrays.c (gray_raster_render): Don't dereference 4022 `target_map' if FT_RASTER_FLAG_DIRECT is set. Problem reported by 4023 Stephan T. Lavavej <stl@nuwen.net>. 4024 40252008-09-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4026 4027 * src/otvalid/Jamfile: Add missing target `otvmath' for multi build 4028 by jam. 4029 * src/sfnt/Jamfile: Add missing target `ttmtx' for multi build by 4030 jam. 4031 40322008-09-20 Werner Lemberg <wl@gnu.org> 4033 4034 * src/smooth/ftgrays.c (gray_find_cell): Fix threshold. The values 4035 passed to this function are already `normalized'. Problem reported 4036 by Stephan T. Lavavej <stl@nuwen.net>. 4037 4038 * docs/CHANGES: Document it. 4039 40402008-09-20 Werner Lemberg <wl@gnu.org> 4041 4042 * src/base/ftoutln.c: Include FT_INTERNAL_DEBUG_H. 4043 (FT_Outline_Decompose): Decorate with tracing messages. 4044 4045 * src/smooth/ftgrays.c [DEBUG_GRAYS]: Replace with 4046 FT_DEBUG_LEVEL_TRACE. 4047 [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: Include stdio.h and 4048 stdarg.h. 4049 4050 (FT_TRACE) [_STANDALONE_]: Remove. 4051 (FT_Message) [_STANDALONE_ && FT_DEBUG_LEVEL_TRACE]: New function. 4052 (FT_TRACE5, FT_TRACE7) [_STANDALONE_]: New macros. 4053 (FT_ERROR) [_STANDALONE_]: Updated. 4054 4055 (gray_hline) [FT_DEBUG_LEVEL_TRACE]: Fix condition. 4056 Use FT_TRACE7. 4057 (gray_dump_cells): Make it `static void'. 4058 (gray_convert_glyph): Use FT_TRACE7. 4059 4060 (FT_Outline_Decompose) [_STANDALONE_]: Synchronize with version in 4061 ftoutln.c. 4062 4063 * src/base/ftadvanc.c (FT_Get_Advance, FT_Get_Advances): Use 4064 FT_ERROR_BASE. 4065 4066 * docs/formats.txt: Updated. 4067 40682008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4069 4070 * src/base/ftmac.c: Import sfnt-wrapped Type1 and sfnt-wrapped 4071 CID-keyed font support. 4072 * builds/mac/ftmac.c: Ditto. 4073 40742008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4075 4076 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Fix double free bug in 4077 sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font support code. 4078 `open_face_from_buffer' frees the passed buffer if it cannot open a 4079 face from the buffer, so the caller must not free it. 4080 40812008-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4082 4083 * src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add initial support 4084 for sfnt-wrapped Type1 and sfnt-wrapped CID-keyed font. 4085 (ft_lookup_PS_in_sfnt): New function to look up `TYP1' or `CID ' 4086 table in sfnt table directory. It is used before loading TrueType 4087 font driver. 4088 4089 * docs/CHANGES: Add note about the current status of sfnt-wrapped 4090 Type1 and sfnt-wrapped CID-keyed font support. 4091 40922008-09-18 Werner Lemberg <wl@gnu.org> 4093 4094 * src/base/ftsystem.c (FT_Done_Memory): Use ft_sfree directly for 4095 orthogonality (ft_free and ft_sfree could belong to different memory 4096 pools). This fixes Savannah bug #24297. 4097 40982008-09-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4099 4100 * src/cff/cffobjs.c (cff_face_init): Use TTAG_OTTO defined 4101 in tttags.h instead of numerical value 0x4F54544FL. 4102 41032008-09-16 Werner Lemberg <wl@gnu.org> 4104 4105 * src/cff/cffgload.h, src/cff/cffgload.c 4106 (cff_decoder_set_width_only): Eliminate function call. 4107 41082008-09-15 George Williams <gww@silcom.com> 4109 4110 Fix Savannah bug #24179, reported by Bram Tassyns. 4111 4112 * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation 4113 of default values. 4114 41152008-09-15 Werner Lemberg <wl@gnu.org> 4116 4117 * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index' 4118 and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to 4119 prevent unconditional definition. This fixes Savannah bug #24241. 4120 4121 * src/psnames/pstables.h: Regenerated. 4122 41232008-09-13 Werner Lemberg <wl@gnu.org> 4124 4125 * autogen.sh, builds/unix/configure.raw, 4126 include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: Minor 4127 beautifying. 4128 4129 * include/freetype/ftadvanc.h, include/freetype/ftgasp.h, 4130 include/freetype/ftlcdfil.h: Protect against FreeType 1. 4131 Some other minor fixes. 4132 4133 * devel/ftoption.h: Synchronize with 4134 include/freetype/config/ftoption.h. 4135 41362008-09-11 Werner Lemberg <wl@gnu.org> 4137 4138 * src/base/ftbase.c: Include ftadvanc.c. 4139 41402008-09-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4141 4142 * builds/unix/ftconfig.in: Duplicate the cpp computation of 4143 FT_SIZEOF_{INT|LONG} from include/freetype/config/ftconfig.h. 4144 (FT_USE_AUTOCONF_SIZEOF_TYPES): New macro. If defined, the cpp 4145 computation is disabled and the statically configured sizes are 4146 used. This fixes Savannah bug #21250. 4147 4148 * builds/unix/configure.raw: Add the checks to compare the cpp 4149 computation results of the bit length of int and long versus the 4150 sizes detected by running `configure'. If the results are 4151 different, FT_USE_AUTOCONF_SIZEOF_TYPES is defined to prioritize the 4152 results. 4153 New option --{enable|disable}-biarch-config is added to define or 4154 undefine FT_USE_AUTOCONF_SIZEOF_TYPES manually. 4155 41562008-09-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4157 4158 * builds/unix/configure.raw: Clear FT2_EXTRA_LIBS when Carbon or 4159 ApplicationServices framework is missing. Although this value is not 4160 used in building of FreeType2, it is written in `freetype2.pc' and 4161 `freetype-config'. 4162 41632008-09-01 David Turner <david@freetype.org> 4164 4165 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Accept a negative cmap 4166 index to mean `use default cached FT_Face's charmap'. This fixes 4167 Savannah bug #22625. 4168 * include/freetype/ftcache.h: Document it. 4169 4170 4171 Make FT_MulFix an inlined function. This is done to speed up 4172 FreeType a little (on x86 3% when loading+hinting, 10% when 4173 rendering, ARM savings are more important though). Disable this by 4174 undefining FT_CONFIG_OPTION_INLINE_MULFIX. 4175 4176 Use of assembler code can now be controlled with 4177 FT_CONFIG_OPTION_NO_ASSEMBLER. 4178 4179 * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in 4180 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_arm): New assembler 4181 implementation. 4182 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MulFix_i386): Assembler 4183 implementation taken from `ftcalc.c'. 4184 [!FT_CONFIG_OPTION_NO_ASSEMBLER] (FT_MULFIX_ASSEMBLER): New macro 4185 which is defined to the platform-specific assembler implementation 4186 of FT_MulFix. 4187 [FT_CONFIG_OPTION_INLINE_MULFIX && FT_MULFIX_ASSEMBLER] 4188 (FT_MULFIX_INLINED): New macro. 4189 4190 * include/freetype/config/ftoption.h (FT_CONFIG_OPTION_NO_ASSEMBLER, 4191 FT_CONFIG_OPTION_INLINE_MULFIX): New macros. 4192 4193 * include/freetype/freetype.h: Updated to handle FT_MULFIX_INLINED. 4194 4195 * src/base/ftcalc.c: Updated to use FT_MULFIX_ASSEMBLER and 4196 FT_MULFIX_INLINED. 4197 4198 4199 Add a new header named FT_ADVANCES_H declaring some new APIs to 4200 extract the advances of one or more glyphs without necessarily 4201 loading their outlines. Also provide `fast loaders' for the 4202 TrueType, Type1, and CFF font drivers (more to come later). 4203 4204 * src/base/ftadvanc.c, include/freetype/ftadvanc.h: New files. 4205 4206 * include/freetype/config/ftheader.h (FT_ADVANCES_H): New macro. 4207 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): New macro. 4208 4209 * include/freetype/internal/ftdriver.h (FT_Face_GetAdvancesFunc): 4210 `flags' and `advances' are now of type `FT_UInt' and `FT_Fixed', 4211 respectively. 4212 4213 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC): Add 4214 ftadvanc.c. 4215 4216 * src/cff/cffdrivr.c (cff_get_advances): New function. 4217 (cff_driver_class): Register it. 4218 4219 * src/cff/cffgload.c (cff_decoder_set_width_only): New function. 4220 (cff_decoder_parse_charstrings): Handle `width_only'. 4221 (cff_slot_load): Handle FT_LOAD_ADVANCE_ONLY. 4222 4223 * src/cff/cffgload.h (cff_decoder): New element `width_only'. 4224 (cff_decoder_set_width_only): New declaration. 4225 4226 * src/truetype/ttdriver.c (tt_get_advances): New function. 4227 (tt_driver_class): Register it. 4228 4229 * src/truetype/ttgload.c (Get_HMetrics, Get_VMetrics): Renamed to... 4230 (TT_Get_HMetrics, TT_Get_VMetrics): This. 4231 Update callers. 4232 * src/truetype/ttgload.h: Declare them. 4233 4234 * src/type1/t1gload.h, src/type1/t1gload.c (T1_Get_Advances): New 4235 function. 4236 * src/type1/t1driver.c (t1_driver_class): Register T1_Get_Advances. 4237 4238 4239 Add checks for minimum version of the `autotools' stuff. 4240 4241 * autogen.sh: Implement it. 4242 (get_major_version, get_minor_version, get_patch_version, 4243 compare_to_minimum_version, check_tool_version): New auxiliary 4244 functions. 4245 4246 * README.CVS: Document it. 4247 42482008-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4249 4250 * src/sfnt/sfobjs.c (sfnt_open_font): Use TTAG_OTTO defined in 4251 tttags.h instead of FT_MAKE_TAG( 'O', 'T', 'T', 'O' ). 4252 42532008-08-28 Werner Lemberg <wl@gnu.org> 4254 4255 * src/type1/t1load.c (parse_encoding): Protect against infinite 4256 loop. This fixes Savannah bug #24150 (where a patch has been posted 4257 too). 4258 42592008-08-23 Werner Lemberg <wl@gnu.org> 4260 4261 * src/type/t1afm.c (compare_kern_pairs), src/psaux/afmparse.c 4262 (afm_compare_kern_pairs): Fix comparison. This fixes Savannah bug 4263 #24119. 4264 42652008-08-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4266 4267 * src/base/ftobjs.c (FT_Stream_New): Initialize *astream always, 4268 even if passed library or arguments are invalid. This fixes a bug 4269 that an uninitialized stream is freed when an invalid library handle 4270 is passed. Originally proposed by Mike Fabian, 2008/08/18 on 4271 freetype-devel. 4272 (FT_Open_Face): Ditto (stream). 4273 (load_face_in_embedded_rfork): Ditto (stream2). 4274 42752008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4276 4277 * src/base/ftmac.c: Add a fallback to guess the availability of the 4278 `ResourceIndex' type. It is used when built without configure 4279 (e.g., a build with Jam). 4280 * builds/mac/ftmac.c: Ditto. 4281 * builds/unix/configure.raw: Set HAVE_TYPE_RESOURCE_INDEX to 1 or 0 4282 explicitly, even if `ResourceIndex' is unavailable. 4283 42842008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4285 4286 * builds/unix/configure.raw: In checking of Mac OS X features, 4287 all-in-one header file `Carbon.h' is replaced by the minimum 4288 header file `CoreServices.h', similar to current src/base/ftmac.c. 4289 42902008-08-18 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4291 4292 * src/sfnt/ttcmap.c (tt_cmap2_validate): Skip the validation of 4293 sub-header when its code_count is 0. Many Japanese Dynalab fonts 4294 include such an empty sub-header (code_count == 0, first_code == 0 4295 delta == 0, but offset != 0) as the second sub-header in SJIS cmap. 4296 42972008-08-04 Werner Lemberg <wl@gnu.org> 4298 4299 * src/type1/t1tokens.h: Handle `ForceBold' keyword. This fixes 4300 Savannah bug #23995. 4301 4302 * src/cid/cidload.c (parse_expansion_factor): New callback function. 4303 (cid_field_records): Use it for `ExpansionFactor'. 4304 * src/cod/cidtoken.h: Handle `ForceBold' keyword. 4305 Don't handle `ExpansionFactor'. 4306 43072008-08-04 Bram Tassyns <bramt@enfocus.be> 4308 4309 * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which 4310 resulted in incorrect scaling. This fixes Savannah bug #23973. 4311 43122008-08-04 Werner Lemberg <wl@gnu.org> 4313 4314 Be more tolerant w.r.t. invalid entries in SFNT table directory. 4315 4316 * src/sfnt/ttload.c (check_table_dir): Ignore invalid entries and 4317 adjust table count. 4318 Add more trace messages. 4319 (tt_face_load_font_dir): Updated. 4320 43212008-07-30 Werner Lemberg <wl@gnu.org> 4322 4323 * src/cff/cffgload.c (cff_decoder_parse_charstrings): No longer 4324 assume that the first argument on the stack is the bottom-most 4325 element. Two reasons: 4326 4327 o According to people from Adobe it is missing in the Type 2 4328 specification that pushing of additional, superfluous arguments 4329 on the stack is prohibited. 4330 4331 o Acroread in general handles fonts differently, namely by popping 4332 the number of arguments needed for a particular operand (as a PS 4333 interpreter would do). In case of buggy fonts this causes a 4334 different interpretation which of the elements on the stack are 4335 superfluous and which not. 4336 4337 Since there are CFF subfonts (embedded in PDFs) which rely on 4338 Acroread's behaviour, FreeType now does the same. 4339 43402008-07-27 Werner Lemberg <wl@gnu.org> 4341 4342 Add extra mappings for `Tcommaaccent' and `tcommaaccent'. This 4343 fixes Savannah bug #23940. 4344 4345 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): Rename to... 4346 (EXTRA_GLYPH_LIST_SIZE): This. 4347 Increase by 2. 4348 (ft_wgl_extra_unicodes): Rename to... 4349 (ft_extra_glyph_unicodes): This. 4350 Add two code values. 4351 (ft_wgl_extra_glyph_names): Rename to... 4352 (ft_extra_glyph_names): This. 4353 Add two glyphs. 4354 (ft_wgl_extra_glyph_name_offsets): Rename to... 4355 (ft_extra_glyph_name_offsets): This. 4356 Add two offsets. 4357 4358 (ps_check_wgl_name, ps_check_wgl_unicode): Rename to... 4359 (ps_check_extra_glyph_name, ps_check_extra_glyph_unicode): This. 4360 Updated. 4361 (ps_unicodes_init): Updated. 4362 43632008-07-26 Werner Lemberg <wl@gnu.org> 4364 4365 * src/cff/cffgload.c (cff_decoder_prepare, 4366 cff_decoder_parse_charstrings): Improve debug output. 4367 43682008-07-22 Martin McBride <mmcbride@emtex.com> 4369 4370 * src/sfnt/ttcmap.c (tt_cmap4_validate, tt_cmap4_char_map_linear, 4371 tt_cmap4_char_map_binary): Handle fonts which treat the last segment 4372 specially. According to the specification, such fonts would be 4373 invalid but acroread accepts them. 4374 43752008-07-16 Jon Foster <Jon.Foster@cabot.co.uk> 4376 4377 * src/pfr/pfrdrivr.c (pfr_get_advance): Fix off-by-one error. 4378 4379 * src/base/ftcalc.c (FT_MulFix): Fix portability issue. 4380 4381 * src/sfnt/ttpost.c (MAC_NAME) [!FT_CONFIG_OPTION_POSTSCRIPT_NAMES]: 4382 Fix compiler warning. 4383 43842008-07-16 Werner Lemberg <wl@gnu.org> 4385 4386 Handle CID-keyed fonts wrapped in an SFNT (with cmaps) correctly. 4387 4388 * src/cff/cffload.c (cff_font_load): Pass `pure_cff'. 4389 Invert sids table only if `pure_cff' is set. 4390 * src/cff/cffload.h: Updated. 4391 4392 * src/cff/cffobjs.c (cff_face_init): Updated. 4393 Set FT_FACE_FLAG_CID_KEYED only if pure_cff is set. 4394 4395 * docs/CHANGES: Updated. 4396 43972008-07-09 Werner Lemberg <wl@gnu.org> 4398 4399 * src/truetype/ttpload.c (tt_face_load_loca): Handle buggy fonts 4400 where num_locations < num_glyphs. Problem reported by Ding Li. 4401 44022008-07-05 Werner Lemberg <wl@gnu.org> 4403 4404 Since FreeType uses `$(value ...)', we now need GNU make 3.80 or 4405 newer. This fixes Savannah bug #23648. 4406 4407 * configure: zsh doesn't like ${1+"$@"}. 4408 Update needed GNU make version. 4409 * builds/toplevel.mk: Check for `$(eval ...)'. 4410 * docs/INSTALL.GNU, docs/INSTALL.CROSS, docs/INSTALL.UNIX: Document 4411 it. 4412 44132008-07-04 Werner Lemberg <wl@gnu.org> 4414 4415 * src/raster/ftraster.c (Draw_Sweep): If span is smaller than one 4416 pixel, only check for dropouts if neither start nor end point lies 4417 on a pixel center. This fixes Savannah bug #23762. 4418 44192008-06-29 Werner Lemberg <wl@gnu.org> 4420 4421 * Version 2.3.7 released. 4422 ========================= 4423 4424 4425 Tag sources with `VER-2-3-7'. 4426 4427 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump 4428 version number to 2.3.7. 4429 4430 * README, Jamfile (RefDoc), builds/win32/visualc/index.html, 4431 builds/win32/visualc/freetype.dsp, 4432 builds/win32/visualc/freetype.vcproj, 4433 builds/win32/visualce/index.html, 4434 builds/win32/visualce/freetype.dsp, 4435 builds/win32/visualce/freetype.vcproj: s/2.3.6/2.3.7/, s/236/237/. 4436 4437 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. 4438 4439 * builds/unix/configure.raw (version_info): Set to 9:18:3. 4440 4441 * docs/release: Updated. 4442 44432008-06-28 Werner Lemberg <wl@gnu.org> 4444 4445 * src/ftglyph.c (FT_Matrix_Multiply, FT_Matrix_Invert): Move to... 4446 * src/ftcalc.c: Here. This fixes Savannah bug #23729. 4447 44482008-06-27 Werner Lemberg <wl@gnu.org> 4449 4450 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, 4451 Horizontal_Gray_Sweep_Drop): Test for intersections which 4452 degenerate to a single point can be ignored; this has been confirmed 4453 by Greg Hitchcock from Microsoft. (This was commented out code.) 4454 44552008-06-26 Werner Lemberg <wl@gnu.org> 4456 4457 Improve navigation in API reference. 4458 4459 * src/tools/docmaker/tohtml.py (html_header_3): Renamed to... 4460 (html_header_6): This. 4461 (html_header_3, html_header_3i, html_header_4, html_header_5, 4462 html_header_5t): New strings. 4463 (toc_footer_start, toc_footer_end): New strings. 4464 (HtmlFormatter::html_header): Updated. 4465 (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header): 4466 New strings. 4467 (HtmlFormatter::index_enter): Use `html_index_header'. 4468 (HtmlFormatter::index_exit): Print `html_footer'. 4469 (HtmlFormatter::toc_enter): Use `html_toc_header'. 4470 (HtmlFormatter::toc_exit): Print proper footer. 4471 4472 Convert ~ to non-breakable space. 4473 4474 * src/tools/docmaker/tohtml.py (make_html_para): Implement it. 4475 Update header files accordingly. 4476 44772008-06-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4478 4479 * builds/unix/configure.raw: Check type `ResourceIndex' explicitly 4480 and define HAVE_TYPE_RESOURCE_INDEX if it is defined. Mac OS X 10.5 4481 bundles 10.4u SDK with MAC_OS_X_VERSION_10_5 macro but without 4482 ResourceIndex type definition. The macro does not inform the type 4483 availability. 4484 * src/base/ftmac.c: More parentheses are inserted to clarify the 4485 conditionals to disable legacy APIs in `10.5 and later' cases. If 4486 HAVE_TYPE_RESOURCE_INDEX is not defined, ResourceIndex is defined. 4487 44882008-06-24 Werner Lemberg <wl@gnu.org> 4489 4490 * src/truetype/ttinterp.c (Ins_SCANTYPE): Don't check rendering 4491 mode. 4492 4493 * src/raster/ftraster.c (Render_Glyph, Render_Gray_Glyph, 4494 Draw_Sweep): No-dropout mode is value 2, not value 0. 4495 (Draw_Sweep): Really skip dropout handling for no-dropout mode. 4496 44972008-06-24 Werner Lemberg <wl@gnu.org> 4498 4499 * src/psaux/psobjs.c (t1_builder_close_contour): Don't add contour 4500 if it consists of one point only. Based on a patch from Savannah 4501 bug #23683 (from John Tytgat). 4502 45032008-06-22 Werner Lemberg <wl@gnu.org> 4504 4505 * src/truetype/ttgload.c (TT_Load_Glyph): Protect bytecode stuff 4506 with IS_HINTED. 4507 4508 * docs/CHANGES: Updated. 4509 45102008-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4511 4512 * builds/unix/configure.raw: If CFLAGS has `-isysroot XXX' option 4513 but LDFLAGS does not, import it to LDFLAGS. The option is used to 4514 specify non-default SDK on Mac OS X (e.g., universal binary SDK for 4515 Mac OS X 10.4 on PowerPC platform). Although Apple TechNote 2137 4516 recommends to add the option only to CFLAGS, LDFLAGS should include 4517 it because libfreetype.la is built with -no-undefined. This fixes a 4518 bug reported by Ryan Schmidt in MacPorts, 4519 https://trac.macports.org/ticket/15331. 4520 45212008-06-21 Werner Lemberg <wl@gnu.org> 4522 4523 Enable access to the various dropout rules of the B&W rasterizer. 4524 Pass dropout rules from the TT bytecode interpreter to the 4525 rasterizer. 4526 4527 * include/freetype/ftimage.h (FT_OUTLINE_SMART_DROPOUTS, 4528 FT_OUTLINE_EXCLUDE_STUBS): New flags for FT_Outline. 4529 4530 * src/raster/ftraster.c (Vertical_Sweep_Drop, Horizontal_Sweep_Drop, 4531 Horizontal_Gray_Sweep_Drop): Use same mode numbers as given in the 4532 OpenType specification. 4533 Fix mode 4 computation. 4534 (Render_Glyph, Render_Gray_Glyph): Handle new outline flags. 4535 4536 * src/truetype/ttgload.c (TT_Load_Glyph) Convert scan conversion 4537 mode to FT_OUTLINE_XXX flags. 4538 4539 * src/truetype/ttinterp.c (Ins_SCANCTRL): Enable ppem check. 4540 45412008-06-19 Werner Lemberg <wl@gnu.org> 4542 4543 * src/cff/cffobjs.c (cff_face_init): Compute final 4544 `dict->units_per_em' value before assigning it to 4545 `cffface->units_per_EM'. Otherwise, CFFs without subfonts are 4546 scaled incorrectly if the font matrix is non-standard. This fixes 4547 Savannah bug #23630. 4548 4549 * docs/CHANGES: Updated. 4550 45512008-06-19 Werner Lemberg <wl@gnu.org> 4552 4553 * src/type/t1objs.c (T1_Face_Init): Slightly improve algorithm fix 4554 from 2008-06-19. 4555 45562008-06-18 Werner Lemberg <wl@gnu.org> 4557 4558 * src/type/t1objs.c (T1_Face_Init): Fix change from 2008-03-21. 4559 Reported by Peter Weilbacher <mozilla@weilbacher.org>. 4560 4561 * docs/CHANGES: Updated. 4562 45632008-06-15 George Williams <gww@silcom.com> 4564 4565 * src/otvalid/otvgpos.c (otv_MarkBasePos_validate): Set 4566 `valid->extra2' to 1. This is undocumented in the OpenType 1.5 4567 specification. 4568 45692008-06-15 Werner Lemberg <wl@gnu.org> 4570 4571 * src/base/ftcalc.c (FT_MulFix) <asm>: Protect registers correctly 4572 from clobbering. Patch from Savannah bug report #23556. 4573 4574 * docs/CHANGES: Document it. 4575 45762008-06-10 Werner Lemberg <wl@gnu.org> 4577 4578 * autogen.sh: Add option `--install' to libtoolize. 4579 45802008-06-10 Werner Lemberg <wl@gnu.org> 4581 4582 * Version 2.3.6 released. 4583 ========================= 4584 4585 4586 Tag sources with `VER-2-3-6'. 4587 4588 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump 4589 version number to 2.3.6. 4590 4591 * README, Jamfile (RefDoc), builds/win32/visualc/index.html, 4592 builds/win32/visualc/freetype.dsp, 4593 builds/win32/visualc/freetype.vcproj, 4594 builds/win32/visualce/index.html, 4595 builds/win32/visualce/freetype.dsp, 4596 builds/win32/visualce/freetype.vcproj: s/2.3.5/2.3.6/, s/235/236/. 4597 4598 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. 4599 4600 * builds/unix/configure.raw (version_info): Set to 9:17:3. 4601 4602 4603 * include/freetype/internal/psaux.h (T1_BuilderRec): Remove `scale_x' 4604 and `scale_y'. 4605 * src/cff/cffgload.h (CFF_Builder): Remove `scale_x' and `scale_y'. 4606 4607 4608 * src/cff/cffparse.c: Include FT_INTERNAL_DEBUG_H. 4609 * src/cff/cffobjs.h: Include FT_INTERNAL_POSTSCRIPT_HINTS_H. 4610 46112008-06-10 Werner Lemberg <wl@gnu.org> 4612 4613 * src/base/ftobjs.c (open_face): Check `clazz->init_face' and 4614 `clazz->done_face'. 4615 46162008-06-09 VaDiM <s_sliva@rambler.ru> 4617 4618 Support debugging on WinCE. From Savannah patch #6536; this fixes 4619 bug #23497. 4620 4621 * builds/win32/ftdebug.c (OutputDebugStringEx): New function/macro 4622 as a replacement for OutputDebugStringA (which WinCE doesn't have). 4623 Update all callers. 4624 (ft_debug_init) [_WIN32_CE]: WinCE apparently doesn't have 4625 environment variables. 4626 46272008-06-09 Werner Lemberg <wl@gnu.org> 4628 4629 * README.CVS: Updated. 4630 4631 * builds/unix/configure.raw, builds/unix/freetype-config.in: Updated 4632 for newer versions of autoconf and friends. 4633 46342008-06-08 Werner Lemberg <wl@gnu.org> 4635 4636 * src/type1/t1parse.h (T1_ParserRec): Make `base_len' and 4637 `private_len' unsigned. 4638 4639 * src/type1/t1parse.c (read_pfb_tag): Make `asize' unsigned and read 4640 it as such. 4641 (T1_New_Parser, T1_Get_Private_Dict): Make `size' unsigned. 4642 4643 4644 * src/base/ftstream.c (FT_Stream_Skip): Reject negative values. 4645 4646 4647 * src/type1/t1load.c (parse_blend_design_positions): Check `n_axis' 4648 for sane value. 4649 Fix typo. 4650 4651 4652 * src/psaux/psobjs.c (ps_table_add): Check `idx' correctly. 4653 4654 4655 * src/truetype/ttinterp (Ins_SHC): Use BOUNDS() to check 4656 `last_point'. 4657 4658 4659 * src/sfnt/ttload.c (tt_face_load_max_profile): Limit 4660 `maxTwilightPoints'. 4661 46622008-06-06 Werner Lemberg <wl@gnu.org> 4663 4664 * src/truetype/ttinterp.c (Ins_IP): Handle case `org_dist == 0' 4665 correctly. This fixes glyphs `t' and `h' of Arial Narrow at 12ppem. 4666 46672008-06-03 Werner Lemberg <wl@gnu.org> 4668 4669 * include/freetype/ftcache.h (FTC_FaceID): Change type back to 4670 FT_Pointer. Reported by Ian Britten <britten@caris.com>. 4671 46722008-06-02 Werner Lemberg <wl@gnu.org> 4673 4674 Emit header info for defined FreeType objects in reference. 4675 4676 * src/tools/docmaker/content.py (re_header_macro): New regexp. 4677 (ContentProcessor::__init__): Initialize new dictionary `headers'. 4678 (DocBlock::__init__): Collect macro header definitions. 4679 4680 * src/tools/docmaker/tohtml.py (header_location_header, 4681 header_location_footer): New strings. 4682 (HtmlFormatter::__init__): Pass `headers' dictionary. 4683 (HtmlFormatter::print_html_field): Don't emit paragraph tags. 4684 (HtmlFormatter::print_html_field_list): Emit empty paragraph. 4685 (HtmlFormatter::block_enter): Emit header info. 4686 46872008-06-01 Werner Lemberg <wl@gnu.org> 4688 4689 * include/freetype/config/ftheader.h (FT_UNPATENTED_HINTING_H, 4690 FT_INCREMENTAL_H): Added. 4691 46922008-05-28 Werner Lemberg <wl@gnu.org> 4693 4694 * src/tools/docmaker/sources.py (SourceBlock::__init__): While 4695 looking for markup tags, return immediately as soon a single one is 4696 found. 4697 46982008-05-28 Werner Lemberg <wl@gnu.org> 4699 4700 * src/truetype/ttinterp.c (Ins_MD): The MD instruction also uses 4701 original, unscaled input values. Confirmed by Greg Hitchcock from 4702 Microsoft. 4703 47042008-05-27 Werner Lemberg <wl@gnu.org> 4705 4706 * src/tools/docmaker/tohtml.py (block_footer_start, 4707 block_footer_middle): Beautify output. 4708 47092008-05-25 Werner Lemberg <wl@gnu.org> 4710 4711 * src/raster/ftraster.c (fc_black_render): Return 0 when we are 4712 trying to render into a zero-width/height bitmap, not an error code. 4713 4714 * src/truetype/ttgload.c (load_truetype_glyph): Move initialization 4715 of the graphics state for subglyphs to... 4716 (TT_Hint_Glyph): This function. 4717 Hinting instructions for a composite glyph apparently refer to the 4718 just hinted subglyphs, not the unhinted, unscaled outline. This 4719 seems to fix Savannah bugs #20973 and (at least partially) #23310. 4720 47212008-05-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4722 4723 * src/base/ftmac.c (FT_New_Face_From_Suitcase): Check if valid 4724 `aface' is returned by FT_New_Face_From_FOND(). The patch was 4725 proposed by an anonymous reporter of Savannah bug #23204. 4726 47272008-05-18 Werner Lemberg <wl@gnu.org> 4728 4729 * src/pshinter/pshalgo.c (ps_hints_apply): Reset scale values after 4730 correction for pixel boundary. Without this patch, the effect can 4731 be cumulative under certain circumstances, making glyphs taller and 4732 taller after each call. This fixes Savannah bug #19976. 4733 47342008-05-18 Werner Lemberg <wl@gnu.org> 4735 4736 * src/base/ftdebug.c (FT_Message, FT_Panic): Send output to stderr. 4737 This fixes Savannah bug #23280. 4738 4739 * docs/CHANGES: Updated. 4740 47412008-05-18 David Turner <david@freetype.org> 4742 4743 * src/psnames/psmodule.c (ft_wgl_extra_unicodes, 4744 ft_wgl_extra_glyph_names, ft_wgl_extra_glyph_name_offsets, 4745 ps_check_wgl_name, ps_check_wgl_unicode): Use `static' to make 4746 declarations non-global. 4747 4748 * src/type1/t1load.c: Add missing comment. 4749 47502008-05-17 Sam Hocevar <samh> 4751 4752 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle zero-contour 4753 glyphs correctly. Patch from Savannah bug #23277. 4754 47552008-05-16 Werner Lemberg <wl@gnu.org> 4756 4757 * docs/CHANGES: Updated. 4758 47592008-05-16 Sergey Tolstov <stolstov@esri.com> 4760 4761 Improve support for WGL4 encoded fonts. 4762 4763 * src/psnames/psmodule.c (WGL_EXTRA_LIST_SIZE): New macro. 4764 (ft_wgl_extra_unicodes, ft_wgl_extra_glyph_names, 4765 ft_wgl_extra_glyph_name_offsets): New arrays. 4766 (ps_check_wgl_name, ps_check_wgl_unicode): New functions. 4767 (ps_unicodes_init): Use them to add additional Unicode mappings. 4768 47692008-05-15 Werner Lemberg <wl@gnu.org> 4770 4771 * src/psaux/t1decode.c (t1_decoder_parse_charstrings) 4772 <op_closepath>: `closepath' without a path is a no-op, not an error 4773 (cf. the PS reference manual). 4774 4775 Reported by Martin McBride. 4776 47772008-05-15 Werner Lemberg <wl@gnu.org> 4778 4779 * builds/toplevel.mk (CONFIG_GUESS, CONFIG_SUB): Updated. 4780 47812008-05-15 Werner Lemberg <wl@gnu.org> 4782 4783 * src/type1/t1load.c (parse_subrs): Accept fonts with a subrs array 4784 which contains a single but empty entry. This is technically 4785 invalid (since it must end with `return'), but... 4786 4787 Reported by Martin McBride. 4788 47892008-05-14 Werner Lemberg <wl@gnu.org> 4790 4791 Finish fix of scaling bug of CID-keyed CFF subfonts. 4792 4793 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c 4794 (FT_Matrix_Multiply_Scaled, FT_Vector_Transform_Scaled): New 4795 functions. 4796 4797 * src/cff/cffobjs.h (CFF_Internal): New struct. It is used to 4798 provide global hinting data for both the top-font and all subfonts 4799 (with proper scaling). 4800 4801 * src/cff/cffobjs.c (cff_make_private_dict): New function, using 4802 code from `cff_size_init'. 4803 (cff_size_init, cff_size_done, cff_size_select, cff_size_request): 4804 Use CFF_Internal and handle subfonts. 4805 (cff_face_init): Handle top-dict and subfont matrices correctly; 4806 apply some heuristic in case of unlikely matrix concatenation 4807 results. This has been discussed with people from Adobe (thanks 4808 goes mainly to David Lemon) who confirm that the CFF specs are fuzzy 4809 and not correct. 4810 4811 * src/cff/cffgload.h (cff_decoder_prepare): Add `size' argument. 4812 4813 * src/cff/cffgload.c (cff_builder_init): Updated. 4814 (cff_decoder_prepare): Handle hints globals for subfonts. 4815 Update all callers. 4816 (cff_slot_load): Handling scaling of subfonts properly. 4817 4818 * src/cff/cffparse.c (cff_parse_fixed_dynamic): New function. 4819 (cff_parse_font_matrix): Use it. 4820 4821 * src/cff/cfftypes.h (CFF_FontDictRec): Make `units_per_em' 4822 FT_ULong. 4823 4824 * docs/CHANGES: Document it. 4825 48262008-05-13 Werner Lemberg <wl@gnu.org> 4827 4828 * src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init): 4829 Handle case `face_index < 0'. 4830 * docs/CHANGES: Document it. 4831 48322008-05-04 Werner Lemberg <wl@gnu.org> 4833 4834 First steps to fix the scaling bug of CID-keyed CFF subfonts, 4835 reported by Ding Li on 2008/03/28 on freetype-devel. 4836 4837 * src/base/cff/cffparse.c (power_tens): New array. 4838 (cff_parse_real): Rewritten to introduce a fourth parameter which 4839 returns the `scaling' of the real number so that we have no 4840 precision loss. This is not used yet. 4841 Update all callers. 4842 (cff_parse_fixed_thousand): Replace with... 4843 (cff_parse_fixed_scaled): This function. Update all callers. 4844 48452008-05-03 Werner Lemberg <wl@gnu.org> 4846 4847 * src/base/ftobjs.c (FT_Load_Glyph): Call the auto-hinter without 4848 transformation since it recursively calls FT_Load_Glyph. This fixes 4849 Savannah bug #23143. 4850 48512008-04-26 Werner Lemberg <wl@gnu.org> 4852 4853 * include/freetype/internal/psaux.h (T1_BuilderRec): Mark `scale_x' 4854 and `scale_y' as obsolete since they aren't used. 4855 * src/psaux/psobjs.c (t1_builder_init): Updated. 4856 4857 * src/cff/cffgload.h (CFF_Builder): Mark `scale_x' and `scale_y' as 4858 obsolete since they aren't used. 4859 * src/cff/cffgload.c (cff_builder_init): Updated. 4860 48612008-04-14 Werner Lemberg <wl@gnu.org> 4862 4863 * src/pcf/pcfdrivr.c (PCF_Face_Init): Protect call to 4864 `FT_Stream_OpenLZW' with `FT_CONFIG_OPTION_USE_LZW'. From Savannah 4865 bug #22909. 4866 48672008-04-13 Werner Lemberg <wl@gnu.org> 4868 4869 * src/psaux/psconv.c (PS_Conv_ToFixed): Increase precision if 4870 integer part is zero. 4871 48722008-04-01 Werner Lemberg <wl@gnu.org> 4873 4874 Fix compilation with g++ 4.1 (with both `single' and `multi' 4875 targets). 4876 4877 * src/base/ftobjs.c (FT_Open_Face): Don't define a variable in block 4878 which is crossed by a `goto'. 4879 4880 * src/otvalid/otvalid.h (otv_MATH_validate): Add prototype. 4881 48822008-03-31 Werner Lemberg <wl@gnu.org> 4883 4884 Fix support for subsetted CID-keyed CFFs. 4885 4886 * include/freetype/freetype.h (FT_FACE_FLAG_CID_KEYED, 4887 FT_IS_CID_KEYED): New macros. 4888 4889 * src/cff/cffobjs.c (cff_face_init): Set number of glyphs to the 4890 maximum CID value in CID-keyed CFFs. 4891 Handle FT_FACE_FLAG_CID_KEYED flag. 4892 4893 * docs/CHANGES: Document it. 4894 4895 4896 Fix CFF font matrix calculation and improve precision. 4897 4898 * src/cff/cffparse.c (cff_parse_real): Increase precision if integer 4899 part is zero. 4900 (cff_parse_font_matrix): Simplify computation of `units_per_em'; 4901 this prevents overflow also. 4902 4903 4904 Support FT_Get_CID_Registry_Ordering_Supplement for PS CID fonts. 4905 4906 * src/cid/cidriver.c: Include FT_SERVICE_CID_H. 4907 (cid_get_ros): New function. 4908 (cid_service_cid_info): New service structure. 4909 (cid_services): Register it. 4910 49112008-03-23 Werner Lemberg <wl@gnu.org> 4912 4913 Adjustments for Visual C++ 8.0, as reported by Rainer Deyke. 4914 4915 * builds/compiler/visualc.mk (CFLAGS): Remove /W5. 4916 (ANSIFLAGS): Add _CRT_SECURE_NO_DEPRECATE. 4917 49182008-03-21 Laurence Darby <ldarby> 4919 4920 * src/type1/t1objs.c (T1_Face_Init): Use `/Weight'. Patch from 4921 Savannah bug #22675. 4922 49232008-03-13 Derek Clegg <dclegg@apple.com> 4924 4925 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Fix named style loop. 4926 Patch from Savannah bug #22541. 4927 49282008-03-03 Masatoshi Kimura <VYV03354@nifty.ne.jp> 4929 4930 * src/sfnt/ttcmap.c (tt_cmap14_char_map_nondef_binary, 4931 tt_cmap14_find_variant): Return correct value. 4932 (tt_cmap14_variant_chars): Fix check for `di'. 4933 49342008-02-29 Werner Lemberg <wl@gnu.org> 4935 4936 * docs/CHANGES: Updated. 4937 49382008-02-29 Wolf 4939 4940 Add build support for symbian platform. From Savannah bug #22440. 4941 4942 * builds/symbian/*: New files. 4943 49442008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4945 4946 * src/base/ftmac.c (parse_fond): Fix a bug of PostScript font name 4947 synthesis. For any face of a specified FOND, always the name for 4948 the first face was used. Except of a FOND that refers multiple 4949 Type1 font files, wrong synthesized font names are not used at all, 4950 so this is an invisible bug. A few limit checks are added too. 4951 4952 * builds/mac/ftmac.c: Ditto. 4953 49542008-02-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4955 4956 * builds/unix/configure.raw: Split compiler option to link Carbon 4957 frameworks to one option for CoreServices framework and another 4958 option for ApplicationServices framework. The split options can be 4959 managed by GNU libtool to avoid unrequired duplication when FreeType 4960 is linked with other applications. Suggested by Daniel Macks, 4961 Savannah bug #22366. 4962 49632008-02-18 Victor Stinner <victor.stinner@haypocalc.com> 4964 4965 * src/truetype/ttinterp.c (Ins_IUP): Check number of points. Fix 4966 from Savannah bug #22356. 4967 49682008-02-17 Jonathan Blow <jon@number-none.com> 4969 4970 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): 4971 Check for valid callback pointers. 4972 49732008-02-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4974 4975 * src/base/ftmac.c (FT_New_Face_From_SFNT): Check the sfnt resource 4976 handle by its value instead of ResError(), fix provided by Deron 4977 Kazmaier. According to the Resource Manager Reference, 4978 GetResource(), Get1Resource(), GetNamedResource(), 4979 Get1NamedResource() and RGetResource() set noErr but return NULL 4980 handle when they can not find the requested resource. These 4981 functions never return undefined values, so it is sufficient to 4982 check if the handle is not NULL. 4983 4984 * builds/mac/ftmac.c (FT_New_Face_From_SFNT): Ditto. 4985 49862008-02-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4987 4988 * src/base/ftbase.c: <ftmac.c> is replaced by "ftmac.c" as other 4989 inclusion styles. Now it always includes src/base/ftmac.c; 4990 builds/mac/ftmac.c is never included in any configuration. 4991 4992 * builds/unix/configure.raw: Print warning if configure is executed 4993 with options to specify Carbon functionalities explicitly. 4994 4995 * docs/INSTALL.MAC: Note that legacy builds/mac/ftmac.c is not 4996 included automatically and manual replacement is required. 4997 49982008-02-11 Werner Lemberg <wl@gnu.org> 4999 5000 * builds/modules.mk (CLOSE_MODULE, REMOVE_MODULE), builds/detect.mk 5001 (dos_setup), builds/freetype.mk (clean_project_dos, 5002 distclean_project_dos): Don't use \ but $(SEP). Reported by Duncan 5003 Murdoch. 5004 50052008-01-18 Sylvain Pasche <sylvain.pasche@gmail.com> 5006 5007 * src/base/ftlcdfil.c (_ft_lcd_filter_legacy): Updated comment to 5008 mention intra-pixel algorithm. 5009 5010 * include/freetype/freetype.h (FT_Render_Mode): Mention that 5011 FT_Library_SetLcdFilter can be used to reduce fringes. 5012 50132008-01-16 Werner Lemberg <wl@gnu.org> 5014 5015 * src/raster/ftraster.c (ft_black_render): Check `outline' before 5016 using it. Reported by Allan Yang. 5017 50182008-01-12 Werner Lemberg <wl@gnu.org> 5019 5020 * src/raster/ftraster.c (FT_CONFIG_OPTION_5_GRAY_LEVELS): Remove. 5021 50222008-01-12 Allan Yang, Jian Hua - SH <Allan.Yang@fmc.fujitsu.com> 5023 5024 * src/raster/ftraster.c (ft_black_init) 5025 [FT_RASTER_OPTION_ANTI_ALIASING]: Fix compilation. 5026 50272008-01-10 Werner Lemberg <wl@gnu.org> 5028 5029 * src/truetype/ttgload.c (load_truetype_glyph): Handle the case 5030 where the number of contours in a simple glyph is zero (and which 5031 does contain an entry in the `glyf' table). This fixes Savannah bug 5032 #21990. 5033 50342008-01-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5035 5036 Formatting suggested by Sean McBride. 5037 5038 * builds/mac/ftmac.c: Formatting (tab expanded). 5039 * src/autofit/afindic.c: Ditto. 5040 * src/base/ftcid.c: Ditto. 5041 * src/base/ftmac.c: Ditto. 5042 50432007-12-30 Werner Lemberg <wl@gnu.org> 5044 5045 * src/smooth/ftgrays.c (gray_raster_render): Check `outline' 5046 correctly. 5047 50482007-12-21 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5049 5050 Improvement of POSIX resource-fork accessor to load unsorted 5051 references in a resource. In HelveLTMM (resource-fork PostScript 5052 Type1 font bundled with Mac OS X since 10.3.x), the appearance order 5053 of PFB chunks is not sorted; sorting the chunks by reference IDs is 5054 required. 5055 5056 * include/freetype/internal/ftrfork.h (FT_RFork_Ref): New structure 5057 type to store a pair of reference ID and offset to the chunk. 5058 5059 * src/base/ftrfork.c (ft_raccess_sort_ref_by_id): New function to 5060 sort FT_RFork_Ref by their reference IDs. 5061 5062 (FT_Raccess_Get_DataOffsets): Returns an array of offsets that is 5063 sorted by reference ID. 5064 50652007-12-14 Werner Lemberg <wl@gnu.org> 5066 5067 * src/cff/cffparse.c (cff_parse_real): Don't apply `power_ten' 5068 division too early; otherwise the most significant digit(s) of the 5069 final result are lost as the value is truncated to an integer. This 5070 fixes Savannah bug #21794 (where the patch has been posted too). 5071 50722007-12-06 Fix <4d876b82@gmail.com> 5073 5074 Pass options from one configure script to another as-is (not 5075 expanded). This is needed for options like 5076 --includedir='${prefix}/include'. 5077 5078 * builds/unix/detect.mk, configure: Prevent argument expansion in 5079 call to the (real) `configure' script. 5080 50812007-12-06 Werner Lemberg <wl@gnu.org> 5082 5083 * src/truetype/ttgload.c (load_truetype_glyph): Fix compilation if 5084 TT_USE_BYTECODE_INTERPRETER isn't defined. 5085 50862007-12-06 Werner Lemberg <wl@gnu.org> 5087 5088 There exist CFFs which contain opcodes for the Type 1 operators 5089 `hsbw' and `closepath' which are both invalid in Type 2 charstrings. 5090 However, it doesn't harm to support them. 5091 5092 * src/cff/cffgload.c (CFF_Operator): Add `cff_op_hsbw' and 5093 `cff_op_closepath.' 5094 (cff_argument_counts): Ditto. 5095 5096 (cff_decoder_parse_charstrings): Handle Type 1 opcodes 9 (closepath) 5097 and 13 (hsbw) which are invalid in Type 2 charstrings. 5098 50992007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5100 5101 * src/base/ftrfork.c (raccess_guess_darwin_newvfs): New function to 5102 support new pathname syntax `..namedfork/rsrc' to access a resource 5103 fork on Mac OS X. The legacy syntax `/rsrc' does not work on 5104 case-sensitive HFS+. 5105 (raccess_guess_darwin_hfsplus): Fix a bug in the calculation of 5106 buffer size to store a pathname. 5107 * include/freetype/internal/ftrfork.h: Increment the number of 5108 resource fork guessing rule. 5109 51102007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5111 5112 * builds/unix/configure.raw: Improve the compile tests to search 5113 Carbon functions. 5114 * builds/mac/ftmac.c: Import fixes for Carbon incompatibilities 5115 proposed by Sean McBride from src/base/ftmac.c (see 2007-11-16). 5116 51172007-12-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5118 5119 The documents and comments for Mac OS X are improved by Sean 5120 McBride. 5121 5122 * src/base/ftmac.c: Fix a comment. 5123 * include/freetype/ftmac.h: Ditto. 5124 * docs/INSTALL.MAC: Improve English and add comment on lowest 5125 system version specified by MACOSX_DEPLOYMENT_TARGET. 5126 51272007-12-04 Werner Lemberg <wl@gnu.org> 5128 5129 * src/cff/cffload.c (cff_subfont_load): Don't use logical OR to 5130 concatenate error codes. 5131 * src/sfnt/ttsbit.c (Load_SBit_Range): Ditto. 5132 51332007-12-04 Graham Asher <graham.asher@btinternet.com> 5134 5135 * src/truetype/ttobjs.c (tt_face_init): Don't use logical OR to 5136 concatenate error codes. 5137 51382007-12-04 Sean McBride <sean@rogue-research.com> 5139 5140 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Remove compiler 5141 warning. 5142 51432007-11-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5144 5145 Fix MacOS legacy font support by Masatake Yamato on Mac OS X. It is 5146 not working since 2.3.5. In FT_Open_New(), if FT_New_Stream() 5147 cannot mmap() the specified file and cannot seek to head of the 5148 specified file, it returns NULL stream and FT_Open_New() returns the 5149 error immediately. On MacOS, most legacy MacOS fonts fall into such 5150 a scenario because their data forks are zero-sized and cannot be 5151 sought. To proceed to guessing of resource fork fonts, the 5152 functions for legacy MacOS font must properly handle the NULL stream 5153 returned by FT_New_Stream(). 5154 5155 * src/base/ftobjs.c (IsMacBinary): Return error 5156 FT_Err_Invalid_Stream_Operation immediately when NULL stream is 5157 passed. 5158 (FT_Open_Face): Even when FT_New_Stream() returns an error, proceed 5159 to fallback. Originally, legacy MacOS font is tested in the cases 5160 of FT_Err_Invalid_Stream_Operation (occurs when data fork is empty) 5161 or FT_Err_Unknown_File_Format (occurs when AppleSingle header or 5162 .dfont header is combined). Now the case of 5163 FT_Err_Cannot_Open_Stream is included. 5164 5165 * src/base/ftrfork.c (FT_Raccess_Guess): When passed stream is NULL, 5166 skip FT_Stream_Seek(), which seeks to the head of stream, and 5167 proceed to unit testing of raccess_guess_XXX(). FT_Stream_Seek() 5168 for a NULL stream causes a Bus error on Mac OS X. 5169 (raccess_guess_apple_double): Return FT_Err_Cannot_Open_Stream 5170 immediately if passed stream is NULL. 5171 (raccess_guess_apple_single): Ditto. 5172 51732007-11-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5174 5175 Fix for Carbon incompatibilities since Mac OS X 10.5, 5176 proposed by Sean McBride. 5177 5178 * doc/INSTALL.MAC: Comment on MACOSX_DEPLOYMENT_TARGET. 5179 5180 * include/freetype/ftmac.h: Deprecate FT_New_Face_From_FOND and 5181 FT_GetFilePath_From_Mac_ATS_Name. Since Mac OS X 10.5, calling 5182 Carbon functions from a forked process is classified as unsafe 5183 by Apple. All Carbon-dependent functions should be deprecated. 5184 5185 * src/base/ftmac.c: Use essential header files 5186 <CoreServices/CoreServices.h> and 5187 <ApplicationServices/ApplicationServices.h> instead of 5188 all-in-one header file <Carbon/Carbon.h>. 5189 5190 Include <sys/syslimits.h> and replace HFS_MAXPATHLEN by Apple 5191 genuine macro PATH_MAX. 5192 5193 Add fallback macro for kATSOptionFlagsUnRestrictedScope which 5194 is not found in Mac OS X 10.0. 5195 5196 Multi-character constants ('POST', 'sfnt' etc) are replaced by 5197 64bit constants calculated by FT_MAKE_TAG() macro. 5198 5199 For the index in the segment of resource fork, new portable 5200 type ResourceIndex is introduced for better compatibility. 5201 This type is since Mac OS X 10.5, so it is defined as short 5202 when built on older platforms. 5203 5204 (FT_ATSFontGetFileReference): If build target is only the systems 5205 10.5 and newer, it calls Apple genuine ATSFontGetFileReference(). 5206 5207 (FT_GetFile_From_Mac_ATS_Name): Return an error if system is 10.5 5208 and newer or 64bit platform, because legacy type FSSpec type is 5209 removed completely. 5210 5211 (FT_New_Face_From_FSSpec): Ditto. 5212 52132007-11-01 Werner Lemberg <wl@gnu.org> 5214 5215 * src/sfnt/sfobjs.c (sfnt_done_face): Check `sfnt' everywhere. This 5216 fixes Savannah bug #21485. 5217 52182007-10-29 Daniel Svoboda <dasvo@planeta@cz> 5219 5220 * src/winfonts/winfnt.c (FNT_Face_Init): Check first that the driver 5221 can handle the font at all, then check `face_index'. Otherwise, the 5222 driver might return the wrong error code. This fixes Savannah bug 5223 #21468. 5224 52252007-10-21 Werner Lemberg <wl@gnu.org> 5226 5227 * src/sfnt/sfobjs.c (sfnt_load_face): Support bit 9 and prepare 5228 support for bit 8 of the `fsSelection' field in the `OS/2' table. 5229 MS is already using this; hopefully, this becomes part of OpenType 5230 1.5. 5231 Prepare also support for `name' IDs 21 (WWS_FAMILY) and 22 5232 (WWS_SUBFAMILY). 5233 52342007-10-20 Werner Lemberg <wl@gnu.org> 5235 5236 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo. 5237 Add `td.left' element to CSS. 5238 (toc_section_enter): Use it. 5239 52402007-10-18 David Turner <david@freetype.org> 5241 5242 * include/freetype/freetype.h, src/base/ftobjs.c: Rename API 5243 functions related to cmap type 14 support to the 5244 `FT_Object_ActionName' scheme: 5245 5246 FT_Get_Char_Variant_Index -> FT_Face_GetCharVariantIndex 5247 FT_Get_Char_Variant_IsDefault -> FT_Face_GetCharVariantIsDefault 5248 FT_Get_Variant_Selectors -> FT_Face_GetVariantSelectors 5249 FT_Get_Variants_Of_Char -> FT_Face_GetVariantsOfChar 5250 FT_Get_Chars_Of_Variant -> FT_Face_GetCharsOfVariant 5251 5252 Update documentation accordingly. 5253 5254 * src/sfnt/ttcmap.c: Stronger cmap 14 validation. 5255 Make the code a little more consistent with FreeType coding 5256 conventions and modify the cmap14 functions that returned a newly 5257 allocated array to use a persistent vector from the TT_CMap14 object 5258 instead. 5259 5260 (TT_CMap14Rec): Provide array and auxiliary data for result. 5261 (tt_cmap14_done, tt_cmap14_ensure): New functions. 5262 5263 (tt_cmap14_init, tt_cmap14_validate, tt_cmap14_char_map_def_binary, 5264 tt_cmap14_char_map_nondef_binary, tt_cmap14_find_variant, 5265 tt_cmap14_char_var_index, tt_cmap14_variants, 5266 tt_cmap14_char_variants, tt_cmap14_def_char_count, 5267 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, 5268 tt_cmap14_variant_chars, tt_cmap14_class_rec): Updated and improved. 5269 52702007-10-15 George Williams <gww@silcom.com> 5271 5272 Add support for cmap type 14. 5273 5274 * devel/ftoption.h, include/freetype/config/ftoption.h 5275 (TT_CONFIG_CMAP_FORMAT_14): New macro. 5276 5277 * include/freetype/internal/ftobjs.h (FT_CMap_CharVarIndexFunc, 5278 FT_CMap_CharVarIsDefaultFunc, FT_CMap_VariantListFunc, 5279 FT_CMap_CharVariantListFunc, FT_CMap_VariantCharListFunc): New 5280 support function prototypes. 5281 (FT_CMap_ClassRec): Add them. 5282 Update all users. 5283 5284 * include/freetype/ttnameid.h (TT_APPLE_ID_VARIANT_SELECTOR): New 5285 macro. 5286 5287 * include/freetype/freetype.h (FT_Get_Char_Variant_Index, 5288 FT_Get_Char_Variant_IsDefault, FT_Get_Variant_Selectors, 5289 FT_Get_Variants_Of_Char, FT_Get_Chars_Of_Variant): New API 5290 functions. 5291 5292 * src/base/ftobjs.c (find_variant_selector_charmap): New auxiliary 5293 function. 5294 (FT_Set_Charmap): Disallow cmaps of type 14. 5295 (FT_Get_Char_Variant_Index, FT_Get_Char_Variant_IsDefault, 5296 FT_Get_Variant_Selectors, FT_Get_Variants_Of_Char, 5297 FT_Get_Chars_Of_Variant): New API functions. 5298 5299 * src/sfnt/ttcmap.c (TT_PEEK_UINT24, TT_NEXT_UINT24): New macros. 5300 5301 (TT_CMap14Rec, tt_cmap14_init, tt_cmap14_validate, 5302 tt_cmap14_char_index, tt_cmap14_char_next, tt_cmap14_get_info, 5303 tt_cmap14_char_map_def_binary, tt_cmap14_char_map_nondef_binary, 5304 tt_cmap14_find_variant, tt_cmap14_char_var_index, 5305 tt_cmap14_char_var_isdefault, tt_cmap14_variants, 5306 tt_cmap14_char_variants, tt_cmap14_def_char_count, 5307 tt_cmap14_get_def_chars, tt_cmap14_get_nondef_chars, 5308 tt_cmap14_variant_chars, tt_cmap14_class_rec): New functions and 5309 structures for cmap 14 support. 5310 (tt_cmap_classes): Register tt_cmap14_class_rec. 5311 (tt_face_build_cmaps): One more error message. 5312 5313 * docs/CHANGES: Mention cmap 14 support. 5314 53152007-10-01 Werner Lemberg <wl@gnu.org> 5316 5317 * src/base/ftobjs.c (find_unicode_charmap): If search for a UCS-4 5318 charmap fails, do the loop again while searching a UCS-2 charmap. 5319 This favours MS charmaps over Apple ones. 5320 53212007-08-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5322 5323 * src/base/ftmac.c: Introduction of abstract `short' data types, 5324 ResFileRefNum and ResID. These types were introduced for Copland, 5325 then backported to MPW. The variables exchanged with FileManager 5326 QuickDraw frameworks are redefined by these data types. Patch was 5327 proposed by Sean McBride. 5328 * builds/mac/ftmac.c: Ditto. 5329 53302007-08-18 Werner Lemberg <wl@gnu.org> 5331 5332 * src/otvalid/otvcommn.c (otv_x_y_ux_sy): Skip context glyphs. Found 5333 by Imran Yousaf. Fixes Savannah bug #20773. 5334 5335 (otv_Lookup_validate): Correct handling of LookupType. Found by 5336 Imran Yousaf. Fixes Savannah bug #20782. 5337 53382007-08-17 George Williams <gww@silcom.com> 5339 5340 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): Fix handling of 5341 SingleSubstFormat1. 5342 53432007-08-11 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5344 5345 * builds/unix/configure.raw: Fix a bug which sets CC_BUILD by 5346 ${build-gcc} (unchecked) instead of by ${build}-gcc (checked). 5347 Found by Ryan Hill. 5348 53492007-08-11 George Williams <gww@silcom.com> 5350 5351 * src/otvalid/otvcommn.c, src/otvalid/otvcommn.h 5352 (otv_Coverage_validate): Add fourth argument to pass an expected 5353 count value. Update all users. 5354 Check glyph IDs. 5355 (otv_ClassDef_validate): Check `StartGlyph'. 5356 5357 * src/otvalid/otvgsub.c (otv_SingleSubst_validate): More glyph ID 5358 checks. 5359 5360 * src/otvalid/otvmath.c (otv_MathConstants_validate): There are only 5361 56 constants. 5362 (otv_GlyphAssembly_validate, otv_MathGlyphConstruction_validate): 5363 Check glyph IDs. 5364 53652007-08-08 Werner Lemberg <wl@gnu.org> 5366 5367 * src/otvalid/otvbase.c, src/otvalid/otvcommn.c, 5368 src/otvalid/otvgdef.c, src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, 5369 src/otvalid/otvjstf.c: s/FT_INVALID_DATA/FT_INVALID_FORMAT/ where 5370 appropriate. Reported by George. 5371 5372 * include/freetype/internal/fttrace.h: Define `trace_otvmath'. 5373 5374 * src/otvalid/rules.mk (OTV_DRV_SRC): Add otvmath.c. 5375 5376 * docs/CHANGES: Updated. 5377 53782007-08-08 George Williams <gww@silcom.com> 5379 5380 Add `MATH' validating support to otvalid module. 5381 5382 * include/freetype/tttags.h (TTAG_MATH): New macro. 5383 * include/freetype/ftotval.h (FT_VALIDATE_MATH): New macro. 5384 (FT_VALIDATE_OT): Updated. 5385 5386 * src/otvalid/otvmath.c: New file. 5387 5388 * src/otvalid/otvalid.c: Include otvmath.c. 5389 * src/otvalid/otvmod.c (otv_validate): Handle `MATH' table. 5390 53912007-08-04 Werner Lemberg <wl@gnu.org> 5392 5393 * builds/unix/configure.raw: Add call to AC_LIBTOOL_WIN32_DLL. 5394 Fixes Savannah bug #20686. 5395 53962007-08-03 Werner Lemberg <wl@gnu.org> 5397 5398 * src/psnames/psmodule.c: Fix usage of 5399 FT_CONFIG_OPTION_POSTSCRIPT_NAMES macro. Reported by Graham Asher. 5400 54012007-07-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5402 5403 * src/base/ftmac.c (open_face_from_buffer): The argument 5404 `driver_name' is typed as `const char*' to match with the 5405 callers in FT_New_Face_From_LWFN and FT_New_Face_From_SFNT. 5406 This is same with open_face_from_buffer in src/base/ftobjs.c. 5407 Found and fixed by Sean McBride. 5408 54092007-07-28 Werner Lemberg <wl@gnu.org> 5410 5411 * src/raster/ftraster.c (count_table): Make it conditional. 5412 * src/base/ftobjs.c (FT_New_Library): Check FT_RENDER_POOL_SIZE with 5413 a preprocessor statement. 5414 54152007-07-27 Werner Lemberg <wl@gnu.org> 5416 5417 * src/base/ftoutln.c (FT_Outline_Translate): Check `outline' before 5418 first usage. From Savannah patch #6115. 5419 54202007-07-16 Werner Lemberg <wl@gnu.org> 5421 5422 * docs/CHANGES: Updated. 5423 54242007-07-16 Derek Clegg <dclegg@apple.com> 5425 5426 Add new service for getting the ROS from a CID font. 5427 5428 * include/freetype/config/ftheader.h (FT_CID_H): New macro. 5429 * include/freetype/ftcid.h: New file. 5430 5431 * include/freetype/internal/ftserv.h (FT_SERVICE_CID_H): New macro. 5432 * include/freetype/internal/services/svcid.h: New file. 5433 5434 * src/base/ftcid.c: New file. 5435 5436 * src/cff/cffdrivr.c: Include FT_SERVICE_CID_H. 5437 (cff_get_ros): New function. 5438 (cff_service_cid_info): New service structure. 5439 (cff_services): Register it. 5440 5441 * src/cff/cffload.c (cff_font_done): Free registry and ordering. 5442 5443 * src/cff/cfftypes.h (CFF_FontRec): Add `registry' and `ordering'. 5444 5445 * modules.cfg (BASE_EXTENSIONS): Add ftcid.c. 5446 54472007-07-11 Derek Clegg <dclegg@apple.com> 5448 5449 Add support for postscript name service to CFF driver. 5450 5451 * src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_NAME_H. 5452 (cff_get_ps_name): New function. 5453 (cff_service_ps_name): New service structure. 5454 (cff_services): Register it. 5455 54562007-07-07 Werner Lemberg <wl@gnu.org> 5457 5458 * src/base/ftglyph.c (FT_Glyph_Copy): Fix initialization of 5459 `target'. Reported by Sean McBride. 5460 54612007-07-06 Werner Lemberg <wl@gnu.org> 5462 5463 * src/pfr/pfrcmap.c: Include pfrerror.h. 5464 5465 * src/autofit/afindic.c: Add some external declarations to pacify 5466 `make multi' compilation. 5467 5468 * src/cid/cidgload.c (cid_load_glyph): Pacify compiler. 5469 5470 * src/cff/cffdrivr.c (cff_ps_get_font_info), src/cff/cffobjs.c 5471 (cff_strcpy), include/freetype/internal/ftmemory.h (FT_MEM_STRDUP), 5472 src/autofit/aflatin.c (af_latin_hints_compute_edges), 5473 src/autofit/afcjk.c (af_cjk_hints_compute_edges), src/sfnt/ttmtx.c 5474 (tt_face_get_metrics), src/base/ftobjs.c (open_face) 5475 [FT_CONFIG_OPTION_INCREMENTAL]: Fix compilation with C++ compiler. 5476 5477 * docs/release: Mention test compilation targets. 5478 54792007-07-04 Werner Lemberg <wl@gnu.org> 5480 5481 * docs/PROBLEMS: Mention that some PS based fonts can't be 5482 handled correctly by FreeType. 5483 5484 * src/truetype/ttgload.c (load_truetype_glyph): Always allow a 5485 recursion depth of 1. This was the maximum value in TrueType 1.0, 5486 and some older fonts don't set this field correctly. 5487 5488 * src/gxvalid/gxvmort1.c 5489 (gxv_mort_subtable_type1_substTable_validate): Fix tracing message. 5490 54912007-07-03 Werner Lemberg <wl@gnu.org> 5492 5493 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize 5494 `round' to pacify compiler. 5495 54962007-07-02 Werner Lemberg <wl@gnu.org> 5497 5498 5499 * Version 2.3.5 released. 5500 ========================= 5501 5502 5503 Tag sources with `VER-2-3-5'. 5504 5505 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump 5506 version number to 2.3.5. 5507 5508 * README, Jamfile (RefDoc), builds/win32/visualc/index.html, 5509 builds/win32/visualc/freetype.dsp, 5510 builds/win32/visualc/freetype.vcproj, 5511 builds/win32/visualce/index.html, 5512 builds/win32/visualce/freetype.dsp, 5513 builds/win32/visualce/freetype.vcproj: s/2.3.4/2.3.5/, s/234/235/. 5514 5515 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. 5516 5517 * builds/unix/configure.raw (version_info): Set to 9:16:3. 5518 55192007-07-01 David Turner <david@freetype.org> 5520 5521 * include/freetype/freetype.h, src/base/ftpatent.c 5522 (FT_Face_SetUnpatentedHinting): New function to dynamically change 5523 the setting after a face is created. 5524 5525 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Fix a small bug 5526 that created distortions in the bytecode interpreter results. 5527 55282007-06-30 David Turner <david@freetype.org> 5529 5530 * src/truetype/ttinterp.c (Ins_IUP): Add missing variable 5531 initialization. 5532 5533 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Get rid of an 5534 infinite loop in the case of degenerate fonts. 5535 55362007-06-26 Rahul Bhalerao <b.rahul.pm@gmail.com> 5537 5538 Add autofit module for Indic scripts. This currently just reuses 5539 the CJK-specific functions. 5540 5541 * include/freetype/config/ftoption.h (AF_CONFIG_OPTION_INDIC): New 5542 macro. 5543 * devel/ftoption.h: Synchronize with 5544 include/freetype/config/ftoption.h. 5545 5546 * src/autofit/afindic.c, src/autofit/afindic.h: New files. 5547 5548 * src/autofit/afglobal.c, src/autofit/aftypes.h, 5549 src/autofit/autofit.c: Updated. 5550 5551 * src/autofit/Jamfile (_sources), * src/autofit/rules.mk 5552 (AUTOF_DRV_SRC): Updated. 5553 55542007-06-23 David Turner <david@freetype.org> 5555 5556 * src/truetype/ttgload.c (TT_Load_Simple): Fix change from 5557 2007-06-16 that prevented the TrueType module from loading most 5558 glyphs. 5559 55602007-06-20 Werner Lemberg <wl@gnu.org> 5561 5562 * src/cff/cffgload.c (cff_slot_load): Fix logic of 2007-05-28 5563 change. 5564 55652007-06-19 Werner Lemberg <wl@gnu.org> 5566 5567 * src/type1/t1load.c (parse_encoding): Handle one more error. 5568 55692007-06-19 Dmitry Timoshkov <dmitry@codeweavers.com> 5570 5571 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Return error 5572 FNT_Err_Invalid_File_Format if file format was recognized but 5573 the file doesn't contain any FNT(NE) or RT_FONT(PE) resources. 5574 Add verbose debug logs to make it easier to debug failing load 5575 attempts. 5576 (FNT_Face_Init): A single FNT font can't contain more than 1 face, 5577 so return an error if requested face index is > 0. 5578 Do not do further attempt to load fonts if a previous attempt has 5579 failed but returned error FNT_Err_Invalid_File_Format, i.e., the 5580 file format has been recognized but no fonts found in the file. 5581 55822007-07-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5583 5584 * src/base/ftmac.c: Apply patches proposed by Sean McBride. 5585 (FT_GetFile_From_Mac_Name): Insert FT_UNUSED macros to fix 5586 the compiler warnings against unused arguments. 5587 (FT_ATSFontGetFileReference): Ditto. 5588 (FT_GetFile_From_Mac_ATS_Name): Ditto. 5589 (FT_New_Face_From_FSSpec): Ditto. 5590 (lookup_lwfn_by_fond): Fix wrong comment. 5591 Replace `const StringPtr' by more appropriate type 5592 `ConstStr255Param'. 5593 FSRefMakePathPath always returns UTF8 POSIX pathname in 5594 Mach-O, thus HFS pathname support is dropped. 5595 (count_faces): Remove HLock and HUnlock which is not 5596 required on Mac OS X anymore. 5597 (FT_New_Face_From_SFNT): Ditto. 5598 (FT_New_Face_From_FOND): Ditto. 5599 * builds/mac/ftmac.c: Synchronize to src/base/ftmac.c, 5600 except of HFS pathname support and HLock/HUnlock. 5601 They are required on classic CFM environment. 5602 56032007-06-18 Werner Lemberg <wl@gnu.org> 5604 5605 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Remove incorrect 5606 assertion. 5607 (ps_parser_to_bytes): Fix error message. 5608 5609 * src/type42/t42objs.c (T42_Open_Face): Handle one more error. 5610 * src/type42/t42parse.c (t42_parse_sfnts): s/alloc/allocated/. 5611 Don't allow mixed binary and hex strings. 5612 Handle string_size == 0 and string_buf == 0. 5613 (t42_parse_encoding): Handle one more error. 5614 56152007-06-18 Werner Lemberg <wl@gnu.org> 5616 5617 * src/psaux/psobjs.c (ps_tofixedarray, ps_tocoordarray): Fix exit 5618 logic. 5619 (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>: Skip delimiters 5620 correctly. 5621 (ps_parser_load_field_table): Use `fields->array_max' instead of 5622 T1_MAX_TABLE_ELEMENTS to limit the number of arguments. 5623 5624 * src/cff/cffgload.c (cff_decoder_prepare): Fix change from 5625 2007-06-06. 5626 56272007-06-17 Werner Lemberg <wl@gnu.org> 5628 5629 * src/tools/ftrandom.c (font_size): New global variable. 5630 (TestFace): Use it. 5631 (main): Handle new option `--size' to set `font_size'. 5632 (Usage): Updated. 5633 5634 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Exit in case of 5635 invalid font. 5636 (FNT_Load_Glyph): Protect against invalid bitmap width. 5637 56382007-06-16 David Turner <david@freetype.org> 5639 5640 * src/smooth/ftgrays.c (gray_find_cell, gray_set_cell, gray_hline): 5641 Prevent integer overflows when rendering very large outlines. 5642 5643 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check the 5644 well-formedness of the contours array when loading a glyph. 5645 5646 * src/truetype/ttinterp.c (TT_Load_Context): Initialize `zp0', `zp1', 5647 and `zp2'. 5648 (Ins_IP): Check argument ranges to reject bogus operations properly. 5649 (IUP_WorkerRec): Add `max_points' member. 5650 (_iup_worker_interpolate): Check argument ranges. 5651 (Ins_IUP): Ignore empty outlines. 5652 56532007-06-16 Dmitry Timoshkov <dmitry@codeweavers.com> 5654 5655 * src/winfonts/winfnt.h: Add necessary structures for PE resource 5656 parsing. 5657 (WinPE32_HeaderRec): New structure. 5658 (WinPE32_SectionRec): New structure. 5659 (WinPE_RsrcDirRec): New structure. 5660 (WinPE_RsrcDirEntryRec): New structure. 5661 (WinPE_RsrcDataEntryRec): New structure. 5662 (FNT_FontRec): Remove unused `size_shift' field. 5663 5664 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Add support for 5665 loading bitmap .fon files in PE format. 5666 56672007-06-15 Dmitry Timoshkov <dmitry@codeweavers.com> 5668 5669 * builds/win32/ftdebug.c: Unify debug level handling with other 5670 platforms. 5671 56722007-06-14 Dmitry Timoshkov <dmitry@codeweavers.com> 5673 5674 * builds/win32/ftdebug.c (FT_Message): Send debug output to the 5675 console as well as to the debugger. 5676 56772007-06-14 Werner Lemberg <wl@gnu.org> 5678 5679 * src/autofit/aflatin.c (af_latin_uniranges): Expand structure to 5680 cover all ranges which could possibly be handled by the aflatin 5681 module (since the default fallback for unknown ranges is now the 5682 afcjk module). It might be necessary to fine-tune this further by 5683 splitting off modules for Greek, Cyrillic, or other blocks. 5684 56852007-06-11 David Turner <david@freetype.org> 5686 5687 * src/autofit/aflatin.c (af_latin_hints_link_segments): Fix 5688 incorrect segment linking computation. This was the root cause of 5689 Savannah bug #19565. 5690 5691 5692 * src/autofit/* [FT_OPTION_AUTOFIT2]: Some very experimental changes 5693 to improve the Latin auto-hinter. Note that the new code is 5694 disabled by default since it is not stabilized yet. 5695 5696 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: New files 5697 (disabled currently). 5698 5699 * src/autofit/afhints.c: Remove dead code. 5700 (af_axis_hints_new_edge): Add argument to handle segment directions. 5701 (af_edge_flags_to_string): New function. 5702 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Handle 5703 option flags. 5704 (af_glyph_hints_reload): Add argument to handle inflections. 5705 Simplify. 5706 (af_direction_compute): Fine tuning. 5707 (af_glyph_hints_align_edge_points): Fix logic. 5708 (af_glyph_hints_align_strong_points): Do linear search for small 5709 edge counts. 5710 (af_glyph_hints_align_weak_points): Skip any touched neighbors. 5711 (af_iup_shift): Handle zero `delta'. 5712 5713 * src/autofit/afhints.h: Updated. 5714 (AF_SORT_SEGMENTS): New macro (disabled). 5715 (AF_AxisHintsRec) [AF_SORT_SEGMENTS]: New member `mid_segments'. 5716 5717 * src/autofit/afglobal.c (af_face_globals_get_metrics): Add 5718 argument to pass option flags for handling scripts. 5719 * src/autofit/afglobal.h: Updated. 5720 5721 * src/autofit/afcjk.c: Updated. 5722 * src/autofit/aflatin.c: Updated. 5723 (af_latin_metrics_scale_dim): Don't reduce scale by 2%. 5724 5725 (af_latin_hints_compute_segments) [AF_HINT_METRICS]: Remove dead code. 5726 (af_latin_hints_compute_edges) [AF_HINT_METRICS]: Remove dead code. 5727 Don't set `edge->dir' 5728 (af_latin_hint_edges): Add more logging. 5729 5730 * src/autofit/afloader.c: Updated. 5731 57322007-06-11 Werner Lemberg <wl@gnu.org> 5733 5734 * docs/CHANGES: Document FT_Face_CheckTrueTypePatents. 5735 57362007-06-10 David Turner <david@freetype.org> 5737 5738 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Slight speed-up to 5739 the TrueType glyph loader. 5740 5741 * include/freetype/config/ftoption.h: Clarify documentation 5742 regarding unpatented hinting. 5743 5744 5745 Add new `FT_Face_CheckTrueTypePatents' API. 5746 5747 * include/freetype/freetype.h (FT_Face_CheckTrueTypePatents): New 5748 declaration. 5749 5750 * include/freetype/internal/services/svttglyf.h, 5751 src/base/ftpatent.c: New files. 5752 5753 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_GLYF_H): 5754 New macro. 5755 5756 * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_GLYF_H and 5757 `ttpload.h'. 5758 (tt_service_truetype_glyf): New service structure. 5759 (tt_services): Register it. 5760 5761 * modules.cfg (BASE_EXTENSIONS), src/base/Jamfile (_sources): Add 5762 `ftpatent.c'. 5763 57642007-06-08 Werner Lemberg <wl@gnu.org> 5765 5766 * src/sfnt/sfobjs.c (sfnt_load_face): Undo change from 2007-04-28. 5767 Fonts without a cmap must be handled correctly by FreeType (anything 5768 else would be a bug). 5769 5770 5771 * src/psaux/t1decode.c (t1_decoder_parse_charstrings) 5772 [FT_DEBUG_LEVEL_TRACE]: Improve tracing message. 5773 57742007-06-07 Werner Lemberg <wl@gnu.org> 5775 5776 * src/sfnt/ttsbit0.c (tt_sbit_decoder_init, 5777 tt_sbit_decoder_load_image): Protect against integer overflows. 5778 5779 5780 * src/pfr/pfrgload.c (pfr_glyph_load_simple): More bounding checks 5781 for `x_control' and `y_control'. 5782 57832007-06-06 Werner Lemberg <wl@gnu.org> 5784 5785 * src/base/ftoutln.c (FT_Outline_Decompose): Check `last'. 5786 5787 5788 * src/pfr/pfrcmap.c (pfr_cmap_init): Convert assertion into normal 5789 FreeType error. 5790 5791 5792 * src/winfonts/winfnt.c (fnt_face_get_dll_font): Do a rough check of 5793 `font_count'. 5794 5795 5796 * src/type1/t1load.c (parse_font_matrix): Check `temp_scale'. 5797 5798 5799 * src/cff/cffgload.c (cff_decoder_prepare): Change return type to 5800 `FT_Error'. 5801 Check `fd_index'. 5802 (cff_slot_load): Updated. 5803 * src/cff/cffgload.h: Updated. 5804 58052007-06-05 Werner Lemberg <wl@gnu.org> 5806 5807 * src/pfr/pfrgload.c (pfr_glyph_done): Comment out unused code. 5808 (pfr_glyph_load_simple): Convert assertion into normal FreeType 5809 error. 5810 Check `idx'. 5811 (pfr_glyph_load_compound, pfr_glyph_curve_to, pfr_glyph_line_to): 5812 Convert assertion into normal FreeType error. 5813 5814 * src/pfr/pfrtypes.h (PFR_GlyphRec): Comment out unused code. 5815 5816 5817 * src/winfonts/winfnt.c (FNT_Face_Init): Check `family_size'. 5818 5819 5820 * src/psaux/psobjs.c (ps_tocoordarray, ps_tofixedarray): Return -1 5821 in case of parsing error. 5822 (ps_parser_load_field): Updated. 5823 5824 * src/type1/t1load.c (parse_font_matrix): Updated. 5825 58262007-06-04 Werner Lemberg <wl@gnu.org> 5827 5828 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'. 5829 5830 * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'. 5831 58322007-06-03 Werner Lemberg <wl@gnu.org> 5833 5834 * src/tools/ftrandom/*: Add the `ftrandom' test program written by 5835 George Williams (with some modifications). 5836 58372007-06-03 Werner Lemberg <wl@gnu.org> 5838 5839 * src/base/ftobjs.c (destroy_charmaps), src/type1/t1objs.c 5840 (T1_Face_Done), src/winfonts/winfnt.c (FNT_Face_Done): Check for 5841 face == NULL. Suggested by Graham Asher. 5842 58432007-06-03 Ismail Dönmez <ismail@pardus.org.tr> 5844 5845 * src/base/ftobjs.c (FT_Request_Metrics): Fix compiler warning. 5846 58472007-06-02 Werner Lemberg <wl@gnu.org> 5848 5849 * include/freetype/fterrdef.h (FT_Err_Corrupted_Font_Header, 5850 FT_Err_Corrupted_Font_Glyphs): New error codes for BDF files. 5851 5852 * src/bdf/bdflib.c (bdf_load_font): Use them. 5853 5854 * src/bdf/bdflib.c (_bdf_parse_start): Check `FONT' better. 5855 58562007-06-01 Werner Lemberg <wl@gnu.org> 5857 5858 * src/base/ftobjs.c (FT_Request_Metrics), src/cache/ftccmap.c 5859 (FTC_CMapCache_Lookup): Remove unused code. 5860 58612007-06-01 Sean McBride <sean@rogue-research.com> 5862 5863 * src/truetype/ttinterp.c (Null_Vector, NULL_Vector): Removed, 5864 unused. 5865 58662007-06-01 Werner Lemberg <wl@gnu.org> 5867 5868 * src/cid/cidparse.c (cid_parser_new): Don't continue second search 5869 pass for `StartData' if an error has occurred. 5870 Exit properly if no `StartData' has been seen at all. 5871 5872 * builds/unix/ftsystem.c (FT_Stream_Open): Don't use ULONG_MAX but 5873 LONG_MAX to avoid compiler warning. Suggested by Sean McBride. 5874 58752007-05-30 Werner Lemberg <wl@gnu.org> 5876 5877 * src/type1/t1load.c (parse_subrs, parse_charstrings): Protect 5878 against too small binary data strings. 5879 5880 * src/bdf/bdflib.c (_bdf_parse_glyphs): Check `STARTCHAR' better. 5881 58822007-05-28 David Turner <david@freetype.org> 5883 5884 * src/cff/cffgload.c (cff_slot_load): Do not apply the identity 5885 transformation. This significantly reduces the loading time of CFF 5886 glyphs. 5887 5888 * docs/CHANGES: Updated. 5889 5890 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT): Change default 5891 hinting script to CJK, since it works well with more scripts than 5892 latin. Thanks to Rahul Bhalerao <b.rahul.pm@gmail.com> for pointing 5893 this out! 5894 58952007-05-25 Werner Lemberg <wl@gnu.org> 5896 5897 * docs/CHANGES: Updated. 5898 58992007-05-24 Werner Lemberg <wl@gnu.org> 5900 5901 * src/truetype/ttobjs.h (tt_size_ready_bytecode): Move declaration 5902 into TT_USE_BYTECODE_INTERPRETER preprocessor block. 5903 59042007-05-24 Graham Asher <graham.asher@btinternet.com> 5905 5906 * src/truetype/ttobjs.c (tt_size_ready_bytecode) 5907 [!TT_USE_BYTECODE_INTERPRETER]: Removed. Unused. 5908 59092007-05-22 David Turner <david@freetype.org> 5910 5911 * src/truetype/ttgload.c (load_truetype_glyph): Fix last change to 5912 avoid crashes in case the bytecode interpreter is not used. 5913 5914 5915 Avoid heap blowup with very large .Z font files. This fixes 5916 Savannah bug #19910. 5917 5918 * src/lzw/ftzopen.h (FT_LzwStateRec): Remove `in_cursor', 5919 `in_limit', `pad', `pad_bits', and `in_buff' members. 5920 Add `buf_tab', `buf_offset', `buf_size', `buf_clear', and 5921 `buf_total' members. 5922 5923 * src/lzw/ftzopen.c (ft_lzwstate_get_code): Rewritten. It now takes 5924 only one argument. 5925 (ft_lzwstate_refill, ft_lzwstate_reset, ft_lzwstate_io): Updated. 5926 59272007-05-20 Ismail Dönmez <ismail@pardus.org.tr> 5928 5929 * src/pshinter/pshrec.c (ps_mask_table_set_bits): Add `const'. 5930 (ps_dimension_set_mask_bits): Remove `const'. 5931 59322007-05-19 Werner Lemberg <wl@gnu.org> 5933 5934 * src/sfnt/ttmtx.c (tt_face_get_metrics) 5935 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Another type-punning fix. 5936 59372007-05-19 Derek Clegg <dclegg@apple.com> 5938 5939 Savannah patch #5929. 5940 5941 * include/freetype/tttables.h, src/base/ftobjs.c 5942 (FT_Get_CMap_Format): New function. 5943 5944 * include/freetype/internal/services/svttcmap.c (TT_CMapInfo): Add 5945 `format' member. 5946 * src/sfnt/ttcmap.c (tt_cmap{0,2,4,6,8,10,12}_get_info): Set 5947 cmap_info->format. 5948 59492007-05-19 Werner Lemberg <wl@gnu.org> 5950 5951 * src/truetype/ttgload.c (load_truetype_glyph): Save graphics state 5952 before handling subglyphs so that it can be reinitialized each time. 5953 This fixes Savannah bug #19859. 5954 59552007-05-16 Werner Lemberg <wl@gnu.org> 5956 5957 * src/cache/ftccache.c (ftc_node_mru_link, ftc_node_mru_unlink), 5958 src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), src/cache/ftcglyph.h 5959 (FTC_GCACHE_LOOKUP_CMP), src/pshinter/pshmod.c (ps_hinter_init), 5960 src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_load_hhea, 5961 tt_face_get_metrics): Fix type-punning issues. 5962 59632007-05-15 David Turner <david@freetype.org> 5964 5965 * include/freetype/config/ftstdlib.h, 5966 include/freetype/internal/ftobjs.h: As suggested by Graham Asher, 5967 ensure that ft_isalnum, ft_isdigit, etc., use hard-coded values 5968 instead of relying on the locale-dependent functions provided by 5969 <ctypes.h>. 5970 59712007-05-15 Graham Asher <graham.asher@btinternet.com> 5972 5973 * src/autofit/afcjk.c (af_cjk_hints_compute_edges): Remove unused 5974 variable. 5975 * src/autofit/afloader.c (af_loader_load_g): Ditto. 5976 5977 * src/base/ftobjs.c (ft_validator_error): Use `ft_jmp_buf'. 5978 (open_face_from_buffer): Initialize `stream'. 5979 (FT_Request_Metrics): Remove unused variable. 5980 Remove redundant `break' statements. 5981 (FT_Get_Track_Kerning): Remove unused variable. 5982 5983 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs, 5984 afm_parse_kern_data): Remove redundant 5985 `break' statements. 5986 (afm_parser_parse): Ditto. 5987 Don't use uninitialized variables. 5988 5989 * src/psnames/psmodule.c (VARIANT_BIT): Define as unsigned long. 5990 Use `|' operator instead of `^' to set it. 5991 Update all users. 5992 5993 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Use `ft_jmp_buf'. 5994 * src/sfnt/ttkern.c (tt_face_load_kern): Remove unused variable. 5995 5996 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant 5997 comparison. 5998 (TT_Process_Simple_Glyph): Use FT_UInt for `n_points' and `i'. 5999 (TT_Load_Glyph): Remove unused variable. 6000 60012007-05-13 Derek Clegg <dclegg@apple.com> 6002 6003 * src/base/ftobjs.c (FT_New_Library): Only allocate rendering pool 6004 if FT_RENDER_POOL_SIZE is > 0. From Savannah patch #5928. 6005 60062007-05-11 David Turner <david@freetype.org> 6007 6008 * src/cache/ftcbasic.c, include/freetype/ftcache.h 6009 (FTC_ImageCache_LookupScaler, FTC_SBit_Cache_LookupScaler): Two new 6010 functions that allow us to look up glyphs using an FTC_Scaler object 6011 to specify the size, making it possible to use fractional pixel 6012 sizes. 6013 6014 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Set 6015 `size->cvt_ready'. Reported by Boris Letocha. 6016 60172007-05-09 Graham Asher <graham.asher@btinternet.com> 6018 6019 * src/truetype/ttinterp.c (Ins_IP), src/autofit/aflatin.c 6020 (af_latin_metrics_scale_dim): Fix compiler warnings. 6021 60222007-05-06 Werner Lemberg <wl@gnu.org> 6023 6024 * builds/win32/visualce/freetype.sln: Removed, as requested by 6025 Vincent. 6026 60272007-05-04 Vincent RICHOMME <richom.v@free.fr> 6028 6029 * builds/win32/visualce/*: Add Visual C++ project files for Pocket 6030 PC targets. 6031 6032 * docs/CHANGES: Document them. 6033 60342007-05-04 <harry@kdevelop.org> 6035 6036 * builds/unix/ftsystem.c (FT_Stream_Open): Handle return value 0 of 6037 mmap (which might happen on some RTOS). From Savannah patch #5909. 6038 60392007-05-03 Werner Lemberg <wl@gnu.org> 6040 6041 * src/base/ftobjs.c (FT_Set_Char_Size): Simplify code. 6042 * include/freetype/freetype.h (FT_Set_Char_Size): Update 6043 documentation. 6044 60452007-04-28 Victor Stinner <victor.stinner@inl.fr> 6046 6047 * src/sfnt/sfobjs.c (sfnt_load_face): Check error code after loading 6048 `cmap'. 6049 60502007-04-27 Werner Lemberg <wl@gnu.org> 6051 6052 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check for negative 6053 number of points in contours. Problem reported by Victor Stinner 6054 <victor.stinner@haypocalc.com>. 6055 (TT_Process_Simple_Glyph): Synchronize variable types. 6056 60572007-04-26 Werner Lemberg <wl@gnu.org> 6058 6059 * src/base/ftglyph.c (FT_Glyph_Copy): Always set second argument to 6060 zero in case of error. This fixes Savannah bug #19689. 6061 60622007-04-25 Boris Letocha <b.letocha@cz.gmc.net> 6063 6064 * src/truetype/ttobjs.c: Fix a typo that created a speed regression 6065 in the TrueType bytecode loader. 6066 60672007-04-10 Martin Horak <horakm@centrum.cz> 6068 6069 * src/sfnt/sfobjs.c (sfnt_load_face) [FT_CONFIG_OPTION_INCREMENTAL]: 6070 Ignore `hhea' table. This fixes Savannah bug #19261. 6071 60722007-04-09 Werner Lemberg <wl@gnu.org> 6073 6074 6075 * Version 2.3.4 released. 6076 ========================= 6077 6078 6079 Tag sources with `VER-2-3-4'. 6080 6081 * docs/CHANGES, docs/VERSION.DLL: Update documentation and bump 6082 version number to 2.3.4. 6083 6084 * README, Jamfile (RefDoc), builds/win32/visualc/index.html, 6085 builds/win32/visualc/freetype.dsp, 6086 builds/win32/visualc/freetype.vcproj: s/2.3.3/2.3.4/, s/233/234/. 6087 6088 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. 6089 6090 * builds/unix/configure.raw (version_info): Set to 9:15:3. 6091 60922007-04-09 Martin Horak <horakm@centrum.cz> 6093 6094 * src/truetype/ttgload.c (load_truetype_glyph): Save and restore 6095 memory stream to avoid a crash with the incremental memory 6096 interface (Savannah bug #19260). 6097 60982007-04-06 David Turner <david@freetype.org> 6099 6100 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix buffer-overwrite 6101 bug (Savannah bug #19536). 6102 61032007-04-04 Werner Lemberg <wl@gnu.org> 6104 6105 6106 * Version 2.3.3 released. 6107 ========================= 6108 6109 6110 Tag sources with `VER-2-3-3'. 6111 6112 * docs/CHANGES: Mention CVE-2007-1351. 6113 61142007-04-03 David Turner <david@freetype.org> 6115 6116 * src/base/ftobjs.c (FT_Set_Char_Size): As suggested by James Cloos, 6117 if one of the resolution values is 0, treat it as if it were the 6118 same as the other value. 6119 61202007-04-02 David Turner <david@freetype.org> 6121 6122 Add special code to detect `extra-light' fonts and do not snap their 6123 stem widths too much to avoid bizarre hinting effects. 6124 6125 * src/autofit/aflatin.h (AF_LatinAxisRec): Add `standard_width' and 6126 `extra_light' members. 6127 6128 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize 6129 them. 6130 (af_latin_metrics_scale_dim): Set `extra_light'. 6131 (af_latin_compute_stem_width): Use `extra_light'. 6132 61332007-03-28 David Turner <david@freetype.org> 6134 6135 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix zero-ing of the 6136 padding. 6137 61382007-03-28 Werner Lemberg <wl@gnu.org> 6139 6140 * src/bdf/bdflib.c (setsbit, sbitset): Handle values >= 128 6141 gracefully. 6142 (_bdf_set_default_spacing): Increase `name' buffer size to 256 and 6143 issue an error for longer names. This fixes CVE-2007-1351. 6144 (_bdf_parse_glyphs): Limit allowed number of glyphs in font to the 6145 number of code points in Unicode. 6146 6147 * builds/win32/visualc/index.html, 6148 builds/win32/visualc/freetype.dsp, 6149 builds/win32/visualc/freetype.vcproj, README: s/2.3.2/2.3.3/, 6150 s/232/233/. 6151 6152 * docs/CHANGES: Mention ftdiff. 6153 61542007-03-26 David Turner <david@freetype.org> 6155 6156 * src/truetype/ttinterp.c [FIX_BYTECODE]: Remove it and 6157 corresponding code. 6158 (Ins_MD): Last regression fix. 6159 6160 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix blues 6161 computations in order to ignore single-point contours. These are 6162 never rasterized and correspond in certain fonts to mark-attach 6163 points that are very far from the glyph's real outline, ruining the 6164 computation. 6165 6166 * src/autofit/afloader.c (af_loader_load_g): In the case of 6167 monospaced fonts, always set `rsb_delta' and `lsb_delta' to 0. 6168 Otherwise code that uses them will most certainly ruin the fixed 6169 advance property. 6170 6171 * docs/CHANGES, docs/VERSION.DLL, README, Jamfile (RefDoc): Update 6172 documentation and bump version number to 2.3.3. 6173 6174 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. 6175 6176 * builds/unix/configure.raw (version_info): Set to 9:14:3. 6177 61782007-03-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6179 6180 * builds/unix/ftconfig.in: Disable Carbon framework dependency on 6181 64bit ABI on Mac OS X 10.4.x (ppc & i386). Found by Sean McBride. 6182 * builds/vms/ftconfig.h: Ditto. 6183 * include/freetype/config/ftconfig.h: Ditto. 6184 61852007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6186 6187 * builds/unix/ftsystem.c (FT_Stream_Open): Temporary fix to prevent 6188 32bit unsigned long overflow by 64bit filesize on LP64 platform, as 6189 proposed by Sean McBride: 6190 https://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html 6191 61922007-03-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6193 6194 * builds/unix/ftconfig.in: Suppress SGI compiler's warning against 6195 setjmp, proposed by Sean McBride: 6196 https://lists.gnu.org/archive/html/freetype-devel/2007-03/msg00032.html 6197 61982007-03-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6199 6200 * builds/unix/configure.raw: Dequote `OS_INLINE' in comment of 6201 conftest.c, to avoid unexpected shell evaluation. Possibly it is a 6202 bug or undocumented behaviour of autoconf. 6203 62042007-03-18 David Turner <david@freetype.org> 6205 6206 * src/truetype/ttinterp.c (Ins_MDRP): Another bytecode regression 6207 fix; testing still needed. 6208 6209 * src/truetype/ttinterp.c (Ins_MD): Another bytecode regression fix. 6210 62112007-03-17 David Turner <david@freetype.org> 6212 6213 * src/truetype/ttinterp.c (Ins_IP): Fix wrong handling of the 6214 (undocumented) twilight zone special case. 6215 62162007-03-09 Werner Lemberg <wl@gnu.org> 6217 6218 6219 * Version 2.3.2 released. 6220 ========================= 6221 6222 6223 Tag sources with `VER-2-3-2'. 6224 6225 * builds/win32/visualc/index.html, 6226 builds/win32/visualc/freetype.dsp, 6227 builds/win32/visualc/freetype.vcproj, README: s/2.3.1/2.3.2/, 6228 s/231/232/. 6229 62302007-03-08 David Turner <david@freetype.org> 6231 6232 * docs/CHANGES, docs/VERSION.DLL: Updated for upcoming release. 6233 6234 * builds/unix/configure.raw (version_info): Set to 9:13:3. 6235 6236 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. 6237 6238 * README, Jamfile (RefDoc): s/2.3.1/2.3.2/. 6239 6240 * src/base/ftutil.c (ft_mem_strcpyn): Fix a bug that prevented the 6241 function to work properly, over-writing user-provided buffers in 6242 some cases. Reported by James Cloos <cloos@jhcloos.com>. 6243 6244 62452007-03-05 Werner Lemberg <wl@gnu.org> 6246 6247 * include/freetype/config/ftstdlib.h (ft_strstr): New wrapper 6248 macro for `strstr'. 6249 6250 * src/truetype/ttobjs.c (tt_face_init): Use ft_strstr for scanning 6251 `trick_names', as suggested by Ivan Nincic. 6252 62532007-03-05 David Turner <david@freetype.org> 6254 6255 * src/base/ftinit.c (FT_Init_FreeType): Fix a small memory leak in 6256 case FT_Init_FreeType fails for some reason. Problem reported by 6257 Maximilian Schwerin <maximilian.schwerin@buelowssiege.de>. 6258 6259 * src/truetype/ttobjs.c (tt_size_init_bytecode): Clear the `x_ppem' 6260 and `y_ppem' fields of the `TT_Size.metrics' structure, not those of 6261 `TT_Size.root.metrics'. Problem reported by Daniel Glöckner 6262 <daniel-gl@gmx.net>. 6263 6264 * src/type1/t1afm.c (T1_Read_PFM): Read kerning values as 16-bit 6265 signed values, not unsigned ones. Problem reported by Johannes 6266 Walther <joh_walt@yahoo.de>. 6267 62682007-02-21 David Turner <david@freetype.org> 6269 6270 * src/pshinter/pshalgo.c (psh_hint_align): Fix a bug in the hinting 6271 of small and ghost stems in the Postscript interpreter. 6272 62732007-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6274 6275 * src/base/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Fix memory 6276 leak, patch by "Jjgod Jiang" <gzjjgod@gmail.com>. 6277 * builds/mac/ftmac.c (FT_GetFileRef_From_Mac_ATS_Name): Ditto. 6278 62792007-02-16 Werner Lemberg <wl@gnu.org> 6280 6281 * src/truetype/ttinterp.c (Ins_MD): Remove unused variable. 6282 * src/autofit/aflatin.c (af_latin_hints_link_segments): Ditto. 6283 62842007-02-14 David Turner <david@freetype.org> 6285 6286 It seems that the following changes fix most of the known 6287 interpreter problems with my fonts, but more testing is needed, 6288 though. 6289 6290 * src/truetype/ttinterp.c (FIX_BYTECODE): Activate. 6291 (TT_MulFix14): Rewrite. 6292 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Improved and updated. 6293 (Ins_MIRP): Ditto. 6294 62952007-02-12 Werner Lemberg <wl@gnu.org> 6296 6297 * src/truetype/ttinterp.c (Project_x, Project_y): Remove compiler 6298 warnings. 6299 6300 * src/pcf/pcfread.c (pcf_interpret_style), src/bdf/bdfdrivr.c 6301 (bdf_interpret_style): Ditto. 6302 63032007-02-12 David Turner <david@freetype.org> 6304 6305 Simplify projection and dual-projection code interface. 6306 6307 * src/truetype/ttinterp.h (TT_Project_Func): Use `FT_Pos', not 6308 FT_Vector' as argument type. 6309 * src/truetype/ttinterp.c (CUR_Func_project, CUR_Func_dualproj): 6310 Updated. 6311 (CUR_fast_project, CUR_fast_dualproj): New macros. 6312 (Project, Dual_Project, Project_x, Project_y): Updated. 6313 (Ins_GC, Ins_SCFS, Ins_MDAP, Ins_MIAP, Ins_IP): Use new `fast' 6314 macros. 6315 6316 6317 * src/autofit/afloader.c (af_loader_load_g): Improve spacing 6318 adjustments for the non-light auto-hinted modes. Gets rid of 6319 `inter-letter spacing is too wide' problems. 6320 6321 * src/autofit/aflatin.c (af_latin_hints_link_segments, 6322 af_latin_hints_compute_edges): Slight optimization of the segment 6323 linker and better handling of serif segments to get rid of broken 6324 `9' in Arial at 9pt (96dpi). 6325 6326 6327 Introduce new string functions and the corresponding macros to get 6328 rid of various uses of strcpy and other `evil' functions, as well as 6329 to simplify a few things. 6330 6331 * include/freetype/internal/ftmemory.h (ft_mem_strdup, ft_mem_dup, 6332 ft_mem_strcpyn): New declarations. 6333 (FT_MEM_STRDUP, FT_STRDUP, FT_MEM_DUP, FT_DUP, FT_STRCPYN): New 6334 macros. 6335 * src/base/ftutil.c (ft_mem_dup, ft_mem_strdup, ft_mem_strcpyn): New 6336 functions. 6337 6338 * src/bdf/bdfdrivr.c (bdf_interpret_style, BDF_Face_Init), 6339 src/bdf/bdflib.c (_bdf_add_property), src/pcf/pcfread.c 6340 (pcf_get_properties, pcf_interpret_style, pcf_load_font), 6341 src/cff/cffdrivr.c (cff_get_glyph_name), src/cff/cffload.c 6342 (cff_index_get_sid_string), src/cff/cffobjs.c (cff_strcpy), 6343 src/sfnt/sfdriver.c (sfnt_get_glyph_name), src/type1/t1driver.c 6344 (t1_get_glyph_name), src/type42/t42drivr.c (t42_get_glyph_name, 6345 t42_get_name_index): Use new functions and simplify code. 6346 6347 * builds/mac/ftmac.c (FT_FSPathMakeSpec): Don't use FT_MIN. 6348 63492007-02-11 Werner Lemberg <wl@gnu.org> 6350 6351 * src/autofit/afloader.c (af_loader_load_g): Don't change width for 6352 non-spacing glyphs. 6353 63542007-02-07 Tom Parker <palfrey@tevp.net> 6355 6356 * src/cff/cffdrivr.c (cff_get_name_index): Protect against NULL 6357 pointer. 6358 63592007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6360 6361 * include/freetype/ftmac.h (FT_DEPRECATED_ATTRIBUTE): 6362 Introduce __attribute((deprecated))__ to warn functions 6363 which use non-ANSI data types in its interfaces. 6364 (FT_GetFile_From_Mac_Name): Deprecated, using FSSpec. 6365 (FT_GetFile_From_Mac_ATS_Name): Deprecated, using FSSpec. 6366 (FT_New_Face_From_FSSpec): Deprecated, using FSSpec. 6367 (FT_New_Face_From_FSRef): Deprecated, using FSRef. 6368 6369 * src/base/ftmac.c: Predefine FT_DEPRECATED_ATTRIBUTE as void 6370 to avoid warning in building FreeType. 6371 * builds/mac/ftmac.c: Ditto. 6372 63732007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6374 6375 * src/base/ftbase.c: Fix to use builds/mac/ftmac.c, if configured 6376 `--with-fsspec' etc. Replace #include "ftmac.c" with 6377 #include <ftmac.c>. 6378 63792007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6380 6381 * include/freetype/ftmac.h (FT_GetFilePath_From_Mac_ATS_Name): 6382 Introduced as replacement of FT_GetFile_From_Mac_ATS_Name. 6383 * src/base/ftmac.c (FT_GetFilePath_From_Mac_ATS_Name): Ditto. 6384 (FT_GetFile_From_Mac_ATS_Name): Rewritten as wrapper of 6385 FT_GetFilePath_From_Mac_ATS_Name. 6386 * builds/mac/ftmac.c: Ditto. 6387 63882007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6389 6390 * include/freetype/ftmac.h: Fixed wrong comment: FSSpec of 6391 FT_GetFile_From_Mac_Name, FT_GetFile_From_Mac_ATS_Name are 6392 for passing to FT_New_Face_From_FSSpec. 6393 63942007-02-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6395 6396 * builds/unix/configure.raw: Check whether Mac OS X system headers 6397 can be built under ANSI C mode. 6398 6399 * src/base/ftmac.c (OS_INLINE): Redefine OS_INLINE by a version 6400 compatible to ANSI C in case system headers are ANSI C incompatible. 6401 * builds/mac/ftmac.c (OS_INLINE): Ditto. 6402 64032007-02-01 Werner Lemberg <wl@gnu.org> 6404 6405 * include/freetype/ttnameid.h (TT_MS_LANGID_DZONGHKA_BHUTAN): 6406 Explain why applications shouldn't use it. Found by Alexei. 6407 64082007-02-01 Alexei Podtelezhnikov <apodtele@gmail.com> 6409 6410 * builds/unix/freetype2.m4 (AC_CHECK_FT2): Fix spelling of warning 6411 message. 6412 6413 * src/gxvalid/gxvmort1.c 6414 (gxv_mort_subtable_type1_substTable_validate): Fix debugging 6415 message. 6416 64172007-01-31 Werner Lemberg <wl@gnu.org> 6418 6419 6420 * Version 2.3.1 released. 6421 ========================= 6422 6423 6424 Tag sources with `VER-2-3-1-FINAL'. 6425 6426 * builds/win32/visualc/freetype.dsp, 6427 builds/win32/visualc/freetype.vcproj: s/230/231/. 6428 * builds/win32/visualc/index.html: s/221/231/. 6429 6430 * vms_make.com: Add `ftgasp'. 6431 64322007-01-30 David Turner <david@freetype.org> 6433 6434 Tag sources with VER-2-3-1 to prepare release. 6435 6436 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. 6437 6438 * docs/VERSION.DLL, docs/release, README, Jamfile (RefDoc): 6439 s/2.3.0/2.3.1/. 6440 6441 * builds/unix/configure.raw (version_info): Set to 9:12:3. 6442 6443 6444 * src/autofit/aftypes.h (AF_USE_WARPER), src/autofit/afloader.c 6445 (af_loader_load_g): Disable the warper (i.e., the light hinting 6446 improvements) to make a 2.3.1 bugfix release before introducing a 6447 new feature. This should give us more time to tune and improve the 6448 warper for the next release. 6449 6450 * docs/CHANGES: Update accordingly. 6451 64522007-01-25 David Turner <david@freetype.org> 6453 6454 For light auto-hinting, improve glyph advance widths and resurrect 6455 normal/full hinting to its normal quality. 6456 6457 * src/autofit/afhints.h (AF_GlyphHintsRec): New members `xmin_delta' 6458 and `xmax_delta'. 6459 * src/autofit/afhints.c (af_glyph_hints_reload): Reset `xmin_delta' 6460 and `xmax_delta'. 6461 6462 * src/autofit/afloader.c (af_loader_load_g) <AF_USE_WARPER>: Replace 6463 preprocessor conditional with if-clause, handling both light and 6464 normal mode. 6465 6466 * src/autofit/afwarp.c (AF_WarpScore): Fine-tune again. 6467 (af_warper_compute): Handle `xmin_delta' and `xmax_delta'. 6468 64692007-01-25 Werner Lemberg <wl@gnu.org> 6470 6471 * docs/release: Updated -- Savannah uses a new uploading scheme. 6472 64732007-01-25 David Turner <david@freetype.org> 6474 6475 * src/cff/cffload.c (cff_index_get_pointers): Improve previous fix. 6476 6477 * src/cff/cffgload.c (cff_decoder_parse_charstrings) 6478 <cff_op_callsubr, cff_op_callgsubr>: Fix sanity check for empty 6479 functions. 6480 6481 * docs/CHANGES: Document light auto-hinting improvement. 6482 64832007-01-25 Werner Lemberg <wl@gnu.org> 6484 6485 * src/cff/cffload.c (cff_index_get_pointers): Handle last entry 6486 correctly in a sanity check. Since this function is only used to 6487 load local and global functions, any charstring that called the last 6488 local/global function would fail otherwise. This fixes Savannah bug 6489 #18867. 6490 6491 * docs/CHANGES: Document it. 6492 64932007-01-23 David Turner <david@freetype.org> 6494 6495 * src/truetype/ttobjs.c (tt_size_ready_bytecode): Fix typo that 6496 prevented compilation when disabling both the unpatented and the 6497 bytecode interpreter in the TrueType font driver. 6498 6499 6500 Fix and enable the warper to improve `light' hinting mode. This is 6501 not necessarily a final version, but it seems to work well. 6502 6503 * src/autofit/aflatin.c (af_latin_hints_init) [AF_USE_WARPER]: 6504 Disable code. 6505 (af_latin_hints_apply) [AF_USE_WARPER]: Handle FT_RENDER_MODE_LIGHT. 6506 * src/autofit/aftypes.h: Activate AF_USE_WARPER. 6507 6508 * src/autofit/afwarp.c (AF_WarpScore): Tune table. 6509 (af_warper_compute_line_best): Fix array size of `scores'. 6510 (af_warper_compute): Better handling of border cases. 6511 * src/autofit/afwarp.h (AF_WarperRec): Remove unused members `X1' 6512 and `X2'. 6513 65142007-01-21 Werner Lemberg <wl@gnu.org> 6515 6516 * ChangeLog: Split off older entries into... 6517 * ChangeLog.22: This new file. 6518 65192007-01-21 Werner Lemberg <wl@gnu.org> 6520 6521 * docs/CHANGES: Document SHZ fix. 6522 65232007-01-21 George Williams <gww@silcom.com> 6524 6525 * src/truetype/ttinterp.c (Ins_SHZ): SHZ doesn't move phantom 6526 points. 6527 65282007-01-21 Werner Lemberg <wl@gnu.org> 6529 6530 * src/sfnt/ttmtx.c (tt_face_get_metrics) 6531 [!FT_CONFIG_OPTION_OLD_INTERNALS]: Fix limit check. 6532 65332007-01-17 Werner Lemberg <wl@gnu.org> 6534 6535 6536 * Version 2.3.0 released. 6537 ========================= 6538 6539 6540 Tag sources with `VER-2-3-0-FINAL'. 6541 65422007-01-17 Werner Lemberg <wl@gnu.org> 6543 6544 * docs/release: Updated. 6545 65462007-01-16 David Turner <david@freetype.org> 6547 6548 * src/autofit/aflatin.c (af_latin_hints_compute_segments), 6549 src/cff/cffdrivr.c (cff_ps_get_font_info), src/truetype/ttobjs.c 6550 (tt_face_init), src/truetype/ttinterp.c (Ins_SHC): Fix compiler 6551 warnings. 6552 65532007-01-15 Detlef Würkner <TetiSoft@apg.lahn.de> 6554 6555 * builds/amiga/makefile, builds/amiga/makefile.os4, 6556 builds/amiga/smakefile: Add `ftgasp.c' and `ftlcdfil.c'. 6557 6558 * builds/amiga/include/freetype/config/ftconfig.h: Synchronize. 6559 65602007-01-14 Detlef Würkner <TetiSoft@apg.lahn.de> 6561 6562 Fix various compiler warnings. 6563 6564 * src/truetype/ttdriver.c (tt_size_select), src/cff/cffobjs.h, 6565 src/cff/cffobjs.c (cff_size_request), src/type42/t42objs.h: 6566 s/index/strike_index/. 6567 * src/base/ftobjs.c (FT_Match_Size): s/index/size_index/. 6568 6569 * src/gxvalid/gxvmorx5.c 6570 (gxv_morx_subtable_type5_InsertList_validate): s/index/table_index/. 6571 6572 * src/truetype/ttinterp.c (Compute_Point_Displacement), 6573 src/pcf/pcfread.c (pcf_seek_to_table_type): Avoid possibly 6574 uninitialized variables. 6575 65762007-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6577 6578 * docs/CHANGES, docs/INSTALL.MAC: Improvements. 6579 65802007-01-13 Werner Lemberg <wl@gnu.org> 6581 6582 * src/type1/t1afm.c (T1_Read_Metrics): MS Windows allows PFM 6583 versions up to 0x3FF without complaining. 6584 65852007-01-13 Derek Clegg <dclegg@apple.com> 6586 6587 Add FT_Get_PS_Font_Info interface to CFF driver. 6588 6589 * src/cff/cfftypes.h: Include FT_TYPE1_TABLES_H. 6590 (CFF_FontRec): Add `font_info' field. 6591 6592 * src/cff/cffload.c: Include FT_TYPE1_TABLES_H. 6593 (cff_font_done): Free font->font_info if necessary. 6594 6595 * src/cff/cffdrivr.c (cff_ps_get_font_info): New function. 6596 (cff_service_ps_info): Register cff_ps_get_font_info. 6597 65982007-01-13 Werner Lemberg <wl@gnu.org> 6599 6600 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix compilation 6601 with C++ compiler. 6602 6603 * src/autofit/afhints.c (af_glyph_hints_dump_segments, 6604 af_glyph_hints_dump_edges): Ditto. 6605 6606 * src/base/rules.mk (BASE_SRC): Remove ftgasp.c (it's already in 6607 `modules.cfg'). 6608 6609 * src/sfnt/ttsbit0.h: Remove. 6610 6611 * src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c. 6612 66132007-01-12 David Turner <david@freetype.org> 6614 6615 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): Fix memory stomping 6616 bug in the bitmap emboldener if the pitch of the source bitmap is 6617 much larger than its width. 6618 6619 * src/truetype/ttinterp.c (Update_Max): Fix aliasing-related 6620 compilation warning. 6621 66222007-01-12 Werner Lemberg <wl@gnu.org> 6623 6624 * builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from 6625 `automake' CVS module from sources.redhat.com. 6626 66272007-01-11 Werner Lemberg <wl@gnu.org> 6628 6629 * src/type1/t1load.c (is_space): Removed. 6630 (parse_encoding, parse_charstrings): Use IS_PS_DELIM. 6631 (parse_charstrings): Use IS_PS_TOKEN. 6632 6633 6634 * autogen.sh: Avoid bash specific syntax. 6635 66362007-01-11 David Turner <david@freetype.org> 6637 6638 * docs/CHANGES: Small update. 6639 6640 * builds/unix/configure.raw (version_info): Set to 9:11:3. 6641 6642 * src/base/ftobjs.c (IsMacResource): Fix a small bug that caused a 6643 crash with some Mac OS X .dfont files. Submitted by Masatake 6644 Yamato. 6645 6646 * autogen.sh: Small fix to get it working on Mac OS X properly: 6647 The issue is that GNU libtool is called `glibtool' on this platform, 6648 and we must call `glibtoolize', since `libtoolize' doesn't exist. 6649 66502007-01-10 David Turner <david@freetype.org> 6651 6652 * all-sources: Tag all sources with VER-2-3-0-RC1 and 6653 VER-2-3-0. 6654 6655 * Jamfile (RefDoc), README, builds/win32/visualc/freetype.dsp, 6656 builds/win32/visualc/freetype.vcproj, docs/VERSION.DLL: Update 6657 version number to 2.3.0. 6658 6659 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 3. 6660 (FREETYPE_PATCH): Set to 0. 6661 6662 * include/freetype/ftchapters.h, include/freetype/ftgasp.h, 6663 include/freetype/ftlcdfil.h: Update reference documentation with 6664 GASP support and LCD filtering sections. 6665 6666 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix a typo 6667 which created an endless loop with some malformed font files. 6668 66692007-01-10 Derek Clegg <dclegg@apple.com> 6670 6671 * src/type1/t1load.c (T1_Get_MM_Var): Always return fixed-point 6672 values. 6673 66742007-01-08 David Turner <david@freetype.org> 6675 6676 * docs/CHANGES: Updated. 6677 6678 * include/freetype/ftgasp.h, src/base/ftgasp.c: New files which add 6679 a new API `FT_Get_Gasp' to return entries of the `gasp' table 6680 corresponding to a given character pixel size. 6681 6682 * src/sfnt/ttload.c (tt_face_load_gasp): Add version check for the 6683 `gasp' table, in order to avoid potential problems with later 6684 versions. 6685 6686 * include/freetype/config/ftheader.h (FT_GASP_H): New macro for 6687 <freetype/ftgasp.h>. 6688 6689 * src/base/rules.mk (BASE_SRC), src/base/Jamfile (_sources), 6690 modules.cfg (BASE_EXTENSIONS), builds/win32/visualc/freetype.dsp, 6691 builds/win32/visualc/freetype.vcproj: Add src/base/ftgasp.c to the 6692 default build. 6693 66942007-01-07 Werner Lemberg <wl@gnu.org> 6695 6696 * src/cid/cidparse.c (cid_parser_new): Improve error message for 6697 Type 11 fonts. 6698 Scan for `/sfnts' token. 6699 67002007-01-07 Werner Lemberg <wl@gnu.org> 6701 6702 * src/cid/cidparse.c (cid_parser_new): Reject Type 11 fonts. 6703 67042007-01-06 Werner Lemberg <wl@gnu.org> 6705 6706 * src/cff/cffload.c (cff_index_init): Remove unused variable. 6707 (cff_index_read_offset): s/perror/errorp/ to avoid global shadowing. 6708 67092007-01-04 David Turner <david@freetype.org> 6710 6711 * src/pfr/pfrobjs.c (pfr_face_init): Detect non-scalable fonts 6712 correctly. This fixes Savannah bug #17876. 6713 6714 6715 Do not allocate interpreter-specific tables in memory if we are not 6716 going to load glyphs with the bytecode interpreter anyway. 6717 6718 * src/truetype/ttgload.c (tt_loader_init): Load execution context 6719 only if glyph is hinted. 6720 Updated. 6721 * src/truetype/ttobjs.h (TT_SizeRec): Add members `bytecode_ready' 6722 and `cvs_ready'. 6723 Add `tt_size_ready_bytecode' declaration. 6724 * src/truetype/ttobjs.c (tt_size_done_bytecode, 6725 tt_size_init_bytecode, tt_size_ready_bytecode): New functions. 6726 (tt_size_init): Move most code into `tt_size_init_bytecode'. 6727 (tt_size_done): Move most code into `tt_size_done_bytecode'. 6728 (tt_size_reset): Move some code to `tt_size_ready_bytecode'. 6729 6730 6731 Don't extract the metrics table from the SFNT font file. Instead, 6732 reparse it on each glyph load. The runtime difference is not 6733 noticeable, and it can save a lot of heap memory when memory-mapped 6734 files are not used. 6735 6736 * include/freetype/internal/tttypes.h (TT_FaceRec): Add members 6737 `horz_metrics_offset' and `vert_metrics_offset'. 6738 * src/sfnt/ttmtx.c (tt_face_load_hmtx, tt_face_get_metrics): 6739 Updated. 6740 6741 6742 * src/sfnt/ttcmap.c (tt_cmap4_validate): Slight optimization. 6743 6744 6745 Do not load the CFF index offsets into memory, since this wastes a 6746 *lot* of heap memory with large Asian CFF fonts. There is no 6747 significant performance loss. 6748 6749 * src/cff/cffload.h: Add `cff_charset_cid_to_gindex' declaration. 6750 * src/cff/cfftypes.h (CFF_IndexRec): Add fields `start' and 6751 `data_size'. 6752 (CFF_CharsetRec): Add field `num_glyphs'. 6753 6754 * src/cff/cffload.c (cff_index_read_offset, cff_index_load_offsets, 6755 cff_charset_cid_to_gindex): New functions. 6756 (cff_new_index): Renamed to... 6757 (cff_index_init): This. Update all callers. 6758 Updated -- some code has been moved to `cff_index_load_offsets'. 6759 (cff_done_index): Renamed to... 6760 (cff_index_done): This. Update all callers. 6761 (cff_index_get_pointers, cff_index_access_element): Updated to use 6762 stream offsets. 6763 (cff_charset_compute_cids): Set `num_glyphs' field. 6764 (cff_encoding_load): Updated. 6765 6766 * src/cff/cffgload.c (cff_slot_load): Updated. 6767 67682007-01-04 David Turner <david@freetype.org> 6769 6770 * docs/INSTALL.UNIX: Simplify some parts, add reference to 6771 autogen.sh and pointer to README.CVS. 6772 6773 * README.CVS: Add common problem description and solution 6774 when running autogen.sh. 6775 6776 * docs/INSTALL: Add reference to MacOS X. 6777 6778 * docs/MAKEPP, docs/INSTALL.MAC: New documentation files. 6779 6780 * docs/TODO: Remove obsolete items. 6781 6782 * src/raster/ftraster.c: (TRaster_Instance): Replace it with... 6783 (TWorker): This. 6784 Remove `count_table' and `memory'. 6785 Make `grays' a pointer. 6786 (TRaster): New structure. 6787 (count_table): New static array. 6788 (RAS_ARGS, RAS_ARG, RAS_VARS, RAS_VAR, FT_UNUSED_RASTER, cur_ras, 6789 Vertical_Gray_Sweep_Step, ft_black_new, ft_black_done, 6790 ft_black_set_mode, ft_black_render): Updated. 6791 (ft_black_init): Don't initialize `count_table'. 6792 (ft_black_reset): Use the render pool. This saves about 6KB of 6793 heap space for each FT_Library instance. 6794 6795 * src/smooth/ftgrays.c (TRaster): Replaced with... 6796 (TWorker): This. 6797 Remove `memory'. 6798 (TRaster): New structure. 6799 6800 (RAS_ARG_, RAS_ARG, RAS_VAR_, RAS_VAR, ras, gray_render_line, 6801 gray_move_to, gray_line_to, gray_conic_to, gray_cubic_to, 6802 gray_render_span, gray_raster_render): Updated. 6803 (gray_raster_reset): Use the render pool. This saves about 6KB of 6804 heap space for each FT_Library instance. 6805 6806 * src/sfnt/sfobjs.c, src/sfnt/ttkern.c, src/sfnt/ttkern.h, 6807 src/sfnt/ttmtx.c, src/sfnt/ttsbit.c, src/sfnt/ttsbit.h, 6808 src/truetype/ttpload.c, include/freetype/config/ftoption.h: Remove 6809 FT_OPTIMIZE_MEMORY macro (and code for !FT_OPTIMIZE_MEMORY) since 6810 the optimization is no longer experimental. 6811 6812 * src/pshinter/pshalgo.c (psh_glyph_interpolate_normal_points): 6813 Remove a typo that results in no hinting and a memory leak with some 6814 large Asian CFF fonts. 6815 6816 * src/base/ftobjs.c (FT_Done_Library): Remove a subtle memory leak 6817 which happens when FT_Done_Library is called with still opened 6818 CFF_Faces in it. We need to close all faces before destroying the 6819 modules, or else some bad things (memory leaks) may happen. 6820 68212007-01-02 Werner Lemberg <wl@gnu.org> 6822 6823 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): 6824 Remove compiler warning. 6825 68262007-01-02 David Turner <david@freetype.org> 6827 6828 * src/sfnt/sfobjs.c: Add documentation comment. 6829 68302006-12-31 Masatake YAMATO <jet@gyve.org> 6831 6832 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt0_pairs_validate): New 6833 function. 6834 Check uniqueness of the gid pairs. 6835 (gxv_kern_subtable_fmt0_validate): Move some code to 6836 `gxv_kern_subtable_fmt0_pairs_validate'. 6837 68382006-12-22 David Turner <david@freetype.org> 6839 6840 * src/autofit/aflatin.c, src/truetype/ttgload.c: Remove compiler 6841 warnings. 6842 6843 * builds/win32/visualc/freetype.vcproj: Add _CRT_SECURE_NO_DEPRECATE 6844 to avoid deprecation warnings with Visual C++ 8. 6845 68462006-12-16 Anders Kaseorg <anders@kaseorg.com> 6847 6848 * src/base/ftlcdfil.c (FT_Library_SetLcdFilter) 6849 [FT_FORCE_LIGHT_LCD_FILTER]: Fix typo. 6850 68512006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6852 6853 * include/freetype/internal/services/svotval.h: Add `volatile' to 6854 sync with the modification by Jens Claudius on 2006-08-22; cf. 6855 https://cvs.savannah.gnu.org/viewcvs/freetype/freetype2/src/otvalid/otvmod.c?r1=1.4&r2=1.5 6856 68572006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6858 6859 * src/base/ftmac.c: Specialized for Mac OS X only. 6860 * builds/unix/ftconfig.in: Fixed for ppc64 missing Carbon framework. 6861 * builds/unix/configure.raw: Ditto. When explicit switches for 6862 FSSpec/FSRef/QuickDraw/ATS availability are given to configure, 6863 builds/mac/ftmac.c is used instead of default src/base/ftmac.c. 6864 68652006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6866 6867 * builds/mac/ftmac.c: Copied src/base/ftmac.c for legacy system. 6868 * builds/mac/FreeType.m68k_cfm.make.txt: Fix to use builds/mac/ftmac.c 6869 instead of src/base/ftmac.c 6870 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. 6871 * builds/mac/FreeType.ppc_classic.make.txt: Ditto. 6872 * builds/mac/FreeType.m68k_far.make.txt: Ditto, and exclude gxvalid.c 6873 that cannot be built at present. 6874 68752006-12-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6876 6877 * src/base/ftobjs.c: Improvement of resource fork handler for 6878 POSIX, cf. 6879 https://lists.gnu.org/archive/html/freetype-devel/2006-10/msg00025.html 6880 (Mac_Read_sfnt_Resource): Count only `sfnt' resource of suitcase font 6881 format or .dfont, to simulate the face index number counted by ftmac.c. 6882 (IsMacResource): Return the number of scalable faces correctly. 6883 68842006-12-10 Werner Lemberg <wl@gnu.org> 6885 6886 * builds/toplevel.mk (version): Protect against `distclean' target. 6887 68882006-12-09 Werner Lemberg <wl@gnu.org> 6889 6890 * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat' 6891 or `type'. 6892 6893 * builds/freetype.mk (version): Extracted from freetype.h, using 6894 GNU make's built-in string functions. 6895 (refdoc): Use $(version) instead of static version number. 6896 68972006-12-08 Werner Lemberg <wl@gnu.org> 6898 6899 * builds/toplevel.mk (dist): Extract version number from freetype.h. 6900 69012006-12-08 Vladimir Volovich <vvv@vsu.ru> 6902 6903 * src/tools/apinames.c (State): Remove final comma in structure -- 6904 xlc v5 under AIX 4.3 doesn't like this. 6905 69062006-12-07 David Turner <david@freetype.org> 6907 6908 * src/autofit/afloader.c (af_loader_load_g): Small adjustment 6909 to the spacing of auto-fitted glyphs. This only impacts rare 6910 cases (e.g., Arial Bold at rather small character sizes). 6911 69122006-12-03 Werner Lemberg <wl@gnu.org> 6913 6914 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add ttsbit0.c. 6915 69162006-12-01 Werner Lemberg <wl@gnu.org> 6917 6918 * src/sfnt/sfobjs.c (tt_face_get_name): All Unicode strings are 6919 encoded in UTF-16BE. Patch from Rajeev Pahuja <rpahuja@esri.com>. 6920 (tt_name_entry_ascii_from_ucs4): Removed. 6921 6922 6923 * include/freetype/ftxf86.h: Fix and extend comment so that it 6924 appears in the documentation. 6925 6926 * include/freetype/ftchapters.h: Add `font_format' section. 6927 6928 6929 * src/tools/docmaker/tohtml.py (HtmlFormatter::index_exit): Add link 6930 to TOC in index page. 6931 69322006-11-28 David Turner <david@freetype.org> 6933 6934 * src/smooth/ftgrays.c (gray_raster_render): Return 0 when we are 6935 trying to render into a zero-width/height bitmap, not an error code. 6936 6937 * src/truetype/ttobjs.c (tt_face_init): Fix typo in previous patch. 6938 6939 * src/smooth/ftgrays.c: Remove hard-coded error values; use FreeType 6940 ones instead. 6941 6942 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Remove unused 6943 variable. 6944 69452006-11-26 Pierre Hanser <hanser@club-internet.fr> 6946 6947 * src/truetype/ttobjs.c (tt_face_init): Protect against NULL pointer. 6948 69492006-11-25 David Turner <david@freetype.org> 6950 6951 * src/autofit/afhints.c (af_glyph_hints_dump_points, 6952 af_glyph_hints_dump_segments, af_glyph_hints_dumpedges) [!AF_DEBUG]: 6953 Add stubs to link the `ftgrid' test program when debugging is 6954 disabled in the auto-hinter. 6955 69562006-11-23 David Turner <david@freetype.org> 6957 6958 * src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c, 6959 src/autofit/aftypes.h: Miscellaneous auto-hinter improvements. 6960 6961 * src/autofit/afhints.c (af_glyph_hints_dump_segments) [AF_DEBUG]: 6962 Emit more sensible information. 6963 6964 * src/autofit/afhints.h (AF_SegmentRec): Add `height' member. 6965 6966 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Improve 6967 rounding of blue values. 6968 (af_latin_hints_compute_segments): Hint segment heights. 6969 (af_latin_hints_link_segments): Reduce `len_score' value. 6970 (af_latin_hints_compute_edges): Increase `segment_length_threshold' 6971 value and use `height' member for comparisons. 6972 (af_latin_hint_edges): Extend logging message. 6973 Improve handling of remaining edges. 6974 69752006-11-22 Werner Lemberg <wl@gnu.org> 6976 6977 Fix Savannah bug #15553. 6978 6979 * src/truetype/ttgload.c (tt_loader_init): Re-execute the CVT 6980 program after a change from mono to grayscaling (and vice versa). 6981 Use correct constant for comparison to get `exec->grayscale'. 6982 69832006-11-18 Werner Lemberg <wl@gnu.org> 6984 6985 Because FT_Load_Glyph expects CID values for CID-keyed fonts, the 6986 test for a valid glyph index must be deferred to the font drivers. 6987 This patch fixes Savannah bug #18301. 6988 6989 * src/base/ftobjs.c (FT_Load_Glyph): Don't check `glyph_index'. 6990 * src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/cff/cffgload.c 6991 (cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph), 6992 src/pcf/pcfdrivr.c (PCF_Glyph_Load), src/pfr/pfrobjs.c 6993 (pfr_slot_load), src/truetype/ttdriver.c (Load_Glyph), 6994 src/type1/t1gload.c (T1_Load_Glyph), src/winfonts/winfnt.c 6995 (FNT_Load_Glyph): Check validity of `glyph_index'. 6996 69972006-11-13 David Turner <david@freetype.org> 6998 6999 * src/truetype/ttinterp.c (FIX_BYTECODE): Undefine. The interpreter 7000 `enhancements' are still too buggy for general use. 7001 7002 * src/base/ftlcdfil.c: Add support for FT_FORCE_LIGHT_LCD_FILTER and 7003 FT_FORCE_LEGACY_LCD_FILTER at compile time. Define these macros 7004 when building the library to change the default LCD filter to be 7005 used. This is only useful for experimentation. 7006 7007 * include/freetype/ftlcdfil.h: Update documentation. 7008 70092006-11-10 David Turner <david@freetype.org> 7010 7011 * src/smooth/ftsmooth.c: API change for the LCD 7012 filter. The FT_LcdFilter value is an enumeration describing which 7013 filter to apply, with new values FT_LCD_FILTER_LIGHT and 7014 FT_LCD_FILTER_LEGACY (the latter implements the LibXft original 7015 algorithm which produces strong color fringes for everything 7016 except very-well hinted text). 7017 7018 * include/freetype/ftlcdfil.h (FT_Library_SetLcdFilter): Change 7019 second parameter to an enum type. 7020 7021 * src/base/ftlcdfil.c (USE_LEGACY): Define. 7022 (_ft_lcd_filter): Rename to... 7023 (_ft_lcd_filter_fir): This. 7024 Update parameters. 7025 (_ft_lcd_filter_legacy) [USE_LEGACY]: New filter function. 7026 (FT_Library_SetLcdFilter): Update parameters. 7027 Handle new filter modes. 7028 7029 * include/internal/ftobjs.h: Include FT_LCD_FILTER_H. 7030 (FT_Bitmap_LcdFilterFunc): Change third argument to `FT_Library'. 7031 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Add filtering 7032 callback and update other fields. 7033 7034 * src/smooth/ftsmooth.c (ft_smooth_render_generic) 7035 [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Update. 7036 Other minor improvements. 7037 7038 * src/autofit/aflatin.c: Various tiny improvements that drastically 7039 improve the handling of serif fonts and of LCD/LCD_V hinting modes. 7040 (af_latin_hints_compute_edges): Fix typo. 7041 (af_latin_compute_stem_width): Take better care of diagonal stems. 7042 70432006-11-09 David Turner <david@freetype.org> 7044 7045 * src/pshinter/pshalgo.c (psh_glyph_compute_inflections): Fix 7046 typo which created a variable-used-before-initialized bug. 7047 70482006-11-07 Zhe Su <james.su@gmail.com> 7049 7050 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Handle vertical layout 7051 also. 7052 70532006-11-03 Werner Lemberg <wl@gnu.org> 7054 7055 * src/base/ftcalc.c: Don't use `long long' but `FT_Int64'. 7056 70572006-11-02 David Turner <david@freetype.org> 7058 7059 Add a few tweaks to better handle serif fonts. 7060 Add more debugging messages. 7061 7062 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Ignore 7063 segments that are less than 1.5 pixels high. This gets rid of 7064 *many* corner cases with serifs. 7065 (af_latin_align_linked_edge): Add logging message. 7066 (af_latin_hint_edges): Use AF_HINTS_DO_BLUES. 7067 Add logging messages. 7068 Handle AF_EDGE_FLAG flag specially. 7069 7070 * src/autofit/afmodule.c [AF_DEBUG]: Add _af_debug, 7071 _af_debug_disable_blue_hints, and _af_debug_hints variables. 7072 7073 * src/autofit/aftypes.h (AF_LOG) [AF_DEBUG]: Use _af_debug. 7074 Update external declarations. 7075 (af_corner_orientation, af_corner_is_flat): Replaced by... 7076 7077 * include/freetype/internal/ftcalc.h (ft_corner_orientation, 7078 ft_corner_is_flat): These declarations. 7079 7080 * src/autofit/afangles.c (af_corner_orientation, af_corner_is_flat): 7081 Comment out. Replaced by... 7082 7083 * src/base/ftcalc.h (ft_corner_orientation, ft_corner_is_flat): 7084 These functions. Update all callers. 7085 (FT_Add64) [!FT_LONG64]: Simplify. 7086 7087 * src/autofit/afhints.c: Include FT_INTERNAL_CALC_H. 7088 (af_direction_compute): Add a missing FT_ABS call. This bug caused 7089 production of garbage by missing lots of segments. 7090 7091 * src/autofit/afhints.h (AF_HINTS_DO_BLUES): New macro. 7092 7093 * src/autofit/afloader.c (af_loader_init, af_loader_done) 7094 [AF_DEBUG]: Set _af_debug_hints. 7095 7096 7097 * src/pshinter/pshalgo.c: Include FT_INTERNAL_CALC_H. 7098 (psh_corner_is_flat, psh_corner_orientation): Use ft_corner_is_flat 7099 and ft_corner_orientation. 7100 7101 7102 * src/gzip/inftrees.c (huft_build): Remove compiler warning. 7103 71042006-10-24 Werner Lemberg <wl@gnu.org> 7105 7106 * src/cff/cffload.c (cff_encoding_load): Remove unused variable. 7107 7108 * src/base/ftobjs.c (FT_Select_Charmap): Disallow FT_ENCODING_NONE 7109 as argument. 7110 71112006-10-23 Zhe Su <zsu@novell.com> 7112 7113 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Re-implement to 7114 better deal with broken Asian fonts with strange glyphs, having 7115 self-intersections and other peculiarities. The used algorithm is 7116 based on the nonzero winding rule. 7117 71182006-10-23 David Turner <david@freetype.org> 7119 7120 Speed up the CFF font loader. With some large CFF fonts, 7121 FT_Open_Face is now more than three times faster. 7122 7123 * src/cff/cffload.c (cff_get_offset): Removed. 7124 (cff_new_index): Inline functionality of `cff_get_offset'. 7125 (cff_charset_compute_cids, cff_charset_free_cids): New functions. 7126 (cff_charset_done): Call `cff_charset_free_cids'. 7127 (cff_charset_load): Call `cff_charset_compute_cids'. 7128 (cff_encoding_load) <Populate>: Ditto, to replace inefficient loop. 7129 7130 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Replace calls to FT_GET_XXX 7131 with FT_NEXT_XXX. 7132 7133 7134 Speed up the Postscript hinter, with more than 100% speed increase 7135 on my machine. 7136 7137 * src/pshinter/pshalgo.c (psh_corner_is_flat, 7138 psh_corner_orientation): New functions. 7139 (psh_glyph_compute_inflections): Merge loops for efficiency. 7140 Use `psh_corner_orientation'. 7141 (psh_glyph_init): Use `psh_corner_is_flat'. 7142 (psh_hint_table_find_strong_point): Renamed to... 7143 (psh_hint_table_find_strong_points): This. 7144 Rewrite, adding argument to handle all points at once. 7145 Update all callers. 7146 (PSH_MAX_STRONG_INTERNAL): New macro. 7147 (psh_glyph_interpolate_normal_points): Rewrite for efficiency. 7148 71492006-10-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7150 7151 * src/base/ftmac.c (FT_New_Face_From_FOND): Initialize variable 7152 `error' with FT_Err_Ok. 7153 71542006-10-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7155 7156 * docs/INSTALL.CROSS: New document file for cross-building. 7157 7158 * builds/unix/configure.raw: Preliminary cross-building support. 7159 Find native C compiler and pass it by CC_BUILD, and 7160 find suffix for native executable and pass it by EXEEXT_BUILD. 7161 Also suffix for target executable is passed by EXEEXT. 7162 7163 * builds/unix/unix-cc.in (CCraw_build, E_BUILD): New variables to 7164 build `apinames' which runs on building system. They are set by 7165 CC_BUILD and EXEEXT_BUILD. 7166 7167 * builds/exports.mk (APINAMES_EXE): Change the extension for 7168 apinames from the suffix for target (E) to that for building host 7169 (E_BUILD). 7170 71712006-10-12 Werner Lemberg <wl@gnu.org> 7172 7173 * docs/INSTALL.UNX, docs/UPGRADE.UNX: Renamed to... 7174 * docs/INSTALL.UNIX, docs/UPGRADE.UNIX: This. Update all documents 7175 which reference those files. 7176 71772006-10-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7178 7179 * builds/unix/configure.raw (FT2_EXTRA_LIBS): New variable. It is 7180 embedded in freetype2.pc and freetype-config. Use it to record 7181 Carbon dependency of MacOSX. 7182 7183 * builds/unix/freetype2.in: Embed FT2_EXTRA_LIBS. 7184 7185 * builds/unix/freetype-config.in: Ditto. 7186 71872006-10-11 Werner Lemberg <wl@gnu.org> 7188 7189 * devel/ftoption.h (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): Define for 7190 development. 7191 71922006-10-03 Jens Claudius <jens.claudius@yahoo.com> 7193 7194 * include/freetype/config/ftstdlib.h: Cast away volatileness from 7195 argument to ft_setjmp. 7196 7197 * include/freetype/internal/ftvalid.h: Add comment that 7198 ft_validator_run must not be used. 7199 72002006-10-01 Werner Lemberg <wl@gnu.org> 7201 7202 * src/base/ftbase.c: Undo change from 2006-09-30. 7203 7204 * src/base/rules.mk (BASE_SRC): Remove `ftlcdfil.c'. 7205 72062006-09-30 David Turner <david@freetype.org> 7207 7208 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): 7209 s/unpatented_hinting/ignore_unpatented_hinter/. 7210 Update all callers. 7211 7212 * src/base/ftobjs.c (FT_Load_Glyph): Refine the algorithm whether 7213 auto-hinting shall be used or not. 7214 7215 * src/truetype/ttobjs.c (tt_face_init): Ditto. 7216 72172006-09-30 Werner Lemberg <wl@gnu.org> 7218 7219 * src/base/rules.mk (BASE_SRC): Remove `ftapi.c' (which is no longer 7220 in use). 7221 7222 * src/base/ftbase.c: Include `ftlcdfil.c'. 7223 72242006-09-29 Werner Lemberg <wl@gnu.org> 7225 7226 * src/sfnt/ttcmap.c (tt_cmap4_char_map_binary): Fix algorithm for 7227 overlapping segments. Bug reported by Stefan Koch. 7228 72292006-09-28 David Turner <david@freetype.org> 7230 7231 Fix a bug in the automatic unpatented hinting support which prevents 7232 normal bytecode hinting to work properly. 7233 7234 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): 7235 s/force_autohint/unpatented_hinting/. Update all callers. 7236 7237 * src/base/ftobjs.c (FT_Load_Glyph): Updated code. 7238 7239 * src/autofit/aftypes.h (AF_DEBUG): Undefine to get rid of traces. 7240 72412006-09-27 David Turner <david@freetype.org> 7242 7243 * include/freetype/freetype.h (FT_FREETYPE_PATCH): Set to 2. 7244 7245 7246 Add a new API to support color filtering of subpixel glyph bitmaps. 7247 In a default build, the function `FT_Library_SetLcdFilter' returns 7248 `FT_Err_Unimplemented_Feature'; you need to #define 7249 FT_CONFIG_OPTION_SUBPIXEL_RENDERING in ftoption.h to compile the 7250 real implementation. 7251 7252 * include/freetype/ftlcdfil.h, src/base/ftlcdfil.c: New files. 7253 7254 * include/freetype/internal/ftobjs.h (FT_Bitmap_LcdFilterFunc): New 7255 typedef. 7256 (FT_LibraryRec) [FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: New members 7257 `lcd_filter_weights' and `lcd_filter'. 7258 7259 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove arguments 7260 `hmul' and `vmul'. 7261 7262 Handle subpixel rendering. 7263 Simplify function. 7264 (ft_smooth_render_lcd): Use `FT_RENDER_MODE_LCD'. 7265 (ft_smooth_render_lcd_v): Use `FT_RENDER_MODE_LCD_V'. 7266 7267 * include/freetype/config/ftheader.h (FT_LCD_FILTER_H): New macro, 7268 pointing to <freetype/ftlcdfil.h>. 7269 7270 * src/base/Jamfile (_sources), src/base/rules.mk (BASE_SRC), 7271 vms_make.com: Add `ftlcdfil.c' to the list of compiled source files. 7272 7273 * modules.cfg (BASE_EXTENSIONS): Add ftlcdfil.c. 7274 72752006-09-26 David Bustin 7276 7277 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Skip adjustment bytes 7278 correctly. Reported as Savannah bug #17843. 7279 72802006-09-26 David Turner <david@freetype.org> 7281 7282 * src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL, 7283 AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable 7284 horizontal and vertical hinting for the purpose of debugging the 7285 auto-fitter. 7286 7287 * src/autofit/afmodule.c (_af_debug_disable_horz_hints, 7288 _af_debug_disable_vert_hints) [AF_DEBUG]: New global variables. 7289 7290 * src/autofit/aftypes.h [AF_DEBUG]: Declare above variables. 7291 7292 * include/freetype/config/ftoption.h, devel/ftoption.h 7293 (FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether 7294 we want to compile LCD-optimized rendering code (à la ClearType) or 7295 not. The macro *must* be disabled in default builds of the library 7296 for patent reasons. 7297 7298 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable 7299 LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING 7300 isn't defined at compile time. This only changes the content of the 7301 rendered glyph to match the one of normal gray-level rendering, 7302 hence clients should not need to be modified. 7303 7304 * docs/CHANGES: Updated. 7305 73062006-09-18 Garrick Meeker <garrick@digitalanarchy.com> 7307 7308 * src/base/ftmac.c (FT_New_Face_From_FOND): Fall back to SFNT if 7309 LWFN fails and both are available. 7310 73112006-09-11 David Turner <david@freetype.org> 7312 7313 * src/sfnt/sfobjs.c (tt_face_get_name): Support some fonts which 7314 report their English names through an Apple Roman 7315 (platform,encoding) pair, with language_id != English. 7316 7317 If the font uses another name entry with language_id == English, it 7318 will be selected correctly, though. 7319 7320 * src/truetype/ttobjs.c (tt_face_init): Add unpatented hinting 7321 selection for `mingli.ttf'. 7322 73232006-09-05 Werner Lemberg <wl@gnu.org> 7324 7325 * src/truetype/ttpload.c (tt_face_load_hdmx): Handle `record_size' 7326 values which have the upper two bytes set to 0xFF instead of 0x00 7327 (as it happens in at least two CJKV fonts, `HAN NOM A.ttf' and 7328 `HAN NOM B.ttf'). 7329 7330 * src/smooth/ftgrays.c [GRAYS_USE_GAMMA]: Really remove all code. 7331 73322006-09-05 David Turner <david@freetype.org> 7333 7334 Minor source cleanups and optimizations. 7335 7336 * src/smooth/ftgrays.c (GRAYS_COMPACT): Removed. 7337 (TRaster): Remove `count_ex' and `count_ey'. 7338 (gray_find_cell): Remove 2nd and 3rd argument. 7339 (gray_alloc_cell): Merged with `gray_find_cell'. 7340 (gray_record_cell): Simplify. 7341 (gray_set_cell): Rewrite. 7342 (gray_start_cell): Apply offsets to `ras.ex' and `ras.ey'. 7343 (gray_render_span): Don't use FT_MEM_SET for small values. 7344 (gray_dump_cells) [DEBUG_GRAYS]: New function. 7345 (gray_sweep): Avoid buffer overwrites when to drawing the end of a 7346 bitmap scanline. 7347 (gray_convert_glyph): Fix speed-up. 7348 73492006-09-04 David Turner <david@freetype.org> 7350 7351 * src/smooth/ftgrays.c (gray_convert_glyphs): Make it work with 7352 64bit processors. 7353 73542006-09-03 Werner Lemberg <wl@gnu.org> 7355 7356 * devel/ftoption.h: Synchronize with 7357 include/freetype/config/ftoption.h. 7358 7359 * src/smooth/ftgrays.c (gray_record_cell): Remove shadowing 7360 variable declaration. 7361 (gray_convert_glyph): Fix compiler warnings. 7362 73632006-09-01 David Turner <david@freetype.org> 7364 7365 * src/truetype/ttobjs.c (tt_face_init): Update the TrueType loader 7366 to recognize a few fonts that require the automatic unpatented 7367 loader. 7368 7369 * src/smooth/ftgrays.c: Optimize the performance of the anti-aliased 7370 rasterizer. The speed improvement is between 15% and 25%, depending 7371 on the font data. 7372 7373 (GRAYS_USE_GAMMA, GRAYS_COMPACT): Removed, and all associated code. 7374 (TCell): Redefine. 7375 (TRaster): New members `buffer', `buffer_size', `ycells', `ycount'. 7376 (gray_init_cells): Updated. 7377 (gray_find_cell, gray_alloc_cell): New functions. 7378 (gray_record_cell): Rewritten to use `gray_find_cell' and 7379 `gray_alloc_cell'. 7380 (PACK, LESS_THAN, SWAP_CELLS, DEBUG_SORT, QUICK_SORT, SHELL_SORT, 7381 QSORT_THRESHOLD): 7382 Removed. 7383 (gray_shell_sort, gray_quick_sort, gray_check_sort, 7384 gray_dump_cells): Removed. 7385 (gray_sweep): Rewritten. 7386 (gray_convert_glyph): Rewrite code which used one of the sorting 7387 functions. 7388 (gray_raster_render): Updated. 7389 73902006-08-29 Dr. Werner Fink <werner@suse.de> 7391 7392 * configure: Make it possible to handle configure options which 7393 have strings containing spaces. 7394 73952006-08-27 David Turner <david@freetype.org> 7396 7397 * include/freetype/config/ftoption.h (TT_USE_BYTECODE_INTERPRETER): 7398 New macro, defined if either TT_CONFIG_OPTION_BYTECODE_INTERPRETER 7399 or TT_CONFIG_OPTION_UNPATENTED_HINTING is defined. 7400 7401 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c, 7402 src/truetype/truetype.c, src/truetype/ttdriver.c, 7403 src/truetype/ttgload.c, src/truetype/ttgload.h, 7404 src/truetype/ttinterp.c, src/truetype/ttobjs.c, 7405 src/truetype/ttobjs.h, src/truetype/ttpload.c, src/type42/t42drivr.c: 7406 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/. 7407 7408 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New 7409 member `force_autohint'. 7410 7411 * src/base/ftobjs.c (FT_Load_Glyph): Use `force_autohint'. 7412 7413 * src/truetype/ttobjs.c (tt_face_init): Prepare code for testing 7414 against a list of font names which need the bytecode interpreter. 7415 74162006-08-27 Jens Claudius <jens.claudius@yahoo.com> 7417 7418 Fix miscellaneous compiler warnings. 7419 7420 * include/freetype/internal/ftobjs.h: Close comment with `*/' to 7421 avoid `/* in comment' compiler warning. 7422 7423 * src/base/ftdbgmem.c (ft_mem_table_get_source): Turn cast 7424 `(FT_UInt32)(void*)' into `(FT_UInt32)(FT_PtrDist)(void*)' since on 7425 64-bit platforms void* is larger than FT_UInt32. 7426 7427 * src/base/ftobjs.c (t_validator_error): Cast away 7428 volatileness of argument to ft_longjmp. Spotted by Werner 7429 `Putzfrau' Lemberg. 7430 7431 * src/bdf/bdflib.c (bdf_load_font): Initialize local 7432 variable `lineno'. 7433 7434 * src/gxvalid/gxvmod.c (classic_kern_validate): Mark local variable 7435 `error' as volatile. 7436 74372006-08-27 Werner Lemberg <wl@gnu.org> 7438 7439 * builds/unix/ftconfig.in: Synchronize with main ftconfig.h. 7440 Reported by Jens. 7441 74422006-08-22 Jens Claudius <jens.claudius@yahoo.com> 7443 7444 Fix for previous commit, which caused many compiler warnings/errors 7445 about addresses of volatile objects passed as function arguments as 7446 non-volatile pointers. 7447 7448 * include/freetype/internal/ftvalid.h: Make FT_Validator typedef a 7449 pointer to a volatile object. 7450 7451 * src/gxvalid/gxvmod.c (gxv_load_table): Make function argument 7452 `table' a pointer to a volatile object. 7453 7454 * src/otvalid/otvmod.c (otv_load_table): Make function argument 7455 `table' a pointer to a volatile object. 7456 74572006-08-18 Jens Claudius <jens.claudius@yahoo.com> 7458 7459 * src/gxvalid/gxvmod.c (GXV_TABLE_DECL): Mark local variable `_sfnt' 7460 as volatile since it must keep its value across a call to ft_setjmp. 7461 (gxv_validate): Same for local variables `memory' and `valid'. 7462 (classic_kern_validate): Same for local variables `memory', 7463 `ckern', and `valid'. 7464 7465 * src/otvalid/otvmod.c (otv_validate): Same for function parameter 7466 `face' and local variables `base', `gdef', `gpos', `gsub', `jstf', 7467 and 'valid'. 7468 7469 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Same for local variable 7470 `cmap'. 7471 74722006-08-16 David Turner <david@freetype.org> 7473 7474 * src/cid/cidgload.c (cid_slot_load_glyph): Remove compiler 7475 warnings. 7476 7477 * src/base/ftobjs.c (ft_validator_run): Disable function; it is 7478 buggy by design. Always return -1. 7479 7480 7481 Improvements to native TrueType hinting. This is a first try, 7482 controlled by the FIX_BYTECODE macro in src/truetype/ttinterp.c. 7483 7484 * include/freetype/internal/ftgloadr.h (FT_GlyphLoadRec): Add member 7485 `extra_points2'. 7486 7487 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add member 7488 `orus'. 7489 7490 * src/base/ftgloadr.c (FT_GlyphLoader_Reset, 7491 FT_GlyphLoader_Adjust_Points, FT_GlyphLoader_CreateExtra, 7492 FT_GlyphLoader_CheckPoints, FT_GlyphLoader_CopyPoints): Updated to 7493 handle `extra_points2'. 7494 7495 * src/truetype/ttgload.c (tt_prepare_zone): Handle `orus'. 7496 Remove compiler warning. 7497 (cur_to_arg): Remove macro. 7498 (TT_Hint_Glyph): Updated. 7499 (TT_Process_Simple_Glyph): Handle `orus'. 7500 7501 * src/truetype/ttinterp.c (FIX_BYTECODE): New macro. 7502 (Ins_MD, Ins_MDRP, Ins_IP) [FIX_BYTECODE]: Handle `orus'. 7503 (LOC_Ins_IUP): Renamed to... 7504 (IUP_WorkerRec): This. 7505 Add `orus' member. 7506 (Shift): Renamed to... 7507 (_iup_worker_shift): This. 7508 Updated. 7509 (Interp): Renamed to... 7510 (_iup_worker_interpolate): This. 7511 Updated to handle `orus'. 7512 (Ins_IUP): Updated. 7513 7514 * src/truetype/ttobjs.c (tt_glyphzone_done, tt_glyphzone_new): 7515 Handle `orus'. 7516 75172006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7518 7519 * modules.cfg (BASE_EXTENSIONS): Compile in ftgxval.c by default to 7520 build ftvalid in ft2demos. This has been inadvertently changed 7521 2006-08-13. 7522 75232006-08-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7524 7525 `ft_validator_run' wrapping `setjmp' can cause a crash, as found by 7526 Jens: 7527 https://lists.gnu.org/archive/html/freetype-devel/2006-08/msg00004.htm. 7528 7529 * src/otvalid/otvmod.c: Replace `ft_validator_run' by `ft_setjmp'. 7530 It reverts the change introduced on 2005-08-20. 7531 7532 * src/gxvalid/gxvmod.c: Ditto. 7533 75342006-08-13 Jens Claudius <jens.claudius@yahoo.com> 7535 7536 * finclude/freetype/internal/psaux.h: (T1_TokenType): Add 7537 T1_TOKEN_TYPE_KEY. 7538 (T1_FieldRec): Add `dict'. 7539 (T1_FIELD_DICT_FONTDICT, T1_FIELD_DICT_PRIVATE): New macros. 7540 (T1_NEW_XXX, T1_FIELD_XXX): Update to take the dictionary where a PS 7541 keyword is expected as an additional argument. 7542 7543 * src/cid/cidload.c: (cid_field_records): Adjust invocations of 7544 T1_FIELD_XXX. 7545 7546 * src/cid/cidtoken.h: Adjust invocations of T1_FIELD_XXX. 7547 7548 * src/psaux/psobjs.c: Add macro FT_COMPONENT for tracing. 7549 (ps_parser_to_token): Report a PostScript key as T1_TOKEN_TYPE_KEY, 7550 not T1_TOKEN_TYPE_ANY. 7551 (ps_parser_load_field): Make sure a token that should be a string or 7552 name is really a string or name. 7553 Avoid memory leak if a keyword has been already encountered and its 7554 value is overwritten. 7555 * src/type1/t1load.c: (t1_keywords): Adjust invocations of 7556 T1_FIELD_XXX. 7557 (parse_dict): Ignore keywords that occur in the wrong dictionary 7558 (e.g., in `Private' instead of `FontDict'). 7559 7560 * src/type1/t1tokens.h: Adjust invocations of T1_FIELD_XXX. 7561 7562 * src/type42/t42parse.c: (t42_keywords): Adjust invocations of 7563 T1_FIELD_XXX. 7564 75652006-07-18 Jens Claudius <jens.claudius@yahoo.com> 7566 7567 Move creation of field `buildchar' of T1_DecoderRec out of 7568 `t1_decoder_init' and let the caller of `t1_decoder_init' take care 7569 of it. 7570 7571 Call the finisher for T1_Decoder in `cid_face_compute_max_advance' 7572 and `T1_Compute_Max_Advance'. 7573 7574 * include/freetype/internal/psaux.h (T1_DecoderRec): Remove field 7575 `face', add `len_buildchar'. 7576 7577 * include/freetype/internal/t1types.h (T1_FaceRec): Add field 7578 `buildchar'. 7579 7580 * src/cid/cidgload.c (cid_face_compute_max_advance): Call finisher 7581 for T1_Decoder. 7582 (cid_slot_load_glyph): Do not ignore failure when initializing the 7583 T1_Decoder. 7584 7585 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Updated. 7586 (t1_decoder_init): Remove initialization of fields `buildchar' and 7587 `len_buildchar'. 7588 (t1_decoder_done): Remove deallocation of field `buildchar'. 7589 7590 * freetype/src/type1/t1gload.c (T1_Compute_Max_Advance): Initialize 7591 T1_Decoder's `buildchar' and `len_buildchar'; call finisher for 7592 T1_Decoder. 7593 (T1_Load_Glyph): Initialize T1_Decoder's `buildchar' and 7594 `len_buildchar'; make sure to call finisher for T1_Decoder even in 7595 case of error. 7596 7597 * src/type1/t1load.c (T1_Open_Face): Allocate new field `buildchar' 7598 of T1_FaceRec. 7599 7600 * src/type1/t1objs.c (T1_Face_Done): Free new field `buildchar' of 7601 T1_FaceRec. 7602 76032006-07-14 Jens Claudius <jens.claudius@yahoo.com> 7604 7605 * include/freetype/internal/psaux.h: New macros IS_PS_NEWLINE, 7606 IS_PS_SPACE, IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, 7607 and IS_PS_BASE85 (from src/psaux/psconv.h). 7608 (T1_FieldLocation): Add T1_FIELD_LOCATION_LOADER, 7609 T1_FIELD_LOCATION_FACE, and T1_FIELD_LOCATION_BLEND. 7610 (T1_DecoderRec): New fields `buildchar' and `face'. 7611 (IS_PS_TOKEN): New macro. 7612 7613 * include/freetype/internal/t1types.h (T1_FaceRec): New fields 7614 `ndv_idx', `cdv_idx', and `len_buildchar'. 7615 7616 * include/freetype/t1tables.h (PS_BlendRec): New fields 7617 `default_design_vector' and `num_default_design_vector'. 7618 7619 * src/psaux/psconv.h: Move macros IS_PS_NEWLINE, IS_PS_SPACE, 7620 IS_PS_SPECIAL, IS_PS_DELIM, IS_PS_DIGIT, IS_PS_XDIGIT, and 7621 IS_PS_BASE85 to include/freetype/internal/psaux.h. 7622 7623 * src/psaux/psobjs.c (ps_parser_to_token_array): Allow `token' 7624 argument to be NULL if we want only to count the number of tokens. 7625 (ps_tocoordarray): Allow `coords' argument to be NULL if we just 7626 want to skip the array. 7627 (ps_tofixedarray): Allow `values' argument to be NULL if we just 7628 want to skip the array. 7629 7630 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add support 7631 for (partially commented out) othersubrs 19-25, 27, and 28. 7632 (t1_decoder_init): Initialize new fields `face' and `buildchar'. 7633 (t1_decoder_done): Release new field `buildchar'. 7634 7635 * src/type1/t1load.c (parse_buildchar, parse_private): New 7636 functions. 7637 (t1_keywords): Register them. 7638 (t1_allocate_blend): Updated. 7639 (t1_load_keyword): Handle field types T1_FIELD_LOCATION_LOADER, 7640 T1_FIELD_LOCATION_FACE and T1_FIELD_LOCATION_BLEND. 7641 (parse_dict): Remove `keyword_flags' argument. 7642 Use new macro IS_PS_TOKEN. 7643 Changed function so that later PostScript definitions override 7644 earlier ones. 7645 (t1_init_loader): Initialize new field `keywords_encountered'. 7646 (T1_Open_Face): Initialize new fields `ndv_idx', `cdv_idx', and 7647 `len_buildchar'. 7648 Remove `keywords_flags'. 7649 7650 * src/type1/t1load.h (T1_LoaderRec): New field 7651 `keywords_encountered'. 7652 (T1_PRIVATE, T1_FONTDIR_AFTER_PRIVATE): New macros. 7653 7654 * src/type1/t1tokens.h [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: New 7655 entries for parsing /NDV, /CDV, and /DesignVector. 7656 76572006-07-07 Werner Lemberg <wl@gnu.org> 7658 7659 Add many checks to protect against malformed PCF files. 7660 7661 * src/pcf/pcfdrivr.c (PCF_Face_Done): Protect against NULL pointers. 7662 (PCF_Face_Init): Add calls to PCF_Face_Done in case of errors. 7663 7664 * src/pcf/pcfread.c (pcf_read_TOC): Protect against malformed table 7665 data and check that tables don't overlap (using a simple 7666 bubblesort). 7667 (PCF_METRIC_SIZE, PCF_COMPRESSED_METRIC_SIZE, PCF_PROPERTY_SIZE): 7668 New macros which give the size of data structures in the data 7669 stream. 7670 (pcf_get_properties): Use rough estimates to get array size limits. 7671 Assign `face->nprops' and `face->properties' earlier so that a call 7672 to PCF_Face_Done can do the clean-up in case of error. 7673 Protect against invalid string offsets. 7674 (pcf_get_metrics): Clean up code. 7675 Adjust tracing message levels. 7676 Use rough estimate to get array size limit. 7677 (pcf_get_bitmaps): Clean up code. 7678 Adjust tracing message levels. 7679 Use rough estimates to get offset limits. 7680 (pcf_get_encodings): Adjust tracing message level. 7681 (pcf_get_accel): Clean up code. 7682 76832006-06-26 Werner Lemberg <wl@gnu.org> 7684 7685 * src/bdf/bdfdrivr.c (BDF_Face_Init): Handle fonts correctly which 7686 don't have a POINT_SIZE property. This fixes Savannah bug #16914. 7687 76882006-06-26 Jens Claudius <jens.claudius@yahoo.com> 7689 7690 * src/psaux/t1decode.c (T1_Operator, t1_args_count): Add opcode 15. 7691 (t1_decoder_parse_charstrings): Operator with 7692 opcode 15 pops its two arguments. 7693 Handle the case where the pops of an othersubr may be part of a 7694 subroutine. 7695 Handle unknown othersubrs gracefully: count their operands and let 7696 the following pop operators push the operands as the results onto 7697 the Type1 stack. 7698 Improve handling of setcurrentpoint opcode. 7699 77002006-06-25 Jens Claudius <jens.claudius@yahoo.com> 7701 7702 The Type 1 parser now skips over top-level procedures as required 7703 for a `Simplified Parser'. This makes the parser more robust as it 7704 doesn't poke around in PostScript code. Additionally, it makes the 7705 FontDirectory hackery in src/type1/t1load.c unnecessary. 7706 7707 * src/psaux/psobjs.c (IS_OCTAL_DIGIT): New macro. 7708 (skip_literal_string): Add FT_Error as return value. 7709 Handle escapes better. 7710 (skip_string): Add FT_Error as return value. 7711 Don't set `parser->error' but return error code directly. 7712 (skip_procedure): New function. 7713 (ps_parser_skip_PS_token): Handle procedures. 7714 Update code. 7715 (ps_parser_to_token): Update code. 7716 (ps_parser_load_field_table): Handle bbox entries also. 7717 7718 * src/type1/t1load.c (parse_dict): Remove FontDirectory hackery. 7719 Add commented-out code for synthetic fonts. 7720 77212006-06-24 Eugeniy Meshcheryakov <eugen@univ.kiev.ua> 7722 7723 Fix two hinting bugs as reported in 7724 https://lists.gnu.org/archive/html/freetype-devel/2006-06/msg00057.html. 7725 7726 * include/freetype/internal/tttypes.h (TT_GlyphZoneRec): Add 7727 `first_point' member. 7728 7729 * src/truetype/ttgload.c (tt_prepare_zone): Initialize 7730 `first_point'. 7731 (TT_Process_Composite_Glyph): Always untouch points. 7732 7733 * src/truetype/ttinterp.c (Ins_SHC): Fix computation of 7734 `first_point' and `last_point' in case of composite glyphs. 7735 (Ins_IUP): Fix computation of `end_point'. 7736 77372006-06-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7738 7739 Insert EndianS16_BtoN and EndianS32_BtoN as workaround for Intel 7740 Mac. The original patch was written by David Sachitano and Lawrence 7741 Coopet, and modified by Sean McBride for MPW compatibility. Only 7742 required data are converted; unused data are left in big endian. 7743 7744 * src/base/ftmac.c: Include <Endian.h> for byteorder macros for non 7745 Mac OS X platforms. 7746 (OS_INLINE): Undefine before definition. 7747 (count_faces_sfnt): Insert EndianS16_BtoN to parse the header of 7748 FontAssociation table in FOND resource. 7749 (count_faces_scalable): Insert EndianS16_BtoN to parse the header 7750 and fontSize at each entry of FontAssociation table in FOND 7751 resource. 7752 (parse_fond): Insert EndianS16_BtoN and EndianS32_BtoN to parse 7753 ffStylOff of FamilyRecord header of FOND resource, the header, 7754 fontSize, fontID at each entry of FontAssociation table, and 7755 StyleMapping table. 7756 (count_faces): Call `HUnlock' after all FOND utilization. 7757 77582006-06-08 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7759 7760 Public API of TrueTypeGX, OpenType, and classic kern table validator 7761 should return `FT_Err_Unimplemented_Feature' if validation service 7762 is unavailable (disabled in `modules.cfg'). It is originally 7763 suggested by David Turner, cf. 7764 https://lists.gnu.org/archive/html/freetype-devel/2005-11/msg00078.html 7765 7766 * src/base/ftgxval.c (FT_TrueTypeGX_Validate): Return 7767 FT_Err_Unimplemented_Feature if TrueTypeGX validation service is 7768 unavailable. 7769 (FT_ClassicKern_Validate): Return FT_Err_Unimplemented_Feature if 7770 classic kern table validation service is unavailable. 7771 7772 * src/base/ftotval.c (FT_OpenType_Validate): Return 7773 FT_Err_Unimplemented_Feature if OpenType validation service is 7774 unavailable. 7775 77762006-06-08 Werner Lemberg <wl@gnu.org> 7777 7778 * src/bdf/bdflib.c (bdf_load_font): Fix memory leaks in case of 7779 errors. 7780 77812006-06-07 David Turner <david@freetype.org> 7782 7783 * src/type1/t1afm.c (KERN_INDEX): Make it more robust. 7784 (T1_Read_Metrics): Fix memory leak which happened when the metrics 7785 file doesn't have kerning pairs. This fixes Savannah bug #16768. 7786 77872006-06-06 David Turner <david@freetype.org> 7788 7789 Fix memory leak described in Savannah bug #16759. 7790 7791 We change `ps_unicodes_init' so that it also takes a 7792 `free_glyph_name' callback to release the glyph names returned by 7793 `get_glyph_name' 7794 7795 * include/freetype/internal/services/svpscmap.h (PS_Glyph_NameFunc): 7796 Renamed to ... 7797 (PS_GetGlyphNameFunc): This. 7798 (PS_FreeGlyphNameFunc): New typedef. 7799 (PS_Unicodes_InitFunc): Add variable for PS_FreeGlyphNameFunc. 7800 7801 * src/cff/cffcmap.c (cff_sid_to_glyph_name): Use `TT_Face' for first 7802 argument. 7803 (cff_sid_free_glyph_name): New function. 7804 (cff_cmap_unicode_init): Updated. 7805 7806 * src/psaux/t1cmap.c (t1_cmap_unicode_init): Updated. 7807 7808 * src/psnames/psmodule.c (ps_unicodes_init): Add variable for 7809 PS_FreeGlyphNameFunc and use it. 7810 7811 78122006-06-04 David Turner <david@freetype.org> 7813 7814 * src/base/ftutil.c (ft_mem_qrealloc): Fix the function to accept 7815 `item_size == 0' as well -- though this sounds weird, it can 7816 theoretically happen. This fixes Savannah bug #16669. 7817 7818 * src/pfr/pfrobjs.c (pfr_face_init): Fix the computation 7819 of `face->num_glyphs' which missed the last glyph, due to 7820 the offset-by-1 computation, since the PFR format doesn't 7821 guarantee that glyph index 0 corresponds to the `missing 7822 glyph. This fixes Savannah bug #16668. 7823 78242006-05-25 Werner Lemberg <wl@gnu.org> 7825 7826 * builds/unix/unix-cc.in (LINK_LIBRARY): Don't comment out 7827 `-no-undefined'. Reported by Christian Biesinger. 7828 78292006-05-19 Brian Weed <bw@imaginengine.com> 7830 7831 * builds/win32/visualc/freetype.dsp: Release libraries no longer 7832 have debug information, and debug libraries use `C7 compatible' 7833 debug info. 7834 78352006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7836 7837 Apply patch by Derek Clegg to fix two memory leaks in the MacOS 7838 resource fork handler. This fixes Savannah bug #16631. 7839 7840 * src/base/ftobjs.c (load_face_in_embedded_rfork): Replace 7841 `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak. 7842 7843 * src/base/ftrfork.c (raccess_guess_linux_double_from_file_name): 7844 Replace `FT_Stream_Close' by `FT_Stream_Free' to fix memory leak. 7845 78462006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7847 7848 * build/unix/configure.raw: Add a fallback to disable Carbon 7849 dependency, if configured with no options on Mac OS X. 7850 78512006-05-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 7852 7853 * src/base/ftmac.c (open_face_from_buffer): Deallocate stream when 7854 its content cannot be parsed as supported font. This fixes 7855 the second part of Savannah bug #16590. 7856 78572006-05-18 Werner Lemberg <wl@gnu.org> 7858 7859 * src/truetype/ttgload.c (TT_Load_Composite_Glyph) 7860 [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Make it compilable again. 7861 78622006-05-17 David Turner <david@freetype.org> 7863 7864 This is a major patch used to drastically improve the performance of 7865 loading glyphs. This both speeds up loading the glyph vectors 7866 themselves and the auto-fitter module. 7867 7868 We now use inline assembler code with GCC to implement `FT_MulFix', 7869 which is probably the most important function related to the 7870 engine's performance. 7871 7872 The resulting speed-up is about 25%. 7873 7874 7875 * include/freetype/internal/tttypes.h (TT_LoaderRec): Add fields 7876 `cursor' and `limit'. 7877 7878 * src/autofit/afangles.c (af_corner_is_flat, af_corner_orientation): 7879 New functions. 7880 (AF_ATAN_BITS, af_arctan, af_angle_atan): Comment out. 7881 [TEST]: Remove. 7882 7883 * src/autofit/afcjk.c (AF_Script_UniRangeRec): Comment out test 7884 code. 7885 7886 * src/autofit/afhints.c (af_axis_hints_new_segment): Don't call 7887 `FT_ZERO' 7888 (af_direction_compute, af_glyph_hints_compute_inflections): Rewritten. 7889 (af_glyph_hints_reload: Rewrite recognition of weak points. 7890 7891 * src/autofit/aflatin.c (af_latin_hints_compute_segments): Move 7892 constant values out of the loops. 7893 7894 * src/autofit/aftypes.h: Updated. 7895 7896 * src/base/ftcalc.c (FT_MulFix): Use inline assembler code. 7897 7898 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Use vector 7899 product to get orientation. 7900 7901 * src/gzip/ftgzip.c (ft_get_uncompressed_size): New function. 7902 (FT_Stream_OpenGzip): Use it to handle small files directly in 7903 memory. 7904 7905 * src/psaux/psconv.c (PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): 7906 Improve performance. 7907 7908 * src/truetype/ttgload.c (TT_Access_Glyph_Frame): Set `cursor' and 7909 `limit'. 7910 7911 (TT_Load_Glyph_Header, TT_Load_Simple_Glyph, 7912 TT_Load_Composite_Glyph): Updated. Add threshold to protect against 7913 exceedingly large values of number of contours. Speed up by 7914 reducing the number of loops. 7915 7916 * src/type1/t1gload.c (T1_Load_Glyph): Don't apply unit matrix. 7917 7918 7919 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Change the threshold 7920 used to detect rogue clients from 4 to 16. This is to prevent some 7921 segmentation faults with fonts like `KozMinProVI-Regular.otf' which 7922 comes from the Japanese Adobe Reader Asian Font pack. 7923 79242007-05-17 Werner Lemberg <wl@gnu.org> 7925 7926 * src/cff/cffload.c (cff_font_done): Deallocate subfont array. This 7927 fixes the first part of Savannah bug #16590. 7928 79292006-05-16 Werner Lemberg <wl@gnu.org> 7930 7931 * docs/PROBLEMS: Updated icl issues. 7932 7933---------------------------------------------------------------------------- 7934 7935Copyright (C) 2006-2020 by 7936David Turner, Robert Wilhelm, and Werner Lemberg. 7937 7938This file is part of the FreeType project, and may only be used, modified, 7939and distributed under the terms of the FreeType project license, 7940LICENSE.TXT. By continuing to use, modify, or distribute this file you 7941indicate that you have read the license and understand and accept it 7942fully. 7943 7944 7945Local Variables: 7946version-control: never 7947coding: utf-8 7948End: 7949