Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
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
10 2.5.3.
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.
41 (COVERAGE): Add cast.
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
68 normally).
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
89 now the default.
91 o First use `pkg-config' for library detection, then fall back to
92 other tests.
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
103 configuration.
105 * builds/unix/freetype-config.in (--static): New command line
106 option.
107 (libs): Updated.
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
154 `pkg-config'.
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
158 HarfBuzz.
160 * docs/INSTALL.UNIX: Document interdependency of Freetype with
161 HarfBuzz.
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
186 `hintMask'.
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
215 read.
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
223 stop at string ends.
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.
236 Patch taken from
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
244 block.
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
251 number.
253 2014-02-12 Dave Arnold <darnold@adobe.com>
255 [cff] Optimize by using `FT_MulDiv'.
256 Suggested by Alexei.
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
280 code.
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
287 library == NULL.
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
297 variable.
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
308 `windows'.
310 * builds/windows/detect.mk, builds/windows/win32-def.mk:
311 s/win32/windows/.
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,
341 cf.
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>
350 [autofit] Minor fix.
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
362 parameter check.
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
379 characters.
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
388 standard characters.
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
431 coverages.
433 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
434 (FT_COMPONENT): Define.
435 (af_face_globals_compute_style_coverage): Trace `gstyles' array
436 data.
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
491 anyways.
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>
506 [autofit] Thinko.
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
516 completed.
518 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
519 do.
520 Reject coverages which don't contain appropriate glyphs for blue
521 zones.
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
559 Latin.
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
635 unconditionally.
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
642 function.
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):
652 Updated.
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
659 need this.
661 * src/autofit/afglobal.h: Include `hbshim.h'.
662 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
663 `hb_font'.
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
668 `hb_font'.
670 * src/autofit/hbshim.h: Include HarfBuzz headers.
672 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
673 headers.
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):
690 Updated.
692 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
694 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
695 member.
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
728 be set.
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
752 follow.
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:
758 New files.
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
770 data.
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'.
780 Update.
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
794 `hbshim.c'.
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'
815 and friends.
817 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
819 2013-12-21 Werner Lemberg <wl@gnu.org>
821 Fix PIC linking.
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
827 to ...
828 (FT_Init_Table_ft_raccess_guess_table): ... this so that the
829 function name correctly corresponds to what the macro framework
830 expects.
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'
869 members to ...
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.
889 Updated.
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):
909 Updated.
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'
914 members.
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
953 `AF_Script'.
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):
967 Updated.
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.
1008 Updated.
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
1016 the API reference.
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
1034 pp4.x also.
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
1055 2.5.2.
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
1086 phantom points.
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
1091 and BSB.
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
1127 specification.
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
1137 `IS_HINTED' clause.
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.
1150 Use AF_DUMP.
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
1163 2.5.1.
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>
1202 [sfnt] Typo.
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
1217 format.
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
1227 for details.
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
1248 default values.
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
1272 ...
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'
1289 subdirectory.
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.
1296 Return error value.
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
1333 standard).
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'
1393 structure.
1395 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
1396 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
1397 Updated.
1399 2013-10-27 Werner Lemberg <wl@gnu.org>
1401 [sfnt] Implement support for `OS/2' table version 5.
1403 See
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
1439 appropriate.
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
1493 LLVM.
1495 However, in GCC, due to some legacy compatibility considerations,
1496 `ADD.W' will be automatically emitted when the immediate operand is
1497 larger than 4095.
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
1509 zone types.
1510 (af_latin_metrics_scale_dim): Report scaling changes due to x height
1511 alignment.
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,
1535 undarkened ones.
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
1560 the change are:
1562 25ppem S (98)
1563 24ppem eight (52)
1564 25.5ppem p (85)
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
1575 least acceptable).
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.
1588 Updated.
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
1604 given.
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
1629 arrays.
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'
1644 also.
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
1657 top segments.
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
1694 `open_face'.
1696 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
1697 `FT_GZIP_H'.
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
1705 `sfnt->init_face'.
1707 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
1708 argument so that a changed stream survives.
1709 Update callers.
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
1716 for WOFF support.
1718 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
1719 New function.
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]:
1770 New array.
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
1803 loop.
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
1812 messages.
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
1826 messages.
1827 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
1828 message.
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.
1842 Simplify code.
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
1851 information.
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>
1881 [autofit] Typo.
1883 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
1884 cast.
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
1891 messages.
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
1962 for...
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
1971 the old one.
1972 Improve comments.
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
1984 libpng.
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
2016 at the end.
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>
2028 Fix gcc pragmas.
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
2052 points.
2054 For example, this fixes the rendering of glyph `Oslash' in
2055 `Roboto-Thin.ttf'.
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
2071 proof-reading.
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
2078 different places.
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
2092 initialization.
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
2103 different places.
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.
2112 Include `afpic.h'.
2113 (af_writing_system_classes): Include `afwrtsys.h' to fill this
2114 array.
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
2119 initialization.
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
2129 cast.
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):
2152 cppcheck --force \
2153 --enable=all \
2154 -I /usr/include \
2155 -I /usr/local/include \
2156 -I /usr/lib/gcc/i586-suse-linux/4.7/include \
2157 -I include \
2158 -I include/freetype \
2159 -I include/freetype/config \
2160 -I include/freetype/internal \
2161 -DFT2_BUILD_LIBRARY \
2162 . &> cppcheck.log
2164 using cppcheck git commit f7e93f99.
2166 Note that cppcheck still can't handle `#include FOO' (with `FOO' a
2167 macro).
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
2181 scripts.
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
2190 to...
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,
2199 constant array.
2200 (af_script_classes): Updated.
2201 (af_face_globals_free): Updated.
2202 Remove assertion.
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):
2209 Updated.
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
2217 system.
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
2225 system.
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
2231 system.
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
2239 system.
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
2247 writing system.
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/.
2261 Update all users.
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):
2285 New macros.
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
2320 x -o- x
2321 / \
2322 / \
2323 / \
2324 o o
2326 as flat and this
2328 o o
2329 / /
2330 x| x|
2331 | |
2332 o---------------o
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
2342 and after.
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.
2371 Update all users.
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.
2379 Updated.
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
2412 `ras.invalid'.
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.
2450 Example:
2451 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
2453 Before:
2455 Load 4.863 us/op
2456 Load_Advances (Normal) 4.816 us/op
2457 Load_Advances (Fast) 0.028 us/op
2458 Render 2.753 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
2467 After:
2469 Load 4.617 us/op
2470 Load_Advances (Normal) 4.645 us/op
2471 Load_Advances (Fast) 0.027 us/op
2472 Render 2.789 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]
2514 Load 34.285 33.098
2516 - same operation with the light auto-hinter [2]
2518 Load 31.317 29.590
2520 - same operation without hinting [3]
2522 Load 6.143 5.376
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.
2564 Update all callers.
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
2572 `darken_params'.
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
2630 2.5.0.
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
2673 the face.
2675 * src/base/ftobjs.c (open_face): Initialize `stream' and friends
2676 earlier.
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
2700 effect.
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:
2776 hstem/hstemhm
2777 vstem/vstemhm
2778 cntrmask/hintmask
2779 hmoveto
2780 vmoveto
2781 rmoveto
2782 endchar
2784 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
2785 if possible.
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):
2796 Add proper cast.
2798 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
2799 cast.
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
2839 debug mode.
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
2850 cast.
2852 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
2853 including `md5.c'.
2855 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
2856 cast.
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
2867 where appropriate.
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):
2885 cppcheck --force \
2886 --enable=all \
2887 -I include \
2888 -I include/freetype/ \
2889 -I include/freetype/config/ \
2890 -I include/freetype/internal/ \
2891 . &> cppcheck.log
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
2933 LIBPNG_LDFLAGS.
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
2949 also.
2951 Note that color bitmaps are converted to grayscale if client didn't
2952 ask for color.
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
2981 algorithm.
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.
2985 s/write/pwrite/.
2986 Don't call `tt_sbit_decoder_alloc_bitmap'.
2987 Updated.
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.
3008 (usage): Updated.
3009 (main): Handle new command line flag `-wN'.
3011 2013-05-23 Behdad Esfahbod <behdad@behdad.org>
3013 Compilation fix.
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.
3062 Remove bad code.
3063 (Ins_LOOPCALL): Skip the call under certain conditions.
3064 Remove bad code.
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.
3074 Trace messages.
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
3088 at runtime.
3090 * include/freetype/ftttdrv.h: New file.
3092 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
3093 macro.
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'
3099 member.
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
3196 fully.
3199 Local Variables:
3200 version-control: never
3201 coding: utf-8
3202 End: