12013-05-08 Werner Lemberg <wl@gnu.org> 2 3 * Version 2.4.12 released. 4 ========================== 5 6 7 Tag sources with `VER-2-4-12'. 8 9 * docs/VERSION.DLL: Update documentation and bump version number to 10 2.4.12. 11 12 * README, Jamfile (RefDoc), 13 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 14 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 15 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, 16 builds/win32/visualc/freetype.dsp, 17 builds/win32/visualc/freetype.vcproj, 18 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 19 builds/win32/visualce/freetype.vcproj, 20 builds/win32/visualce/index.html, 21 builds/wince/vc2005-ce/freetype.vcproj, 22 builds/wince/vc2005-ce/index.html, 23 builds/wince/vc2008-ce/freetype.vcproj, 24 builds/wince/vc2008-ce/index.html: s/2.4.11/2.4.12/, s/2411/2412/. 25 26 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 12. 27 28 * builds/unix/configure.raw (version_info): Set to 16:1:10. 29 302013-05-08 Werner Lemberg <wl@gnu.org> 31 32 * docs/CHANGES: Updated. 33 342013-05-08 Werner Lemberg <wl@gnu.org> 35 36 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Typo. 37 382013-05-05 Werner Lemberg <wl@gnu.org> 39 40 Synchronize `ftconfig.h'. 41 42 * builds/unix/ftconfig.in: Updated. 43 442013-05-05 Werner Lemberg <wl@gnu.org> 45 46 Fix compilation with C++. 47 48 * src/base/md5.c (body): Use proper cast. 49 502013-05-05 Werner Lemberg <wl@gnu.org> 51 52 Fix 64bit compilation issues. 53 54 * include/freetype/config/ftconfig.h [FT_LONG64]: Typedef 55 `FT_Int64' here. 56 57 * src/base/ftcalc.c: Remove typedef of `FT_Int64'. 58 (FT_DivFix): Fix cast. 59 * src/base/fttrigon.c: Remove typedef of `FT_Int64'. 60 612013-05-05 Werner Lemberg <wl@gnu.org> 62 63 [raster] Fix clang issues. 64 65 Fix suggested by <octoploid@yandex.com>. 66 67 * src/raster/ftraster.c (ULong): New typedef. 68 (SCALED): Add proper cast. 69 702013-05-04 Werner Lemberg <wl@gnu.org> 71 72 Fix clang fixes. 73 74 * src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate): Use 75 correct types. 76 77 * src/cff/cf2intrp.c (cf2_interpT2CharString) <default>: Force 78 unsigned for computations. 79 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Ditto. 80 * src/cff/cffparse.c (cff_parse_integer): Ditto. 81 82 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto. 83 842013-05-04 Werner Lemberg <wl@gnu.org> 85 86 [cff] Make Adobe CFF engine work correctly on 64bit hosts. 87 88 Reported by numerous people on the `freetype-devel' list. Without 89 this fix, glyphs aren't properly aligned on a common baseline. 90 91 On 64bit systems, `FT_Pos' expands to `long int', having a width of 92 64bit. `CF2_Fixed' expands to `int' which is normally 32bit wide on 93 64bit hosts also. Wrong casts filled up the blues arrays with 94 incorrect values. Note that all blues values are accessed with the 95 `cf2_blueToFixed' macro which handles the 64bit to 32bit conversion. 96 97 * src/cff/cf2ft.h (cf2_getBlueValues, cf2_getOtherBlues, 98 cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Use `FT_Pos' for 99 `data', not `CF2_Fixed'. 100 * src/cff/cf2ft.c (cf2_getBlueValues, cf2_getOtherBlues, 101 cf2_getFamilyBlues, cf2_getFamilyOtherBlues): Updated. 102 * src/cff/cf2blues.c (cf2_blues_init): Updated. 103 1042013-05-04 Werner Lemberg <wl@gnu.org> 105 106 More fixes for clang's `sanitize' feature. 107 108 * src/base/ftcalc.c (FT_DivFix): Use unsigned values for 109 computations which use the left shift operator and convert to signed 110 as the last step. 111 * src/base/fttrigon.c (ft_trig_prenorm, FT_Vector_Rotate, 112 FT_Vector_Length, FT_Vector_Polarize): Ditto. 113 114 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Simplify. 115 * src/cff/cffload.c (cff_subfont_load): Fix constant. 116 * src/cff/cffparse.c (cff_parse_integer, cff_parse_real, do_fixed, 117 cff_parse_fixed_dynamic): Use unsigned values for computations which 118 use the left shift operator and convert to signed as the last step. 119 120 * src/cid/cidload.c (cid_get_offset): Ditto. 121 122 * src/psaux/psconv.c (PS_Conv_ToFixed): Ditto. 123 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Ditto. 124 125 * src/truetype/ttinterp.c (TT_MulFix14, TT_DotFix14): Ditto. 126 1272013-05-04 Werner Lemberg <wl@gnu.org> 128 129 Fix errors reported by clang's `sanitize' feature. 130 131 * include/freetype/internal/ftstream.h: Simplify and fix integer 132 extraction macros. 133 (FT_INT8_, FT_BYTE_I16, FT_BYTE_I32, FT_INT8_I16, FT_INT8_I32, 134 FT_INT8_I32, FT_INT8_U32): Removed. 135 (FT_PEEK_SHORT, FT_PEEK_LONG, FT_PEEK_OFF3, FT_PEEK_SHORT_LE, 136 FT_PEEK_LONG_LE, FT_PEEK_OFF3_LE): Use unsigned values for 137 computations and convert to signed as the last step. 138 139 * src/cff/cf2fixed.h (cf2_intToFixed, cf2_fixedToInt, 140 cf2_fracToFixed): Avoid shifts of negative values. 141 (cf2_intToFrac, cf2_fixedToFrac, cf2_fixedTo26Dot6): Removed, 142 unused. 143 144 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdEXTENDEDNMBR, 145 default>: Use unsigned values for computations and convert to signed 146 as the last step. 147 Use proper types in tracing messages. 148 149 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Use unsigned 150 values for computation of operands and convert to signed as the last 151 step. 152 Use proper type in tracing message. 153 1542013-05-03 Werner Lemberg <wl@gnu.org> 155 156 * src/cff/cf2blues.c: Remove dead code. 157 1582013-05-02 Chris Liddell <chris.liddell@artifex.com> 159 160 * src/cff/cffgload.c: Include FT_CFF_DRIVER_H. 161 1622013-04-27 Werner Lemberg <wl@gnu.org> 163 164 * docs/CHANGES: Updated. 165 * README: Improved. 166 1672013-04-13 Werner Lemberg <wl@gnu.org> 168 169 [cff] Add a new Type 2 interpreter and hinter. 170 171 This work, written by Dave Arnold <darnold@adobe.com> and fully 172 integrated into FreeType by me, is a donation by Adobe in 173 collaboration with Google. It is vastly superior to the old CFF 174 engine, and it will replace it soon. Right now, it is still off by 175 default, and you have to explicitly select it using the new 176 `hinting-engine' property of the cff driver. 177 178 For convenience, (most of) the new files are committed separately. 179 180 * include/freetype/config/ftheader.h (FT_CFF_DRIVER_H): New macro. 181 * include/freetype/ftcffdrv.h: New file to access CFF driver 182 properties. 183 * include/freetype/fterrdef.h (FT_Err_Glyph_Too_Big): New error 184 code. 185 * include/freetype/internal/fttrace.h: Add `cf2blues', `cf2hints', 186 and `cf2interp'. 187 188 * src/cff/cffgload.h (CFF_SubFont): New member `current_subfont'. 189 * src/cff/cffobjs.h (CFF_DriverRec): New members `hinting_engine' 190 and `no_stem_darkening'. 191 * src/cff/cfftypes.h (CFF_FontRec): New member `cf2_instance'. 192 193 * src/cff/cff.c: Include new files. 194 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle 195 `hinting-engine' and `no-stem-darkening' properties (only the Adobe 196 engine listens to them). 197 * src/cff/cffgload.c: Include `cf2ft.h'. 198 (cff_decoder_prepare): Initialize `current_subfont'. 199 (cff_build_add_point): Handle Adobe engine which uses 16.16 200 coordinates. 201 (cff_slot_load): Handle FT_LOAD_NO_SCALE and FT_LOAD_NO_HINTING 202 separately. 203 Choose rendering engine based on `hinting_engine' property. 204 * src/cff/cffload.c (cff_font_done): Call finalizer of the Adobe 205 engine. 206 * src/cff/cffobjs.c: Include FT_CFF_DRIVER_H. 207 (cff_driver_init): Set default property values. 208 209 * src/cff/rules.mk (CFF_DRV_SRC, CFF_DRV_H): Add new files. 210 211 * src/cff/cf2*.*: New files, containing the Adobe engine. 212 2132013-04-12 Werner Lemberg <wl@gnu.org> 214 215 [cff] Minor code administration issues. 216 217 * src/cff/cffgload.c (check_points): Rename to... 218 (cff_check_points): ...this and make it FT_LOCAL. 219 (cff_builder_add_point, cff_builder_add_point1, 220 cff_builder_start_point, cff_builder_close_contour, 221 cff_lookup_glyph_by_stdcharcode, cff_get_glyph_data, 222 cff_free_glyph_data): Make them FT_LOCAL. 223 224 * src/cff/cffgload.h: Updated. 225 2262013-04-12 Werner Lemberg <wl@gnu.org> 227 228 Add output bitmap checksums. 229 230 Use `FT2_DEBUG=bitmap:3' for tracing. 231 232 * src/base/md5.c, src/base/md5.h: New files, taken from 233 234 https://openwall.info/wiki/people/solar/software/public-domain-source-code/md5 235 236 * include/freetype/internal/fttrace.h: Add `bitmap'. 237 238 * src/base/ftobjs.c [FT_DEBUG_LEVEL_TRACE]: Include `md5.c' 239 240 (FT_Render_Glyph_Internal) [FT_DEBUG_LEVEL_TRACE]: For tracing, 241 convert resulting bitmap to a uniform format and compute a checksum. 242 Use `bitmap' category for the tracing message. 243 244 * src/base/rules.mk (BASE_H): Updated. 245 246 * docs/LICENSE.TXT: Updated. 247 2482013-04-12 Werner Lemberg <wl@gnu.org> 249 250 [cff] Add framework for CFF properties. 251 252 * include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC7): 253 New macro. 254 255 * src/cff/cffdrivr.c: Include FT_SERVICE_PROPERTIES_H. 256 (cff_property_set, cff_property_get): New functions, still empty. 257 Define `cff_service_properties' service. 258 Update `cff_services'. 259 260 * src/cff/cffpic.h: Include FT_SERVICE_PROPERTIES_H. 261 (CFF_SERVICE_PROPERTIES_GET): New macro. 262 (CffModulePIC): Add `cff_service_properties'. 263 2642013-04-03 Werner Lemberg <wl@gnu.org> 265 266 [bdf] Fix Savannah bug #38589. 267 268 * src/bdf/bdflib.c (_bdf_readstream): Thinko. 269 2702013-03-31 Werner Lemberg <wl@gnu.org> 271 272 * configure: Use egrep, not grep. 273 274 Problem reported Mojca Miklavec <mojca.miklavec.lists@gmail.com>. 275 2762013-03-29 Werner Lemberg <wl@gnu.org> 277 278 * include/freetype/ftlcdfil.h: Add description of color filtering. 279 280 Based on a contribution from Antti S. Lankila <alankila@bel.fi> 281 (Savannah bug #38607). 282 2832013-03-23 Werner Lemberg <wl@gnu.org> 284 285 [autofit] Minor. 286 287 * src/autofit/afmodule.c (af_property_set): Typo. 288 (af_autofitter_init, af_autofitter_done): Use cast. 289 2902013-03-21 Werner Lemberg <wl@gnu.org> 291 292 * configure: Automatically test for `gmake' also. 293 294 Suggested by Mojca Miklavec <mojca.miklavec.lists@gmail.com>. 295 2962013-03-21 Peter Breitenlohner <peb@mppmu.mpg.de> 297 298 Respect CONFIG_SHELL from the environment. 299 300 Some large packages using FreeType have to use a broken (deficient) 301 /bin/sh. The configure scripts (as generated by Autoconf) are 302 clever enough to find a better shell and put that one into the 303 environment variable CONFIG_SHELL. If that environment variable is 304 already set the script skips the test and assumes to be already 305 running under a good shell. 306 307 * builds/unix/detect.mk: Honour CONFIG_SHELL. 308 * builds/unix/unix-def.in (SHELL): Define. 309 3102013-03-21 Werner Lemberg <wl@gnu.org> 311 312 Fix Savannah patch #7971. 313 314 * configure: Handle MAKE environment variable also. 315 3162013-03-17 Werner Lemberg <wl@gnu.org> 317 318 Fix Savannah bug #38538. 319 320 * builds/amiga/src/base/ftdebug.c, builds/win32/ftdebug.c, 321 builds/wince/ftdebug.c (FT_Throw): Add function. 322 3232013-03-17 Werner Lemberg <wl@gnu.org> 324 325 [raster] Remove dead code. 326 327 * src/raster/rastpic.c (ft_raster1_renderer_class_pic_init) 328 src/smooth/ftspic.c (ft_smooth_renderer_class_pic_init): Do it. 329 3302013-03-17 Werner Lemberg <wl@gnu.org> 331 332 * src/pshinter/pshpic.h (GET_PIC): Use correct container. 333 3342013-03-15 Werner Lemberg <wl@gnu.org> 335 336 * include/freetype/ftmoderr.h: Fix commit from 2013-03-11. 337 338 The previous version was not backward compatible. Reported by 339 Behdad. 340 3412013-03-14 Werner Lemberg <wl@gnu.org> 342 343 */*: Use FT_ERR_EQ, FT_ERR_NEQ, and FT_ERR where appropriate. 344 345 FT_Err_XXX and friends are no longer directly used in the source 346 code. 347 3482013-03-14 Werner Lemberg <wl@gnu.org> 349 350 New error management macros. 351 352 * include/freetype/fterrors.h (FT_ERR_XCAT, FT_ERR_CAT): Move to... 353 * include/freetype/fttypes.h: ... this file. 354 (FT_ERR, FT_ERR_EQ, FT_ERR_NEQ, FT_MODERR_EQ, FT_MODERR_NEQ): New 355 macros. 356 357 * include/freetype/freetype.h: Updated. 358 3592013-03-14 Werner Lemberg <wl@gnu.org> 360 361 */*: Use FT_Err_Ok only. 362 363 This is a purely mechanical conversion. 364 3652013-03-14 Werner Lemberg <wl@gnu.org> 366 367 */*: Use `FT_THROW'. 368 369 This is essentially a mechanical conversion, adding inclusion of 370 `FT_INTERNAL_DEBUG_H' where necessary, and providing the macros for 371 stand-alone compiling modes of the rasterizer modules. 372 373 To convert the remaining occurrences of FT_Err_XXX and friends it is 374 necessary to rewrite the code. Note, however, that it doesn't harm 375 if some cases are not handled since FT_THROW is a no-op. 376 3772013-03-13 Werner Lemberg <wl@gnu.org> 378 379 Introduce `FT_THROW' macro. 380 381 The idea is to replace code like 382 383 return FT_Err_Foo_Bar; 384 385 or 386 387 return CFF_Err_Foo_Bar; 388 389 with 390 391 return FT_THROW( Foo_Bar ); 392 393 The FT_THROW macro has two functions: 394 395 . It hides the module specific prefix. 396 397 . In debug mode, it calls the empty function `FT_Throw' which can 398 be thus used to set a breakpoint. 399 400 * include/freetype/internal/ftdebug.h (FT_THROW): New macro. 401 (FT_Throw): New prototype. 402 * src/base/ftdebug.c (FT_Throw): New function. 403 4042013-03-12 Werner Lemberg <wl@gnu.org> 405 406 Remove `FT_KEEP_ERR_PREFIX'. 407 408 The idea is to always have FT_ERR_PREFIX available internally. 409 410 * include/freetype/fterrors.h: Use FT2_BUILD_LIBRARY to guard 411 undefinition of FT_ERR_PREFIX 412 413 * src/gxvalid/gxverror.h, src/otvalid/otverror.h, 414 src/sfnt/sferrors.h: Updated. 415 4162013-03-11 Werner Lemberg <wl@gnu.org> 417 418 [gxvalid] Fix module error. 419 420 * src/gxvalid/gxverror.h (FT_ERR_BASE): Define as 421 FT_Mod_Err_GXvalid. 422 * include/freetype/ftmoderr.h: Add module error for `GXvalid'. 423 4242013-03-11 Werner Lemberg <wl@gnu.org> 425 426 Always use module related error codes. 427 428 * src/cff/cffobjs.c (cff_face_init), src/type1/t1objs.c 429 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Use 430 `FT_ERROR_BASE'. 431 432 * src/type1/t1load.c (parse_encoding): Use 433 T1_Err_Unknown_File_Format. 434 4352013-03-08 Werner Lemberg <wl@gnu.org> 436 437 [cff] Set `linear{Hori,Vert}Advance' for embedded bitmaps also. 438 439 Problem reported by Khaled Hosny <khaledhosny@eglug.org>. 440 441 * src/cff/cffgload.c (cff_slot_load): Implement it. 442 4432013-02-23 Alexei Podtelezhnikov <apodtele@gmail.com> 444 445 [base] Fix commit ab02d9e8. 446 447 * src/base/ftbbox.c (BBox_Cubic_Check): Change scaling to msb of 22. 448 4492013-02-19 Alexei Podtelezhnikov <apodtele@gmail.com> 450 451 [base] New bisecting BBox_Cubic_Check (disabled). 452 453 * src/base/ftbbox.c (BBox_Cubic_Check): New bisecting algorithm 454 for extremum search built around simple condition that defines 455 which half contains the extremum. 456 4572013-02-18 Alexei Podtelezhnikov <apodtele@gmail.com> 458 459 [tools] Update BBox testing tool. 460 461 * src/tools/test_bbox.c: Add another cubic outline with exact BBox. 462 (REPEAT): Increase the number of benchmarking cycles. 463 (profile_outline): Tweak output formatting. 464 4652013-02-02 Werner Lemberg <wl@gnu.org> 466 467 Fix Savannah bug #38235. 468 469 * builds/unix/configure.raw: Don't generate `freetype-config' and 470 `freetype.pc'. 471 472 * builds/unix/unix-def.in (FT2_EXTRA_LIBS, LIBBZ2, LIBZ, 473 build_libtool_libs, ft_version): New variables to be substituted. 474 (freetype-config, freetype.pc): New rules to generate those files. 475 476 * builds/unix/freetype-config.in: Remove code for handling `rpath'. 477 The use of $rpath has been accidentally removed in a patch from 478 2009-12-22, and apparently noone has missed it since. 479 Use `%' instead of `@' as a variable substitution marker. 480 Use quotes. 481 482 * builds/unix/freetype.in: Use `%' instead of `@' as a variable 483 substitution marker. 484 Use quotes. 485 4862013-02-07 Werner Lemberg <wl@gnu.org> 487 488 * src/truetype/ttobjs.c (tt_size_run_prep): Reset more GS variables. 489 490 BTW, Greg agrees that the OpenType specification is missing the list 491 of GS variables which will always be reset to the default values 492 after the `prep' table has been executed. 493 4942013-02-06 Werner Lemberg <wl@gnu.org> 495 496 * src/truetype/ttobjs.c (tt_size_run_prep): Reset reference points. 497 498 Up to now, we simply took a snapshot of the Graphics State after the 499 `prep' table has been executed, and right before a glyph's bytecode 500 was run it got reloaded. However, as Greg Hitchcock has told us in 501 private communication, reference points get reset to zero in the MS 502 rasterizer and we follow in due course. While reasonable, this is 503 undocumented behaviour. 504 505 Most notably, this fixes the rendering of Arial's `x' glyph in 506 subpixel hinting mode. 507 5082013-02-05 Werner Lemberg <wl@gnu.org> 509 510 [truetype] A better fix for Savannah bug #38211. 511 512 * src/truetype/ttinterp.c (Ins_IP): Implement identical behaviour to 513 MS rasterizer if rp1 == rp2 (confirmed by Greg Hitchcock). 514 5152013-02-01 Alexei Podtelezhnikov <apodtele@gmail.com> 516 517 [pcf] Streamline parsing of PCF encoding table. 518 519 * src/pcf/pcfread.c (pcf_get_encodings): Use simpler double for-loop. 520 Reallocate array instead of using temporary storage. 521 5222013-02-01 Werner Lemberg <wl@gnu.org> 523 524 Fix Savannah bug #38227. 525 526 * builds/unix/freetype-config.in: Set LC_ALL. 527 5282013-02-01 Werner Lemberg <wl@gnu.org> 529 530 Fix Savannah bug #38221. 531 532 This complements commit 83c0ebab. 533 534 * src/base/ftcalc.c (FT_MulDiv_No_Round): Don't enclose with 535 `TT_USE_BYTECODE_INTERPRETER'. 536 5372013-02-01 Werner Lemberg <wl@gnu.org> 538 539 [truetype] Fix Savannah bug #38211. 540 541 * src/truetype/ttinterp.c (Ins_IP): Make FreeType behave identical 542 to other interpreters if rp1 == rp2 (which is invalid). 543 5442013-01-28 Alexei Podtelezhnikov <apodtele@gmail.com> 545 546 [base] Small optimization of BBox calculation. 547 548 * src/base/ftbbox.c (BBox_Cubic_Check): Use FT_MSB function in 549 scaling algorithm. 550 5512013-01-26 Infinality <infinality@infinality.net> 552 553 [truetype] Minor formatting fix. 554 555 * src/truetype/ttinterp.c: Updated. 556 (DO_RS): Fix indentation. 557 5582013-01-26 Infinality <infinality@infinality.net> 559 560 [truetype] Fix rasterizer_version logic in sph. 561 562 * src/truetype/ttsubpix.c: Updated. 563 (ALWAYS_SKIP_DELTAP_Rules): Remove rule for Trebuchet MS. 564 (sph_set_tweaks): Fix `rasterizer_version' logic. 565 5662013-01-26 Infinality <infinality@infinality.net> 567 568 [truetype] Align more to ClearType whitepaper for sph. 569 570 * include/freetype/internal/tttypes.h (TT_FaceRec): Add flags 571 for detected opcode patterns and compatibility mode. 572 573 * src/truetype/ttgload.c (tt_loader_init): Complete conditional. 574 575 * src/truetype/ttinterp.c: Updated. 576 Remove SPH_DEBUG and replace with FT_TRACE7. 577 (DO_RS): More conditions. 578 (Ins_FDEF): Add more opcode detection patterns. 579 More specific conditions when flagging an fdef. 580 Make compatibility mode only turn on when delta fdefs are found. 581 (Ins_CALL, Ins_LOOPCALL): Set flags for currently executed fdef. 582 (Ins_SHPIX): Remove logic to handle ttfautohinted fonts. 583 Simplify conditionals where possible. 584 Use `&' instead of `%' operator for dumb compilers. 585 (Ins_MIAP): Adjust twilight zone conditional. 586 Ensure `ignore_x_mode' is on when testing sph conditionals. 587 (Ins_MIRP): Ensure `ignore_x_mode' is on when testing sph 588 conditionals. 589 Do cvt cutin always when `ignore_x_mode' is active. 590 Remove test for ttfautohinted fonts. 591 (Ins_DELTAP): Ensure `ignore_x_mode' is on when testing sph 592 conditionals. 593 Do cvt cutin always when `ignore_x_mode' is active. 594 Remove test for ttfautohinted fonts. 595 Use `&' instead of `%' operator for dumb compilers. 596 (Ins_GETINFO): Remove SPH_DEBUG and replace with FT_TRACE7. 597 598 * src/truetype/ttinterp.h: Updated. 599 (TT_ExecContextRec): Remove compatibility_mode variable. 600 Add variable to indicate when executing in special fdefs for sph. 601 602 * src/truetype/ttobjs.h: Updated. 603 (TT_DefRecord): Add flags to identify special fdefs for sph. 604 (TT_SizeRec): Remove unnecessary ttfautohinted variable. 605 606 * src/truetype/ttsubpix.c: Updated. 607 (COMPATIBILITY_MODE_Rules): Remove all. Auto-detected now. 608 (PIXEL_HINTING_Rules): Remove all. Unnecessary after fixes. 609 (SKIP_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu. 610 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Arial Bold `N'. 611 (SKIP_OFFPIXEL_Y_MOVES_Rules): Remove all. Happens automatically 612 now. 613 (ROUND_NONPIXEL_Y_MOVES_Rules): Remove Ubuntu. 614 (ROUND_NONPIXEL_Y_MOVES_Rules_Exceptions): Remove all. 615 (NORMAL_ROUND_Rules): Remove Verdana. 616 (NO_DELTAP_AFTER_IUP_Rules): Remove all. 617 (sph_set_tweaks): Performance fix. Don't run prep always. 618 Adjust conditional for sph_compatibility_mode. 619 620 * src/truetype/ttsubpix.h: Add new fdef flags for sph. 621 6222013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> 623 624 [base] Fix broken emboldening at small sizes. 625 626 * src/base/ftoutln.c (FT_Outline_EmboldenXY): Do not attempt to 627 normalize zero-length vectors. 628 6292013-01-25 Werner Lemberg <wl@gnu.org> 630 631 Fix Savannah bug #38167. 632 633 This fixes commit 83c0ebab from 2012-06-27. 634 635 * src/truetype/ttinterp.h: 636 s/TT_CONFIG_OPTION_BYTECODE_INTERPRETER/TT_USE_BYTECODE_INTERPRETER/. 637 6382013-01-25 Xi Wang <xi.wang@gmail.com> 639 640 [sfnt] Fix broken pointer overflow checks. 641 642 Many compilers such as gcc and clang optimize away pointer overflow 643 checks `p + n < p', because pointer overflow is undefined behavior. 644 Use a safe form `n > p_limit - p' instead. 645 646 Also avoid possible integer overflow issues, for example, using 647 `num_glyphs > ( p_limit - p ) / 2' rather than `num_glyphs * 2' 648 given a large `num_glyphs'. 649 650 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_image): Implement it. 651 6522013-01-25 Werner Lemberg <wl@gnu.org> 653 654 [base] Fix `make multi'. 655 656 * src/base/ftoutln.c, src/base/fttrigon.c: Include 657 FT_INTERNAL_CALC_H. 658 6592013-01-25 David 'Digit' Turner <digit@google.com> 660 661 [truetype] Fix C++ compilation. 662 663 * src/truetype/ttsubpix.h: Updated. 664 (SPH_X_SCALING_RULES_SIZE): Moved and renamed to... 665 * src/truetype/ttsubpix.c (X_SCALING_RULES_SIZE): This. 666 (sph_X_SCALING_Rules): Removed. 667 (scale_test_tweak): Make function static. 668 (sph_test_tweak_x_scaling): New function. 669 670 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Updated. 671 6722013-01-23 Werner Lemberg <wl@gnu.org> 673 674 [base] Make `FT_Hypot' really internal. 675 676 * include/freetype/fttrigon.h (FT_Hypot): Move to... 677 * include/freetype/internal/ftcalc.h: This file. 678 679 * src/base/fttrigon.c (FT_Hypot): Move to... 680 * src/base/ftcalc.c: This file. 681 Include FT_TRIGONOMETRY_H. 682 683 * src/truetype/ttgload.c: Don't include FT_TRIGONOMETRY_H. 684 6852013-01-23 Werner Lemberg <wl@gnu.org> 686 687 [truetype] Revert change from 2013-01-22. 688 689 FreeType's `height' value is the baseline-to-baseline distance... 690 691 * src/truetype/ttobjs.c (tt_size_reset): Undo. 692 6932013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> 694 695 [base, truetype] New internal `FT_Hypot' function. 696 697 * include/freetype/fttrigon.h (FT_Hypot): Declare it. 698 * src/base/fttrigon.c (FT_Hypot): Define it. 699 * src/truetype/ttgload.c (TT_Process_Composite_Component): Use it 700 instead of explicit expressions. 701 * src/truetype/ttinterp.c (Current_Ratio, Normalize): Use it instead 702 of TT_VecLen. 703 (TT_VecLen): Removed. 704 7052013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> 706 707 [base] Fix integer overflow. 708 709 * src/base/ftoutln.c (FT_Outline_EmboldenXY): Normalize incoming and 710 outgoing vectors and use fixed point arithmetic. 711 7122013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> 713 714 [base] Fix integer overflow. 715 716 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Scale the 717 coordinates down to avoid overflow. 718 7192013-01-23 Alexei Podtelezhnikov <apodtele@gmail.com> 720 721 [base] Split out MSB function. 722 723 * src/base/fttrigon.c (ft_trig_prenorm): Borrow from here. 724 * include/freetype/internal/ftcalc.h (FT_MSB): Declare here. 725 * src/base/ftcalc.c (FT_MSB): Define here. 726 7272013-01-22 Werner Lemberg <wl@gnu.org> 728 729 [truetype] Fix font height. 730 731 * src/truetype/ttobjs.c (tt_size_reset): The Windows rendering 732 engine uses rounded values of the ascender and descender to compute 733 the TrueType font height. 734 7352013-01-16 Behdad Esfahbod <behdad@behdad.org> 736 737 [sfnt] Fix optimized sbit loader. 738 739 It was not taking bit_depth into consideration when blitting! 740 741 * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_byte_aligned, 742 * tt_sbit_decoder_load_bit_aligned): Handle bit 743 depth. 744 7452013-01-16 David 'Digit' Turner <digit@google.com> 746 747 [truetype] Improve subpixel code. 748 749 This patches fixes many issues with the ttsubpix implementation. 750 751 1. Data tables are defined, instead of declared, in the header, and 752 thus copied into each source file that includes it. 753 754 2. These tables were defined as global, mutable, visible variables, 755 and thus costing private RAM to every process that loads the 756 library (> 50 KB / process, this is huge!). 757 758 Additionally, this also made the library export the symbols 759 completely needlessly. 760 761 3. Missing `sph_' and `SPH_' prefixes to some of the definitions. 762 763 Note that this doesn't try to fix the incredibly inefficient storage 764 format for the data tables used by the code. This one will require 765 another pass in the future. 766 767 * src/truetype/ttinterp.h (MAX_NAME_SIZE, MAX_CLASS_MEMBERS): 768 Renamed to... 769 (SPH_MAX_NAME_SIZE, SPH_MAX_CLASS_MEMBERS): This. 770 Update all users. 771 772 (SPH_TweakRule, SPH_ScaleRule): Decorate with `const' where 773 appropriate. 774 775 (Font_Class): Rename to... 776 (SPH_Font_Class): This. Decorate with `const' where appropriate. 777 778 * src/truetype/ttsubpix.h (scale_test_tweak, sph_test_tweak): 779 Decorate arguments with `const' where appropriate. 780 781 Move font tweaking tables to... 782 783 * src/truetype/ttsubpix.c: This file and decorate them with `static' 784 and `const' where appropriate. 785 786 (X_SCALING_Rules, X_SCALING_RULES_SIZE): Renamed to... 787 (sph_X_SCALING_Rules, SPH_X_SCALING_RULES_SIZE): This. 788 Update all users. 789 7902013-01-12 Alexei Podtelezhnikov <apodtele@gmail.com> 791 792 [truetype] Improve accuracy of normalization of short vectors. 793 794 Unit vector components are stored as 2.14 fixed-point numbers. In 795 order to calculate all 14 bits accurately, a short vector to be 796 normalized has to be upscaled to at least 14 bits before its length 797 is calculated. This has been safe since accurate CORDIC algorithms 798 were adopted. 799 800 * src/truetype/ttinterp.c (Normalize): Scale short vectors by 0x4000. 801 8022013-01-12 Alexei Podtelezhnikov <apodtele@gmail.com> 803 804 [truetype] Kill very old vector normalization hacks. 805 806 Back in the days, vector length calculations were not very accurate 807 and the vector normalization function, Normalize, had to meticulously 808 correct the errors for long vectors [commit b7ef2b096867]. It was no 809 longer necessary after accurate CORDIC algorithms were adopted, but 810 the code remained. It is time to kill it. 811 812 * src/truetype/ttinterp.c (Normalize): Remove error compensation. 813 (TT_VecLen): Remove any mention of old less accurate implementation. 814 8152013-01-11 Werner Lemberg <wl@gnu.org> 816 817 Disable FT_CONFIG_OPTION_OLD_INTERNALS. 818 819 After the next release we are going to remove the code completely. 820 821 * devel/ftoption.h, include/freetype/config/ftoption.h 822 (FT_CONFIG_OPTION_OLD_INTERNALS): Comment out. 823 * docs/CHANGES: Document it. 824 8252013-01-10 Alexei Podtelezhnikov <apodtele@gmail.com> 826 827 [base] Update the overflow protection bit. 828 829 The recent optimizations of CORDIC iterations drastically reduce the 830 expansion factor. Vector components with MSB of 29 are now safe 831 from overflow. 832 833 * src/base/fttrigon.c (FT_TRIG_SAFE_MSB): New macro. 834 (ft_trig_prenorm): Use it and remove dead code. 835 8362013-01-09 Alexei Podtelezhnikov <apodtele@gmail.com> 837 838 [base, pshinter] Use FT_ABS, FT_MIN, and FT_MAX for readability. 839 840 * src/base/ftbbox.c: Updated. 841 * src/base/ftobjs.c: Updated. 842 * src/base/fttrigon.c: Updated. 843 * src/pshinter/pshalgo.c: Updated. 844 * src/pshinter/pshrec.c: Updated. 845 8462013-01-08 Alexei Podtelezhnikov <apodtele@gmail.com> 847 848 [base] Clean up trigonometric core. 849 850 * src/base/fttrigon.c: Document the algorithm in a large comment. 851 (FT_TRIG_COSCALE): Remove macro. 852 (FT_Tan: Use `FT_TRIG_SCALE' instead. 853 (FT_Cos, FT_Vector_Unit): Ditto and round the return values. 854 8552013-01-02 Alexei Podtelezhnikov <apodtele@gmail.com> 856 857 [base] Use rounding in CORDIC iterations. 858 859 * src/base/fttrigon.c (ft_trig_pseudo_rotate, 860 ft_trig_pseudo_polarize): Improve accuracy by rounding. 861 8622013-01-02 Alexei Podtelezhnikov <apodtele@gmail.com> 863 864 [base] Reduce trigonometric algorithms. 865 866 After we get within 45 degrees by means of true 90-degree rotations, 867 we can remove initial 45-degree CORDIC iteration and start from 868 atan(1/2) pseudorotation, reducing expansion factor thereby. 869 870 * src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macros. 871 (ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Update. 872 873 * src/tools/cordic.py: Bring up to date with trigonometric core. 874 875 * docs/CHANGES: Old typo. 876 8772013-01-02 Alexei Podtelezhnikov <apodtele@gmail.com> 878 879 * src/pshinter/pshalgo.h: Remove unused code. 880 8812012-12-27 Werner Lemberg <wl@gnu.org> 882 883 * src/truetype/ttgload.c (tt_loader_init): Add more tracing. 884 8852012-12-23 Werner Lemberg <wl@gnu.org> 886 887 [type1] Fix handling of /FontBBox in MM fonts. 888 Problem reported by Del Merritt <del@alum.mit.edu> 889 890 If we have 891 892 /FontBBox { { 11 12 13 14 15 16 17 18 } 893 { 21 22 23 24 25 26 27 28 } 894 { 31 32 33 34 35 36 37 38 } 895 { 41 42 43 44 45 46 47 48 } } 896 897 in the /Blend dictionary, then the first BBox is { 11 21 31 41 }, 898 the second { 12 22 32 42 }, etc. 899 900 * include/freetype/internal/psaux.h (T1_FieldType): Add 901 `T1_FIELD_TYPE_MM_BBOX' (for temporary use). 902 903 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>: 904 Implement it. 905 9062012-12-21 Alexei Podtelezhnikov <apodtele@gmail.com> 907 908 * src/tools/cordic.py: Bring up to date with trigonometric core. 909 9102012-12-21 Werner Lemberg <wl@gnu.org> 911 912 Check parameters of `FT_Outline_New'. 913 Problem reported by Robin Watts <robin.watts@artifex.com>. 914 915 * src/base/ftoutln.c (FT_Outline_New_Internal): Ensure that 916 `numContours' and `numPoints' fit into FT_Outline's `n_points' and 917 `n_contours', respectively. 918 9192012-12-20 Werner Lemberg <wl@gnu.org> 920 921 * Version 2.4.11 released. 922 ========================== 923 924 925 Tag sources with `VER-2-4-11'. 926 927 * docs/CHANGES, docs/release: Updated. 928 929 * docs/VERSION.DLL: Update documentation and bump version number to 930 2.4.11. 931 932 * README, Jamfile (RefDoc), 933 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 934 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 935 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, 936 builds/win32/visualc/freetype.dsp, 937 builds/win32/visualc/freetype.vcproj, 938 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 939 builds/win32/visualce/freetype.vcproj, 940 builds/win32/visualce/index.html, 941 builds/wince/vc2005-ce/freetype.vcproj, 942 builds/wince/vc2005-ce/index.html, 943 builds/wince/vc2008-ce/freetype.vcproj, 944 builds/wince/vc2008-ce/index.html: s/2.4.10/2.4.11/, s/2410/2411/. 945 946 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 11. 947 948 * builds/unix/configure.raw (version_info): Set to 16:0:10. 949 950 * builds/toplevel.mk (dist): Don't include `.mailmap'. 951 9522012-12-20 Alexei Podtelezhnikov <apodtele@gmail.com> 953 954 [base] Improve trigonometric core. 955 956 FreeType used to rely on a 24-step iteration CORDIC algorithm to 957 calculate trigonometric functions and rotate vectors. It turns out 958 that once the vector is in the right half-plane, the initial rotation 959 by 63 degrees is not necessary. The algorithm is perfectly capable 960 to converge to any angle starting from the second 45 degree rotation. 961 This patch removes the first rotation and makes it a 23-step CORDIC 962 algorithm. 963 964 * src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macro 965 values. 966 (ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Remove initial 967 rotation. 968 9692012-12-19 Werner Lemberg <wl@gnu.org> 970 971 * src/base/ftobjs.c (ft_property_do): Fix compiler warning. 972 9732012-12-19 Alexei Podtelezhnikov <apodtele@gmail.com> 974 975 * src/base/ftrfork.c (FT_Raccess_Guess): Switch to FT_Int counters. 976 9772012-12-19 Alexei Podtelezhnikov <apodtele@gmail.com> 978 979 [base] Clean up trigonometric core. 980 981 * src/base/fttrigon.c (ft_trig_pseudo_polarize): Align algorithm 982 with `ft_trig_pseudo_rotate'. 983 9842012-12-18 Infinality <infinality@infinality.net> 985 986 [truetype] Minor performance enhancement. 987 988 * src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Use FT_MulFix 989 instead of FT_MulDiv. 990 9912012-12-17 Infinality <infinality@infinality.net> 992 993 [truetype] Remove unused code and variables. 994 995 * src/truetype/ttinterp.c: Updated. 996 (Ins_FDEF): Remove opcode patterns that are not being used. 997 9982012-12-16 Werner Lemberg <wl@gnu.org> 999 1000 Various compiler warning fixes. 1001 1002 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Use 1003 `logical not' operator instead of negation. The idea is that `~' 1004 returns exactly the data type enforced by the cast to a pointer (be 1005 it 32bit or 64bit or whatever), while a negative integer has not 1006 this flexibility. 1007 * src/cache/ftccmap.c (FTC_CMAP_UNKNOWN): Ditto. 1008 * src/truetype/ttgxvar.c (ALL_POINTS, TT_Get_MM_Var): Ditto. 1009 * src/type/t1load.c (T1_Get_MM_Var): Ditto. 1010 (parse_blend_axis_types): Use cast. 1011 * src/bdf/bdflib.c (_bdf_readstream): Use cast. 1012 10132012-12-16 Infinality <infinality@infinality.net> 1014 1015 [truetype] Remove unused code and variables. Add minor fixes. 1016 1017 * src/truetype/ttsubpix.h: Updated. 1018 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Trebuchet MS. 1019 (ALLOW_X_DMOVEX_Rules): Remove Arial characters. 1020 (ALLOW_X_DMOVE_Rules): Remove Arial characters. 1021 (RASTERIZER_35_Rules): Verdana no longer needs to be here. 1022 (SKIP_IUP_Rules): Formatting fix. 1023 (DELTAP_SKIP_EXAGGERATED_VALUES_Rules): Remove Segoe UI. 1024 (COMPATIBLE_WIDTHS_Rules): Add Monaco and Trebuchet MS. 1025 (X_SCALING_Rules): Add misc. corrective fixes. 1026 1027 * src/truetype/ttgload.c: (TT_Process_Simple_Glyph): Adjust correction 1028 factor for emboldening during scaling. 1029 1030 * src/truetype/ttinterp.h: Updated. 1031 (TT_ExecContextRec): Remove unused variables. 1032 1033 * src/truetype/ttobjs.h: Updated. 1034 (TT_SizeRec): Add ttfautohinted variable. 1035 1036 * src/truetype/ttinterp.c: Updated. 1037 (Ins_FDEF): Rework code to fix bugs and add more detection. 1038 (Ins_CALL): Remove unused code. 1039 (Ins_LOOPCALL): Remove unused code. 1040 (TT_RunIns): Remove unused code. 1041 (Ins_SHPIX): Add logic to handle ttfautohinted fonts. 1042 (Ins_MIRP): Don't round x in cut-in calculation. Add logic to handle 1043 ttfautohinted fonts. 1044 10452012-12-16 Werner Lemberg <wl@gnu.org> 1046 1047 [sfnt] Fix Savannah bug #37936. 1048 1049 * src/sfnt/ttload.c (tt_face_load_gasp): Avoid memory leak. 1050 10512012-12-15 Alexei Podtelezhnikov <apodtele@gmail.com> 1052 1053 [base] Fix 11-year old bug. 1054 1055 Since the initial commit (ebe85f59) the value of FT_TRIG_SCALE has 1056 always been slightly less than the correct value, which has been 1057 given in the comment as a hexadecimal. As a result, vector lengths 1058 were underestimated and rotated vectors were shortened. 1059 1060 * src/base/fttrigon.c (FT_TRIG_SCALE): Fix macro value. 1061 10622012-12-15 Werner Lemberg <wl@gnu.org> 1063 1064 [bdf] Fix Savannah bug #37907. 1065 1066 * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize 1067 negative second parameter of `ENCODING' field also. 1068 10692012-12-15 Werner Lemberg <wl@gnu.org> 1070 1071 [bdf] Fix Savannah bug #37906. 1072 1073 * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Use correct array 1074 size for checking `glyph_enc'. 1075 10762012-12-15 Werner Lemberg <wl@gnu.org> 1077 1078 [bdf] Fix Savannah bug #37905. 1079 1080 * src/bdf/bdflib.c (_bdf_parse_start) <STARTPROPERTIES>: Reset 1081 `props_size' to zero in case of allocation error; this value gets 1082 used in a loop in `bdf_free_font'. 1083 10842012-12-10 Alexei Podtelezhnikov <apodtele@gmail.com> 1085 1086 [truetype] Scale F_dot_P down. 1087 1088 The dot product between freeVector and projVector or cosine of 1089 the angle between these FT_F2Dot14 unit vectors used to be scaled up 1090 by 4 and routinely occupied 32 bits in an FT_Long field F_dot_P. 1091 This patch scales the value down by 2^14 instead, which simplifies 1092 its use throughout the bytecode interpreter. 1093 1094 This does not lead to the loss of precision because the lower bits 1095 are unreliable anyway. Consider two unit vectors (1,0) and (.6,.8) 1096 for which the true value of F_dot_P is .6 * 0x40000000 = 0x26666666. 1097 These vectors are stored as (0x4000,0) and (0x2666,0x3333) after 1098 rounding and F_dot_P is assigned 0x26660000. The lower bits were 1099 already lost while rounding the unit vector components. 1100 1101 Besides code simplification, this change can lead to better 1102 performance when FT_MulDiv with the scaled-down F_dot_P is less 1103 likely to use the costly 64-bit path. We are not changing the type 1104 of F_dot_P to FT_F2Dot14 at this point. 1105 1106 * src/truetype/ttinterp.c (Compute_Funcs): Scale F_dot_P down by 14 1107 bits and modify its use accordingly. 1108 (Direct_Move, Direct_Move_Orig, Compute_Point_Displacement): Modify 1109 the use of F_dot_P field. 1110 * src/truetype/ttobjs.c (tt_size_run_fpgm): Change arbitrary 1111 assignment of F_dot_P to its theoretical maximum in case we decide 1112 to scale back its type later. 1113 11142012-12-09 Johnson Y. Yan <yinsen_yan@foxitsoftware.com> 1115 1116 [type1] Another fix for 2012-09-17 commit. 1117 1118 * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Correctly set 1119 `limit' value. 1120 11212012-12-06 Alexei Podtelezhnikov <apodtele@gmail.com> 1122 1123 [truetype] Tweak the previous commit. 1124 1125 * src/truetype/ttinterp.c (Current_Ratio): Put unit vector 1126 components as the second TT_MulFix14 arguments. This is required 1127 on 16-bit systems. 1128 11292012-12-06 Alexei Podtelezhnikov <apodtele@gmail.com> 1130 1131 [truetype] Microoptimizations in bytecode interpreter. 1132 1133 * src/truetype/ttinterp.c (TT_DivFix14): New macro. 1134 (Normalize): Use it here. 1135 (Current_Ratio): Use TT_MulFix14 instead of FT_MulDiv. 1136 (Ins_SHPIX): Cancel out two TT_MulFix14 calls. 1137 11382012-12-05 Alexei Podtelezhnikov <apodtele@gmail.com> 1139 1140 [truetype] Cosmetic improvement in bytecode interpreter. 1141 1142 * src/truetype/ttinterp.c: Use explicit calls to FT_MulDiv, 1143 FT_MulFix, and FT_DivFix instead of macros. 1144 11452012-12-03 John Tytgat <John.Tytgat@esko.com> 1146 1147 [pshinter] Clamp BlueScale value. 1148 1149 This is Savannah bug #37856. 1150 1151 * src/pshinter/pshglob.c (psh_calc_max_height): New function. 1152 (psh_globals_new): Use it to limit BlueScale value to 1153 `1 / max_of_blue_zone_heights'. 1154 11552012-12-01 Alexei Podtelezhnikov <apodtele@gmail.com> 1156 1157 [truetype, type1] Revise the use of FT_MulDiv. 1158 1159 * src/truetype/ttgxvar.c: Updated. 1160 * src/truetype/ttobjs.c: Updated. 1161 * src/type1/t1load.c: Updated. 1162 11632012-11-30 Werner Lemberg <wl@gnu.org> 1164 1165 [configure] Preserve customized `ftoption.h'. 1166 1167 Problem reported by Del Merritt <del@alum.mit.edu>. 1168 1169 * builds/unix/configure.raw <cpp computation of bit length>: Don't 1170 remove existing FreeType configuration files. 1171 11722012-11-29 John Tytgat <John.Tytgat@esko.com> 1173 1174 [type1] Fix Savannah bug #37831. 1175 1176 The bug report also contains a patch. 1177 1178 * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Really fix 1179 change from 2012-09-17. 1180 11812012-11-28 Alexei Podtelezhnikov <apodtele@gmail.com> 1182 1183 [truetype] Fix formatting and typo. 1184 11852012-11-27 Alexei Podtelezhnikov <apodtele@gmail.com> 1186 1187 [cid, type1, type42] Clean up units_per_EM calculations. 1188 1189 * src/cid/cidload.c (cid_parse_font_matrix): Updated. 1190 * src/type1/t1load.c (t1_parse_font_matrix): Updated. 1191 * src/type42/t42parse.c (t42_parse_font_matrix): Updated. 1192 11932012-11-27 Alexei Podtelezhnikov <apodtele@gmail.com> 1194 1195 [ftstroke] Minor improvement. 1196 1197 * src/base/ftstroke.c: Replace nested FT_DivFix and FT_MulFix with 1198 FT_MulDiv. 1199 12002012-11-17 Werner Lemberg <wl@gnu.org> 1201 1202 * src/base/fttrigon.c (ft_trig_downscale): Make 64bit version work. 1203 12042012-11-15 Alexei Podtelezhnikov <apodtele@gmail.com> 1205 1206 [base] Fix integer overflows in dd5718c7d67a. 1207 1208 * src/base/ftoutln.c (FT_Outline_EmboldenXY): Use FT_MulDiv. 1209 12102012-11-15 Werner Lemberg <wl@gnu.org> 1211 1212 [autofit] Trace stem widths. 1213 1214 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Add some 1215 FT_TRACE calls. 1216 12172012-11-13 Werner Lemberg <wl@gnu.org> 1218 1219 [cff] Add support for OpenType Collections (OTC). 1220 1221 * src/cff/cffload.c (cff_font_load): Separate subfont and face 1222 index handling to load both pure CFFs with multiple subfonts and 1223 OTCs (with multiple faces where each face holds exactly one 1224 subfont). 1225 * src/cff/cffobjs.c (cff_face_init): Updated. 1226 12272012-11-12 Werner Lemberg <wl@gnu.org> 1228 1229 [autofit] Minor improvement. 1230 1231 * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Fix 1232 loop. 1233 12342012-11-10 Werner Lemberg <wl@gnu.org> 1235 1236 [autofit] Improve tracing. 1237 1238 * src/autofit/aflatin.c (af_latin_hint_edges) 1239 [FT_DEBUG_LEVEL_TRACE]: Count number of actions and emit something 1240 if there weren't any. 1241 12422012-11-04 Alexei Podtelezhnikov <apodtele@gmail.com> 1243 1244 [base] Fortify emboldening code against egregious distortions. 1245 1246 * src/base/ftoutln.c (FT_Outline_EmboldenXY): Threshold emboldening 1247 strength when it leads to segment collapse. 1248 12492012-11-03 Alexei Podtelezhnikov <apodtele@gmail.com> 1250 1251 [base] Clean up emboldening code and improve comments there. 1252 1253 * src/base/ftoutln.c (FT_Outline_EmboldenXY): Replace sequential 1254 calls to FT_MulFix and FT_DivFix with FT_MulDiv. 1255 Mention that bisectors are used to figure out the shift direction. 1256 12572012-10-24 Werner Lemberg <wl@gnu.org> 1258 1259 [autofit] Add standard character to `AF_ScriptClassRec' structure. 1260 1261 * src/autofit/aftypes.h (AF_ScriptClassRec): Add `standard_char' 1262 member. 1263 (AF_DEFINE_SCRIPT_CLASS): Updated. 1264 1265 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Use it. 1266 (af_latin_metrics_init, af_latin_script_class): Updated. 1267 1268 * src/autofit/aflatin.c (af_latin2_metrics_init_widths): Use it. 1269 (af_latin2_metrics_init, af_latin2_script_class): Updated. 1270 1271 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Use it. 1272 (af_cjk_metrics_init, af_cjk_script_class): Updated. 1273 1274 * src/autofit/afindic.c (af_indic_metrics_init, 1275 af_indic_script_class): Updated. 1276 1277 * src/autofit/afcjk.h, src/autofit/aflatin.h: Updated. 1278 1279 * src/autofit/afdummy.c: Updated. 1280 12812012-10-24 Werner Lemberg <wl@gnu.org> 1282 1283 [autofit] Only use Unicode CMap. 1284 1285 * src/autofit/aflatin.c (af_latin_metrics_init): Implement it, to be 1286 in sync with `af_face_globals_compute_script_coverage'. 1287 12882012-10-21 Werner Lemberg <wl@gnu.org> 1289 1290 [psaux] Improve parsing of invalid numbers. 1291 1292 * src/psaux/psconv.c (PS_Conv_Strtol): Always parse complete number, 1293 even in case of overflow. 1294 (PS_Conv_ToInt): Only increase cursor if parsing was successful. 1295 (PS_Conv_ToFixed): Ditto. 1296 Trace underflow and data error. 1297 12982012-10-21 Werner Lemberg <wl@gnu.org> 1299 1300 [smooth] Improve tracing. 1301 1302 * src/smooth/ftgrays.c (gray_sweep): Trace last sweep line of 1303 current band also. 1304 13052012-10-20 Alexei Podtelezhnikov <apodtele@gmail.com> 1306 1307 [truetype] Cheaper way to threshold angles between vectors. 1308 1309 * src/truetype/ttinterp.c (Ins_ISECT): Thresholding tangent is a lot 1310 cheaper than thresholding sine. 1311 13122012-10-20 Werner Lemberg <wl@gnu.org> 1313 1314 [cff] Improve parsing of invalid real numbers. 1315 1316 * src/cff/cffparse.c (cff_parse_real): Always parse complete number, 1317 even in case of overflow or underflow. 1318 Also trace one more underflow. 1319 13202012-10-20 Andreas Pehnack <andreas.pehnack@me.com> 1321 1322 [sfnt] Load pure CFF fonts wrapped in SFNT container. 1323 1324 Such fonts only have a `cmap' and a `CFF' table. 1325 1326 * src/sfnt/ttload.c (tt_face_load_font_dir): Don't call 1327 `check_table_dir' if font signature is `OTTO'. 1328 13292012-10-20 Werner Lemberg <wl@gnu.org> 1330 1331 [psaux] Fix some value overflows and improve tracing. 1332 1333 * src/psaux/psconv.c: Include FT_INTERNAL_DEBUG_H. 1334 (FT_COMPONENT): Define. 1335 (PS_Conv_Strtol): Return FT_Long. 1336 Handle bad data and overflow. 1337 Emit some tracing messages in case of error. 1338 (PS_Conv_ToInt): Return FT_Long. 1339 (PS_Conv_ToFixed): Updated. 1340 * src/psaux/psconv.h: Updated. 1341 1342 * include/freetype/internal/fttrace.h: Add `psconv'. 1343 13442012-10-20 Werner Lemberg <wl@gnu.org> 1345 1346 [autofit] Fix `make multi CC=c++'. 1347 1348 * src/autofit/aflatin.c, src/autofit/aflatin2.c: Include 1349 `afglobal.h'. 1350 * src/autofit/afloader.c: Fix order of header files. 1351 * src/autofit/afmodule.c: Include `afglobal.h' and `aferrors.h'. 1352 13532012-10-19 Werner Lemberg <wl@gnu.org> 1354 1355 [cff] Fix more value errors and improve tracing. 1356 1357 * src/cff/cffparse.c (cff_parse_integer): Emit tracing message in 1358 case of error. 1359 (cff_parse_real): Handle and trace overflow, underflow, and bad data 1360 consistently. 1361 (do_fixed): New helper function, handling and tracing overflow. 1362 (cff_parse_fixed, cff_parse_fixed_scaled): Use `do_fixed'. 1363 13642012-10-17 Werner Lemberg <wl@gnu.org> 1365 1366 [psaux] Fix some value overflows. 1367 1368 * src/psaux/psconv.c (PS_Conv_ToFixed): Implement it. 1369 13702012-10-17 Bram Tassyns <BramT@enfocus.com> 1371 1372 [cff] Fix value overflow. 1373 1374 * src/cff/cffparse.c (cff_parse_fixed_scaled): Implement it. 1375 13762012-10-17 Werner Lemberg <wl@gnu.org> 1377 1378 [truetype] Fix Savannah bug #37572. 1379 1380 * src/truetype/ttinterp.c (Ins_ISECT): Use angle between vectors to 1381 avoid grazing intersections. The previous threshold was too coarse, 1382 incorrectly rejecting short but valid vectors. 1383 13842012-09-30 Gilles Espinasse <g.esp@free.fr> 1385 1386 Remove useless `rm' detection. 1387 1388 `rm -f' is directly used in the `configure' script created by 1389 autoconf, thus no availability test is necessary. 1390 1391 * builds/unix/configure.raw (RMF): Remove test. 1392 * builds/unix/unix-def.in (DELETE): Updated. 1393 13942012-09-29 Werner Lemberg <wl@gnu.org> 1395 1396 [autofit] Minor optimization. 1397 1398 * src/autofit/afglobal.c (af_face_globals_compute_script_coverage): 1399 Add loop condition. 1400 14012012-09-29 Werner Lemberg <wl@gnu.org> 1402 1403 [autofit] Fix thinko. 1404 1405 * src/autofit/aftypes.h (AF_SCRIPT): 1406 s/AF_SCRIPT_NONE/AF_SCRIPT_DUMMY/. We already use `AF_SCRIPT_NONE' 1407 as a bit mask. 1408 1409 * src/autofit/afdummy.c: Updated. 1410 14112012-09-18 Werner Lemberg <wl@gnu.org> 1412 1413 [autofit] Implement `increase-x-height' property. 1414 1415 * include/freetype/ftautoh.h (FT_Prop_IncreaseXHeight): New 1416 structure. 1417 1418 * include/autofit/afmodule.c (af_property_get_face_globals): New 1419 function, re-using code from `af_property_get'. 1420 (af_property_set, af_property_get): Handle `increase-x-height'. 1421 Updated. 1422 14232012-09-18 Werner Lemberg <wl@gnu.org> 1424 1425 [autofit] Implement Infinality's `increase glyph heights'. 1426 1427 This is an improved version of a similar fix contained in the 1428 so-called `Infinality patch', taken from 1429 1430 http://www.infinality.net/fedora/linux/zips/freetype-infinality-2.4.10-20120616_01-x86_64.tar.bz2 1431 1432 which addresses various enhancements of the auto-hinter. Without 1433 properties to control a module's metadata it wasn't possible to 1434 adapt the patches because everything was originally controlled by 1435 environment variables which I consider not suitable in general. 1436 1437 A patch to control `increase_x_height' follows. 1438 1439 * src/autofit/afglobal.h (AF_PROP_INCREASE_X_HEIGHT_MIN, 1440 AF_PROP_INCREASE_X_HEIGHT_MAX): New macros. 1441 (AF_FaceGlobalsRec): Add `increase_x_height' member. 1442 * src/autofit/afglobal.c (af_face_globals_new): Initialize it. 1443 1444 * src/autofit/aflatin.c (af_latin_metrics_scale_dim), 1445 * src/autofit/aflatin2.c (af_latin2_metrics_scale_dim): Implement 1446 handling of `increase_x_height'. 1447 14482012-09-18 Werner Lemberg <wl@gnu.org> 1449 1450 [autofit] Add hierarchical property access to some structures. 1451 1452 * src/autofit/afglobal.h: Include `afmodule.h'. 1453 (AF_FaceGlobalsRec): Add `module' member. 1454 (AF_FaceGlobals): Typedef moved to... 1455 * src/autofit/aftypes.h: Here. 1456 (AF_ScriptMetricsRec): Add `globals' member. 1457 1458 * src/autofit/afglobal.c (af_face_globals_new, 1459 af_face_globals_compute_script_coverage, 1460 af_face_globals_get_metrics): Updated. 1461 1462 * src/autofit/afloader.c (af_loader_reset), src/autofit/afmodule.c 1463 (af_property_get): Updated. 1464 14652012-09-17 Werner Lemberg <wl@gnu.org> 1466 1467 [type1] Fix Savannah bug #37350. 1468 1469 * src/type1/t1parse.c (T1_Get_Private_Dict) <found>: Check for ASCII 1470 storage only if we actually have at least four bytes. 1471 14722012-09-15 Werner Lemberg <wl@gnu.org> 1473 1474 [autofit] Implement `fallback-script' property. 1475 1476 * src/autofit/afglobal.c: s/default_script/fallback_script/. 1477 * src/autofit/afglobal.h: s/AF_SCRIPT_DEFAULT/AF_SCRIPT_FALLBACK/. 1478 1479 * src/autofit/afmodule.c: s/default_script/fallback_script/. 1480 (af_property_set, af_property_get): Implement `fallback-script'. 1481 * src/autofit/afmodule.h: s/default_script/fallback_script/. 1482 1483 * include/freetype/ftautoh.h: Document it. 1484 14852012-09-15 Werner Lemberg <wl@gnu.org> 1486 1487 [autofit] Correct previous Unicode 6.1.0 change. 1488 1489 The auto-hinter's latin module only handles latin ligatures in the 1490 `Alphabetical Presentation Forms' block. 1491 1492 * src/autofit/aflatin.c (af_latin_uniranges): Fix it. 1493 14942012-09-15 Werner Lemberg <wl@gnu.org> 1495 1496 * src/autofit/afmodule.c: s/FT_Err_/AF_Err_/. 1497 14982012-09-15 Werner Lemberg <wl@gnu.org> 1499 1500 [autofit] Make default script a global property. 1501 1502 * src/autofit/afmodule.h (AF_ModuleRec): Add `default_script' field. 1503 1504 * src/autofit/afglobal.c (af_face_globals_compute_script_coverage, 1505 af_face_globals_new), src/autofit/afloader.c (af_loader_reset), 1506 src/autofit/afmodule.c (af_property_get) <glyph-to-script-map>, 1507 af_autofitter_init: 1508 Handle default script. 1509 1510 * src/autofit/afglobal.h: Updated. 1511 15122012-09-15 Werner Lemberg <wl@gnu.org> 1513 1514 Use `FT_Module' instead of `FT_Library' argument in property funcs. 1515 1516 This internal change simplifies access to global module data. 1517 1518 * include/freetype/internal/services/svprop.h 1519 (FT_Properties_SetFunc, FT_Properties_GetFunc): Change accordingly. 1520 1521 * src/base/ftobjs.c (ft_property_do), src/autofit/afmodule.c 1522 (af_property_set, af_property_get): Updated. 1523 15242012-09-14 Werner Lemberg <wl@gnu.org> 1525 1526 [autofit] Update to Unicode 6.1.0. 1527 1528 * src/autofit/afcjk.c (af_cjk_uniranges), src/autofit/aflatin.c 1529 (af_latin_uniranges): Add and fix ranges. 1530 15312012-09-14 Werner Lemberg <wl@gnu.org> 1532 1533 [autofit] Pass `AF_Module' instead of `AF_Loader'. 1534 1535 We want to access the (not yet existing) module's global data later 1536 on. 1537 1538 * src/autofit/afloader.c: Include `afmodule.h'. 1539 (af_loader_init, af_loader_reset, af_loader_done, 1540 af_loader_load_glyph): Change accordingly. 1541 * src/autofit/afmodule.c (AF_ModuleRec): Move to `afmodule.h'. 1542 Updated. 1543 1544 * src/autofit/afmodule.h: Include `afloader.h'. 1545 (AF_ModuleRec): Define here. 1546 * src/autofit/afloader.h (AF_Module): Define here. 1547 Updated. 1548 15492012-09-14 Werner Lemberg <wl@gnu.org> 1550 1551 [autofit] Fix `make multi'. 1552 1553 * include/freetype/internal/fttrace.h: Add `afmodule'. 1554 * src/autofit/afmodule.c: Include FT_INTERNAL_DEBUG_H. 1555 (FT_COMPONENT): Define. 1556 15572012-09-14 Werner Lemberg <wl@gnu.org> 1558 1559 * src/autofit/afmodule.c: s/FT_Autofitter/AF_Module/. 1560 15612012-09-12 Werner Lemberg <wl@gnu.org> 1562 1563 [autofit] Minor reorganization. 1564 1565 * src/autofit/afglobal.c (AF_SCRIPT_LIST_DEFAULT, 1566 AF_SCRIPT_LIST_NONE, AF_DIGIT): Move to... 1567 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT, AF_SCRIPT_LIST_NONE, 1568 AF_DIGIT): This and update code. 1569 15702012-09-01 Werner Lemberg <wl@gnu.org> 1571 1572 [autofit] Implement `glyph-to-script-map' property. 1573 1574 * include/freetype/ftautoh.h: New public header file. 1575 * include/freetype/config/ftheader.h (FT_AUTOHINTER_H): New macro. 1576 1577 * src/autofit/afglobal.c (AF_FaceGlobalsRec): Move structure to... 1578 * src/autofit/afglobal.h: This header file. 1579 * src/autofit/afmodule.c: Include FT_AUTOHINTER_H. 1580 (af_property_get): Handle `glyph-to-script-map'. 1581 15822012-08-31 Werner Lemberg <wl@gnu.org> 1583 1584 [autofit] Implement properties service framework. 1585 1586 No properties are added yet. 1587 1588 * src/autofit/afmodule.c: Include FT_SERVICE_PROPERTIES_H. 1589 (af_property_set, af_property_get): New dummy functions. 1590 (af_service_properties, af_services, af_get_interface): Provide 1591 service setup. 1592 (autofit_moduleclass): Add service interface. 1593 1594 * src/autofit/afpic.c: Add necessary forward declarations. 1595 (autofit_module_class_pic_init): Add code for service addition. 1596 (autofit_module_pic_free): Add code for service removal. 1597 * src/autofit/afpic.h (AF_SERVICES_GET, AF_SERVICE_PROPERTIES_GET): 1598 New macros which provide necessary syntactical sugar for PIC 1599 support. 1600 16012012-08-30 Werner Lemberg <wl@gnu.org> 1602 1603 Implement properties to control FreeType modules. 1604 1605 * include/freetype/fterrdef.h (FT_Err_Missing_Property): New error 1606 code. 1607 * include/freetype/ftmodapi.h (FT_Property_Set, FT_Property_Get): 1608 New API. 1609 1610 * include/freetype/internal/services/svprop.h: New file. 1611 * include/freetype/internal/ftserv.h (FT_SERVICE_PROPERTIES_H): New 1612 macro. 1613 1614 * src/base/ftobjs.c: Include FT_SERVICE_PROPERTIES_H. 1615 (ft_property_do, FT_Property_Set, FT_Property_Get): New functions. 1616 16172012-08-29 Werner Lemberg <wl@gnu.org> 1618 1619 [docmaker] Allow `-' in tags and identifiers. 1620 1621 * src/tools/docmaker/content.py (re_identifier), 1622 src/tools/docmaker/sources.py (re_markup_tag1, re_markup_tag2, 1623 re_crossref): Add `-' in patterns. 1624 16252012-08-27 Werner Lemberg <wl@gnu.org> 1626 1627 [FT_CONFIG_OPTION_PIC] Fix g++ 4.6.2 compiler warnings. 1628 1629 * include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER), 1630 include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER, 1631 FT_DEFINE_MODULE), include/freetype/internal/ftserv.h 1632 (FT_DEFINE_SERVICEDESCREC1, FT_DEFINE_SERVICEDESCREC2, 1633 FT_DEFINE_SERVICEDESCREC3, FT_DEFINE_SERVICEDESCREC4, 1634 FT_DEFINE_SERVICEDESCREC5, FT_DEFINE_SERVICEDESCREC6), 1635 src/autofit/afpic.c (autofit_module_class_pic_init), 1636 src/base/basepic.c (ft_base_pic_init), src/base/ftinit.c 1637 (ft_create_default_module_classes), src/cff/cffparse.c 1638 (FT_Create_Class_cff_field_handlers), src/cff/cffpic.c 1639 (cff_driver_class_pic_init), src/pshinter/pshpic.c 1640 (pshinter_module_class_pic_init), src/psnames/pspic.c 1641 (psnames_module_class_pic_init), src/raster/rastpic.c 1642 (ft_raster1_renderer_class_pic_init), src/sfnt/sfntpic.c 1643 (sfnt_module_class_pic_init), src/sfnt/ttcmap.c 1644 (FT_Create_Class_tt_cmap_classes), src/smooth/ftspic.c 1645 (ft_smooth_renderer_class_pic_init), src/truetype/ttpic.c 1646 (tt_driver_class_pic_init): Initialize allocation variable. 1647 16482012-08-27 Werner Lemberg <wl@gnu.org> 1649 1650 [truetype] Fix compilation warning. 1651 1652 * src/truetype/ttgload.c (IS_HINTED): Move macro to... 1653 * src/truetype/ttobjs.h: This header file. 1654 16552012-08-27 Werner Lemberg <wl@gnu.org> 1656 1657 [autofit, cff, pshinter, psnames] More renamings for orthogonality. 1658 1659 * src/autofit/afmodule.c, src/autofit/afpic.h: 1660 s/AF_AUTOFITTER_/AF_/. 1661 1662 * src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffparse.c, 1663 src/cff/cffpic.h: s/FT_CFF_/CFF_/. 1664 1665 * src/pshinter/pshmod.c, src/pshinter/pshpic.h: 1666 s/FT_PSHINTER_/PSHINTER_/. 1667 1668 * src/psnames/psmodule.c, src/psnames/pspic.h: 1669 s/FT_PSCMAPS/PSCMAPS_/. 1670 16712012-08-27 Werner Lemberg <wl@gnu.org> 1672 1673 [sfnt, truetype] More renamings for orthogonality. 1674 1675 * src/sfnt/sfdriver.c, src/sfnt/sfntpic.h, src/sfnt/ttcmap.c, 1676 src/truetype/ttdriver.c, src/truetype/ttpic.h: s/FT_SFNT_/SFNT_/, 1677 s/FT_TT_/TT_/, s/GET_CMAP_INFO_GET/CMAP_INFO_GET/. 1678 16792012-08-27 Werner Lemberg <wl@gnu.org> 1680 1681 [autofit] Some macro and variable renamings for orthogonality. 1682 1683 * include/freetype/internal/autohint.h, src/base/ftobjs.c, 1684 src/autofit/afmodule.c, src/autofit/afpic.c, src/autofit/afpic.h: 1685 s/SERVICE/INTERFACE/, s/service/interface/, s/Service/Interface/. 1686 16872012-08-26 Werner Lemberg <wl@gnu.org> 1688 1689 Fix Savannah bug #37178. 1690 1691 * src/base/ftobjs.c (FT_Open_Face): Initialize `error' with 1692 `FT_Err_Missing_Module' before loop to indicate `no valid drivers'. 1693 16942012-08-17 Werner Lemberg <wl@gnu.org> 1695 1696 * src/base/ftsynth.c (FT_GlyphSlot_Oblique): Fix shear angle. 1697 1698 The old value was far too large (more than 20°). The new one 1699 corresponds to 12°, quite common in typography. 1700 17012012-08-12 Alexei Podtelezhnikov <apodtele@gmail.com> 1702 1703 [smooth] Fix Savannah bug #37017. 1704 1705 * src/smooth/ftgrays.c (gray_render_cubic): Use a different set of 1706 checks when detecting super curvy splines to be split. 1707 17082012-08-05 Werner Lemberg <wl@gnu.org> 1709 1710 [autofit] Improve recognition of flat segments. 1711 1712 Problem reported by Brad Dunzer <BDunzer@extensis.com>. 1713 1714 * src/autofit/aflatin.c (af_latin_metrics_init_blues): We have 1715 a flat segment if the horizontal distance of best on-points is 1716 larger than a given threshold. 1717 17182012-08-05 Werner Lemberg <wl@gnu.org> 1719 1720 [autofit] Variable renamings. 1721 1722 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Replace 1723 `glyph' with `outline'. 1724 s/best_first/best_contour_first/. 1725 s/best_last/best_contour_last/. 1726 17272012-07-31 Werner Lemberg <wl@gnu.org> 1728 1729 [type1] Fix Savannah bug #37000. 1730 1731 * src/type1/t1load.c (parse_encoding): Fix order of checks. 1732 17332012-07-17 Werner Lemberg <wl@gnu.org> 1734 1735 [psaux] Fix Savannah bug #36833. 1736 1737 * src/psaux/t1decode.c (t1operator_seac): `seac' is not a valid 1738 operator if we want metrics only. 1739 17402012-07-16 Werner Lemberg <wl@gnu.org> 1741 1742 [type1] Fix Savannah bug #36832. 1743 1744 * src/type1/t1load.c (parse_charstrings): Reject negative number of 1745 glyphs. 1746 17472012-07-13 Werner Lemberg <wl@gnu.org> 1748 1749 [type1] Fix Savannah bug #36829. 1750 1751 * src/type1/t1load.c (parse_encoding): Check cursor position after 1752 call to T1_Skip_PS_Token. 1753 17542012-07-12 Alexei Podtelezhnikov <apodtele@gmail.com> 1755 1756 Revert the last commit 45337b07. 1757 1758 * src/base/ftstroke.c (FT_Stroker_New): Revert the previous change. 1759 17602012-07-11 Alexei Podtelezhnikov <apodtele@gmail.com> 1761 1762 [ftstroke] Fix uninitialized return value. 1763 1764 * src/base/ftstroke.c (FT_Stroker_New): Return FT_Err_Ok instead. 1765 17662012-07-11 Werner Lemberg <wl@gnu.org> 1767 1768 [smooth] Avoid memory leak in case of failure. 1769 1770 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use flags to 1771 indicate what to clean up after finishing the function, with and 1772 without errors. 1773 17742012-07-09 Werner Lemberg <wl@gnu.org> 1775 1776 Fix compilation with MSVC 5.0. 1777 1778 Problem reported by Peter Breitenlohner and Akira Kakuto. 1779 1780 * include/freetype/config/ftstdlib.h (ft_setjmp): Updated. 1781 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove cast. 1782 17832012-07-09 Werner Lemberg <wl@gnu.org> 1784 1785 [autofit] Improve debugging messages; do some code cleanup. 1786 1787 * src/autofit/aflatin.c (af_latin_align_linked_edge, 1788 af_latin_hint_edges): Synchronize with formatting used in the 1789 ttfautohint project. 1790 17912012-07-07 Gilles Espinasse <g.esp@free.fr> 1792 1793 Fix strict-aliasing warning. 1794 1795 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): Avoid double cast. 1796 17972012-07-07 Dave Thomas <dave.thomas@metaforic.com> 1798 1799 [ARM] Fix FT_MulFix_arm. 1800 1801 * include/freetype/config/ftconfig.h (FT_MulFix_arm) [__arm__]: 1802 Avoid ADDS instruction to clobber condition codes. 1803 18042012-07-06 Werner Lemberg <wl@gnu.org> 1805 1806 [autofit] Do some code cleanup. 1807 1808 * src/autofit/afglobal.c (af_face_globals_new): Simplify. 1809 1810 * src/autofit/afhints.c: Use `FT_TRACE7' instead of `printf' 1811 everywhere. 1812 (FT_COMPONENT): New macro. 1813 (af_glyph_hints_done): Simplify. 1814 1815 * include/freetype/internal/fttrace.h: Updated. 1816 18172012-07-05 Werner Lemberg <wl@gnu.org> 1818 1819 [autofit] Improve output of debugging information. 1820 1821 * src/autofit/afhints.c (af_glyph_hints_dump_segments): Print more 1822 data; report no data. 1823 (af_glyph_hints_dump_edges): Report no data. 1824 18252012-07-04 Werner Lemberg <wl@gnu.org> 1826 1827 [autofit] Fix Savannah bug #36091. 1828 1829 * src/autofit/aflatin.c (af_latin_metrics_init_blues), 1830 src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Change the 1831 constraint for testing round vs. flat segment: Accept either a 1832 small distance or a small angle. 1833 18342012-07-04 Werner Lemberg <wl@gnu.org> 1835 1836 [autofit] Beautify blue zone tracing. 1837 1838 * src/autofit/aflatin.c (af_latin_metrics_init_blues), 1839 src/autofit/aflatin2.c (af_latin2_metrics_init_blues): Implement it. 1840 18412012-07-03 Werner Lemberg <wl@gnu.org> 1842 1843 [autofit] Quantize stem widths. 1844 1845 * src/autofit/afangles.c (af_sort_widths): Rename to... 1846 (af_sort_and_quantize_widths): This. 1847 Add code to avoid stem widths which are almost identical. 1848 * src/autofit/aftypes.h, src/autofit/aflatin.c, src/autofit/afcjk.c: 1849 Updated. 1850 18512012-07-03 Werner Lemberg <wl@gnu.org> 1852 1853 [autofit] Minor speed-up. 1854 1855 * src/autofit/afangles (af_sort_pos, af_sort_widths): Don't swap 1856 elements if they are equal. 1857 18582012-06-30 Gilles Espinasse <g.esp@free.fr> 1859 1860 Fix `checking if gcc static flag -static works' test. 1861 1862 On my linux build tree, I receive yes answer in every package I 1863 build except FreeType for this test checking if gcc static flag 1864 `-static' works 1865 1866 In FreeType, no is received, unless bzip2 and zlib are disabled using 1867 1868 ./configure --without-bzip2 --without-zlib 1869 1870 The reason is that bzip2 and zlib tests add `-lz' and `-lbz2' to 1871 LDFLAGS and this broke static flag test. 1872 1873 * builds/unix/configure.raw: Update CFLAGS and LDFLAGS only after 1874 LT_INIT has run. 1875 18762012-06-28 Infinality <infinality@infinality.net> 1877 1878 [truetype] Fix various artifacts. 1879 1880 Verdana was broken in the original Infinality commit. Also 1881 includes other minor fixes. 1882 1883 * src/truetype/ttsubpix.h: Updated. Removed unused macros. 1884 (RASTERIZER_35_Rules): Add Verdana. 1885 (SKIP_NONPIXEL_Y_MOVES_Rules): Add Tahoma `s'. 1886 (MIRP_CVT_ZERO_Rules): Remove Verdana. 1887 (ALWAYS_SKIP_DELTAP_Rules): Add Russian char 0x438. 1888 (COMPATIBLE_WIDTHS_Rules): Rearrange some rules. 1889 (X_SCALING_Rules): Adjust Verdana `a' at 12 and 13 ppem. 1890 1891 * src/truetype/ttsubpix.c: Updated. 1892 (sph_set_tweaks): Re-execute fpgm always. 1893 18942012-06-28 Gilles Espinasse <g.esp@free.fr> 1895 1896 Fix CFLAGS and LDFLAGS share configure test. 1897 1898 * builds/unix/configure.raw: Fix typo. 1899 19002012-06-28 Werner Lemberg <wl@gnu.org> 1901 1902 [truetype] Set the `subpixel_positioned' flag unconditionally. 1903 1904 This is how the code currently behaves. 1905 1906 * src/truetype/ttgload.c (tt_loader_init): Do it. 1907 19082012-06-27 Werner Lemberg <wl@gnu.org> 1909 1910 Fix conditional compilation. 1911 1912 * src/base/basepic.c: Use FT_CONFIG_OPTION_MAC_FONTS. 1913 19142012-06-27 Werner Lemberg <wl@gnu.org> 1915 1916 Fix conditional compilation. 1917 1918 * include/freetype/internal/ftcalc.h (FT_MulDiv_No_Round): Don't 1919 enclose with `TT_USE_BYTECODE_INTERPRETER'; we now need the function 1920 elsewhere also. 1921 1922 * src/autofit/afcjk.h: Use AF_CONFIG_OPTION_CJK. 1923 1924 * src/truetype/ttgload.c (tt_loader_init): Fix compiler warning. 1925 1926 * src/truetype/ttinterp.c (Ins_MSIRP): Fix compiler warning. 1927 1928 * src/truetype/ttinterp.h: Use 1929 TT_CONFIG_OPTION_BYTECODE_INTERPRETER. 1930 19312012-06-26 Infinality <infinality@infinality.net> 1932 1933 [truetype] Remove unused rounding functionality. 1934 1935 The subpixel hinting patch contained the concept of an adjustable 1936 number of gridlines per pixel. This is no longer used due to x 1937 being completely ignored instead. This will return some of the 1938 code to its existing state prior to the original Infinality 1939 commit. 1940 1941 * include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID, 1942 FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): Removed. 1943 1944 * src/truetype/ttinterp.c: Updated. 1945 (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, 1946 Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45, 1947 SetSuperRound): Remove parameter to handle the number of grid lines per 1948 pixel. 1949 (SET_SuperRound, ROUND_None, CUR_Func_round): Updated. 1950 (DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated. 1951 (DO_ROUND, DO_NROUND): Updated. 1952 (Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP, 1953 Ins_MDRP, Ins_MIRP): Perform Round_None instead of calling a modified 1954 rounding function. Remove gridlines_per_pixel. Create a local 1955 variable to store control value cutin. Simplify the conditional for 1956 ignore_x_mode. Adjust rounding calls to pass only two values. 1957 19582012-06-25 Werner Lemberg <wl@gnu.org> 1959 1960 [cff] Fix Savannah bug #36705. 1961 1962 Handle numbers like 2.001 correctly. 1963 1964 * src/cff/cffparse.c (cff_parse_real): Avoid negative values for 1965 `shift'. 1966 19672012-06-18 Infinality <infinality@infinality.net> 1968 1969 [truetype] Support subpixel hinting. 1970 1971 This is the large, famous `Infinality' patch to support ClearType 1972 bytecode which has been available from 1973 http://www.infinality.net/blog/ for some time, and which has been 1974 refined over the last years. While still experimental, it is now 1975 mature enough to be included directly into FreeType. 1976 1977 Most of the code is based on the ClearType whitepaper written by 1978 Greg Hitchcock 1979 1980 https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx 1981 1982 which gives a detailed overview of the necessary changes to the 1983 Microsoft rasterizer so that older fonts are supported. However, a 1984 lot of details are still missing, and this patches provides a 1985 framework to easily handle rendering issues down to the glyph level 1986 of certain fonts. 1987 1988 Note that ClearType support is not completely implemented! In 1989 particular, full support for the options `compatible_widths', 1990 `symmetrical_smoothing, and `bgr' (via the GETINFO bytecode 1991 instruction) is missing. 1992 1993 * src/truetype/ttsubpix.c: New file, providing code to handle 1994 `tweaks', this is, rules for certain glyphs in certain fonts 1995 (including wildcards) which need a special treatment. 1996 1997 * src/truetype/ttsubpix.h: New file, holding the tweaking rules. 1998 1999 * include/freetype/config/ftoption.h, src/devel/ftoption.h 2000 (TT_CONFIG_OPTION_SUBPIXEL_HINTING): New macro. 2001 2002 * include/freetype/internal/ftobjs.h (FT_PIX_FLOOR_GRID, 2003 FT_PIX_ROUND_GRID, FT_PIX_CEIL_GRID): New macros. 2004 2005 * src/truetype/truetype.c [TT_USE_BYTECODE_INTERPRETER]: Include 2006 `ttsubpix.c'. 2007 2008 * src/truetype/ttgload.c: Include `ttsubpix.h'. 2009 [All changes below are guarded by TT_CONFIG_OPTION_SUBPIXEL_HINTING.] 2010 2011 (tt_get_metrics): Set tweak flags. 2012 (TT_Hint_Glyph): Call `FT_Outline_EmboldenXY' if necessary. 2013 (TT_Process_Simple_Glyph): Compensate emboldening if necessary. 2014 (compute_glyph_metrics): Handle `compatible widths' option. 2015 (tt_loader_init): Handle ClearType GETINFO information bits. 2016 2017 * src/truetype/rules.mk (TT_DRV_SRC): Updated. 2018 2019 * src/truetype/ttinterp.c: Include `ttsubpix.h'. 2020 [Where necessary, changes below are guarded by 2021 TT_CONFIG_OPTION_SUBPIXEL_HINTING.] 2022 2023 (Direct_Move, Direct_Move_X): Extended. 2024 (Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid, 2025 Round_Up_To_Grid, Round_To_Double_Grid, Round_Super, Round_Super_45, 2026 SetSuperRound): Add parameter to handle the number of grid lines per 2027 pixel. 2028 (SET_SuperRound, ROUND_None, CUR_Func_round): Updated. 2029 (DO_SROUND, DOS45ROUND, DO_ODD, DO_EVEN): Updated. 2030 (DO_ROUND, DO_NROUND): Updated. 2031 (DO_RS): Take care of `Typeman' bytecode patterns. 2032 (Ins_FDEF): Add some debugging code. Commented out. 2033 (Ins_ENDF): Restore state. 2034 (Ins_CALL, Ins_LOOPCALL): Handle inline delta functions. 2035 (Ins_MD): Handle `Vacuform' rounds. 2036 (Move_Zp2_Point, Ins_SHPIX, Ins_MSIRP, Ins_MDAP, Ins_MIAP, 2037 Ins_MDRP, Ins_MIRP): Handle tweaks. 2038 (Ins_ALIGNRP): Add tweak guard. 2039 (Ins_IUP, Ins_DELTAP): Handle tweaks. 2040 (Ins_GETINFO): Handle new ClearType bits. 2041 (TT_RunIns): Handle tweaks. 2042 2043 * src/truetype/ttinterp.h: Updated. 2044 (SPH_TweakRule, SPH_ScaleRule): New structures for tweaks. 2045 (TT_ExecContextRec): Add members for subpixel hinting support. 2046 2047 * src/truetype/ttobjs.h (TT_DefRecord): Add `inline_delta' member. 2048 20492012-06-15 Werner Lemberg <wl@gnu.org> 2050 2051 * Version 2.4.10 released. 2052 ========================= 2053 2054 2055 Tag sources with `VER-2-4-10'. 2056 2057 * docs/VERSION.DLL: Update documentation and bump version number to 2058 2.4.10. 2059 2060 * README, Jamfile (RefDoc), 2061 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 2062 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 2063 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, 2064 builds/win32/visualc/freetype.dsp, 2065 builds/win32/visualc/freetype.vcproj, 2066 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 2067 builds/win32/visualce/freetype.vcproj, 2068 builds/win32/visualce/index.html, 2069 builds/wince/vc2005-ce/freetype.vcproj, 2070 builds/wince/vc2005-ce/index.html, 2071 builds/wince/vc2008-ce/freetype.vcproj, 2072 builds/wince/vc2008-ce/index.html: s/2.4.9/2.4.10/, s/249/2410/. 2073 2074 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. 2075 2076 * builds/unix/configure.raw (version_info): Set to 15:0:9. 2077 20782012-06-15 Alexei Podtelezhnikov <apodtele@gmail.com> 2079 2080 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Improve spacing. 2081 2082 * docs/CHANGES: Updated. 2083 20842012-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2085 2086 * builds/exports.mk: Add CCexe_CFLAGS and CCexe_LDFLAGS. 2087 2088 to pass special compiler/linker flags under cross development. 2089 Suggested by Savannah bug #36367. 2090 2091 ChangeLog on 2010-07-15 saying as they were removed was wrong 2092 for the official trunk of FreeType2. This commit is the first 2093 introduction of them. 2094 20952012-06-14 Werner Lemberg <wl@gnu.org> 2096 2097 * docs/CHANGES: Updated. 2098 20992012-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2100 2101 [truetype] Add new versions of NEC FA family to tricky font list. 2102 2103 NEC FA family dated in 1996 have different checksum. 2104 Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>; see 2105 2106 https://lists.gnu.org/archive/html/freetype-devel/2012-06/msg00023.html 2107 2108 * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): 4 sets 2109 of fpgm & prep table checksums for FA-Gothic, FA-Minchou, 2110 FA-RoundedGothicM, FA-RoundedGothicB are added. The family 2111 names in sample PDF are truncated, thus the list of the 2112 family names in tt_check_trickyness_family() is not updated yet. 2113 21142012-06-06 Werner Lemberg <wl@gnu.org> 2115 2116 [ftraster] Fix rounding issue causing visual artifacts. 2117 2118 Problem reported by jola <hans-jochen.lau@lhsystems.com>; see 2119 2120 https://lists.gnu.org/archive/html/freetype-devel/2012-05/msg00036.html 2121 2122 * src/raster/ftraster.c (SMulDiv_No_Round): New macro. 2123 (Line_Up): Use it. 2124 * src/raster/ftmisc.h (FT_MulDiv_No_Round): Copied from `ftcalc.c'. 2125 21262012-05-28 Alexei Podtelezhnikov <apodtele@gmail.com> 2127 2128 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Simplify. 2129 2130 We now use the cross product of the direction vectors to compute the 2131 outline's orientation. 2132 21332012-05-28 Werner Lemberg <wl@gnu.org> 2134 2135 * docs/CHANGES: Updated. 2136 21372012-05-28 Alexei Podtelezhnikov <apodtele@gmail.com> 2138 2139 New function FT_Outline_EmboldenXY. 2140 2141 * include/freetype/ftoutln.h (FT_Outline_EmboldenXY): Define it. 2142 2143 * src/base/ftoutln.c (FT_Outline_EmboldenXY): Implement it, using a 2144 simplified emboldening algorithm. 2145 (FT_Outline_Embolden): Make it a special case of 2146 `FT_Outline_EmboldenXY' 2147 21482012-05-07 Werner Lemberg <wl@gnu.org> 2149 2150 [type1] Fix Savannah bug #36386. 2151 2152 * src/type1/t1load.c (t1_load_keyword): Ignore keyword if context is 2153 not valid. 2154 21552012-04-07 Werner Lemberg <wl@gnu.org> 2156 2157 Remove compiler warning. 2158 2159 * src/truetype/ttgload.c (TT_Load_Glyph) 2160 [!TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Access `glyph->face' directly. 2161 21622012-03-28 Werner Lemberg <wl@gnu.org> 2163 2164 [autofit] Properly copy scaler flags to script metrics object. 2165 2166 Without this patch, only the dummy and cjk autohinter modules get 2167 them (since they copy the whole scaler object). 2168 2169 * src/autofit/aflatin.c (af_latin_metrics_scale), 2170 src/autofit/aflatin2.c (af_latin2_metrics_scale): Implement it. 2171 21722012-03-22 Alexei Podtelezhnikov <apodtele@gmail.com> 2173 2174 [bdflib] Remove redundant macro. 2175 2176 * src/bdf/bdflib.c (isdigok): Remove and replace with sbitset, which 2177 is exactly the same. 2178 21792012-03-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2180 2181 [configure] Fix Savannah bug #35644. 2182 2183 * builds/unix/configure.raw: Check `-ansi' flag works even if gcc 2184 is used. Bionic libc headers for Android lose the consistency 2185 when they are parsed with __STDC_VERSION__ older than 199901L or 2186 __STRICT_ANSI__. 2187 21882012-03-20 Werner Lemberg <wl@gnu.org> 2189 2190 [bdf] Improvement to Savannah bug #35656. 2191 2192 * src/bdf/bdflib.c (isdigok): Add cast, as suggested in report. 2193 21942012-03-17 Chris Liddell <chris.liddell@artifex.com> 2195 2196 [type1] Fix Savannah bug #35847. 2197 2198 * src/type1/t1load.c (parse_subrs): Fix the loop exit condition; 2199 we want to exit when we have run out of data. 2200 22012012-03-16 Werner Lemberg <wl@gnu.org> 2202 2203 [bdf] Really fix Savannah bug #35658. 2204 2205 * src/bdf/bdflib.c (_bdf_list_split): Add one more `field' initializer. 2206 22072012-03-14 Yann Droneaud <yann@droneaud.fr> 2208 2209 [sfnt] Make arrays static like all others. 2210 2211 * src/sfnt/ttload.c (tt_face_load_maxp, tt_face_load_os2), 2212 src/sfnt/ttmtx.c (tt_face_load_hhea): Add `static' keyword to frame 2213 fields. 2214 22152012-03-14 Huw Davies <huw@codeweavers.com> 2216 2217 [sfnt] A refinement of the previous commit. 2218 2219 * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, 2220 tt_name_entry_ascii_from_other): Stop at null byte. 2221 22222012-03-14 Huw Davies <huw@codeweavers.com> 2223 2224 [sfnt] Add `name' table compatibility to MS Windows. 2225 2226 * src/sfnt/sfobjs.c (tt_name_entry_ascii_from_utf16, 2227 tt_name_entry_ascii_from_other): Don't replace `\0' with question 2228 marks when converting strings. 2229 22302012-03-14 Werner Lemberg <wl@gnu.org> 2231 2232 [type1] Fix Savannah bug #35833. 2233 2234 Based on the patch given in the bug report. 2235 2236 * src/type1/t1load.c (IS_INCREMENTAL): New macro. 2237 (read_binary_data): Add parameter `incremental'. 2238 Update all callers using `IS_INCREMENTAL'. 2239 22402012-03-11 Werner Lemberg <wl@gnu.org> 2241 2242 [autofit] Return correct linear advance width values. 2243 2244 This was quite a subtle bug which accidentally showed up with glyph 2245 `afii10023' of arial.ttf (version 2.76). This glyph is a composite; 2246 the first component, `E', has an advance width of 1366 font units, 2247 while the advance width of the composite itself (which looks like 2248 uppercase `E' with dieresis) is 1367 font units. I think this is 2249 actually a bug in the font itself, because there is no reason that 2250 this glyph has not the same width as uppercase `E' without the 2251 dieresis. Anyway, it helped identify this problem. 2252 2253 Using the TrueType hinter, the correct value (1367) of `afii10023' 2254 was returned, but the autohinter mysteriously returned 1366. 2255 2256 Digging in the code showed that the autohinter recursively calls 2257 FT_Load_Glyph to load the glyph, adding the FT_LOAD_NO_SCALE load 2258 flag. However, the `linearHoriAdvance' field is still returned as a 2259 scaled value. To avoid scaling twice, the old code in autofit reset 2260 `linearHoriAdvance', using the `horiAdvance' field. This seemed to 2261 work since FT_LOAD_NO_SCALE was in use, but it failed actually, 2262 because `horiAdvance' is defined as the distance of the first 2263 subglyph's phantom points, which in turn are initialized using the 2264 advance width of the first subglyph. And as the given example 2265 shows, these widths can differ. 2266 2267 * src/autofit/afloader.c (af_loader_load_g): Temporarily set 2268 FT_LOAD_LINEAR_DESIGN while calling FT_Load_Glyph to get unscaled 2269 values for the linear advance widths. 2270 22712012-03-10 Werner Lemberg <wl@gnu.org> 2272 2273 [truetype] Fix SSW instruction. 2274 2275 * src/truetype/ttinterp.c (DO_SSW): SSW *does* use font units. For 2276 verification, it took some time to find a font which actually uses 2277 this instruction. 2278 22792012-03-09 Vinnie Falco <vinnie.falco@gmail.com> 2280 2281 Prepare source code for amalgamation. 2282 2283 * include/freetype/freetype.h: Swap order of preprocessor blocks. 2284 22852012-03-08 Werner Lemberg <wl@gnu.org> 2286 2287 * Version 2.4.9 released. 2288 ========================= 2289 2290 2291 Tag sources with `VER-2-4-9'. 2292 2293 * docs/CHANGES: Updated. 2294 2295 * docs/VERSION.DLL: Update documentation and bump version number to 2296 2.4.9. 2297 2298 * README, Jamfile (RefDoc), 2299 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 2300 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 2301 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, 2302 builds/win32/visualc/freetype.dsp, 2303 builds/win32/visualc/freetype.vcproj, 2304 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 2305 builds/win32/visualce/freetype.vcproj, 2306 builds/win32/visualce/index.html, 2307 builds/wince/vc2005-ce/freetype.vcproj, 2308 builds/wince/vc2005-ce/index.html, 2309 builds/wince/vc2008-ce/freetype.vcproj, 2310 builds/wince/vc2008-ce/index.html: s/2.4.8/2.4.9/, s/248/249/. 2311 2312 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 9. 2313 2314 * builds/unix/configure.raw (version_info): Set to 14:1:8. 2315 23162012-03-08 Werner Lemberg <wl@gnu.org> 2317 2318 [bdf] Add missing overflow check. 2319 2320 * src/bdf/bdflib.c (_bdf_parse_glyphs) <BITMAP>: Add threshold for 2321 `glyph->bpr'. 2322 23232012-03-07 Vinnie Falco <vinnie.falco@gmail.com> 2324 2325 Prepare source code for amalgamation. 2326 2327 * src/autofit/aferrors.h, src/bdf/bdferror.h, src/bzip2/ftbzip2.c, 2328 src/cache/ftcerror.h, src/cff/cfferrs.h, src/cid/ciderrs.h, 2329 src/gxvalid/gxverror.h, src/gzip/ftgzip.c, src/lzw/ftlzw.c, 2330 src/otvalid/otverror.h, src/pcf/pcferror.h, src/pfr/pfrerror.h, 2331 src/psaux/psauxerr.h, src/pshinter/pshnterr.h, 2332 src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h, 2333 src/smooth/ftsmerrs.h, src/truetype/tterrors.h, 2334 src/type1/t1errors.h, src/type42/t42error.h, src/winfonts/fnterrs.h: 2335 Add #undef FT_ERR_PREFIX before #define FT_ERR_PREFIX. 2336 23372012-03-03 Werner Lemberg <wl@gnu.org> 2338 2339 Fix Savannah bug #35660. 2340 2341 For some divisions, we use casts to 32bit entities. Always guard 2342 against division by zero with these casts also. 2343 2344 * src/base/ftcalc.c (ft_div64by32): Remove redundant cast. 2345 (FT_MulDiv, FT_MulDiv_No_Round): Add 32bit cast. 2346 (FT_DivFix): Add 32bit cast (this omission triggered the bug). 2347 23482012-03-03 Werner Lemberg <wl@gnu.org> 2349 2350 [psaux] Fix handling of track kerning. 2351 2352 * src/psaux/afmparse.c (afm_parse_track_kern): Don't inverse sign 2353 for `min_kern'. It is indeed quite common that track kerning 2354 *increases* spacing for very small sizes. 2355 23562012-03-02 Werner Lemberg <wl@gnu.org> 2357 2358 [truetype] Fix Savannah bug #35689. 2359 2360 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Check first outline 2361 point. 2362 23632012-03-01 Werner Lemberg <wl@gnu.org> 2364 2365 [bdf] Fix Savannah bug #35656. 2366 2367 * src/bdf/bdflib.c (_bdf_parse_glyphs) <_BDF_BITMAP>: Check validity 2368 of nibble characters instead of accessing `a2i' array. 2369 23702012-03-01 Werner Lemberg <wl@gnu.org> 2371 2372 [winfonts] Fix Savannah bug #35659. 2373 2374 * src/winfonts/winfnt.c (FNT_Face_Init): Check number of glyphs. 2375 23762012-03-01 Werner Lemberg <wl@gnu.org> 2377 2378 [bdf] Fix Savannah bug #35658. 2379 2380 * src/bdf/bdflib.c (_bdf_list_split): Initialize `field' elements 2381 properly. 2382 23832012-03-01 Werner Lemberg <wl@gnu.org> 2384 2385 [psaux] Fix Savannah bug #35657. 2386 2387 If in function `skip_spaces' the routine `skip_comment' comes to the 2388 end of buffer, `cur' is still increased by one, so we need to check 2389 for `p >= limit' and not `p == limit'. 2390 2391 * src/psaux/psconv.c (PS_Conv_Strtol, PS_Conv_ToFixed, 2392 PS_Conv_ASCIIHexDecode, PS_Conv_EexecDecode): Fix boundary checking. 2393 23942012-03-01 Werner Lemberg <wl@gnu.org> 2395 2396 [truetype] Fix Savannah bug #35646. 2397 2398 * src/truetype/ttinterp.c (Ins_MIRP): Typo, present since ages. The 2399 code is now in sync with the other operators (e.g. MSIRP) which 2400 modify twilight points. 2401 24022012-03-01 Werner Lemberg <wl@gnu.org> 2403 2404 [bdf] Fix Savannah bug #35643. 2405 2406 * src/bdf/bdflib.c (_bdf_list_ensure): Bring code in sync with 2407 comment before `_bdf_list_split', this is, really allocate at least 2408 five `field' elements. 2409 24102012-03-01 Werner Lemberg <wl@gnu.org> 2411 2412 [bdf] Fix Savannah bug #35641. 2413 2414 * src/bdf/bdflib.c (_bdf_parse_glyphs) <DWIDTH, BBX>: Abort if 2415 _BDF_ENCODING isn't set. We need this because access to the `glyph' 2416 variable might be undefined otherwise. 2417 24182012-03-01 Werner Lemberg <wl@gnu.org> 2419 2420 [truetype] Fix Savannah bug #35640. 2421 2422 * src/truetype/ttinterp.c (SkipCode, TT_RunIns): Fix boundary check 2423 for NPUSHB and NPUSHW instructions. 2424 24252012-02-29 Werner Lemberg <wl@gnu.org> 2426 2427 [truetype] Fix Savannah bug #35601. 2428 2429 * src/truetype/ttinterp.c (Ins_SHZ): Use number of points instead of 2430 last point for loop. 2431 Also remove redundant boundary check. 2432 24332012-02-29 Werner Lemberg <wl@gnu.org> 2434 2435 [truetype] Remove redundant check. 2436 2437 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Remove redundant 2438 second check for ordered contour start points. 2439 24402012-02-29 Werner Lemberg <wl@gnu.org> 2441 2442 [truetype] Make SHC instruction behave similar to MS rasterizer. 2443 2444 * src/truetype/ttinterp.c (Ins_SHC): Handle virtual contour in 2445 twilight zone. 2446 24472012-02-29 Alexei Podtelezhnikov <apodtele@gmail.com> 2448 2449 Avoid modulo operators against a power-of-two denominator. 2450 2451 * src/afcjk.c (af_hint_normal_stem), src/base/ftoutln.c 2452 (ft_contour_has), src/cff/cffgload.c (cff_decoder_parse_charstrings) 2453 <cff_op_vvcurveto, cff_op_hhcurveto, cff_op_hvcurveto>, 2454 src/gxvalid/gxvcommn.c (GXV_32BIT_ALIGNMENT_VALIDATE), 2455 src/gxvalid/gxvfeat.c (gxv_feat_setting_validate): Replace `%' with 2456 `&' operator. 2457 24582012-02-29 Werner Lemberg <wl@gnu.org> 2459 2460 [autofit] Don't synchronize digit widths for light rendering mode. 2461 2462 We don't hint horizontally in this mode. 2463 2464 * src/autofit/afloader.c (af_loader_load_g) <Hint_Metrics>: 2465 Implement it. 2466 24672012-02-26 Alexei Podtelezhnikov <apodtele@gmail.com> 2468 2469 [type42] Minor code optimization (again). 2470 2471 * src/type42/t42parse.c (t42_parse_sfnts): Simplify previous change. 2472 24732012-02-26 Mateusz Jurczyk <mjurczyk@google.com> 2474 Werner Lemberg <wl@gnu.org> 2475 2476 [smooth] Fix Savannah bug #35604. 2477 2478 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `FT_Pos' 2479 instead of `FT_UInt' for some variables and update comparisons 2480 accordingly. A detailed analysis can be found in the bug report. 2481 24822012-02-26 Alexei Podtelezhnikov <apodtele@gmail.com> 2483 2484 [type42] Minor code optimization. 2485 2486 * src/type42/t42parse.c (t42_parse_sfnts): Use bitmask instead of 2487 modulo operator. 2488 24892012-02-26 Werner Lemberg <wl@gnu.org> 2490 2491 * docs/CHANGES: Updated. 2492 24932012-02-26 Werner Lemberg <wl@gnu.org> 2494 2495 [type1] Fix Savannah bug #35608. 2496 2497 * src/type1/t1parse.c (T1_Get_Private_Dict): Reject too short 2498 dictionaries. 2499 25002012-02-26 Werner Lemberg <wl@gnu.org> 2501 2502 [bdf] Support `ENCODING -1 <n>' format. 2503 2504 * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Implement it. 2505 25062012-02-26 Werner Lemberg <wl@gnu.org> 2507 2508 [bdf] Fix Savannah bug #35607. 2509 2510 * src/bdf/bdflib.c (_bdf_parse_glyphs) <ENCODING>: Normalize 2511 negative encoding values. 2512 25132012-02-26 Werner Lemberg <wl@gnu.org> 2514 2515 [type1] Fix Savannah bug #35606. 2516 2517 * src/type1/t1load.c (parse_subrs): Add proper guards for `strncmp'. 2518 2519 * src/psaux/psobjs.c (ps_parser_skip_PS_token): Emit error message 2520 only if cur < limit. 2521 25222012-02-25 Werner Lemberg <wl@gnu.org> 2523 2524 [pcf] Fix Savannah bug #35603. 2525 2526 * src/pcf/pcfread.c (pcf_get_properties): Assure final zero byte in 2527 `strings' array. 2528 25292012-02-25 Werner Lemberg <wl@gnu.org> 2530 2531 [type42] Fix Savannah bug #35602. 2532 2533 * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size' more 2534 thoroughly. 2535 25362012-02-25 Werner Lemberg <wl@gnu.org> 2537 2538 [bdf] Fix Savannah bugs #35599 and #35600. 2539 2540 * src/bdf/bdflib.c (ACMSG16): New warning message. 2541 (_bdf_parse_glyphs) <_BDF_BITMAP>: Check line length. 2542 25432012-02-24 Werner Lemberg <wl@gnu.org> 2544 2545 [bdf] Fix Savannah bugs #35597 and #35598. 2546 2547 * src/bdf/bdflib.c (_bdf_is_atom): Fix handling of property value. 2548 25492012-02-24 Vinnie Falco <vinnie.falco@gmail.com> 2550 2551 Prepare source code for amalgamation (6/6). 2552 2553 * src/cff/cffdrivr.c: s/Load_Glyph/cff_glyph_load/. 2554 2555 * src/cid/cidload.c: s/parse_font_matrix/cid_parse_font_matrix/. 2556 s/t1_init_loader/cid_init_loader/. 2557 s/t1_done_loader/cid_done_loader/. 2558 2559 * src/psaux/t1cmap.c: s/t1_get_glyph_name/psaux_get_glyph_name/. 2560 2561 * src/truetype/ttdriver.c: s/Load_Glyph/tt_glyph_load/. 2562 2563 * src/type1/t1load.c: s/parse_font_matrix/t1_parse_font_matrix/. 2564 25652012-02-24 Vinnie Falco <vinnie.falco@gmail.com> 2566 2567 Prepare source code for amalgamation (5/6). 2568 2569 * include/freetype/fterrors.h: Undefine FT_KEEP_ERR_PREFIX after 2570 using it. 2571 25722012-02-22 Vinnie Falco <vinnie.falco@gmail.com> 2573 2574 Prepare source code for amalgamation (4/6). 2575 2576 * src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine RAS_ARG, 2577 RAS_ARGS, RAS_VAR, and RAS_VARS before defining it. 2578 2579 * src/smooth/ftgrays.c: s/TRaster/black_TRaster/, 2580 s/PRaster/black_PRaster/. 2581 * src/raster/ftraster.c: s/TRaster/gray_TRaster/, 2582 s/PRaster/gray_PRaster/. 2583 25842012-02-20 Vinnie Falco <vinnie.falco@gmail.com> 2585 2586 Prepare source code for amalgamation (3/6). 2587 2588 * src/smooth/ftgrays.c: s/TWorker/black_TWorker/, 2589 s/PWorker/black_PWorker/. 2590 * src/raster/ftraster.c: s/TWorker/gray_TWorker/, 2591 s/PWorker/gray_PWorker/. 2592 25932012-02-20 Vinnie Falco <vinnie.falco@gmail.com> 2594 2595 Prepare source code for amalgamation (2/6). 2596 2597 * src/smooth/ftgrays.c, src/raster/ftraster.c: Undefine FLOOR, 2598 CEILING, TRUNC, and SCALED before defining it. 2599 26002012-02-20 Vinnie Falco <vinnie.falco@gmail.com> 2601 2602 Prepare source code for amalgamation (1/6). 2603 2604 See discussion starting at 2605 2606 https://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00037.html 2607 2608 * src/smooth/ftgrays.c: s/TBand/gray_TBand/. 2609 * src/raster/ftraster.c: s/TBand/black_TBand/. 2610 26112012-02-17 Alexei Podtelezhnikov <apodtele@gmail.com> 2612 2613 [autofit] Fix outline flags. 2614 2615 * src/autofit/afloader.c (af_loader_load_g): Don't reassign 2616 `outline.flags' so that this information is preserved. See 2617 discussion starting at 2618 2619 https://lists.gnu.org/archive/html/freetype-devel/2012-02/msg00046.html 2620 26212012-02-11 Werner Lemberg <wl@gnu.org> 2622 2623 [truetype] Fix Savannah bug #35466. 2624 2625 Jump instructions are now bound to the current function. The MS 2626 Windows rasterizer behaves the same, as confirmed by Greg Hitchcock. 2627 2628 * src/truetype/ttinterp.h (TT_CallRec): Add `Cur_End' element. 2629 * src/truetype/ttobjs.h (TT_DefRecord): Add `end' element. 2630 2631 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Check upper 2632 bound of jump address. 2633 (Ins_FDEF, Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns): Updated. 2634 26352012-02-11 Werner Lemberg <wl@gnu.org> 2636 2637 We don't use `extensions'. 2638 2639 * include/freetype/internal/ftobjs.h (FT_DriverRec): Remove 2640 `extensions' field. 2641 26422012-02-11 Werner Lemberg <wl@gnu.org> 2643 2644 Clean up `generic' fields. 2645 2646 * include/freetype/internal/ftobjs.h (FT_ModuleRec, FT_LibraryRec): 2647 Remove `generic' field since users can't access it. 2648 2649 * src/base/ftobjs.c (FT_Done_GlyphSlot): Call `generic.finalizer' as 2650 advertised in the documentation of FT_Generic. 2651 (Destroy_Module, FT_Done_Library): Updated to changes in `ftobjs.h'. 2652 26532012-02-07 Werner Lemberg <wl@gnu.org> 2654 2655 [autofit] Harmonize function arguments. 2656 2657 * src/autofit/afloader.c, src/autofit/afloader.h: Use `FT_Int32' for 2658 `load_flags'. 2659 26602012-02-07 Werner Lemberg <wl@gnu.org> 2661 2662 * src/cff/cffobjs.c (cff_face_init): Remove unnecessary casts. 2663 26642012-01-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2665 2666 [gxvalid] Fix Savannah bug #35286. 2667 2668 Patch submitted by anonymous reporter. 2669 2670 * src/gxvalid/gxvcommn.c (gxv_XStateTable_subtable_setup): 2671 gxv_set_length_by_ulong_offset() must be called with 3, not 4, 2672 the number of the subtables in the state tables; classTable, 2673 stateArray, entryTable. 2674 26752012-01-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2676 2677 [raccess] Modify for PIC build. 2678 2679 Based on the patch provided by Erik Dahlstrom <ed@opera.com>, 2680 https://lists.gnu.org/archive/html/freetype-devel/2012-01/msg00010.html 2681 2682 Also `raccess_guess_table[]' and `raccess_rule_by_darwin_vfs()' 2683 are renamed with `ft_' suffixes. 2684 2685 * src/base/ftbase.h: `raccess_rule_by_darwin_vfs()' is renamed 2686 to `ft_raccess_rule_by_darwin_vfs()'. 2687 * src/base/ftobjs.c: Ditto. 2688 2689 * src/base/ftrfork.c: Declarations of FT_RFork_Rule, 2690 raccess_guess_rec, are moved to... 2691 * include/freetype/internal/ftrfork.h: Here. 2692 2693 * include/freetype/internal/ftrfork.h: 2694 FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END} macros are defined 2695 to replace raccess_guess_table[] in both of PIC and non-PIC 2696 modes. 2697 * src/base/ftrfork.c: raccess_guess_table[] array is rewritten 2698 by FT_RFORK_RULE_ARRAY_{BEGIN,ENTRY,END}. 2699 2700 * src/base/basepic.h (BasePIC): Add `ft_raccess_guess_table' 2701 storage. (FT_RACCESS_GUESS_TABLE_GET): New macro to retrieve 2702 the function pointer from `ft_raccess_guess_table' storage in 2703 `BasePIC' structure. 2704 * src/base/ftrfork.c (FT_Raccess_Guess): Rewritten with 2705 FT_RACCESS_GUESS_TABLE_GET. 2706 (raccess_get_rule_type_from_rule_index): Add `library' as the 2707 first argument to the function, to retrieve the storage of 2708 `ft_raccess_guess_table' from it. Also `raccess_guess_table' 2709 is replaced by FT_RACCESS_GUESS_TABLE_GET. 2710 (ft_raccess_rule_by_darwin_vfs): Ditto. 2711 27122012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2713 2714 Remove trailing spaces. 2715 27162012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2717 2718 Formatting PIC related sources. 2719 2720 * src/autofit/afpic.c: Harmonize to FT2 coding conventions. 2721 * src/base/basepic.c: Ditto. 2722 * src/base/ftpic.c: Ditto. 2723 * src/cff/cffpic.c: Ditto. 2724 * src/pshinter/pshpic.c: Ditto. 2725 * src/psnames/pspic.c: Ditto. 2726 * src/raster/rastpic.c: Ditto. 2727 * src/sfnt/sfntpic.c: Ditto. 2728 * src/smooth/ftspic.c: Ditto. 2729 * src/truetype/ttpic.c: Ditto. 2730 27312012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2732 2733 [autofit] Fix the inclusion of `aflatin2.h' in PIC file. 2734 2735 * src/autofit/afpic.c: Include `aflatin2.h' when 2736 FT_OPTION_AUTOFIT2 is defined, as afglobal.c does so. 2737 Unconditionally inclusion causes declared but unimplemented 2738 warning by GCC 4.6. 2739 27402012-01-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2741 2742 [cff] Remove redundant declarations of cff_cmap_XXX_class_rec. 2743 2744 * src/cff/cffpic.c: The declarations of 2745 FT_Init_Class_cff_cmap_encoding_class_rec() and 2746 FT_Init_Class_cff_cmap_unicode_class_rec() are removed. 2747 They can be obtained by the inclusion of cffcmap.h. 2748 cffcmap.h invokes FT_DECLARE_CMAP_CLASS() and it declares 2749 FT_Init_Class_cff_cmap_encoding_class_rec() etc in PIC mode. 2750 27512012-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2752 2753 Fix redundant declaration warning in PIC mode. 2754 2755 Originally FT_DEFINE_{DRIVER,MODULE,RENDERER}() macros were 2756 designed to declare xxx_pic_{free,init} by themselves. 2757 Because these macros are used at the end of the module 2758 interface (e.g. ttdriver.c) and the wrapper source to build 2759 a module as a single object (e.g. truetype.c) includes 2760 the PIC file (e.g. ttpic.c) before the module interface, 2761 these macros are expanded AFTER xxx_pic_{free,init} body 2762 when the modules are built as single object. 2763 The declaration after the implementation causes the redundant 2764 declaration warnings, so the declarations are moved to module 2765 PIC headers (e.g. ttpic.h). Separating to other header files 2766 are needed for multi build. 2767 2768 * include/freetype/internal/ftdriver.h (FT_DEFINE_DRIVER): 2769 Remove class_##_pic_free and class_##_pic_init declarations. 2770 * include/freetype/internal/ftobjs.h (FT_DEFINE_RENDERER, 2771 FT_DEFINE_MODULE): Ditto. 2772 2773 * src/base/basepic.h: Insert a comment and fix coding style. 2774 * src/autofit/afpic.h: Declare autofit_module_class_pic_{free, 2775 init}. 2776 * src/cff/cffpic.h: Declare cff_driver_class_pic_{free,init}. 2777 * src/pshinter/pshpic.h: Declare pshinter_module_class_pic_{free, 2778 init}. 2779 * src/psnames/pspic.h: Declare psnames_module_class_pic_{free, 2780 init}. 2781 * src/raster/rastpic.h: Declare 2782 ft_raster{1,5}_renderer_class_pic_{free,init} 2783 * src/sfnt/sfntpic.h: Declare sfnt_module_class_pic_{free,init}. 2784 * src/smooth/ftspic.h: Declare 2785 ft_smooth_{,lcd_,lcdv_}renderer_class_pic_{free,init}. 2786 * src/truetype/ttpic.h: Declare tt_driver_class_pic_{free,init}. 2787 27882012-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2789 2790 Make pspic.c to include module error header to fix multi build. 2791 2792 * src/psnames/pspic.c: Include `psnamerr.h'. 2793 27942012-01-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2795 2796 [base] Fix a dereference of uninitialized variable in PIC mode. 2797 2798 * src/base/ftglyph.c (FT_Glyph_To_Bitmap): `glyph' must be 2799 set before dereferring to obtain `library'. The initialization 2800 of `clazz', `glyph', `library' and NULL pointer check are 2801 reordered to minimize PIC conditionals. 2802 28032012-01-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2804 2805 [base] Insert explicit cast for GCC 4.6 in PIC mode. 2806 2807 * src/base/ftinit.c (FT_Add_Default_Modules): Under PIC 2808 configuration, FT_DEFAULT_MODULES_GET returns 2809 FT_Module_Class** pointer, GCC 4.6 warns that 2810 const FT_Module_Class* const* variable is warned as 2811 inappropriate to store it. To calm it, explicit cast is 2812 inserted. Also `library' is checked to prevent the NULL 2813 pointer dereference in FT_DEFAULT_MODULES_GET. 2814 28152012-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2816 2817 Fix PIC build broken by d9145241fe378104ba4c12a42534549faacc92e6. 2818 2819 Under PIC configuration, FT_{CFF,PSCMAPS,SFNT,TT}_SERVICES_GET 2820 take no arguments but derefer the variable named `library' 2821 internally. 2822 2823 * src/cff/cffdrivr.c (cff_get_interface): Declare `library' and 2824 set it if non-NULL driver is passed. 2825 * src/truetype/ttdriver.c (tt_get_interface): Ditto. 2826 2827 * src/sfnt/sfdriver.c (sfnt_get_interface): Declare `library' 2828 under PIC configuration, and set it if non-NULL module is given. 2829 * src/psnames/psmodule.c (psnames_get_interface): Ditto. 2830 28312012-01-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2832 2833 Make PIC files include module error headers, to use the error codes 2834 with per-module prefix. 2835 2836 * src/autofit/afpic.c: Include `aferrors.h'. 2837 * src/cff/cffpic.c: Include `cfferrs.h'. 2838 * src/pshinter/pshpic.c: Include `pshnterr.h'. 2839 * src/raster/rastpic.c: Include `rasterrs.h'. 2840 * src/sfnt/sfntpic.c: Include `sferrors.h'. 2841 * src/smooth/ftspic.c: Include `ftsmerrs.h'. 2842 * src/truetype/ttpic.c: Include `tterrors.h'. 2843 28442012-01-04 Tobias Ringström <tobias@ringis.se> 2845 2846 [truetype] Fix IP instruction if x_ppem != y_ppem. 2847 2848 * src/truetype/ttinterp.c (Ins_IP): Scale `orus' coordinates 2849 properly. 2850 28512012-01-02 Werner Lemberg <wl@gnu.org> 2852 2853 Fix tracing message for `loca' table. 2854 2855 * src/truetype/ttpload.c (tt_face_get_location): Don't emit a 2856 warning message if the last `loca' entry references an empty glyph. 2857 28582011-12-10 Werner Lemberg <wl@gnu.org> 2859 2860 Add some variable initializations. 2861 Reported by Richard COOK <rscook@unicode.org>. 2862 2863 * src/type1/t1driver.c (t1_ps_get_font_value): Initialize `val'. 2864 * src/smooth/ftgrays.c (gray_render_conic): Initialize `levels' 2865 earlier. 2866 28672011-12-08 Werner Lemberg <wl@gnu.org> 2868 2869 Fix serious scaling bug in `FT_Get_Advances'. 2870 2871 * src/base/ftadvanc.c (FT_Get_Advances): Advance values returned by 2872 `FT_Load_Glyph' must be simply multiplied by 1024. 2873 28742011-12-08 Werner Lemberg <wl@gnu.org> 2875 2876 * src/bdf/bdflib.c (_bdf_parse_start): Drop redundant error tracing. 2877 28782011-12-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2879 2880 [mac] Unify DARWIN_NO_CARBON with FT_MACINTOSH. 2881 2882 Originally FT_MACINTOSH was a pure auto macro and DARWIN_NO_CARBON 2883 was a configurable macro to disable Carbon-dependent code. Because 2884 now configure script sets DARWIN_NO_CARBON by default and disables 2885 Darwin & Carbon-dependent codes, these macros can be unified. 2886 FT_MACINTOSH (undefined by default) is kept and DARWIN_NO_CARBON 2887 (defined by default) is removed, because DARWIN_NO_CARBON violates 2888 FT_XXX naming convention of public macros, and a macro configured by 2889 default is not portable for the building without configure (e.g. 2890 make devel). 2891 2892 * builds/unix/configure.raw: Define FT_MACINTOSH if Carbon-based 2893 old Mac font support is requested and Carbon is available. 2894 * builds/unix/ftconfig.in: Undefine FT_MACINTOSH when the support 2895 for Mac OS X without Carbon (e.g. Mac OS X 10.4 for ppc64) is 2896 requested. 2897 * include/freetype/config/ftconfig.in: Ditto. 2898 * builds/vms/ftconfig.h: Ditto. 2899 2900 * src/base/ftbase.h: Remove DARWIN_NO_CARBON. 2901 * src/base/ftbase.c: Ditto. 2902 * src/base/ftobjs.c: Ditto. 2903 * src/base/ftrfork.c: Ditto. 2904 2905 * src/base/ftmac.c: Compile the body if FT_MACINTOSH is defined 2906 (same with TT_USE_BYTECODE_INTERPRETER in ttinterp.c). 2907 * builds/mac/ftmac.c: Ditto. 2908 2909 * builds/mac/FreeType.m68k_cfm.make.txt: Define FT_MACINTOSH. 2910 * builds/mac/FreeType.m68k_far.make.txt: Ditto. 2911 * builds/mac/FreeType.ppc_classic.make.txt: Ditto. 2912 * builds/mac/FreeType.ppc_carbon.make.txt: Ditto. 2913 29142011-11-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2915 2916 Fix Savannah bug #34728 (`make devel' on Mac OS X). 2917 2918 * builds/toplevel.mk: Check `/dev/null' to identify the Unix- 2919 like systems without `init' nor `hurd' (e.g. Mac OS X >= 10.4). 2920 * builds/unix/detect.mk: Ditto. 2921 29222011-11-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2923 2924 [apinames] Fix the overflow of signed integer hash. 2925 2926 * src/tools/apinames.c (names_add): Change the type of `h' from 2927 int to unsigned int, to prevent undefined behaviour in the 2928 overflow of signed integers (overflow of unsigned int is defined 2929 to be wrap around). Found by clang test suggested by Sean 2930 McBride. 2931 29322011-11-30 Werner Lemberg <wl@gnu.org> 2933 2934 [winfonts] Remove casts. 2935 2936 * src/winfonts/winfnt.c (winfnt_driver_class): Remove all casts and 2937 update affected functions. 2938 (FNT_Size_Select): Fix number of arguments. 2939 29402011-11-30 Werner Lemberg <wl@gnu.org> 2941 2942 [type42] Remove casts. 2943 2944 * src/type42/t42drivr.c (t42_driver_class): Remove all casts and 2945 update affected functions. 2946 2947 * src/type42/t42objs.c, src/type42/t42objs.h: Updated for t42 driver 2948 changes. 2949 29502011-11-30 Werner Lemberg <wl@gnu.org> 2951 2952 [type1] Remove casts. 2953 2954 * src/type1/t1driver.c (t1_driver_class): Remove all casts and 2955 update affected functions. 2956 2957 * src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1objs.c: 2958 Updated for t1driver changes. 2959 src/type1/t1objs.h (T1_Driver): Remove unused typedef. 2960 Updated for t1driver changes. 2961 29622011-11-27 Werner Lemberg <wl@gnu.org> 2963 2964 [bdf] Fix Savannah bug #34896. 2965 2966 ENCODING now covers the whole Unicode range. 2967 2968 Note, however, that this change is quite expensive since it 2969 increases the size of three arrays by almost 400kByte in total. The 2970 right fix is to replace the logic with something smarter. 2971 Additionally, there exist very old BDFs for three-byte CCCII 2972 encoding which exceeds the range of Unicode (another reason to have 2973 a smarter logic). 2974 2975 * src/bdf/bdf.h (bdf_font_t): Increase size of `nmod' and `umod' 2976 arrays. 2977 * src/bdf/bdflib.c (bdf_parse_t): Increase size of `have' array. 2978 29792011-11-27 Werner Lemberg <wl@gnu.org> 2980 2981 [bdf] Improve tracing. 2982 2983 * src/bdf/bdflib.c (DBGMSG1, DBGMSG2): New macros. 2984 (_bdf_parse_glyphs): Use them. 2985 29862011-11-26 Werner Lemberg <wl@gnu.org> 2987 2988 Improve tracing. 2989 2990 * src/bdf/bdfdrivr.c (BDF_Face_Done), src/pcf/pcfdrivr.c 2991 (PCF_Face_Done): Remove tracing message. 2992 2993 * src/bdf/bdfdrivr.c (BDF_Face_Init), src/cff/cffobjs.c 2994 (cff_face_init), src/cid/cidobjs.c (cid_face_init), 2995 src/pfr/pfrobjs.c (pfr_face_init), src/sfnt/sfobjs.c 2996 (sfnt_init_face), src/truetype/ttobjs.c (tt_face_init), 2997 src/type1/t1objs.c (T1_Face_Init), src/type42/t42objs.c 2998 (T42_Face_Init), src/winfonts/winfnt.c (FNT_Face_Init): Add 2999 `greeting' message. 3000 3001 * src/sfnt/sfobjs.c (sfnt_open_font), src/type42/t42objs.c 3002 (T42_Open_Face): Improve tracing. 3003 30042011-11-26 Werner Lemberg <wl@gnu.org> 3005 3006 [cid] Fix error code. 3007 3008 * src/cid/cidparse.c (cid_parser_new): Do it. 3009 30102011-11-26 Werner Lemberg <wl@gnu.org> 3011 3012 [cff] Fix error code. 3013 3014 * src/cff/cffload.c (cff_font_load): Do it. 3015 30162011-11-26 Werner Lemberg <wl@gnu.org> 3017 3018 Add new error code FT_Err_Missing_Module. 3019 3020 Previously, FreeType misleadingly returned 3021 FT_Err_Unknown_File_Format if a module was missing (or a test was 3022 missing completely). 3023 3024 * include/freetype/fterrdef.h (FT_Err_Missing_Module): Define. 3025 3026 * src/cff/cffobjs.c (cff_face_init), src/cff/cffdrivr.c 3027 (cff_get_glyph_name), src/cid/cidobjs.c (cid_face_init), 3028 src/sfnt/sfobjs.c (sfnt_init_face), src/truetype/ttobjs.c 3029 (tt_face_init), src/type1/t1objs.c (T1_Face_Init), 3030 src/type42/t42objs.c (T42_Face_Init, T42_Driver_Init): Updated. 3031 3032 * src/type1/t1afm.c (T1_Read_Metrics), src/type/t1objs.c 3033 (T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Remove now 3034 redundant test for `psaux'. 3035 30362011-11-25 Werner Lemberg <wl@gnu.org> 3037 3038 [bdf] Add more error messages. 3039 3040 * src/bdf/bdflib.c (_bdf_set_default_spacing, _bdf_add_property): 3041 Add line number argument. 3042 Update all callers. 3043 (ERRMSG5, ERRMSG6, ERRMSG7, ERRMSG8, ERRMSG9): New macros. 3044 (_bdf_readstream, _bdf_set_default_spacing, _bdf_add_property, 3045 _bdf_parse_glyphs, _bdf_parse_start): Add error messages. 3046 30472011-11-24 Werner Lemberg <wl@gnu.org> 3048 3049 * include/freetype/fterrors.h: Remove dead code. 3050 30512011-11-15 Werner Lemberg <wl@gnu.org> 3052 3053 * docs/releases: Updated. 3054 30552011-11-15 Werner Lemberg <wl@gnu.org> 3056 3057 * Version 2.4.8 released. 3058 ========================= 3059 3060 3061 Tag sources with `VER-2-4-8'. 3062 3063 * docs/CHANGES: Updated. 3064 3065 * docs/VERSION.DLL: Update documentation and bump version number to 3066 2.4.8. 3067 3068 * README, Jamfile (RefDoc), 3069 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 3070 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 3071 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, 3072 builds/win32/visualc/freetype.dsp, 3073 builds/win32/visualc/freetype.vcproj, 3074 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 3075 builds/win32/visualce/freetype.vcproj, 3076 builds/win32/visualce/index.html, 3077 builds/wince/vc2005-ce/freetype.vcproj, 3078 builds/wince/vc2005-ce/index.html, 3079 builds/wince/vc2008-ce/freetype.vcproj, 3080 builds/wince/vc2008-ce/index.html: s/2.4.7/2.4.8/, s/247/248/. 3081 3082 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 8. 3083 3084 * builds/unix/configure.raw (version_info): Set to 14:0:8. 3085 30862011-11-13 Chris Liddell <chris.liddell@artifex.com> 3087 3088 Add FT_Get_PS_Font_Value() API. 3089 3090 This allows a Type 1 font face to be interrogated to retrieve most 3091 of the dictionary keys (keys not relevant to FreeType's Type 1 3092 interpreter are not available). 3093 3094 * include/freetype/internal/services/svpsinfo.h 3095 (PS_GetFontValueFunc): New typedef. 3096 (PSInfo): Add `ps_get_font_value'. 3097 (FT_DEFINE_SERVICE_PSINFOREC): Updated. 3098 3099 * include/freetype/internal/t1types.h (T1_EncodingType): Moved to... 3100 * include/freetype/t1tables.h: Here. 3101 (PS_Dict_Keys): New enumeration. 3102 (FT_Get_PS_Font_Value): New declaration. 3103 3104 * src/base/fttype1.c (FT_Get_PS_Font_Value): New function. 3105 3106 * src/type1/t1driver.c (t1_ps_get_font_value): This new function 3107 does the real job. 3108 (t1_service_ps_info): Add it. 3109 3110 * src/cff/cffdrivr.c (cff_service_ps_info), src/cid/cidriver.c 3111 (cid_service_ps_info), src/type42/t42drivr.c (t42_service_ps_info): 3112 Updated. 3113 31142011-11-08 Braden Thomas <bthomas@apple.com> 3115 3116 [cid] Various loading fixes. 3117 3118 * src/cid/cidload.c (cid_load_keyword) <default>, 3119 (parse_font_matrix, parse_expansion_factor): Correctly check number 3120 of dictionaries. 3121 (cid_read_subrs): Protect against invalid values of `num_subrs'. 3122 Assure that the elements of the `offsets' array are ascending. 3123 31242011-11-05 Werner Lemberg <wl@gnu.org> 3125 3126 * README: We use copyright ranges also. 3127 3128 According to 3129 3130 https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html 3131 3132 this should be mentioned explicitly. 3133 31342011-10-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3135 3136 [raccess] Supplement for previous fix. 3137 3138 * src/base/ftbase.h (raccess_rule_by_darwin_vfs): Do not declare 3139 it on native Mac OS X. 3140 * src/base/ftrfork.c (raccess_get_rule_type_from_rule_index): 3141 Hide raccess_get_rule_type_from_rule_index() on native Mac OS X 3142 too. 3143 31442011-10-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3145 3146 [raccess] Hide raccess_rule_by_darwin_vfs() on native Mac OS X. 3147 3148 * src/base/ftrfork.c (raccess_rule_by_darwin_vfs): Do not 3149 compile on native Mac OS X because it is not used. 3150 31512011-10-25 Werner Lemberg <wl@gnu.org> 3152 3153 [truetype] Fix MD instruction for twilight zone. 3154 3155 * src/truetype/ttinterp.c (Ins_MD): Without this fix, the MD 3156 instruction applied to original coordinates of twilight points 3157 always returns zero. 3158 31592011-10-18 Werner Lemberg <wl@gnu.org> 3160 3161 * Version 2.4.7 released. 3162 ========================= 3163 3164 3165 Tag sources with `VER-2-4-7'. 3166 3167 * docs/CHANGES: Updated. 3168 3169 * docs/VERSION.DLL: Update documentation and bump version number to 3170 2.4.7. 3171 3172 * README, Jamfile (RefDoc), 3173 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 3174 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 3175 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, 3176 builds/win32/visualc/freetype.dsp, 3177 builds/win32/visualc/freetype.vcproj, 3178 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 3179 builds/win32/visualce/freetype.vcproj, 3180 builds/win32/visualce/index.html, 3181 builds/wince/vc2005-ce/freetype.vcproj, 3182 builds/wince/vc2005-ce/index.html, 3183 builds/wince/vc2008-ce/freetype.vcproj, 3184 builds/wince/vc2008-ce/index.html: s/2.4.6/2.4.7/, s/246/247/. 3185 3186 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 7. 3187 3188 * builds/unix/configure.raw (version_info): Set to 13:2:7. 3189 31902011-10-15 Kal Conley <kcconley@gmail.com> 3191 3192 Fix handling of transformations if no renderer is present. 3193 3194 * src/base/ftobjs.c (FT_Load_Glyph): Thinko. 3195 31962011-10-15 Kal Conley <kcconley@gmail.com> 3197 3198 Fix conditions for autohinting. 3199 3200 * src/base/ftobjs.c (FT_Load_Glyph): Handle 3201 FT_LOAD_IGNORE_TRANSFORM. 3202 32032011-10-07 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3204 3205 [gxvalid] Fix a bug to detect too large offset in morx table. 3206 3207 * src/gxvalid/gxvmorx2.c 3208 (gxv_morx_subtable_type2_ligActionIndex_validate): Fix a bug 3209 that too large positive offset cannot be detected. 3210 32112011-10-01 Braden Thomas <bthomas@apple.com> 3212 3213 Handle some border cases. 3214 3215 * include/freetype/config/ftstdlib.h (FT_USHORT_MAX): New macro. 3216 3217 * src/base/ftbitmap.c (FT_Bitmap_Convert): Protect against invalid 3218 value of `target->rows'. 3219 3220 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Add check for 3221 flex start. 3222 3223 * src/raster/ftrend1.c (ft_raster1_render): Check `width' and 3224 `height'. 3225 3226 * src/truetype/ttgxvar.c (TT_Vary_Get_Glyph_Deltas): Protect against 3227 invalid values in `localpoints' array. 3228 32292011-10-01 Werner Lemberg <wl@gnu.org> 3230 3231 [psnames] Handle zapfdingbats. 3232 Problem reported by Nicolas Rougier <Nicolas.Rougier@inria.fr>. 3233 3234 * src/tools/glnames.py (adobe_glyph_list): Add data from AGL's 3235 `zapfdingbats.txt' file. 3236 3237 * src/psnames/pstables.h: Regenerated. 3238 32392011-09-27 Simon Bünzli <zeniko@gmail.com> 3240 3241 [type1] Fix Savannah bug #34189. 3242 3243 * src/type1/t1load.c (T1_Open_Face): Initialize 3244 `face->len_buildchar'. 3245 32462011-09-26 Werner Lemberg <wl@gnu.org> 3247 3248 [cff] Dump SIDs while tracing. 3249 3250 * src/cff/cffobjs.c (cff_face_init): Do it. 3251 3252 * src/cff/cffparse.c (cff_parser_run) [FT_DEBUG_LEVEL_TRACE] 3253 <cff_kind_string>: Identify as SID. 3254 32552011-09-17 Werner Lemberg <wl@gnu.org> 3256 3257 Remove unused FT_ALIGNMENT macro. 3258 3259 * builds/unix/ftconfig.in, builds/vms/ftconfig.h, 3260 include/freetype/config/ftconfig.h: Do it. 3261 32622011-09-17 Alexei Podtelezhnikov <apodtele@gmail.com> 3263 3264 [smooth] Slightly optimize conic and cubic flatteners. 3265 3266 * src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move 3267 out some code from the main loop to speed it up. 3268 32692011-09-11 Tomas Hoger <thoger@redhat.com> 3270 3271 Slightly improve LZW_CLEAR handling. 3272 3273 * src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_CODE>: 3274 Ensure that subsequent (modulo garbage byte(s)) LZW_CLEAR codes are 3275 handled as clear codes. This also re-sets old_code and old_char to 3276 predictable values, which is a little better than using `random' 3277 ones if the code following LZW_CLEAR is invalid. 3278 32792011-09-11 Tomas Hoger <thoger@redhat.com> 3280 3281 Add explicit LZW decompression stack size limit. 3282 3283 Stack larger than 1<<LZW_MAX_BITS is never needed if prefix table is 3284 constructed correctly. It's even less than that, see e.g. 3285 libarchive code comment for a better size upper bound: 3286 3287 http://code.google.com/p/libarchive/source/browse/trunk/libarchive/archive_read_support_filter_compress.c?r=3635#121 3288 3289 This patch adds explicit stack size limit, enforced when stack is 3290 realloced. 3291 3292 An alternative is to ensure that code < state->prefix[code - 256] 3293 when traversing prefix table. Such check is less efficient and 3294 should not be required if prefix table is constructed correctly in 3295 the first place. 3296 3297 * src/lzw/ftzopen.c (ft_lzwstate_stack_grow): Implement it. 3298 32992011-09-11 Tomas Hoger <thoger@redhat.com> 3300 3301 Protect against loops in the prefix table. 3302 3303 LZW decompressor did not sufficiently check codes read from the 3304 input LZW stream. A specially-crafted or corrupted input could 3305 create a loop in the prefix table, which leads to memory usage 3306 spikes, as there's no decompression stack size limit. 3307 3308 * src/lzw/ftzopen.c (ft_lzwstate_io) <FT_LZW_PHASE_START>: First 3309 code in valid LZW stream must be 0..255. 3310 <FT_LZW_PHASE_CODE>: In the special KwKwK case, code == free_ent, 3311 code > free_ent is invalid. 3312 33132011-09-09 Werner Lemberg <wl@gnu.org> 3314 3315 Better tracing of metrics. 3316 3317 * src/base/ftobjs.c (FT_Request_Size, FT_Select_Size): Decorate with 3318 FT_TRACE. 3319 33202011-09-07 Werner Lemberg <wl@gnu.org> 3321 3322 [cff] Fix Savannah bug #33816. 3323 3324 * src/cff/cfftypes.h (CFF_FontRecDictRec): New member 3325 `has_font_matrix'. 3326 * src/cff/cffparse.c (cff_parse_font_matrix): Set it. 3327 Update tracing output. 3328 * src/cff/cffobjs.c (cff_face_init): Use it so that the heuristics 3329 can be removed. 3330 33312011-08-30 Werner Lemberg <wl@gnu.org> 3332 3333 Better tracing of metrics. 3334 3335 * src/base/ftobjs.c (FT_Select_Metrics, FT_Request_Metrics): 3336 Decorate with FT_TRACE. 3337 33382011-08-25 Werner Lemberg <wl@gnu.org> 3339 3340 [cff] Better tracing of the parsing process. 3341 3342 * src/cff/cffload.c (cff_subfont_load, cff_font_load): Decorate with 3343 FT_TRACE. 3344 3345 * src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox, 3346 cff_parse_private_dict, cff_parse_cid_ros): Updated. 3347 (CFF_FIELD_NUM, CFF_FIELD_FIXED, CFF_FIELD_FIXED_1000, 3348 CFF_FIELD_STRING, CFF_FIELD_BOOL, CFF_FIELD_CALLBACK, CFF_FIELD, 3349 CFF_FIELD_DELTA): Add argument for ID. 3350 (cff_parser_run): Decorate with FT_TRACE. 3351 3352 * src/cff/cffparse.h (CFF_Field_Handler) [FT_DEBUG_LEVEL_TRACE]: Add 3353 `id' member. 3354 3355 * src/cff/cfftoken.h: Add IDs to all fields. 3356 33572011-08-16 Werner Lemberg <wl@gnu.org> 3358 3359 Fix Savannah bug #34022. 3360 3361 * README, docs/INSTALL: Remove references to UPGRADE.UNIX. 3362 33632011-08-15 Werner Lemberg <wl@gnu.org> 3364 3365 Fix Savannah bug #34018. 3366 3367 * docs/UPGRADE.UNIX: Removed. Obsolete. 3368 33692011-08-15 David Bevan <david.bevan@pb.com> 3370 3371 Fix Savannah bug #33992. 3372 3373 * src/base/ftstroke.c (FT_Stroker_ParseOutline): Fix border case. 3374 33752011-08-12 Werner Lemberg <wl@gnu.org 3376 3377 [truetype] Fix degenerate case in S{P,F,DP}VTL opcodes. 3378 3379 * src/truetype/ttinterp.c (Ins_SxVTL): Handle p1 == p2 specially. 3380 (Ins_SDPVTL): Handle v1 == v2 specially. 3381 33822011-08-09 Werner Lemberg <wl@gnu.org> 3383 3384 [cff] Fix Savannah bug #33975. 3385 3386 * src/cff/cffparse.c (cff_parse_font_matrix): Fix typo. 3387 33882011-07-29 Werner Lemberg <wl@gnu.org> 3389 3390 * Version 2.4.6 released. 3391 ========================= 3392 3393 3394 Tag sources with `VER-2-4-6'. 3395 3396 * docs/CHANGES: Updated. 3397 3398 * docs/VERSION.DLL: Update documentation and bump version number to 3399 2.4.6. 3400 3401 * README, Jamfile (RefDoc), 3402 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 3403 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 3404 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, 3405 builds/win32/visualc/freetype.dsp, 3406 builds/win32/visualc/freetype.vcproj, 3407 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 3408 builds/win32/visualce/freetype.vcproj, 3409 builds/win32/visualce/index.html, 3410 builds/wince/vc2005-ce/freetype.vcproj, 3411 builds/wince/vc2005-ce/index.html, 3412 builds/wince/vc2008-ce/freetype.vcproj, 3413 builds/wince/vc2008-ce/index.html: s/2.4.5/2.4.6/, s/245/246/. 3414 3415 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 6. 3416 3417 * builds/unix/configure.raw (version_info): Set to 13:1:7. 3418 34192011-07-29 Werner Lemberg <wl@gnu.org> 3420 3421 [cff] Add some more tracing infos. 3422 3423 * src/cff/cffparse.c (cff_parse_font_matrix, cff_parse_font_bbox, 3424 cff_parse_cid_ros): Add tracing. 3425 34262011-07-22 Dirk Müller <dmueller@suse.de> 3427 3428 [psaux, type1] Fix null pointer dereferences. 3429 3430 Found with font fuzzying. 3431 3432 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Check 3433 `decoder->buildchar'. 3434 3435 * src/type1/t1load.c (t1_load_keyword): Check `blend->num_designs'. 3436 34372011-07-20 Chris Morgan <cmorgan@cybexintl.com> 3438 3439 Add FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT. 3440 3441 Useful for embedded systems which don't need file stream support. 3442 3443 * src/base/ftsystem.c, src/base/ftobjs.c (FT_Stream_New): Implement 3444 it. 3445 34462011-07-20 Elton Chung <elton328@gmail.com> 3447 3448 * src/base/ftpatent.c (FT_Face_SetUnpatentedHinting): Fix typo. 3449 34502011-07-16 Steven Chu <steven.f.chu@gmail.com> 3451 3452 [truetype] Fix metrics on size request for scalable fonts. 3453 3454 * src/truetype/ttdriver.c (tt_size_request): Fix copying metrics 3455 from TT_Size to FT_Size if scalable font. 3456 3457 See 3458 3459 https://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00049.html 3460 3461 for some comparison images. 3462 34632011-07-14 Matthias Drochner <M.Drochner@fz-juelich.de>. 3464 3465 [psaux] Fix potential sign extension problems. 3466 3467 When shifting right a signed value, it is not defined by the 3468 C standard whether one gets a sign extension or not. Use a macro to 3469 do an explicit cast from a signed short (assuming that this is 3470 16bit) to an int. 3471 3472 * src/psaux/t1decode.c (Fix2Int): New macro. 3473 Use it where appropriate. 3474 34752011-07-14 Werner Lemberg <wl@gnu.org> 3476 3477 * src/psaux/t1decode.c (t1_decoder_parse_charstrings) 3478 <op_callothersubr>: Better handling of subroutine index 0. 3479 From Matthias Drochner <M.Drochner@fz-juelich.de>. 3480 34812011-07-10 Алексей Подтележников <apodtele@gmail.com> 3482 3483 [psaux] Optimize previous commit. 3484 3485 * src/psaux/t1decode.c (t1_decoder_parse_charstrings) 3486 <op_callothersubr>: Move error check down to avoid testing twice for 3487 good cases. 3488 34892011-07-08 Werner Lemberg <wl@gnu.org> 3490 3491 [psaux] Add better argument check for `callothersubr'. 3492 3493 * src/psaux/t1decode.c (t1_decoder_parse_charstrings) 3494 <op_callothersubr>: Reject negative arguments. 3495 34962011-07-07 Werner Lemberg <wl@gnu.org> 3497 3498 [sfnt] Try harder to find non-zero values for ascender and descender. 3499 3500 * src/sfnt/sfobjs.c (sfnt_load_face): Consult `OS/2' table in case 3501 the `hhea' table's values are zero. 3502 35032011-07-03 Werner Lemberg <wl@gnu.org> 3504 3505 Fix previous commit. 3506 3507 We want to unset FT_FACE_FLAG_SCALABLE only if there are bitmap 3508 strikes in the font. 3509 3510 * src/truetype/ttobjs.c (tt_face_init): Implement it. 3511 3512 * docs/CHANGES: Updated. 3513 35142011-07-02 Just Fill Bugs <mozbugbox@yahoo.com.au> 3515 3516 [truetype] Fix Savannah bug #33246. 3517 3518 * src/truetype/ttobjs.c (tt_check_single_notdef): New function. 3519 (tt_face_init): Use it to test FT_FACE_FLAG_SCALABLE. 3520 35212011-07-02 Werner Lemberg <wl@gnu.org> 3522 3523 * docs/CHANGES: Updated. 3524 35252011-07-02 David Bevan <david.bevan@pb.com> 3526 3527 [ftstroke] Major revision. 3528 3529 The main problems 3530 ----------------- 3531 3532 o If FT_STROKER_LINEJOIN_BEVEL was specified, unlimited miter 3533 joins (not bevel joins) were generated. Indeed, the meanings of 3534 `miter' and `bevel' were incorrectly reversed (consistently) in 3535 both the code and comments. 3536 3537 o The way bevel joins were constructed (whether specified 3538 explicitly, or created as a result of exceeding the miter limit) 3539 did not match what is required for stroked text in PostScript or 3540 PDF. 3541 3542 The main fixes 3543 -------------- 3544 3545 o The behaviour of FT_STROKER_LINEJOIN_BEVEL has been corrected. 3546 3547 o A new line join style, FT_STROKER_LINEJOIN_MITER_FIXED, has been 3548 introduced to support PostScript and PDF miter joins. 3549 3550 o FT_STROKER_LINEJOIN_MITER_VARIABLE has been introduced as an 3551 alias for FT_STROKER_LINEJOIN_MITER. 3552 3553 Additionally, a variety of stroking errors have been fixed. These 3554 would cause various artifacts (including points `at infinity'), 3555 especially when stroking poor quality fonts. 3556 3557 See 3558 3559 https://lists.gnu.org/archive/html/freetype-devel/2011-07/msg00001.html 3560 3561 for example documents. The FreeType stroker now produces results 3562 very similar to that produced by GhostScript and Distiller for these 3563 fonts. 3564 3565 Other problems 3566 -------------- 3567 3568 The following problems have been resolved: 3569 3570 o Inside corners could be generated incorrectly. Intersecting the 3571 inside corner could cause a missing triangular area and other 3572 effects. 3573 3574 The intersection point can only be used if the join is between 3575 two lines and both lines are long enough. The `optimization' 3576 condition in `ft_stroker_inside' has been corrected; this 3577 requires the line length to be passed into various functions and 3578 stored in `FT_StrokerRec'. 3579 3580 o Incorrect cubic curves could be generated. The angle 3581 calculations in `FT_Stroker_CubicTo' have been corrected to 3582 handle the case of the curve crossing the +/-PI direction. 3583 3584 o If the border radius was greater than the radius of curvature of 3585 a curve, then the negative sector would end up outside (not 3586 inside) the border. This situation is now recognized and the 3587 negative sector is circumnavigated in the opposite direction. 3588 (If round line joins are being used, this code is disabled 3589 because the line join will always cover the negative sector.) 3590 3591 o When a curve is split, the arcs may not join smoothly (especially 3592 if the curve turns sharply back on itself). Changes in 3593 direction between adjacent arcs were not handled. A round 3594 corner is now added if the deviation from one arc to the next is 3595 greater than a suitable threshold. 3596 3597 o The current direction wasn't retained if a the outline contained 3598 a zero length lineto or a curve that was determined to be 3599 `basically a point'. This could cause a spurious join to be 3600 added. 3601 3602 o Cubics with close control points could be mishandled. All eight 3603 cases are now distinguished correctly. 3604 3605 Other improvements 3606 ------------------ 3607 3608 o Borders for cubic curves could be too `flat'. 3609 FT_SMALL_CUBIC_THRESHOLD has been reduced a little to prevent 3610 this. 3611 3612 o The handling and use of movable points has been simplified a 3613 little. 3614 3615 o Various values are now computed only if the results are actually 3616 needed. 3617 3618 o The directions of the outer and inner borders have been swapped, 3619 as recommended by Graham Asher. 3620 3621 * src/base/ftstroke.c: Revised. 3622 * include/freetype/ftstroke.h: Updated. 3623 36242011-06-30 İsmail Dönmez <ismail@namtrac.org> 3625 3626 * builds/toplevel.mk: We use git, not CVS, thus skip `.gitignore'. 3627 36282011-06-29 Werner Lemberg <wl@gnu.org> 3629 3630 [bdf] Fix Savannah bug #33663. 3631 3632 * src/bdf/bdflib.c (_bdf_parse_glyphs): Handle negative values for 3633 ENCODING correctly. 3634 3635 * docs/CHANGES: Document it. 3636 36372011-06-24 Werner Lemberg <wl@gnu.org> 3638 3639 * Version 2.4.5 released. 3640 ========================= 3641 3642 3643 Tag sources with `VER-2-4-5'. 3644 3645 * docs/CHANGES: Updated. 3646 3647 * docs/VERSION.DLL: Update documentation and bump version number to 3648 2.4.5 3649 3650 * README, Jamfile (RefDoc), 3651 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 3652 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 3653 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, 3654 builds/win32/visualc/freetype.dsp, 3655 builds/win32/visualc/freetype.vcproj, 3656 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 3657 builds/win32/visualce/freetype.vcproj, 3658 builds/win32/visualce/index.html, 3659 builds/wince/vc2005-ce/freetype.vcproj, 3660 builds/wince/vc2005-ce/index.html, 3661 builds/wince/vc2008-ce/freetype.vcproj, 3662 builds/wince/vc2008-ce/index.html: s/2.4.4/2.4.5/, s/244/245/. 3663 3664 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. 3665 3666 * builds/unix/configure.raw (version_info): Set to 13:0:7. 3667 36682011-06-20 Werner Lemberg <wl@gnu.org> 3669 3670 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Fix change 3671 from 2011-05-04. 3672 36732011-06-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3674 3675 [gxvalid] make the `prop' validation tracing verbose. 3676 3677 * src/gxvalid/gxvprop.c: Add tracing messages for errors. 3678 36792011-06-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3680 3681 [autogen.sh] Reflect environment variable LIBTOOLIZE. 3682 36832011-06-18 Werner Lemberg <wl@gnu.org> 3684 3685 Update license documentation. 3686 3687 * docs/GPL.TXT: Renamed to... 3688 * docs/GPLv2.TXT: This. 3689 3690 * docs/LICENSE.TXT: Updated. 3691 36922011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3693 3694 Fix g++4.6 compiler warnings in module drivers. 3695 3696 The background is same with previous commit. 3697 3698 * src/truetype/ttgxvar.c (ft_var_readpackedpoints): 3699 Init `points'. (TT_Vary_Get_Glyph_Deltas): Init 3700 `delta_xy'. (TT_Get_MM_Var): Init `mmvar'. 3701 * src/type1/t1load.c (T1_Get_MM_Var): Ditto. 3702 * src/cff/cffdrivr.c (cff_ps_get_font_info): Init 3703 `font_info'. 3704 * src/cff/cffload.c (cff_index_get_pointers): Init `t'. 3705 (cff_font_load): Init `sub'. 3706 * src/cff/cffobjs.c (cff_size_init): Init `internal'. 3707 (cff_face_init): Init `cff'. 3708 * src/pfr/pfrload.c (pfr_extra_item_load_stem_snaps): 3709 Init `snaps'. 3710 * src/pcf/pcfread.c (pcf_get_properties): Init `properties'. 3711 (pcf_get_bitmaps): Init `offsets'. (pcf_get_encodings): 3712 Init `tmpEncoding'. 3713 * src/sfnt/ttload.c (tt_face_load_gasp): Init `gaspranges'. 3714 * src/sfnt/ttsbit.c (Load_SBit_Image): Init `components'. 3715 * src/cache/ftcmru.c (FTC_MruList_New): Init `node'. 3716 * src/gzip/ftgzip.c (FT_Stream_OpenGzip): Init `zip' and 3717 `zip_buff'. 3718 * src/lzw/ftlzw.c (FT_Stream_OpenLZW): Init `zip'. 3719 * src/bzip2/ftbzip2.c (FT_Stream_OpenBzip2): Init `zip'. 3720 37212011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3722 3723 [base] Fix g++4.6 compiler warnings in src/base/*.c. 3724 3725 Passing uninitialized pointer to FT_NEW() families is 3726 not problematic theoretically (as far as the returned 3727 pointer is checked before writing), but g++4.6 dislikes 3728 it and warns by -Wuninitialized. Initialize them by NULL. 3729 3730 * src/base/ftobjs.c (FT_Stream_New): Init `stream'. 3731 (new_memory_stream): Ditto. 3732 (FT_New_GlyphSlot): Init `slot'. 3733 (FT_CMap_New): Init `cmap'. 3734 (open_face_PS_from_sfnt_stream): Init `sfnt_ps'. 3735 (Mac_Read_POST_Resource): Init `pfb_data'. 3736 (Mac_Read_sfnt_Resource): Init `sfnt_data'. 3737 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): 3738 Init `offsets_internal' and `ref'. 3739 (raccess_guess_darwin_hfsplus): Init `newpath'. 3740 (raccess_guess_darwin_newvfs): Ditto. 3741 * src/base/ftbitmap.c (ft_bitmap_assure_buffer): 3742 Init `buffer'. 3743 * src/base/ftstroke.c (FT_Stroker_New): Init `stroker'. 3744 37452011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3746 3747 [gxvalid] Cleanup. 3748 3749 Some invalid, overrunning, unrecommended non-zero values 3750 are cared in paranoid validation mode only. There are 3751 many lines looking like: 3752 3753 if ( valid->root->level >= FT_VALIDATE_PARANOID ) 3754 FT_INVALID_xxx; 3755 3756 To simplify them, GXV_SET_ERR_IF_PARANOID( err ) is 3757 introduced for more paranoid validation in future. 3758 3759 * src/gxvalid/gxvcommn.h (IS_PARANOID_VALIDATION): 3760 New macro to assure valid->root->level is more or 3761 equal to FT_VALIDATE_PARANOID. (GXV_SET_ERR_IF_PARANOID): 3762 New macro to raise an error if in paranoid validation. 3763 * src/gxvalid/gxvcommn.c: Use GXV_SET_ERR_IF_PARANOID(). 3764 * src/gxvalid/gxvfeat.c: Ditto. 3765 * src/gxvalid/gxvjust.c: Ditto. 3766 * src/gxvalid/gxvkern.c: Ditto. 3767 * src/gxvalid/gxvmort.c: Ditto. 3768 * src/gxvalid/gxvmort0.c: Ditto. 3769 * src/gxvalid/gxvmort1.c: Ditto. 3770 * src/gxvalid/gxvmort2.c: Ditto. 3771 * src/gxvalid/gxvmorx1.c: Ditto. 3772 * src/gxvalid/gxvmorx2.c: Ditto. 3773 37742011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3775 3776 [gxvalid] Fix gcc4.6 compiler warnings in gxvtrak.c. 3777 3778 * src/gxvalid/gxvtrak.c (gxv_trak_trackTable_validate): 3779 Check different entries pointing same tracking value. 3780 (gxv_trak_validate): Remove unused variable `table_size'. 3781 37822011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3783 3784 [gxvalid] Fix gcc4.6 compiler warnings in gxvmorx*.c. 3785 3786 * src/gxvalid/gxvmorx.c (gxv_morx_subtables_validate): 3787 Conditionalize unvalidated variable `subFeatureFlags'. 3788 (gxv_morx_chain_validate): Conditionalize unvalidated 3789 variable `defaultFlags'. 3790 3791 * src/gxvalid/gxvmorx0.c 3792 (gxv_morx_subtable_type0_entry_validate): 3793 Conditionalize unvalidated variables; `markFirst', 3794 `dontAdvance', `markLast', `verb'. 3795 3796 * src/gxvalid/gxvmorx1.c 3797 (gxv_morx_subtable_type1_entry_validate): Conditionalize 3798 unvalidated variables; `setMark', `dontAdvance'. 3799 3800 * src/gxvalid/gxvmorx2.c 3801 (gxv_morx_subtable_type2_ligActionOffset_validate): 3802 Conditionalize unvalidated variables; `last', `store'. 3803 Checking for overrunning offset is added. 3804 (gxv_morx_subtable_type2_entry_validate): 3805 Conditionalize unvalidated variables; `setComponent', 3806 `dontAdvance', `performAction'. 3807 (gxv_morx_subtable_type2_ligatureTable_validate): 3808 Check if the GID for ligature does not exceed the 3809 max GID in `maxp' table. 3810 3811 * src/gxvalid/gxvmort5.c 3812 (gxv_morx_subtable_type5_InsertList_validate): 3813 Conditionalize unvalidated loading of `insert_glyphID' 3814 array. (gxv_morx_subtable_type5_entry_validate): 3815 Conditionalize unvalidated variables; `setMark', 3816 `dontAdvance', `currentIsKashidaLike', 3817 `markedIsKashidaLike', `currentInsertBefore', 3818 `markedInsertBefore'. 3819 38202011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3821 3822 [gxvalid] Fix gcc4.6 compiler warnings in gxvmort*.c. 3823 3824 * src/gxvalid/gxvmort.c (gxv_mort_subtables_validate): 3825 Conditionalize unvalidated variable `subFeatureFlags'. 3826 (gxv_mort_chain_validate): Conditionalize unvalidated 3827 variable `defaultFlags'. 3828 3829 * src/gxvalid/gxvmort0.c 3830 (gxv_mort_subtable_type0_entry_validate): Check the 3831 conflict of the marks for the glyphs. 3832 3833 * src/gxvalid/gxvmort1.c 3834 (gxv_mort_subtable_type1_offset_to_subst_validate): 3835 Local variables `min_gid', `max_gid' are replaced by 3836 variables in the validator. 3837 (gxv_mort_subtable_type1_entry_validate): Conditionalize 3838 unvalidated variables; `setMark', `dontAdvance'. 3839 (gxv_mort_subtable_type1_substTable_validate): 3840 Validate the GID by the min/max GIDs in the validator. 3841 3842 * src/gxvalid/gxvmort2.c 3843 (gxv_mort_subtable_type2_ligActionOffset_validate): 3844 Conditionalize unvalidated variables; `last', `store'. 3845 Checking for overrunning offset is added. 3846 (gxv_mort_subtable_type2_entry_validate): 3847 Conditionalize unvalidated variables; `setComponent', 3848 `dontAdvance'. 3849 (gxv_mort_subtable_type2_ligatureTable_validate): 3850 Check if the GID for ligature does not exceed the 3851 max GID in `maxp' table. 3852 3853 * src/gxvalid/gxvmort5.c 3854 (gxv_mort_subtable_type5_InsertList_validate): 3855 Conditionalize unvalidated loading of `insert_glyphID' 3856 array. (gxv_mort_subtable_type5_entry_validate): 3857 Conditionalize unvalidated variables; `setMark', 3858 `dontAdvance', `currentIsKashidaLike', 3859 `markedIsKashidaLike', `currentInsertBefore', 3860 `markedInsertBefore'. 3861 38622011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3863 3864 [gxvalid] Fix gcc4.6 compiler warnings in gxvkern.c. 3865 3866 * src/gxvalid/gxvkern.c 3867 (gxv_kern_subtable_fmt0_pairs_validate): Conditionalize 3868 unvalidated variable `kernValue'. 3869 (gxv_kern_subtable_fmt1_entry_validate): Conditionalize 3870 unvalidated variables; `push', `dontAdvance', `kernAction', 3871 `kernValue'. 3872 (gxv_kern_coverage_new_apple_validate): Conditionalize 3873 trace-only variables; `kernVertical', `kernCrossStream', 3874 `kernVariation'. 3875 (gxv_kern_coverage_classic_apple_validate): Conditionalize 3876 trace-only variables; `horizontal', `cross_stream'. 3877 (gxv_kern_coverage_classic_microsoft_validate): 3878 Conditionalize trace-only variables; `horizontal', 3879 `minimum', `cross_stream', `override'. 3880 (gxv_kern_subtable_validate): Conditionalize trace-only 3881 variables; `version', `tupleIndex'. 3882 38832011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3884 3885 [gxvalid] Fix gcc4.6 compiler warnings in gxvjust.c. 3886 3887 * src/gxvalid/gxvjust.c (gxv_just_check_max_gid): 3888 New function to unify the checks of too large GID. 3889 (gxv_just_wdp_entry_validate): Conditionalize unvalidated 3890 variables; `beforeGrowLimit', `beforeShrinkGrowLimit', 3891 `afterGrowLimit', `afterShrinkGrowLimit', `growFlags', 3892 `shrinkFlags'. Additional check for non-zero values in 3893 unused storage `justClass' is added. 3894 (gxv_just_actSubrecord_type0_validate): Conditionalize 3895 unvalidated variable `order'. GID is checked by 3896 gxv_just_check_max_gid(). Additional check for upside-down 3897 relationship between `lowerLimit' and `upperLimit' is added. 3898 (gxv_just_actSubrecord_type1_validate): GID is checked by 3899 gxv_just_check_max_gid(). 3900 (gxv_just_actSubrecord_type2_validate): Conditionalize 3901 unvalidated variable `substThreshhold'. GID is checked by 3902 gxv_just_check_max_gid(). 3903 (gxv_just_actSubrecord_type5_validate): GID is checked by 3904 gxv_just_check_max_gid(). 3905 (gxv_just_classTable_entry_validate): Conditionalize 3906 unvalidated variables; `setMark', `dontAdvance', 3907 `markClass', `currentClass'. 3908 39092011-06-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3910 3911 [gxvalid] Preparation to fix gcc4.6 compiler warnings. 3912 3913 * src/gxvalid/gxvcommn.h (GXV_LOAD_TRACE_VARS): New macro to 3914 conditionalize the variable which is only used for trace messages. 3915 Automatically set by FT_DEBUG_LEVEL_TRACE. 3916 (GXV_LOAD_UNUSED_VARS): New macro to conditionalize the loading of 3917 unvalidated variables. Undefined by default to calm gcc4.6 warning. 3918 (GXV_ValidatorRec.{min_gid,max_gid}): New variables to hold defined 3919 GID ranges, for the comparison of GID ranges in different subtables. 3920 39212011-06-08 Werner Lemberg <wl@gnu.org> 3922 3923 [autofit] Remove unused structure member. 3924 3925 * src/autofit/afhints.h (AF_SegmentRec): Remove `contour'. 3926 * src/autofit/aflatin.c (af_latin_hints_compute_segments), 3927 src/autofit/aflatin2.c (af_latin2_hints_compute_segments): Updated. 3928 39292011-05-30 Werner Lemberg <wl@gnu.org> 3930 3931 Fix g++ 4.6 compilation. 3932 3933 * src/autofit/afhints.c (af_glyph_hints_dump_segments, 3934 af_glyph_hints_dump_edges): Use cast. 3935 39362011-05-30 Werner Lemberg <wl@gnu.org> 3937 3938 Fix gcc 4.6 compiler warnings. 3939 3940 * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Use casts and 3941 remove unused variables. 3942 * src/autofit/aflatin.c (af_latin_hints_compute_edges): Comment out 3943 `up_dir'. 3944 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use `height_org' 3945 and `width_org' conditionalized. 3946 39472011-05-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3948 3949 [mac] Conditionalize the inclusion of `AvailabilityMacros.h'. 3950 3951 The native SDK on earliest Mac OS X (10.0-10.1) did not have 3952 `AvailabilityMacros.h'. To prevent the inclusion of missing 3953 header file, ECANCELED (introduced in 10.2) in POSIX header 3954 file <errno.h> is checked to detect the system version. 3955 3956 * include/freetype/config/ftconfig.h: Conditionalize the 3957 inclusion of `AvailabilityMacros.h'. 3958 * builds/unix/ftconfig.in: Ditto. 3959 * builds/vms/ftconfig.h: Ditto. 3960 39612011-05-27 Werner Lemberg <wl@gnu.org> 3962 3963 [autofit] Improve tracing of hinting process. 3964 3965 * src/autofit/aflatin.c (af_latin_hint_edges): Add tracing message 3966 `ADJUST'. 3967 39682011-05-26 Werner Lemberg <wl@gnu.org> 3969 3970 [autofit] Fix trace message. 3971 3972 * src/autofit/aflatin.c (af_latin_hint_edges): Show correct value in 3973 tracing message. 3974 39752011-05-24 Daniel Zimmermann <netzimme@googlemail.com> 3976 3977 Reduce warnings for MS Visual Studio 2010. 3978 3979 * src/autofit/afhints.c (af_glyph_hints_get_num_segments, 3980 af_glyph_hints_get_segment_offset) [!FT_DEBUG_AUTOFIT]: Provide 3981 return value. 3982 * src/cff/cffgload.c (cff_slot_load): Add cast. 3983 * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): Use proper 3984 loop variable type. 3985 39862011-05-16 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3987 3988 Automake component `builds/unix/install-sh' is removed. 3989 3990 * builds/unix/install-sh: Removed. It is not needed to 3991 include repository, because autogen.sh installs it. 3992 * builds/unix/.gitignore: Register install-sh. 3993 39942011-05-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3995 3996 [autofit] Make trace message for CJK bluezone more verbose. 3997 39982011-05-08 Just Fill Bugs <mozbugbox@yahoo.com.au> 3999 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4000 4001 [autofit] Add bluezones for CJK Ideographs. 4002 4003 To remove extrema of vertical strokes of CJK Ideographs at 4004 low resolution and make the top and bottom horizontal stems 4005 aligned, bluezones for CJK Ideographs are calculated from 4006 sample glyphs. At present, vertical bluezones (bluezones 4007 to align vertical stems) are disabled by default. For detail, see 4008 https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00070.html 4009 https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00092.html 4010 https://lists.gnu.org/archive/html/freetype-devel/2011-05/msg00001.html 4011 4012 * include/freetype/internal/fttrace.h: New trace component `afcjk'. 4013 * src/autofit/afcjk.h (AF_CJK{Blue,Axis,Metric}Rec): Add CJK version 4014 for AF_Latin{Blue,Axis,Metric}Rec. 4015 (af_cjk_metrics_check_digits): Ditto, shared with Indic module. 4016 (af_cjk_metrics_init_widths): Ditto. 4017 (af_cjk_metrics_init): Take AF_CJKMetric instead of AF_LatinMetric. 4018 (af_cjk_metrics_scale): Ditto (declaration). 4019 (af_cjk_hints_init): Ditto (declaration). 4020 (af_cjk_hints_apply): Ditto (declaration). 4021 * src/autofit/afcjk.c (af_cjk_metrics_scale): Ditto (body). 4022 (af_cjk_hints_init): Ditto (body). 4023 (af_cjk_hints_apply): Ditto (body). 4024 (af_cjk_metrics_init_widths): Duplicate af_latin_metrics_init_widths. 4025 (af_cjk_metrics_check_digits): Duplicate af_latin_metrics_check_digits. 4026 (af_cjk_metrics_init): Call CJK bluezone initializer. 4027 (af_cjk_metrics_scale_dim): Add code to scale bluezones. 4028 (af_cjk_hints_compute_blue_edges): New function, CJK version of 4029 af_latin_hints_compute_blue_edges. 4030 (af_cjk_metrics_init_blues): New function, CJK version of 4031 af_latin_metrics_init_blues. 4032 (af_cjk_hint_edges): Add code to align the edge stems to blue zones. 4033 4034 * src/autofit/afindic.c (af_indic_metrics_init): Take AF_CJKMetric 4035 instead of AF_LatinMetric, and initialize as af_cjk_metrics_init. 4036 However bluezones are not initialized. 4037 (af_indic_metrics_scale): Take AF_CJKMetric instead of AF_LatinMetric. 4038 (af_indic_hints_init): Ditto. 4039 (af_indic_hints_apply): Ditto. 4040 4041 * docs/CHANGES: Note about CJK bluezone support. 4042 40432011-05-06 Werner Lemberg <wl@gnu.org> 4044 4045 [autofit] Remove unused struct member. 4046 4047 * src/autofit/aflatin.h (AF_LatinAxis): Remove `control_overshoot'. 4048 40492011-05-04 Werner Lemberg <wl@gnu.org> 4050 4051 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Simplify. 4052 40532011-05-01 Just Fill Bugs <mozbugbox@yahoo.com.au> 4054 Werner Lemberg <wl@gnu.org> 4055 4056 [autofit] Add more debugging functions. 4057 4058 * src/autofit/afhints.c (af_glyph_hints_get_num_segments, 4059 af_glyph_hints_get_segment_offset): New functions. 4060 40612011-05-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4062 4063 Add new option `--disable-mmap' to configure script. 4064 4065 * builds/unix/configure.raw: New option `--disable-mmap' 4066 is added. It is for the developers to simulate the systems 4067 without mmap() (like 4.3BSD, minix etc) on POSIX systems. 4068 40692011-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4070 4071 [truetype] Always recalculate the sfnt table checksum. 4072 4073 * src/truetype/ttobjs.c (tt_get_sfnt_checksum): Recalculate 4074 the sfnt table checksum even if non-zero value is written in 4075 the TrueType font header. Some bad PDF generators write 4076 wrong values. For details see examples and benchmark tests 4077 of the latency by recalculation: 4078 https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00091.html 4079 https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00096.html 4080 40812011-04-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4082 4083 [truetype] Register a set of tricky fonts, NEC FA family. 4084 4085 * src/truetype/ttobjs.c (tt_check_trickyness_sfnt_ids): 4086 Add 8 checksum sets for NEC FA family. For the tricky fonts 4087 without some tables (e.g. NEC FA fonts lack cvt table), 4088 extra check is added to assure that a zero-length table in the 4089 registry is not included in the font. 4090 40912011-04-29 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4092 4093 [truetype] Fix a bug in the sfnt table checksum getter. 4094 4095 * src/truetype/ttobjs.c (tt_get_sfnt_checksum): Check the 4096 return value of face->goto_table() correctly. 4097 40982011-04-28 Werner Lemberg <wl@gnu.org> 4099 4100 [autofit] Improve tracing messages. 4101 4102 * src/autofit/aflatin.c (af_latin_metrics_init_blues, 4103 af_latin_align_linked_edge, af_latin_hint_edges): Do it. 4104 41052011-04-25 Kan-Ru Chen <kanru@kanru.info> 4106 4107 [truetype] Always check the checksum to identify tricky fonts. 4108 4109 Because some PDF generators mangle the family name badly, 4110 the trickyness check by the checksum should be invoked always. 4111 For sample PDF, see 4112 https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html 4113 4114 * src/truetype/ttobjs.c (tt_check_trickyness): Even when 4115 tt_check_trickyness_family() finds no trickyness, 4116 tt_check_trickyness_sfnt_ids() is invoked. 4117 41182011-04-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4119 4120 [autofit] Add more Indic scripts with hanging baseline. 4121 4122 * src/autofit/afindic.c (af_indic_uniranges): Tibetan, Limbu, 4123 Sundanese, Meetei Mayek, Syloti Nagri and Sharada scripts are 4124 added. 4125 41262011-04-21 Behdad Esfahbod <behdad@behdad.org> 4127 4128 Always ignore global advance. 4129 4130 This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant, 4131 deprecated, and ignored. The new behavior is what every major user 4132 of FreeType has been requesting. Global advance is broken in many 4133 CJK fonts. Just ignoring it by default makes most sense. 4134 4135 * src/truetype/ttdriver.c (tt_get_advances), 4136 src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics, 4137 tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph), 4138 src/truetype/ttgload.h: Implement it. 4139 4140 * docs/CHANGES: Updated. 4141 41422011-04-21 rainy6144 <rainy6144@gmail.com> 4143 4144 [autofit] Blur CJK stems if too many to preserve their gaps. 4145 4146 When there are too many stems to preserve their gaps in the 4147 rasterization of CJK Ideographs at a low resolution, blur the 4148 stems instead of showing clumped stems. See 4149 https://lists.gnu.org/archive/html/freetype-devel/2011-02/msg00011.html 4150 https://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00046.html 4151 for details. 4152 4153 * src/autofit/afcjk.c (af_cjk_hint_edges): Store the position of 4154 the previous stem by `has_last_stem' and `last_stem_pos', and skip 4155 a stem if the current and previous stem are too near to preserve 4156 the gap. 4157 41582011-04-18 Werner Lemberg <wl@gnu.org> 4159 4160 Integrate autofitter debugging stuff. 4161 4162 * devel/ftoption.h, include/freetype/config/ftoption.h 4163 (FT_DEBUG_AUTOFIT): New macro. 4164 4165 * include/freetype/internal/fttrace.h: Add trace components for 4166 autofitter. 4167 4168 * src/autofit/aftypes.h (AF_LOG): Removed. 4169 (_af_debug): Removed. 4170 4171 * src/autofit/*: s/AF_DEBUG/FT_DEBUG_AUTOFIT/. 4172 s/AF_LOG/FT_TRACE5/. 4173 Define FT_COMPONENT where necessary. 4174 41752011-04-18 Werner Lemberg <wl@gnu.org> 4176 4177 Synchronize config files. 4178 4179 * builds/unix/ftconfig.in: Copy missing assembler routines from 4180 include/freetype/config/ftconfig.h. 4181 41822011-04-13 Werner Lemberg <wl@gnu.org> 4183 4184 [psaux] Fix Savannah bug #33047. 4185 4186 Patch submitted by anonymous reporter. 4187 4188 * src/psaux/psobjs.c (ps_table_add): Use FT_PtrDist for pointer 4189 difference. 4190 41912011-04-11 Kan-Ru Chen <kanru@kanru.info> 4192 4193 Fix reading of signed integers from files on 64bit platforms. 4194 4195 Previously, signed integers were converted to unsigned integers, but 4196 this can fail because of sign extension. For example, 0xa344a1eb 4197 becomes 0xffffffffa344a1eb. 4198 4199 We now do the reverse which is always correct because the integer 4200 size is the same during the cast from unsigned to signed. 4201 4202 * include/freetype/internal/ftstream.h, src/base/ftstream.c 4203 (FT_Stream_Get*): Replace with... 4204 (FT_Stream_GetU*): Functions which read unsigned integers. 4205 Update all macros accordingly. 4206 4207 * src/gzip/ftgzip.c (ft_gzip_get_uncompressed_size): Updated. 4208 42092011-04-07 Werner Lemberg <wl@gnu.org> 4210 4211 Update Unicode ranges for CJK autofitter; in particular, add Hangul. 4212 4213 * src/autofit/afcjk.c (af_cjk_uniranges): Update to Unicode 6.0. 4214 42152011-04-04 Werner Lemberg <wl@gnu.org> 4216 4217 Fix formatting of autofit debug dumps. 4218 4219 * src/autofit/afhints.c (af_glyph_hints_dump_points, 4220 af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Adjust 4221 column widths. 4222 42232011-03-30 Werner Lemberg <wl@gnu.org> 4224 4225 * src/autofit/aftypes.h (AF_OutlineRec): Removed, unused. 4226 42272011-03-24 Werner Lemberg <wl@gnu.org> 4228 4229 * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 256. 4230 This limit is given on p. 37 of Adobe Technical Note #5014. 4231 42322011-03-23 Werner Lemberg <wl@gnu.org> 4233 4234 * src/truetype/ttpload.c (tt_face_load_loca): Fix mismatch warning. 4235 42362011-03-20 Werner Lemberg <wl@gnu.org> 4237 4238 * src/sfnt/sfobjs.c (sfnt_open_font): Check number of TTC subfonts. 4239 42402011-03-19 Werner Lemberg <wl@gnu.org> 4241 4242 More C++ compilation fixes. 4243 4244 * src/autofit/afhints.c (af_glyph_hints_dump_points, 4245 af_glyph_hints_dump_segments, af_glyph_hints_dump_edges) 4246 [__cplusplus]: Protect with `extern "C"'. 4247 42482011-03-18 Werner Lemberg <wl@gnu.org> 4249 4250 C++ compilation fixes. 4251 4252 * src/autofit/aflatin.c (af_latin_hints_apply), src/autofit/afcjk.c 4253 (af_cjk_hints_apply): Use cast for `dim'. 4254 42552011-03-17 Alexei Podtelezhnikov <apodtele@gmail.com> 4256 4257 A better fix for Savannah bug #32671. 4258 4259 * src/smooth/ftgrays.c (gray_render_conic): Clean up code and 4260 replace WHILE loop with a more natural DO-WHILE construct. 4261 42622011-03-16 Werner Lemberg <wl@gnu.org>. 4263 4264 * src/base/ftstroke.c (FT_StrokerRec): Remove unused `valid' field. 4265 Suggested by Graham Asher. 4266 42672011-03-09 Werner Lemberg <wl@gnu.org> 4268 4269 Make FT_Sfnt_Table_Info return the number of SFNT tables. 4270 4271 * src/sfnt/sfdriver.c (sfnt_table_info): Implement it. 4272 * include/freetype/tttables.h: Update documentation. 4273 * docs/CHANGES: Updated. 4274 42752011-03-07 Bram Tassyns <bramt@enfocus.be> 4276 4277 [cff] Fix Savannah bug #27988. 4278 4279 * src/cff/cffobjs.c (remove_style): New function. 4280 (cff_face_init): Use it to strip off the style part of the family 4281 name. 4282 42832011-03-07 Werner Lemberg <wl@gnu.org> 4284 4285 * docs/CHANGES: Updated. 4286 42872011-03-07 Alexei Podtelezhnikov <apodtele@gmail.com> 4288 4289 Quick fix for Savannah bug #32671. 4290 4291 This isn't the optimal solution yet, but it restores the previous 4292 rendering quality (more or less). 4293 4294 * src/smooth/ftgrays.c (gray_render_conic): Do more splitting. 4295 42962011-03-06 Werner Lemberg <wl@gnu.org> 4297 4298 Fix autohinting fallback. 4299 4300 * src/base/ftobjs.c (FT_Load_Glyph): Assure that we only check TTFs, 4301 ignoring CFF-based OTFs. 4302 43032011-02-27 Werner Lemberg <wl@gnu.org> 4304 4305 Add AF_CONFIG_OPTION_USE_WARPER to control the autofit warper. 4306 4307 * devel/ftoption.h, include/freetype/config/ftoption.h 4308 (AF_CONFIG_OPTION_USE_WARPER): New macro. 4309 * src/autofit/aftypes.h (AF_USE_WARPER): Remove. 4310 4311 * src/autofit/*: s/AF_USE_WARPER/AF_CONFIG_OPTION_USE_WARPER/. 4312 4313 * src/autofit/afwarp.c [!AF_CONFIG_OPTION_USE_WARPER]: Replace dummy 4314 variable assignment with a typedef. 4315 43162011-02-26 Werner Lemberg <wl@gnu.org> 4317 4318 [autofit] Slight simplifications. 4319 4320 * src/autofit/aflatin.c (af_latin_hints_link_segments): Remove 4321 test which always returns false. 4322 (af_latin_hints_compute_blue_edges): Remove redundant assignment. 4323 43242011-02-24 Werner Lemberg <wl@gnu.org> 4325 4326 * docs/PROBLEMS: Mention rendering differences on different 4327 platforms. 4328 Suggested and worded by Jason Owen <jason.a.owen@gmail.com>. 4329 43302011-02-24 Werner Lemberg <wl@gnu.org> 4331 4332 [autofit] Comment out unused code. 4333 4334 * src/autofit/aflatin.c, src/autofit/aflatin2.c 4335 (af_latin_hints_compute_edges): Do it. 4336 43372011-02-24 Werner Lemberg <wl@gnu.org> 4338 4339 * src/autofit/afhints.h (AF_GlyphHints): Remove unused field. 4340 43412011-02-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4342 4343 [cache] Fix an off-by-one bug in `FTC_Manager_RemoveFaceID'. 4344 Found by <ychen1392001@yahoo.com.cn>, see detail in 4345 4346 https://lists.gnu.org/archive/html/freetype/2011-01/msg00023.html 4347 4348 * src/cache/ftccache.c (FTC_Cache_RemoveFaceID): Check the node 4349 buckets[cache->p + cache->mask] too. 4350 43512011-02-19 Kevin Kofler <kevin.kofler@chello.at> 4352 4353 Fall back to autohinting if a TTF/OTF doesn't contain any bytecode. 4354 This is Savannah patch #7471. 4355 4356 * src/base/ftobjs.c (FT_Load_Glyph): Implement it. 4357 43582011-02-19 John Tytgat <John.Tytgat@esko.com> 4359 4360 [cff] Fix subset prefix removal. 4361 This is Savannah patch #7465. 4362 4363 * src/cff/cffobjs.c (remove_subset_prefix): Update length after 4364 subset prefix removal. 4365 43662011-02-13 Bradley Grainger <bgrainger@logos.com> 4367 4368 Add inline assembly version of FT_MulFix for MSVC. 4369 4370 * include/freetype/config/ftconfig.h: Ported the FT_MulFix_i386 4371 function from GNU inline assembly syntax (see #ifdef __GNUC__ block 4372 above) to MASM syntax for Microsoft Visual C++. 4373 43742011-02-13 Bradley Grainger <bgrainger@logos.com> 4375 4376 Add project and solution files in Visual Studio 2010 format. 4377 4378 * builds/win32/.gitignore: Ignore user-specific cache files. 4379 * builds/win32/vc2010/: Add VS2010 project & solution files, created 4380 by upgrading builds/win32/vc2008/freetype.vcproj. 4381 * objs/.gitignore: Ignore Visual Studio output files. 4382 43832011-02-01 Werner Lemberg <wl@gnu.org> 4384 4385 * src/autofit/afdummy.c: Include `aferrors.h'. 4386 Problem reported by Chris Liddell <chris.liddell@artifex.com>. 4387 43882011-02-01 Werner Lemberg <wl@gnu.org> 4389 4390 [cff] Ignore unknown operators in charstrings. 4391 Patch suggested by Miles.Lau <sunliang_liu@foxitsoftware.com>. 4392 4393 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing 4394 message for unknown operators and continue instead of exiting with a 4395 syntax error. 4396 43972011-02-01 Werner Lemberg <wl@gnu.org> 4398 4399 [truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also. 4400 4401 * src/truetype/ttgload.c (tt_loader_init): Handle 4402 `FT_LOAD_PEDANTIC'. 4403 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep, 4404 tt_size_init_bytecode, tt_size_ready_bytecode): New argument to 4405 handle pedantic mode. 4406 * src/truetype/ttobjs.h: Updated. 4407 44082011-01-31 Werner Lemberg <wl@gnu.org> 4409 4410 [truetype] Protect jump instructions against endless loops. 4411 4412 * src/truetype/interp.c (DO_JROT, DO_JMPR, DO_JROF): Exit with error 4413 if offset is zero. 4414 44152011-01-31 Werner Lemberg <wl@gnu.org> 4416 4417 [truetype] Improve handling of invalid references. 4418 4419 * src/truetype/interp.c: Set even more TT_Err_Invalid_Reference 4420 error codes only if pedantic hinting is active. At the same time, 4421 try to provide sane values which hopefully allow useful 4422 continuation. Exception to this is CALL and LOOPCALL – due to 4423 possible stack corruption it is necessary to bail out. 4424 44252011-01-31 Werner Lemberg <wl@gnu.org> 4426 4427 [truetype] Improve handling of stack underflow. 4428 4429 * src/truetype/ttinterp.c (TT_RunIns, Ins_FLIPPT, Ins_DELTAP, 4430 Ins_DELTAC): Exit with error only if `pedantic_hinting' is set. 4431 Otherwise, try to do something sane. 4432 44332011-01-30 Werner Lemberg <wl@gnu.org> 4434 4435 * src/sfnt/ttmtx.c (tt_face_load_hmtx): Fix tracing message. 4436 44372011-01-30 LIU Sun-Liang <sunliang_liu@foxitsoftware.com> 4438 4439 [truetype]: Fix behaviour of MIAP for invalid arguments. 4440 4441 * src/truetype/ttinterp.c (Ins_MIAP): Set reference points even in 4442 case of error. 4443 44442011-01-18 Werner Lemberg <wl@gnu.org> 4445 4446 [truetype] Fix handling of MIRP instruction. 4447 4448 Thanks to Greg Hitchcock who explained the issue. 4449 4450 * src/truetype/ttinterp.c (Ins_MIRP): Replace a `>=' operator with 4451 `>' since the description in the specification is incorrect. 4452 This fixes, for example, glyph `two' in font `Helvetica Neue LT Com 4453 65 medium' at 15ppem. 4454 44552011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4456 4457 Fix ARM assembly code in include/freetype/config/ftconfig.h. 4458 4459 * include/freetype/config/ftconfig.h (FT_MulFix_arm): 4460 Copy the maintained code from builds/unix/ftconfig.in. 4461 Old GNU binutils could not accept the reduced syntax 4462 `orr %0, %2, lsl #16'. Un-omitted syntax like RVCT, 4463 `orr %0, %0, %2, lsl #16' is better. Reported by 4464 Johnson Y. Yan. The bug report by Qt developers is 4465 considered too. 4466 4467 https://bugreports.qt.io/browse/QTBUG-6521 4468 44692011-01-15 Werner Lemberg <wl@gnu.org> 4470 4471 [raster] Make bbox handling the same as with Microsoft's rasterizer. 4472 4473 Right before B/W rasterizing, the bbox gets simply rounded to 4474 integers. This fixes, for example, glyph `three' in font `Helvetica 4475 Neue LT Com 65 Medium' at 11ppem. 4476 4477 Thanks to Greg Hitchcock who explained this behaviour. 4478 4479 * src/raster/ftrend1.c (ft_raster1_render): Implement it. 4480 44812011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4482 4483 Copy -mcpu=* & -march=* options from CFLAGS to LDFLAGS. 4484 4485 * builds/unix/configure.raw: Consider recent gcc-standard 4486 flags to specify architecture in CFLAGS & LDFLAGS 4487 harmonization. Requested by Savannah bug #32114, to 4488 support multilib feature of BuildRoot SDK correctly. 4489 44902011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4491 4492 Fix off-by-one bug in CFLAGS & LDFLAGS harmonizer. 4493 4494 * builds/unix/configure.raw: Some important options that 4495 included in CFLAGS but not in LDFLAGS are copied to 4496 LDFLAGS, but the last option in CFLAGS was not checked. 4497 44982011-01-13 Werner Lemberg <wl@gnu.org> 4499 4500 [raster] Add undocumented drop-out rule to the other bbox side also. 4501 4502 * src/raster/ftraster.c (Vertical_Sweep_Drop, 4503 Horizontal_Sweep_Drop): Implement it. 4504 45052011-01-13 Werner Lemberg <wl@gnu.org> 4506 4507 [raster] Reduce jitter value. 4508 4509 This catches a rendering problem with glyph `x' from Tahoma at 4510 10ppem. It seems that the increase of the precision in the change 4511 from 2009-06-11 makes a larger jitter value unnecessary. 4512 4513 * src/raster/ftraster.c (Set_High_Precision): Implement it. 4514 45152011-01-13 Werner Lemberg <wl@gnu.org> 4516 4517 [raster] Handle drop-outs at glyph borders according to Microsoft. 4518 4519 If a drop-out rule would switch on a pixel outside of the glyph's 4520 bounding box, use the right (or top) pixel instead. This is an 4521 undocumented feature, but some fonts like `Helvetica Neue LT Com 65 4522 Medium' heavily rely on it. 4523 4524 Thanks to Greg Hitchcock who explained this behaviour. 4525 4526 * src/raster/ftraster.c (Vertical_Sweep_Drop, 4527 Horizontal_Sweep_Drop): Implement it. 4528 45292011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4530 4531 [cache] Fix Savannah bug #31923, patch drafted by Harsha. 4532 4533 When a node comparator changes the cached nodes during the 4534 search of a node matching with queried properties, the 4535 pointers obtained before the function should be updated to 4536 prevent the dereference to freed or reallocated nodes. 4537 To minimize the rescan of the linked list, the update is 4538 executed when the comparator notifies the change of cached 4539 nodes. This change depends previous change: 4540 38b272ffbbdaae276d636aec4ef84af407d16181 4541 4542 * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Rescan the 4543 top node if the cached nodes are changed. 4544 * src/cache/ftccache.c (FTC_Cache_Lookup): Ditto. 4545 45462011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4547 4548 [cache] Notice if a cache query induced the node list change. 4549 4550 Some node comparators (comparing the cache node contents and the 4551 properties specified by the query) can flush the cache node to 4552 prevent the cache inflation. The change may invalidate the pointers 4553 to the node obtained before the node comparison, so it should be 4554 noticed to the caller. The problem caused by the cache node 4555 changing is reported by Harsha, see Savannah bug #31923. 4556 4557 * src/cache/ftccache.h (FTC_Node_CompareFunc): Add new argument 4558 `FT_Bool* list_changed' to indicate the change of the cached nodes 4559 to the caller. 4560 (FTC_CACHE_LOOKUP_CMP): Watch the change of the cached nodes by 4561 `_list_changed'. 4562 (FTC_CACHE_TRYLOOP_END): Take new macro argument `_list_changed' 4563 and update it when `FTC_Manager_FlushN' flushes any nodes. 4564 4565 * src/cache/ftccback.h (ftc_snode_compare): Updated to fit with new 4566 FTC_Node_CompareFunc type. 4567 (ftc_gnode_compare): Ditto. 4568 4569 * src/cache/ftcbasic.c: Include FT_INTERNAL_OBJECTS_H to use 4570 TRUE/FALSE macros. 4571 (ftc_basic_gnode_compare_faceid): New argument `FT_Bool* 4572 list_changed' to indicate the change of the cache nodes (anyway, it 4573 is always FALSE). 4574 4575 * src/cache/ftccmap.c: Include FT_INTERNAL_OBJECTS_H to use 4576 TRUE/FALSE macros. 4577 (ftc_cmap_node_compare): New argument `FT_Bool* list_changed' to 4578 indicate the change of the cache nodes (anyway, it is always FALSE). 4579 (ftc_cmap_node_remove_faceid): Ditto. 4580 4581 * src/cache/ftccache.c (FTC_Cache_NewNode): Pass a NULL pointer to 4582 `FTC_CACHE_TRYLOOP_END', because the result is not needed. 4583 (FTC_Cache_Lookup): Watch the change of the cache nodes by 4584 `list_changed'. 4585 (FTC_Cache_RemoveFaceID): Ditto. 4586 4587 * src/cache/ftcglyph.c: Include FT_INTERNAL_OBJECTS_H to use 4588 TRUE/FALSE macros. 4589 (ftc_gnode_compare): New argument `FT_Bool* list_changed' to 4590 indicate the change of the cache nodes (anyway, it is always FALSE). 4591 (FTC_GNode_Compare): New argument `FT_Bool* list_changed' to be 4592 passed to `ftc_gnode_compare'. 4593 * src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto. 4594 4595 * src/cache/ftcsbits.c (ftc_snode_compare): New argument `FT_Bool* 4596 list_changed' to indicate the change of the cache nodes, anyway. It 4597 is updated by `FTC_CACHE_TRYLOOP'. 4598 (FTC_SNode_Compare): New argument `FT_Bool* list_changed' to be 4599 passed to `ftc_snode_compare'. 4600 * src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto. 4601 46022011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4603 4604 [cache] Fit `FTC_GNode_Compare' to `FTC_Node_CompareFunc'. 4605 4606 * src/cache/ftcglyph.h (FTC_GNode_Compare): Add the 3rd 4607 argument `FTC_Cache cache' to fit FTC_Node_CompareFunc 4608 prototype. 4609 * src/cache/ftcglyph.c (FTC_GNode_Compare): Ditto. Anyway, 4610 `cache' is not used by its child `ftc_gnode_compare'. 4611 46122011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4613 4614 [cache] Deduplicate the code to get the top node by a hash. 4615 4616 There are several duplicated code fragments getting the top node 4617 from a cache by a given hash, like: 4618 4619 idx = hash & cache->mask; 4620 if ( idx < cache->p ) 4621 idx = hash & ( cache->mask * 2 + 1 ); 4622 pnode = cache->buckets + idx; 4623 4624 To remove duplication, a cpp-macro to do same work 4625 `FTC_NODE__TOP_FOR_HASH' is introduced. For non-inlined 4626 configuration, non-`ftc_get_top_node_for_hash' is also introduced. 4627 4628 * src/cache/ftccache.h (FTC_NODE__TOP_FOR_HASH): Declare 4629 and implement inlined version. 4630 (FTC_CACHE_LOOKUP_CMP): Use `FTC_NODE__TOP_FOR_HASH'. 4631 * src/cache/ftccache.c (ftc_get_top_node_for_hash): Non-inlined 4632 version. 4633 (ftc_node_hash_unlink): Use `FTC_NODE__TOP_FOR_HASH'. 4634 (ftc_node_hash_link): Ditto. 4635 (FTC_Cache_Lookup): Ditto. 4636 46372011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4638 4639 [cache] inline-specific functions are conditionalized. 4640 4641 * src/cache/ftcglyph.c (FTC_GNode_Compare): Conditionalized for 4642 inlined configuration. This function is a thin wrapper of 4643 `ftc_gnode_compare' for inlined `FTC_CACHE_LOOKUP_CMP' (see 4644 `nodecmp' argument). Under non-inlined configuration, 4645 `ftc_gnode_compare' is invoked by `FTC_Cache_Lookup', via 4646 `FTC_Cache->clazz.node_compare'. 4647 4648 * src/cache/ftcglyph.h (FTC_GNode_Compare): Ditto. 4649 * src/cache/ftcsbits.c (FTC_SNode_Compare): Ditto, for 4650 `ftc_snode_compare'. 4651 * src/cache/ftcsbits.h (FTC_SNode_Compare): Ditto. 4652 46532011-01-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4654 4655 [cache] Correct a type mismatch under non-inlined config. 4656 4657 * src/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP): `FTC_GCache_Lookup' 4658 takes the node via a pointer `FTC_Node*', differently from cpp-macro 4659 `FTC_CACHE_LOOKUP_CMP'. 4660 46612011-01-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4662 4663 Update Jamfile to include Bzip2 support. 4664 4665 * Jamfile: Include src/bzip2 to project. 4666 Comments for lzw, gzip, bzip2 are changed to clarify that 4667 they are for compressed PCF fonts, not others. 4668 (e.g. compressed BDF fonts are not supported yet) 4669 46702011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4671 4672 Update Symbian project files to include Bzip2 support. 4673 4674 Currently, it provides `FT_Stream_OpenBzip2' that returns 4675 unimplemented error always, to prevent unresolved symbol 4676 error for the applications designed for Unix systems. 4677 4678 * builds/symbian/bld.inf: Include ftbzip2.h. 4679 * builds/symbian/freetype.mmp: Include ftbzip2.c. 4680 46812011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4682 4683 Update classic MacOS makefiles to include Bzip2 support. 4684 4685 Currently, it provides `FT_Stream_OpenBzip2' that returns 4686 unimplemented error always, to prevent unresolved symbol 4687 error for the applications designed for Unix systems. 4688 4689 * builds/mac/FreeType.m68k_cfm.make.txt: Include ftbzip2.c.o. 4690 * builds/mac/FreeType.m68k_far.make.txt: Ditto. 4691 * builds/mac/FreeType.ppc_carbon.make.txt: Include ftbzip2.c.x. 4692 * builds/mac/FreeType.ppc_classic.make.txt: Ditto. 4693 46942011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4695 4696 Update Amiga makefiles to include Bzip2 support. 4697 4698 Currently, it provides `FT_Stream_OpenBzip2' that returns 4699 unimplemented error always, to prevent unresolved symbol 4700 error for the applications designed for Unix systems. 4701 4702 * builds/amiga/makefile: Include bzip2.ppc.o built from ftbzip2.c. 4703 * builds/amiga/makefile.os4: Include bzip2.o built from ftbzip2.c. 4704 * builds/amiga/smakefile: Ditto. 4705 47062011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4707 4708 Update pkg-config tools to reflect Bzip2 support. 4709 4710 * builds/unix/freetype-config.in: Include `-lbz2' to 4711 --libs output, if built with Bzip2 support. 4712 * builds/unix/freetype2.in: Ditto. 4713 47142011-01-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4715 4716 * builds/unix/configure.raw: Remove `SYSTEM_BZ2LIB' macro. 4717 4718 SYSTEM_ZLIB is used to switch the builtin zlib source 4719 or system zlib source out of FreeType2. But ftbzip2 4720 module has no builtin bzip2 library and always requires 4721 system bzip2 library. Thus SYSTEM_BZ2LIB is always yes, 4722 it is not used. 4723 47242011-01-03 Werner Lemberg <wl@gnu.org> 4725 4726 */rules.mk: Handle `*pic.c' files. 4727 47282010-12-31 Werner Lemberg <wl@gnu.org> 4729 4730 * src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 64. 4731 Problem reported by Tom Bishop <wenlin@wenlin.com>. 4732 47332010-12-31 Werner Lemberg <wl@gnu.org> 4734 4735 Improve bzip2 support. 4736 4737 * include/freetype/ftmoderr.h: Add bzip2. 4738 4739 * docs/INSTALL.ANY, docs/CHANGES: Updated. 4740 4741 * src/pcf/README: Updated. 4742 * include/freetype/internal/pcftypes.h: Obsolete, removed. 4743 47442010-12-31 Joel Klinghed <the_jk@yahoo.com> 4745 4746 Add bzip2 compression support to handle *.pcf.bz2 files. 4747 4748 * builds/unix/configure.raw: Test for libbz2 library. 4749 4750 * devel/ftoption.h, include/freetype/config/ftoption.h 4751 (FT_CONFIG_OPTION_USE_BZIP2): Define. 4752 * include/freetype/config/ftheader.h (FT_BZIP2_H): Define. 4753 4754 * include/freetype/ftbzip2.h: New file. 4755 4756 * src/bzip2/*: New files. 4757 4758 * src/pcf/pcf.h: s/gzip_/comp_/. 4759 * src/pcf/pcfdrivr.c: Include FT_BZIP2_H. 4760 s/gzip_/comp_/. 4761 (PCF_Face_Init): Handle bzip2 compressed files. 4762 4763 * docs/formats.txt, modules.cfg: Updated. 4764 47652010-12-25 Harsha <mm.harsha@gmail.com> 4766 4767 Apply Savannah patch #7422. 4768 4769 If we encounter a space in a string then the sbit buffer is NULL, 4770 height and width are 0s. So the check in ftc_snode_compare will 4771 always pass for spaces (comparison with 255). Here the comments 4772 above the condition are proper but the implementation is not. When 4773 we create an snode I think it is the proper way to initialize the 4774 width to 255 and then put a check for being equal to 255 in snode 4775 compare function. 4776 4777 * src/cache/ftcsbits.c (FTC_SNode_New): Initialize sbit widths with 4778 value 255. 4779 (ftc_snode_compare): Fix condition. 4780 47812010-12-13 Werner Lemberg <wl@gnu.org> 4782 4783 Fix parameter handling of `FT_Set_Renderer'. 4784 Reported by Kirill Tishin <siege@bk.ru>. 4785 4786 * src/base/ftobjs.c (FT_Set_Renderer): Increment `parameters'. 4787 47882010-12-09 Werner Lemberg <wl@gnu.org> 4789 4790 [cff] Allow `hlineto' and `vlineto' without arguments. 4791 4792 We simply ignore such instructions. This is invalid, but it doesn't 4793 harm; and indeed, there exist such subsetted fonts in PDFs. 4794 4795 Reported by Albert Astals Cid <aacid@kde.org>. 4796 4797 * src/cff/cffgload.c (cff_decoder_parse_charstrings) 4798 [cff_op_hlineto]: Ignore instruction if there aren't any arguments 4799 on the stack. 4800 48012010-11-28 Werner Lemberg <wl@gnu.org> 4802 4803 * Version 2.4.4 released. 4804 ========================= 4805 4806 4807 Tag sources with `VER-2-4-4'. 4808 4809 * docs/CHANGES: Updated. 4810 4811 * docs/VERSION.DLL: Update documentation and bump version number to 4812 2.4.4 4813 4814 * README, Jamfile (RefDoc), 4815 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 4816 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 4817 builds/win32/visualc/freetype.dsp, 4818 builds/win32/visualc/freetype.vcproj, 4819 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 4820 builds/win32/visualce/freetype.vcproj, 4821 builds/win32/visualce/index.html, 4822 builds/wince/vc2005-ce/freetype.vcproj, 4823 builds/wince/vc2005-ce/index.html, 4824 builds/wince/vc2008-ce/freetype.vcproj, 4825 builds/wince/vc2008-ce/index.html: s/2.4.3/2.4.4/, s/243/244/. 4826 4827 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. 4828 4829 * builds/unix/configure.raw (version_info): Set to 12:2:6. 4830 48312010-11-28 Alexei Podtelezhnikov <apodtele@gmail.com> 4832 4833 [ftsmooth]: Minor code simplification. 4834 4835 * src/smooth/ftgrays (gray_render_cubic): Do only one comparison 4836 instead of two. 4837 48382010-11-26 Johnson Y. Yan <yinsen_yan@foxitsoftware.com> 4839 4840 [truetype] Better multi-threading support. 4841 4842 * src/truetype/ttinterp.c (TT_Load_Context): Reset glyph zone 4843 references. 4844 48452010-11-23 John Tytgat <John.Tytgat@esko.com> 4846 4847 * src/psaux/t1decode.c (t1_decoder_parse_charstring): Expand 4848 start_point, check_points, add_point, add_point1, close_contour 4849 macros. 4850 Remove add_contour macro. 4851 Return error code from t1_builder_start_point and 4852 t1_builder_check_points when there was one (instead of returning 0). 4853 48542010-11-22 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4855 4856 [truetype] Identify the tricky fonts by cvt/fpgm/prep checksums. 4857 Some Latin TrueType fonts are still expected to be unhinted. 4858 Fix Savannah bug #31645. 4859 4860 * src/truetype/ttobjs.c (tt_check_trickyness): Divided to... 4861 (tt_check_trickyness_family): this checking family name, and 4862 (tt_check_trickyness_sfnt_ids): this checking cvt/fpgm/prep. 4863 (tt_get_sfnt_checksum): Function to retrieve the sfnt checksum 4864 for specified subtable even if cleared by lazy PDF generators. 4865 (tt_synth_sfnt_checksum): Function to calculate the checksum. 4866 48672010-11-18 Werner Lemberg <wl@gnu.org> 4868 4869 [truetype] Fix `loca' handling for inconsistent number of glyphs. 4870 Reported by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>. 4871 4872 * src/truetype/ttpload.c (tt_face_load_loca): While sanitizing, 4873 handle case where `loca' is the last table in the font. 4874 48752010-11-18 Werner Lemberg <wl@gnu.org> 4876 4877 [sfnt] Ignore all errors while loading `OS/2' table. 4878 Suggested by Johnson Y. Yan <yinsen_yan@foxitsoftware.com>. 4879 4880 * src/sfnt/sfobjs.c (sfnt_load_face): Do it. 4881 48822010-11-18 Johnson Y. Yan <yinsen_yan@foxitsoftware.com> 4883 4884 [type1] Fix matrix normalization. 4885 4886 * src/type1/t1load.c (parse_font_matrix): Handle sign of scaling 4887 factor. 4888 48892010-11-18 Werner Lemberg <wl@gnu.org> 4890 4891 [type1] Improve guard against malformed data. 4892 Based on a patch submitted by Johnson Y. Yan 4893 <yinsen_yan@foxitsoftware.com> 4894 4895 * src/type1/t1load.c (read_binary_data): Check `size'. 4896 48972010-11-17 Werner Lemberg <wl@gnu.org> 4898 4899 [sfnt] While tracing, output table checksums also. 4900 4901 * src/sfnt/ttload.c (tt_face_load_font_dir): Do it. 4902 49032010-11-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4904 4905 [UVS] Fix `find_variant_selector_charmap', Savannah bug #31545. 4906 4907 Since 2010-07-04, `find_variant_selector_charmap' returns 4908 the first cmap subtable always under rogue-compatible 4909 configuration, it causes NULL pointer dereference and 4910 make UVS-related functions crashed. 4911 4912 * src/base/ftobjs.c (Fix find_variant_selector_charmap): 4913 Returns UVS cmap correctly. 4914 49152010-11-01 Alexei Podtelezhnikov <apodtele@gmail.com> 4916 4917 [ftsmooth] Improve rendering. 4918 4919 * src/smooth/ftsmooth.c (gray_render_conic): Since version 2.4.3, 4920 cubic deviations have been estimated _after_ UPSCALE, whereas 4921 conic ones have been evaluated _before_ UPSCALE, which produces 4922 inferior rendering results. Fix this. 4923 Partially undo change from 2010-10-15 by using ONE_PIXEL/4; this has 4924 been tested with demo images sent to the mailing list. See 4925 4926 https://lists.gnu.org/archive/html/freetype-devel/2010-10/msg00055.html 4927 4928 and later mails in this thread. 4929 49302010-10-28 Werner Lemberg <wl@gnu.org> 4931 4932 [ftraster] Minor fixes. 4933 4934 Reported by Tom Bishop <wenlin@wenlin.com>. 4935 4936 * src/raster/ftraster.c (ULong): Remove unused typedef. 4937 (TWorker): Remove unused variable `precision_mask'. 4938 49392010-10-28 Werner Lemberg <wl@gnu.org> 4940 4941 [ftraster] Fix rendering. 4942 4943 Problem reported by Tom Bishop <wenlin@wenlin.com>; see 4944 thread starting with 4945 4946 https://lists.gnu.org/archive/html/freetype/2010-10/msg00049.html 4947 4948 * src/raster/ftraster.c (Line_Up): Replace FMulDiv with SMulDiv 4949 since the involved multiplication exceeds 32 bits. 4950 49512010-10-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4952 4953 Revert a change of `_idx' type in `FTC_CACHE_LOOKUP_CMP'. 4954 4955 * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Revert 4956 the type of `_idx' from FT_PtrDist (by previous change) 4957 to original FT_UFast, to match with FT_CacheRec. 4958 49592010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4960 4961 [cache] Change the hash types to FT_PtrDist. 4962 4963 On LLP64 platforms (e.g. Win64), FT_ULong (32-bit) 4964 variables are inappropriate to calculate hash values 4965 from the memory address (64-bit). The hash variables 4966 are extended from FT_ULong to FT_PtrDist and new 4967 hashing macro functions are introduced. The hash 4968 values on 16-bit memory platforms are changed, but 4969 ILP32 and LP64 are not changed. The hash value in 4970 the cache subsystem is not reverted to the memory 4971 address, so using signed type FT_PtrDist is safe. 4972 4973 * src/cache/ftccache.h (_FTC_FACE_ID_HASH): New hash 4974 function to replace `FTC_FACE_ID_HASH' for portability. 4975 * src/cache/ftcmanag.h (FTC_SCALER_HASH): Replace 4976 `FTC_FACE_ID_HASH' by `_FTC_FACE_ID_HASH'. 4977 * src/cache/ftccmap.c (FTC_CMAP_HASH): Ditto. 4978 4979 * src/cache/ftccache.h (FTC_NodeRec): The type of the 4980 member `hash' is changed from FT_UInt32 to FT_PtrDist. 4981 4982 * src/cache/ftccache.h (FTC_Cache_Lookup): The type of the 4983 argument `hash' is changed from FT_UInt32 to FT_PtrDist. 4984 (FTC_Cache_NewNode): Ditto. 4985 * src/cache/ftccache.c (ftc_cache_add): Ditto. 4986 (FTC_Cache_Lookup): Ditto. (FTC_Cache_NewNode): Ditto. 4987 * src/cache/ftcglyph.h (FTC_GCache_Lookup): Ditto. 4988 * src/cache/ftcglyph.c (FTC_GCache_Lookup): Ditto. 4989 4990 * src/cache/ftcbasic.c (FTC_ImageCache_Lookup): The type 4991 of the internal variable `hash' is changed to FT_PtrDist 4992 from FT_UInt32. (FTC_ImageCache_LookupScaler): Ditto. 4993 (FTC_SBitCache_Lookup): Ditto. 4994 (FTC_SBitCache_LookupScaler): Ditto. 4995 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Ditto. 4996 * src/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP): Ditto. 4997 Also the type of the internal variable `_idx' is changed to 4998 FT_PtrDist from FT_UFast for better pointer calculation. 4999 50002010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5001 5002 [cache] Hide internal macros incompatible with LLP64. 5003 5004 `FT_POINTER_TO_ULONG', `FTC_FACE_ID_HASH', and 5005 `FTC_IMAGE_TYPE_HASH' are enclosed by 5006 FT_CONFIG_OPTION_OLD_INTERNALS and hidden from 5007 normal clients. 5008 5009 For the history of these macros, see the investigation: 5010 https://lists.gnu.org/archive/html/freetype/2010-10/msg00022.html 5011 50122010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5013 5014 Change the type of `FT_MEM_VAL' from FT_ULong to FT_PtrDist. 5015 5016 On LLP64 platforms (e.g. Win64), unsigned long (32-bit) 5017 cannot cover the memory address (64-bit). `FT_MEM_VAL' is 5018 used for hashing only and not dereferred, so using signed 5019 type FT_PtrDist is safe. 5020 5021 * src/base/ftdbgmem.c (FT_MEM_VAL): Change the type of the 5022 return value from FT_ULong to FT_PtrDist. 5023 (ft_mem_table_resize): The type of hash is changed to 5024 FT_PtrDist. (ft_mem_table_get_nodep): Ditto. 5025 50262010-10-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5027 5028 Replace "%lx" for memory address by "%p", LLP64 platforms. 5029 5030 On LLP64 platforms (e.g. Win64), long (32-bit) cannot cover 5031 the memory address (64-bit). Also the casts from the pointer 5032 type to long int should be removed to preserve the address 5033 correctly. 5034 5035 * src/raster/ftraster.c (New_Profile): Replace "%lx" by "%p". 5036 (End_Profile) Ditto. 5037 * src/truetype/ttinterp.c (Init_Context): Ditto. 5038 50392010-10-15 Alexei Podtelezhnikov <apodtele@gmail.com> 5040 5041 Fix thinko in spline flattening. 5042 5043 FT_MAX_CURVE_DEVIATION is dependent on the value of ONE_PIXEL. 5044 5045 * src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): Remove it and 5046 replace it everywhere with ONE_PIXEL/8. 5047 50482010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5049 5050 [raccess] Skip unrequired resource access rules by Darwin VFS. 5051 5052 When a resource fork access rule by Darwin VFS could open the 5053 resource fork but no font is found in it, the rest of rules 5054 by Darwin VFS are skipped. It reduces the warnings of the 5055 deprecated resource fork access method by recent Darwin kernel. 5056 Fix MacPorts ticket #18859: 5057 https://trac.macports.org/ticket/18859 5058 5059 * src/base/ftobjs.c (load_face_in_embedded_rfork): 5060 When `FT_Stream_New' returns FT_Err_Cannot_Open_Stream, it 5061 means that the file is possible to be `fopen'-ed but zero-sized. 5062 Also there is a case that the resource fork is not zero-sized, 5063 but no supported font exists in it. If a rule by Darwin VFS 5064 falls into such cases, there is no need to try other Darwin VFS 5065 rules anymore. Such cases are marked by vfs_rfork_has_no_font. 5066 If it is TRUE, the Darwin VFS rules are skipped. 5067 50682010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5069 5070 [raccess] Grouping resource access rules based on Darwin VFS. 5071 5072 MacOS X/Darwin kernel supports a few tricky methods to access 5073 a resource fork via ANSI C or POSIX interface. Current resource 5074 fork accessor tries all possible methods to support all kernels. 5075 But if a method could open a resource fork but no font is found, 5076 there is no need to try other methods older than tested method. 5077 To determine whether the rule index is for Darwin VFS, a local 5078 function `ftrfork.c::raccess_rule_by_darwin_vfs' is introduced. 5079 To use this function in ftobjs.c etc but it should be inlined, 5080 it is exposed by ftbase.h. 5081 5082 * src/base/ftrfork.c (FT_RFork_Rule): New enum type to identify 5083 the rules to access the resource fork. 5084 (raccess_guess_rec): New structure to bind the rule function and 5085 rule enum type. 5086 (FT_Raccess_Guess): The list of the rule functions is replaced by 5087 (raccess_guess_table): This. This is exposed to be used by other 5088 intra module functions. 5089 (raccess_rule_by_darwin_vfs): A function to return a boolean 5090 if the rule specified by the rule index is based on Darwin VFS. 5091 50922010-10-13 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5093 5094 Prevent to open a FT_Stream for zero-sized file on non-Unix. 5095 5096 builds/unix/ftsystem.c prevents to open an useless stream from 5097 zero-sized file and returns FT_Err_Cannot_Open_Stream, but the 5098 stream drivers for ANSI C, Amiga and VMS return useless streams. 5099 For cross-platform consistency, all stream drivers should act 5100 same. 5101 5102 * src/base/ftsystem.c (FT_Stream_Open): If the size of the opened 5103 file is zero, FT_Err_Cannot_Open_Stream is returned. 5104 * builds/amiga/src/base/ftsystem.c (FT_Stream_Open): Ditto. 5105 * src/vms/ftsystem.c (FT_Stream_Open): Ditto. 5106 51072010-10-12 Werner Lemberg <wl@gnu.org> 5108 5109 [truetype] Fix Savannah bug #31310. 5110 5111 * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Protect against 5112 invalid `runcnt' values. 5113 51142010-10-08 Chris Liddell <chris.liddell@artifex.com> 5115 5116 [sfnt] Fix Savannah bug #31275. 5117 5118 * src/sfnt/ttpost.c: Include FT_INTERNAL_DEBUG_H. 5119 51202010-10-06 Werner Lemberg <wl@gnu.org> 5121 5122 [truetype] Improve error handling of `SHZ' bytecode instruction. 5123 Problem reported by Chris Evans <scarybeasts@gmail.com>. 5124 5125 * src/truetype/ttinterp.c (Ins_SHZ): Check `last_point'. 5126 51272010-10-05 Werner Lemberg <wl@gnu.org> 5128 5129 Fix Savannah bug #31253. 5130 Patch submitted by an anonymous reporter. 5131 5132 * configure: Use `awk' instead of `sed' to manipulate output of `ls 5133 -id'. 5134 51352010-10-03 Werner Lemberg <wl@gnu.org> 5136 5137 * Version 2.4.3 released. 5138 ========================= 5139 5140 5141 Tag sources with `VER-2-4-3'. 5142 5143 * docs/CHANGES: Updated. 5144 5145 * docs/VERSION.DLL: Update documentation and bump version number to 5146 2.4.3 5147 5148 * README, Jamfile (RefDoc), 5149 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 5150 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 5151 builds/win32/visualc/freetype.dsp, 5152 builds/win32/visualc/freetype.vcproj, 5153 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 5154 builds/win32/visualce/freetype.vcproj, 5155 builds/win32/visualce/index.html, 5156 builds/wince/vc2005-ce/freetype.vcproj, 5157 builds/wince/vc2005-ce/index.html, 5158 builds/wince/vc2008-ce/freetype.vcproj, 5159 builds/wince/vc2008-ce/index.html: s/2.4.2/2.4.3/, s/242/243/. 5160 5161 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. 5162 5163 * builds/unix/configure.raw (version_info): Set to 12:1:6. 5164 51652010-10-03 Werner Lemberg <wl@gnu.org> 5166 5167 Avoid `configure' issues with symbolic links. 5168 Based on a patch from Alexander Stohr <Alexander.Stohr@gmx.de>. 5169 5170 * configure: Compare directories using `ls -id'. 5171 Check existence of `reference' subdirectory before creating it. 5172 51732010-10-02 Werner Lemberg <wl@gnu.org> 5174 5175 [sfnt] Fix Savannah bug #31088 (sort of). 5176 5177 * src/sfnt/ttload.c (tt_face_load_maxp): Always allocate at least 64 5178 function entries. 5179 51802010-10-02 Werner Lemberg <wl@gnu.org> 5181 5182 [smooth] Fix splitting of cubics for negative values. 5183 5184 Reported by Róbert Márki <gsmiko@gmail.com>; see 5185 https://lists.gnu.org/archive/html/freetype/2010-09/msg00019.html. 5186 5187 * src/smooth/ftgrays.c (gray_render_cubic): Fix thinko. 5188 51892010-10-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5190 5191 [truetype] Fix Savannah bug #31040. 5192 5193 * src/truetype/ttinterp.c (free_buffer_in_size): Remove. 5194 (TT_RunIns): Updated. 5195 51962010-09-20 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5197 5198 [sfnt] Make error message filling NULL names less verbose. 5199 5200 * src/sfnt/ttpost.c (load_format_20): Showing 1 summary message 5201 when we fill `post' names by NULL, instead of per-entry message. 5202 52032010-09-20 Graham Asher <graham.asher@btinternet.com> 5204 David Bevan <david.bevan@pb.com> 5205 5206 [smooth] Fix and improve spline flattening. 5207 5208 This fixes the flattening of cubic, S-shaped curves and speeds up 5209 the handling of both the conic and cubic arcs. 5210 5211 See the discussions on the freetype-devel mailing list in late 5212 August and September 2010 for details. 5213 5214 * src/smooth/ftgrays.c (FT_MAX_CURVE_DEVIATION): New macro. 5215 (TWorker): Remove `conic_level' and `cubic_level' elements. 5216 (gray_render_conic): Simplify algorithm. 5217 (gray_render_cubic): New algorithm; details are given in the code 5218 comments. 5219 (gray_convert_glyph): Remove heuristics. 5220 52212010-09-19 Werner Lemberg <wl@gnu.org> 5222 5223 Minor fixes. 5224 5225 * src/cff/cffload.c (cff_charset_compute_cids): `charset->sids[i]' 5226 is `FT_UShort'. 5227 (cff_index_access_element): Don't use additions in comparison. 5228 * src/sfnt/ttpost.c (load_format_20): Make `post_limit' of type 5229 `FT_Long'. 5230 Don't use additions in comparison. 5231 Improve tracing messages. 5232 (load_format_25, load_post_names): Make `post_limit' of type 5233 `FT_Long'. 5234 52352010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5236 5237 [cff] Truncate the element length at the end of the stream. 5238 See Savannah bug #30975. 5239 5240 * src/cff/cffload.c (cff_index_access_element): `off2', the offset 5241 to the next element is truncated at the end of the stream to prevent 5242 invalid I/O. As `off1', the offset to the requested element has 5243 been checked by `FT_STREAM_SEEK', `off2' should be checked 5244 similarly. 5245 52462010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5247 5248 [cff] Ignore CID > 0xFFFFU. 5249 See Savannah bug #30975. 5250 5251 * src/cff/cffload.c (cff_charset_compute_cids): Ignore CID if 5252 greater than 0xFFFFU. CFF font spec does not mention maximum CID in 5253 the font, but PostScript and PDF spec define that maximum CID is 5254 0xFFFFU. 5255 52562010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5257 5258 [cff] Make trace message in` cff_charset_load' verbose. 5259 See Savannah bug #30975. 5260 5261 * src/cff/cffload.c (cff_charset_load): Report the original `nleft' 5262 and truncated `nleft'. 5263 52642010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5265 5266 [cff] Correct `max_cid' from CID array length to max CID. 5267 See Savannah bug #30975. 5268 5269 * src/cff/cffload.c (cff_charset_compute_cids): Don't increment 5270 max_cid after detecting max CID. The array CFF_Charset->cids is 5271 allocated by max_cid + 1. 5272 (cff_charset_cid_to_gindex): Permit CID is less than or equal to 5273 CFF_Charset->max_cid. 5274 * src/cff/cffobjs.c (cff_face_init): FT_Face->num_glyphs is 5275 calculated as CFF_Charset->max_cid + 1. 5276 52772010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5278 5279 [truetype] Sanitize the broken offsets in `loca'. 5280 See Savannah bug #31040. 5281 5282 * src/truetype/ttpload.c (tt_face_get_location): If `pos1', the 5283 offset to the requested entry in `glyf' exceeds the end of the 5284 table, return offset=0, length=0. If `pos2', the offset to the next 5285 entry in `glyf' exceeds the end of the table, truncate the entry 5286 length at the end of `glyf' table. 5287 52882010-09-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5289 5290 [sfnt] Prevent overrunning in `post' table parser. 5291 See Savannah bug #31040. 5292 5293 * src/sfnt/ttpost.c (load_post_names): Get the length of `post' 5294 table and pass the limit of `post' table to `load_format_20' and 5295 `load_format_25'. 5296 (load_format_20): Stop the parsing when we reached at the limit of 5297 `post' table. If more glyph names are required, they are filled by 5298 NULL names. 5299 53002010-09-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5301 5302 [truetype] Don't duplicate size->twilight structure to be freed. 5303 See Savannah bug #31040 for detail. 5304 5305 * src/truetype/ttinterp.c (free_buffer_in_size): Don't duplicate 5306 FT_GlyphZoneRec size->twilight to be freed. If duplicated, 5307 `FT_FREE' erases the duplicated pointers only and leave original 5308 pointers. They can cause the double-free crash when the burst 5309 errors occur in TrueType interpreter and `free_buffer_in_size' is 5310 invoked repeatedly. 5311 53122010-09-15 Werner Lemberg <wl@gnu.org> 5313 5314 Make bytecode debugging with FontForge work again. 5315 5316 * src/truetype/ttinterp.c (TT_RunIns): Don't call 5317 `free_buffer_in_size' in case of error if a debugger is active. 5318 53192010-09-14 Werner Lemberg <wl@gnu.org> 5320 5321 Improve tracing messages. 5322 5323 * src/truetype/ttinterp.c (TT_RunIns): Improve wording of tracing 5324 message. 5325 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Add 5326 tracing message. 5327 * src/truetype/ttgload.c (tt_loader_init): Add tracing message. 5328 * src/cache/ftcsbits.c (ftc_snode_load): Emit tracing message if 5329 glyph doesn't fit into a small bitmap container. 5330 53312010-09-13 Werner Lemberg <wl@gnu.org> 5332 5333 Fix minor issues reported by <muktha.narayan@wipro.com>. 5334 5335 * src/autofit/aflatin.c (af_latin_compute_stem_width): Remove 5336 redundant conditional check. 5337 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Ditto. 5338 * src/cff/cffload.c (cff_encoding_load): Remove conditional check 5339 which always evaluates to `true'. 5340 * src/pshinter/pshalgo.c (ps_glyph_interpolate_strong_points): 5341 Ditto. 5342 * src/truetype/ttinterp.c (Ins_IUP): Ditto. 5343 * src/cid/cidgload.c (cid_slot_load_glyph): Don't check for NULL if 5344 value is already dereferenced. 5345 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix check of `face'. 5346 53472010-08-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5348 5349 Ignore the environmental setting of LIBTOOL. 5350 Patch is suggested by Adrian Bunk, to prevent unexpected 5351 reflection of environmental LIBTOOL. See: 5352 https://savannah.nongnu.org/patch/?7290 5353 5354 * builds/unix/unix-cc.in: LIBTOOL is unconditionally set to 5355 $(FT_LIBTOOL_DIR)/libtool. FT_LIBTOOL_DIR is set to $(BUILD_DIR) 5356 by default. 5357 * configure: When configured for the building out of source tee, 5358 FT_LIBTOOL_DIR is set to $(OBJ_DIR). 5359 53602010-08-31 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5361 5362 [truetype] Decrease the trace level catching the interpreter error. 5363 5364 * src/truetype/ttinterp.c (TT_RunIns): Decrease the trace level 5365 showing the error when the interpreter returns with an error, 5366 from` FT_TRACE7' to `FT_TRACE1'. 5367 53682010-08-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5369 5370 [truetype] Prevent bytecode reuse after the interpretation error. 5371 5372 * src/truetype/ttinterp.c (free_buffer_in_size): New function to 5373 free the buffer allocated during the interpretation of this glyph. 5374 (TT_RunIns): Unset FT_Face->size->{cvt_ready,bytecode_ready} if 5375 an error occurs in the bytecode interpretation. The interpretation 5376 of invalid bytecode may break the function definitions and referring 5377 them in later interpretation is danger. By unsetting these flags, 5378 `fpgm' and `prep' tables are executed again in next interpretation. 5379 5380 This fixes Savannah bug #30798, reported by Robert Święcki. 5381 53822010-08-29 Werner Lemberg <wl@gnu.org> 5383 5384 [ftraster] Pacify compiler. 5385 5386 * src/raster/ftraster.c (ft_black_new) [_STANDALONE_]: `memory' is 5387 not used. 5388 53892010-08-29 Werner Lemberg <wl@gnu.org> 5390 5391 [cff] Allow SIDs >= 65000. 5392 5393 * src/cff/cffload.c (cff_charset_load): Fix change from 2009-03-20: 5394 The threshold for SIDs is not applicable here. I misinterpreted the 5395 `SID values 65000 and above are available for implementation use' 5396 sentence in the CFF specification. 5397 5398 Problem reported by Ivan Ninčić <inincic@pdftron.com>. 5399 54002010-08-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5401 5402 Force hinting when the font lacks its familyname. 5403 5404 In Type42 or Type11 font embedded in PostScript & PDF, TrueType sfnt 5405 stream may lack `name' table because they are not required. Hinting 5406 for nameless fonts is safer for PDFs including embedded Chinese 5407 fonts. Written by David Bevan, see: 5408 5409 https://lists.gnu.org/archive/html/freetype-devel/2010-08/msg00021.html 5410 https://lists.freedesktop.org/archives/poppler/2010-August/006310.html 5411 5412 * src/truetype/ttobjs.c (tt_check_trickyness): If a NULL pointer by 5413 nameless font is given, TRUE is returned to enable hinting. 5414 54152010-08-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5416 5417 Register yet another tricky TrueType font. 5418 5419 * src/truetype/ttobjs.c (tt_check_trickyness): Add `HuaTianKaiTi?', 5420 a Kaishu typeface paired with `HuaTianSongTi?' by Huatian 5421 Information Industry. 5422 54232010-08-17 Teijo Kinnunen <Teijo.Kinnunen@nuance.com> 5424 5425 [cache] Fix Savannah bug #30788. 5426 5427 * src/cache/ftccache.c (FTC_Cache_Clear): Check `cache->buckets' for 5428 NULL too. 5429 54302010-08-10 Werner Lemberg <wl@gnu.org> 5431 5432 Try to fix Savannah bug #30717 (and probably #30719 too). 5433 5434 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Add another 5435 overflow test for `width' and `height'. 5436 54372010-08-06 Werner Lemberg <wl@gnu.org> 5438 5439 * Version 2.4.2 released. 5440 ========================= 5441 5442 5443 Tag sources with `VER-2-4-2'. 5444 5445 * docs/CHANGES: Updated. 5446 5447 * docs/VERSION.DLL: Update documentation and bump version number to 5448 2.4.2 5449 5450 * README, Jamfile (RefDoc), 5451 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 5452 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 5453 builds/win32/visualc/freetype.dsp, 5454 builds/win32/visualc/freetype.vcproj, 5455 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 5456 builds/win32/visualce/freetype.vcproj, 5457 builds/win32/visualce/index.html, 5458 builds/wince/vc2005-ce/freetype.vcproj, 5459 builds/wince/vc2005-ce/index.html, 5460 builds/wince/vc2008-ce/freetype.vcproj, 5461 builds/wince/vc2008-ce/index.html: s/2.4.1/2.4.2/, s/241/242/. 5462 5463 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. 5464 5465 * builds/unix/configure.raw (version_info): Set to 12:0:6. 5466 54672010-08-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5468 5469 Fix Savannah bug #30648. 5470 5471 * src/base/ftobjs.c (FT_Done_Library): Specify the order of font 5472 drivers during the face closing process. Type42 faces should be 5473 closed before TrueType faces, because a Type42 face refers to 5474 another internal TrueType face which is created from sfnt[] array on 5475 the memory. 5476 54772010-08-06 Yuriy Kaminskiy <yumkam@mail.ru> 5478 5479 [raster] Fix valgrind warning. 5480 5481 * src/raster/ftraster.c (Decompose_Curve) <default>: Access point[0] 5482 only if we don't hit `limit'. 5483 54842010-08-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5485 5486 Fix Savannah bug #30658. 5487 5488 * src/base/ftobjs.c (Mac_Read_POST_Resource): Check that the total 5489 length of collected POST segments does not overrun the allocated 5490 buffer. 5491 54922010-08-06 Yuriy Kaminskiy <yumkam@mail.ru> 5493 5494 Fix conditional usage of FT_MulFix_i386. 5495 With -ansi flag, gcc does not define `i386', only `__i386__'. 5496 5497 * include/freetype/config/ftconfig.h, builds/unix/ftconfig.in: 5498 s/i386/__i386__/. 5499 55002010-08-05 Werner Lemberg <wl@gnu.org> 5501 5502 [truetype] Fix Savannah bug #30657. 5503 5504 * src/truetype/ttinterp.c (BOUNDSL): New macro. 5505 Change `BOUNDS' to `BOUNDSL' where appropriate. 5506 5507 * src/truetype/ttinterp.h (TT_ExecContextRec): Fix type of 5508 `cvtSize'. 5509 55102010-08-05 Werner Lemberg <wl@gnu.org> 5511 5512 [type42] Fix Savannah bug #30656. 5513 5514 * src/type42/t42parse.c (t42_parse_sfnts): Protect against negative 5515 string_size. 5516 Fix comparison. 5517 55182010-08-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5519 5520 [cff] Don't use any values in decoder after parsing error. 5521 5522 * src/cff/cffgload.c (cff_slot_load): Skip the evaluations 5523 of the values in decoder, if `cff_decoder_parse_charstrings' 5524 returns any error. 5525 55262010-08-04 Werner Lemberg <wl@gnu.org> 5527 5528 Fix Savannah bug #30644. 5529 5530 * src/base/ftstream.c (FT_Stream_EnterFrame): Fix comparison. 5531 55322010-08-04 Werner Lemberg <wl@gnu.org> 5533 5534 `make devel' fails if FT_CONFIG_OPTION_OLD_INTERNALS is set. 5535 5536 * devel/ftoption.h: Synchronize with 5537 include/freetype/config/ftoption.h. 5538 55392010-08-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5540 5541 [cff] Improve stack overflow test. 5542 5543 * src/cff/cffgload.c (cff_decoder_parse_charstrings): Check stack 5544 after execution of operations too. 5545 55462010-07-18 Werner Lemberg <wl@gnu.org> 5547 5548 Add reference counters and to FT_Library and FT_Face objects. 5549 5550 * include/freetype/freetype.h (FT_Reference_Face): New function. 5551 * include/freetype/ftmodapi.h (FT_Reference_Library): New function. 5552 5553 * include/freetype/internal/ftobjs.h (FT_Face_InternalRec, 5554 FT_LibraryRec): New field `refcount'. 5555 5556 * src/base/ftobjs.c (FT_Open_Face, FT_New_Library): Handle 5557 `refcount'. 5558 (FT_Reference_Face, FT_Reference_Library): Implement new functions. 5559 (FT_Done_Face, FT_Done_Library): Handle `refcount'. 5560 5561 * docs/CHANGES: Updated. 5562 55632010-07-18 Werner Lemberg <wl@gnu.org> 5564 5565 * Version 2.4.1 released. 5566 ========================= 5567 5568 5569 Tag sources with `VER-2-4-1'. 5570 5571 * docs/CHANGES: Updated. 5572 5573 * docs/VERSION.DLL: Update documentation and bump version number to 5574 2.4.1. 5575 5576 * README, Jamfile (RefDoc), 5577 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 5578 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 5579 builds/win32/visualc/freetype.dsp, 5580 builds/win32/visualc/freetype.vcproj, 5581 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 5582 builds/win32/visualce/freetype.vcproj, 5583 builds/win32/visualce/index.html, 5584 builds/wince/vc2005-ce/freetype.vcproj, 5585 builds/wince/vc2005-ce/index.html, 5586 builds/wince/vc2008-ce/freetype.vcproj, 5587 builds/wince/vc2008-ce/index.html: s/2.4.0/2.4.1/, s/240/241/. 5588 5589 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. 5590 5591 * builds/unix/configure.raw (version_info): Set to 11:1:5. 5592 55932010-07-17 Werner Lemberg <wl@gnu.org> 5594 5595 [cff] Final try to fix `hintmask' and `cntrmask' limit check. 5596 5597 Problem reported by Tobias Wolf <towolf@gmail.com>. 5598 5599 * src/cff/cffgload.c (cff_decoder_parse_charstrings) 5600 <cff_op_hintmask>: Sigh. I'm apparently too silly to fix this 5601 correctly in less than three tries. 5602 56032010-07-12 Werner Lemberg <wl@gnu.org> 5604 5605 * Version 2.4.0 released. 5606 ========================= 5607 5608 5609 Tag sources with `VER-2-4-0'. 5610 5611 * docs/CHANGES: Updated. 5612 5613 * docs/VERSION.DLL: Update documentation and bump version number to 5614 2.4.0. 5615 5616 * README, Jamfile (RefDoc), 5617 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 5618 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 5619 builds/win32/visualc/freetype.dsp, 5620 builds/win32/visualc/freetype.vcproj, 5621 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 5622 builds/win32/visualce/freetype.vcproj, 5623 builds/win32/visualce/index.html, 5624 builds/wince/vc2005-ce/freetype.vcproj, 5625 builds/wince/vc2005-ce/index.html, 5626 builds/wince/vc2008-ce/freetype.vcproj, 5627 builds/wince/vc2008-ce/index.html: s/2.3.12/2.4.0/, s/2312/240/. 5628 5629 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 4. 5630 (FREETYPE_PATCH): Set to 0. 5631 5632 * builds/unix/configure.raw (version_info): Set to 11:0:5. 5633 56342010-07-12 Werner Lemberg <wl@gnu.org> 5635 5636 Remove C++ warnings. 5637 5638 */*: Initialize pointers where necessary to make g++ happy. 5639 56402010-07-12 malc <av1474@comtv.ru> 5641 Richard Henderson <rth@redhat.com> 5642 5643 Fix type-punning issues with C++. 5644 5645 * include/freetype/internal/ftmemory.h (FT_ASSIGNP) [__cplusplus]: 5646 Emulate a `typeof' operator with an inline template which uses 5647 `static_cast'. 5648 56492010-07-11 Werner Lemberg <wl@gnu.org> 5650 5651 Fix C++ compilation issue. 5652 5653 * src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Fix 5654 type of `dot' variable. 5655 56562010-07-10 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5657 5658 Fix another case reported in Savannah bug #30373. 5659 Permit a face for Type1, Type42 and CFF without charmap, 5660 patch by Tor Andersson. 5661 5662 * src/type1/t1objs.c (T1_Face_Init): Reset the error if it 5663 is FT_Err_No_Unicode_Glyph_Name. 5664 * src/type42/t42objs.c (T42_Face_Init): Ditto. 5665 * src/cff/cffobjs.c (cff_face_init): Ditto. 5666 56672010-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5668 5669 Use defined macros to set {platform,encoding}_id. 5670 5671 * src/bdf/bdfdrivr.c: Include ttnameid.h and use macros to 5672 set charmap.{platform,encoding}_id. 5673 * src/pcf/pcfdrivr.c: Ditto. 5674 * src/winfonts/winfnt.c: Ditto. 5675 * src/type1/t1objs.c: Ditto. 5676 * src/type42/t42objs.c: Ditto. 5677 * src/cff/cffobjs.c: Ditto. 5678 * src/pfr/pfrobjs.c: Ditto. 5679 56802010-07-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5681 5682 Fix Savannah bug #30373. 5683 Too serious check of errors by `FT_CMap_New' since 2010-07-04 5684 is fixed. Reported by Tor Andersson. 5685 5686 * include/freetype/fterrdef.h 5687 (PSnames_Err_No_Unicode_Glyph_Name): New error code to 5688 indicate the Unicode charmap synthesis failed because 5689 no Unicode glyph name is found. 5690 5691 * src/psnames/psmodule.c (ps_unicodes_init): Return 5692 PSnames_Err_No_Unicode_Glyph_Name when no Unicode glyph name 5693 is found in the font. 5694 * src/cff/cffcmap.c (cff_cmap_unicode_init): Return 5695 CFF_Err_No_Unicode_Glyph_Name when no SID is available. 5696 5697 * src/type1/t1objs.c (T1_Face_Init): Proceed if `FT_CMap_New' 5698 is failed by the lack of Unicode glyph name. 5699 * src/type42/t42objs.c (T42_Face_Init): Ditto. 5700 * src/cff/cffobjs.c (cff_face_init): Ditto. 5701 57022010-07-09 Ken Sharp <ken.sharp@artifex.com> 5703 5704 Make ftraster.c compile in stand-alone mode with MSVC compiler. 5705 5706 * src/raster/ftmisc.h (FT_Int64) [_WIN32, _WIN64]: Fix typedef 5707 since there is no `inttypes.h' for MSVC. 5708 57092010-07-08 Werner Lemberg <wl@gnu.org> 5710 5711 [truetype] Fix Savannah bug #30361. 5712 5713 * src/truetype/ttinterp.c (Ins_IUP): Fix bounds check. 5714 57152010-07-06 Werner Lemberg <wl@gnu.org> 5716 5717 Pacify compiler. 5718 5719 * src/cff/cffload.c (cff_index_get_pointers): Initialize 5720 `new_bytes'. 5721 57222010-07-05 Eugene A. Shatokhin <spectre@ispras.ru> 5723 5724 Fix Savannah bug #27648. 5725 5726 * src/base/ftobjs.c (ft_remove_renderer, FT_Add_Module): Call 5727 `raster_done' only if we have an outline glyph format. 5728 57292010-07-05 Werner Lemberg <wl@gnu.org> 5730 5731 Fix Savannah bug #30030. 5732 5733 * builds/win32/*/freetype.vcproj: Add ftxf86.c. 5734 57352010-07-05 Werner Lemberg <wl@gnu.org> 5736 5737 [cff] Next try to fix `hintmask' and `cntrmask' limit check. 5738 5739 Problem reported by malc <av1474@comtv.ru>. 5740 5741 * src/cff/cffgload.c (cff_decoder_parse_charstrings) 5742 <cff_op_hintmask>: It is possible that there is just a single byte 5743 after the `hintmask' or `cntrmask', e.g., a `return' instruction. 5744 57452010-07-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5746 5747 Restrict the number of the charmaps in a rogue-compatible mode. 5748 Fix for Savannah bug #30059. 5749 5750 * src/cache/ftccmap.c (FTC_CMapCache_Lookup): Replace `16' the 5751 minimum character code passed by a legacy rogue client by... 5752 * include/freetype/config/ftoption.h (FT_MAX_CHARMAP_CACHEABLE): 5753 This. It is undefined when FT_CONFIG_OPTION_OLD_INTERNALS is 5754 undefined (thus the rogue client compatibility is not required). 5755 5756 * src/cff/cffobjs.c (cff_face_init): Abort the automatic 5757 selection or synthesis of Unicode cmap subtable when the charmap 5758 index exceeds FT_MAX_CHARMAP_CACHEABLE. 5759 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Issue error message 5760 when the charmap index exceeds FT_MAX_CHARMAP_CACHEABLE. 5761 5762 * src/base/ftobjs.c (find_unicode_charmap): When Unicode charmap 5763 is found after FT_MAX_CHARMAP_CACHEABLE, ignore it and search 5764 earlier one. 5765 (find_variant_selector_charmap): When UVS charmap is found after 5766 FT_MAX_CHARMAP_CACHEABLE, ignore it and search earlier one. 5767 (FT_Select_Charmap): When a charmap matching with requested 5768 encoding but after FT_MAX_CHARMAP_CACHEABLE, ignore and search 5769 earlier one. 5770 (FT_Set_Charmap): When a charmap matching with requested 5771 charmap but after FT_MAX_CHARMAP_CACHEABLE, ignore and search 5772 earlier one. 5773 (FT_Get_Charmap_Index): When a requested charmap is found 5774 after FT_MAX_CHARMAP_CACHEABLE, return the inverted charmap 5775 index. 5776 57772010-07-04 Werner Lemberg <wl@gnu.org> 5778 5779 TrueType hinting is no longer patented. 5780 5781 * include/freetype/config/ftoption.h, devel/ftoption.h 5782 (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define. 5783 (TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine. 5784 5785 * docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated. 5786 * docs/TRUETYPE, docs/PATENTS: Removed. 5787 57882010-07-04 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5789 5790 Check error value by `FT_CMap_New'. 5791 5792 * src/cff/cffobjs.c (cff_face_init): Check error value by 5793 `FT_CMap_New'. 5794 * src/pfr/pfrobjs.c (pfr_face_init): Ditto. 5795 * src/type1/t1objs.c (T1_Face_Init): Ditto. 5796 * src/type42/t42objs.c (T42_Face_Init): Ditto. 5797 57982010-07-03 Werner Lemberg <wl@gnu.org> 5799 5800 Make ftgrays.c compile stand-alone again. 5801 5802 * src/smooth/ftgrays.c [_STANDALONE_]: Include `stddef.h'. 5803 (FT_INT_MAX, FT_PtrDist)[_STANDALONE_]: Define. 5804 58052010-07-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5806 5807 Additional fix for Savannah bug #30306. 5808 5809 * src/base/ftobjs.c (Mac_Read_POST_Resource): If the type of the 5810 POST fragment is 0, the segment is completely ignored. The declared 5811 length of the segment is not cared at all. According to Adobe 5812 Technical Note 5040, type 0 segment is a comment only and should not 5813 be loaded for the interpreter. Reported by Robert Święcki. 5814 58152010-07-01 Werner Lemberg <wl@gnu.org> 5816 5817 [truetype] Protect against code range underflow. 5818 5819 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF): Don't allow 5820 negative IP values. 5821 58222010-07-01 Werner Lemberg <wl@gnu.org> 5823 5824 [truetype] Add rudimentary tracing for bytecode instructions. 5825 5826 * src/truetype/ttinterp.c (opcode_name) [FT_DEBUG_LEVEL_TRACE]: New 5827 array. 5828 (TT_RunIns): Trace opcodes. 5829 58302010-06-30 Werner Lemberg <wl@gnu.org> 5831 5832 [smooth] Fix Savannah bug #30263. 5833 5834 * src/smooth/ftgrays.c (gray_render_span): Use cast to `unsigned 5835 int' to avoid integer overflow. 5836 5837 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Use smaller 5838 threshold values for `width' and `height'. This is not directly 5839 related to the bug fix but makes sense anyway. 5840 58412010-07-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5842 5843 Initial fix for Savannah bug #30306. 5844 5845 * src/base/ftobjs.c (Mac_Read_POST_Resource): Check `rlen', the 5846 length of fragment declared in the POST fragment header, and prevent 5847 an underflow in length calculation. Some fonts set the length to 5848 zero in spite of the existence of a following 16bit `type'. 5849 Reported by Robert Święcki. 5850 58512010-07-01 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5852 5853 Additional fix for Savannah bug #30248 and #30249. 5854 5855 * src/base/ftobjs.c (Mac_Read_POST_Resource): Check the buffer size 5856 during gathering PFB fragments embedded in LaserWriter PS font for 5857 Macintosh. Reported by Robert Święcki. 5858 58592010-06-30 Alexei Podtelezhnikov <apodtele@gmail.com> 5860 5861 Minor optimizations by avoiding divisions. 5862 5863 * src/sfnt/ttkern.c (tt_face_load_kern, tt_face_get_kerning): 5864 Replace divisions with multiplication in comparisons. 5865 58662010-06-29 Werner Lemberg <wl@gnu.org> 5867 5868 Fix minor tracing issues. 5869 5870 * src/cff/cffgload.c, src/truetype/ttgload.c: Adjust tracing levels. 5871 58722010-06-27 Werner Lemberg <wl@gnu.org> 5873 5874 [cff] Really fix `hintmask' and `cntrmask' limit check. 5875 5876 * src/cff/cffgload.c (cff_decoder_parse_charstrings) 5877 <cff_op_hintmask>: Fix thinko and handle tracing also. 5878 58792010-06-27 Werner Lemberg <wl@gnu.org> 5880 5881 Fix valgrind warning. 5882 5883 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Initialize 5884 `result' array. 5885 58862010-06-27 Werner Lemberg <wl@gnu.org> 5887 5888 [cff] Fix memory leak. 5889 5890 * src/cff/cffgload.c (cff_operator_seac): Free charstrings even in 5891 case of errors. 5892 58932010-06-27 Werner Lemberg <wl@gnu.org> 5894 5895 [cff] Protect against invalid `hintmask' and `cntrmask' operators. 5896 5897 * src/cff/cffgload.c (cff_decoder_parse_charstrings) 5898 <cff_op_hintmask>: Ensure that we don't exceed `limit' while parsing 5899 the bit masks of the `hintmask' and `cntrmask' operators. 5900 59012010-06-26 Werner Lemberg <wl@gnu.org> 5902 5903 Fix PFR change 2010-06-24. 5904 5905 * src/pfr/pfrgload.c (pfr_glyph_load_simple): Really protect against 5906 invalid indices. 5907 59082010-06-26 Werner Lemberg <wl@gnu.org> 5909 5910 Improve PFR tracing messages. 5911 5912 * src/pfr/pfrgload.c (pfr_glyph_load_rec): Emit tracing messages for 5913 simple and compound glyph offsets. 5914 59152010-06-26 Werner Lemberg <wl@gnu.org> 5916 5917 Fix last PFR change. 5918 5919 * src/pfr/pfrobjs.c (pfr_face_init): Fix rejection logic. 5920 59212010-06-26 Werner Lemberg <wl@gnu.org> 5922 5923 [sfnt] Fix Savannah bug #30262. 5924 5925 * src/sfnt/ttload.c (tt_face_load_maxp): Limit `maxComponentDepth' 5926 arbitrarily to 100 to avoid stack exhaustion. 5927 59282010-06-26 Werner Lemberg <wl@gnu.org> 5929 5930 Add some memory checks (mainly for debugging). 5931 5932 * src/base/ftstream.c (FT_Stream_EnterFrame): Exit with error 5933 if the frame size is larger than the stream size. 5934 5935 * src/base/ftsystem.c (ft_ansi_stream_io): Exit with error if 5936 seeking a position larger than the stream size. 5937 59382010-06-25 Werner Lemberg <wl@gnu.org> 5939 5940 [pfr] Fix Savannah bug #30261. 5941 5942 * src/pfr/pfrobjs.c (pfr_face_init): Reject fonts which contain 5943 neither outline nor bitmap glyphs. 5944 59452010-06-25 Werner Lemberg <wl@gnu.org> 5946 5947 [cff] Fix Savannah bug #30254. 5948 5949 * src/cff/cffload.c (cff_index_get_pointers): Do sanity check for 5950 first offset also. 5951 59522010-06-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 5953 5954 Initial fix for Savannah bug #30248 and #30249. 5955 5956 * src/base/ftobjs.c (Mac_Read_POST_Resource): Check the error during 5957 reading a PFB fragment embedded in LaserWriter PS font for Macintosh. 5958 Reported by Robert Święcki. 5959 59602010-06-24 Werner Lemberg <wl@gnu.org> 5961 5962 [pcf] Fix Savannah bug #30247. 5963 5964 * src/pcf/pcfread.c (pcf_get_metrics): Disallow (invalid) fonts with 5965 zero metrics. 5966 59672010-06-24 Graham Asher <graham.asher@btinternet.com> 5968 5969 * src/smooth/ftgrays.c (gray_render_cubic): Fix algorithm. 5970 The previous version was too aggressive, as demonstrated in 5971 https://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00020.html. 5972 59732010-06-24 Werner Lemberg <wl@gnu.org> 5974 5975 */*: Use module specific error names where appropriate. 5976 59772010-06-24 Werner Lemberg <wl@gnu.org> 5978 5979 [sfnt] Fix Savannah bug #30236. 5980 5981 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Improve check for pointer 5982 to `cmap_table'. 5983 59842010-06-24 Werner Lemberg <wl@gnu.org> 5985 5986 [pfr] Fix Savannah bug #30235. 5987 5988 * src/pfr/pfrgload.c (pfr_glyph_load_simple): Protect against 5989 invalid indices if there aren't any coordinates for indexing. 5990 59912010-06-24 Werner Lemberg <wl@gnu.org> 5992 5993 [bdf]: Font properties are optional. 5994 5995 * src/bdf/bdflib.c (_bdf_readstream): Use special error code to 5996 indicate a redo operation. 5997 (_bdf_parse_start): Handle `CHARS' keyword here too and pass current 5998 input line to `_bdf_parse_glyph'. 5999 60002010-06-23 Werner Lemberg <wl@gnu.org> 6001 6002 [bdf] Fix Savannah bug #30220. 6003 6004 * include/freetype/fterrdef.h 6005 (BDF_Err_Missing_Fontboundingbox_Field): New error code. 6006 6007 * src/bdf/bdflib.c (_bdf_parse_start): Check for missing 6008 `FONTBOUNDINGBOX' field. 6009 Avoid memory leak if there are multiple `FONT' lines (which is 6010 invalid but doesn't hurt). 6011 60122010-06-21 Werner Lemberg <wl@gnu.org> 6013 6014 [pfr] Fix Savannah bug #30168. 6015 6016 * src/pfr/pfrgload.c (pfr_glyph_load_compound): Limit the number of 6017 subglyphs to avoid endless recursion. 6018 60192010-06-20 Werner Lemberg <wl@gnu.org> 6020 6021 [psaux] Fix Savannah bug #30145. 6022 6023 * src/psaux/psobjs.c (t1_builder_add_contour): Protect against 6024 `outline == NULL' which might happen in invalid fonts. 6025 60262010-06-19 Werner Lemberg <wl@gnu.org> 6027 6028 [bdf] Fix Savannah bug #30135. 6029 6030 * src/bdf/bdflib.c (_bdf_list_join): Don't modify value in static 6031 string `empty'. 6032 (_bdf_parse_glyph): Avoid memory leak in case of error. 6033 60342010-06-15 Werner Lemberg <wl@gnu.org> 6035 6036 [autofit] Fix Savannah bug #30108. 6037 6038 * src/autofit/afglobal.c (af_face_globals_compute_script_coverage): 6039 Properly mask AF_DIGIT bit in comparison. 6040 60412010-06-11 Werner Lemberg <wl@gnu.org> 6042 6043 [pshinter] Fix Savannah bug #30106. 6044 6045 Point numbers for FreeType's implementation of hinting masks are 6046 collected before the final number of points of a glyph has been 6047 determined; in particular, the code for handling the `endchar' 6048 opcode can reduce the number of points. 6049 6050 * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Assure that 6051 `end_point' is not larger than `glyph->num_points'. 6052 60532010-06-11 Werner Lemberg <wl@gnu.org> 6054 6055 [cff]: Improve debugging output. 6056 6057 * src/cff/cffgload.c (cff_decoder_parse_charstrings) 6058 <cff_op_hintmask>: Implement it. 6059 60602010-06-10 Graham Asher <graham.asher@btinternet.com> 6061 6062 ftgrays: Speed up rendering of small cubic splines. 6063 6064 * src/smooth/ftgrays.c (gray_render_cubic): Implement new, 6065 simplified algorithm to find out whether the spline can be replaced 6066 with two straight lines. See this thread for more: 6067 6068 https://lists.gnu.org/archive/html/freetype-devel/2010-06/msg00000.html 6069 60702010-06-09 Werner Lemberg <wl@gnu.org> 6071 6072 [cff] Fix Savannah bug #30082. 6073 6074 * src/cff/cffgload.c (cff_decoder_parse_charstrings) 6075 <cff_op_callothersubr>: Protect against stack underflow. 6076 60772010-06-08 Werner Lemberg <wl@gnu.org> 6078 6079 [cff] Fix Savannah bug #30053. 6080 6081 * src/cff/cffparse.c (cff_parse_real): Handle border case where 6082 `fraction_length' has value 10. 6083 60842010-06-07 Werner Lemberg <wl@gnu.org> 6085 6086 Fix Savannah bug #30052. 6087 This bug has been introduced with commit 2415cbf3. 6088 6089 * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Protect 6090 against endless loop in case of corrupted font header data. 6091 60922010-05-26 Werner Lemberg <wl@gnu.org> 6093 6094 Remove unused variable. 6095 Found by Graham. 6096 6097 * src/autofit/afhints.c (af_glyph_hints_reload): Remove unused 6098 variable `first' in first block. 6099 61002010-05-22 Werner Lemberg <wl@gnu.org> 6101 6102 Fix various memory problems found by linuxtesting.org. 6103 6104 * src/base/ftgxval.c (FT_TrueTypeGX_Free, FT_ClassicKern_Free), 6105 src/base/ftotval.c (FT_OpenType_Free), src/base/ftpfr.c 6106 (ft_pfr_check): Check `face'. 6107 6108 * src/base/ftobjs.c (FT_Get_Charmap_Index): Check `charmap' and 6109 `charmap->face'. 6110 (FT_Render_Glyph): Check `slot->face'. 6111 (FT_Get_SubGlyph_Info): Check `glyph->subglyphs'. 6112 61132010-05-22 Werner Lemberg <wl@gnu.org> 6114 6115 autofit: Remove dead code. 6116 Suggested by Graham. 6117 6118 * src/autofit/afhints.c (af_glyph_hints_compute_inflections): 6119 Removed. 6120 (af_glyph_hints_reload): Remove third argument. 6121 Update all callers. 6122 61232010-05-21 Bram Tassyns <bramt@enfocus.be> 6124 6125 [cff] Fix Savannah bug #27987. 6126 6127 * src/cff/cffobjs.c (remove_subset_prefix): New function. 6128 (cff_face_init): Use it to adjust `cffface->family_name'. 6129 61302010-05-20 Werner Lemberg <wl@gnu.org> 6131 6132 TrueType: Make FreeType ignore maxSizeOfInstructions in `maxp'. 6133 6134 Acroread does the same. 6135 6136 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Call 6137 `Update_Max' to adjust size of instructions array if necessary and 6138 add a rough safety check. 6139 6140 (load_truetype_glyph): Save `loader->byte_len' before recursive 6141 call. 6142 6143 * src/truetype/ttinterp.h, src/truetype/ttinterp.c (Update_Max): 6144 Declare it as FT_LOCAL. 6145 61462010-05-18 Hongbo Ni <hongbo@njstar.com> 6147 6148 Apply Savannah patch #7196. 6149 6150 * src/cff/cffgload.c (cff_slot_load): Prevent crash if CFF subfont 6151 index is out of range. 6152 61532010-05-11 Werner Lemberg <wl@gnu.org> 6154 6155 * docs/formats.txt: Give pointer to PCF documentation. 6156 Information provided by Alan Coopersmith 6157 <alan.coopersmith@oracle.com>. 6158 61592010-05-10 Ken Sharp <ken.sharp@artifex.com> 6160 6161 [psaux] Fix Savannah bug #29846. 6162 6163 Previously we discovered fonts which used `setcurrentpoint' to set 6164 the initial point of a contour to 0,0. This caused FreeType to 6165 raise an error, because the `setcurrentpoint' operator is only 6166 supposed to be used with the results from an OtherSubr subroutine. 6167 6168 This was fixed by simply ignoring the error and carrying on. 6169 6170 Now we have found a font which uses setcurrentpoint to actually 6171 establish a non-zero point for a contour during the course of a 6172 glyph program. FWIW, these files may be produced by an application 6173 called `Intaglio' on the Mac, when converting TrueType fonts to 6174 Type 1. 6175 6176 The fix allows the new invalid behaviour, the old invalid behaviour 6177 and real proper usage of the operator to work the same way as Adobe 6178 interpreters apparently do. 6179 6180 * src/psaux/t1decode.c (t1_decoder_parse_charstrings): Make 6181 `setcurrentpoint' use the top two elements of the stack to establish 6182 unconditionally the current x and y coordinates. 6183 6184 Make the `flex' subroutine handling (OtherSubr 0) put the current 6185 x,y coordinates onto the stack, instead of two dummy uninitialised 6186 values. 6187 61882010-04-14 Ken Sharp <ken.sharp@artifex.com> 6189 6190 [psaux] Fix Savannah bug #29444. 6191 6192 * src/psaux/psobjs.c (t1_builder_start_point): Accept (invalid) 6193 `lineto' immediately after `hsbw', in accordance with Acrobat, GS, 6194 and others. 6195 61962010-04-14 Michał Cichoń <thedmd@artifexmundi.com> 6197 6198 [psaux] Fix Savannah bug #27999. 6199 6200 * src/cache/ftcmanag.c (FTC_Manager_RemoveFaceID): Only remove 6201 selected entry, not all. 6202 62032010-04-06 Jonathan Kew <jfkthame@gmail.com> 6204 6205 [truetype] Add overflow check to `fvar' table. 6206 6207 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Check axis and instance 6208 count. 6209 62102010-04-05 Ken Sharp <ken.sharp@artifex.com> 6211 6212 [raster] Fix Savannah bug #29335. 6213 6214 * src/raster/ftraster.c (Line_Up): Use slow multiplication to 6215 prevent overflow. This shouldn't have any serious impact on speed, 6216 however. 6217 62182010-04-05 Werner Lemberg <wl@gnu.org> 6219 6220 Add new function `FT_Library_SetLcdFilterWeights'. 6221 6222 This is based on code written by Lifter 6223 <https://unixforum.org/index.php?showuser=11691>. It fixes 6224 FreeDesktop bug #27386. 6225 6226 * src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): New 6227 function. 6228 6229 * include/freetype/ftlcdfil.h: Updated. 6230 6231 * docs/CHANGES: Updated. 6232 62332010-04-01 John Tytgat <John.Tytgat@esko.com> 6234 6235 [truetype] Fix Savannah bug #29404. 6236 6237 * src/truetype/ttgload.c: Revert change 2752bd1a (check on bit 1 6238 of `head' table of TrueType fonts). 6239 62402010-03-14 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6241 6242 Fix `multi build' for Tytgat's CFF driver improvement. 6243 6244 * src/base/cffload.h (cff_index_get_name): Added. 6245 62462010-03-12 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 6247 6248 Remove duplicated inclusion of `FT_OUTLINE_H' in ftobjs.c. 6249 6250 * src/base/ftobjs.c: Remove 2nd inclusion of `FT_OUTLINE_H'. 6251 62522010-03-11 Chris Liddell <chris.liddell@artifex.com> 6253 6254 [raster] Fix Savannah bug #27442. 6255 6256 * src/raster/ftraster.c (ft_black_reset): Fix `buffer_size'. 6257 62582010-03-09 Werner Lemberg <wl@gnu.org> 6259 6260 [cff] Remove unused variable. 6261 Reported by Graham. 6262 6263 * src/cff/cffparse.c (cff_parse_real): Remove `rest'. 6264 62652010-03-02 John Tytgat <John.Tytgat@esko.com> 6266 6267 [cff] Improve CFF string (especially glyphname) lookup performance. 6268 6269 We do this by avoiding memory allocation and file I/O. This is 6270 Savannah patch #7104. 6271 6272 * src/cff/cfftypes.h: Include PS cmaps service and 6273 FT_INTERNAL_POSTSCRIPT_HINTS_H. 6274 (CFF_SubFontRec): Remove `num_local_subrs'. 6275 (CFF_FontRec): Add `num_strings', `strings', and `string_pool' 6276 fields. 6277 Remove `string_index' and `num_global_subrs' fields. 6278 Use real types instead of `void' for `pshinter' and `psnames' fields. 6279 6280 * src/cff/cffload.c: Don't include PS cmaps service. 6281 (cff_index_get_pointers): Add `pool' parameter which allows inserting 6282 an extra NUL character for each String INDEX entry. 6283 (cff_index_get_name): Make it a local function. 6284 (cff_index_get_string): New function. 6285 (cff_subfont_load): Updated. 6286 (cff_font_load): Initialize `num_strings', `strings', and 6287 `string_pool' fields in the `CFF_FontRec' structure. 6288 (cff_index_get_sid_string): Use `cff_index_get_string' instead of 6289 `cff_index_get_name'. 6290 (cff_font_done): Updated. 6291 6292 * src/cff/cffload.h: Don't include PS cmaps service. 6293 (cff_index_get_string): Added. 6294 (cff_index_get_sid_string): Updated. 6295 6296 * src/cff/cffobjs.c: Don't include PS cmaps service and 6297 FT_INTERNAL_POSTSCRIPT_HINTS_H. 6298 (cff_size_get_globals_funcs, cff_slot_init): Updated. 6299 (cff_face_init): Follow `cff_index_get_name', 6300 `cff_index_get_string', and `cff_index_get_sid_string' changes. 6301 6302 * src/cff/cffcmap.c (cff_sid_free_glyph_name): Removed. 6303 (cff_sid_to_glyph_name): Use `cff_index_get_cid_string'. 6304 (cff_cmap_unicode_init): Updated. 6305 6306 * src/cff/cffdrivr.c: Don't include PS cmap service. 6307 (cff_get_glyph_name): Avoid unnecessary lookup for POSTSCRIPT_CMAPS 6308 service. 6309 (cff_get_glyph_name, cff_ps_get_font_info, cff_get_ros): Follow API 6310 `cff_index_get_sid_string' change. 6311 (cff_get_name_index): Use `cff_index_get_string' instead of 6312 `cff_index_get_name'. 6313 6314 * src/cff/cffgload.c: Don't include FT_INTERNAL_POSTSCRIPT_HINTS_H. 6315 (cff_decoder_init, cff_decoder_prepare): Updated. 6316 63172010-02-27 Werner Lemberg <wl@gnu.org> 6318 6319 Simplify code. 6320 Suggested by Behdad. 6321 6322 * src/base/ftobjs.c (FT_Get_First_Char): Don't use a loop since we 6323 call FT_Get_Next_Char anyway if necessary. 6324 63252010-02-26 Behdad Esfahbod <behdad@behdad.org> 6326 6327 Improve handling of invalid glyph indices in char->index functions. 6328 6329 * src/base/ftobjs.c (FT_Get_First_Char, FT_Get_Next_Char): Use a 6330 loop. 6331 63322010-02-18 Chris Liddell <chris.liddell@artifex.com> 6333 6334 [truetype] Fix Savannah bug #28905. 6335 6336 Initialize phantom points before calling the incremental interface 6337 to update glyph metrics. 6338 6339 * src/truetype/ttgload.c (tt_get_metrics_incr_overrides) 6340 [FT_CONFIG_OPTION_INCREMENTAL]: New function, split off from... 6341 (tt_get_metrics): This. 6342 Updated. 6343 (load_truetype_glyph): Use tt_get_metrics_incr_overrides. 6344 6345---------------------------------------------------------------------------- 6346 6347Copyright (C) 2010-2022 by 6348David Turner, Robert Wilhelm, and Werner Lemberg. 6349 6350This file is part of the FreeType project, and may only be used, modified, 6351and distributed under the terms of the FreeType project license, 6352LICENSE.TXT. By continuing to use, modify, or distribute this file you 6353indicate that you have read the license and understand and accept it 6354fully. 6355 6356 6357Local Variables: 6358version-control: never 6359coding: utf-8 6360End: 6361