12014-12-30 Werner Lemberg <wl@gnu.org> 2 3 * Version 2.5.5 released. 4 ========================= 5 6 7 Tag sources with `VER-2-5-5'. 8 9 * docs/VERSION.DLL: Update documentation and bump version number to 10 2.5.5. 11 12 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, 13 builds/windows/vc2005/index.html, 14 builds/windows/vc2008/freetype.vcproj, 15 builds/windows/vc2008/index.html, 16 builds/windows/vc2010/freetype.vcxproj, 17 builds/windows/vc2010/index.html, 18 builds/windows/visualc/freetype.dsp, 19 builds/windows/visualc/freetype.vcproj, 20 builds/windows/visualc/index.html, 21 builds/windows/visualce/freetype.dsp, 22 builds/windows/visualce/freetype.vcproj, 23 builds/windows/visualce/index.html, 24 builds/wince/vc2005-ce/freetype.vcproj, 25 builds/wince/vc2005-ce/index.html, 26 builds/wince/vc2008-ce/freetype.vcproj, 27 builds/wince/vc2008-ce/index.html: s/2.5.4/2.5.5/, s/254/255/. 28 29 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5. 30 31 * builds/unix/configure.raw (version_info): Set to 17:4:11. 32 * CMakeLists.txt (VERSION_PATCH): Set to 5. 33 * docs/CHANGES: Updated. 34 35 * builds/toplevel.mk (dist): Fix typos. 36 372014-12-24 Alexei Podtelezhnikov <apodtele@gmail.com> 38 39 [base] Formatting and nanooptimizations. 40 41 * src/base/ftcalc.c, 42 * src/base/fttrigon.c: Revise sign restoration. 43 442014-12-13 Werner Lemberg <wl@gnu.org> 45 46 * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08. 47 482014-12-11 Werner Lemberg <wl@gnu.org> 49 50 * builds/toplevel.mk (dist): Use older POSIX standard for `tar'. 51 52 Apparently, BSD tar isn't capable yet of handling POSIX-1.2001 53 (contrary to GNU tar), so force the POSIX-1.1988 format. 54 55 Problem reported by Stephen Fisher <sfisher@SDF.ORG>. 56 572014-12-11 Werner Lemberg <wl@gnu.org> 58 59 * src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size. 60 612014-12-11 Werner Lemberg <wl@gnu.org> 62 63 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check. 64 65 Problem reported by Dennis Felsing <dennis@felsin9.de>. 66 672014-12-11 Werner Lemberg <wl@gnu.org> 68 69 * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'. 70 71 Problem reported by Dennis Felsing <dennis@felsin9.de>. 72 732014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 74 75 [gxvalid] Fix a naming convention conflicting with ftvalid. 76 77 See previous changeset for otvalid. 78 79 * src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace 80 `valid' by `gxvalid'. 81 * src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c, 82 gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c, 83 gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c, 84 gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c, 85 gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if 86 it is typed as GXV_Validator. 87 882014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 89 90 [otvalid] Fix a naming convention conflicting with ftvalid. 91 92 Some prototypes in ftvalid.h use `valid' for the variables 93 typed as FT_Validator. Their implementations in src/base/ 94 ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar. 95 96 Some macros in otvcommn.h assume the exist of the variable 97 `valid' typed as OTV_Validator in the caller. 98 99 Mixing these two conventions cause invalid pointer conversion 100 and unexpected SEGV in longjmp. To prevent it, all variables 101 typed as OTV_Validator are renamed to `otvalid'. 102 103 * src/otvalid/otvcommn.h: Replace `valid' by `otvalid'. 104 * src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c, 105 otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid' 106 if it is typed as OTV_Validator. 107 1082014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 109 110 [ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros. 111 112 Original patch is designed by Werner Lemberg. Extra part 113 for otvalid and gxvalid are added by suzuki toshiya, see 114 discussion: 115 https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html 116 https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html 117 118 * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_(). 119 * src/gxvalid/gxvcommn.h: Ditto. 120 * src/otvalid/otvcommn.h: Ditto. 121 1222014-12-08 Werner Lemberg <wl@gnu.org> 123 124 [pcf] Fix Savannah bug #43774. 125 126 Work around `features' of X11's `pcfWriteFont' and `pcfReadFont' 127 functions. Since the PCF format doesn't have an official 128 specification, we have to exactly follow these functions' behaviour. 129 130 The problem was unveiled with a patch from 2014-11-06, fixing issue 131 #43547. 132 133 * src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last 134 element. Instead, assign real size. 135 1362014-12-07 Werner Lemberg <wl@gnu.org> 137 138 Work around a bug in Borland's C++ compiler. 139 140 See 141 142 http://qc.embarcadero.com/wc/qcmain.aspx?d=118998 143 144 for Borland's bug tracker entry. 145 146 Reported by Yuliana Zigangirova <zigangirova@inbox.ru>, 147 https://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html. 148 149 * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c 150 (gray_TWorker_): Move `ft_jmp_buf' field to be the first element. 151 1522014-12-07 Werner Lemberg <wl@gnu.org> 153 154 */*: Decorate hex constants with `U' and `L' where appropriate. 155 1562014-12-07 Werner Lemberg <wl@gnu.org> 157 158 [truetype] Prevent memory leak for buggy fonts. 159 160 * src/truetype/ttobjs.c (tt_size_done): Unconditionally call 161 `tt_size_done_bytecode'. 162 1632014-12-06 Werner Lemberg <wl@gnu.org> 164 165 * Version 2.5.4 released. 166 ========================= 167 168 169 Tag sources with `VER-2-5-4'. 170 171 * docs/VERSION.DLL: Update documentation and bump version number to 172 2.5.4. 173 174 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, 175 builds/windows/vc2005/index.html, 176 builds/windows/vc2008/freetype.vcproj, 177 builds/windows/vc2008/index.html, 178 builds/windows/vc2010/freetype.vcxproj, 179 builds/windows/vc2010/index.html, 180 builds/windows/visualc/freetype.dsp, 181 builds/windows/visualc/freetype.vcproj, 182 builds/windows/visualc/index.html, 183 builds/windows/visualce/freetype.dsp, 184 builds/windows/visualce/freetype.vcproj, 185 builds/windows/visualce/index.html, 186 builds/wince/vc2005-ce/freetype.vcproj, 187 builds/wince/vc2005-ce/index.html, 188 builds/wince/vc2008-ce/freetype.vcproj, 189 builds/wince/vc2008-ce/index.html: s/2.5.3/2.5.4/, s/253/254/. 190 191 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4. 192 193 * builds/unix/configure.raw (version_info): Set to 17:3:11. 194 * CMakeLists.txt (VERSION_PATCH): Set to 4. 195 * docs/CHANGES: Updated. 196 1972014-12-04 Werner Lemberg <wl@gnu.org> 198 199 docs/CHANGES: Updated, formatted. 200 2012014-12-04 Dave Arnold <darnold@adobe.com> 202 203 [cff] Modify an FT_ASSERT. 204 205 * src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah 206 bug #43661, the test font `...aspartam.otf' still triggers an 207 FT_ASSERT. Since hintmap still works with count==0, ... 208 (cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to 209 suppress the assert. 210 2112014-12-04 Dave Arnold <darnold@adobe.com> 212 213 [cff] Fix Savannah bug #43661. 214 215 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM, 216 cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after 217 hintmask is constructed. 218 219 * src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to 220 avoid reading past end of hintmask. 221 2222014-12-03 Werner Lemberg <wl@gnu.org> 223 224 docs/CHANGES: Updated. 225 2262014-12-03 Werner Lemberg <wl@gnu.org> 227 228 [autofit] Better fix for conversion specifiers in debug messages. 229 230 Using `%ld' for pointer differences causes warnings on 32bit 231 platforms. The correct type would be (the relatively new) `%td', 232 however, this is missing on some important platforms. 233 234 This patch improves the change from 2014-11-28. 235 236 * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast. Our 237 pointer differences are always sufficiently small. 238 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, 239 af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'. 240 2412014-12-03 Werner Lemberg <wl@gnu.org> 242 243 FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality. 244 245 All public FreeType enumeration and flag values are uppercase... 246 247 * include/tttables.h (FT_Sfnt_Tag): Implement it. For backward 248 compatibility, retain the old values as macros. 249 250 * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c 251 (get_sfnt_table): Updated. 252 2532014-12-02 Werner Lemberg <wl@gnu.org> 254 255 * include/*: Improve structure of documentation. 256 257 . Add and update many `<Order>' tags. 258 . Apply various documentation fixes. 259 . Remove details to deprecated (or never implemented) data. 260 2612014-12-02 Werner Lemberg <wl@gnu.org> 262 263 [docmaker] Always handle `<Order>' section elements. 264 265 Previously, those elements were handled only for sections present in 266 a `<Sections>' chapter element. 267 268 * src/tools/docmaker/content.py (ContentProcessor::finish): 269 Implement it. 270 2712014-12-02 Werner Lemberg <wl@gnu.org> 272 273 [docmaker] Properly handle empty rows in Synopsis. 274 275 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit 276 ` ' for empty fields. 277 2782014-12-02 Werner Lemberg <wl@gnu.org> 279 280 [docmaker] Thinko. 281 282 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all): 283 Emit `/empty/' string for first element also. 284 2852014-12-02 Werner Lemberg <wl@gnu.org> 286 287 [docmaker] Honour empty lines in `<Order>' section element. 288 289 This greatly improves the readability of the `Synopsis' links. 290 291 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all): 292 Insert string `/empty/' between items. 293 294 * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it 295 robust against nonexistent keys. 296 297 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit 298 empty <td> elements for `/empty/'. 299 3002014-12-02 Werner Lemberg <wl@gnu.org> 301 302 [docmaker] Ensure Python 3 compatibility. 303 304 * src/tools/docmaker/content.py (ContentProcessor::set_section, 305 ContentProcessor::finish): Replace `has_key' function with `in' 306 keyword. 307 308 * src/tools/docmaker/formatter.py (Formatter::__init__): Replace 309 sorting function with a key generator. 310 (Formatter::add_identifier): Replace `has_key' function with `in' 311 keyword. 312 313 * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote): 314 Replace `has_key' function with `in' keyword. 315 (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use 316 integer division. 317 s/<>/>/. 318 319 * src/tools/docmaker/utils.py: Import `itertools'. 320 (index_sort): Replaced by... 321 (index_key): ... this new key generator (doing exactly the same). 322 3232014-11-29 Werner Lemberg <wl@gnu.org> 324 325 [docmaker] Don't output a block multiple times. 326 327 This bug was hidden by not processing all lines of `<Order>' blocks. 328 329 * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter 330 out field names. 331 3322014-11-29 Werner Lemberg <wl@gnu.org> 333 334 [docmaker] Use field values as HTML link targets where possible. 335 336 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url): 337 Accept second, optional argument to specify a name. 338 (HtmlFormatter::html_source_quote): Link to field ID if possible. 339 (HtmlFormatter::print_html_field_list): Emit `id' attribute. 340 3412014-11-29 Werner Lemberg <wl@gnu.org> 342 343 [docmaker] Allow empty lines in `<Order>' blocks. 344 345 Before this patch, the suggested order of entries stopped at the 346 first empty line. 347 348 Obviously, nobody noticed that this problem caused a much reduced 349 set of links in the `Synopsis' sections; in particular, the 350 `<Order>' blocks contain a lot of entries that wouldn't be listed 351 otherwise... 352 353 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all): 354 New function to iterate over all items. 355 (DocSection::process): Use it. 356 3572014-11-29 Werner Lemberg <wl@gnu.org> 358 359 * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp. 360 361 After the single asterisk there must be no other immediately following 362 asterisk. 363 3642014-11-29 Werner Lemberg <wl@gnu.org> 365 366 * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing. 367 3682014-11-29 Werner Lemberg <wl@gnu.org> 369 370 [docmaker] Improve HTML code for table of contents. 371 372 * src/tools/docmaker/tohtml.py: Introduce a new table class `toc', 373 together with proper CSS. 374 3752014-11-29 Werner Lemberg <wl@gnu.org> 376 377 [docmaker] Provide higher-level markup and simplify HTML. 378 379 * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>' 380 elements, use CSS descendants (of class `section') to format the 381 data. 382 383 Also remove redundant <p> and <br> elements, replacing them with 384 proper CSS. 385 386 Globally reduce page width to 75%. 387 388 (block_header): Rename <div> class to `section'. 389 3902014-11-29 Werner Lemberg <wl@gnu.org> 391 392 [docmaker] Add `top' links after blocks. 393 394 * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it. 395 3962014-11-29 Werner Lemberg <wl@gnu.org> 397 398 * src/tools/docmaker/tohtml.py: Improve CSS for fields. 399 400 Make fields align horizontally relative to full line width. 401 4022014-11-29 Werner Lemberg <wl@gnu.org> 403 404 * src/tools/docmaker/tohtml.py: Fix index and TOC templates. 405 406 This thinko was introduced 2014-11-27. 407 4082014-11-28 Werner Lemberg <wl@gnu.org> 409 410 [docmaker] Format field lists with CSS. 411 412 This also simplifies the inserted HTML code. 413 414 * src/tools/docmaker/tohtml.py 415 (HtmlFormatter::print_html_field_list): Do it. 416 4172014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 418 419 Fix compiler warning to the comparison between signed and 420 unsigned variable. 421 422 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison 423 between `ypos + ysize' and FT_INT_{MAX,MIN}. 424 4252014-11-28 Werner Lemberg <wl@gnu.org> 426 427 [docmaker] Replace empty `<td>' with CSS. 428 429 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do 430 it. 431 4322014-11-28 Werner Lemberg <wl@gnu.org> 433 434 [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'. 435 436 * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'. 437 (source_*): Use `<div>'. 438 (HtmlFormatter::block_enter): s/<h4>/<h3>/. 439 4402014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 441 442 Fix compiler warning to conversion specifiers in debug messages. 443 444 * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length 445 modifier to dump long integers. 446 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto. 447 4482014-11-27 Werner Lemberg <wl@gnu.org> 449 450 * src/tools/docmaker/tohtml.py: Use more CSS for index. 451 4522014-11-27 Werner Lemberg <wl@gnu.org> 453 454 [docmaker] Replace `name' attribute of `<a>' with `id'. 455 456 * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it. 457 4582014-11-27 Werner Lemberg <wl@gnu.org> 459 460 * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes. 461 462 For `Index' and `TOC' links, we now simply use the `text-align' CSS 463 property of `<td>' to enforce flush-left and flush-right, 464 eliminating the hack with an empty, full-width `<td>' element 465 inbetween. 466 467 The change also enforces the same (smaller) size for all index and 468 TOC links. 469 4702014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 471 472 * src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(), 473 cf2font.c could not find it under `make multi' build. 474 4752014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 476 477 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove 478 unrequired negative value check for `width' and `height'. 479 4802014-11-27 Werner Lemberg <wl@gnu.org> 481 482 * src/tools/docmaker/tohtml.py: More HTML table refactoring. 483 484 Replace some `<table>' tags with `<div>' to simplify structure. 485 486 Move `bgcolor' attribute to CSS. 487 488 Replace most `width' attributes with CSS. The remaining instances 489 (providing a similar effect as LaTeX's `\hfill' command) are removed 490 in a later patch. 491 4922014-11-27 Werner Lemberg <wl@gnu.org> 493 494 * src/tools/docmaker/tohtml.py: Replace <font> with CSS. 495 4962014-11-27 Werner Lemberg <wl@gnu.org> 497 498 * src/tools/docmaker/tohtml.py: Center <table> with CSS. 499 5002014-11-27 Werner Lemberg <wl@gnu.org> 501 502 * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'. 503 5042014-11-27 Werner Lemberg <wl@gnu.org> 505 506 * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags. 507 508 This starts a series of commits into the direction of generating 509 valid HTML 5 code, especially using much more CSS. 510 5112014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 512 513 Prevent too negative values (< FT_INT_MIN) in bitmap metrics, 514 suggested by Alexei. 515 516 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too 517 negative values in `xpos' and `ypos + ysize'. 518 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent 519 too negative values in `x_left' and `y_top'. Either negative 520 values in `width' and `height' are checked. 521 5222014-11-27 Werner Lemberg <wl@gnu.org> 523 524 [docmaker] Produce better HTML code. 525 526 * src/tools/docmaker/tohtml.py: Always use double quotes for 527 attribute values. 528 (source_footer): Close `td' and `tr' groups. 529 5302014-11-27 Werner Lemberg <wl@gnu.org> 531 532 Use better way to disable creation of .pyc files for `make refdoc'. 533 534 Python 2.6 was released in 2008... 535 536 * builds/freetype.mk (refdoc): Use python's `-B' option. 537 538 * builds/detect.mk (std_setup, dos_setup): Mention required python 539 version for `refdoc' target. 540 5412014-11-27 Werner Lemberg <wl@gnu.org> 542 543 * src/tools/docmaker/sources.py (re_bold, re_italic): Use 544 non-grouping parentheses. 545 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): 546 Updated. 547 5482014-11-27 Werner Lemberg <wl@gnu.org> 549 550 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning. 551 552 Introduced in previous change. Reported by Alexei. 553 5542014-11-26 Werner Lemberg <wl@gnu.org> 555 556 * src/*: Add checks for parameters of API functions where missing. 557 558 `API functions' are functions tagged with `FT_EXPORT_DEF'. 559 560 Besides trivial fixes, the following changes are included, too. 561 562 * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set 563 error code if no service is available. 564 565 * src/base/ftinit.c (FT_Done_FreeType): Change return value for 566 invalid `library' parameter to `Invalid_Library_Handle'. 567 568 * src/base/ftobjs.c (FT_New_Size): Change return value for invalid 569 `asize' parameter to `Invalid_Argument'. 570 571 * src/base/ftoutln.c (FT_Outline_Copy): Change return value for 572 invalid `source' and `target' parameters to `Invalid_Outline'. 573 (FT_Outline_Done_Internal): Change return value for invalid 574 `outline' parameter to `Invalid_Outline'. 575 5762014-11-26 Werner Lemberg <wl@gnu.org> 577 578 * src/cache/ftcbasic.c: Use single calls to `FT_TRACE'. 579 5802014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 581 582 * src/base/ftobjs.c (Mac_Read_POST_Resource): Additional 583 overflow check in the summation of POST fragment lengths, 584 suggested by Mateusz Jurczyk <mjurczyk@google.com>. 585 5862014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 587 588 * src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments 589 and fold too long tracing messages. 590 5912014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 592 593 Fix Savannah bug #43540. 594 595 * src/base/ftmac.c (parse_fond): Prevent a buffer overrun 596 caused by a font including too many (> 63) strings to store 597 names[] table. 598 5992014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 600 601 * src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long 602 variables to read the lengths in POST fragments. Suggested by 603 Mateusz Jurczyk <mjurczyk@google.com>. 604 6052014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 606 607 Fix Savannah bug #43539. 608 609 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow 610 by a broken POST table in resource-fork. 611 6122014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 613 614 Fix Savannah bug #43538. 615 616 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow 617 by a broken POST table in resource-fork. 618 6192014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 620 621 * src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak 622 by a broken POST table in resource-fork. Return after freeing 623 the buffered POST table when it is found to be broken. 624 6252014-11-25 Werner Lemberg <wl@gnu.org> 626 627 */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate. 628 6292014-11-25 Werner Lemberg <wl@gnu.org> 630 631 */*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate. 632 6332014-11-25 Werner Lemberg <wl@gnu.org> 634 635 */*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate. 636 6372014-11-25 Werner Lemberg <wl@gnu.org> 638 639 */*: s/Invalid_Argument/Invalid_Outline/ where appropriate. 640 6412014-11-25 Werner Lemberg <wl@gnu.org> 642 643 */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate. 644 6452014-11-24 Werner Lemberg <wl@gnu.org> 646 647 [Savannah bug #43682] Adjust some renderer callbacks. 648 649 * src/raster/ftraster.c (ft_black_set_mode): Change return type to 650 `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype. 651 652 * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function 653 for orthogonality. 654 (ft_grays_raster): Use it. 655 6562014-11-25 Werner Lemberg <wl@gnu.org> 657 658 [Savannah bug #43682] Properly handle missing return errors. 659 660 The functions in this patch *do* return non-trivial errors that must 661 be taken care of. 662 663 * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c 664 (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render), 665 src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>, 666 src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode 667 (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c 668 (load_truetype_glyph <subglyph loop>, tt_loader_init, 669 TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend), 670 src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it. 671 6722014-11-25 Werner Lemberg <wl@gnu.org> 673 674 [Savannah bug #43682] Add/remove `void' casts to some functions. 675 676 We use a cast to indicate that we intentionally ignore a function's 677 return value. However, this doesn't apply to API functions where 678 errors can only happen for trivially invalid input. 679 680 * src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder), 681 src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c 682 (cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning), 683 src/type1/t1load.c (parse_encoding), src/type42/t42parse.c 684 (t42_parse_encoding): Do it. 685 6862014-11-25 Werner Lemberg <wl@gnu.org> 687 688 [Savannah bug #43682] Change some signatures to `void' return type. 689 690 * include/internal/pshints.h (PSH_Globals_SetScaleFunc), 691 include/internal/sfnt.h (TT_Get_Metrics_Func), 692 src/pshinter/pshglob.c (psh_globals_set_scale), 693 src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c 694 (tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange, 695 TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context, 696 TT_Save_Context): Do it. 697 698 * src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h, 699 src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c 700 (TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c 701 (tt_size_run_fpgm, tt_size_run_prep): Updated. 702 7032014-11-24 Werner Lemberg <wl@gnu.org> 704 705 Remove all code related to FT_MAX_CHARMAP_CACHEABLE. 706 707 This is no longer used. 708 709 * src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c, 710 src/sfnt/ttcmap.c: Do it. 711 7122014-11-24 Werner Lemberg <wl@gnu.org> 713 714 [sfnt] Fix Savannah bug #43680. 715 716 This adds an additional constraint to make the fix from 2013-01-25 717 really work. 718 719 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>: 720 Check `p' before `num_glyphs'. 721 7222014-11-24 Werner Lemberg <wl@gnu.org> 723 724 [truetype] Fix Savannah bug #43679. 725 726 * src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of 727 `record_size'. 728 7292014-11-24 Jarkko Pöyry <jarkko.poyry@gmail.com> 730 731 [cff, pfr, psaux, winfonts] Fix Savannah bug #43676. 732 733 Don't cast cmap init function pointers to an incompatible type. 734 735 Without this patch, the number of parameters between declaration and 736 the real signature differs. Calling such a function results in 737 undefined behavior. 738 739 ISO/IEC 9899:TC3 (Committee Draft September 7, 2007) 740 6.5.2.2 Function calls 741 9 If the function is defined with a type that is not 742 compatible with the type (of the expression) pointed to by 743 the expression that denotes the called function, the 744 behavior is undefined. 745 746 On certain platforms (c -> js with emscripten) this causes 747 termination of execution or invalid calls because in the emscripten 748 implementation, function pointers of different types are stored in 749 different pointer arrays. Incorrect pointer type here results in 750 indexing of an incorrect array. 751 752 * src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init), 753 src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c 754 t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init, 755 t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix 756 signature. 757 7582014-11-24 Werner Lemberg <wl@gnu.org> 759 760 [sfnt] Fix Savannah bug #43672. 761 762 * src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for 763 minimum table length test. 764 7652014-11-24 Werner Lemberg <wl@gnu.org> 766 767 [type1, type42] Another fix for Savannah bug #43655. 768 769 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c 770 (t42_parse_charstrings): Add another boundary testing. 771 7722014-11-24 Werner Lemberg <wl@gnu.org> 773 774 [docmaker] Formatting, copyright, improved documentation. 775 776 * src/tools/docmaker/*: No code changes besides trivial 777 modifications. 778 7792014-11-22 Werner Lemberg <wl@gnu.org> 780 781 [bdf] Fix Savannah bug #43660. 782 783 * src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check 784 `_BDF_GLYPH_BITS'. 785 7862014-11-22 Werner Lemberg <wl@gnu.org> 787 788 [type42] Allow only embedded TrueType fonts. 789 790 This is a follow-up to Savannah bug #43659. 791 792 * src/type42/t42objs.c (T42_Face_Init): Exclusively use the 793 `truetype' font driver for loading the font contained in the `sfnts' 794 array. 795 7962014-11-22 Werner Lemberg <wl@gnu.org> 797 798 [type42] Fix Savannah bug #43659. 799 800 * src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'. 801 802 * src/type42/t42parse.c (t42_parse_sfnts): Always set 803 `face->ttf_size' directly. This ensures a correct stream size in 804 the call to `FT_Open_Face', which follows after parsing, even for 805 buggy input data. 806 Fix error messages. 807 8082014-11-22 Werner Lemberg <wl@gnu.org> 809 810 [cff] Fix Savannah bug #43658. 811 812 * src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle 813 return values of point allocation routines. 814 8152014-11-22 Werner Lemberg <wl@gnu.org> 816 817 [sfnt] Fix Savannah bug #43656. 818 819 * src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity 820 tests. 821 8222014-11-21 Werner Lemberg <wl@gnu.org> 823 824 [type1, type42] Fix Savannah bug #43655. 825 826 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c 827 (t42_parse_charstrings): Fix boundary testing. 828 8292014-11-21 Werner Lemberg <wl@gnu.org> 830 831 * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics. 832 8332014-11-21 Werner Lemberg <wl@gnu.org> 834 835 [ftlcdfil] Obey flow direction. 836 837 * src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy): 838 Handle `up' flow. 839 8402014-11-21 Werner Lemberg <wl@gnu.org> 841 842 * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve. 843 844 This commit completes argument checks and adds support for different 845 flow directions. 846 8472014-11-21 Werner Lemberg <wl@gnu.org> 848 849 * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve. 850 851 This commit adds argument checks and support for different flow 852 directions. 853 8542014-11-20 Werner Lemberg <wl@gnu.org> 855 856 * src/base/ftbitmap.c (FT_Bitmap_New): Check argument. 857 8582014-11-19 Werner Lemberg <wl@gnu.org> 859 860 Change some fields in `FT_Bitmap' to unsigned type. 861 862 This doesn't break ABI. 863 864 * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays', 865 `pixel_mode', and `palette_mode' unsigned types. 866 867 * src/base/ftbitmap.c: Updated. 868 (FT_Bitmap_Copy): Fix casts. 869 870 * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c: 871 Updated. 872 8732014-11-19 Werner Lemberg <wl@gnu.org> 874 875 Make `FT_Bitmap_Convert' correctly handle negative `pitch' values. 876 877 * src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value 878 for the pitch while copying data. 879 Correctly set pitch sign in target bitmap. 880 8812014-11-19 Werner Lemberg <wl@gnu.org> 882 883 Minor code improvement in `FT_Bitmap_Embolden'. 884 885 * src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>: 886 Fix thinko. 887 8882014-11-19 Alexei Podtelezhnikov <apodtele@gmail.com> 889 890 * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table. 891 8922014-11-19 Behdad Esfahbod <behdad@behdad.org> 893 894 Avoid compiler warnings on x86-64 for `FT_MulFix'. 895 896 `FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h', 897 but several inline implementations of it in `ftcalc.h' take 898 `FT_Int32' arguments. This is causing compiler warnings on x86-64: 899 If parameters of type `FT_Fixed' (= `FT_Long') are passed to the 900 inline implementation of this function, integer values are truncated 901 from 64bit to 32bit. 902 903 * include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add 904 casts. 905 9062014-11-15 Werner Lemberg <wl@gnu.org> 907 908 [sfnt] Fix Savannah bug #43597. 909 910 * src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large 911 bitmaps. 912 9132014-11-12 Werner Lemberg <wl@gnu.org> 914 915 [sfnt] Fix Savannah bug #43591. 916 917 * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition 918 and multiplication overflow. 919 9202014-11-12 Werner Lemberg <wl@gnu.org> 921 922 [sfnt] Fix Savannah bug #43590. 923 924 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): 925 Protect against addition overflow. 926 9272014-11-12 Werner Lemberg <wl@gnu.org> 928 929 [sfnt] Fix Savannah bug #43589. 930 931 * src/sfnt/sfobjs.c (woff_open_font): Protect against addition 932 overflow. 933 9342014-11-12 Werner Lemberg <wl@gnu.org> 935 936 [sfnt] Fix Savannah bug #43588. 937 938 * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate, 939 tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect 940 against overflow in additions and multiplications. 941 9422014-11-10 Alexei Podtelezhnikov <apodtele@gmail.com> 943 944 [base] CORDIC improvements. 945 946 The scaling between the hypotenuse and its CORDIC approximation is 947 based on regression analysis. The smaller padding for `theta' is 948 justified by its maximum error of less than 6. 949 950 * src/base/fttrigon.c (ft_trig_downscale): Borrow code from 951 ./ftcalc.c (ft_multo64), change linear intercept. 952 (ft_trig_pseudo_polarize): Decrease `theta' padding. 953 9542014-11-09 Werner Lemberg <wl@gnu.org> 955 956 * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections. 957 958 One more place to check whether `radius' is zero. 959 960 Problem reported by Marco Wertz <marco.wertz@gmx.de>. 961 9622014-11-07 Werner Lemberg <wl@gnu.org> 963 964 [bdf] Fix Savannah bug #43535. 965 966 * src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one 967 character more than `strncmp'. 968 s/ft_strncmp/_bdf_strncmp/ everywhere. 969 9702014-11-06 Werner Lemberg <wl@gnu.org> 971 972 [pcf] Fix Savannah bug #43548. 973 974 * src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row 975 and column values. 976 9772014-11-06 Werner Lemberg <wl@gnu.org> 978 979 [pcf] Fix Savannah bug #43547. 980 981 * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset' 982 values. 983 9842014-11-06 Werner Lemberg <wl@gnu.org> 985 986 * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak. 987 9882014-11-03 Infinality <infinality@infinality.net> 989 990 * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated. 991 992 The previous commit deteriorates rendering of DejaVu and similar 993 fonts; this gets compensated with this rule. 994 9952014-11-03 Werner Lemberg <wl@gnu.org> 996 997 * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting. 998 999 Before this patch, it was impossible to ever call DELTAP[123] in 1000 subpixel hinting mode as described in the ClearType whitepaper; it 1001 only worked if in `compatibility mode'. However, compatibility mode 1002 essentially disables SHPIX, completely ruining hinting of 1003 ttfautohint output, for example. 1004 1005 We now follow the whitepaper more closely so that DELTAP[123] 1006 instructions for touched points in the non-subpixel direction are 1007 executed. 1008 10092014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com> 1010 1011 [smooth] Improve code readability. 1012 1013 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code. 1014 10152014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com> 1016 1017 [smooth] Reduce outline translations during rendering. 1018 1019 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin 1020 virtually by modifying cbox, actually translate outline if cumulative 1021 shift is not zero. 1022 10232014-10-30 Alexei Podtelezhnikov <apodtele@gmail.com> 1024 1025 [smooth] Fix Savannah bug #35604 (cont'd). 1026 1027 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and 1028 casts that became unnecessary after the variable type upgrades. 1029 10302014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com> 1031 1032 [smooth] Improve code readability. 1033 1034 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code. 1035 10362014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com> 1037 1038 Unify hypotenuse approximations. 1039 1040 * include/internal/ftcalc.h (FT_HYPOT): Move macro from here... 1041 * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'. 1042 * src/smooth/ftgrays.c (gray_render_cubic): Use it here. 1043 10442014-10-25 Werner Lemberg <wl@gnu.org> 1045 1046 [cff] Test valid darkening parameter macros in `ftoption.h'. 1047 1048 We no longer need an otherwise unused typedef that can cause a gcc 1049 warning. 1050 Problem reported by Alexei. 1051 1052 * src/cff/cffobjs.c (cff_driver_init): Use 1053 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly. 1054 (SET_DARKENING_PARAMETERS): Removed. 1055 Compile time tests are now ... 1056 1057 * devel/ftoption.h, include/config/ftoption.h: ... here. 1058 10592014-10-25 Alexei Podtelezhnikov <apodtele@gmail.com> 1060 1061 Improve flat corner definition. 1062 1063 * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean 1064 distance with the alpha max plus beta min algorithm. 1065 * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab 1066 metric. 1067 10682014-10-23 David Weiß <David.Weiss@ptvgroup.com> 1069 1070 [build] Improve property file for vc2010. 1071 1072 User-defined properties should be empty by default to prevent linker 1073 failures. 1074 1075 * builds/windows/vc2010/freetype.user.props, 1076 builds/windows/vc2010/freetype.vcxproj: 1077 s/OptionsDirectory/UserOptionDirectory/. 1078 Comment out all user options. 1079 10802014-10-23 Werner Lemberg <wl@gnu.org> 1081 1082 [cff] Work around bug in preprocessor of MSVC 2010. 1083 1084 We have been hit by 1085 1086 https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr 1087 1088 * devel/ftoption.h, include/config/ftoption.h: Replace 1089 `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros 1090 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'. 1091 1092 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed. We no 1093 longer need double expansion. 1094 (SET_DARKENING_PARAMETERS_0): Renamed to ... 1095 (SET_DARKENING_PARAMETERS): ... this. 1096 Update call. 1097 10982014-10-20 Werner Lemberg <wl@gnu.org> 1099 1100 [sbit] Minor fixes. 1101 1102 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]: 1103 Accept overlay format also, but emit warning message in that case. 1104 (tt_sbit_decoder_load_metrics): Add missing newline to error 1105 message. 1106 (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS 1107 7.1) to the list of unsupported formats. 1108 11092014-10-19 Alexei Podtelezhnikov <apodtele@gmail.com> 1110 1111 [truetype] Clean up bytecode rounding. 1112 1113 Zero distance does not have to be treated specially if you follow 1114 specifications and check the sign as the very last step of rounding. 1115 1116 * src/truetype/ttinterp.c (Round_None, Round_To_Grid, 1117 Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use 1118 macros when available, do not check for non-zero distance. 1119 (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase 1120 if sign changed. 1121 11222014-10-18 Alexei Podtelezhnikov <apodtele@gmail.com> 1123 1124 [truetype] Unwrap engine compensation settings. 1125 1126 * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated. 1127 11282014-10-18 David Weiß <David.Weiss@ptvgroup.com> 1129 1130 [build] Add property file to vc2010 project. 1131 1132 This simplifies custom build configurations, especially for 1133 automated build environments. 1134 1135 * builds/windows/vc2010/freetype.user.props: New configuration file. 1136 1137 * builds/windows/vc2010/freetype.vcxproj: Include 1138 `freetype.user.props' and use its data fields. 1139 1140 * builds/windows/vc2010/index.html: Updated. 1141 11422014-10-18 Werner Lemberg <wl@gnu.org> 1143 1144 [autofit] Add blue-zone support for Telugu. 1145 1146 This essentially moves the Telugu script from the `Indic' hinter to 1147 the `Latin' hinter. 1148 1149 Note that this is a first shot and quite certainly needs 1150 refinements. 1151 1152 * src/autofit/afblue.dat: Add blue zone data for Telugu. 1153 1154 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. 1155 1156 * src/autofit/afscript.h: Add Telugu standard characters and move 1157 data out of AF_CONFIG_OPTION_INDIC block. 1158 1159 * src/autofit/afranges.c: Move Telugu data out of 1160 AF_CONFIG_OPTION_INDIC block. 1161 1162 * src/autofit/afstyles.h: Update Telugu data; in particular, use 1163 AF_WRITING_SYSTEM_LATIN. 1164 11652014-10-18 David Wimsey <david@wimsey.us> 1166 1167 [cmake] Add iOS build support. 1168 From Savannah patch #8497. 1169 1170 * builds/cmake/iOS.cmake: New file. Universal binaries are built 1171 with both 32 and 64 bit arm architectures. 1172 1173 * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS 1174 toolchain. Possible values are `OS' to build on iOS, or 1175 `SIMULATOR' to build on APPLE. 1176 11772014-10-16 Behdad Esfahbod <behdad@behdad.org> 1178 Werner Lemberg <wl@gnu.org> 1179 1180 [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro. 1181 1182 * devel/ftoption.h, include/config/ftoption.h 1183 (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro. 1184 1185 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS, 1186 SET_DARKENING_PARAMETERS_0): New macros. 1187 (cff_driver_init): Use new macros. 1188 11892014-10-14 Alexei Podtelezhnikov <apodtele@gmail.com> 1190 1191 [truetype] Limit delta shift range. 1192 1193 The valid range for delta shift is zero through six. Negative values 1194 are invalid according to 1195 1196 https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift 1197 1198 * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned. 1199 * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift' 1200 is out of range. 1201 (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'. 1202 12032014-10-16 Werner Lemberg <wl@gnu.org> 1204 1205 A better fix for Savannah bug #43392. 1206 Suggested by Doug Felt <dougfelt@gmail.com>. 1207 1208 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set 1209 `vertAdvance' to zero... 1210 1211 * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default 1212 value for `vertAdvance' based on `linearVertAdvance' in case 1213 `vertAdvance' is zero. Note that the previous computed ad-hoc value 1214 for `linearVertAdvance' was apparently not tested in a real-life 1215 situation. 1216 12172014-10-14 David Weiß <David.Weiss@ptvgroup.com> 1218 1219 [build] Better optimization settings for vc2010 solution file. 1220 1221 * builds/windows/vc2010/freetype.sln, 1222 builds/windows/vc2010/freetype.vcxproj: Updated. 1223 12242014-10-14 Werner Lemberg <wl@gnu.org> 1225 1226 [autofit] Adjust Devanagari character range. 1227 1228 * src/autofit/afranges.c (af_deva_uniranges): Omit characters that 1229 are common to all other Indic scripts. 1230 12312014-10-12 Werner Lemberg <wl@gnu.org> 1232 1233 [sfnt] Fix Savannah bug #43392. 1234 1235 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let 1236 vertical metrics uninitialized. 1237 12382014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com> 1239 1240 [base] Small bbox correction. 1241 1242 * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox 1243 instead of initial point that could be `off' in conic outlines. 1244 12452014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com> 1246 1247 [base] Fix Savannah bug #43356. 1248 1249 * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case 1250 of implicit `to'. 1251 (BBox_Line_To): New emitter that does not update bbox. 1252 12532014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com> 1254 1255 [base] Introduce and use new macro `FT_UPDATE_BBOX' 1256 1257 * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro. 1258 (FT_Outline_Get_BBox): Use it here. 1259 12602014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com> 1261 1262 [base] Significant optimization of `ft_div64by32' 1263 1264 We shift as many bits as we can into the high register, perform 1265 32-bit division with modulo there, then work through the remaining 1266 bits with long division. This optimization is especially noticeable 1267 for smaller dividends that barely use the high register. 1268 1269 * src/base/ftcalc.c (ft_div64by32): Updated. 1270 12712014-10-02 Dave Arnold <darnold@adobe.com> 1272 1273 [cff] Fix Savannah bug #43271. 1274 1275 * src/cff/cf2font.c (cf2_computeDarkening): Change overflow 1276 detection to use logarithms and clamp `scaledStem'. 1277 12782014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com> 1279 1280 * src/base/ftcalc.c: Remove miscellaneous type casts. 1281 12822014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com> 1283 1284 [base] Use more common `FT_MSB' implementation with masks. 1285 1286 * src/base/ftcalc.c (FT_MSB): Updated. 1287 12882014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com> 1289 1290 [base] Clean up. 1291 1292 * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used 1293 code. 1294 12952014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com> 1296 1297 [base] Avoid unnecessary long division. 1298 1299 This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or 1300 lack thereof are predicted accurately. 1301 1302 * src/base/ftcalc.c (ft_div64by32): Improve readability. 1303 (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division 1304 when multiplication stayed within 32 bits. 1305 13062014-09-24 Werner Lemberg <wl@gnu.org> 1307 1308 [autofit] Minor clean-ups. 1309 1310 * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values. 1311 1312 * src/autofit/afhints.c (af_glyph_hints_dump_points, 1313 af_glyph_hints_align_strong_points): Updated. 1314 1315 * src/autofit/aflatin.c (af_latin_hints_link_segments, 1316 af_latin_hints_compute_segments), src/autofit/afcjk.c 1317 (af_cjk_hints_link_segments), src/autofit/aflatin2.c 1318 (af_latin2_hints_link_segments, af_latin2_hints_compute_segments): 1319 There are no longer fake segments since more than 10 years... 1320 13212014-09-22 Werner Lemberg <wl@gnu.org> 1322 1323 [autofit] Minor code streamlining. 1324 1325 * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant 1326 initialization. 1327 13282014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com> 1329 1330 * src/base/ftcalc.c: Harmonize code. 1331 13322014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com> 1333 1334 [base] Tighten the overflow check in `FT_MulDiv'. 1335 1336 * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated. 1337 13382014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com> 1339 1340 Fix Savannah bug #43153. 1341 1342 * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against 1343 overflow in `divider'. 1344 13452014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com> 1346 1347 [base] Tighten the overflow check in `FT_DivFix'. 1348 1349 This fixes a 13-year old bug. The original overflow check should have 1350 been updated when rounding was introduced into this function 1351 (c2cd00443b). 1352 1353 * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated. 1354 * include/freetype.h (FT_DivFix): Updated documentation. 1355 13562014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com> 1357 1358 [base] Tighten the overflow check in `FT_MulFix'. 1359 1360 * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated. 1361 13622014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com> 1363 1364 [truetype] Shortcut ppem calculations for square pixels. 1365 1366 * src/truetype/ttinterp.h (TT_ExecContextRec): New field 1367 `cur_ppem_func' with a function pointer. 1368 * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func' 1369 depending on the pixel geometry to either... 1370 (Current_Ppem_Stretched): ... this for stretched pixels. 1371 (Current_Ppem): ... or this for square pixels. 1372 (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'. 1373 13742014-08-31 Behdad Esfahbod <behdad@behdad.org> 1375 1376 Don't use `register' keyword. Fixes compiler warnings. 1377 1378 * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it. 1379 * src/gzip/inftrees.c (huft_build): Ditto. 1380 * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto. 1381 13822014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com> 1383 1384 [truetype] Optimize DELTAP and DELTAC. 1385 1386 * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem 1387 calculations outside of the loop. 1388 13892014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com> 1390 1391 Fix Savannah bug #43033. 1392 1393 * include/config/ftconfig.h, builds/unix/ftconfig.in, 1394 builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when 1395 64-bit type is `long'. 1396 13972014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com> 1398 1399 [base] Small optimization of `FT_MulFix'. 1400 1401 * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct 1402 32-bit calculations. 1403 14042014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com> 1405 1406 [base] Use unsigned calculation in `FT_MulDiv'. 1407 1408 * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range. 1409 14102014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com> 1411 1412 [base] Remove truncation in `FT_DivFix'. 1413 1414 * src/base/ftcalc.c (FT_DivFix): Updated. 1415 14162014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com> 1417 1418 Minor refactoring. 1419 1420 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated. 1421 14222014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com> 1423 1424 Turn FT_MSB into a macro when using gcc builtins. 1425 1426 * src/base/ftcalc.c, include/internal/ftcalc.h: Updated. 1427 14282014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com> 1429 1430 [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'. 1431 1432 * src/base/ftbbox.c (BBox_Cubic_Check): Update. 1433 (update_cubic_max): Replace with... 1434 (cubic_peak): ... this, which now handles upscaling. 1435 14362014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com> 1437 1438 [base] Handle collapsed outlines to avoid undefined FT_MSB. 1439 1440 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update. 1441 14422014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com> 1443 1444 [base] Restore FT_MulFix inlining. 1445 1446 * include/freetype.h (FT_MulFix): Unconditionally defined. 1447 1448 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here... 1449 1450 * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here, 1451 which conditionally replaces the function with an inline version 1452 through the macro. 1453 14542014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com> 1455 1456 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor. 1457 14582014-07-26 Werner Lemberg <wl@gnu.org> 1459 1460 [cff] Fix typo. 1461 1462 * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct 1463 offsets in third quadrant. 1464 1465 Reported by maks <maksqwe1@ukr.net>. 1466 14672014-07-17 Werner Lemberg <wl@gnu.org> 1468 1469 Fix Savannah bug #42788. 1470 1471 * src/pfr/pfrobjs.c: Include `ftcalc.h'. 1472 14732014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com> 1474 1475 Replace `ft_highpow2' function. 1476 1477 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of 1478 `ft_highpow2'. 1479 1480 * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove 1481 it. 1482 14832014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com> 1484 1485 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins. 1486 14872014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com> 1488 1489 [base] Move assembler code back in the source file. 1490 1491 FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b. 1492 1493 * include/config/ftconfig.h, builds/unix/ftconfig.in, 1494 builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here... 1495 1496 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here. 1497 14982014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com> 1499 1500 [base] Further clean up color bitmap conversion. 1501 1502 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop 1503 using FT_MulFix and FT_DivFix since all calculations fit into 32 bits. 1504 15052014-07-13 Werner Lemberg <wl@gnu.org> 1506 1507 [truetype] Improve handling of buggy `prep' tables. 1508 1509 In case of an error in the `prep' table, no longer try to execute it 1510 again and again. This makes FreeType handle endless loops in buggy 1511 fonts much faster. 1512 1513 * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready' 1514 and `cvt_ready' are now negative if not initialized yet, otherwise 1515 they indicate the error code of the last run. 1516 1517 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep, 1518 tt_size_done_bytecode, tt_size_init_bytecode, 1519 tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset): 1520 Updated. 1521 1522 * src/truetype/ttgload.c (tt_loader_init): Updated. 1523 * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm' 1524 and `prep' only if we are in the `glyf' table. 1525 15262014-07-12 Werner Lemberg <wl@gnu.org> 1527 1528 * builds/vms/ftconfig.h: Synchronize. 1529 Problem reported by Alexei. 1530 15312014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com> 1532 1533 [base] Clean up bitmap conversion. 1534 1535 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use 1536 appropriate FT_DivFix and remove superfluous upscaling. 1537 15382014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com> 1539 1540 [base] Small optimization of the ancient code. 1541 1542 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the 1543 condition for direct 32-bit calculations. 1544 15452014-06-27 Werner Lemberg <wl@gnu.org> 1546 1547 Fix Apple standard glyph names. 1548 1549 * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with 1550 `tools/glnames.py' 1551 1552 Problem reported by Adam Twardoch <adam@fontlab.com>. 1553 15542014-06-17 Werner Lemberg <wl@gnu.org> 1555 1556 Partially revert commit from 2014-06-13. 1557 1558 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move 1559 declaration of `p_first' and `p_last' out of the loop. 1560 15612014-06-17 Werner Lemberg <wl@gnu.org> 1562 1563 * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/. 1564 1565 This simplifies cross-compiling. 1566 15672014-06-13 Werner Lemberg <wl@gnu.org> 1568 1569 Fix more compiler warnings. 1570 Reported by Wojciech Mamrak <wmamrak@gmail.com>. 1571 1572 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): 1573 Make integer constant unsigned. 1574 1575 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) 1576 <TT_SBIT_TABLE_TYPE_SBIX>: Fix types. 1577 (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper 1578 casts. 1579 15802014-06-13 Werner Lemberg <wl@gnu.org> 1581 1582 Fix compiler warnings. 1583 Reported by Wojciech Mamrak <wmamrak@gmail.com>. 1584 1585 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage), 1586 src/autofit/afmodule.c (af_property_set): Fix `signed' vs. 1587 `unsigned' issues. 1588 1589 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler 1590 happy. 1591 1592 * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements 1593 for `fir'. 1594 Fix `signed' vs. `unsigned' issues. 1595 1596 * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused. 1597 (WRITE_USHORT, WRITE_ULONG): Add proper casts. 1598 1599 * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts. 1600 1601 * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1' 1602 and `B2'. 1603 16042014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com> 1605 1606 [cmake] Add option to build OS X framework. 1607 1608 * CMakeLists.txt: Update accordingly. 1609 1610 * builds/mac/freetype-Info.plist: New file. 1611 16122014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com> 1613 1614 * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'. 1615 16162014-05-11 Werner Lemberg <wl@gnu.org> 1617 1618 [autofit] Fix variable initializations. 1619 1620 * src/autofit/afhints.c (af_glyph_hints_reload): Assign default 1621 values to `in_dir' and `out_dir' for all points. 1622 16232014-05-11 Werner Lemberg <wl@gnu.org> 1624 1625 [autofit] Fix crash with font `CabinSketch-Bold.ttf'. 1626 1627 Problem reported by Ralf S. Engelschall <rse@engelschall.com>. 1628 1629 * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for 1630 finding first non-near point. 1631 Properly initialize non-near point deltas. 1632 16332014-05-01 Werner Lemberg <wl@gnu.org> 1634 1635 [autofit] Add blue-zone support for Devanagari. 1636 1637 This essentially moves the Devanagari script from the `Indic' hinter 1638 to the `Latin' hinter. Thanks to Girish Dalvi 1639 <girish.dalvi@gmail.com> for guidance with blue zone characters! 1640 1641 * src/autofit/afblue.dat: Add blue zone data for Devanagari. 1642 1643 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. 1644 1645 * src/autofit/afscript.h: Add Devanagari standard characters and 1646 move data out of AF_CONFIG_OPTION_INDIC block. 1647 1648 * src/autofit/afranges.c: Move Devanagari data out of 1649 AF_CONFIG_OPTION_INDIC block. 1650 Move U+20B9, (new) Rupee sign, from Latin to Devanagari. 1651 1652 * src/autofit/afstyles.h: Update Devanagari data; in particular, use 1653 AF_WRITING_SYSTEM_LATIN. 1654 16552014-05-01 Werner Lemberg <wl@gnu.org> 1656 1657 [autofit] Fix handling of neutral blue zones in stems. 1658 1659 * src/autofit/afhints.h (AF_Edge_Flags): New value 1660 `AF_EDGE_NEUTRAL'. 1661 1662 * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace 1663 neutral blue zones with AF_EDGE_NEUTRAL. 1664 (af_latin_hint_edges): Skip neutral blue zones if necessary. 1665 16662014-04-28 Werner Lemberg <wl@gnu.org> 1667 1668 [autofit] Introduce neutral blue zones to the latin module. 1669 1670 Such blue zones match either the top or the bottom of a contour. We 1671 need them for scripts where accent-like elements directly touch the 1672 base character (for example, some vowel signs in Devanagari, cf. 1673 U+0913 or U+0914). 1674 1675 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New 1676 property. 1677 1678 * src/autofit/afblue.h: Regenerated. 1679 1680 * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro. 1681 (AF_LATIN_BLUE_NEUTRAL): New enumeration value. 1682 1683 * src/autofit/aflatin.c (af_latin_metrics_init_blues, 1684 af_latin_hints_compute_blue_edges): Handle neutral blue zones. 1685 16862014-04-25 Werner Lemberg <wl@gnu.org> 1687 1688 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17. 1689 1690 Using input glyph coverage data is simply wrong. 1691 1692 Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and 1693 Mantas Mikulėnas <grawity@gmail.com>. 1694 16952014-04-23 Werner Lemberg <wl@gnu.org> 1696 1697 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode. 1698 1699 This spot has been missed while introducing support for various 1700 drop-out modes years ago (including no drop-out mode, which this 1701 commit fixes). 1702 1703 Problem reported by Patrick Thomas <pthomas505@gmail.com>. 1704 17052014-04-22 Werner Lemberg <wl@gnu.org> 1706 1707 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/. 1708 17092014-04-20 Werner Lemberg <wl@gnu.org> 1710 1711 [autofit] Fix Savannah bug #42148. 1712 1713 The adaptation of the cjk auto-hinter module to blue stringsets in 1714 2013-08-25 had three severe bugs. Mea culpa. 1715 1716 1. Contrary to the latin auto-hinter, characters for reference and 1717 overshoot values of a blue zone are specified separately. Due to 1718 the screwed-up change it didn't work at all. 1719 1720 2. A boolean comparison was erroneously replaced with a cast, 1721 causing invalid results with the `^' operator later on. The 1722 visual artifact caused by this problem is the topic of the bug 1723 report. 1724 1725 3. Two flag values were inverted, causing incorrect assignment of 1726 reference and overshoot values. 1727 1728 * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new 1729 syntax to have both reference and overshoot characters in a single 1730 string. This is error #1. 1731 Add extensive comments. 1732 1733 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no 1734 longer used. 1735 (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values. 1736 This is error #3. 1737 1738 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. 1739 1740 * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1. 1741 Use character `|' to separate characters for reference and overshoot 1742 values. 1743 Improve tracing messages, synchronizing them with the latin 1744 auto-hinter. 1745 (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'. 1746 This is error #2. 1747 (af_cjk_align_linked_edge): Add tracing message. 1748 1749 * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer 1750 used. 1751 17522014-04-17 Werner Lemberg <wl@gnu.org> 1753 1754 [autofit] More coverage fixes for complex scripts. 1755 1756 * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage 1757 of GSUB lookups into output coverage. Otherwise, ligatures are not 1758 handled properly. 1759 Don't check blue zone characters for default coverage. 1760 17612014-04-17 Werner Lemberg <wl@gnu.org> 1762 1763 Make `FT_Get_SubGlyph_Info' actually work. 1764 1765 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok 1766 if there is no error. 1767 17682014-04-15 Werner Lemberg <wl@gnu.org> 1769 1770 [afblue.pl]: Minor improvements. 1771 1772 * src/tools/afblue.pl: Allow whitespace before comments. 1773 Ignore whitespace in strings. 1774 17752014-04-14 Werner Lemberg <wl@gnu.org> 1776 1777 [autofit] Improve coverage handling. 1778 1779 * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs 1780 appearing in the GPOS table if we are processing the default 1781 coverage. 1782 17832014-04-13 David Weber <weber.aulendorf@googlemail.com> 1784 1785 [smooth] Fix stand-alone compilation. 1786 1787 * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define. 1788 17892014-04-12 Werner Lemberg <wl@gnu.org> 1790 1791 [autofit] Redesign the recognition algorithm of strong points. 1792 1793 In particular, local extrema without horizontal or vertical segments 1794 are better recognized: 1795 1796 + A + D 1797 \ / 1798 \ / 1799 \ / 1800 \ / 1801 \ + C 1802 \ / 1803 B +/ 1804 1805 If the distances AB and CD are large, point B wasn't previously 1806 detected as an extremum since the `ft_corner_is_flat' function 1807 `swallowed' BC regardless of its direction, tagging point B as weak. 1808 The next iteration started at B and made `ft_corner_is_flat' swallow 1809 point C, tagging it as weak also, et voilà. 1810 1811 To improve that, another pass gets now performed before calling 1812 `ft_corner_is_flat' to improve the `topology' of an outline: A 1813 sequence of non-horizontal or non-vertical vectors that point into 1814 the same quadrant are handled as a single, large vector. 1815 1816 Additionally, distances of near points are now accumulated, which 1817 makes the auto-hinter handle them as if they were prepended to the 1818 next non-near vector. 1819 1820 This generally improves the auto-hinter's rendering results. 1821 1822 * src/autofit/afhints.c (af_glyph_hints_reload): Implement it. 1823 1824 * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag 1825 `AF_FLAG_NEAR'. 1826 18272014-04-05 Werner Lemberg <wl@gnu.org> 1828 1829 [autofit] Improve scoring algorithm for identifying stems. 1830 1831 Problem reported by Karsten Lücke <karsten.luecke@kltf.de>. 1832 1833 The new algorithm takes care of the width of stems: If the distance 1834 between two segments is larger than the largest stem width, the 1835 demerits quickly increase for larger distances. This improves 1836 hinting of slanted fonts (especially if the inner parts of serifs 1837 have non-horizontal `shoulders'), avoiding false stem links. 1838 1839 * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest 1840 stem width (if available) to compute better demerits for distances 1841 between stems. 1842 (af_latin_hints_detect_features): Pass stem width array and array 1843 size. 1844 (af_latin_metrics_init_widths): Updated to use original algorithm. 1845 (af_latin_hints_apply): Updated to use new algorithm. 1846 1847 * src/autofit/aflatin.h: Updated. 1848 * src/autofit/afcjk.c: Updated. 1849 18502014-04-03 Werner Lemberg <wl@gnu.org> 1851 1852 Don't require `gzip' module for `sfnt'. 1853 1854 Reported by Preet <prismatic.project@gmail.com>. 1855 1856 * src/sfnt/sfobjs.c (woff_open_font): Guard use of 1857 FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB. 1858 18592014-03-27 Werner Lemberg <wl@gnu.org> 1860 1861 Fix Savannah bug #38235. 1862 1863 Work around a bug in pkg-config version 0.28 and earlier: If a 1864 variable value gets surrounded by doublequotes (in particular values 1865 for the `prefix' variable), the prefix override mechanism fails. 1866 1867 * builds/unix/freetype2.in: Don't use doublequotes. 1868 * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory 1869 names with backslashes. 1870 18712014-03-24 Werner Lemberg <wl@gnu.org> 1872 1873 Fix Savannah bug #41946. 1874 1875 Based on a patch from Marek Kašík <mkasik@redhat.com>. 1876 1877 * builds/unix/configure.raw (LIBS_CONFIG): Remove. 1878 * builds/unix/freetype-config.in (libs): Hard-code value. 1879 * builds/unix/unix-def.in: Updated. 1880 18812014-03-22 Werner Lemberg <wl@gnu.org> 1882 1883 Another revert for the change from 2014-03-18. 1884 1885 Problem reported by Nikolaus Waxweiler <madigens@gmail.com>. 1886 1887 * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol 1888 gets always exported. 1889 18902014-03-20 Werner Lemberg <wl@gnu.org> 1891 1892 CMakeLists.txt: Another fix for include directories. 1893 1894 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>. 1895 18962014-03-19 Werner Lemberg <wl@gnu.org> 1897 1898 CMakeLists.txt: Fix include directories. 1899 1900 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>. 1901 19022014-03-19 Werner Lemberg <wl@gnu.org> 1903 1904 Partially revert last commit. 1905 1906 Found by Alexei. 1907 1908 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing 1909 those variables is plain wrong, since we are in a loop. 1910 19112014-03-18 Sean McBride <sean@rogue-research.com> 1912 Werner Lemberg <wl@gnu.org> 1913 1914 Fix clang warnings. 1915 1916 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize 1917 some variables. 1918 1919 * src/base/ftcalc.c (FT_MulFix): Only use code if 1920 `FT_MULFIX_INLINED' is not defined. 1921 1922 * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c 1923 (ftc_basic_image_family_class, ftc_basic_image_cache_class, 1924 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class), 1925 src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c 1926 (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c 1927 (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make 1928 function static. 1929 1930 * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant 1931 code. 1932 19332014-03-17 Werner Lemberg <wl@gnu.org> 1934 1935 Fix Savannah bug #41869. 1936 1937 This works around a problem with HarfBuzz (<= 0.9.26), which doesn't 1938 validate glyph indices returned by 1939 `hb_ot_layout_lookup_collect_glyphs'. 1940 1941 * src/autofit/hbshim.c (af_get_coverage): Guard `idx'. 1942 1943 * docs/CHANGES: Updated. 1944 19452014-03-14 Werner Lemberg <wl@gnu.org> 1946 1947 * builds/unix/configure.raw: Don't show error messages of `which'. 1948 19492014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com> 1950 1951 Fix cppcheck 1.64 warning. 1952 1953 * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer 1954 dereference in case of error. 1955 19562014-03-09 Sean McBride <sean@rogue-research.com> 1957 1958 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning. 1959 19602014-03-06 Werner Lemberg <wl@gnu.org> 1961 1962 * Version 2.5.3 released. 1963 ========================= 1964 1965 1966 Tag sources with `VER-2-5-3'. 1967 1968 * docs/VERSION.DLL: Update documentation and bump version number to 1969 2.5.3. 1970 1971 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, 1972 builds/windows/vc2005/index.html, 1973 builds/windows/vc2008/freetype.vcproj, 1974 builds/windows/vc2008/index.html, 1975 builds/windows/vc2010/freetype.vcxproj, 1976 builds/windows/vc2010/index.html, 1977 builds/windows/visualc/freetype.dsp, 1978 builds/windows/visualc/freetype.vcproj, 1979 builds/windows/visualc/index.html, 1980 builds/windows/visualce/freetype.dsp, 1981 builds/windows/visualce/freetype.vcproj, 1982 builds/windows/visualce/index.html, 1983 builds/wince/vc2005-ce/freetype.vcproj, 1984 builds/wince/vc2005-ce/index.html, 1985 builds/wince/vc2008-ce/freetype.vcproj, 1986 builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/. 1987 1988 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3. 1989 1990 * builds/unix/configure.raw (version_info): Set to 17:2:11. 1991 * CMakeLists.txt (VERSION_PATCH): Set to 3. 1992 * docs/CHANGES: Updated. 1993 19942014-03-06 Werner Lemberg <wl@gnu.org> 1995 1996 Fixes for compilation with C++. 1997 1998 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'. 1999 (af_get_coverage): Updated. 2000 (COVERAGE): Add cast. 2001 20022014-03-06 Sean McBride <sean@rogue-research.com> 2003 2004 Remove more clang analyzer warnings. 2005 2006 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c 2007 (TT_Load_Glyph): Remove dead stores. 2008 20092014-03-05 Werner Lemberg <wl@gnu.org> 2010 2011 * builds/unix/configure.raw: Simplify. 2012 20132014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2014 2015 Fix a bug in configure in library dependency setting 2016 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652. 2017 2018 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style. 2019 20202014-03-04 Werner Lemberg <wl@gnu.org> 2021 2022 Minor fix for `make devel'. 2023 2024 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use 2025 pkg-config for bzip2 since not all GNU/Linux distributions have 2026 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include 2027 normally). 2028 20292014-03-04 Sean McBride <sean@rogue-research.com> 2030 2031 Fix several clang static analyzer dead store warnings. 2032 2033 * src/autofit/afhints.c (af_glyph_hints_reload, 2034 af_glyph_hints_align_weak_points): Remove unnecessary assignments. 2035 2036 * src/bdf/bdflib.c (bdf_font_load): Ditto. 2037 2038 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema, 2039 psh_glyph_interpolate_other_points): Ditto. 2040 2041 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto. 2042 20432014-03-03 Werner Lemberg <wl@gnu.org> 2044 2045 Rewrite library option handling in `configure'. 2046 2047 o Introduce `auto' value for `--with-XXX' library options; this is 2048 now the default. 2049 2050 o First use `pkg-config' for library detection, then fall back to 2051 other tests. 2052 2053 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png, 2054 --with-harfbuzz): Rewrite. 2055 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf' 2056 variables to collect data for `freetype2.pc' and `freetype-config'. 2057 (FT2_EXTRA_LIBS): Renamed to ... 2058 (ft2_extra_libs): This since it gets no longer substituted. 2059 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG): 2060 New output variables, replacing `XXX_PKG' and `LIBXXX'. 2061 Add notice at the end of `configure' showing the library 2062 configuration. 2063 2064 * builds/unix/freetype-config.in (--static): New command line 2065 option. 2066 (libs): Updated. 2067 (staticlibs): New variable, to be used if `--static' is given. 2068 * docs/freetype-config.1: Document `--static'. 2069 2070 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated. 2071 20722014-03-01 Werner Lemberg <wl@gnu.org> 2073 2074 Avoid `long long' warnings with older gcc compilers. 2075 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. 2076 2077 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for 2078 versions < 4.6. This is especially needed for Max OS X since this 2079 OS runs a gcc variant (or emulation) based on version 4.2.1. 2080 20812014-03-01 Werner Lemberg <wl@gnu.org> 2082 2083 * docs/INSTALL.CROSS: Revised and updated. 2084 20852014-03-01 Werner Lemberg <wl@gnu.org> 2086 2087 Make `make clean' remove `freetype2.pc'. 2088 2089 This is a generated file at build time, not configure time. 2090 2091 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ... 2092 (CLEAN): This variable. 2093 20942014-03-01 Werner Lemberg <wl@gnu.org> 2095 2096 Use pkg-config for detecting libpng and libbz2 also. 2097 2098 * builds/unix/configure.raw (HAVE_PKG): New variable. 2099 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/. 2100 Search for libpng using `pkg-config'. 2101 Fix definition of `LIBHARFBUZZ' variable. 2102 * builds/unix/freetype-config.in ($libs): Updated. 2103 * builds/unix/freetype2.in: Add `URL' field. 2104 Update `Requires.private' and `Libs.private'. 2105 * builds/unix/unix-def.in: Updated. 2106 21072014-03-01 Werner Lemberg <wl@gnu.org> 2108 2109 Add configure support for HarfBuzz. 2110 2111 * builds/unix/pkg.m4: New file. 2112 * builds/unix/configure.raw: Search for libharfbuzz using 2113 `pkg-config'. 2114 Add `--without-harfbuzz' option. 2115 * builds/unix/freetype-config.in, builds/unix/freetype2.in, 2116 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle 2117 HarfBuzz. 2118 2119 * docs/INSTALL.UNIX: Document interdependency of FreeType with 2120 HarfBuzz. 2121 21222014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com> 2123 2124 [cff] Math simplifications. 2125 2126 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'. 2127 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division. 2128 21292014-02-28 Dave Arnold <darnold@adobe.com> 2130 2131 [cff] Fix Savannah bug #41697, part 2. 2132 2133 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer, 2134 cf2_initGlobalRegionBuffer): It is possible for a charstring to call 2135 a subroutine if no subroutines exist. This is an error but should 2136 not trigger an assert. Split the assert to account for this. 2137 21382014-02-28 Dave Arnold <darnold@adobe.com> 2139 2140 [cff] Fix Savannah bug #41697, part 1. 2141 2142 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is 2143 invalid. In this case, it is not safe to use the length of 2144 `hStemHintArray'; the exception has already been recorded in 2145 `hintMask'. 2146 21472014-02-26 Werner Lemberg <wl@gnu.org> 2148 2149 [sfnt] Fix Savannah bug #41696. 2150 2151 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate, 2152 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests. 2153 21542014-02-26 Werner Lemberg <wl@gnu.org> 2155 2156 [winfnt] Fix Savannah bug #41694. 2157 2158 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset. 2159 21602014-02-26 Werner Lemberg <wl@gnu.org> 2161 2162 [cff] Fix Savannah bug #41693. 2163 2164 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array. 2165 21662014-02-26 Werner Lemberg <wl@gnu.org> 2167 2168 [bdf] Fix Savannah bug #41692. 2169 2170 bdflib puts data from the input stream into a buffer in chunks of 2171 1024 bytes. The data itself gets then parsed line by line, simply 2172 increasing the current pointer into the buffer; if the search for 2173 the final newline character exceeds the buffer size, more data gets 2174 read. 2175 2176 However, in case the current line's end is very near to the buffer 2177 end, and the keyword to compare with is longer than the current 2178 line's length, an out-of-bounds read might happen since `memcmp' 2179 doesn't stop properly at the string end. 2180 2181 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons 2182 stop at string ends. 2183 21842014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2185 2186 [autofit] Fix `make multi' compilation. 2187 2188 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'. 2189 21902014-02-19 Werner Lemberg <wl@gnu.org> 2191 Simon Bünzli <zeniko@gmail.com> 2192 2193 Fix Savannah bug #32902. 2194 2195 Patch taken from 2196 2197 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87 2198 2199 with slight modifications. 2200 2201 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to 2202 handle fonts that incorrectly use \r at the beginning of an eexec 2203 block. 2204 22052014-02-19 Simon Bünzli <zeniko@gmail.com> 2206 2207 Fix Savannah bug #41590. 2208 2209 * src/type1/t1load.c (parse_encoding): Protect against invalid 2210 number. 2211 22122014-02-12 Dave Arnold <darnold@adobe.com> 2213 2214 [cff] Optimize by using `FT_MulDiv'. 2215 Suggested by Alexei. 2216 2217 * src/cff/cf2font.c (cf2_computeDarkening): Do it. 2218 22192014-02-12 Werner Lemberg <wl@gnu.org> 2220 2221 Fix Savannah bug #41465. 2222 2223 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'. 2224 (DISTCLEAN): Remove `freetype-config'. 2225 22262014-02-08 Sean McBride <sean@rogue-research.com> 2227 2228 Fix clang static analyzer and compiler warnings. 2229 2230 * src/autofit/afhints.c (af_glyph_hints_align_weak_points), 2231 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>, 2232 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c 2233 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style), 2234 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c 2235 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load), 2236 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c 2237 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next, 2238 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead 2239 code. 2240 2241 * src/autofit/afmodule.c (af_property_get_face_globals, 2242 af_property_set, af_property_get), src/base/ftbitmap.c 2243 (ft_gray_for_premultiplied_srgb_bgra): Make functions static. 2244 2245 * src/base/ftobjs.c (ft_remove_renderer): Protect against 2246 library == NULL. 2247 (ft_property_do): Make function static. 2248 2249 * src/base/ftrfork.c: Include `ftbase.h'. 2250 2251 * src/sfnt/ttsbit.c (tt_face_load_sbix_image) 2252 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c 2253 (T1_Compute_Max_Advance): Avoid compiler warning. 2254 2255 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of 2256 variable. 2257 22582014-02-08 Werner Lemberg <wl@gnu.org> 2259 2260 Fix Windows build directories. 2261 2262 The build target is now `windows' instead of `win32'. 2263 2264 Problem reported by Nickolas George <darknova.clan@gmail.com>. 2265 2266 * builds/modules.mk: Don't use `win32' and `win16' (!) but 2267 `windows'. 2268 2269 * builds/windows/detect.mk, builds/windows/win32-def.mk: 2270 s/win32/windows/. 2271 22722014-02-08 Eugen Sawin <esawin@mozilla.com> 2273 2274 Fix Savannah bug #41507. 2275 2276 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) 2277 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling. 2278 22792014-02-08 Dave Arnold <darnold@adobe.com> 2280 2281 [cff] Fix minor performance bug. 2282 2283 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone 2284 calculations are now cached and not recomputed on each glyph. 2285 22862014-02-05 Werner Lemberg <wl@gnu.org> 2287 2288 Fix problems with perl 5.8.8 as distributed with current MinGW. 2289 2290 * src/tools/afblue.pl: Work-around for Perl bug #63402. 2291 (string_re): Avoid `possessive quantifiers', which have been 2292 introduced in Perl version 5.10. 2293 22942014-02-04 Werner Lemberg <wl@gnu.org> 2295 2296 Fix compilation with MinGW. 2297 2298 Right now, compilation out of the box with latest MinGW is broken 2299 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode, 2300 cf. 2301 2302 https://sourceforge.net/p/mingw/bugs/2024/ 2303 https://sourceforge.net/p/mingw/bugs/2046/ 2304 2305 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW. 2306 23072014-02-04 Werner Lemberg <wl@gnu.org> 2308 2309 [autofit] Minor fix. 2310 2311 * src/autofit/afcjk.c (af_cjk_metrics_init_widths), 2312 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling 2313 of alternative standard characters. 2314 This also fixes a compilation warning in non-debug mode. 2315 23162014-02-03 Werner Lemberg <wl@gnu.org> 2317 2318 [cff] Fix Savannah bug #41363. 2319 2320 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into 2321 parameter check. 2322 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if 2323 we are scaling the outline. 2324 (cf2_getPpemY): Remove problematic assertion. 2325 23262014-01-26 Werner Lemberg <wl@gnu.org> 2327 2328 [autofit] Introduce two more slots for standard characters. 2329 2330 This is useful for OpenType features like `c2sc' (caps to small 2331 caps) that don't have lowercase letters by definition, or other 2332 features that mainly operate on numerals. 2333 2334 * src/autofit/afscript.h: Add more standard characters. 2335 2336 * src/autofit/aftypes.h: Update use of `SCRIPT' macro. 2337 (AF_ScriptClassRec): Add members to hold two more standard 2338 characters. 2339 (AF_DEFINE_SCRIPT_CLASS): Updated. 2340 2341 * src/autofit/afglobal.c, src/autofit/afglobal.h, 2342 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c: 2343 Update use of `SCRIPT' macro. 2344 2345 * src/autofit/afcjk.c (af_cjk_metrics_init_widths), 2346 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more 2347 standard characters. 2348 23492014-01-24 Werner Lemberg <wl@gnu.org> 2350 2351 Fix Savannah bug #41320. 2352 2353 * src/autofit/aflatin.c (af_latin_metrics_init_blues) 2354 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'. 2355 23562014-01-23 Werner Lemberg <wl@gnu.org> 2357 2358 Fix Savannah bug #41310. 2359 2360 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>: 2361 Don't check metrics, which this format doesn't have. 2362 This is another correction to the commit from 2013-11-21. 2363 23642014-01-23 Werner Lemberg <wl@gnu.org> 2365 2366 Fix Savannah bug #41309. 2367 2368 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result 2369 of `T1_ToFixedArray'. 2370 2371 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with 2372 `t1_parse_font_matrix'. 2373 2374 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with 2375 `t1_parse_font_matrix'. 2376 (t42_parse_encoding): Synchronize with `t1_parse_encoding'. 2377 2378 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>, 2379 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'. 2380 23812014-01-22 Werner Lemberg <wl@gnu.org> 2382 2383 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks. 2384 23852014-01-16 Werner Lemberg <wl@gnu.org> 2386 2387 [autofit] Improve tracing of style coverages. 2388 2389 * include/internal/fttrace.h: Add `afglobal' for tracing style 2390 coverages. 2391 2392 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H. 2393 (FT_COMPONENT): Define. 2394 (af_face_globals_compute_style_coverage): Trace `gstyles' array 2395 data. 2396 23972014-01-09 Werner Lemberg <wl@gnu.org> 2398 2399 Fix Savannah bug #41158. 2400 2401 * builds/unix/install.mk (install): Create man page directory. 2402 24032014-01-08 Chongyu Zhu <lembacon@gmail.com> 2404 2405 [arm] Fix Savannah bug #41138, part 2. 2406 2407 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h 2408 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix 2409 preprocessor conditionals for `add.w'. 2410 24112014-01-08 Werner Lemberg <wl@gnu.org> 2412 2413 [autofit] Fix Savannah bug #41138, part 1. 2414 2415 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary 2416 enumeration names for generated `#else'. 2417 2418 * src/autofit/afblue.h: Regenerated. 2419 24202014-01-06 Werner Lemberg <wl@gnu.org> 2421 2422 Add manual page for `freetype-config'. 2423 Contributed by Nis Martensen <nis.martensen@web.de>. 2424 2425 * docs/freetype-config.1: New file. 2426 2427 * builds/unix/unix-def.in (mandir): Define. 2428 * builds/unix/install.mk (install, uninstall): Handle manpage. 2429 24302014-01-05 Werner Lemberg <wl@gnu.org> 2431 2432 [autofit] Minor fixes for `afblue.pl'. 2433 2434 * src/tools/afblue.pl (aux_name): Don't use `reverse'. 2435 <Handling #endif>: Use proper indentation for generated `#else'. 2436 2437 * src/autofit/afblue.h: Regenerated. 2438 24392014-01-04 Werner Lemberg <wl@gnu.org> 2440 2441 [autofit] Fix Indic scripts. 2442 2443 Split the single, incorrect Indic entry into separate scripts so 2444 that the covered ranges are the same: Bengali, Devanagari, Gujarati, 2445 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese, 2446 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove 2447 entries for Meetei Mayek and Sharada – the Unicode ranges were 2448 incorrect (and nobody has complained about that), fonts are scarce 2449 for those scripts, and the Indic auto-hinter support is rudimentary 2450 anyways. 2451 2452 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and 2453 AF_CONFIG_OPTION_CJK. 2454 2455 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro. 2456 Use it, together with AF_CONFIG_OPTION_INDIC and 2457 AF_CONFIG_OPTION_CJK, to update. 2458 2459 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated. 2460 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed. 2461 Sort entries by tags. 2462 24632014-01-03 Werner Lemberg <wl@gnu.org> 2464 2465 [autofit] Thinko. 2466 2467 * src/autofit/hbshim.c (af_get_char_index): Similar to 2468 `af_get_coverage', reject glyphs which are not substituted. 2469 24702014-01-03 Werner Lemberg <wl@gnu.org> 2471 2472 [autofit] Fix handling of default coverages. 2473 2474 With this commit, the implementation of coverage handling is 2475 completed. 2476 2477 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to 2478 do. 2479 Reject coverages which don't contain appropriate glyphs for blue 2480 zones. 2481 24822014-01-03 Werner Lemberg <wl@gnu.org> 2483 2484 [autofit] Fix handling of default coverages. 2485 2486 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): 2487 First handle non-default coverages, then the default coverage of the 2488 default script, and finally the other default coverages. 2489 24902014-01-03 Werner Lemberg <wl@gnu.org> 2491 2492 [autofit] Fix scaling of HarfBuzz shaping. 2493 2494 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM. 2495 24962014-01-03 Werner Lemberg <wl@gnu.org> 2497 2498 [autofit] Better ftgrid support. 2499 2500 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add 2501 parameters `is_blue' and `blue_offset'. 2502 25032014-01-01 Werner Lemberg <wl@gnu.org> 2504 2505 [autofit] Remove some styles. 2506 2507 * src/autofit/afcover.h: Remove coverages for alternative fractions, 2508 denominators, numerators, and fractions. 2509 2510 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated. 2511 25122014-01-01 Werner Lemberg <wl@gnu.org> 2513 2514 [autofit] Add more styles. 2515 2516 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New 2517 auxiliary macros; use them to define styles for Cyrillic, Greek, and 2518 Latin. 2519 2520 * src/autofit/afcover.h: Remove coverage for oldstyle figures. 2521 Since those digits are used in combination with ordinary letters, it 2522 makes no sense to handle them separately. 2523 2524 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit 2525 `options' parameter to 4 bits. 2526 25272014-01-01 Werner Lemberg <wl@gnu.org> 2528 2529 [autofit] Fix style assignments to glyphs. 2530 2531 * src/autofit/hbshim.c (af_get_coverage) 2532 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also 2533 so that we can skip glyphs that have both GSUB and GPOS data. 2534 25352014-01-01 Werner Lemberg <wl@gnu.org> 2536 2537 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/. 2538 25392014-01-01 Werner Lemberg <wl@gnu.org> 2540 2541 [autofit] Implement and use `af_get_char_index' with HarfBuzz. 2542 2543 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]: 2544 Redefine to construct HarfBuzz features. 2545 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten. 2546 2547 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use 2548 `y_offset' to adjust `best_y'. 2549 25502013-12-31 Werner Lemberg <wl@gnu.org> 2551 2552 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i. 2553 25542013-12-31 Werner Lemberg <wl@gnu.org> 2555 2556 [autofit] Fix interface of `af_get_char_index'. 2557 2558 * src/autofit/hbshim.c (af_get_char_index): Return error value. 2559 Add argument for y offset (to be used in a yet-to-come patch). 2560 2561 * src/autofit/hbshim.h, src/autofit/afcjk.c, 2562 src/autofit/aflatin.c: Updated. 2563 25642013-12-30 Werner Lemberg <wl@gnu.org> 2565 2566 [autofit] Don't combine multiple features into one set. 2567 2568 Combining them, as originally envisioned, would lead to much more 2569 complicated code, as investigations have shown meanwhile. The major 2570 drawback is that we run out of available style slots much earlier. 2571 However, this is only a theoretical issue since we don't support a 2572 large number of scripts currently. 2573 2574 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with 2575 a single-element `COVERAGE' macro, sort the elements by the feature 2576 tags, and add entry for `ruby'. 2577 2578 * src/autofit/aftypes.h: Updated. 2579 * src/autofit/hbshim.c: Updated. 2580 25812013-12-28 Werner Lemberg <wl@gnu.org> 2582 2583 [autofit] Code shuffling to reduce use of cpp macros. 2584 2585 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): 2586 Call `af_get_coverage' unconditionally. 2587 2588 * src/autofit/autofit.c: Include `hbshim.c' unconditionally. 2589 2590 * src/autofit/hbshim.c (af_get_coverage) 2591 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function. 2592 2593 * src/autofit/hbshim.h: Provide function declarations 2594 unconditionally. 2595 25962013-12-28 Werner Lemberg <wl@gnu.org> 2597 2598 [autofit] Add wrapper function for `FT_Get_Char_Index'. 2599 2600 Yet-to-come changes will provide HarfBuzz functionality for the new 2601 function. 2602 2603 * src/autofit/hbshim.c (af_get_char_index): New function. 2604 * src/autofit/hbshim.h: Updated. 2605 2606 * src/autofit/afcjk.c (af_cjk_metrics_init_widths, 2607 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated. 2608 2609 * src/autofit/aflatin.c (af_latin_metrics_init_widths, 2610 af_latin_metrics_init_blues, af_latin_metrics_check_digits): 2611 Updated. 2612 26132013-12-28 Werner Lemberg <wl@gnu.org> 2614 2615 [autofit] Use `global' HarfBuzz font object. 2616 2617 We now use `hb_font' instead of `hb_face' since yet-to-come changes 2618 need this. 2619 2620 * src/autofit/afglobal.h: Include `hbshim.h'. 2621 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member 2622 `hb_font'. 2623 2624 * src/autofit/afglobal.c (af_face_globals_new) 2625 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'. 2626 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy 2627 `hb_font'. 2628 2629 * src/autofit/hbshim.h: Include HarfBuzz headers. 2630 2631 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz 2632 headers. 2633 (af_get_coverage): Updated. 2634 26352013-12-27 Werner Lemberg <wl@gnu.org> 2636 2637 [autofit] Handle `DFLT' OpenType script for coverages. 2638 2639 * include/ftautoh.h: Document new `default-script' property. 2640 2641 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for 2642 type of first parameter. 2643 (script_tags): Add one more element. 2644 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag. 2645 2646 * src/autofit/hbshim.h: Updated. 2647 2648 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage): 2649 Updated. 2650 2651 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro. 2652 2653 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script' 2654 member. 2655 2656 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle 2657 `default-script' property. 2658 (af_autofitter_init): Updated. 2659 26602013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 2661 2662 [ftrfork] Fix the face order difference between POSIX and Carbon. 2663 2664 The fragmented resources in Suitcase and .dfont should be reordered 2665 when `POST' resource for Type1 is being restored, but reordering of 2666 sfnt resources induces the different face order. Now the ordering 2667 is restricted to `POST' resource only, to prevent the different 2668 order issue (e.g. the face index in the fontconfig cache generated 2669 with Carbon framework is incompatible with that by FreeType 2 2670 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung. 2671 2672 https://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html 2673 https://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html 2674 2675 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch 2676 `sort_by_res_id' to control the fragmented resource ordering. 2677 * include/internal/ftrfork.h: Declare new switch. 2678 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST' 2679 resource, and disable the sorting for `sfnt' resource. 2680 26812013-12-25 Werner Lemberg <wl@gnu.org> 2682 2683 Fix Savannah bug #40997. 2684 2685 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to 2686 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already 2687 be set. 2688 * src/cff/cffobjs.c (cff_face_init): Ditto. 2689 * src/cid/cidobjs.c (cid_face_init): Ditto. 2690 * src/pcf/pcfread.c (pcf_load_font): Ditto. 2691 * src/pfr/pfrobjs.c (pfr_face_init): Ditto. 2692 * src/type1/t1objs.c (T1_Face_Init): Ditto. 2693 * src/type42/t42objs.c (T42_Face_Init): Ditto. 2694 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto. 2695 26962013-12-21 Werner Lemberg <wl@gnu.org> 2697 2698 [autofit] Introduce `coverages'. 2699 2700 Coverages are the interface to the HarfBuzz library to access 2701 OpenType features for handling glyphs not addressable by the cmap. 2702 2703 Right now, compilation of HarfBuzz is only added to the development 2704 build. A solution for standard build mode will be delayed until 2705 HarfBuzz gets split into two libraries to avoid mutual dependencies 2706 between FreeType and HarfBuzz. 2707 2708 Note that this is only a first step in handling coverages, basically 2709 providing the framework only. Code for handling selected OpenType 2710 features (this is, actually using the data in `afcover.h') will 2711 follow. 2712 2713 * devel/ftoption.h, include/config/ftoption.h 2714 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro. 2715 2716 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h: 2717 New files. 2718 2719 * src/autofit/afscript.h: Add HarfBuzz script name tags. 2720 2721 * src/autofit/afstyles.h: Add default coverage enumeration values. 2722 2723 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros. 2724 (AF_Coverage): New enumeration (generated by `afcover.h'). 2725 (AF_StyleClassRec): New member `coverage'. 2726 (AF_DEFINE_STYLE_CLASS): Updated. 2727 2728 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage 2729 data. 2730 2731 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros. 2732 (AF_SCRIPT_FALLBACK): Renamed to ... 2733 (AF_STYLE_FALLBACK): ... this. 2734 2735 * src/autofit/afglobal.c: Include `hbshim.c'. 2736 Update use of `SCRIPT' and `STYLE' macros. 2737 (af_face_globals_compute_style_coverage) 2738 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'. 2739 Update. 2740 2741 * src/autofit/afmodule.h (AF_ModuleRec): 2742 s/fallback_script/fallback_style/. 2743 2744 * src/autofit/afmodule.c (af_property_set): Adapt handling of 2745 `fallback-script' property to set a fallback style. 2746 (af_property_get, af_autofitter_init): Updated. 2747 2748 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros. 2749 2750 * src/autofit/afranges.h: Update use of `SCRIPT' macro. 2751 2752 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include 2753 `hbshim.c'. 2754 2755 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'. 2756 (AUTOF_DRV_H): Add `afcover.h'. 2757 2758 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for 2759 all libraries needed by FreeType. 2760 27612013-12-21 Werner Lemberg <wl@gnu.org> 2762 2763 Fix Savannah bug #40975 (sort of). 2764 2765 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType 2766 behave the same as the Windows TrueType engine for the invalid case. 2767 27682013-12-21 Werner Lemberg <wl@gnu.org> 2769 2770 [autofit] Make PIC mode work actually. 2771 2772 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the 2773 enumeration values automatically generated by including `afscript.h' 2774 and friends. 2775 2776 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated. 2777 27782013-12-21 Werner Lemberg <wl@gnu.org> 2779 2780 Fix PIC linking. 2781 2782 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix 2783 generated function name. 2784 2785 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename 2786 to ... 2787 (FT_Init_Table_ft_raccess_guess_table): ... this so that the 2788 function name correctly corresponds to what the macro framework 2789 expects. 2790 2791 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so 2792 that PIC functions are compiled also. 2793 27942013-12-21 Werner Lemberg <wl@gnu.org> 2795 2796 [base] Add missing dependencies to Makefile. 2797 2798 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'. 2799 (BASE_H): Add `basepic.h'. 2800 28012013-12-20 Werner Lemberg <wl@gnu.org> 2802 2803 [autofit] Fix PIC compilation. 2804 2805 * src/autofit/afcjk.c (af_cjk_metrics_init_widths), 2806 src/autofit/aflatin.c (af_latin_metrics_init_widths) 2807 [FT_CONFIG_OPTION_PIC]: Declare `globals'. 2808 2809 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and 2810 AF_DEFINE_STYLE_CLASS. 2811 2812 * src/autofit/afpic.c: Include `afglobal.h'. 2813 (autofit_module_class_pic_init): Typo. 2814 2815 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS, 2816 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro 2817 parameter and structure member. 2818 28192013-12-20 Werner Lemberg <wl@gnu.org> 2820 2821 [autofit] Introduce `styles'. 2822 2823 This is the new top-level structure for handling glyph input data; 2824 scripts are now defined separately. 2825 2826 * src/autofit/aftypes.h (SCRIPT): Updated. 2827 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system' 2828 members to ... 2829 (AF_Style_ClassRec): ... this new structure. 2830 (AF_Style): New enumeration. 2831 (AF_StyleMetricsRec): Replace `script' enumeration with 2832 `style_class' pointer. 2833 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated. 2834 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros. 2835 2836 * src/autofit/afstyles.h: New file, using data from `afscript.h'. 2837 * src/autofit/afscript.h: Updated. 2838 2839 * src/autofit/afcjk.c (af_cjk_metrics_init_widths, 2840 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated. 2841 2842 * src/autofit/afglobal.c (SCRIPT): Updated. 2843 (STYLE): Redefine macro to load `afstyles.h'. 2844 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with... 2845 (af_style_names): ... this array. 2846 (af_face_globals_compute_script_coverage): Renamed to... 2847 (af_face_globals_compute_style_coverage): ... this. 2848 Updated. 2849 (af_face_globals_new, af_face_globals_free, 2850 af_face_globals_get_metrics): Updated. 2851 2852 * src/autofit/afglobal.h (SCRIPT): Updated. 2853 (STYLE): Redefine macro to load `afstyles.h'. 2854 (AF_SCRIPT_FALLBACK): Update definition. This will get more 2855 refinements with later on. 2856 (AF_SCRIPT_UNASSIGNED): Replace with... 2857 (AF_STYLE_UNASSIGNED): ... this macro. 2858 (AF_FaceGlobalsRec): Updated. 2859 2860 * src/autofit/aflatin.c (af_latin_metrics_init_widths, 2861 af_latin_metrics_init_blues, af_latin_metrics_scale_dim, 2862 af_latin_hint_edges): Updated. 2863 2864 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated. 2865 (af_ltn2_uniranges): Removed. 2866 2867 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): 2868 Updated. 2869 2870 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated. 2871 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro. 2872 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec' 2873 members. 2874 2875 * src/autofit/afranges.h: Updated. 2876 2877 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'. 2878 28792013-12-19 Werner Lemberg <wl@gnu.org> 2880 2881 [autofit] Factor scripts and uniranges out of writing system files. 2882 2883 * src/autofit/afranges.c, src/autofit/afranges.h: New files. 2884 2885 * src/autofit/afscript.h: Extend `SCRIPT' macro with more 2886 parameters, taking data from the writing system files. 2887 2888 * src/autofit/aftypes.h: Updated. 2889 2890 * src/autofit/afglobal.c: Include `afranges.h'. 2891 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS. 2892 * src/autofit/afglobal.c: Include `afranges.h'. 2893 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS. 2894 2895 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated. 2896 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated. 2897 * src/autofit/afindic.c, src/autofit/afindic.h: Updated. 2898 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated. 2899 * src/autofit/aflatin2.c, src/autofit/aflatin2.h: Updated. 2900 2901 * src/autofit/afpic.c: Updated. 2902 2903 * src/autofit/autofit.c: Include `afranges.c'. 2904 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'. 2905 29062013-12-18 Werner Lemberg <wl@gnu.org> 2907 2908 [autofit] More code orthogonality. 2909 2910 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class' 2911 pointer to an `AF_ScriptClass' structure with `script' index of type 2912 `AF_Script'. 2913 Move some code around. 2914 2915 * src/autofit/afcjk.c: Include `afpic.h'. 2916 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues, 2917 af_cjk_hint_edges): Updated. 2918 2919 * src/autofit/aflatin.c: Include `afpic.h'. 2920 (af_latin_metrics_init_widths, af_latin_metrics_init_blues, 2921 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated. 2922 2923 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated. 2924 2925 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): 2926 Updated. 2927 29282013-12-18 Werner Lemberg <wl@gnu.org> 2929 2930 [autofit] s/ScriptMetrics/StyleMetrics/. 2931 29322013-12-18 Werner Lemberg <wl@gnu.org> 2933 2934 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/ 2935 29362013-12-18 Werner Lemberg <wl@gnu.org> 2937 2938 [autofit] s/gscripts/gstyles/. 2939 29402013-12-18 Werner Lemberg <wl@gnu.org> 2941 2942 [autofit] s/glyph_scripts/glyph_styles/. 2943 2944 This is the first commit of a series to create a new top-level 2945 structure (a `style') for handling scripts, writing_systems, and 2946 soon-to-be-added coverages. 2947 29482013-12-17 Werner Lemberg <wl@gnu.org> 2949 2950 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate. 2951 29522013-12-11 Infinality <infinality@infinality.net> 2953 2954 [truetype] Simplify logic of rendering modes. 2955 2956 This patch unifies the subpixel and non-subpixel cases. 2957 2958 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove 2959 `grayscale_hinting'; all code should refer to `grayscale' instead. 2960 Remove unused `native_hinting' member. 2961 Rename `subpixel_hinting' member to `subpixel. 2962 2963 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated. 2964 (tt_loader_init): Updated. 2965 2966 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify. 2967 Updated. 2968 29692013-12-11 Werner Lemberg <wl@gnu.org> 2970 2971 [documentation] Add section how to include FreeType header files. 2972 Problem reported by David Kastrup <dak@gnu.org>. 2973 2974 Surprisingly, a description how to do that was completely missing in 2975 the API reference. 2976 2977 * include/freetype.h, include/ftchapters.h: New documentation 2978 section `header_inclusion'. 2979 29802013-12-10 Werner Lemberg <wl@gnu.org> 2981 2982 [autofit] s/DFLT/NONE/, s/dflt/none/. 2983 29842013-12-10 Werner Lemberg <wl@gnu.org> 2985 2986 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/. 2987 29882013-12-10 Werner Lemberg <wl@gnu.org> 2989 2990 [truetype] Fix scaling of vertical phantom points. 2991 2992 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and 2993 pp4.x also. 2994 29952013-12-10 Werner Lemberg <wl@gnu.org> 2996 2997 [truetype] Fix positioning of composite glyphs. 2998 Problem reported by Nigel Tao <nigeltao@golang.org>. 2999 3000 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts 3001 the glyph (component) by a fractional value computed from the LSB 3002 phantom point. This is wrong, since the horizontal phantom points 3003 get rounded horizontally later on. 3004 30052013-12-08 Werner Lemberg <wl@gnu.org> 3006 3007 * Version 2.5.2 released. 3008 ========================= 3009 3010 3011 Tag sources with `VER-2-5-2'. 3012 3013 * docs/VERSION.DLL: Update documentation and bump version number to 3014 2.5.2. 3015 3016 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, 3017 builds/windows/vc2005/index.html, 3018 builds/windows/vc2008/freetype.vcproj, 3019 builds/windows/vc2008/index.html, 3020 builds/windows/vc2010/freetype.vcxproj, 3021 builds/windows/vc2010/index.html, 3022 builds/windows/visualc/freetype.dsp, 3023 builds/windows/visualc/freetype.vcproj, 3024 builds/windows/visualc/index.html, 3025 builds/windows/visualce/freetype.dsp, 3026 builds/windows/visualce/freetype.vcproj, 3027 builds/windows/visualce/index.html, 3028 builds/wince/vc2005-ce/freetype.vcproj, 3029 builds/wince/vc2005-ce/index.html, 3030 builds/wince/vc2008-ce/freetype.vcproj, 3031 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/. 3032 3033 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2. 3034 3035 * builds/unix/configure.raw (version_info): Set to 17:1:11. 3036 * CMakeLists.txt (VERSION_PATCH): Set to 2. 3037 * docs/CHANGES: Updated. 3038 30392013-12-07 Werner Lemberg <wl@gnu.org> 3040 3041 [truetype] Next round in phantom point handling. 3042 3043 Greg Hitchcock provided very interesting insights into the 3044 complicated history of the horizontal positions of the TSB and BSB 3045 phantom points. 3046 3047 * src/truetype/ttgload.c (TT_LOADER_SET_PP) 3048 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and 3049 `grayscale_hinting' flags as conditionals for the x position of TSB 3050 and BSB. 3051 30522013-12-05 Werner Lemberg <wl@gnu.org> 3053 3054 * builds/freetype.mk (FT_CC): Removed. Unused. 3055 30562013-12-04 Werner Lemberg <wl@gnu.org> 3057 3058 [sfnt] Fix handling of embedded bitmap strikes. 3059 3060 This corrects the commit from 2013-11-21. Problem reported by 3061 Andrey Panov <panov@canopus.iacp.dvo.ru>. 3062 3063 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to 3064 detect excessive bytes for bit-aligned bitmaps. 3065 30662013-12-03 Werner Lemberg <wl@gnu.org> 3067 3068 [truetype] Remove dead code. 3069 3070 Reported by Nigel Tao <nigeltao@golang.org>. 3071 3072 * include/internal/tttypes.h (TT_LoaderRec): Remove unused 3073 `preserve_pps' field. 3074 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated. 3075 30762013-12-03 Werner Lemberg <wl@gnu.org> 3077 3078 [truetype] Fix phantom point handling. 3079 3080 This is a further improvement to the changes from 2013-11-06. 3081 3082 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points 3083 are rounded horizontally, vertical ones are rounded vertically. 3084 (TT_LOADER_SET_PP): The horizontal position of vertical phantom 3085 points in pre-ClearType mode is zero, as shown in the OpenType 3086 specification. 3087 30882013-12-02 Werner Lemberg <wl@gnu.org> 3089 3090 [truetype] Fix change from 2013-11-20. 3091 3092 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>. 3093 3094 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to 3095 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a 3096 `IS_HINTED' clause. 3097 Also remove redundant check using `maxSizeOfInstructions' – in 3098 simple glyphs, the bytecode data comes before the outline data, and 3099 a validity test for this is already present. 3100 31012013-11-27 Werner Lemberg <wl@gnu.org> 3102 3103 [autofit] Fix use of dumping functions in `ftgrid' demo program. 3104 3105 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro. 3106 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, 3107 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to 3108 handle output to stdout. 3109 Use AF_DUMP. 3110 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments, 3111 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed. 3112 31132013-11-25 Werner Lemberg <wl@gnu.org> 3114 3115 * Version 2.5.1 released. 3116 ========================= 3117 3118 3119 Tag sources with `VER-2-5-1'. 3120 3121 * docs/VERSION.DLL: Update documentation and bump version number to 3122 2.5.1. 3123 3124 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj, 3125 builds/windows/vc2005/index.html, 3126 builds/windows/vc2008/freetype.vcproj, 3127 builds/windows/vc2008/index.html, 3128 builds/windows/vc2010/freetype.vcxproj, 3129 builds/windows/vc2010/index.html, 3130 builds/windows/visualc/freetype.dsp, 3131 builds/windows/visualc/freetype.vcproj, 3132 builds/windows/visualc/index.html, 3133 builds/windows/visualce/freetype.dsp, 3134 builds/windows/visualce/freetype.vcproj, 3135 builds/windows/visualce/index.html, 3136 builds/wince/vc2005-ce/freetype.vcproj, 3137 builds/wince/vc2005-ce/index.html, 3138 builds/wince/vc2008-ce/freetype.vcproj, 3139 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/. 3140 3141 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1. 3142 3143 * builds/unix/configure.raw (version_info): Set to 17:0:11. 3144 * CMakeLists.txt (VERSION_PATCH): Set to 1. 3145 * docs/CHANGES, docs/release: Updated. 3146 31472013-11-23 Werner Lemberg <wl@gnu.org> 3148 3149 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'. 3150 3151 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS, 3152 TRICK_NAMES_COUNT): Updated. 3153 (trick_names): Add family name for the two fonts. 3154 31552013-11-23 Werner Lemberg <wl@gnu.org> 3156 3157 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo. 3158 31592013-11-21 Werner Lemberg <wl@gnu.org> 3160 3161 [sfnt] Typo. 3162 3163 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. 3164 3165 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width' 3166 value if the font lacks an `OS/2' table. 3167 31682013-11-21 Werner Lemberg <wl@gnu.org> 3169 3170 [sfnt] Improve handling of buggy embedded bitmap strikes. 3171 3172 We are now able to successfully load `AppleMyoungJo.ttf'. 3173 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>. 3174 3175 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph 3176 format. 3177 31782013-11-20 Werner Lemberg <wl@gnu.org> 3179 3180 [truetype] Don't trust `maxp's `maxSizeOfInstructions'. 3181 3182 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see 3183 3184 https://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html 3185 3186 for details. 3187 3188 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep' 3189 tables also for setting `autohint'. 3190 3191 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from 3192 `TT_Process_Composite_Glyph' for handling unreliable values of 3193 `maxSizeOfInstructions'. 3194 31952013-11-16 Werner Lemberg <wl@gnu.org> 3196 3197 [sfnt] Fix `OS/2' table version 5 support. 3198 3199 We now follow the `official' announcement from Microsoft (on the 3200 OpenType mailing list, which unfortunately hasn't a public archive). 3201 3202 * include/freetype/tttables.h (TT_OS2): 3203 s/usLowerPointSize/usLowerOpticalPointSize/, 3204 s/usUpperPointSize/usUpperOpticalPointSize/. 3205 3206 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct 3207 default values. 3208 32092013-11-13 Werner Lemberg <wl@gnu.org> 3210 3211 * builds/unix/ft2unix.h: Remove. No longer necessary. 3212 3213 * builds/unix/install.mk (install): Updated. 3214 32152013-11-13 Werner Lemberg <wl@gnu.org> 3216 3217 Simplify header file hierarchy. 3218 3219 This large patch changes the header file directory layout from 3220 `include/freetype/...' to `include/...', effectively removing one 3221 level. Since the file `ft2build.h' is also located in `include' 3222 (and it stays there even after installation), all FreeType header 3223 files are now in a single directory. 3224 3225 Applications that use (a) `freetype-config' or FreeType's 3226 `pkg-config' file to get the include directory for the compiler, and 3227 (b) the documented way for header inclusion like 3228 3229 #include <ft2build.h> 3230 #include FT_FREETYPE_H 3231 ... 3232 3233 don't need any change to the source code. 3234 3235 * include/freetype/*: Move up to... 3236 * include/*: ... this directory. 3237 3238 * builds/amiga/include/freetype/*: Move up to... 3239 * builds/amiga/include/*: ... this directory. 3240 3241 */*: Essentially do `s@/freetype/@/@' where appropriate. 3242 3243 * CMakeLists.txt: Simplify. 3244 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For 3245 `--cflags', return a single directory. 3246 * builds/unix/install.mk (install): No longer try to remove `cache' 3247 and `internal' subdirectories; instead, remove the `freetype' 3248 subdirectory. 3249 32502013-11-12 Werner Lemberg <wl@gnu.org> 3251 3252 [truetype] Fix last `truetype' commit. 3253 3254 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position. 3255 Return error value. 3256 (load_truetype_glyph): Updated. 3257 32582013-11-10 Werner Lemberg <wl@gnu.org> 3259 3260 * docs/CMAKE: New dummy file. 3261 32622013-11-08 Dave Arnold <darnold@adobe.com> 3263 3264 [cff] Fix for hints that touch. 3265 3266 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for 3267 finding index value of insertion point. 3268 32692013-11-06 Werner Lemberg <wl@gnu.org> 3270 3271 [truetype] Fix handling of phantom points in composite glyphs. 3272 Problem reported by Nigel Tao <nigeltao@golang.org>. 3273 3274 This is a follow-up commit to the previous one. 3275 3276 * src/truetype/ttgload.c (load_truetype_glyph): Call 3277 `tt_get_metrics' after loading the glyph header. 3278 32792013-11-06 Werner Lemberg <wl@gnu.org> 3280 3281 [truetype] Improve emulation of vertical metrics. 3282 3283 This commit also improves the start values of vertical phantom 3284 points. Kudos to Greg Hitchcock for help. 3285 3286 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass 3287 `yMax' value. Replace code with fixed Microsoft definition. 3288 (tt_get_metrics): Updated. 3289 (TT_LOADER_SET_PP): Add explanation how to initialize phantom 3290 points, taken from both the OpenType specification and private 3291 communication with Greg (which will eventually be added to the 3292 standard). 3293 Fix horizontal position of `pp3' and `pp4'. 3294 3295 * src/truetype/ttgload.h: Updated. 3296 3297 * src/truetype/ttdriver.c (tt_get_advances): Updated. 3298 3299 * docs/CHANGES: Updated. 3300 33012013-11-05 Werner Lemberg <wl@gnu.org> 3302 3303 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/. 3304 PlatformToolSet version 110 is for VC2012. 3305 3306 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>. 3307 33082013-11-05 Werner Lemberg <wl@gnu.org> 3309 3310 [truetype] Correctly reset point tags for glyph components. 3311 Problem reported by Nigel Tao <nigeltao@golang.org>. 3312 3313 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop. 3314 33152013-11-02 Werner Lemberg <wl@gnu.org> 3316 3317 [truetype] Fix GETINFO opcode handling of subpixel hinting bits. 3318 3319 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to 3320 get info on subpixel hinting. 3321 3322 * docs/CHANGES: Updated. 3323 33242013-11-02 Werner Lemberg <wl@gnu.org> 3325 3326 Fix Savannah bug #40451. 3327 3328 Simply apply the patch from the bug report. 3329 3330 * builds/unix/ftconfig.in, builds/vms/ftconfig.h, 3331 include/freetype/config/ftconfig.h: The used #pragma directives only 3332 work with gcc versions 4.6 and higher. 3333 33342013-11-01 Werner Lemberg <wl@gnu.org> 3335 3336 * docs/CHANGES: Updated. 3337 33382013-11-01 Werner Lemberg <wl@gnu.org> 3339 3340 [truetype] Minor code refactoring. 3341 3342 Two benefits: The allocated FDEF (and IDEF) array gets slightly 3343 smaller, and the `ttdebug' demo program has access to function 3344 numbers without additional costs. 3345 3346 Fortunately, no changes to FontForge are necessary – this is the 3347 only external TrueType debugger I know of, but others may exist and 3348 should check the code accordingly. 3349 3350 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and 3351 `Cur_End' with a pointer to the corresponding `TT_DefRecord' 3352 structure. 3353 3354 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF, 3355 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>): 3356 Updated. 3357 33582013-10-27 Werner Lemberg <wl@gnu.org> 3359 3360 [sfnt] Implement support for `OS/2' table version 5. 3361 3362 See 3363 3364 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism 3365 3366 for the announcement. 3367 3368 * include/freetype/tttables.h (TT_OS2): Add fields 3369 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns 3370 this structure only as a pointer through `FT_Get_Sfnt_Table', there 3371 shouldn't be any ABI problems. 3372 3373 * src/sfnt/ttload.c (tt_face_load_os2): Implement it. 3374 3375 * docs/CHANGES: Updated. 3376 33772013-10-24 Werner Lemberg <wl@gnu.org> 3378 3379 * README.git, docs/CHANGES, docs/INSTALL: Updated. 3380 33812013-10-24 John Cary <cary@txcorp.com> 3382 3383 Provide cmake support. 3384 3385 * CMakeLists.txt: New file. 3386 33872013-10-23 Kenneth Miller <kennethadammiller@yahoo.com> 3388 Werner Lemberg <wl@gnu.org> 3389 3390 Provide support for x64 builds in Visual C++ project files. 3391 3392 * src/builds/win32: Renamed to... 3393 * src/builds/windows: This. 3394 3395 * src/builds/windows/vc2010/*: Updated to handle x64 target. 3396 3397 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where 3398 appropriate. 3399 34002013-10-22 Werner Lemberg <wl@gnu.org> 3401 3402 * src/base/md5.c, src/base/md5.h: Updated to recent version. 3403 3404 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'. 3405 3406 The canonical URL to get updates for this file is 3407 3408 https://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/ 3409 3410 as the author told me in private communication. 3411 34122013-10-19 Werner Lemberg <wl@gnu.org> 3413 3414 [autofit] s/SMALL_TOP/X_HEIGHT/. 3415 3416 * src/autofit/afblue.dat: Updated. 3417 3418 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. 3419 3420 * src/autofit/aflatin.c, src/autofit/aflatin.h, 3421 src/autofit/aflatin2.c: Updated. 3422 34232013-10-19 Werner Lemberg <wl@gnu.org> 3424 3425 * src/autofit/afblue.dat: s/MINOR/DESCENDER/. 3426 3427 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. 3428 34292013-10-16 Werner Lemberg <wl@gnu.org> 3430 3431 [autofit] Add description strings to script entries. 3432 3433 Currently, this is unused. 3434 3435 * src/autofit/afscript.h: Do it. 3436 * src/autofit/afglobal.c, src/autofit/afpic.c, 3437 src/autofit/aftypes.h: Updated. 3438 34392013-10-16 Werner Lemberg <wl@gnu.org> 3440 3441 [autofit] Improve tracing message for extra light flag. 3442 3443 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it. 3444 34452013-10-15 Chongyu Zhu <lembacon@gmail.com> 3446 3447 [arm] Fix thumb2 inline assembly under LLVM. 3448 3449 When using `ADD' with an immediate operand, the instruction is 3450 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the 3451 immediate operand cannot exceed 4095. It will fail to compile with 3452 LLVM. 3453 3454 However, in GCC, due to some legacy compatibility considerations, 3455 `ADD.W' will be automatically emitted when the immediate operand is 3456 larger than 4095. 3457 3458 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h 3459 (FT_MulFix_arm) [__GNUC__]: Support clang compiler. 3460 3461 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto. 3462 34632013-10-12 Werner Lemberg <wl@gnu.org> 3464 3465 [autofit] Improve tracing of `latin' hinter. 3466 3467 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue 3468 zone types. 3469 (af_latin_metrics_scale_dim): Report scaling changes due to x height 3470 alignment. 3471 Report scaled stroke width and blue zone values. 3472 34732013-10-03 Dave Arnold <darnold@adobe.com> 3474 3475 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero. 3476 3477 Note that the old code avoided using a region of the piecewise 3478 linear function where the slope was zero. The recovery was to use a 3479 different section of the function, which produced a different, 3480 incorrect amount of darkening. 3481 34822013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us> 3483 3484 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'. 3485 34862013-10-02 Dave Arnold <darnold@adobe.com> 3487 3488 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount. 3489 3490 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect 3491 is to use a previous darkening amount when producing an unhinted, 3492 unscaled outline. This can cause autohint samples in ftgrid and 3493 ftview to be based on darkened CFF outlines instead of unhinted, 3494 undarkened ones. 3495 34962013-09-29 Dave Arnold <darnold@adobe.com> 3497 3498 Fix Savannah bug #39295. 3499 3500 The bug was caused by switching to the initial hintmap (the one in 3501 effect when `moveto' executes) just before drawing the final element 3502 in the charstring. This ensured that the path was closed (in both 3503 Character Space and Device Space). But if the final element was a 3504 curve and if the final hintmap was different enough from the initial 3505 one, then the curve was visibly distorted. 3506 3507 The first part of the fix is to draw the final curve using the final 3508 hintmap as specified by the charstring. This corrects the 3509 distortion but does not ensure closing in Device Space. It may 3510 require the rasterizer to automatically generate an extra closing 3511 line. Depending on the hintmap differences, this line could be from 3512 zero to a couple pixels in length. 3513 3514 The second part of the fix covers the case where the charstring 3515 subpath is closed with an explicit line. We now modify that line's 3516 end point to avoid the distortion. 3517 3518 Some glyphs in the bug report font (TexGyreHeros-Regular) that show 3519 the change are: 3520 3521 25ppem S (98) 3522 24ppem eight (52) 3523 25.5ppem p (85) 3524 3525 Curves at the *end* of a subpath are no longer distorted. However, 3526 some of these glyphs have bad hint substitutions in the middle of a 3527 subpath, and these are not affected. 3528 3529 The patch has been tested with a set of 106 fonts that shipped with 3530 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from 3531 Google Fonts. There are 1.5 million glyphs, of which some 20k are 3532 changed with the fix. A sampling of a few hundred of these changes 3533 have been examined more closely, and the changes look good (or at 3534 least acceptable). 3535 3536 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing' 3537 to indicate that we synthesize a closepath line. 3538 3539 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated. 3540 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for 3541 `lineto' operator) and adjust hint zone. 3542 For synthesized closing lines, use end point in first hint zone. 3543 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In 3544 particular, shift the detection of zero-length lines from character 3545 space to device space. 3546 (cf2_glyphpath_closeOpenPath): Remove assertion. 3547 Updated. 3548 35492013-09-25 Werner Lemberg <wl@gnu.org> 3550 3551 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays. 3552 35532013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 3554 3555 [bdf, pcf] Refuse non-zero face_index. 3556 3557 Suggested by Akira Tagoh, see 3558 3559 https://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html 3560 3561 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument' 3562 error if the font could be opened but non-zero `face_index' is 3563 given. 3564 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto. 3565 3566 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED 3567 macro for `face_index' because it is validated later. 3568 35692013-09-23 Werner Lemberg <wl@gnu.org> 3570 3571 Fix Savannah bug #40090. 3572 3573 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit 3574 306f8c5d (from 2013-08-25) affecting this function. 3575 35762013-09-22 Werner Lemberg <wl@gnu.org> 3577 3578 [autofit] Disunify Cyrillic and Greek handling from Latin. 3579 3580 * src/autofit/afscript.h: Add Cyrillic and Greek. 3581 3582 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK, 3583 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic. 3584 (AF_BLUE_STRINGSET_LATN): Fix typo. 3585 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. 3586 3587 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New 3588 arrays. 3589 (af_grek_script_class, af_cyrl_script_class): New scripts. 3590 * src/autofit/aflatin.h: Updated. 3591 35922013-09-20 Werner Lemberg <wl@gnu.org> 3593 3594 * docs/CHANGES: Updated. 3595 35962013-09-20 Behdad Esfahbod <behdad@behdad.org> 3597 3598 Fix vertical size of emboldened glyphs. 3599 3600 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709 3601 3602 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY' 3603 also. 3604 36052013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com> 3606 3607 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation 3608 algorithm description. 3609 36102013-09-11 Werner Lemberg <wl@gnu.org> 3611 3612 [autofit] Improve Hebrew rendering. 3613 3614 This change introduces a new blue zone property 3615 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short 3616 top segments. 3617 3618 * src/autofit/afblue.dat: Fix Hebrew blue strings. 3619 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP. 3620 3621 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro. 3622 3623 * src/autofit/afblue.c, src/autofit/afblue.h: Updated. 3624 3625 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle 3626 `AF_LATIN_IS_LONG_BLUE'. 3627 3628 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro. 3629 36302013-08-28 Behdad Esfahbod <behdad@google.com> 3631 3632 [sfnt] Fix frame access while reading WOFF table directory. 3633 3634 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame 3635 while reading the directory entries for the whole loop. 3636 36372013-08-29 Werner Lemberg <wl@gnu.org> 3638 Behdad Esfahbod <behdad@google.com> 3639 3640 Implement support for WOFF containers. 3641 3642 We simply synthesize a SFNT from the WOFF, create a memory stream 3643 for the new data, and load the SFNT as usual. 3644 3645 Does NOT add any API to access WOFF metadata or private blocks. 3646 3647 * include/freetype/internal/tttypes.h (WOFF_HeaderRec, 3648 WOFF_TableRec): New structures. 3649 3650 * include/freetype/tttags.h (TTAG_wOFF): New macro. 3651 3652 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling 3653 `open_face'. 3654 3655 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include 3656 `FT_GZIP_H'. 3657 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for 3658 writing to a stream. 3659 (sfnt_stream_close, compare_offsets, woff_open_font): New functions. 3660 (sfnt_open_font): Handle `TTAG_wOFF'. 3661 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'. 3662 3663 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling 3664 `sfnt->init_face'. 3665 3666 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an 3667 argument so that a changed stream survives. 3668 Update callers. 3669 36702013-08-28 Werner Lemberg <wl@gnu.org> 3671 3672 [gzip] New function `FT_Gzip_Uncompress'. 3673 3674 This is modeled after zlib's `uncompress' function. We need this 3675 for WOFF support. 3676 3677 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress): 3678 New function. 3679 3680 * src/gzip/rules.mk: Rewrite to better reflect dependencies. 3681 36822013-08-28 Werner Lemberg <wl@gnu.org> 3683 3684 [autofit] Fix `make multi' compilation. 3685 3686 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include 3687 `afblue.h' but `aftypes.h'. 3688 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'. 3689 36902013-08-28 Werner Lemberg <wl@gnu.org> 3691 3692 [autofit] Fix C++ compilation. 3693 3694 * src/autofit/afglobal.c (af_face_globals_get_metrics), 3695 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c 3696 (af_deva_script_class): Use proper casts. 3697 36982013-08-27 Behdad Esfahbod <behdad@google.com> 3699 3700 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos. 3701 37022013-08-27 Behdad Esfahbod <behdad@google.com> 3703 3704 FT_Open_Face: Improve external stream handling. 3705 3706 If the font's `clazz->init_face' function wants to swap to new 3707 stream, handling of whether original stream was external could 3708 result to either memory leak or double free. Mark externality into 3709 face flags before calling `init_face' such that the clazz can handle 3710 external streams properly. 3711 3712 * src/base/ftobjs.c (FT_Open_Face): Move code to set 3713 FT_FACE_FLAG_EXTERNAL_STREAM to... 3714 (open_face): This function. 3715 37162013-08-27 Werner Lemberg <wl@gnu.org> 3717 3718 Remove `FT_SqrtFixed' function. 3719 3720 It's no longer used. 3721 3722 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it. 3723 37242013-08-27 Werner Lemberg <wl@gnu.org> 3725 3726 [autofit] While tracing, report script names instead of ID values. 3727 3728 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]: 3729 New array. 3730 * src/autofit/afglobal.h: Updated. 3731 3732 * src/autofit/afcjk.c (af_cjk_metrics_init_widths, 3733 af_cjk_hint_edges): Use `af_script_names'. 3734 * src/autofit/aflatin.c (af_latin_metrics_init_widths, 3735 af_latin_hint_edges): Ditto. 3736 37372013-08-26 Werner Lemberg <wl@gnu.org> 3738 3739 [autofit] Report used script while hinting a glyph. 3740 3741 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c 3742 (af_latin_hint_edges): Implement it. 3743 37442013-08-26 Werner Lemberg <wl@gnu.org> 3745 3746 [autofit] Add support for Hebrew script. 3747 3748 * src/autofit/afblue.dat: Add blue strings for Hebrew. 3749 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated. 3750 3751 * src/autofit/aflatin.c (af_hebr_uniranges): New array. 3752 (af_hebr_script_class): New script. 3753 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated. 3754 37552013-08-26 Werner Lemberg <wl@gnu.org> 3756 3757 [autofit] Improve tracing messages. 3758 3759 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script 3760 ID in tracing message. 3761 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner 3762 loop. 3763 Improve tracing messages. 3764 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable 3765 `num_actions' to count hinting actions. 3766 Improve tracing messages. 3767 3768 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention 3769 script ID in tracing message. 3770 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing 3771 messages. 3772 37732013-08-26 Werner Lemberg <wl@gnu.org> 3774 3775 Better tracing of loaded glyphs. 3776 3777 Previously, the loading of a glyph was traced at level 4, if at all. 3778 With this change, all font loading routines emit a tracing message 3779 at level 1, making it easier to select tracing output (for example 3780 using F2_DEBUG="any:1 afhints:7 aflatin:7"). 3781 3782 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message. 3783 * src/cff/cffdrivr.c (cff_glyph_load): Ditto. 3784 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing 3785 messages. 3786 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing 3787 message. 3788 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto. 3789 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message. 3790 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto. 3791 * src/type1/t1gload.c (T1_Load_Glyph): Ditto. 3792 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto. 3793 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto. 3794 37952013-08-26 Werner Lemberg <wl@gnu.org> 3796 3797 [autofit] Fix script selection. 3798 3799 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use 3800 `AF_SCRIPT_DFLT', not value 0. 3801 Simplify code. 3802 3803 * src/autofit/afscript.h: Sort by script name. 3804 38052013-08-26 Werner Lemberg <wl@gnu.org> 3806 3807 [autofit] Make `dummy' hinter work as expected. 3808 3809 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling 3810 information. 3811 (af_dummy_hints_apply): Scale the glyphs. 3812 38132013-08-25 Werner Lemberg <wl@gnu.org> 3814 3815 [autofit] Make `cjk' module use blue stringsets. 3816 3817 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed. 3818 (af_cjk_hani_blue_chars): Removed. 3819 (AF_CJK_BLUE_TYPE_*): Removed. 3820 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with 3821 AF_BLUE_STRING_MAX_LEN. 3822 Change loops to use offsets (in file `afblue.h') into the new arrays 3823 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c'). 3824 Instead of three dimensions (as used in the old blue string array) 3825 we now use properties to do the same, saving one loop nesting level. 3826 3827 * src/autofit/afcjk.h: Remove old enumeration values superseded by 3828 the new data in `afblue.h'. 3829 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE, 3830 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in 3831 `af_cjk_metrics_init_blues'. 3832 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value. 3833 (AF_CJK_BLUE_IS_TOP): Renamed to... 3834 (AF_CJK_BLUE_TOP): This. 3835 (AF_CJK_MAX_BLUES): Remove. 3836 (AF_CJKAxisRec): Updated. 3837 38382013-08-25 Werner Lemberg <wl@gnu.org> 3839 3840 [autofit] Typo. 3841 3842 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use 3843 cast. 3844 38452013-08-25 Werner Lemberg <wl@gnu.org> 3846 3847 [autofit] Synchronize `cjk' with `latin' module (and vice versa). 3848 3849 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing 3850 messages. 3851 (af_cjk_metrics_init_blues): Don't pass blue string array as 3852 argument but use the global array directly. 3853 Use `outline' directly. 3854 Update and add tracing messages. 3855 (af_cjk_metrics_init): Simplify code. 3856 (af_cjk_metrics_scale_dim): Improve tracing message. 3857 (af_cjk_metrics_scale): Synchronize. 3858 3859 * src/autofit/aflatin.c (af_latin_metrics_init_widths, 3860 af_latin_metrics_init_blues): Improve and add tracing messages. 3861 38622013-08-25 Werner Lemberg <wl@gnu.org> 3863 3864 [autofit] Make `latin' module use blue stringsets. 3865 3866 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed. 3867 (af_latin_blue_chars): Removed. 3868 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS 3869 with AF_BLUE_STRING_MAX_LEN. 3870 Change loops to use offsets (in file `afblue.h') into the new arrays 3871 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c'). 3872 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro. 3873 3874 * src/autofit/aflatin.h: Remove old enumeration values superseded by 3875 the new data in `afblue.h'. 3876 (AF_LATIN_IS_TOP_BLUE): Updated definition. 3877 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro. 3878 (AF_LATIN_MAX_BLUES): Remove. 3879 (AF_LatinAxisRec): Updated. 3880 38812013-08-25 Werner Lemberg <wl@gnu.org> 3882 3883 [autofit] Add blue stringsets. 3884 3885 * src/autofit/aftypes.h: Include `afblue.h'. 3886 (AF_ScriptClassRec): Add `blue_stringset' field. 3887 (AF_DEFINE_SCRIPT_CLASS): Updated. 3888 3889 * src/autofit/autofit.c: Include `afblue.c'. 3890 3891 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c 3892 (af_dflt_script_class), src/autofit/afindic.c 3893 (af_deva_script_class), src/autofit/aflatin.c 3894 (af_latn_script_class), src/autofit/aflatin2.c 3895 (af_ltn2_script_class): Updated. 3896 3897 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'. 3898 38992013-08-25 Werner Lemberg <wl@gnu.org> 3900 3901 [autofit] Introduce data file for blue strings. 3902 3903 The idea is to have a central file which gets processed by a Perl 3904 script to create proper `.c' and `.h' files using templates. There 3905 are two other reasons to do that: 3906 3907 . The data file should be easily readable. We use UTF-8 encoding 3908 which then gets converted to single bytes. 3909 3910 . Since the number of supported scripts will increase soon, the 3911 current usage of blue string arrays is a waste of space. Using 3912 the Perl script it is possible to imitate jagged arrays, 3913 defining enumeration constants as offsets into the arrays. 3914 3915 This commit only adds files without changing any functionality. 3916 3917 * src/autofit/afblue.dat: New data file. 3918 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'. 3919 3920 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files 3921 for... 3922 * src/autofit/afblue.c, src/autofit/afblue.c: New source files. 3923 To avoid a dependency on Perl, we add them too. 3924 39252013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com> 3926 3927 [base] Enable new algorithm for `BBox_Cubic_Check'. 3928 3929 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove 3930 the old one. 3931 Improve comments. 3932 39332013-08-18 Werner Lemberg <wl@gnu.org> 3934 3935 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit. 3936 39372013-08-18 Werner Lemberg <wl@gnu.org> 3938 3939 Fix Savannah bug #39804. 3940 3941 * builds/unix/configure.raw (LIBPNG): Define and export. 3942 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle 3943 libpng. 3944 39452013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com> 3946 3947 [base] Clean up BBox_Conic_Check. 3948 3949 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for 3950 extremum at the segment ends, which are already within the bbox. 3951 Slightly modify calculations. 3952 39532013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com> 3954 3955 [base] Finish experimental (disabled) BBox_Cubic_Check implementation. 3956 3957 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve 3958 accuracy and avoid overflows. 3959 39602013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com> 3961 3962 [base] Refactor experimental (disabled) BBox_Cubic_Check. 3963 3964 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search 3965 as the mirror image of the maximum search implemented here... 3966 (update_max): New function. 3967 39682013-08-06 John Tytgat <John.Tytgat@esko.com> 3969 3970 Fix Savannah bug #39702. 3971 3972 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset 3973 != 0'; this stronger test is mandated by the CFF specification. 3974 Fix test for INDEX structures which have one or more empty entries 3975 at the end. 3976 39772013-08-05 Werner Lemberg <wl@gnu.org> 3978 3979 Fix gcc pragmas, part 2. 3980 3981 * src/truetype/ttinterp.c (TT_MulFix14_long_long, 3982 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been 3983 introduced with gcc version 4.6. 3984 39852013-08-05 Werner Lemberg <wl@gnu.org> 3986 3987 Fix gcc pragmas. 3988 3989 * src/truetype/ttinterp.c (TT_MulFix14_long_long, 3990 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic 3991 pragmas within a function body. 3992 39932013-08-05 Werner Lemberg <wl@gnu.org> 3994 3995 Fix Savannah bug #39700. 3996 3997 * builds/unix/ftconfig.h: Synchronize with 3998 `include/freetype/config/ftconfig.h'. 3999 4000 * builds/vms/ftconfig.h: Ditto. 4001 Make the differences to the master `ftconfig.h' file as small as 4002 possible for easier maintenance. 4003 40042013-08-05 Werner Lemberg <wl@gnu.org> 4005 4006 [autofit] Improve handling of `near' points. 4007 4008 Points which are very near to each other are now marked as such. 4009 The `weak' flag is then computed by using the `in' vector of the 4010 first and the `out' vector of the last point of a group of near 4011 points. 4012 4013 For example, this fixes the rendering of glyph `Oslash' in 4014 `Roboto-Thin.ttf'. 4015 4016 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'. 4017 4018 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce 4019 the heuristic value `near_limit' to decide whether the current point 4020 is near to the previous one, then set `AF_FLAG_NEAR' accordingly. 4021 Store good `in' vector (of last non-near point) in 4022 `last_good_in_{x,y}' and use it as an argument to 4023 `ft_corner_is_flat' if necessary. 4024 40252013-08-02 Werner Lemberg <wl@gnu.org> 4026 4027 * include/freetype/ftcffdrv.h: Improve documentation. 4028 This is based on blog entries from David Lemon and Dave Arnold (both 4029 from Adobe) with kind permission. Dave also helped in 4030 proof-reading. 4031 40322013-08-02 Werner Lemberg <wl@gnu.org> 4033 4034 [autofit] Move declaration of scripts into separate file. 4035 4036 This has the benefit that we don't need to duplicate the data at 4037 different places. 4038 4039 * src/autofit/afscript.h: New file. 4040 4041 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define 4042 the enumeration values. 4043 4044 * src/autofit/afglobal.c: Include `afscript.h' to get the script 4045 specific header files. 4046 (af_script_classes): Include `afscript.h' to fill this array. 4047 4048 * src/autofit/afpic.c: Include `afscript.h' to get the script 4049 specific header files. 4050 (autofit_module_class_pic_init): Include `afscript.h' for 4051 initialization. 4052 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT, 4053 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead. 4054 4055 * src/autofit/rules.mk (AUTOF_DRV_H): Updated. 4056 40572013-08-02 Werner Lemberg <wl@gnu.org> 4058 4059 [autofit] Move declaration of writing systems into separate file. 4060 4061 This has the benefit that we don't need to duplicate the data at 4062 different places. 4063 4064 * src/autofit/afwrtsys.h: New file. 4065 4066 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to 4067 define the enumeration values. 4068 4069 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing 4070 system specific header files. 4071 Include `afpic.h'. 4072 (af_writing_system_classes): Include `afwrtsys.h' to fill this 4073 array. 4074 4075 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing 4076 system specific header files. 4077 (autofit_module_class_pic_init): Include `afwrtsys.h' for 4078 initialization. 4079 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT, 4080 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use 4081 `AF_WRITING_SYSTEM_MAX' instead. 4082 40832013-08-02 Werner Lemberg <wl@gnu.org> 4084 4085 [sfnt] Fix compilation with g++. 4086 4087 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use 4088 cast. 4089 (Load_SBit_Png): Pacify compiler. 4090 40912013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4092 Werner Lemberg <wl@gnu.org> 4093 4094 [autofit] Fix `make multi'. 4095 4096 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY, 4097 FT_LOCAL_ARRAY_DEF): New macros. 4098 4099 * src/autofit/afglobal.c (af_writing_system_classes, 4100 af_script_classes): Use FT_LOCAL_ARRAY_DEF. 4101 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and 4102 `af_script_classes'. 4103 * src/autofit/afloader.c: Include `afpic.h'. 4104 41052013-08-01 Werner Lemberg <wl@gnu.org> 4106 4107 Another round of cppcheck nitpicks. 4108 4109 The call was (from the top-level of the FreeType tree): 4110 4111 cppcheck --force \ 4112 --enable=all \ 4113 -I /usr/include \ 4114 -I /usr/local/include \ 4115 -I /usr/lib/gcc/i586-suse-linux/4.7/include \ 4116 -I include \ 4117 -I include/freetype \ 4118 -I include/freetype/config \ 4119 -I include/freetype/internal \ 4120 -DFT2_BUILD_LIBRARY \ 4121 . &> cppcheck.log 4122 4123 using cppcheck git commit f7e93f99. 4124 4125 Note that cppcheck still can't handle `#include FOO' (with `FOO' a 4126 macro). 4127 4128 */* Improve variable scopes. 4129 */* Remove redundant initializations which get overwritten. 4130 4131 * src/gxvalid/*: Comment out redundant code or guard it with 4132 FT_DEBUG_LEVEL_TRACE. 4133 41342013-07-30 Werner Lemberg <wl@gnu.org> 4135 4136 [autofit] Introduce `writing systems'. 4137 4138 This patch adds a new top level to the auto-hinter's script class 4139 hierarchy. It defines `writing systems' which can contain multiple 4140 scripts. 4141 4142 For example, the `latin' writing system (in file `aflatin.c') is 4143 able to support scripts like Latin, Cyrillic, Armenian, etc., which 4144 can be handled similarly. 4145 4146 Scripts are now named using four-letter OpenType tags. 4147 4148 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members 4149 to... 4150 (AF_WritingSystemClassRec): This new structure. It holds pointers 4151 to functions which can be shared among related scripts. 4152 (AF_WritingSystem): New enumeration. 4153 (AF_Script): Revised values using four-letter tags. 4154 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro. 4155 (AF_DEFINE_SCRIPT_CLASS): Updated. 4156 4157 * src/autofit/afglobal.c (af_writing_system_classes): New global, 4158 constant array. 4159 (af_script_classes): Updated. 4160 (af_face_globals_free): Updated. 4161 Remove assertion. 4162 (af_face_globals_get_metrics): Updated. 4163 4164 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK) 4165 [!AF_CONFIG_OPTION_CJK]: Handle this case. 4166 4167 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph): 4168 Updated. 4169 4170 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated; 4171 initialize structures for both writing systems and scripts. 4172 * src/autofit/afpic.h: Updated. 4173 (AF_WRITING_SYSTEM_CLASSES_GET): New macro. 4174 4175 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing 4176 system. 4177 (af_cjk_uniranges): Renamed to... 4178 (af_hani_uniranges): This. 4179 (af_cjk_script_class): Reduced and renamed to... 4180 (af_hani_script_class): This. 4181 * src/autofit/afcjk.h: Updated. 4182 4183 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing 4184 system. 4185 (af_dummy_script_class): Reduced and renamed to... 4186 (af_dflt_script_class): This. 4187 * src/autofit/afdummy.h: Updated. 4188 4189 * src/autofit/afindic.c (af_indic_writing_system_class): New writing 4190 system. 4191 (af_indic_uniranges): Renamed to... 4192 (af_deva_uniranges): This. 4193 (af_indic_script_class): Reduced and renamed to... 4194 (af_deva_script_class): This. 4195 * src/autofit/afcjk.h: Updated. 4196 4197 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing 4198 system. 4199 (af_latin_uniranges): Renamed to... 4200 (af_latn_uniranges): This. 4201 (af_latin_script_class): Reduced and renamed to... 4202 (af_latn_script_class): This. 4203 * src/autofit/aflatin.h: Updated. 4204 4205 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New 4206 writing system. 4207 (af_latin2_uniranges): Renamed to... 4208 (af_ltn2_uniranges): This. 4209 Synchronize ranges with `latin'. 4210 (af_latin2_script_class): Reduced and renamed to... 4211 (af_ltn2_script_class): This. 4212 * src/autofit/aflatin2.h: Updated. 4213 42142013-07-30 Werner Lemberg <wl@gnu.org> 4215 4216 [autofit] Variable renaming. 4217 4218 * src/autofit/aftypes.h (AF_ScriptMetricsRec): 4219 s/clazz/script_class/. 4220 Update all users. 4221 42222013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4223 4224 Ignore libpng-config under cross-building configuration, 4225 because it will return the flags for the hosting environment. 4226 4227 * builds/unix/configure.raw: Ignore libpng-config when 4228 `cross_compiling' == yes. 4229 42302013-07-30 Behdad Esfahbod <behdad@google.com> 4231 4232 Prevent division by zero by a transparent color. 4233 4234 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): 4235 Return 0 immediately, when alpha channel is zero. 4236 42372013-07-25 Behdad Esfahbod <behdad@google.com> 4238 4239 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR. 4240 4241 Also disambiguate Google's color bitmap tables. 4242 4243 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR): 4244 New macros. 4245 4246 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add 4247 TT_SBIT_TABLE_TYPE_CBLC. 4248 4249 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR. 4250 4251 * src/sfnt/ttsbit.c (tt_face_load_sbit, 4252 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle 4253 TT_SBIT_TABLE_TYPE_CBLC. 4254 42552013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> 4256 4257 [sfnt] Fix for `make multi' target. 4258 4259 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF(). 4260 42612013-07-20 Werner Lemberg <wl@gnu.org> 4262 4263 * docs/INSTALL.GNU: Updated. 4264 42652013-07-20 Behdad Esfahbod <behdad@google.com> 4266 4267 [sfnt] Fix `sbix' table version handling. 4268 4269 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]: 4270 USHORT version numbers are to be considered as `minor'. 4271 42722013-07-19 Werner Lemberg <wl@gnu.org> 4273 4274 [autofit] Fix segment classification for blue zones. 4275 4276 The old code (essentially unchanged since the very beginning) 4277 incorrectly handled this configuration 4278 4279 x -o- x 4280 / \ 4281 / \ 4282 / \ 4283 o o 4284 4285 as flat and this 4286 4287 o o 4288 / / 4289 x| x| 4290 | | 4291 o---------------o 4292 4293 as round. (`o' and `x' are on and off points, respectively). 4294 4295 This is a major change which should improve the rendering results 4296 enormously for many TrueType fonts, especially in the range approx. 4297 20-40ppem, fixing the appearance of many overshoots. 4298 4299 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the 4300 first and last points of the segment, not the points right before 4301 and after. 4302 43032013-07-19 Behdad Esfahbod <behdad@google.com> 4304 4305 [sfnt] `sbix' fix-ups. 4306 4307 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps 4308 are rendered scaled and then the `glyf' outline rendered on top. We 4309 don't support that yet, so just ignore the `glyf' outline and 4310 advertise it as a bitmap-only font. 4311 4312 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics) 4313 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units. 4314 (tt_face_load_sbix_image): Typo. 4315 43162013-07-18 Behdad Esfahbod <behdad@google.com> 4317 4318 [sfnt] Add support for Apple's `sbix' color bitmap table. 4319 4320 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen 4321 fields to FT_Short and FT_UShort, respectively. 4322 (TT_SbitTableType): New enumeration. 4323 (TT_FaceRec): Add `sbit_table_type' field. 4324 4325 * include/freetype/tttags.h (TTAG_sbix): New macro. 4326 4327 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic 4328 FT_GlyphSlot argument instead FT_Bitmap. 4329 Add flag to control map and metrics handling. 4330 Update all users. 4331 4332 * src/sfnt/ttsbit.c: Include `ttmtx.h'. 4333 (tt_face_load_eblc): Renamed to... 4334 (tt_face_load_sbit): This. 4335 Handle `sbix' bitmaps. 4336 (tt_face_free_eblc): Renamed to... 4337 (tt_face_load_sbit): This. 4338 Updated. 4339 (tt_face_load_strike_metrics): Handle `sbix' bitmaps. 4340 (tt_face_load_sbix_image): New function. 4341 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image, 4342 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned, 4343 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png, 4344 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass 4345 and handle load flags. 4346 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better 4347 handle formats 17-19. 4348 Move color to grayscale conversion to... 4349 (tt_face_load_sbit_image): Here. 4350 Handle `sbix' bitmaps. 4351 4352 * src/sfnt/pngshim.h: Updated. 4353 * src/sfnt/ttsbit.h: Updated. 4354 * src/sfnt/sfdriver.c: Updated. 4355 43562013-07-18 Werner Lemberg <wl@gnu.org> 4357 4358 [sfnt] Ignore invalid magic number in `head' or `bhed'. 4359 4360 Other font engines seem to ignore it also. Problem reported by 4361 Hin-Tak Leung <htl10@users.sourceforge.net>. 4362 4363 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if 4364 we have an invalid magic number. 4365 43662013-07-16 Werner Lemberg <wl@gnu.org> 4367 4368 [smooth] Fix segfault caused by previous commit. 4369 4370 * src/smooth/ftgrays.c (gray_set_cell): Always compute 4371 `ras.invalid'. 4372 43732013-07-16 David Turner <digit@google.com> 4374 4375 [smooth] Improve performance. 4376 4377 Provide a work-around for an ARM-specific performance bug in GCC. 4378 This speeds up the rasterizer by more than 5%. 4379 4380 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which 4381 also improves performance on other platforms by a tiny bit (<1%). 4382 4383 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro. 4384 Use it where appropriate. 4385 4386 (gray_record_cell, gray_set_cell, gray_move_to, 4387 gray_convert_glyph_inner): Streamline condition handling. 4388 43892013-07-16 David Turner <digit@google.com> 4390 4391 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14. 4392 4393 This patch provides slightly optimized versions for ARM, x86, and 4394 x86_64 CPUs if built with GCC. 4395 4396 Also remove some dead code. 4397 4398 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long, 4399 TT_DotFix14_long_long): New functions. 4400 44012013-07-16 David Turner <digit@google.com> 4402 4403 Optimize FT_MulFix for x86_64 GCC builds. 4404 4405 This patch provides an optimized `FT_MulFix' implementation for 4406 x86_64 machines when FreeType is built with GCC, or compatible 4407 compilers like Clang. 4408 4409 Example: 4410 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf 4411 4412 Before: 4413 4414 Load 4.863 us/op 4415 Load_Advances (Normal) 4.816 us/op 4416 Load_Advances (Fast) 0.028 us/op 4417 Render 2.753 us/op 4418 Get_Glyph 0.463 us/op 4419 Get_CBox 0.077 us/op 4420 Get_Char_Index 0.023 us/op 4421 Iterate CMap 13.898 us/op 4422 New_Face 12.368 us/op 4423 Embolden 0.028 us/op 4424 Get_BBox 0.302 us/op 4425 4426 After: 4427 4428 Load 4.617 us/op 4429 Load_Advances (Normal) 4.645 us/op 4430 Load_Advances (Fast) 0.027 us/op 4431 Render 2.789 us/op 4432 Get_Glyph 0.460 us/op 4433 Get_CBox 0.077 us/op 4434 Get_Char_Index 0.024 us/op 4435 Iterate CMap 13.403 us/op 4436 New_Face 12.278 us/op 4437 Embolden 0.028 us/op 4438 Get_BBox 0.301 us/op 4439 4440 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h 4441 (FT_MulFix_x86_64): New function. 4442 44432013-07-16 David Turner <digit@google.com> 4444 4445 Speed up ARMv7 support. 4446 4447 When building for ARMv7 with thumb2 instructions, the optimized 4448 `FT_MulFix_arm' assembly routine was not being used. 4449 4450 The reason for this is in the `ftconfig.h' header, namely: 4451 4452 - The assembly routine uses the `smull' instruction which is not 4453 available when generating Thumb-1 machine code. It is available 4454 in Thumb-2 mode, though. 4455 4456 - The header was written a long time ago before Thumb-2 became 4457 widely popular (e.g. with Android). So it simply doesn't use the 4458 assembly routine if the `__thumb__' built-in macro is defined. 4459 4460 - When compiling in Thumb-2 mode, the compiler will define both 4461 `__thumb__' and `__thumb2__'. 4462 4463 By checking for `(__thumb2__ || !__thumb__)', we ensure that the 4464 assembly routine is only avoided when generating Thumb-1 code. 4465 4466 Given that this is performance-sensitive function, this improves 4467 `ftbench' as follows on a Galaxy Nexus: 4468 4469 Before (us/op) After (us/op) 4470 4471 - loading Arial.ttf glyphs at 14 ppem [1] 4472 4473 Load 34.285 33.098 4474 4475 - same operation with the light auto-hinter [2] 4476 4477 Load 31.317 29.590 4478 4479 - same operation without hinting [3] 4480 4481 Load 6.143 5.376 4482 4483 - loading Arial.ttf advances at 14 ppem [4] 4484 4485 Load_Advances (normal) 34.216 33.016 4486 Load_Advances (fast) 0.176 0.176 4487 4488 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf 4489 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf 4490 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf 4491 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf 4492 4493 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h 4494 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7. 4495 44962013-06-28 Werner Lemberg <wl@gnu.org> 4497 4498 * docs/CHANGES: Updated. 4499 45002013-06-27 Werner Lemberg <wl@gnu.org> 4501 4502 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard. 4503 45042013-06-25 Werner Lemberg <wl@gnu.org> 4505 4506 [cff] Add darkening limit to `darkening-parameters'. 4507 4508 * src/cff/cffdrivr.c (cff_property_set): Add check. 4509 45102013-06-25 Werner Lemberg <wl@gnu.org> 4511 4512 [cff] Add `darkening-parameters' property. 4513 4514 * include/freetype/ftcffdrv.h: Document it. 4515 4516 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle 4517 `darkening-parameters' property. 4518 4519 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array. 4520 4521 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams' 4522 argument and use it. 4523 Update all callers. 4524 4525 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy 4526 `darken_params' values. 4527 4528 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array. 4529 4530 * src/cff/cffobjs.c (cff_driver_init): Set default values for 4531 `darken_params'. 4532 45332013-06-25 Werner Lemberg <wl@gnu.org> 4534 4535 [docmaker] Code shuffling. 4536 4537 * src/tools/docmaker/tohtml.py (re_url): Move regexp... 4538 * src/tools/docmaker/sources.py: ... to this file. 4539 45402013-06-25 Werner Lemberg <wl@gnu.org> 4541 4542 [docmaker] Remove unused functions. 4543 4544 * src/tools/docmaker/content.py (DocMarkup.get_start, 4545 DocBlock.get_markup_name): Removed. 4546 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code, 4547 HtmlFormatter.make_html_words): Removed. 4548 45492013-06-25 Werner Lemberg <wl@gnu.org> 4550 4551 * builds/freetype.mk (dll): Remove target. 4552 4553 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>. 4554 45552013-06-25 Werner Lemberg <wl@gnu.org> 4556 4557 [docmaker] Recognise URLs. 4558 4559 * src/tools/docmaker/tohtml.py (re_url): New regular expression. 4560 (make_html_para): Use it. 4561 45622013-06-19 Werner Lemberg <wl@gnu.org> 4563 4564 * Version 2.5.0.1 released. 4565 =========================== 4566 4567 4568 Tag sources with `VER-2-5-0-1'. 4569 4570 * include/freetype/config/ftoption.h: Undefine 4571 CFF_CONFIG_OPTION_OLD_ENGINE. 4572 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE. 4573 45742013-06-19 Werner Lemberg <wl@gnu.org> 4575 4576 * builds/unix/install.mk (install): Don't create `cache' directory. 4577 4578 Found by Peter Breitenlohner <peb@mppmu.mpg.de>. 4579 45802013-06-19 Werner Lemberg <wl@gnu.org> 4581 4582 * Version 2.5.0 released. 4583 ========================= 4584 4585 4586 Tag sources with `VER-2-5-0'. 4587 4588 * docs/VERSION.DLL: Update documentation and bump version number to 4589 2.5.0. 4590 4591 * README, Jamfile (RefDoc), 4592 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html, 4593 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html, 4594 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html, 4595 builds/win32/visualc/freetype.dsp, 4596 builds/win32/visualc/freetype.vcproj, 4597 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp, 4598 builds/win32/visualce/freetype.vcproj, 4599 builds/win32/visualce/index.html, 4600 builds/wince/vc2005-ce/freetype.vcproj, 4601 builds/wince/vc2005-ce/index.html, 4602 builds/wince/vc2008-ce/freetype.vcproj, 4603 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/. 4604 4605 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5. 4606 (FREETYPE_PATCH): Set to 0. 4607 4608 * builds/unix/configure.raw (version_info): Set to 16:2:10. 4609 4610 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler. 4611 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto. 4612 46132013-06-18 Werner Lemberg <wl@gnu.org> 4614 4615 Fix Savannah bug #39269. 4616 4617 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in 4618 case of reallocation failures. 4619 46202013-06-18 Andrew Church <achurch+savannah@achurch.org> 4621 4622 Fix Savannah bug #39266. 4623 4624 If memory allocations fail at certain points while opening a font, 4625 FreeType can either crash due to a NULL dereference or leak memory. 4626 4627 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec, 4628 FT_LibraryRec): Make `refcount' a signed integer. If, for example, 4629 FT_Open_Face() fails in a memory allocation before the face's 4630 reference count is set to 1, a subsequent `FT_Done_Library' call 4631 would otherwise loop over `FT_Done_Face' 2^32 times before freeing 4632 the face. 4633 4634 * src/base/ftobjs.c (open_face): Initialize `stream' and friends 4635 earlier. 4636 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL. 4637 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid. 4638 46392013-06-14 Werner Lemberg <wl@gnu.org> 4640 4641 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC. 4642 46432013-06-06 Dave Arnold <darnold@adobe.com> 4644 Werner Lemberg <wl@gnu.org> 4645 4646 [cff] Add code to Adobe's engine to handle ppem > 2000. 4647 4648 * src/cff/cffgload.c (cff_slot_load): If we get 4649 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on. 4650 46512013-06-12 Werner Lemberg <wl@gnu.org> 4652 4653 Another try on pragmas. 4654 4655 * include/freetype/internal/ftdebug.h: Move pragmas to... 4656 * include/freetype/internal/internal.h: ... this file since it gets 4657 included by all source files. 4658 * include/freetype/internal/ftserv.h: Remove pragma which has no 4659 effect. 4660 46612013-06-12 Werner Lemberg <wl@gnu.org> 4662 4663 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127. 4664 4665 This partially undoes commit 3f6e0e0c. 4666 46672013-06-12 Werner Lemberg <wl@gnu.org> 4668 4669 More compiler warning fixes. 4670 4671 */*: Use cast to `FT_Bool' (or `Bool') where appropriate. 4672 46732013-06-10 Werner Lemberg <wl@gnu.org> 4674 4675 [truetype] Improve handling of broken sbit advance widths. 4676 4677 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled) 4678 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero. 4679 4680 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem. 4681 46822013-06-10 Werner Lemberg <wl@gnu.org> 4683 4684 [sfnt] Improve embedded bitmap tracing. 4685 4686 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding 4687 bitmap strike match to... 4688 (FT_Match_Size): This function. 4689 4690 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics, 4691 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned, 4692 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png, 4693 tt_sbit_decoder_load_image): Decorate with tracing messages. 4694 46952013-06-10 Werner Lemberg <wl@gnu.org> 4696 4697 Fix Savannah bug #39160. 4698 4699 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too 4700 for the degenerate case. 4701 47022013-06-09 David Turner <digit@google.com> 4703 4704 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush. 4705 4706 This code, present since eight(!) years in the unused `CACHE' 4707 branch, has been forgotten to apply to the master branch. It's 4708 really amazing that noone has ever complained since 4709 `FTC_Manager_Reset' is pretty useless without flushing the cache. 4710 47112013-06-07 Werner Lemberg <wl@gnu.org> 4712 4713 Add and improve pragmas for MSVC compiler. 4714 4715 * include/freetype/internal/ftdebug.h: Remove pragmas. 4716 * include/freetype/internal/ftserv.h: Use push and pop for pragmas. 4717 * include/freetype/internal/ftvalid.h: Handle warning C4324. 4718 * src/base/ftobjs.c: Use push and pop for pragmas. 4719 * src/gzip/ftgzip.c: Handle warning C4244. 4720 47212013-06-07 Werner Lemberg <wl@gnu.org> 4722 4723 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/. 4724 4725 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it. 4726 47272013-06-06 Dave Arnold <darnold@adobe.com> 4728 4729 [cff] Add early exit feature for width-only calls. 4730 4731 This is for `FT_Get_Advance'. 4732 4733 There are 7 places where the spec says the width can be defined: 4734 4735 hstem/hstemhm 4736 vstem/vstemhm 4737 cntrmask/hintmask 4738 hmoveto 4739 vmoveto 4740 rmoveto 4741 endchar 4742 4743 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls, 4744 if possible. 4745 4746 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>, 4747 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>, 4748 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls. 4749 47502013-06-06 Werner Lemberg <wl@gnu.org> 4751 4752 Next round of compiler fixes. 4753 4754 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init): 4755 Add proper cast. 4756 4757 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix 4758 cast. 4759 * include/freetype/internal/ftstream.h: Decorate stream and frame 4760 macros with `FT_Long' and `FT_ULong' as appropriate. 4761 4762 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus, 4763 raccess_guess_darwin_newvfs): Use cast. 4764 4765 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast. 4766 4767 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast. 4768 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto. 4769 4770 * src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use cast. 4771 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto. 4772 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto. 4773 4774 * src/cid/cidparse.c (cid_parser_new): Use cast. 4775 4776 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast. 4777 4778 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type. 4779 4780 * src/raster/ftraster.c (ft_black_reset): Use cast. 4781 4782 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast. 4783 (ALL_POINTS): Fix cast. 4784 4785 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts. 4786 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast. 4787 47882013-06-05 Dave Arnold <darnold@adobe.com> 4789 4790 Fix more MSVC Win32 compiler warnings. 4791 4792 * src/base/ftobjs.c: Fix typo in MS pragma. 4793 4794 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property): 4795 `lineno' is only used in debug mode. 4796 4797 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in 4798 debug mode. 4799 48002013-06-05 Werner Lemberg <wl@gnu.org> 4801 4802 Fix compiler warnings. 4803 4804 * include/freetype/internal/ftmemory.h: Decorate memory allocation 4805 macros with `FT_Long' where appropriate. 4806 Remove duplicate of FT_MEM_QRENEW_ARRAY definition. 4807 4808 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use 4809 cast. 4810 4811 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while 4812 including `md5.c'. 4813 4814 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add 4815 cast. 4816 4817 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts. 4818 (tt_sbit_decoder_load_bitmap): Beautification. 4819 4820 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize 4821 variables (earlier). 4822 4823 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler. 4824 4825 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants 4826 where appropriate. 4827 4828 * src/type1/t1load.c (T1_Get_MM_Var): Ditto. 4829 48302013-06-04 Werner Lemberg <wl@gnu.org> 4831 4832 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'. 4833 4834 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>. 4835 48362013-06-04 Werner Lemberg <wl@gnu.org> 4837 4838 Apply fixes for cppcheck nitpicks. 4839 4840 https://cppcheck.sourceforge.net/ 4841 4842 The call was (from the top-level of the FreeType tree): 4843 4844 cppcheck --force \ 4845 --enable=all \ 4846 -I include \ 4847 -I include/freetype/ \ 4848 -I include/freetype/config/ \ 4849 -I include/freetype/internal/ \ 4850 . &> cppcheck.log 4851 4852 Note that the current version heavily chokes on FreeType, delivering 4853 many wrong results. I will report those issues to the cppcheck team 4854 so that a newer version gives improved results hopefully. 4855 4856 */* Improve variable scopes. 4857 */* Remove redundant initializations which get overwritten. 4858 4859 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable): 4860 Remove unused variable. 4861 4862 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero. 4863 4864 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate): 4865 Remove functionless code. 4866 4867 * src/tools/ftrandom.c (main): Fix memory leak. 4868 48692013-06-03 Werner Lemberg <wl@gnu.org> 4870 4871 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option. 4872 4873 This controls whether the old FreeType CFF engine gets compiled into 4874 FreeType. It is now disabled by default. 4875 4876 * devel/ftoption.h, include/freetype/config/ftoption.h 4877 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro. 4878 4879 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c 4880 (CFF_Operator, cff_argument_counts, cff_builder_add_point, 4881 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load), 4882 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use 4883 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code. 4884 4885 * docs/CHANGES: Updated. 4886 48872013-06-02 Werner Lemberg <wl@gnu.org> 4888 4889 Fix PNG library handling. 4890 4891 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but 4892 LIBPNG_LDFLAGS. 4893 48942013-05-23 Behdad Esfahbod <behdad@google.com> 4895 4896 Add support for color embedded bitmaps (eg. color emoji). 4897 4898 A new load flag, FT_LOAD_COLOR, makes FreeType load color 4899 embedded-bitmaps, following this draft specification 4900 4901 https://color-emoji.googlecode.com/git/specification/v1.html 4902 4903 which defines two new SFNT tables, `CBDT' and `CBLC' (named and 4904 modeled after `EBDT' and `EBLC', respectively). The color bitmaps 4905 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA 4906 pre-multiplied sRGB images. If PNG support is available, PNG color 4907 images as defined in the same proposed specification are supported 4908 also. 4909 4910 Note that color bitmaps are converted to grayscale if client didn't 4911 ask for color. 4912 4913 * builds/unix/configure.raw: Search for libpng. 4914 Add `--without-png' option. 4915 4916 * devel/ftoption.h, include/freetype/config/ftoption.h 4917 (FT_CONFIG_OPTION_USE_PNG): New macro. 4918 4919 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag. 4920 4921 * include/freetype/ftimage.h (FT_Pixel_Mode): Add 4922 `FT_PIXEL_MODE_BGRA'. 4923 4924 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags. 4925 4926 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated. 4927 (ft_gray_for_premultiplied_srgb_bgra): New function. 4928 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA. 4929 4930 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files. 4931 4932 * src/sfnt/sfnt.c: Include `pngshim.c'. 4933 4934 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h' 4935 (tt_face_load_eblc): Load `CBLC'. 4936 (tt_sbit_decoder_init): Load `CBDT'. 4937 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between 4938 color and grayscale bitmaps. 4939 Set `num_grays'. This is used by `ftview' to choose the blending 4940 algorithm. 4941 (tt_sbit_decoder_load_byte_aligned, 4942 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound, 4943 tt_sbit_decoder_load_image): Pass load flag. 4944 s/write/pwrite/. 4945 Don't call `tt_sbit_decoder_alloc_bitmap'. 4946 Updated. 4947 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function. 4948 (tt_sbit_decoder_load_bitmap): Pass load flag. 4949 Handle new glyph formats 17, 18, and 19. 4950 Call `tt_sbit_decoder_alloc_bitmap'. 4951 Flatten color bitmaps if necessary. 4952 (tt_face_load_sbit_image): Updated. 4953 4954 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'. 4955 4956 * docs/CHANGES: Updated. 4957 49582013-05-24 Guenter <info@gknw.net> 4959 4960 Apply Savannah patch #8055. 4961 4962 Make `apinames' create an import file for NetWare. 4963 4964 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2. 4965 (OutputFormat): Add `OUTPUT_NETWARE_IMP'. 4966 (names_dump): Handle it. 4967 (usage): Updated. 4968 (main): Handle new command line flag `-wN'. 4969 49702013-05-23 Behdad Esfahbod <behdad@behdad.org> 4971 4972 Compilation fix. 4973 4974 * src/truetype/ttinterp.c (TT_RunIns) 4975 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work. 4976 49772013-05-22 Infinality <infinality@infinality.net> 4978 4979 [truetype] Formatting and an additional subpixel tweak. 4980 4981 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix. 4982 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): 4983 Revert previous modification for Verdana clones. 4984 49852013-05-22 Infinality <infinality@infinality.net> 4986 4987 [truetype] Adjust subpixel zp2 moves and tweak rules. 4988 4989 These modifications fix thin diagonal stems in some legacy fonts. 4990 4991 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro. 4992 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering. 4993 (Ins_SHP): Disable x moves here for subpixel rendering. 4994 (Ins_SHPIX): Only disable x moves in compatibility mode. 4995 Split out zp2 move reversals and reorder conditional respectively. 4996 4997 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight. 4998 Only adjust Verdana clones for 17 ppem. 4999 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New. 5000 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'. 5001 50022013-05-20 Infinality <infinality@infinality.net> 5003 5004 [truetype] Simplify and improve subpixel function detection. 5005 5006 Some small enhancements have allowed the removal of many macros and 5007 the simplification of existing rules in `ttsubpix.c'. 5008 5009 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX, 5010 SPH_TWEAK_ALLOW_X_MOVE_ZP2, 5011 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES, 5012 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed. 5013 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro. 5014 5015 * src/truetype/ttsubpix.c: Updated affected rules. 5016 5017 * src/truetype/ttinterp.c (Direct_Move_X): Updated. 5018 (INS_FDEF): Add additional function detection. 5019 (INS_ENDF): Set runtime flag. 5020 (Ins_CALL): Skip the call under certain conditions. 5021 Remove bad code. 5022 (Ins_LOOPCALL): Skip the call under certain conditions. 5023 Remove bad code. 5024 (Move_Zp2_Point): Updated. 5025 (Ins_SHPIX): Updated. 5026 Skip the move under some situations. 5027 (Ins_MIAP): Improve conditions. 5028 (Ins_MIRP): Updated. 5029 (Ins_DELTAP): Skip move under certain conditions. 5030 Simplify conditions. 5031 (TT_RunIns): Updated. 5032 Add code to handle new function detection. 5033 Trace messages. 5034 50352013-05-17 Werner Lemberg <wl@gnu.org> 5036 5037 Update more FT_Err_XXX macros using FT_ERR and FT_THROW; 5038 5039 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c, 5040 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it. 5041 50422013-05-15 Werner Lemberg <wl@gnu.org> 5043 5044 [truetype] Add `interpreter-version' property. 5045 5046 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable 5047 at runtime. 5048 5049 * include/freetype/ftttdrv.h: New file. 5050 5051 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New 5052 macro. 5053 5054 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H. 5055 (tt_property_set, tt_property_get): Fill templates. 5056 5057 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version' 5058 member. 5059 Remove unused `extension_component' member. 5060 5061 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H. 5062 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph, 5063 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'. 5064 5065 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H. 5066 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag. 5067 Update all affected functions to use it. 5068 Use TT_INTERPRETER_VERSION_XXX where appropriate. 5069 5070 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H. 5071 (tt_driver_init): Initialize `interpreter_version'. 5072 5073 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H. 5074 Use TT_INTERPRETER_VERSION_XXX where appropriate. 5075 50762013-05-13 Werner Lemberg <wl@gnu.org> 5077 5078 [truetype] Avoid empty source file. 5079 5080 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: 5081 Provide dummy typedef. 5082 50832013-05-13 Werner Lemberg <wl@gnu.org> 5084 5085 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable. 5086 5087 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>. 5088 50892013-05-13 Brian Nixon <bnixon@yahoo.com> 5090 5091 Fix Savannah bug #38970. 5092 5093 * src/base/ftdebug.c, builds/win32/ftdebug.c, 5094 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c 5095 (ft_debug_init): Don't read past the environment variable FT2_DEBUG. 5096 50972013-05-12 Werner Lemberg <wl@gnu.org> 5098 5099 [truetype] Add framework for TrueType properties. 5100 5101 * src/truetype/ttdriver.c: Include FT_SERVICE_PROPERTIES_H. 5102 (tt_property_set, tt_property_get): New functions, still empty. 5103 Define `tt_service_properties' service. 5104 Update `tt_services'. 5105 5106 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H. 5107 (TT_SERVICE_PROPERTIES_GET): New macro. 5108 (TTModulePIC): Add `tt_service_properties'. 5109 51102013-05-12 Werner Lemberg <wl@gnu.org> 5111 5112 Fix Savannah bug #38967. 5113 5114 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast. 5115 51162013-05-12 Werner Lemberg <wl@gnu.org> 5117 5118 Introduce unsigned 64bit type (if available). 5119 5120 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available. 5121 [FT_LONG64]: Provide FT_UInt64. 5122 5123 * builds/unix/ftconfig.in: Synchronized. 5124 51252013-05-12 Werner Lemberg <wl@gnu.org> 5126 5127 Fix Savannah bug #38968. 5128 5129 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to 5130 FT_Property_{Set,Get}. 5131 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to 5132 FT_Property_{Set,Get}. 5133 51342013-05-10 Werner Lemberg <wl@gnu.org> 5135 5136 [sfnt] Clean up bitmap code. 5137 5138 * src/sfnt/ttsbit.c: Deleted. 5139 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'. 5140 * rules.mk (SFNT_DRV_H): Updated. 5141 51422013-05-10 Werner Lemberg <wl@gnu.org> 5143 5144 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code. 5145 5146---------------------------------------------------------------------------- 5147 5148Copyright (C) 2013-2022 by 5149David Turner, Robert Wilhelm, and Werner Lemberg. 5150 5151This file is part of the FreeType project, and may only be used, modified, 5152and distributed under the terms of the FreeType project license, 5153LICENSE.TXT. By continuing to use, modify, or distribute this file you 5154indicate that you have read the license and understand and accept it 5155fully. 5156 5157 5158Local Variables: 5159version-control: never 5160coding: utf-8 5161End: 5162