1 2014-03-06 Werner Lemberg <wl@gnu.org>
3 * Version 2.5.3 released.
4 =========================
7 Tag sources with `VER-2-5-3'.
9 * docs/VERSION.DLL: Update documentation and bump version number to
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.2/2.5.3/, s/252/253/.
29 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
31 * builds/unix/configure.raw (version_info): Set to 17:2:11.
32 * CMakeLists.txt (VERSION_PATCH): Set to 3.
33 * docs/CHANGES: Updated.
35 2014-03-06 Werner Lemberg <wl@gnu.org>
37 Fixes for compilation with C++.
39 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
40 (af_get_coverage): Updated.
43 2014-03-06 Sean McBride <sean@rogue-research.com>
45 Remove more clang analyzer warnings.
47 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
48 (TT_Load_Glyph): Remove dead stores.
50 2014-03-05 Werner Lemberg <wl@gnu.org>
52 * builds/unix/configure.raw: Simplify.
54 2014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
56 Fix a bug in configure in library dependency setting
57 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
59 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
61 2014-03-04 Werner Lemberg <wl@gnu.org>
63 Minor fix for `make devel'.
65 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
66 pkg-config for bzip2 since not all GNU/Linux distributions have
67 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
70 2014-03-04 Sean McBride <sean@rogue-research.com>
72 Fix several clang static analyzer dead store warnings.
74 * src/autofit/afhints.c (af_glyph_hints_reload,
75 af_glyph_hints_align_weak_points): Remove unnecessary assignments.
77 * src/bdf/bdflib.c (bdf_font_load): Ditto.
79 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
80 psh_glyph_interpolate_other_points): Ditto.
82 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
84 2014-03-03 Werner Lemberg <wl@gnu.org>
86 Rewrite library option handling in `configure'.
88 o Introduce `auto' value for `--with-XXX' library options; this is
91 o First use `pkg-config' for library detection, then fall back to
94 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
95 --with-harfbuzz): Rewrite.
96 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
97 variables to collect data for `freetype2.pc' and `freetype-config'.
98 (FT2_EXTRA_LIBS): Renamed to ...
99 (ft2_extra_libs): This since it gets no longer substituted.
100 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
101 New output variables, replacing `XXX_PKG' and `LIBXXX'.
102 Add notice at the end of `configure' showing the library
105 * builds/unix/freetype-config.in (--static): New command line
108 (staticlibs): New variable, to be used if `--static' is given.
109 * builds/doc/freetype-config.1: Document `--static'.
111 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
113 2014-03-01 Werner Lemberg <wl@gnu.org>
115 Avoid `long long' warnings with older gcc compilers.
116 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
118 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
119 versions < 4.6. This is especially needed for Max OS X since this
120 OS runs a gcc variant (or emulation) based on version 4.2.1.
122 2014-03-01 Werner Lemberg <wl@gnu.org>
124 * docs/INSTALL.CROSS: Revised and updated.
126 2014-03-01 Werner Lemberg <wl@gnu.org>
128 Make `make clean' remove `freetype2.pc'.
130 This is a generated file at build time, not configure time.
132 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
133 (CLEAN): This variable.
135 2014-03-01 Werner Lemberg <wl@gnu.org>
137 Use pkg-config for detecting libpng and libbz2 also.
139 * builds/unix/configure.raw (HAVE_PKG): New variable.
140 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
141 Search for libpng using `pkg-config'.
142 Fix definition of `LIBHARFBUZZ' variable.
143 * builds/unix/freetype-config.in ($libs): Updated.
144 * builds/unix/freetype2.in: Add `URL' field.
145 Update `Requires.private' and `Libs.private'.
146 * builds/unix/unix-def.in: Updated.
148 2014-03-01 Werner Lemberg <wl@gnu.org>
150 Add configure support for HarfBuzz.
152 * builds/unix/pkg.m4: New file.
153 * builds/unix/configure.raw: Search for libharfbuzz using
155 Add `--without-harfbuzz' option.
156 * builds/unix/freetype-config.in, builds/unix/freetype2.in,
157 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
160 * docs/INSTALL.UNIX: Document interdependency of Freetype with
163 2014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com>
165 [cff] Math simplifications.
167 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
168 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
170 2014-02-28 Dave Arnold <darnold@adobe.com>
172 [cff] Fix Savannah bug #41697, part 2.
174 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
175 cf2_initGlobalRegionBuffer): It is possible for a charstring to call
176 a subroutine if no subroutines exist. This is an error but should
177 not trigger an assert. Split the assert to account for this.
179 2014-02-28 Dave Arnold <darnold@adobe.com>
181 [cff] Fix Savannah bug #41697, part 1.
183 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
184 invalid. In this case, it is not safe to use the length of
185 `hStemHintArray'; the exception has already been recorded in
188 2014-02-26 Werner Lemberg <wl@gnu.org>
190 [sfnt] Fix Savannah bug #41696.
192 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
193 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
195 2014-02-26 Werner Lemberg <wl@gnu.org>
197 [winfnt] Fix Savannah bug #41694.
199 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
201 2014-02-26 Werner Lemberg <wl@gnu.org>
203 [cff] Fix Savannah bug #41693.
205 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
207 2014-02-26 Werner Lemberg <wl@gnu.org>
209 [bdf] Fix Savannah bug #41692.
211 bdflib puts data from the input stream into a buffer in chunks of
212 1024 bytes. The data itself gets then parsed line by line, simply
213 increasing the current pointer into the buffer; if the search for
214 the final newline character exceeds the buffer size, more data gets
217 However, in case the current line's end is very near to the buffer
218 end, and the keyword to compare with is longer than the current
219 line's length, an out-of-bounds read might happen since `memcmp'
220 doesn't stop properly at the string end.
222 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
225 2014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
227 [autofit] Fix `make multi' compilation.
229 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
231 2014-02-19 Werner Lemberg <wl@gnu.org>
232 Simon Bünzli <zeniko@gmail.com>
234 Fix Savannah bug #32902.
238 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
240 with slight modifications.
242 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
243 handle fonts that incorrectly use \r at the beginning of an eexec
246 2014-02-19 Simon Bünzli <zeniko@gmail.com>
248 Fix Savannah bug #41590.
250 * src/type1/t1load.c (parse_encoding): Protect against invalid
253 2014-02-12 Dave Arnold <darnold@adobe.com>
255 [cff] Optimize by using `FT_MulDiv'.
258 * src/cff/cf2font.c (cf2_computeDarkening): Do it.
260 2014-02-12 Werner Lemberg <wl@gnu.org>
262 Fix Savannah bug #41465.
264 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
265 (DISTCLEAN): Remove `freetype-config'.
267 2014-02-08 Sean McBride <sean@rogue-research.com>
269 Fix clang static analyzer and compiler warnings.
271 * src/autofit/afhints.c (af_glyph_hints_align_weak_points),
272 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
273 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
274 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
275 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
276 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
277 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
278 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
279 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
282 * src/autofit/afmodule.c (af_property_get_face_globals,
283 af_property_set, af_property_get), src/base/ftbitmap.c
284 (ft_gray_for_premultiplied_srgb_bgra): Make functions static.
286 * src/base/ftobjs.c (ft_remove_renderer): Protect against
288 (ft_property_do): Make function static.
290 * src/base/ftrfork.c: Include `ftbase.h'.
292 * src/sfnt/ttsbit.c (tt_face_load_sbix_image)
293 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
294 (T1_Compute_Max_Advance): Avoid compiler warning.
296 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
299 2014-02-08 Werner Lemberg <wl@gnu.org>
301 Fix Windows build directories.
303 The build target is now `windows' instead of `win32'.
305 Problem reported by Nickolas George <darknova.clan@gmail.com>.
307 * builds/modules.mk: Don't use `win32' and `win16' (!) but
310 * builds/windows/detect.mk, builds/windows/win32-def.mk:
313 2014-02-08 Eugen Sawin <esawin@mozilla.com>
315 Fix Savannah bug #41507.
317 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
318 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
320 2014-02-08 Dave Arnold <darnold@adobe.com>
322 [cff] Fix minor performance bug.
324 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
325 calculations are now cached and not recomputed on each glyph.
327 2014-02-05 Werner Lemberg <wl@gnu.org>
329 Fix problems with perl 5.8.8 as distributed with current MinGW.
331 * src/tools/afblue.pl: Work-around for Perl bug #63402.
332 (string_re): Avoid `possessive quantifiers', which have been
333 introduced in Perl version 5.10.
335 2014-02-04 Werner Lemberg <wl@gnu.org>
337 Fix compilation with MinGW.
339 Right now, compilation out of the box with latest MinGW is broken
340 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
343 https://sourceforge.net/p/mingw/bugs/2024/
344 https://sourceforge.net/p/mingw/bugs/2046/
346 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
348 2014-02-04 Werner Lemberg <wl@gnu.org>
352 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
353 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
354 of alternative standard characters.
355 This also fixes a compilation warning in non-debug mode.
357 2014-02-03 Werner Lemberg <wl@gnu.org>
359 [cff] Fix Savannah bug #41363.
361 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
363 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
364 we are scaling the outline.
365 (cf2_getPpemY): Remove problematic assertion.
367 2014-01-26 Werner Lemberg <wl@gnu.org>
369 [autofit] Introduce two more slots for standard characters.
371 This is useful for OpenType features like `c2sc' (caps to small
372 caps) that don't have lowercase letters by definition, or other
373 features that mainly operate on numerals.
375 * src/autofit/afscript.h: Add more standard characters.
377 * src/autofit/aftypes.h: Update use of `SCRIPT' macro.
378 (AF_ScriptClassRec): Add members to hold two more standard
380 (AF_DEFINE_SCRIPT_CLASS): Updated.
382 * src/autofit/afglobal.c, src/autofit/afglobal.h,
383 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
384 Update use of `SCRIPT' macro.
386 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
387 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
390 2014-01-24 Werner Lemberg <wl@gnu.org>
392 Fix Savannah bug #41320.
394 * src/autofit/aflatin.c (af_latin_metrics_init_blues)
395 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
397 2014-01-23 Werner Lemberg <wl@gnu.org>
399 Fix Savannah bug #41310.
401 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
402 Don't check metrics, which this format doesn't have.
403 This is another correction to the commit from 2013-11-21.
405 2014-01-23 Werner Lemberg <wl@gnu.org>
407 Fix Savannah bug #41309.
409 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
410 of `T1_ToFixedArray'.
412 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
413 `t1_parse_font_matrix'.
415 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
416 `t1_parse_font_matrix'.
417 (t42_parse_encoding): Synchronize with `t1_parse_encoding'.
419 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
420 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
422 2014-01-22 Werner Lemberg <wl@gnu.org>
424 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
426 2014-01-16 Werner Lemberg <wl@gnu.org>
428 [autofit] Improve tracing of style coverages.
430 * include/internal/fttrace.h: Add `afglobal' for tracing style
433 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
434 (FT_COMPONENT): Define.
435 (af_face_globals_compute_style_coverage): Trace `gstyles' array
438 2014-01-09 Werner Lemberg <wl@gnu.org>
440 Fix Savannah bug #41158.
442 * builds/unix/install.mk (install): Create man page directory.
444 2014-01-08 Chongyu Zhu <lembacon@gmail.com>
446 [arm] Fix Savannah bug #41138, part 2.
448 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
449 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
450 preprocessor conditionals for `add.w'.
452 2014-01-08 Werner Lemberg <wl@gnu.org>
454 [autofit] Fix Savannah bug #41138, part 1.
456 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
457 enumeration names for generated `#else'.
459 * src/autofit/afblue.h: Regenerated.
461 2014-01-06 Werner Lemberg <wl@gnu.org>
463 Add manual page for `freetype-config'.
464 Contributed by Nis Martensen <nis.martensen@web.de>.
466 * docs/freetype-config.1: New file.
468 * builds/unix/unix-def.in (mandir): Define.
469 * builds/unix/install.mk (install, uninstall): Handle manpage.
471 2014-01-05 Werner Lemberg <wl@gnu.org>
473 [autofit] Minor fixes for `afblue.pl'.
475 * src/tools/afblue.pl (aux_name): Don't use `reverse'.
476 <Handling #endif>: Use proper indentation for generated `#else'.
478 * src/autofit/afblue.h: Regenerated.
480 2014-01-04 Werner Lemberg <wl@gnu.org>
482 [autofit] Fix Indic scripts.
484 Split the single, incorrect Indic entry into separate scripts so
485 that the covered ranges are the same: Bengali, Devanagari, Gujarati,
486 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
487 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove
488 entries for Meetai Mayak and Sharada – the Unicode ranges were
489 incorrect (and nobody has complained about that), fonts are scarce
490 for those scripts, and the Indic auto-hinter support is rudimentary
493 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
494 AF_CONFIG_OPTION_CJK.
496 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
497 Use it, together with AF_CONFIG_OPTION_INDIC and
498 AF_CONFIG_OPTION_CJK, to update.
500 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
501 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
502 Sort entries by tags.
504 2014-01-03 Werner Lemberg <wl@gnu.org>
508 * src/autofit/hbshim.c (af_get_char_index): Similar to
509 `af_get_coverage', reject glyphs which are not substituted.
511 2014-01-03 Werner Lemberg <wl@gnu.org>
513 [autofit] Fix handling of default coverages.
515 With this commit, the implementation of coverage handling is
518 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
520 Reject coverages which don't contain appropriate glyphs for blue
523 2014-01-03 Werner Lemberg <wl@gnu.org>
525 [autofit] Fix handling of default coverages.
527 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
528 First handle non-default coverages, then the default coverage of the
529 default script, and finally the other default coverages.
531 2014-01-03 Werner Lemberg <wl@gnu.org>
533 [autofit] Fix scaling of HarfBuzz shaping.
535 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
537 2014-01-03 Werner Lemberg <wl@gnu.org>
539 [autofit] Better ftgrid support.
541 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
542 parameters `is_blue' and `blue_offset'.
544 2014-01-01 Werner Lemberg <wl@gnu.org>
546 [autofit] Remove some styles.
548 * src/autofit/afcover.h: Remove coverages for alternative fractions,
549 denominators, numerators, and fractions.
551 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
553 2014-01-01 Werner Lemberg <wl@gnu.org>
555 [autofit] Add more styles.
557 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
558 auxiliary macros; use them to define styles for Cyrillic, Greek, and
561 * src/autofit/afcover.h: Remove coverage for oldstyle figures.
562 Since those digits are used in combination with ordinary letters, it
563 makes no sense to handle them separately.
565 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
566 `options' parameter to 4 bits.
568 2014-01-01 Werner Lemberg <wl@gnu.org>
570 [autofit] Fix style assignments to glyphs.
572 * src/autofit/hbshim.c (af_get_coverage)
573 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
574 so that we can skip glyphs that have both GSUB and GPOS data.
576 2014-01-01 Werner Lemberg <wl@gnu.org>
578 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
580 2014-01-01 Werner Lemberg <wl@gnu.org>
582 [autofit] Implement and use `af_get_char_index' with HarfBuzz.
584 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
585 Redefine to construct HarfBuzz features.
586 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
588 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
589 `y_offset' to adjust `best_y'.
591 2013-12-31 Werner Lemberg <wl@gnu.org>
593 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
595 2013-12-31 Werner Lemberg <wl@gnu.org>
597 [autofit] Fix interface of `af_get_char_index'.
599 * src/autofit/hbshim.c (af_get_char_index): Return error value.
600 Add argument for y offset (to be used in a yet-to-come patch).
602 * src/autofit/hbshim.h, src/autofit/afcjk.c,
603 src/autofit/aflatin.c: Updated.
605 2013-12-30 Werner Lemberg <wl@gnu.org>
607 [autofit] Don't combine multiple features into one set.
609 Combining them, as originally envisioned, would lead to much more
610 complicated code, as investigations have shown meanwhile. The major
611 drawback is that we run out of available style slots much earlier.
612 However, this is only a theoretical issue since we don't support a
613 large number of scripts currently.
615 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
616 a single-element `COVERAGE' macro, sort the elements by the feature
617 tags, and add entry for `ruby'.
619 * src/autofit/aftypes.h: Updated.
620 * src/autofit/hbshim.c: Updated.
622 2013-12-28 Werner Lemberg <wl@gnu.org>
624 [autofit] Code shuffling to reduce use of cpp macros.
626 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
627 Call `af_get_coverage' unconditionally.
629 * src/autofit/autofit.c: Include `hbshim.c' unconditionally.
631 * src/autofit/hbshim.c (af_get_coverage)
632 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
634 * src/autofit/hbshim.h: Provide function declarations
637 2013-12-28 Werner Lemberg <wl@gnu.org>
639 [autofit] Add wrapper function for `FT_Get_Char_Index'.
641 Yet-to-come changes will provide HarfBuzz functionality for the new
644 * src/autofit/hbshim.c (af_get_char_index): New function.
645 * src/autofit/hbshim.h: Updated.
647 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
648 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
650 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
651 af_latin_metrics_init_blues, af_latin_metrics_check_digits):
654 2013-12-28 Werner Lemberg <wl@gnu.org>
656 [autofit] Use `global' HarfBuzz font object.
658 We now use `hb_font' instead of `hb_face' since yet-to-come changes
661 * src/autofit/afglobal.h: Include `hbshim.h'.
662 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
665 * src/autofit/afglobal.c (af_face_globals_new)
666 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
667 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
670 * src/autofit/hbshim.h: Include HarfBuzz headers.
672 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
674 (af_get_coverage): Updated.
676 2013-12-27 Werner Lemberg <wl@gnu.org>
678 [autofit] Handle `DFLT' OpenType script for coverages.
680 * include/ftautoh.h: Document new `default-script' property.
682 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
683 type of first parameter.
684 (script_tags): Add one more element.
685 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
687 * src/autofit/hbshim.h: Updated.
689 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
692 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
694 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
697 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle
698 `default-script' property.
699 (af_autofitter_init): Updated.
701 2013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
703 [ftrfork] Fix the face order difference between POSIX and Carbon.
705 The fragmented resources in Suitcase and .dfont should be reordered
706 when `POST' resource for Type1 is being restored, but reordering of
707 sfnt resources induces the different face order. Now the ordering
708 is restricted to `POST' resource only, to prevent the different
709 order issue (e.g. the face index in the fontconfig cache generated
710 with Carbon framework is incompatible with that by FreeType 2
711 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
713 http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
714 http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
716 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
717 `sort_by_res_id' to control the fragmented resource ordering.
718 * include/internal/ftrfork.h: Declare new switch.
719 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
720 resource, and disable the sorting for `sfnt' resource.
722 2013-12-25 Werner Lemberg <wl@gnu.org>
724 Fix Savannah bug #40997.
726 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
727 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
729 * src/cff/cffobjs.c (cff_face_init): Ditto.
730 * src/cid/cidobjs.c (cid_face_init): Ditto.
731 * src/pcf/pcfread.c (pcf_load_font): Ditto.
732 * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
733 * src/type1/t1objs.c (T1_Face_Init): Ditto.
734 * src/type42/t42objs.c (T42_Face_Init): Ditto.
735 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
737 2013-12-21 Werner Lemberg <wl@gnu.org>
739 [autofit] Introduce `coverages'.
741 Coverages are the interface to the HarfBuzz library to acces
742 OpenType features for handling glyphs not addressable by the cmap.
744 Right now, compilation of HarfBuzz is only added to the development
745 build. A solution for standard build mode will be delayed until
746 HarfBuzz gets split into two libraries to avoid mutual dependencies
747 between FreeType and HarfBuzz.
749 Note that this is only a first step in handling coverages, basically
750 providing the framework only. Code for handling selected OpenType
751 features (this is, actually using the data in `afcover.h') will
754 * devel/ftoption.h, include/config/ftoption.h
755 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
757 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
760 * src/autofit/afscript.h: Add HarfBuzz script name tags.
762 * src/autofit/afstyles.h: Add default coverage enumeration values.
764 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
765 (AF_Coverage): New enumeration (generated by `afcover.h').
766 (AF_StyleClassRec): New member `coverage'.
767 (AF_DEFINE_STYLE_CLASS): Updated.
769 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
772 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
773 (AF_SCRIPT_FALLBACK): Renamed to ...
774 (AF_STYLE_FALLBACK): ... this.
776 * src/autofit/afglobal.c: Include `hbshim.c'.
777 Update use of `SCRIPT' and `STYLE' macros.
778 (af_face_globals_compute_style_coverage)
779 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
782 * src/autofit/afmodule.h (AF_ModuleRec):
783 s/fallback_script/fallback_style/.
785 * src/autofit/afmodule.c (af_property_set): Adapt handling of
786 `fallback-script' property to set a fallback style.
787 (af_property_get, af_autofitter_init): Updated.
789 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
791 * src/autofit/afranges.h: Update use of `SCRIPT' macro.
793 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
796 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
797 (AUTOF_DRV_H): Add `afcover.h'.
799 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
800 all libraries needed by FreeType.
802 2013-12-21 Werner Lemberg <wl@gnu.org>
804 Fix Savannah bug #40975 (sort of).
806 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
807 behave the same as the Windows TrueType engine for the invalid case.
809 2013-12-21 Werner Lemberg <wl@gnu.org>
811 [autofit] Make PIC mode work actually.
813 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
814 enumeration values automatically generated by including `afscript.h'
817 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
819 2013-12-21 Werner Lemberg <wl@gnu.org>
823 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
824 generated function name.
826 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
828 (FT_Init_Table_ft_raccess_guess_table): ... this so that the
829 function name correctly corresponds to what the macro framework
832 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
833 that PIC functions are compiled also.
835 2013-12-21 Werner Lemberg <wl@gnu.org>
837 [base] Add missing dependencies to Makefile.
839 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
840 (BASE_H): Add `basepic.h'.
842 2013-12-20 Werner Lemberg <wl@gnu.org>
844 [autofit] Fix PIC compilation.
846 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
847 src/autofit/aflatin.c (af_latin_metrics_init_widths)
848 [FT_CONFIG_OPTION_PIC]: Declare `globals'.
850 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
851 AF_DEFINE_STYLE_CLASS.
853 * src/autofit/afpic.c: Include `afglobal.h'.
854 (autofit_module_class_pic_init): Typo.
856 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
857 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
858 parameter and structure member.
860 2013-12-20 Werner Lemberg <wl@gnu.org>
862 [autofit] Introduce `styles'.
864 This is the new top-level structure for handling glyph input data;
865 scripts are now defined separately.
867 * src/autofit/aftypes.h (SCRIPT): Updated.
868 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
870 (AF_Style_ClassRec): ... this new structure.
871 (AF_Style): New enumeration.
872 (AF_StyleMetricsRec): Replace `script' enumeration with
873 `style_class' pointer.
874 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
875 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
877 * src/autofit/afstyles.h: New file, using data from `afscript.h'.
878 * src/autofit/afscript.h: Updated.
880 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
881 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
883 * src/autofit/afglobal.c (SCRIPT): Updated.
884 (STYLE): Redefine macro to load `afstyles.h'.
885 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
886 (af_style_names): ... this array.
887 (af_face_globals_compute_script_coverage): Renamed to...
888 (af_face_globals_compute_style_coverage): ... this.
890 (af_face_globals_new, af_face_globals_free,
891 af_face_globals_get_metrics): Updated.
893 * src/autofit/afglobal.h (SCRIPT): Updated.
894 (STYLE): Redefine macro to load `afstyles.h'.
895 (AF_SCRIPT_FALLBACK): Update definition. This will get more
896 refinements with later on.
897 (AF_SCRIPT_UNASSIGNED): Replace with...
898 (AF_STYLE_UNASSIGNED): ... this macro.
899 (AF_FaceGlobalsRec): Updated.
901 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
902 af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
903 af_latin_hint_edges): Updated.
905 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
906 (af_ltn2_uniranges): Removed.
908 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
911 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
912 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
913 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
916 * src/autofit/afranges.h: Updated.
918 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
920 2013-12-19 Werner Lemberg <wl@gnu.org>
922 [autofit] Factor scripts and uniranges out of writing system files.
924 * src/autofit/afranges.c, src/autofit/afranges.h: New files.
926 * src/autofit/afscript.h: Extend `SCRIPT' macro with more
927 parameters, taking data from the writing system files.
929 * src/autofit/aftypes.h: Updated.
931 * src/autofit/afglobal.c: Include `afranges.h'.
932 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
933 * src/autofit/afglobal.c: Include `afranges.h'.
934 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
936 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
937 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
938 * src/autofit/afindic.c, src/autofit/afindic.h: Updated.
939 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
940 * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated.
942 * src/autofit/afpic.c: Updated.
944 * src/autofir/autofit.c: Include `afranges.c'.
945 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
947 2013-12-18 Werner Lemberg <wl@gnu.org>
949 [autofit] More code orthogonality.
951 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
952 pointer to an `AF_ScriptClass' structure with `script' index of type
954 Move some code around.
956 * src/autofit/afcjk.c: Include `afpic.h'.
957 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
958 af_cjk_hint_edges): Updated.
960 * src/autofit/aflatin.c: Include `afpic.h'.
961 (af_latin_metrics_init_widths, af_latin_metrics_init_blues,
962 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
964 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
966 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
969 2013-12-18 Werner Lemberg <wl@gnu.org>
971 [autofit] s/ScriptMetrics/StyleMetrics/.
973 2013-12-18 Werner Lemberg <wl@gnu.org>
975 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
977 2013-12-18 Werner Lemberg <wl@gnu.org>
979 [autofit] s/gscripts/gstyles/.
981 2013-12-18 Werner Lemberg <wl@gnu.org>
983 [autofit] s/glyph_scripts/glyph_styles/.
985 This is the first commit of a series to create a new top-level
986 structure (a `style') for handling scripts, writing_systems, and
987 soon-to-be-added coverages.
989 2013-12-17 Werner Lemberg <wl@gnu.org>
991 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
993 2013-12-11 Infinality <infinality@infinality.net>
995 [truetype] Simplify logic of rendering modes.
997 This patch unifies the subpixel and non-subpixel cases.
999 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove
1000 `grayscale_hinting'; all code should refer to `grayscale' instead.
1001 Remove unused `native_hinting' member.
1002 Rename `subpixel_hinting' member to `subpixel.
1004 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
1005 (tt_loader_init): Updated.
1007 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
1010 2013-12-11 Werner Lemberg <wl@gnu.org>
1012 [documentation] Add section how to include FreeType header files.
1013 Problem reported by David Kastrup <dak@gnu.org>.
1015 Surprisingly, a description how to do that was completely missing in
1018 * include/freetype.h, include/ftchapters.h: New documentation
1019 section `header_inclusion'.
1021 2013-12-10 Werner Lemberg <wl@gnu.org>
1023 [autofit] s/DFLT/NONE/, s/dflt/none/.
1025 2013-12-10 Werner Lemberg <wl@gnu.org>
1027 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
1029 2013-12-10 Werner Lemberg <wl@gnu.org>
1031 [truetype] Fix scaling of vertical phantom points.
1033 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
1036 2013-12-10 Werner Lemberg <wl@gnu.org>
1038 [truetype] Fix positioning of composite glyphs.
1039 Problem reported by Nigel Tao <nigeltao@golang.org>.
1041 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
1042 the glyph (component) by a fractional value computed from the LSB
1043 phantom point. This is wrong, since the horizontal phantom points
1044 get rounded horizontally later on.
1046 2013-12-08 Werner Lemberg <wl@gnu.org>
1048 * Version 2.5.2 released.
1049 =========================
1052 Tag sources with `VER-2-5-2'.
1054 * docs/VERSION.DLL: Update documentation and bump version number to
1057 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1058 builds/windows/vc2005/index.html,
1059 builds/windows/vc2008/freetype.vcproj,
1060 builds/windows/vc2008/index.html,
1061 builds/windows/vc2010/freetype.vcxproj,
1062 builds/windows/vc2010/index.html,
1063 builds/windows/visualc/freetype.dsp,
1064 builds/windows/visualc/freetype.vcproj,
1065 builds/windows/visualc/index.html,
1066 builds/windows/visualce/freetype.dsp,
1067 builds/windows/visualce/freetype.vcproj,
1068 builds/windows/visualce/index.html,
1069 builds/wince/vc2005-ce/freetype.vcproj,
1070 builds/wince/vc2005-ce/index.html,
1071 builds/wince/vc2008-ce/freetype.vcproj,
1072 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
1074 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
1076 * builds/unix/configure.raw (version_info): Set to 17:1:11.
1077 * CMakeLists.txt (VERSION_PATCH): Set to 2.
1078 * docs/CHANGES: Updated.
1080 2013-12-07 Werner Lemberg <wl@gnu.org>
1082 [truetype] Next round in phantom point handling.
1084 Greg Hitchcock provided very interesting insights into the
1085 complicated history of the horizontal positions of the TSB and BSB
1088 * src/truetype/ttgload.c (TT_LOADER_SET_PP)
1089 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
1090 `grayscale_hinting' flags as conditionals for the x position of TSB
1093 2013-12-05 Werner Lemberg <wl@gnu.org>
1095 * builds/freetype.mk (FT_CC): Removed. Unused.
1097 2013-12-04 Werner Lemberg <wl@gnu.org>
1099 [sfnt] Fix handling of embedded bitmap strikes.
1101 This corrects the commit from 2013-11-21. Problem reported by
1102 Andrey Panov <panov@canopus.iacp.dvo.ru>.
1104 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
1105 detect excessive bytes for bit-aligned bitmaps.
1107 2013-12-03 Werner Lemberg <wl@gnu.org>
1109 [truetype] Remove dead code.
1111 Reported by Nigel Tao <nigeltao@golang.org>.
1113 * include/internal/tttypes.h (TT_LoaderRec): Remove unused
1114 `preserve_pps' field.
1115 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
1117 2013-12-03 Werner Lemberg <wl@gnu.org>
1119 [truetype] Fix phantom point handling.
1121 This is a further improvement to the changes from 2013-11-06.
1123 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
1124 are rounded horizontally, vertical ones are rounded vertically.
1125 (TT_LOADER_SET_PP): The horizontal position of vertical phantom
1126 points in pre-ClearType mode is zero, as shown in the OpenType
1129 2013-12-02 Werner Lemberg <wl@gnu.org>
1131 [truetype] Fix change from 2013-11-20.
1133 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
1135 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
1136 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
1138 Also remove redundant check using `maxSizeOfInstructions' – in
1139 simple glyphs, the bytecode data comes before the outline data, and
1140 a validity test for this is already present.
1142 2013-11-27 Werner Lemberg <wl@gnu.org>
1144 [autofit] Fix use of dumping functions in `ftgrid' demo program.
1146 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
1147 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
1148 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
1149 handle output to stdout.
1151 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
1152 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
1154 2013-11-25 Werner Lemberg <wl@gnu.org>
1156 * Version 2.5.1 released.
1157 =========================
1160 Tag sources with `VER-2-5-1'.
1162 * docs/VERSION.DLL: Update documentation and bump version number to
1165 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1166 builds/windows/vc2005/index.html,
1167 builds/windows/vc2008/freetype.vcproj,
1168 builds/windows/vc2008/index.html,
1169 builds/windows/vc2010/freetype.vcxproj,
1170 builds/windows/vc2010/index.html,
1171 builds/windows/visualc/freetype.dsp,
1172 builds/windows/visualc/freetype.vcproj,
1173 builds/windows/visualc/index.html,
1174 builds/windows/visualce/freetype.dsp,
1175 builds/windows/visualce/freetype.vcproj,
1176 builds/windows/visualce/index.html,
1177 builds/wince/vc2005-ce/freetype.vcproj,
1178 builds/wince/vc2005-ce/index.html,
1179 builds/wince/vc2008-ce/freetype.vcproj,
1180 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
1182 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
1184 * builds/unix/configure.raw (version_info): Set to 17:0:11.
1185 * CMakeLists.txt (VERSION_PATCH): Set to 1.
1186 * docs/CHANGES, docs/release: Updated.
1188 2013-11-23 Werner Lemberg <wl@gnu.org>
1190 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
1192 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
1193 TRICK_NAMES_COUNT): Updated.
1194 (trick_names): Add family name for the two fonts.
1196 2013-11-23 Werner Lemberg <wl@gnu.org>
1198 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
1200 2013-11-21 Werner Lemberg <wl@gnu.org>
1204 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
1206 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
1207 value if the font lacks an `OS/2' table.
1209 2013-11-21 Werner Lemberg <wl@gnu.org>
1211 [sfnt] Improve handling of buggy embedded bitmap strikes.
1213 We are now able to successfully load `AppleMyoungJo.ttf'.
1214 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
1216 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
1219 2013-11-20 Werner Lemberg <wl@gnu.org>
1221 [truetype] Don't trust `maxp's `maxSizeOfInstructions'.
1223 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
1225 http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
1229 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
1230 tables also for setting `autohint'.
1232 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
1233 `TT_Process_Composite_Glyph' for handling unreliable values of
1234 `maxSizeOfInstructions'.
1236 2013-11-16 Werner Lemberg <wl@gnu.org>
1238 [sfnt] Fix `OS/2' table version 5 support.
1240 We now follow the `official' announcement from Microsoft (on the
1241 OpenType mailing list, which unfortunately hasn't a public archive).
1243 * include/freetype/tttables.h (TT_OS2):
1244 s/usLowerPointSize/usLowerOpticalPointSize/,
1245 s/usUpperPointSize/usUpperOpticalPointSize/.
1247 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
1250 2013-11-13 Werner Lemberg <wl@gnu.org>
1252 * builds/unix/ft2unix.h: Remove. No longer necessary.
1254 * builds/unix/install.mk (install): Updated.
1256 2013-11-13 Werner Lemberg <wl@gnu.org>
1258 Simplify header file hierarchy.
1260 This large patch changes the header file directory layout from
1261 `include/freetype/...' to `include/...', effectively removing one
1262 level. Since the file `ft2build.h' is also located in `include'
1263 (and it stays there even after installation), all FreeType header
1264 files are now in a single directory.
1266 Applications that use (a) `freetype-config' or FreeType's
1267 `pkg-config' file to get the include directory for the compiler, and
1268 (b) the documented way for header inclusion like
1270 #include <ft2build.h>
1271 #include FT_FREETYPE_H
1274 don't need any change to the source code.
1276 * include/freetype/*: Move up to...
1277 * include/*: ... this directory.
1279 * builds/amiga/include/freetype/*: Move up to...
1280 * builds/amiga/include/*: ... this directory.
1282 */*: Essentially do `s@/freetype/@/@' where appropriate.
1284 * CMakeList.txt: Simplify.
1285 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For
1286 `--cflags', return a single directory.
1287 * builds/unix/install.mk (install): No longer try to remove `cache'
1288 and `internal' subdirectories; instead, remove the `freetype'
1291 2013-11-12 Werner Lemberg <wl@gnu.org>
1293 [truetype] Fix last `truetype' commit.
1295 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
1297 (load_truetype_glyph): Updated.
1299 2013-11-10 Werner Lemberg <wl@gnu.org>
1301 * docs/CMAKE: New dummy file.
1303 2013-11-08 Dave Arnold <darnold@adobe.com>
1305 [cff] Fix for hints that touch.
1307 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
1308 finding index value of insertion point.
1310 2013-11-06 Werner Lemberg <wl@gnu.org>
1312 [truetype] Fix handling of phantom points in composite glyphs.
1313 Problem reported by Nigel Tao <nigeltao@golang.org>.
1315 This is a follow-up commit to the previous one.
1317 * src/truetype/ttgload.c (load_truetype_glyph): Call
1318 `tt_get_metrics' after loading the glyph header.
1320 2013-11-06 Werner Lemberg <wl@gnu.org>
1322 [truetype] Improve emulation of vertical metrics.
1324 This commit also improves the start values of vertical phantom
1325 points. Kudos to Greg Hitchcock for help.
1327 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
1328 `yMax' value. Replace code with fixed Microsoft definition.
1329 (tt_get_metrics): Updated.
1330 (TT_LOADER_SET_PP): Add explanation how to initialize phantom
1331 points, taken from both the OpenType specification and private
1332 communication with Greg (which will eventually be added to the
1334 Fix horizontal position of `pp3' and `pp4'.
1336 * src/truetype/ttgload.h: Updated.
1338 * src/truetype/ttdriver.c (tt_get_advances): Updated.
1340 * docs/CHANGES: Updated.
1342 2013-11-05 Werner Lemberg <wl@gnu.org>
1344 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
1345 PlatformToolSet version 110 is for VC2012.
1347 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
1349 2013-11-05 Werner Lemberg <wl@gnu.org>
1351 [truetype] Correctly reset point tags for glyph components.
1352 Problem reported by Nigel Tao <nigeltao@golang.org>.
1354 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
1356 2013-11-02 Werner Lemberg <wl@gnu.org>
1358 [truetype] Fix GETINFO opcode handling of subpixel hinting bits.
1360 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
1361 get info on subpixel hinting.
1363 * docs/CHANGES: Updated.
1365 2013-11-02 Werner Lemberg <wl@gnu.org>
1367 Fix Savannah bug #40451.
1369 Simply apply the patch from the bug report.
1371 * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
1372 include/freetype/config/ftconfig.h: The used #pragma directives only
1373 work with gcc versions 4.6 and higher.
1375 2013-11-01 Werner Lemberg <wl@gnu.org>
1377 * docs/CHANGES: Updated.
1379 2013-11-01 Werner Lemberg <wl@gnu.org>
1381 [truetype] Minor code refactoring.
1383 Two benefits: The allocated FDEF (and IDEF) array gets slightly
1384 smaller, and the `ttdebug' demo program has access to function
1385 numbers without additional costs.
1387 Fortunately, no changes to FontForge are necessary – this is the
1388 only external TrueType debugger I know of, but others may exist and
1389 should check the code accordingly.
1391 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
1392 `Cur_End' with a pointer to the corresponding `TT_DefRecord'
1395 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
1396 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
1399 2013-10-27 Werner Lemberg <wl@gnu.org>
1401 [sfnt] Implement support for `OS/2' table version 5.
1405 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
1407 for the announcement.
1409 * include/freetype/tttables.h (TT_OS2): Add fields
1410 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns
1411 this structure only as a pointer through `FT_Get_Sfnt_Table', there
1412 shouldn't be any ABI problems.
1414 * src/sfnt/ttload.c (tt_face_load_os2): Implement it.
1416 * docs/CHANGES: Updated.
1418 2013-10-24 Werner Lemberg <wl@gnu.org>
1420 * README.git, docs/CHANGES, docs/INSTALL: Updated.
1422 2013-10-24 John Cary <cary@txcorp.com>
1424 Provide cmake support.
1426 * CMakeLists.txt: New file.
1428 2013-10-23 Kenneth Miller <kennethadammiller@yahoo.com>
1429 Werner Lemberg <wl@gnu.org>
1431 Provide support for x64 builds in Visual C++ project files.
1433 * src/builds/win32: Renamed to...
1434 * src/builds/windows: This.
1436 * src/builds/windows/vc2010/*: Updated to handle x64 target.
1438 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
1441 2013-10-22 Werner Lemberg <wl@gnu.org>
1443 * src/base/md5.c, src/base/md5.h: Updated to recent version.
1445 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
1447 The canonical URL to get updates for this file is
1449 http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
1451 as the author told me in private communication.
1453 2013-10-19 Werner Lemberg <wl@gnu.org>
1455 [autofit] s/SMALL_TOP/X_HEIGHT/.
1457 * src/autofit/afblue.dat: Updated.
1459 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1461 * src/autofit/aflatin.c, src/autofit/aflatin.h,
1462 src/autofit/atlatin2.c: Updated.
1464 2013-10-19 Werner Lemberg <wl@gnu.org>
1466 * src/autofit/afblue.dat: s/MINOR/DESCENDER/.
1468 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1470 2013-10-16 Werner Lemberg <wl@gnu.org>
1472 [autofit] Add description strings to script entries.
1474 Currently, this is unused.
1476 * src/autofit/afscript.h: Do it.
1477 * src/autofit/afglobal.c, src/autofit/afpic.c,
1478 src/autofit/aftypes.h: Updated.
1480 2013-10-16 Werner Lemberg <wl@gnu.org>
1482 [autofit] Improve tracing message for extra light flag.
1484 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
1486 2013-10-15 Chongyu Zhu <lembacon@gmail.com>
1488 [arm] Fix thumb2 inline assembly under LLVM.
1490 When using `ADD' with an immediate operand, the instruction is
1491 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
1492 immediate operand cannot exceed 4095. It will fail to compile with
1495 However, in GCC, due to some legacy compatibility considerations,
1496 `ADD.W' will be automatically emitted when the immediate operand is
1499 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
1500 (FT_MulFix_arm) [__GNUC__]: Support clang compiler.
1502 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
1504 2013-10-12 Werner Lemberg <wl@gnu.org>
1506 [autofit] Improve tracing of `latin' hinter.
1508 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
1510 (af_latin_metrics_scale_dim): Report scaling changes due to x height
1512 Report scaled stroke width and blue zone values.
1514 2013-10-03 Dave Arnold <darnold@adobe.com>
1516 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
1518 Note that the old code avoided using a region of the piecewise
1519 linear function where the slope was zero. The recovery was to use a
1520 different section of the function, which produced a different,
1521 incorrect amount of darkening.
1523 2013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us>
1525 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
1527 2013-10-02 Dave Arnold <darnold@adobe.com>
1529 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
1531 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect
1532 is to use a previous darkening amount when producing an unhinted,
1533 unscaled outline. This can cause autohint samples in ftgrid and
1534 ftview to be based on darkened CFF outlines instead of unhinted,
1537 2013-09-29 Dave Arnold <darnold@adobe.com>
1539 Fix Savannah bug #39295.
1541 The bug was caused by switching to the initial hintmap (the one in
1542 effect when `moveto' executes) just before drawing the final element
1543 in the charstring. This ensured that the path was closed (in both
1544 Character Space and Device Space). But if the final element was a
1545 curve and if the final hintmap was different enough from the initial
1546 one, then the curve was visibly distorted.
1548 The first part of the fix is to draw the final curve using the final
1549 hintmap as specified by the charstring. This corrects the
1550 distortion but does not ensure closing in Device Space. It may
1551 require the rasterizer to automatically generate an extra closing
1552 line. Depending on the hintmap differences, this line could be from
1553 zero to a couple pixels in length.
1555 The second part of the fix covers the case where the charstring
1556 subpath is closed with an explicit line. We now modify that line's
1557 end point to avoid the distortion.
1559 Some glyphs in the bug report font (TexGyreHeros-Regular) that show
1566 Curves at the *end* of a subpath are no longer distorted. However,
1567 some of these glyphs have bad hint substitutions in the middle of a
1568 subpath, and these are not affected.
1570 The patch has been tested with a set of 106 fonts that shipped with
1571 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
1572 Google Fonts. There are 1.5 million glyphs, of which some 20k are
1573 changed with the fix. A sampling of a few hundred of these changes
1574 have been examined more closely, and the changes look good (or at
1577 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
1578 to indicate that we synthesize a closepath line.
1580 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
1581 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
1582 `lineto' operator) and adjust hint zone.
1583 For synthesized closing lines, use end point in first hint zone.
1584 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In
1585 particular, shift the detection of zero-length lines from character
1586 space to device space.
1587 (cf2_glyphpath_closeOpenPath): Remove assertion.
1590 2013-09-25 Werner Lemberg <wl@gnu.org>
1592 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
1594 2013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1596 [bdf, pcf] Refuse non-zero face_index.
1598 Suggested by Akira Tagoh, see
1600 http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
1602 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
1603 error if the font could be opened but non-zero `face_index' is
1605 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
1607 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
1608 macro for `face_index' because it is validated later.
1610 2013-09-23 Werner Lemberg <wl@gnu.org>
1612 Fix Savannah bug #40090.
1614 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
1615 306f8c5d (from 2013-08-25) affecting this function.
1617 2013-09-22 Werner Lemberg <wl@gnu.org>
1619 [autofit] Disunify Cyrillic and Greek handling from Latin.
1621 * src/autofit/afscript.h: Add Cyrillic and Greek.
1623 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
1624 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
1625 (AF_BLUE_STRINGSET_LATN): Fix typo.
1626 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1628 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
1630 (af_grek_script_class, af_cyrl_script_class): New scripts.
1631 * src/autofit/aflatin.h: Updated.
1633 2013-09-20 Werner Lemberg <wl@gnu.org>
1635 * docs/CHANGES: Updated.
1637 2013-09-20 Behdad Esfahbod <behdad@behdad.org>
1639 Fix vertical size of emboldened glyphs.
1641 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
1643 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
1646 2013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
1648 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
1649 algorithm description.
1651 2013-09-11 Werner Lemberg <wl@gnu.org>
1653 [autofit] Improve Hebrew rendering.
1655 This change introduces a new blue zone property
1656 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
1659 * src/autofit/afblue.dat: Fix Hebrew blue strings.
1660 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
1662 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
1664 * src/autofit/afblue.c, src/autofit/afblue.h: Updated.
1666 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
1667 `AF_LATIN_IS_LONG_BLUE'.
1669 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
1671 2013-08-28 Behdad Esfahbod <behdad@google.com>
1673 [sfnt] Fix frame access while reading WOFF table directory.
1675 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
1676 while reading the directory entries for the whole loop.
1678 2013-08-29 Werner Lemberg <wl@gnu.org>
1679 Behdad Esfahbod <behdad@google.com>
1681 Implement support for WOFF containers.
1683 We simply synthesize a SFNT from the WOFF, create a memory stream
1684 for the new data, and load the SFNT as usual.
1686 Does NOT add any API to access WOFF metadata or private blocks.
1688 * include/freetype/internal/tttypes.h (WOFF_HeaderRec,
1689 WOFF_TableRec): New structures.
1691 * include/freetype/tttags.h (TTAG_wOFF): New macro.
1693 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
1696 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
1698 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
1699 writing to a stream.
1700 (sfnt_stream_close, compare_offsets, woff_open_font): New functions.
1701 (sfnt_open_font): Handle `TTAG_wOFF'.
1702 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
1704 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
1707 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
1708 argument so that a changed stream survives.
1711 2013-08-28 Werner Lemberg <wl@gnu.org>
1713 [gzip] New function `FT_Gzip_Uncompress'.
1715 This is modeled after zlib's `uncompress' function. We need this
1718 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
1721 * src/gzip/rules.mk: Rewrite to better reflect dependencies.
1723 2013-08-28 Werner Lemberg <wl@gnu.org>
1725 [autofit] Fix `make multi' compilation.
1727 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
1728 `afblue.h' but `aftypes.h'.
1729 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
1731 2013-08-28 Werner Lemberg <wl@gnu.org>
1733 [autofit] Fix C++ compilation.
1735 * src/autofit/afglobal.c (af_face_globals_get_metrics),
1736 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
1737 (af_deva_script_class): Use proper casts.
1739 2013-08-27 Behdad Esfahbod <behdad@google.com>
1741 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
1743 2013-08-27 Behdad Esfahbod <behdad@google.com>
1745 FT_Open_Face: Improve external stream handling.
1747 If the font's `clazz->init_face' function wants to swap to new
1748 stream, handling of whether original stream was external could
1749 result to either memory leak or double free. Mark externality into
1750 face flags before calling `init_face' such that the clazz can handle
1751 external streams properly.
1753 * src/base/ftobjs.c (FT_Open_Face): Move code to set
1754 FT_FACE_FLAG_EXTERNAL_STREAM to...
1755 (open_face): This function.
1757 2013-08-27 Werner Lemberg <wl@gnu.org>
1759 Remove `FT_SqrtFixed' function.
1761 It's no longer used.
1763 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
1765 2013-08-27 Werner Lemberg <wl@gnu.org>
1767 [autofit] While tracing, report script names instead of ID values.
1769 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
1771 * src/autofit/afglobal.h: Updated.
1773 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
1774 af_cjk_hint_edges): Use `af_script_names'.
1775 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
1776 af_latin_hint_edges): Ditto.
1778 2013-08-26 Werner Lemberg <wl@gnu.org>
1780 [autofit] Report used script while hinting a glyph.
1782 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
1783 (af_latin_hint_edges): Implement it.
1785 2013-08-26 Werner Lemberg <wl@gnu.org>
1787 [autofit] Add support for Hebrew script.
1789 * src/autofit/afblue.dat: Add blue strings for Hebrew.
1790 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1792 * src/autofit/aflatin.c (af_hebr_uniranges): New array.
1793 (af_hebr_script_class): New script.
1794 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
1796 2013-08-26 Werner Lemberg <wl@gnu.org>
1798 [autofit] Improve tracing messages.
1800 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
1801 ID in tracing message.
1802 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
1804 Improve tracing messages.
1805 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
1806 `num_actions' to count hinting actions.
1807 Improve tracing messages.
1809 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
1810 script ID in tracing message.
1811 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
1814 2013-08-26 Werner Lemberg <wl@gnu.org>
1816 Better tracing of loaded glyphs.
1818 Previously, the loading of a glyph was traced at level 4, if at all.
1819 With this change, all font loading routines emit a tracing message
1820 at level 1, making it easier to select tracing output (for example
1821 using F2_DEBUG="any:1 afhints:7 aflatin:7").
1823 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
1824 * src/cff/cffdrivr.c (cff_glyph_load): Ditto.
1825 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
1827 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
1829 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
1830 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
1831 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
1832 * src/type1/t1gload.c (T1_Load_Glyph): Ditto.
1833 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
1834 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
1836 2013-08-26 Werner Lemberg <wl@gnu.org>
1838 [autofit] Fix script selection.
1840 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use
1841 `AF_SCRIPT_DFLT', not value 0.
1844 * src/autofit/afscript.h: Sort by script name.
1846 2013-08-26 Werner Lemberg <wl@gnu.org>
1848 [autofit] Make `dummy' hinter work as expected.
1850 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
1852 (af_dummy_hints_apply): Scale the glyphs.
1854 2013-08-25 Werner Lemberg <wl@gnu.org>
1856 [autofit] Make `cjk' module use blue stringsets.
1858 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
1859 (af_cjk_hani_blue_chars): Removed.
1860 (AF_CJK_BLUE_TYPE_*): Removed.
1861 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
1862 AF_BLUE_STRING_MAX_LEN.
1863 Change loops to use offsets (in file `afblue.h') into the new arrays
1864 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
1865 Instead of three dimensions (as used in the old blue string array)
1866 we now use properties to do the same, saving one loop nesting level.
1868 * src/autofit/afcjk.h: Remove old enumeration values superseded by
1869 the new data in `afblue.h'.
1870 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
1871 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
1872 `af_cjk_metrics_init_blues'.
1873 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
1874 (AF_CJK_BLUE_IS_TOP): Renamed to...
1875 (AF_CJK_BLUE_TOP): This.
1876 (AF_CJK_MAX_BLUES): Remove.
1877 (AF_CJKAxisRec): Updated.
1879 2013-08-25 Werner Lemberg <wl@gnu.org>
1883 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
1886 2013-08-25 Werner Lemberg <wl@gnu.org>
1888 [autofit] Synchronize `cjk' with `latin' module (and vice versa).
1890 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
1892 (af_cjk_metrics_init_blues): Don't pass blue string array as
1893 argument but use the global array directly.
1894 Use `outline' directly.
1895 Update and add tracing messages.
1896 (af_cjk_metrics_init): Simplify code.
1897 (af_cjk_metrics_scale_dim): Improve tracing message.
1898 (af_cjk_metrics_scale): Synchronize.
1900 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
1901 af_latin_metrics_init_blues): Improve and add tracing messages.
1903 2013-08-25 Werner Lemberg <wl@gnu.org>
1905 [autofit] Make `latin' module use blue stringsets.
1907 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
1908 (af_latin_blue_chars): Removed.
1909 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
1910 with AF_BLUE_STRING_MAX_LEN.
1911 Change loops to use offsets (in file `afblue.h') into the new arrays
1912 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
1913 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
1915 * src/autofit/aflatin.h: Remove old enumeration values superseded by
1916 the new data in `afblue.h'.
1917 (AF_LATIN_IS_TOP_BLUE): Updated definition.
1918 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
1919 (AF_LATIN_MAX_BLUES): Remove.
1920 (AF_LatinAxisRec): Updated.
1922 2013-08-25 Werner Lemberg <wl@gnu.org>
1924 [autofit] Add blue stringsets.
1926 * src/autofit/aftypes.h: Include `afblue.h'.
1927 (AF_ScriptClassRec): Add `blue_stringset' field.
1928 (AF_DEFINE_SCRIPT_CLASS): Updated.
1930 * src/autofit/autofit.c: Include `afblue.c'.
1932 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
1933 (af_dflt_script_class), src/autofit/afindic.c
1934 (af_deva_script_class), src/autofit/aflatin.c
1935 (af_latn_script_class), src/autofit/aflatin2.c
1936 (af_ltn2_script_class): Updated.
1938 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
1940 2013-08-25 Werner Lemberg <wl@gnu.org>
1942 [autofit] Introduce data file for blue strings.
1944 The idea is to have a central file which gets processed by a Perl
1945 script to create proper `.c' and `.h' files using templates. There
1946 are two other reasons to do that:
1948 . The data file should be easily readable. We use UTF-8 encoding
1949 which then gets converted to single bytes.
1951 . Since the number of supported scripts will increase soon, the
1952 current usage of blue string arrays is a waste of space. Using
1953 the Perl script it is possible to imitate jagged arrays,
1954 defining enumeration constants as offsets into the arrays.
1956 This commit only adds files without changing any functionality.
1958 * src/autofit/afblue.dat: New data file.
1959 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
1961 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
1963 * src/autofit/afblue.c, src/autofit/afblue.c: New source files.
1964 To avoid a dependency on Perl, we add them too.
1966 2013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
1968 [base] Enable new algorithm for `BBox_Cubic_Check'.
1970 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
1974 2013-08-18 Werner Lemberg <wl@gnu.org>
1976 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
1978 2013-08-18 Werner Lemberg <wl@gnu.org>
1980 Fix Savannah bug #39804.
1982 * builds/unix/configure.raw (LIBPNG): Define and export.
1983 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
1986 2013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
1988 [base] Clean up BBox_Conic_Check.
1990 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
1991 extremum at the segment ends, which are already within the bbox.
1992 Slightly modify calculations.
1994 2013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
1996 [base] Finish experimental (disabled) BBox_Cubic_Check implementation.
1998 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
1999 accuracy and avoid overflows.
2001 2013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
2003 [base] Refactor experimental (disabled) BBox_Cubic_Check.
2005 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
2006 as the mirror image of the maximum search implemented here...
2007 (update_max): New function.
2009 2013-08-06 John Tytgat <John.Tytgat@esko.com>
2011 Fix Savannah bug #39702.
2013 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
2014 != 0'; this stronger test is mandated by the CFF specification.
2015 Fix test for INDEX structures which have one or more empty entries
2018 2013-08-05 Werner Lemberg <wl@gnu.org>
2020 Fix gcc pragmas, part 2.
2022 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
2023 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
2024 introduced with gcc version 4.6.
2026 2013-08-05 Werner Lemberg <wl@gnu.org>
2030 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
2031 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
2032 pragmas within a function body.
2034 2013-08-05 Werner Lemberg <wl@gnu.org>
2036 Fix Savannah bug #39700.
2038 * builds/unix/ftconfig.h: Synchronize with
2039 `include/freetype/config/ftconfig.h'.
2041 * builds/vms/ftconfig.h: Ditto.
2042 Make the differences to the master `ftconfig.h' file as small as
2043 possible for easier maintainance.
2045 2013-08-05 Werner Lemberg <wl@gnu.org>
2047 [autofit] Improve handling of `near' points.
2049 Points which are very near to each other are now marked as such.
2050 The `weak' flag is then computed by using the `in' vector of the
2051 first and the `out' vector of the last point of a group of near
2054 For example, this fixes the rendering of glyph `Oslash' in
2057 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
2059 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce
2060 the heuristic value `near_limit' to decide whether the current point
2061 is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
2062 Store good `in' vector (of last non-near point) in
2063 `last_good_in_{x,y}' and use it as an argument to
2064 `ft_corner_is_flat' if necessary.
2066 2013-08-02 Werner Lemberg <wl@gnu.org>
2068 * include/freetype/ftcffdrv.h: Improve documentation.
2069 This is based on blog entries from David Lemon and Dave Arnold (both
2070 from Adobe) with kind permission. Dave also helped in
2073 2013-08-02 Werner Lemberg <wl@gnu.org>
2075 [autofit] Move declaration of scripts into separate file.
2077 This has the benefit that we don't need to duplicate the data at
2080 * src/autofit/afscript.h: New file.
2082 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
2083 the enumeration values.
2085 * src/autofit/afglobal.c: Include `afscript.h' to get the script
2086 specific header files.
2087 (af_script_classes): Include `afscript.h' to fill this array.
2089 * src/autofit/afpic.c: Include `afscript.h' to get the script
2090 specific header files.
2091 (autofit_module_class_pic_init): Include `afscript.h' for
2093 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
2094 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead.
2096 * src/autofit/rules.mk (AUTOF_DRV_H): Updated.
2098 2013-08-02 Werner Lemberg <wl@gnu.org>
2100 [autofit] Move declaration of writing systems into separate file.
2102 This has the benefit that we don't need to duplicate the data at
2105 * src/autofit/afwrtsys.h: New file.
2107 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
2108 define the enumeration values.
2110 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
2111 system specific header files.
2113 (af_writing_system_classes): Include `afwrtsys.h' to fill this
2116 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
2117 system specific header files.
2118 (autofit_module_class_pic_init): Include `afwrtsys.h' for
2120 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
2121 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use
2122 `AF_WRITING_SYSTEM_MAX' instead.
2124 2013-08-02 Werner Lemberg <wl@gnu.org>
2126 [sfnt] Fix compilation with g++.
2128 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
2130 (Load_SBit_Png): Pacify compiler.
2132 2013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2133 Werner Lemberg <wl@gnu.org>
2135 [autofit] Fix `make multi'.
2137 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
2138 FT_LOCAL_ARRAY_DEF): New macros.
2140 * src/autofit/afglobal.c (af_writing_system_classes,
2141 af_script_classes): Use FT_LOCAL_ARRAY_DEF.
2142 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and
2143 `af_script_classes'.
2144 * src/autofit/afloader.c: Include `afpic.h'.
2146 2013-08-01 Werner Lemberg <wl@gnu.org>
2148 Another round of cppcheck nitpicks.
2150 The call was (from the top-level of the FreeType tree):
2155 -I /usr/local/include \
2156 -I /usr/lib/gcc/i586-suse-linux/4.7/include \
2158 -I include/freetype \
2159 -I include/freetype/config \
2160 -I include/freetype/internal \
2161 -DFT2_BUILD_LIBRARY \
2164 using cppcheck git commit f7e93f99.
2166 Note that cppcheck still can't handle `#include FOO' (with `FOO' a
2169 */* Improve variable scopes.
2170 */* Remove redundant initializations which get overwritten.
2172 * src/gxvalid/*: Comment out redundant code or guard it with
2173 FT_DEBUG_LEVEL_TRACE.
2175 2013-07-30 Werner Lemberg <wl@gnu.org>
2177 [autofit] Introduce `writing systems'.
2179 This patch adds a new top level to the auto-hinter's script class
2180 hierarchy. It defines `writing systems' which can contain multiple
2183 For example, the `latin' writing system (in file `aflatin.c') is
2184 able to support scripts like Latin, Cyrillic, Armenian, etc., which
2185 can be handled similarly.
2187 Scripts are now named using four-letter OpenType tags.
2189 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
2191 (AF_WritingSystemClassRec): This new structure. It holds pointers
2192 to functions which can be shared among related scripts.
2193 (AF_WritingSystem): New enumeration.
2194 (AF_Script): Revised values using four-letter tags.
2195 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
2196 (AF_DEFINE_SCRIPT_CLASS): Updated.
2198 * src/autofit/afglobal.c (af_writing_system_classes): New global,
2200 (af_script_classes): Updated.
2201 (af_face_globals_free): Updated.
2203 (af_face_globals_get_metrics): Updated.
2205 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
2206 [!AF_CONFIG_OPTION_CJK]: Handle this case.
2208 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
2211 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
2212 initialize structures for both writing systems and scripts.
2213 * src/autofit/afpic.h: Updated.
2214 (AF_WRITING_SYSTEM_CLASSES_GET): New macro.
2216 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
2218 (af_cjk_uniranges): Renamed to...
2219 (af_hani_uniranges): This.
2220 (af_cjk_script_class): Reduced and renamed to...
2221 (af_hani_script_class): This.
2222 * src/autofit/afcjk.h: Updated.
2224 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
2226 (af_dummy_script_class): Reduced and renamed to...
2227 (af_dflt_script_class): This.
2228 * src/autofit/afdummy.h: Updated.
2230 * src/autofit/afindic.c (af_indic_writing_system_class): New writing
2232 (af_indic_uniranges): Renamed to...
2233 (af_deva_uniranges): This.
2234 (af_indic_script_class): Reduced and renamed to...
2235 (af_deva_script_class): This.
2236 * src/autofit/afcjk.h: Updated.
2238 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing
2240 (af_latin_uniranges): Renamed to...
2241 (af_latn_uniranges): This.
2242 (af_latin_script_class): Reduced and renamed to...
2243 (af_latn_script_class): This.
2244 * src/autofit/aflatin.h: Updated.
2246 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New
2248 (af_latin2_uniranges): Renamed to...
2249 (af_ltn2_uniranges): This.
2250 Synchronize ranges with `latin'.
2251 (af_latin2_script_class): Reduced and renamed to...
2252 (af_ltn2_script_class): This.
2253 * src/autofit/aflatin2.h: Updated.
2255 2013-07-30 Werner Lemberg <wl@gnu.org>
2257 [autofit] Variable renaming.
2259 * src/autofit/aftypes.h (AF_ScriptMetricsRec):
2260 s/clazz/script_class/.
2263 2013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2265 Ignore libpng-config under cross-building configuration,
2266 because it will return the flags for the hosting environment.
2268 * builds/unix/configure.raw: Ignore libpng-config when
2269 `cross_compiling' == yes.
2271 2013-07-30 Behdad Esfahbod <behdad@google.com>
2273 Prevent division by zero by a transparent color.
2275 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
2276 Return 0 immediately, when alpha channel is zero.
2278 2013-07-25 Behdad Esfahbod <behdad@google.com>
2280 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
2282 Also disambiguate Google's color bitmap tables.
2284 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
2287 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add
2288 TT_SBIT_TABLE_TYPE_CBLC.
2290 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
2292 * src/sfnt/ttsbit.c (tt_face_load_sbit,
2293 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
2294 TT_SBIT_TABLE_TYPE_CBLC.
2296 2013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
2298 [sfnt] Fix for `make multi' target.
2300 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
2302 2013-07-20 Werner Lemberg <wl@gnu.org>
2304 * docs/INSTALL.GNU: Updated.
2306 2013-07-20 Behdad Esfahbod <behdad@google.com>
2308 [sfnt] Fix `sbix' table version handling.
2310 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
2311 USHORT version numbers are to be considered as `minor'.
2313 2013-07-19 Werner Lemberg <wl@gnu.org>
2315 [autofit] Fix segment classification for blue zones.
2317 The old code (essentially unchanged since the very beginning)
2318 incorrectly handled this configuration
2334 as round. (`o' and `x' are on and off points, respectively).
2336 This is a major change which should improve the rendering results
2337 enormously for many TrueType fonts, especially in the range approx.
2338 20-40ppem, fixing the appearance of many overshoots.
2340 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
2341 first and last points of the segment, not the points right before
2344 2013-07-19 Behdad Esfahbod <behdad@google.com>
2346 [sfnt] `sbix' fix-ups.
2348 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
2349 are rendered scaled and then the `glyf' outline rendered on top. We
2350 don't support that yet, so just ignore the `glyf' outline and
2351 advertise it as a bitmap-only font.
2353 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
2354 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
2355 (tt_face_load_sbix_image): Typo.
2357 2013-07-18 Behdad Esfahbod <behdad@google.com>
2359 [sfnt] Add support for Apple's `sbix' color bitmap table.
2361 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
2362 fields to FT_Short and FT_UShort, respectively.
2363 (TT_SBitTableType): New enumeration.
2364 (TT_FaceRec): Add `sbit_table_type' field.
2366 * include/freetype/tttags.h (TTAG_sbix): New macro.
2368 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
2369 FT_GlyphSlot argument instead FT_Bitmap.
2370 Add flag to control map and metrics handling.
2373 * src/sfnt/ttsbit.c: Include `ttmtx.h'.
2374 (tt_face_load_eblc): Renamed to...
2375 (tt_face_load_sbit): This.
2376 Handlic `sbix' bitmaps.
2377 (tt_face_free_eblc): Renamed to...
2378 (tt_face_load_sbit): This.
2380 (tt_face_load_strike_metrics): Handle `sbix' bitmaps.
2381 (tt_face_load_sbix_image): New function.
2382 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
2383 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
2384 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
2385 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
2386 and handle load flags.
2387 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
2388 handle formats 17-19.
2389 Move color to grayscale conversion to...
2390 (tt_face_load_sbit_image): Here.
2391 Handle `sbix' bitmaps.
2393 * src/sfnt/pngshim.h: Updated.
2394 * src/sfnt/ttsbit.h: Updated.
2395 * src/sfnt/sfdriver.c: Updated.
2397 2013-07-18 Werner Lemberg <wl@gnu.org>
2399 [sfnt] Ignore invalid magic number in `head' or `bhed'.
2401 Other font engines seem to ignore it also. Problem reported by
2402 Hin-Tak Leung <htl10@users.sourceforge.net>.
2404 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
2405 we have an invalid magic number.
2407 2013-07-16 Werner Lemberg <wl@gnu.org>
2409 [smooth] Fix segfault caused by previous commit.
2411 * src/smooth/ftgrays.c (gray_set_cell): Always compute
2414 2013-07-16 David Turner <digit@google.com>
2416 [smooth] Improve performance.
2418 Provide a work-around for an ARM-specific performance bug in GCC.
2419 This speeds up the rasterizer by more than 5%.
2421 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
2422 also improves performance on other platforms by a tiny bit (<1%).
2424 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
2425 Use it where appropriate.
2427 (gray_record_cell, gray_set_cell, gray_move_to,
2428 gray_convert_glyph_inner): Streamline condition handling.
2430 2013-07-16 David Turner <digit@google.com>
2432 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
2434 This patch provides slightly optimized versions for ARM, x86, and
2435 x86_64 CPUs if built with GCC.
2437 Also remove some dead code.
2439 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
2440 TT_DotFix14_long_long): New functions.
2442 2013-07-16 David Turner <digit@google.com>
2444 Optimize FT_MulFix for x86_64 GCC builds.
2446 This patch provides an optimized `FT_MulFix' implementation for
2447 x86_64 machines when FreeType is built with GCC, or compatible
2448 compilers like Clang.
2451 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
2456 Load_Advances (Normal) 4.816 us/op
2457 Load_Advances (Fast) 0.028 us/op
2459 Get_Glyph 0.463 us/op
2460 Get_CBox 0.077 us/op
2461 Get_Char_Index 0.023 us/op
2462 Iterate CMap 13.898 us/op
2463 New_Face 12.368 us/op
2464 Embolden 0.028 us/op
2465 Get_BBox 0.302 us/op
2470 Load_Advances (Normal) 4.645 us/op
2471 Load_Advances (Fast) 0.027 us/op
2473 Get_Glyph 0.460 us/op
2474 Get_CBox 0.077 us/op
2475 Get_Char_Index 0.024 us/op
2476 Iterate CMap 13.403 us/op
2477 New_Face 12.278 us/op
2478 Embolden 0.028 us/op
2479 Get_BBox 0.301 us/op
2481 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
2482 (FT_MulFix_x86_64): New function.
2484 2013-07-16 David Turner <digit@google.com>
2486 Speed up ARMv7 support.
2488 When building for ARMv7 with thumb2 instructions, the optimized
2489 `FT_MulFix_arm' assembly routine was not being used.
2491 The reason for this is in the `ftconfig.h' header, namely:
2493 - The assembly routine uses the `smull' instruction which is not
2494 available when generating Thumb-1 machine code. It is available
2495 in Thumb-2 mode, though.
2497 - The header was written a long time ago before Thumb-2 became
2498 widely popular (e.g. with Android). So it simply doesn't use the
2499 assembly routine if the `__thumb__' built-in macro is defined.
2501 - When compiling in Thumb-2 mode, the compiler will define both
2502 `__thumb__' and `__thumb2__'.
2504 By checking for `(__thumb2__ || !__thumb__)', we ensure that the
2505 assembly routine is only avoided when generating Thumb-1 code.
2507 Given that this is performance-sensitive function, this improves
2508 `ftbench' as follows on a Galaxy Nexus:
2510 Before (us/op) After (us/op)
2512 - loading Arial.ttf glyphs at 14 ppem [1]
2516 - same operation with the light auto-hinter [2]
2520 - same operation without hinting [3]
2524 - loading Arial.ttf advances at 14 ppem [4]
2526 Load_Advances (normal) 34.216 33.016
2527 Load_Advances (fast) 0.176 0.176
2529 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
2530 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
2531 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
2532 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
2534 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
2535 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
2537 2013-06-28 Werner Lemberg <wl@gnu.org>
2539 * docs/CHANGES: Updated.
2541 2013-06-27 Werner Lemberg <wl@gnu.org>
2543 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
2545 2013-06-25 Werner Lemberg <wl@gnu.org>
2547 [cff] Add darkening limit to `darkening-parameters'.
2549 * src/cff/cffdrivr.c (cff_property_set): Add check.
2551 2013-06-25 Werner Lemberg <wl@gnu.org>
2553 [cff] Add `darkening-parameters' property.
2555 * include/freetype/ftcffdrv.h: Document it.
2557 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
2558 `darkening-parameters' property.
2560 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
2562 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
2563 argument and use it.
2566 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
2567 `darken_params' values.
2569 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
2571 * src/cff/cffobjs.c (cff_driver_init): Set default values for
2574 2013-06-25 Werner Lemberg <wl@gnu.org>
2576 [docmaker] Code shuffling.
2578 * src/tools/docmaker/tohtml.py (re_url): Move regexp...
2579 * src/tools/docmaker/sources.py: ... to this file.
2581 2013-06-25 Werner Lemberg <wl@gnu.org>
2583 [docmaker] Remove unused functions.
2585 * src/tools/docmaker/content.py (DocMarkup.get_start,
2586 DocBlock.get_markup_name): Removed.
2587 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
2588 HtmlFormatter.make_html_words): Removed.
2590 2013-06-25 Werner Lemberg <wl@gnu.org>
2592 * builds/freetype.mk (dll): Remove target.
2594 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
2596 2013-06-25 Werner Lemberg <wl@gnu.org>
2598 [docmaker] Recognise URLs.
2600 * src/tools/docmaker/tohtml.py (re_url): New regular expression.
2601 (make_html_para): Use it.
2603 2013-06-19 Werner Lemberg <wl@gnu.org>
2605 * Version 2.5.0.1 released.
2606 ===========================
2609 Tag sources with `VER-2-5-0-1'.
2611 * include/freetype/config/ftoption.h: Undefine
2612 CFF_CONFIG_OPTION_OLD_ENGINE.
2613 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
2615 2013-06-19 Werner Lemberg <wl@gnu.org>
2617 * builds/unix/install.mk (install): Don't create `cache' directory.
2619 Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
2621 2013-06-19 Werner Lemberg <wl@gnu.org>
2623 * Version 2.5.0 released.
2624 =========================
2627 Tag sources with `VER-2-5-0'.
2629 * docs/VERSION.DLL: Update documentation and bump version number to
2632 * README, Jamfile (RefDoc),
2633 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
2634 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
2635 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
2636 builds/win32/visualc/freetype.dsp,
2637 builds/win32/visualc/freetype.vcproj,
2638 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
2639 builds/win32/visualce/freetype.vcproj,
2640 builds/win32/visualce/index.html,
2641 builds/wince/vc2005-ce/freetype.vcproj,
2642 builds/wince/vc2005-ce/index.html,
2643 builds/wince/vc2008-ce/freetype.vcproj,
2644 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
2646 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
2647 (FREETYPE_PATCH): Set to 0.
2649 * builds/unix/configure.raw (version_info): Set to 16:2:10.
2651 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
2652 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
2654 2013-06-18 Werner Lemberg <wl@gnu.org>
2656 Fix Savannah bug #39269.
2658 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
2659 case of reacollocation failures.
2661 2013-06-18 Andrew Church <achurch+savannah@achurch.org>
2663 Fix Savannah bug #39266.
2665 If memory allocations fail at certain points while opening a font,
2666 FreeType can either crash due to a NULL dereference or leak memory.
2668 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
2669 FT_LibraryRec): Make `refcount' a signed integer. If, for example,
2670 FT_Open_Face() fails in a memory allocation before the face's
2671 reference count is set to 1, a subsequent `FT_Done_Library' call
2672 would otherwise loop over `FT_Done_Face' 2^32 times before freeing
2675 * src/base/ftobjs.c (open_face): Initialize `stream' and friends
2677 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
2678 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
2680 2013-06-14 Werner Lemberg <wl@gnu.org>
2682 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
2684 2013-06-06 Dave Arnold <darnold@adobe.com>
2685 Werner Lemberg <wl@gnu.org>
2687 [cff] Add code to Adobe's engine to handle ppem > 2000.
2689 * src/cff/cffgload.c (cff_slot_load): If we get
2690 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
2692 2013-06-12 Werner Lemberg <wl@gnu.org>
2694 Another try on pragmas.
2696 * include/freetype/internal/ftdebug.h: Move pragmas to...
2697 * include/freetype/internal/internal.h: ... this file since it gets
2698 included by all source files.
2699 * include/freetype/internal/ftserv.h: Remove pragma which has no
2702 2013-06-12 Werner Lemberg <wl@gnu.org>
2704 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
2706 This partially undoes commit 3f6e0e0c.
2708 2013-06-12 Werner Lemberg <wl@gnu.org>
2710 More compiler warning fixes.
2712 */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
2714 2013-06-10 Werner Lemberg <wl@gnu.org>
2716 [truetype] Improve handling of broken sbit advance widths.
2718 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
2719 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
2721 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
2723 2013-06-10 Werner Lemberg <wl@gnu.org>
2725 [sfnt] Improve embedded bitmap tracing.
2727 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
2728 bitmap strike match to...
2729 (FT_Match_Size): This function.
2731 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
2732 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
2733 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
2734 tt_sbit_decoder_load_image): Decorate with tracing messages.
2736 2013-06-10 Werner Lemberg <wl@gnu.org>
2738 Fix Savannah bug #39160.
2740 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
2741 for the degenerate case.
2743 2013-06-09 David Turner <digit@google.com>
2745 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
2747 This code, present since eight(!) years in the unused `CACHE'
2748 branch, has been forgotten to apply to the master branch. It's
2749 really amazing that noone has ever complained since
2750 `FTC_Manager_Reset' is pretty useless without flushing the cache.
2752 2013-06-07 Werner Lemberg <wl@gnu.org>
2754 Add and improve pragmas for MSVC compiler.
2756 * include/freetype/internal/ftdebug.h: Remove pragmas.
2757 * include/freetype/internal/ftserv.h: Use push and pop for pragmas.
2758 * include/freetype/internal/ftvalid.h: Handle warning C4324.
2759 * src/base/ftobjs.c: Use push and pop for pragmas.
2760 * src/gzip/ftgzip.c: Handle warning C4244.
2762 2013-06-07 Werner Lemberg <wl@gnu.org>
2764 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
2766 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
2768 2013-06-06 Dave Arnold <darnold@adobe.com>
2770 [cff] Add early exit feature for width-only calls.
2772 This is for `FT_Get_Advance'.
2774 There are 7 places where the spec says the width can be defined:
2784 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
2787 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
2788 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
2789 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
2791 2013-06-06 Werner Lemberg <wl@gnu.org>
2793 Next round of compiler fixes.
2795 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
2798 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
2800 * include/freetype/internal/ftstream.h: Decorate stream and frame
2801 macros with `FT_Long' and `FT_ULong' as appropriate.
2803 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
2804 raccess_guess_darwin_newvfs): Use cast.
2806 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
2808 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
2809 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
2811 * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast.
2812 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
2813 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
2815 * src/cid/cidparse.c (cid_parser_new): Use cast.
2817 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
2819 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
2821 * src/raster/ftraster.c (ft_black_reset): Use cast.
2823 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
2824 (ALL_POINTS): Fix cast.
2826 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
2827 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
2829 2013-06-05 Dave Arnold <darnold@adobe.com>
2831 Fix more MSVC Win32 compiler warnings.
2833 * src/base/ftobjs.c: Fix typo in MS pragma.
2835 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
2836 `lineno' is only used in debug mode.
2838 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
2841 2013-06-05 Werner Lemberg <wl@gnu.org>
2843 Fix compiler warnings.
2845 * include/freetype/internal/ftmemory.h: Decorate memory allocation
2846 macros with `FT_Long' where appropriate.
2847 Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
2849 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
2852 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
2855 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
2858 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
2859 (tt_sbit_decoder_load_bitmap): Beautification.
2861 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
2862 variables (earlier).
2864 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
2866 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
2869 * src/type1/t1load.c (T1_Get_MM_Var): Ditto.
2871 2013-06-04 Werner Lemberg <wl@gnu.org>
2873 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
2875 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
2877 2013-06-04 Werner Lemberg <wl@gnu.org>
2879 Apply fixes for cppcheck nitpicks.
2881 http://cppcheck.sourceforge.net/
2883 The call was (from the top-level of the FreeType tree):
2888 -I include/freetype/ \
2889 -I include/freetype/config/ \
2890 -I include/freetype/internal/ \
2893 Note that the current version heavily chokes on FreeType, delivering
2894 many wrong results. I will report those issues to the cppcheck team
2895 so that a newer version gives improved results hopefully.
2897 */* Improve variable scopes.
2898 */* Remove redundant initializations which get overwritten.
2900 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
2901 Remove unused variable.
2903 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
2905 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
2906 Remove functionless code.
2908 * src/tools/ftrandom.c (main): Fix memory leak.
2910 2013-06-03 Werner Lemberg <wl@gnu.org>
2912 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
2914 This controls whether the old FreeType CFF engine gets compiled into
2915 FreeType. It is now disabled by default.
2917 * devel/ftoption.h, include/freetype/config/ftoption.h
2918 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
2920 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
2921 (CFF_Operator, cff_argument_counts, cff_builder_add_point,
2922 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
2923 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
2924 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
2926 * docs/CHANGES: Updated.
2928 2013-06-02 Werner Lemberg <wl@gnu.org>
2930 Fix PNG library handling.
2932 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but
2935 2013-05-23 Behdad Esfahbod <behdad@google.com>
2937 Add support for color embedded bitmaps (eg. color emoji).
2939 A new load flag, FT_LOAD_COLOR, makes FreeType load color
2940 embedded-bitmaps, following this draft specification
2942 https://color-emoji.googlecode.com/git/specification/v1.html
2944 which defines two new SFNT tables, `CBDT' and `CBLC' (named and
2945 modeled after `EBDT' and `EBLC', respectively). The color bitmaps
2946 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
2947 pre-multiplied sRGB images. If PNG support is available, PNG color
2948 images as defined in the same proposed specification are supported
2951 Note that color bitmaps are converted to grayscale if client didn't
2954 * builds/unix/configure.raw: Search for libpng.
2955 Add `--without-png' option.
2957 * devel/ftoption.h, include/freetype/config/ftoption.h
2958 (FT_CONFIG_OPTION_USE_PNG): New macro.
2960 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
2962 * include/freetype/ftimage.h (FT_Pixel_Mode): Add
2963 `FT_PIXEL_MODE_BGRA'.
2965 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
2967 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
2968 (ft_gray_for_premultiplied_srgb_bgra): New function.
2969 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
2971 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
2973 * src/sfnt/sfnt.c: Include `pngshim.c'.
2975 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
2976 (tt_face_load_eblc): Load `CBLC'.
2977 (tt_sbit_decoder_init): Load `CBDT'.
2978 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
2979 color and grayscale bitmaps.
2980 Set `num_grays'. This is used by `ftview' to choose the blending
2982 (tt_sbit_decoder_load_byte_aligned,
2983 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
2984 tt_sbit_decoder_load_image): Pass load flag.
2986 Don't call `tt_sbit_decoder_alloc_bitmap'.
2988 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
2989 (tt_sbit_decoder_load_bitmap): Pass load flag.
2990 Handle new glyph formats 17, 18, and 19.
2991 Call `tt_sbit_decoder_alloc_bitmap'.
2992 Flatten color bitmaps if necessary.
2993 (tt_face_load_sbit_image): Updated.
2995 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
2997 * docs/CHANGES: Updated.
2999 2013-05-24 Guenter <info@gknw.net>
3001 Apply Savannah patch #8055.
3003 Make `apinames' create an import file for NetWare.
3005 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
3006 (OutputFormat): Add `OUTPUT_NETWARE_IMP'.
3007 (names_dump): Handle it.
3009 (main): Handle new command line flag `-wN'.
3011 2013-05-23 Behdad Esfahbod <behdad@behdad.org>
3015 * src/truetype/ttinterp.c (TT_RunIns)
3016 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
3018 2013-05-22 Infinality <infinality@infinality.net>
3020 [truetype] Formatting and an additional subpixel tweak.
3022 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
3023 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
3024 Revert previous modification for Verdana clones.
3026 2013-05-22 Infinality <infinality@infinality.net>
3028 [truetype] Adjust subpixel zp2 moves and tweak rules.
3030 These modifications fix thin diagonal stems in some legacy fonts.
3032 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
3033 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
3034 (Ins_SHP): Disable x moves here for subpixel rendering.
3035 (Ins_SHPIX): Only disable x moves in compatibility mode.
3036 Split out zp2 move reversals and reorder conditional respectively.
3038 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
3039 Only adjust Verdana clones for 17 ppem.
3040 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
3041 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
3043 2013-05-20 Infinality <infinality@infinality.net>
3045 [truetype] Simplify and improve subpixel function detection.
3047 Some small enhancements have allowed the removal of many macros and
3048 the simplification of existing rules in `ttsubpix.c'.
3050 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
3051 SPH_TWEAK_ALLOW_X_MOVE_ZP2,
3052 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
3053 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
3054 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
3056 * src/truetype/ttsubpix.c: Updated affected rules.
3058 * src/truetype/ttinterp.c (Direct_Move_X): Updated.
3059 (INS_FDEF): Add additional function detection.
3060 (INS_ENDF): Set runtime flag.
3061 (Ins_CALL): Skip the call under certain conditions.
3063 (Ins_LOOPCALL): Skip the call under certain conditions.
3065 (Move_Zp2_Point): Updated.
3066 (Ins_SHPIX): Updated.
3067 Skip the move under some situations.
3068 (Ins_MIAP): Improve conditions.
3069 (Ins_MIRP): Updated.
3070 (Ins_DELTAP): Skip move under certain conditions.
3071 Simplify conditions.
3072 (TT_RunIns): Updated.
3073 Add code to handle new function detection.
3076 2013-05-17 Werner Lemberg <wl@gnu.org>
3078 Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
3080 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
3081 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
3083 2013-05-15 Werner Lemberg <wl@gnu.org>
3085 [truetype] Add `interpreter-version' property.
3087 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
3090 * include/freetype/ftttdrv.h: New file.
3092 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
3095 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
3096 (tt_property_set, tt_property_get): Fill templates.
3098 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
3100 Remove unused `extension_component' member.
3102 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
3103 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
3104 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
3106 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
3107 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
3108 Update all affected functions to use it.
3109 Use TT_INTERPRETER_VERSION_XXX where appropriate.
3111 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
3112 (tt_driver_init): Initialize `interpreter_version'.
3114 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
3115 Use TT_INTERPRETER_VERSION_XXX where appropriate.
3117 2013-05-13 Werner Lemberg <wl@gnu.org>
3119 [truetype] Avoid empty source file.
3121 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
3122 Provide dummy typedef.
3124 2013-05-13 Werner Lemberg <wl@gnu.org>
3126 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
3128 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
3130 2013-05-13 Brian Nixon <bnixon@yahoo.com>
3132 Fix Savannah bug #38970.
3134 * src/base/ftdebug.c, builds/win32/ftdebug.c,
3135 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
3136 (ft_debug_init): Don't read past the environment variable FT2_DEBUG.
3138 2013-05-12 Werner Lemberg <wl@gnu.org>
3140 [truetype] Add framework for TrueType properties.
3142 * src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
3143 (tt_property_set, tt_property_get): New functions, still empty.
3144 Define `tt_service_properties' service.
3145 Update `tt_services'.
3147 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
3148 (TT_SERVICE_PROPERTIES_GET): New macro.
3149 (TTModulePIC): Add `tt_service_properties'.
3151 2013-05-12 Werner Lemberg <wl@gnu.org>
3153 Fix Savannah bug #38967.
3155 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
3157 2013-05-12 Werner Lemberg <wl@gnu.org>
3159 Introduce unsigned 64bit type (if available).
3161 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
3162 [FT_LONG64]: Provide FT_UInt64.
3164 * builds/unix/ftconfig.in: Synchronized.
3166 2013-05-12 Werner Lemberg <wl@gnu.org>
3168 Fix Savannah bug #38968.
3170 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to
3171 FT_Property_{Set,Get}.
3172 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
3173 FT_Property_{Set,Get}.
3175 2013-05-10 Werner Lemberg <wl@gnu.org>
3177 [sfnt] Clean up bitmap code.
3179 * src/sfnt/ttsbit.c: Deleted.
3180 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
3181 * rules.mk (SFNT_DRV_H): Updated.
3183 2013-05-10 Werner Lemberg <wl@gnu.org>
3185 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
3187 ----------------------------------------------------------------------------
3189 Copyright 2013-2014 by
3190 David Turner, Robert Wilhelm, and Werner Lemberg.
3192 This file is part of the FreeType project, and may only be used, modified,
3193 and distributed under the terms of the FreeType project license,
3194 LICENSE.TXT. By continuing to use, modify, or distribute this file you
3195 indicate that you have read the license and understand and accept it
3200 version-control: never