modules/freetype2/ChangeLog

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

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:

mercurial