Home | History | Annotate | Download | only in freetype
      1 2016-07-12  Werner Lemberg  <wl (a] gnu.org>
      2 
      3 	* Version 2.6.5 released.
      4 	=========================
      5 
      6 
      7 	Tag sources with `VER-2-6-5'.
      8 
      9 	This commit immediately follows `[mac] Fix ftexport.sym target in
     10 	Jamfile.' on a separate branch, which was then merged with master
     11 	after the release.
     12 
     13 	* include/freetype/config/ftoption.h
     14 	(TT_CONFIG_OPTION_SUBPIXEL_HINTING): Comment out.
     15 
     16 	* docs/VERSION.TXT: Add entry for version 2.6.5.
     17 
     18 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
     19 	builds/windows/vc2005/index.html,
     20 	builds/windows/vc2008/freetype.vcproj,
     21 	builds/windows/vc2008/index.html,
     22 	builds/windows/vc2010/freetype.vcxproj,
     23 	builds/windows/vc2010/index.html,
     24 	builds/windows/visualc/freetype.dsp,
     25 	builds/windows/visualc/freetype.vcproj,
     26 	builds/windows/visualc/index.html,
     27 	builds/windows/visualce/freetype.dsp,
     28 	builds/windows/visualce/freetype.vcproj,
     29 	builds/windows/visualce/index.html,
     30 	builds/wince/vc2005-ce/freetype.vcproj,
     31 	builds/wince/vc2005-ce/index.html,
     32 	builds/wince/vc2008-ce/freetype.vcproj,
     33 	builds/wince/vc2008-ce/index.html: s/2.6.4/2.6.5/, s/264/265/.
     34 
     35 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
     36 
     37 	* builds/unix/configure.raw (version_info): Set to 18:5:12.
     38 	* CMakeLists.txt (VERSION_PATCH): Set to 5.
     39 
     40 	* docs/CHANGES: Updated.
     41 
     42 2016-07-11  Werner Lemberg  <wl (a] gnu.org>
     43 
     44 	Conditionally compile environment support.
     45 
     46 	* include/freetype/internal/ftobjs.h, src/autofit/afmodule.c,
     47 	src/base/ftobjs.c, src/cff/cffdrivr.c, src/truetype/ttdriver.c:
     48 	Decorate with `FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES' where
     49 	necessary.
     50 
     51 2016-07-11  Werner Lemberg  <wl (a] gnu.org>
     52 
     53 	Handle properties in `FREETYPE_PROPERTIES' environment variable.
     54 
     55 	This commit covers the most important one.
     56 
     57 	* src/autofit/afmodule.c (af_property_set): Handle `warping',
     58 	`darkening-parameters', and `no-stem-darkening'.
     59 
     60 	* src/cff/cffdrivr.c (cff_property_set): Handle
     61 	`darkening-parameters', `hinting-engine', and `no-stem-darkening'.
     62 
     63 	* src/truetype/ttdriver.c (tt_property_set): Handle
     64 	`interpreter-version'.
     65 
     66 2016-07-11  Werner Lemberg  <wl (a] gnu.org>
     67 
     68 	Replace calls to `atol' with `strtol'.
     69 
     70 	We later on need strtol's `endptr' feature.
     71 
     72 	* include/freetype/config/ftstdlib.h (ft_atol): Replace with...
     73 	(ft_strtol): ... this.
     74 
     75 	* src/base/ftdbgmem.c (ft_mem_debug_init): Updated.
     76 	* src/cid/cidparse.c (cid_parser_new): Ditto.
     77 	* src/type42/t42drivr.c (t42_get_name_index), src/type42/t42objs.c
     78 	(T42_GlyphSlot_Load): Ditto.
     79 
     80 2016-07-10  Werner Lemberg  <wl (a] gnu.org>
     81 
     82 	Implement handling of `FREETYPE_PROPERTIES' environment variable.
     83 
     84 	Recognizing properties follows in another commit.
     85 
     86 	* devel/ftoption.h, include/freetype/config/ftoption.h
     87 	(FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES): New macro.
     88 
     89 	* include/freetype/config/ftstdlib.h (ft_getenv): New macro.
     90 
     91 	* src/base/ftinit.c (ft_set_default_properties): New function to
     92 	parse `FREETYPE_PROPERTIES' and calling `ft_property_string_set'.
     93 	(FT_Init_FreeType): Updated.
     94 
     95 2016-07-09  Werner Lemberg  <wl (a] gnu.org>
     96 
     97 	Add function `ft_property_string_set'.
     98 
     99 	This is a preparation for handling an `FREETYPE_PROPERTIES'
    100 	environment variable to control (some) driver properties.
    101 
    102 	No change in functionality.
    103 
    104 	* src/base/ftobjs.c (ft_property_do): Add `value_is_string'
    105 	parameter.
    106 	(ft_property_string_set): New function.
    107 	(FT_Property_Set, FT_Property_Get): Updated.
    108 
    109 	* include/freetype/internal/ftobjs.h: Updated.
    110 
    111 	* include/freetype/internal/services/svprop.h
    112 	(FT_Properties_SetFunc): Add `value_is_string' parameter.
    113 
    114 	* src/autofit/afmodule.c (af_property_set), src/cff/cffdrivr.c
    115 	(cff_property_set), src/truetype/ttdriver.c (tt_property_set):
    116 	Updated, emitting an error currently if `value_is_string' is set.
    117 
    118 2016-07-09  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
    119 
    120 	[mac] Fix ftexport.sym target in Jamfile.
    121 
    122 	* Jamfile: Update the directories of the header files scanned for
    123 	ftexport.sym.  They were incorrect since the migration of the
    124 	header files, on 2015-06-22.  Either inexisting include/cache
    125 	(removed on 2006-03-20) is not needed to be listed explicitly.
    126 	Now ftmac.h is scanned only in the case of Mac OS & Mac OS X.
    127 
    128 2016-07-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    129 
    130 	[smooth] Sub-banding protocol revision.
    131 
    132 	Rasterization sub-banding is utilized at large sizes while using a
    133 	rather small fixed memory pool.  Indeed it is possible to make an
    134 	educated guess how much memory is necessary at a given size for a
    135 	given glyph.  It turns out that, for a large majority of European
    136 	glyphs, you should store about 8 times more boundary pixels than
    137 	their height.  Or, vice versa, if your memory pool can hold 800
    138 	pixels the band height should be 100 and you should sub-band
    139 	anything larger than that.  Should you still run out of memory,
    140 	FreeType bisects the band but you have wasted some time.  This is
    141 	what has been implemented in FreeType since the beginning.
    142 
    143 	It was overlooked, however, that the top band could grow to twice
    144 	the default band size leading to unnecessary memory overflows there.
    145 	This commit fixes that.  Now the bands are distributed more evenly
    146 	and cannot exceed the default size.
    147 
    148 	Now the magic number 8 is really suitable for rather simple European
    149 	scripts.  For complex Chinese logograms the magic number should be
    150 	13 but that is subject for another day.
    151 
    152 	* src/smooth/ftgrays.c (gray_convert_glyph): Revise sub-banding
    153 	protocol.
    154 
    155 2016-07-07  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
    156 
    157 	[mac] Fix Savannah bug #48417.
    158 
    159 	Mac OS X linker throws errors when `-exported_symbol_list' input
    160 	file includes non-existing symbols.  Reported by Ryan Schmidt.
    161 
    162 	* builds/exports.mk: Exclude ftmac.h from the headers for apinames
    163 	by default.  Include it when ftmac.c would be compiled.
    164 
    165 2016-07-06  Werner Lemberg  <wl (a] gnu.org>
    166 
    167 	* src/truetype/ttinterp.c (TInstruction_Function): Removed, unused.
    168 
    169 2016-07-05  Werner Lemberg  <wl (a] gnu.org>
    170 
    171 	* Version 2.6.4 released.
    172 	=========================
    173 
    174 
    175 	Tag sources with `VER-2-6-4'.
    176 
    177 	* docs/VERSION.TXT: Update documentation and bump version number to
    178 	2.6.4.
    179 
    180 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
    181 	builds/windows/vc2005/index.html,
    182 	builds/windows/vc2008/freetype.vcproj,
    183 	builds/windows/vc2008/index.html,
    184 	builds/windows/vc2010/freetype.vcxproj,
    185 	builds/windows/vc2010/index.html,
    186 	builds/windows/visualc/freetype.dsp,
    187 	builds/windows/visualc/freetype.vcproj,
    188 	builds/windows/visualc/index.html,
    189 	builds/windows/visualce/freetype.dsp,
    190 	builds/windows/visualce/freetype.vcproj,
    191 	builds/windows/visualce/index.html,
    192 	builds/wince/vc2005-ce/freetype.vcproj,
    193 	builds/wince/vc2005-ce/index.html,
    194 	builds/wince/vc2008-ce/freetype.vcproj,
    195 	builds/wince/vc2008-ce/index.html: s/2.6.3/2.6.4/, s/263/264/.
    196 
    197 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
    198 
    199 	* builds/unix/configure.raw (version_info): Set to 18:4:12.
    200 	* CMakeLists.txt (VERSION_PATCH): Set to 4.
    201 
    202 	* docs/CHANGES: Updated.
    203 
    204 2016-07-05  Werner Lemberg  <wl (a] gnu.org>
    205 
    206 	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Fix compiler warning.
    207 
    208 2016-07-04  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    209 
    210 	[smooth] Variable type revision (part 2).
    211 
    212 	* src/smooth/ftgrays.c (TArea): Restore original definition as `int'.
    213 	(gray_render_line) [FT_LONG64]: Updated.
    214 	(gray_convert_glyph): 32-bit band bisection stack should be 32 bands.
    215 	(gray_convert_glyph_inner): Trace successes and failures.
    216 
    217 2016-07-04  Werner Lemberg  <wl (a] gnu.org>
    218 
    219 	[autofit] Handle single-point contours as segments.
    220 
    221 	Doing so allows us to link them to edges  some fonts like
    222 	`NotoSansGurmukhi-Regular' have such isolated points sitting exactly
    223 	on other outlines.
    224 
    225 	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Don't
    226 	ignore one-point contours but handle them specially as one-point
    227 	segments.
    228 	(af_latin_hints_compute_edges): Append one-point segments to edges
    229 	if possible.
    230 
    231 2016-07-02  Werner Lemberg  <wl (a] gnu.org>
    232 
    233 	[autofit] Remove unused structure members.
    234 
    235 	* src/autofit/afhints.h (AF_SegmentRec, AF_EdgeRec): Remove
    236 	`num_linked'.
    237 
    238 	* src/autofit/afcjk.c (af_cjk_hints_link_segments): Updated.
    239 
    240 2016-07-02  Werner Lemberg  <wl (a] gnu.org>
    241 
    242 	[autofit] Update to Unicode 9.0.0.
    243 
    244 	* src/autofit/afranges.c (af_arab_nonbase_uniranges,
    245 	af_cyrl_uniranges): Add new data.
    246 
    247 2016-07-01  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    248 
    249 	[smooth] Variable type revision (part 1).
    250 
    251 	This patch restores original `TCoord' definition as `int' so that the
    252 	rendering pool is used more efficiently on LP64 platforms (unix).
    253 
    254 	* src/smooth/ftgrays.c (gray_TWorker, TCell, gray_TBand): Switch some
    255 	fields to `TCoord'.
    256 	(gray_find_cell, gray_render_scanline, gray_render_line, gray_hline,
    257 	gray_sweep, gray_convert_glyph): Updated.
    258 
    259 2016-06-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    260 
    261 	[smooth] Minor clean-ups.
    262 
    263 	* src/smooth/ftgrays.c (gray_TWorker): Remove redundant `ycount'.
    264 	(gray_sweep, gray_convert_glyph, gray_dump_cells): Updated.
    265 
    266 2016-06-27  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    267 
    268 	[smooth] Minor clean-ups.
    269 
    270 	* src/smooth/ftgrays.c (gray_convert_glyph): Do not use volatile
    271 	qualifier.
    272 	(gray_raster_render): Move span initializations from here.
    273 	(gray_sweep): ... to here and remove unused `target' argument.
    274 
    275 2016-06-26  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    276 
    277 	[pcf] Fix handling of very large fonts (#47708).
    278 
    279 	* src/pcf/pcfread.c (pcf_get_encodings): Make `encodingOffset' an
    280 	unsigned short.
    281 	Only reject `0xFFFF' as an invalid encoding offset.
    282 
    283 2016-06-25  Werner Lemberg  <wl (a] gnu.org>
    284 
    285 	[truetype] Really fix deallocation in case of error (#47726).
    286 
    287 	* src/truetype/ttgload.c (load_truetype_glyph): Thinko; initialize
    288 	`outline.points' also.
    289 
    290 2016-06-23  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    291 
    292 	[smooth] Consolidate memory management.
    293 
    294 	* src/smooth/ftgrays.c (gray_init_cells): Remove function.
    295 	(gray_TWorker): Remove fields that become local variables.
    296 	(gray_raster_render): Move rendering buffer declaration from here.
    297 	(gray_convert_glyph): ... to here and update accordingly.
    298 
    299 2016-06-22  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    300 
    301 	[smooth] Consolidate boundary checks.
    302 
    303 	Removing the checks from `gray_hline' shaves 1% off rendering speed.
    304 
    305 	* src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_MIN' and `FT_MAX'.
    306 	(gray_TWorker): No need to store `clip_box'.
    307 	(gray_hline): Remove unnecessary boundary checks.
    308 	(gray_convert_glyph): Move boundary checks from here.
    309 	(gray_raster_render): ... to here and consolidate.
    310 
    311 2016-06-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    312 
    313 	[smooth] Use `FT_Outline_Get_CBox'.
    314 
    315 	* src/smooth/ftgrays.c [STANDALONE_]: Duplicate `FT_Outline_Get_CBox'.
    316 	(gray_compute_cbox): Remove this function.
    317 	(gray_convert_glyph): Update to use `FT_Outline_Get_CBox'.
    318 
    319 2016-06-20  Werner Lemberg  <wl (a] gnu.org>
    320 
    321 	[smooth] Remove compiler warnings.
    322 
    323 	* src/smooth/ftgrays.c (gray_convert_glyph): Fix reports from clang.
    324 
    325 2016-06-20  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    326 
    327 	[smooth] Sanitize memory management.
    328 
    329 	* src/smooth/ftgrays.c (gray_convert_glyph): Cleaned up.
    330 
    331 2016-06-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    332 
    333 	[smooth] Remove `band_shoot' that never worked.
    334 
    335 	* src/smooth/ftgrays.c (gray_TWorker): Remove `band_shoot'.
    336 	(gray_convert_glyph): Updated.
    337 
    338 2016-06-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    339 
    340 	[raster, smooth] Handle FT_RENDER_POOL_SIZE better.
    341 
    342 	* src/raster/ftraster.c (FT_MAX_BLACK_POOL): New macro.
    343 	(ft_black_render): Updated.
    344 	* src/smooth/ftgrays.c (FT_MAX_GRAY_POOL): New macro.
    345 	(gray_raster_render): Updated.
    346 
    347 2016-06-16  Werner Lemberg  <wl (a] gnu.org>
    348 
    349 	* src/base/md5.c: Updated to recent version.
    350 
    351 2016-06-14  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    352 
    353 	* src/smooth/ftgrays.c (gray_hline): Optimize if-condition.
    354 
    355 2016-06-13  Werner Lemberg  <wl (a] gnu.org>
    356 
    357 	[autofit] Add support for Cherokee script.
    358 
    359 	* src/autofit/afblue.dat: Add blue zone data for Cherokee.
    360 
    361 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
    362 
    363 	* src/autofit/afscript.h: Add Cherokee standard characters.
    364 
    365 	* src/autofit/afranges.c: Add Cherokee data.
    366 
    367 	* src/autofit/afstyles.h: Add Cherokee data.
    368 
    369 2016-06-09  David Capello  <davidcapello (a] gmail.com>
    370 
    371 	[cmake] Avoid modifying `ftconfig.h' and `ftoption.h' files.
    372 
    373 	* CMakeLists.txt: Each time cmake is run those files are
    374 	modified and the whole FreeType library is recompiled.  With this
    375 	change we change the files only if there are real modifications, so
    376 	we can avoid recompilations.
    377 
    378 2016-06-09  Werner Lemberg  <wl (a] gnu.org>
    379 
    380 	[bdf] Check number of properties (#48166).
    381 
    382 	* src/bdf/bdflib.c (_bdf_parse_start): Implement.
    383 
    384 2016-06-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    385 
    386 	[smooth] Re-enable new line renderer on 64-bit archs.
    387 
    388 	* src/smooth/ftgrays.c (gray_render_line): Conditionally re-enable new
    389 	implementation, where it is safe from overflows.
    390 
    391 2016-06-08  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    392 
    393 	[smooth] Minor clean-ups.
    394 
    395 	* src/smooth/ftgrays.c (gray_dump_cells): Move out of the way.
    396 	(gray_render_span): Remove spurious casts and streamline.
    397 
    398 2016-06-07  Werner Lemberg  <wl (a] gnu.org>
    399 
    400 	[autofit] Add support for Ethiopic script.
    401 
    402 	* src/autofit/afblue.dat: Add blue zone data for Ethiopic.
    403 
    404 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
    405 
    406 	* src/autofit/afscript.h: Add Ethiopic standard characters.
    407 
    408 	* src/autofit/afranges.c: Add Ethiopic data.
    409 
    410 	* src/autofit/afstyles.h: Add Ethiopic data.
    411 
    412 2016-06-07  Werner Lemberg  <wl (a] gnu.org>
    413 
    414 	[autofit] Fix compilation with VS2016 (#48126).
    415 
    416 	This compiler doesn't recognize the end-of-comment sequence `*/' if
    417 	it immediately follows non-ASCII characters.
    418 
    419 	* src/autofit/afscript.h: Ensure whitespace before `*/'.
    420 
    421 2016-06-04  Werner Lemberg  <wl (a] gnu.org>
    422 
    423 	Fix a test for named instances (#48122).
    424 
    425 	This was missed while giving negative face indices an extended
    426 	meaning.
    427 
    428 	* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Implement.
    429 
    430 2016-05-31  Nikolaus Waxweiler  <madigens (a] gmail.com>
    431 
    432 	[truetype] Let SHPIX move points in the twilight zone in v40.
    433 
    434 	* src/truetype/ttinterp.c (Ins_SHPIX): Allow SHPIX to move points in
    435 	the twilight zone.  Otherwise, treat SHPIX the same as DELTAP.
    436 	Unbreaks various fonts such as older versions of Rokkitt and DTL
    437 	Argo T Light that would glitch severely after calling ALIGNRP after a
    438 	blocked SHPIX.
    439 
    440 2016-05-30  Werner Lemberg  <wl (a] gnu.org>
    441 
    442 	[type42] Support `CharStrings' entry format as created by LilyPond.
    443 
    444 	* src/type42/t42parse.c (t42_parse_charstrings): Handle entries
    445 	having the format
    446 
    447 	  (foo) cvn 12345 def
    448 
    449 2016-05-28  Werner Lemberg  <wl (a] gnu.org>
    450 
    451 	* src/autofit/afranges.c: Remove `UL' postfix from hex numbers.
    452 
    453 	Suggested by Alexei.  `UL' is only needed for 16bit compilers, but
    454 	it seems noone is using this anymore (and we no longer test whether
    455 	FreeType compiles in such an environment).  Otherwise, it is easy to
    456 	add the postfix to the `AF_UNICODE_RANGE' macro.
    457 
    458 2016-05-26  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    459 
    460 	[smooth] Shrink bisection stack.
    461 
    462 	The convergence of Bzier flatteners is fast with the deviation
    463 	from straight line being asymptotically cut 4-fold on each bisection.
    464 	This justifies smaller bisection stack size.
    465 
    466 	* src/smooth/ftgrays.c (gray_TWorker): Remove common `bez_stack'.
    467 	(gray_render_conic): Create and use conic `bez_stack'. Move back the
    468 	band analysis from...
    469 	(gray_conic_to): ... here.
    470 	(gray_render_cubic): Create and use cubic `bez_stack'. Move back the
    471 	band analysis from...
    472 	(gray_cubic_to): ... here.
    473 	(gray_move_to): Updated.
    474 
    475 2016-05-25  Werner Lemberg  <wl (a] gnu.org>
    476 
    477 	[autofit] Fixes for Armenian and Gujarati ranges.
    478 
    479 	* src/autofit/afranges.c (af_armn_uniranges): Corrected.
    480 	(af_guru_nonbase_uniranges): Make U+0A3E a base character.
    481 
    482 2016-05-24  Werner Lemberg  <wl (a] gnu.org>
    483 
    484 	[autofit] Add support for Armenian script.
    485 
    486 	* src/autofit/afblue.dat: Add blue zone data for Armenian.
    487 
    488 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
    489 
    490 	* src/autofit/afscript.h: Add Armenian standard characters.
    491 
    492 	* src/autofit/afranges.c: Add Armenian data.
    493 
    494 	* src/autofit/afstyles.h: Add Armenian data.
    495 
    496 2016-05-23  Werner Lemberg  <wl (a] gnu.org>
    497 
    498 	* builds/unix/unix-cc.in (LINK_LIBRARY): Use `-export-symbols'.
    499 
    500 	This was commented about 10 years ago  I think the reason then to
    501 	disable libtool's `-export-symbols' option was to give some badly
    502 	programmed applications access to internal FreeType functions.
    503 
    504 	I believe that we should no longer take care of such programs; the
    505 	number of symbols exported should be rather restricted as much as
    506 	possible.
    507 
    508 2016-05-22  Werner Lemberg  <wl (a] gnu.org>
    509 
    510 	[autofit] Add blue-zone support for Gurmukhi script.
    511 
    512 	This essentially moves the Gurmukhi script from the `Indic' hinter to
    513 	the `Latin' hinter.
    514 
    515 	* src/autofit/afblue.dat: Add blue zone data for Gurmukhi.
    516 
    517 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
    518 
    519 	* src/autofit/afscript.h: Add Gurmukhi standard characters and move
    520 	data out of AF_CONFIG_OPTION_INDIC block.
    521 
    522 	* src/autofit/afranges.c: Move Gurmukhi data out of
    523 	AF_CONFIG_OPTION_INDIC block.
    524 
    525 	* src/autofit/afstyles.h: Update Gurmukhi data; in particular, use
    526 	AF_WRITING_SYSTEM_LATIN.
    527 
    528 2016-05-21  Werner Lemberg  <wl (a] gnu.org>
    529 
    530 	Minor clang++ fixes.
    531 
    532 	* src/base/ftobjs.c (FT_Add_Module), src/psaux/psobjs.c
    533 	(ps_parser_load_field), src/type1/t1load.c (parse_subrs): Add
    534 	initializer.
    535 
    536 	* src/cache/ftccache.h (FTC_CACHE_TRYLOOP_END): Avoid implicit
    537 	conversion from NULL to boolean.
    538 
    539 2016-05-21  Werner Lemberg  <wl (a] gnu.org>
    540 
    541 	Work around a bug of the C 8.0.0.1 compiler on AIX 5.3 (#47955).
    542 
    543 	* include/freetype/internal/ftmemory.h (cplusplus_typeof): Use
    544 	braces for `extern "C++"'.
    545 
    546 2016-05-17  Nikolaus Waxweiler  <madigens (a] gmail.com>
    547 
    548 	[truetype] Make TT_LOADER_SET_PP support subpixel hinting [3/3].
    549 
    550 	* src/truetype/ttgload.c (TT_LOADER_SET_PP): Replace macro with...
    551 	(tt_loader_set_pp): ... this new function.
    552 	Update all callers.
    553 
    554 2016-05-17  Nikolaus Waxweiler  <madigens (a] gmail.com>
    555 
    556 	[truetype] New implementation of v38 bytecode interpreter [2/3].
    557 
    558 	This patch actually modifies the bytecode interpreter.
    559 
    560 	See added comments in `ttinterp.h' for more information on this and
    561 	the following commit in the series.
    562 
    563 	* src/truetype/ttinterp.c (SUBPIXEL_HINTING): Replaced by...
    564 	(NO_SUBPIXEL_HINTING, SUBPIXEL_HINTING_INFINALITY,
    565 	SUBPIXEL_HINTING_MINIMAL): ...new macros.
    566 	(Direct_Move, Direct_Move_X, Direct_Move_Y): Handle backward
    567 	compatibility.
    568 	Updated.
    569 	(Ins_RS, Ins_FDEF, Ins_ENDF, Ins_CALL, Ins_LOOPCALL, Ins_MD):
    570 	Updated.
    571 	(Ins_INSTCTRL): Handle native ClearType mode flag.
    572 	Updated.
    573 	(Ins_FLIPPT, Ins_FLIPRGON, Ins_FLIPRGOFF): Handle backward
    574 	compatibility.
    575 	(Move_Zp2_Point): Ditto.
    576 	(Ins_SHP): Updated.
    577 	(Ins_SHPIX): Handle backward compatibility.
    578 	Updated.
    579 	(Ins_MSIRP, Ins_MDAP, Ins_MIAP, Ins_MDRP, Ins_MIRP): Updated.
    580 	(Ins_ALIGNRP): Updated.
    581 	(Ins_IUP, Ins_DELTAP): Handle backward compatibility.
    582 	Updated.
    583 	(Ins_GETINFO): Handle v38 flags.
    584 	Updated.
    585 	(TT_RunIns): Handle backward compatibility mode.
    586 	Updated.
    587 
    588 2016-05-17  Nikolaus Waxweiler  <madigens (a] gmail.com>
    589 
    590 	[truetype] New implementation of v38 bytecode interpreter [1/3].
    591 
    592 	This patch prepares data structures and the like.
    593 
    594 	See added comments in `ttinterp.h' for more information on this and
    595 	the following commits in the series.
    596 
    597 	* devel/ftoption.h, include/freetype/config/ftoption.h
    598 	(TT_CONFIG_OPTION_SUBPIXEL_HINTING): Assign values to differentiate
    599 	between subpixel versions.
    600 	(TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY,
    601 	TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL): New macros.
    602 
    603 	* include/freetype/ftttdrv.h (TT_INTERPRETER_VERSION_40): New macro.
    604 
    605 	* include/freetype/internal/tttypes.h (TT_FaceRec): Updated.
    606 
    607 	* src/truetype/ttinterp.h (TT_ExecContextRec): Define new fields
    608 	`subpixel_hinting_lean', `vertical_lcd_lean',
    609 	`backward_compatibility', `iupx_called', iupy_called', and
    610 	`grayscale_cleartype' for new hinting mode.
    611 
    612 	* src/truetype/ttdriver.c (tt_property_set): Handle v38 and v40
    613 	interpreters conditionally.
    614 
    615 	* src/truetype/ttgload.c (TT_Hint_Glyph): Save phantom points unless
    616 	in v38 backward compatibility mode.
    617 	Updated.
    618 	(compute_glyph_metrics): Add v38 backward compatibility mode
    619 	constraint for adjusting advance widths.
    620 	Updated.
    621 	(tt_loader_init): Handle new flags `subpixel_hinting_lean',
    622 	`grayscale_cleartype', and `vertical_lcd_lean'.
    623 	Updated.
    624 	(tt_get_metrics, TT_Process_Simple_Glyph, TT_LOADER_SET_PP):
    625 	Updated.
    626 
    627 	* src/truetype/ttobjs.c (tt_driver_init): Conditionally set
    628 	default interpreter version number.
    629 
    630 	* src/truetype/ttsubpix.c, src/truetype/ttsubpix.h: Updated.
    631 
    632 2016-05-17  Werner Lemberg  <wl (a] gnu.org>
    633 
    634 	[cff] Fix matrix scaling (#47848).
    635 
    636 	* include/freetype/config/ftstdlib.h (FT_LONG_MIN): New macro.
    637 
    638 	* src/cff/cffparse.c (cff_parse_font_matrix): Use largest scaling
    639 	value of all matrix coefficients to scale matrix.
    640 
    641 	* src/cff/cffobjs.c (cff_face_init): Use `matrix->yx' member for
    642 	matrix normalization if `matrix->yy' is zero.
    643 
    644 2016-05-16  Werner Lemberg  <wl (a] gnu.org>
    645 
    646 	[base] Reject invalid sfnt Mac resource (#47891).
    647 
    648 	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Check validity
    649 	of `CID ' and `TYPE1' table offset and length.
    650 
    651 2016-05-16  Werner Lemberg  <wl (a] gnu.org>
    652 
    653 	[cid] Fix scanning for `StartData' and `/sfnts' (#47892).
    654 
    655 	* src/cid/cidparse.c (STARTDATA, STARTDATA_LEN, SFNTS, SFNTS_LEN):
    656 	New macros.
    657 	(cid_parser_new): Fix and document algorithm.
    658 
    659 2016-05-16  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
    660 
    661 	[truetype] Improve the recursive reference detector.
    662 
    663 	The previous fix for #46372 misunderstood a composite glyph referring
    664 	same component twice as a recursive reference.  See the discussion
    665 
    666 	  https://lists.gnu.org/archive/html/freetype/2016-05/msg00000.html
    667 
    668 	Thanks to Khaled Hosny for finding this issue.
    669 
    670 	* src/truetype/ttgload.c (ft_list_get_node_at): A function to get
    671 	the i-th node from FT_List.
    672 	(load_truetype_glyph): In the traversal scan of the reference tree
    673 	in the composite glyph, we clear the nodes filled by previous
    674 	sibling chain.
    675 
    676 2016-05-07  Werner Lemberg  <wl (a] gnu.org>
    677 
    678 	[cache] Allow value 0 for face ID.
    679 
    680 	We never dereference `face_id', and some implementations might use a
    681 	running number instead of a pointer.  Additionally, disallowing
    682 	value zero was undocumented.
    683 
    684 	* src/cache/ftccmap.c (FTC_CMapCache_Lookup), src/cache/ftcmanag.c
    685 	(FTC_Manager_LookupFace, FTC_Manager_RemoveFaceID): Remove test for
    686 	`face_id'.
    687 
    688 2016-05-05  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    689 
    690 	[smooth] More efficient accounting of conic splits and draws.
    691 
    692 	A single decrement counter of segments to draw, instead of an array,
    693 	contains all the information necessary to decide when to split and
    694 	when to draw a conic segment. The number of splits before each draw is
    695 	equal to the number of trailing zeros in the counter.
    696 
    697 	* src/smooth/ftgrays.c (gray_TWorker): Remove `lev_stack'.
    698 	(gray_render_conic): Updated to use decrement counter of segments.
    699 
    700 2016-05-05  Werner Lemberg  <wl (a] gnu.org>
    701 
    702 	[cff, truetype] Fix logic for `FT_Property_Set'.
    703 
    704 	Otherwise some properties could be set to arbitrary values, which is
    705 	harmless, but querying could give wrong positive results.
    706 
    707 	* src/cff/cffdrivr.c (cff_property_set) [hinting-engine],
    708 	* src/truetype/ttdriver.c (tt_property_set) [interpreter-version]:
    709 	Only allow defined values.
    710 
    711 2016-04-25  Werner Lemberg  <wl (a] gnu.org>
    712 
    713 	[autofit] Add blue-zone support for Gujarati script.
    714 
    715 	This essentially moves the Gujarati script from the `Indic' hinter to
    716 	the `Latin' hinter.
    717 
    718 	* src/autofit/afblue.dat: Add blue zone data for Gujarati.
    719 
    720 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
    721 
    722 	* src/autofit/afscript.h: Add Gujarati standard characters and move
    723 	data out of AF_CONFIG_OPTION_INDIC block.
    724 
    725 	* src/autofit/afranges.c: Move Gujarati data out of
    726 	AF_CONFIG_OPTION_INDIC block.
    727 
    728 	* src/autofit/afstyles.h: Update Gujarati data; in particular, use
    729 	AF_WRITING_SYSTEM_LATIN.
    730 
    731 2016-04-24  Werner Lemberg  <wl (a] gnu.org>
    732 
    733 	Minor.
    734 
    735 	* include/freetype/freetype.h (FT_HAS_*, FT_IS_*): Protect macro
    736 	argument with parentheses.
    737 
    738 2016-04-24  Werner Lemberg  <wl (a] gnu.org>
    739 
    740 	[truetype] Fix deallocation in case of error (#47726).
    741 
    742 	* src/truetype/ttgload.c (load_truetype_glyph): Initialize fields in
    743 	`outline' that are going to be deallocated in case of error.
    744 
    745 2016-04-23  Werner Lemberg  <wl (a] gnu.org>
    746 
    747 	[autofit] Improve Georgian blue zone characters.
    748 
    749 	Suggested by Akaki Razmadze <razmadzekoko (a] gmail.com>.
    750 
    751 	* src/autofit/afblue.dat (AF_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM):
    752 	Updated.
    753 
    754 	* src/autofit/afblue.c: Regenerated.
    755 
    756 2016-04-16  David Capello  <davidcapello (a] gmail.com>
    757 
    758 	[cmake] Honor SKIP_INSTALL_* settings (as used in zlib).
    759 
    760 	As FreeType depends on zlib, if we don't install zlib (e.g., because
    761 	we defined SKIP_INSTALL_ALL), FreeType cannot be installed, too
    762 	(cmake triggers an error saying that FreeType cannot be installed
    763 	because zlib target isn't in the export set).
    764 
    765 	* CMakeLists.txt: Honor `SKIP_INSTALL_HEADERS',
    766 	`SKIP_INSTALL_LIBRARIES', and `SKIP_INSTALL_ALL' settings.
    767 
    768 2016-04-16  Behdad Esfahbod  <behdad (a] behdad.org>
    769 
    770 	[truetype] Another fix for non-intermediate GX tuples.
    771 
    772 	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Add some missing
    773 	cases.
    774 
    775 2016-04-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    776 
    777 	Remove forgotten macro.
    778 
    779 	* include/freetype/internal/internal.h
    780 	[FT_INTERNAL_POSTSCRIPT_GLOBALS_H]: Remove.
    781 
    782 2016-04-09  Werner Lemberg  <wl (a] gnu.org>
    783 
    784 	[autofit] Add support for Georgian scripts.
    785 
    786 	Georgian is problematic, since `uppercase' forms of Mkhedruli
    787 	(called Mtavruli) are not yet defined in Unicode, which means that
    788 	proper blue zones can't be defined.  However, there is already a
    789 	proposal submitted to Unicode; see
    790 
    791 	  https://www.unicode.org/L2/L2016/16034-n4707-georgian.pdf
    792 
    793 	Additionally, due to historical reasons, Unicode treats Khutsuri as
    794 	the same script as Mkhedruli, and so does OpenType.  However, since
    795 	the two scripts have completely different shapes it can happen that
    796 	blue zones differ considerably.  The tag `geok' used here (derived
    797 	from ISO 15924) to differentiate the two scripts is not an OpenType
    798 	tag in use.  If we now have a font that contains both glyphs for
    799 	Mkhedruli and Khutsuri, and it uses OpenType features for both also,
    800 	HarfBuzz unavoidably treats all glyphs as `geor'.  As a consequence,
    801 	blue zones for `geok' are not used for glyphs involved in the
    802 	OpenType features.
    803 
    804 	An issue not yet resolved is which OpenType feature should be used
    805 	to access Mtavruli glyph shapes; right now, FreeType doesn't set up
    806 	support for them, but it is easy to add them later on as soon as
    807 	more information is available.
    808 
    809 	* src/autofit/afblue.dat: Add blue zone data for Georgian.
    810 
    811 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
    812 
    813 	* src/autofit/afscript.h: Add Georgian standard characters.
    814 
    815 	* src/autofit/afranges.c: Add Georgian data.
    816 
    817 	* src/autofit/afstyles.h: Add Georgian data.
    818 
    819 2016-04-05  Werner Lemberg  <wl (a] gnu.org>
    820 
    821 	[autofit] Provide dummy blue zone for pseudo script `none'.
    822 
    823 	Even if the dummy hinter is used as the handler for `none' (which
    824 	doesn't use blue zones), it is more consistent than the old value
    825 	(which was 0), pointing to Arabic...
    826 
    827 	* src/autofit/afblue.dat: Add `AF_BLUE_STRINGSET_NONE'.
    828 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
    829 
    830 	* src/autofit/afstyles.h (none_dflt): Use AF_BLUE_STRINGSET_NONE.
    831 
    832 2016-03-30  Werner Lemberg  <wl (a] gnu.org>
    833 
    834 	* src/pfr/pfrload.c (pfr_aux_name_load): Thinko (#47567).
    835 
    836 2016-03-30  Werner Lemberg  <wl (a] gnu.org>
    837 
    838 	* src/pfr/pfrload.c (pfr_log_font_count): Better font size estimate.
    839 
    840 2016-03-30  Werner Lemberg  <wl (a] gnu.org>
    841 
    842 	* src/pfr/pfrload.c (pfr_aux_name_load): Fix memory leak (#47567).
    843 
    844 2016-03-29  Werner Lemberg  <wl (a] gnu.org>
    845 
    846 	* src/base/ftadvanc.c (FT_Get_Advances): Fix invalid left shift.
    847 
    848 2016-03-29  Werner Lemberg  <wl (a] gnu.org>
    849 
    850 	[pfr] Fix binary search (#47514).
    851 
    852 	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Handle border
    853 	conditions correctly.
    854 
    855 2016-03-29  Werner Lemberg  <wl (a] gnu.org>
    856 
    857 	[pfr] Minor.
    858 
    859 	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Replace `left',
    860 	`right', and `middle' with `min', `max', and `mid' as used in other
    861 	FreeType binary search code.
    862 	(pfr_load_bitmap_metrics): Fix invalid left shift.
    863 
    864 2016-03-29  Werner Lemberg  <wl (a] gnu.org>
    865 
    866 	* src/pfr/pfrtypes.h: Replace all enums with macros.
    867 
    868 	We need `~FOO' to unset bits, and only with unsigned values (which
    869 	`enum' isn't normally) this works cleanly.
    870 
    871 2016-03-26  Werner Lemberg  <wl (a] gnu.org>
    872 
    873 	[pfr] Robustify bitmap strike handling (#47514).
    874 
    875 	We did a binary search for a charcode without ensuring that the
    876 	searched data is ordered.  Validating the order is now done lazily,
    877 	this is, the first access to a bitmap glyph triggers the order check
    878 	in the corresponding bitmap strike.
    879 
    880 	* src/pfr/pfrtypes.h (PFR_BitmapFlags): New values
    881 	`PFR_BITMAP_VALID_CHARCODES' and `PFR_BITMAP_CHARCODES_VALIDATED'.
    882 
    883 	* src/pfr/pfrsbit.c (pfr_lookup_bitmap_data): Make `flags' argument
    884 	a pointer.  Handle new PFR_BITMAP_XXX flags.
    885 	(pfr_slot_load_bitmap): Updated.
    886 
    887 2016-03-26  Werner Lemberg  <wl (a] gnu.org>
    888 
    889 	[pfr] Fix handling of compound glyphs.
    890 
    891 	Extra items are indicated with different bit positions.
    892 
    893 	* src/pfr/pfrtypes.h (PFR_GlyphFlags): Replace
    894 	`PFR_GLYPH_EXTRA_ITEMS' with `PFR_GLYPH_SIMPLE_EXTRA_ITEMS' and
    895 	`PFR_GLYPH_COMPOUND_EXTRA_ITEMS'.
    896 
    897 	* src/pfr/pfrgload.c (pfr_glyph_load_simple,
    898 	pfr_glyph_load_compound): Use them.
    899 
    900 2016-03-25  Werner Lemberg  <wl (a] gnu.org>
    901 
    902 	[pfr] Minor.
    903 
    904 	* src/pfr/pfrsbit.c, src/pfr/pfrobjs.c: Use flag names instead of
    905 	bare numbers.
    906 
    907 2016-03-25  Werner Lemberg  <wl (a] gnu.org>
    908 
    909 	[pfr] Various clang sanitizer fixes.
    910 
    911 	* src/pfr/pfrsbit.c (pfr_load_bitmap_metrics): Correctly handle
    912 	signed nibbles.
    913 	(pfr_slot_load_bitmap): Correctly exit frame in case of error.
    914 	Fix invalid left shifts.
    915 
    916 2016-03-23  Werner Lemberg  <wl (a] gnu.org>
    917 
    918 	Rename `VERSION.DLL' (#47472).
    919 
    920 	* docs/VERSION.DLL: Renamed to...
    921 	* docs/VERSIONS.TXT: ...this.
    922 
    923 2016-03-23  Werner Lemberg  <wl (a] gnu.org>
    924 
    925 	[raster, smooth] Directly test outline size (#47500).
    926 
    927 	This improves stand-alone compilation.
    928 
    929 	* src/base/ftoutln.c (FT_Outline_Render): Move cbox size test to...
    930 
    931 	* src/raster/ftraster.c (ft_black_render), src/smooth/ftgrays.c
    932 	(gray_raster_render): ...these functions.
    933 
    934 2016-03-23  Werner Lemberg  <wl (a] gnu.org>
    935 
    936 	[raster, smooth] Fix some clang sanitizer runtime issues.
    937 
    938 	* src/raster/ftraster.c (ft_black_reset, ft_black_set_mode,
    939 	ft_black_render): Harmonize signatures with `ftimage.h'.
    940 
    941 	* src/smooth/ftgrays.c (gray_raster_render, gray_raster_reset):
    942 	Ditto.
    943 
    944 2016-03-22  Werner Lemberg  <wl (a] gnu.org>
    945 
    946 	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Minor.
    947 
    948 	This fixes an AddressSanitizer issue:
    949 
    950 	  ttgload.c:430:7: runtime error: null pointer passed as argument 1,
    951 	                   which is declared to never be null
    952 
    953 2016-03-21  Werner Lemberg  <wl (a] gnu.org>
    954 
    955 	* src/autofit/afhints.c (af_glyph_hints_reload): Thinko.
    956 
    957 	This fixes the previous commit to this file.
    958 
    959 2016-03-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    960 
    961 	[smooth] Partly revert recent changes.
    962 
    963 	* src/smooth/ftgrays.c (gray_conic_to, gray_cubic_to): Rework
    964 	conditions to fix rendering issues.
    965 
    966 2016-03-20  Werner Lemberg  <wl (a] gnu.org>
    967 
    968 	[autofit] Show `near' points in tracing.
    969 
    970 	* src/autofit/afhints.h (AF_FLAG_NEAR): New macro.
    971 
    972 	* src/autofit/afhints.c (af_glyph_hints_dump_points): Implement it.
    973 	(af_glyph_hints_reload): Handle AF_FLAG_NEAR.
    974 
    975 2016-03-18  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    976 
    977 	[smooth] Minor refactoring and microoptimizations.
    978 
    979 	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
    980 	band clipping from here.
    981 	(gray_conic_to, gray_cubic_to): ... to here.
    982 	(gray_render_line, gray_render_scanline): Initialize variables closer
    983 	to their use.
    984 
    985 2016-03-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    986 
    987 	[smooth] Minor refactoring.
    988 
    989 	* src/smooth/ftgrays.c (gray_render_conic, gray_render_cubic): Move
    990 	upscaling from here.
    991 	(gray_conic_to, gray_cubic_to): ... to here.
    992 
    993 2016-03-15  Werner Lemberg  <wl (a] gnu.org>
    994 
    995 	* src/autofit/aflatin.c (af_latin_compute_stem_width): Optimize.
    996 
    997 2016-03-14  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
    998 
    999 	[smooth] Temporarily revert 6eb6158dd787 (#47114).
   1000 
   1001 	* src/smooth/ftgrays.c (gray_render_line): Old implementation.
   1002 
   1003 2016-03-12  Werner Lemberg  <wl (a] gnu.org>
   1004 
   1005 	[ftfuzzer] Improve coverage of rasterfuzzer.
   1006 
   1007 	* src/tools/ftfuzzer/rasterfuzzer.cc (LLVMFuzzerTestOneInput): Use
   1008 	input data for `tags' array also.
   1009 	Trim input data to get more positive hits.
   1010 
   1011 2016-03-11  Pavlo Denysov  <paul.kiev+savannah (a] gmail.com>
   1012 
   1013 	Fix CMake issues for iOS (patch #8941).
   1014 
   1015 	* CMakeLists.txt (CMAKE_TOOLCHAIN_FILE): Fix directory.
   1016 	* builds/cmake/iOS.cmake: No longer enforce gcc.
   1017 
   1018 2016-03-09  Behdad Esfahbod  <behdad (a] behdad.org>
   1019 
   1020 	[truetype] Fix handling of non-intermediate GX tuples.
   1021 
   1022 	We probably did not notice this as all fonts we tested had only
   1023 	tuple_coords[i] be +1 or -1 for non-intermediate tuples.
   1024 
   1025 	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Implement it.
   1026 
   1027 2016-03-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1028 
   1029 	[base] Refuse to render enormous outlines (#47114).
   1030 
   1031 	The goal is to avoid integer overflows in the rendering algorithms.
   1032 	The limit is chosen arbitrarily at some 2^18 pixels, which should be
   1033 	enough for modern devices including printers.
   1034 
   1035 	* src/base/ftoutln.c (FT_Outline_Render): Check CBox and reject
   1036 	enormous outlines.
   1037 
   1038 2016-03-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1039 
   1040 	[smooth] Replace left shifts with multiplications (#47114).
   1041 
   1042 	* src/smooth/ftgrays.c (SUBPIXELS, UPSCALE, DOWNSCALE): Do it.
   1043 
   1044 2016-03-05  Werner Lemberg  <wl (a] gnu.org>
   1045 
   1046 	[autofit] Avoid excessive stem length rounding (#25392).
   1047 
   1048 	* src/autofit/aflatin.c (af_latin_compute_stem_width): Add argument
   1049 	to pass difference between hinted and unhinted position of base
   1050 	point; use this to adjust the stem width depending on the PPEM so
   1051 	that it doesn't become too large under certain circumstances.
   1052 	Update all callers using value 0 for this argument except...
   1053 	(af_latin_align_linked_edge): Pass position delta of base point to
   1054 	`af_latin_compute_stem_width'.
   1055 
   1056 2016-03-05  J Raynor  <jxraynor (a] gmail.com>
   1057 
   1058 	Make FreeType compile on AIX out of the box.
   1059 
   1060 	* builds/unix/configure.raw (XX_ANSIFLAGS): Don't use `-ansi' on
   1061 	AIX.
   1062 
   1063 2016-03-01  Werner Lemberg  <wl (a] gnu.org>
   1064 	    Kostya Serebryany  <kcc (a] google.com>
   1065 
   1066 	[ftfuzzer] Add unit for testing smooth and black rasterizers.
   1067 
   1068 	* src/tools/ftfuzzer/rasterfuzzer.cc: New file.
   1069 
   1070 2016-03-01  Werner Lemberg  <wl (a] gnu.org>
   1071 
   1072 	[autofit] Fix reallocation error introduced in 2016-02-27 (#47310).
   1073 
   1074 	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Reassign
   1075 	`prev_segment' after reallocation.
   1076 
   1077 2016-03-01  Werner Lemberg  <wl (a] gnu.org>
   1078 
   1079 	Fix clang warnings.
   1080 
   1081 	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Use
   1082 	FT_UShort for `min_flags' and `max_flags'.
   1083 	Initialize `prev_*' variables.
   1084 
   1085 	* src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Fix
   1086 	types of local variables.
   1087 
   1088 	* src/smooth/ftgrays.c (gray_dump_cells) [FT_DEBUG_LEVEL_TRACE]:
   1089 	Update `printf' format string.
   1090 
   1091 	* src/tools/ftfuzzer/ftfuzzer.cc (setIntermediateAxis): Add cast.
   1092 	(LLVMFuzzerTestOneInput): Fix loop type.
   1093 
   1094 2016-02-29  Werner Lemberg  <wl (a] gnu.org>
   1095 
   1096 	[autofit] Add blue-zone support for Sinhala script.
   1097 
   1098 	This essentially moves the Sinhala script from the `Indic' hinter to
   1099 	the `Latin' hinter.
   1100 
   1101 	* src/autofit/afblue.dat: Add blue zone data for Sinhala.
   1102 
   1103 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1104 
   1105 	* src/autofit/afscript.h: Add Sinhala standard character and move data
   1106 	out of AF_CONFIG_OPTION_INDIC block.
   1107 
   1108 	* src/autofit/afranges.c: Move Sinhala data out of
   1109 	AF_CONFIG_OPTION_INDIC block.
   1110 
   1111 	* src/autofit/afstyles.h: Update Sinhala data; in particular, use
   1112 	AF_WRITING_SYSTEM_LATIN.
   1113 
   1114 2016-02-27  Werner Lemberg  <wl (a] gnu.org>
   1115 
   1116 	[autofit] Properly handle spikes pointing to the x-axis.
   1117 
   1118 	An example that gets better rendered is glyph `uusignTaml' (glyph
   1119 	index 2286) in font `FreeSerif.ttf' (Version 0412.2263) at 22ppem.
   1120 
   1121 	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Properly
   1122 	handle segments where the last point of the first segment is
   1123 	identical to the first point in the second one.  This can happen for
   1124 	malformed fonts or spikes.  We either merge the new segment with the
   1125 	previous one (both segments point into the same direction), or we
   1126 	discard the shorter segment if they point into different directions.
   1127 
   1128 2016-02-27  Werner Lemberg  <wl (a] gnu.org>
   1129 
   1130 	[autofit] Minor code clean-up.
   1131 
   1132 	* src/autofit/aflatin.c (af_latin_hints_compute_segments): Change
   1133 	some local variable names to better differentiate between values
   1134 	along a segment and values orthogonal to it.
   1135 
   1136 2016-02-26  Werner Lemberg  <wl (a] gnu.org>
   1137 
   1138 	[autofit] Improve BOUND action.
   1139 
   1140 	In complex glyph shapes, the original logic was too simple to cater
   1141 	for situations that would actually need something similar to PS Hint
   1142 	masks.  This fix should alleviate the worst cases.
   1143 
   1144 	* src/autofit/aflatin.c (af_latin_hint_edges): Don't allow
   1145 	complete disappearance of stems.
   1146 
   1147 2016-02-25  Werner Lemberg  <wl (a] gnu.org>
   1148 
   1149 	[autofit] Add blue-zone support for Tamil script.
   1150 
   1151 	This essentially moves the Tamil script from the `Indic' hinter to
   1152 	the `Latin' hinter.
   1153 
   1154 	* src/autofit/afblue.dat: Add blue zone data for Tamil.
   1155 
   1156 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1157 
   1158 	* src/autofit/afscript.h: Add Tamil standard character and move data
   1159 	out of AF_CONFIG_OPTION_INDIC block.
   1160 
   1161 	* src/autofit/afranges.c: Move Tamil data out of
   1162 	AF_CONFIG_OPTION_INDIC block.
   1163 
   1164 	* src/autofit/afstyles.h: Update Tamil data; in particular, use
   1165 	AF_WRITING_SYSTEM_LATIN.
   1166 
   1167 2016-02-18  Werner Lemberg  <wl (a] gnu.org>
   1168 
   1169 	[autofit] Add blue-zone support for Malayalam script.
   1170 
   1171 	This essentially moves the Malayalam script from the `Indic' hinter
   1172 	to the `Latin' hinter.
   1173 
   1174 	* src/autofit/afblue.dat: Add blue zone data for Malayalam.
   1175 
   1176 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1177 
   1178 	* src/autofit/afscript.h: Add Malayalam standard characters and move
   1179 	data out of AF_CONFIG_OPTION_INDIC block.
   1180 
   1181 	* src/autofit/afranges.c: Move Malayalam data out of
   1182 	AF_CONFIG_OPTION_INDIC block.
   1183 
   1184 	* src/autofit/afstyles.h: Update Malayalam data; in particular, use
   1185 	AF_WRITING_SYSTEM_LATIN.
   1186 
   1187 2016-02-16  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1188 
   1189 	[smooth] Fix integer overflow (#47114).
   1190 
   1191 	* src/smooth/ftgrays.c (TArea): Make it unconditionally `long'.
   1192 
   1193 2016-02-15  Werner Lemberg  <wl (a] gnu.org>
   1194 
   1195 	* src/cff/cffparse.c (cff_parse_multiple_master): Improve tracing.
   1196 
   1197 2016-02-15  Werner Lemberg  <wl (a] gnu.org>
   1198 
   1199 	[cff] Handle T2 operator only with old CFF engine (#47157).
   1200 
   1201 	* src/cff/cffparse.c (cff_parser_run) <opcode 31>: Enclose with
   1202 	#ifdef CFF_CONFIG_OPTION_OLD_ENGINE...#endif.
   1203 
   1204 2016-02-15  Werner Lemberg  <wl (a] gnu.org>
   1205 
   1206 	[cff] Partially handle `load' and `store' ops in old CFF engine.
   1207 
   1208 	Now all glyphs of MM CFFs like `ITCGaramondMM-It.otf' can be
   1209 	displayed.
   1210 
   1211 	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_store,
   1212 	cff_op_load>: Partially implement it.
   1213 
   1214 	* src/cff/cffparse.c (cff_parser_init): Add new parameter to pass
   1215 	the number of Multiple Master axes.
   1216 	Update all callers.
   1217 	(cff_parse_multiple_master): Get number of axes.
   1218 	(cff_parser_run) <opcode 31>: Updated.
   1219 	* src/cff/cffparse.h: Updated.
   1220 	(CFF_ParserRec): Add `num_axes' field.
   1221 
   1222 	* src/cff/cffload.c: Updated.
   1223 
   1224 	* src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_axes' field.
   1225 
   1226 2016-02-15  Werner Lemberg  <wl (a] gnu.org>
   1227 
   1228 	[cff] Correctly trace SIDs that contain NULL bytes.
   1229 
   1230 	We need this to properly trace Multiple Master CFFs, which contain
   1231 	two SIDs that are charstrings.
   1232 
   1233 	This commit makes FreeType also show the last SID, omitted
   1234 	previously due to a bug.
   1235 
   1236 	* src/cff/cfftypes.h (CFF_FontRec): Add `string_pool_size' field.
   1237 
   1238 	* src/cff/cffload.c (cff_index_get_pointers): Add argument to return
   1239 	the pool size.
   1240 	Update all callers.
   1241 
   1242 	* src/cff/cffobjs.c (cff_face_init) [FT_DEBUG_LEVEL_TRACE]: Directly
   1243 	access `cff->strings' to display the non-default strings.
   1244 
   1245 2016-02-14  Werner Lemberg  <wl (a] gnu.org>
   1246 
   1247 	* src/base/fthash.c: Include FT_INTERNAL_MEMORY_H.
   1248 
   1249 2016-02-14  Werner Lemberg  <wl (a] gnu.org>
   1250 
   1251 	* src/cff/cffparse.c: Include `cffgload.h'.
   1252 
   1253 	Problem reported by Colin Walters <walters (a] verbum.org>.
   1254 
   1255 2016-02-14  Werner Lemberg  <wl (a] gnu.org>
   1256 
   1257 	[cff] Make old CFF engine show MM CFFs (without variations).
   1258 
   1259 	The new code only displays the first master in the font.
   1260 
   1261 	* src/cff/cffgload.c (cff_decode_parse_charstrings): Add new
   1262 	parameter to allow function calls from dictionaries also.
   1263 	<cff_op_blend>: Partially implement it.
   1264 	Update all callers.
   1265 	* src/cff/cffgload.h: Updated.
   1266 
   1267 	* src/cff/cffparse.c (cff_parser_init): Add new parameter to pass the
   1268 	number of Multiple Master designs.
   1269 	Update all callers.
   1270 	(cff_parse_multiple_master): New function to rudimentarily parse
   1271 	operator.
   1272 	(cff_parser_run): Handle `T2' operator.
   1273 	* src/cff/cffparse.h: Updated.
   1274 	(CFF_ParserRec): Add `num_designs' field.
   1275 
   1276 	* src/cff/cffload.c: Updated.
   1277 
   1278 	* src/cff/cfftoken.h: Handle `MultipleMaster' operator.
   1279 
   1280 	* src/cff/cfftypes.h (CFF_FontRecDictRec): Add `num_designs' field.
   1281 
   1282 	* src/sfnt/sfobjs.c (sfnt_init_face): Don't handle `fvar' table for
   1283 	MM CFFs.
   1284 
   1285 2016-02-09  Werner Lemberg  <wl (a] gnu.org>
   1286 
   1287 	[docmaker] Don't emit trailing newlines.
   1288 
   1289 	* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_code):
   1290 	Use `rstrip'.
   1291 
   1292 2016-02-07  Werner Lemberg  <wl (a] gnu.org>
   1293 
   1294 	* Version 2.6.3 released.
   1295 	=========================
   1296 
   1297 
   1298 	Tag sources with `VER-2-6-3'.
   1299 
   1300 	* docs/VERSION.DLL: Update documentation and bump version number to
   1301 	2.6.3.
   1302 
   1303 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
   1304 	builds/windows/vc2005/index.html,
   1305 	builds/windows/vc2008/freetype.vcproj,
   1306 	builds/windows/vc2008/index.html,
   1307 	builds/windows/vc2010/freetype.vcxproj,
   1308 	builds/windows/vc2010/index.html,
   1309 	builds/windows/visualc/freetype.dsp,
   1310 	builds/windows/visualc/freetype.vcproj,
   1311 	builds/windows/visualc/index.html,
   1312 	builds/windows/visualce/freetype.dsp,
   1313 	builds/windows/visualce/freetype.vcproj,
   1314 	builds/windows/visualce/index.html,
   1315 	builds/wince/vc2005-ce/freetype.vcproj,
   1316 	builds/wince/vc2005-ce/index.html,
   1317 	builds/wince/vc2008-ce/freetype.vcproj,
   1318 	builds/wince/vc2008-ce/index.html: s/2.6.2/2.6.3/, s/262/263/.
   1319 
   1320 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
   1321 
   1322 	* builds/unix/configure.raw (version_info): Set to 18:3:12.
   1323 	* CMakeLists.txt (VERSION_PATCH): Set to 3.
   1324 
   1325 	* docs/CHANGES: Updated.
   1326 
   1327 2016-02-07  Werner Lemberg  <wl (a] gnu.org>
   1328 
   1329 	Fix another runtime error found by clang's sanitizer (#47082).
   1330 
   1331 	* src/base/ftstroke.c (ft_stroke_border_export): Properly handle
   1332 	empty input buffer.
   1333 
   1334 2016-02-07  Werner Lemberg  <wl (a] gnu.org>
   1335 
   1336 	Fix runtime errors found by clang's sanitizer (#47082).
   1337 
   1338 	* src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
   1339 	(FT_Outline_Copy), src/cache/ftcsbits.c (ftc_sbit_copy_bitmap):
   1340 	Properly handle empty input buffer.
   1341 
   1342 2016-02-07  Werner Lemberg  <wl (a] gnu.org>
   1343 
   1344 	[cff] Minor.
   1345 
   1346 	* src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_sqrt>:
   1347 	Remove dead code.
   1348 
   1349 2016-02-07  Werner Lemberg  <wl (a] gnu.org>
   1350 
   1351 	[cff] Implement missing operators in new engine (except `random').
   1352 
   1353 	* src/cff/cf2font.h (CF2_STORAGE_SIZE): New macro.
   1354 
   1355 	* src/cff/cf2intrp.c (cf2_interpT2CharString): Implement the
   1356 	following operators: abs, add, and, div, drop, dup, eq, exch, get,
   1357 	ifelse, index, mul, neg, not, or, put, roll, sqrt, sub.
   1358 
   1359 	* src/cff/cf2stack.h, src/cff/cf2stack.c (cf2_stack_roll): New
   1360 	auxiliary function for `roll' operator.
   1361 
   1362 2016-02-06  Werner Lemberg  <wl (a] gnu.org>
   1363 
   1364 	[cff] Fix some Type 2 operators in old CFF engine.
   1365 
   1366 	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Fix `eq'
   1367 	operator, add `not' and (unsupported) `blend' operators.
   1368 
   1369 2016-02-05  Sebastian Rasmussen  <sebras (a] gmail.com>
   1370 
   1371 	Make direct call of `make install' work (#47072).
   1372 
   1373 	* builds/unix/unix-def.in (freetype-config): Make sure
   1374 	`freetype-config' is generated for both make targets (`all' and
   1375 	`install').
   1376 
   1377 2016-02-05  Werner Lemberg  <wl (a] gnu.org>
   1378 
   1379 	[base] Fix advance width loading for MM and GX fonts (#47064).
   1380 
   1381 	* src/base/ftadvanc.c (LOAD_ADVANCE_FAST_CHECK): Return false for
   1382 	MM and GX fonts.
   1383 	Update callers.
   1384 
   1385 2016-02-03  Werner Lemberg  <wl (a] gnu.org>
   1386 
   1387 	[cff] Fix handling of face_index == -1 for pure CFF.
   1388 
   1389 	* src/cff/cffobjs.c (cff_face_init): Return correct number of faces.
   1390 
   1391 2016-01-30  Werner Lemberg  <wl (a] gnu.org>
   1392 
   1393 	[autofit] Minor tracing improvement.
   1394 
   1395 	* src/autofit/afhints.c (af_glyph_hints_dump_points): Insert newline
   1396 	at the start of a new contour.
   1397 
   1398 2016-01-28  Nikolaus Waxweiler  <madigens (a] gmail.com>
   1399 
   1400 	Remove unpatented hinter (3/3).
   1401 
   1402 	* include/freetype/config/ftoption.h
   1403 	(TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove.
   1404 
   1405 	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
   1406 	`ignore_unpatented_hinter' field.
   1407 	Update users.
   1408 	(FT_DEBUG_HOOK_UNPATENTED_HINTING): Remove.
   1409 	Update users.
   1410 
   1411 	* include/freetype/internal/tttypes.h (TT_FaceRec): Remove
   1412 	`unpatented_hinting' field.
   1413 	Update users.
   1414 
   1415 	* src/base/ftpatent.c (_tt_check_patents_in_range,
   1416 	_tt_check_patents_in_table, _tt_face_check_patents): Remove.
   1417 	(FT_Face_CheckTrueTypePatents, FT_Face_SetUnpatentedHinting):
   1418 	Replace code with dummies.
   1419 
   1420 	* src/truetype/ttobjs.c (tt_face_init): Remove now defunct code.
   1421 	* src/truetype/ttobjs.h (TT_GraphicsState): Remove `both_x_axis'
   1422 	field.
   1423 
   1424 2016-01-28  Nikolaus Waxweiler  <madigens (a] gmail.com>
   1425 
   1426 	Remove unpatented hinter (2/3).
   1427 
   1428 	* devel/ftoption.h (TT_CONFIG_OPTION_UNPATENTED_HINTING): Remove.
   1429 
   1430 2016-01-28  Nikolaus Waxweiler  <madigens (a] gmail.com>
   1431 
   1432 	Remove unpatented hinter (1/3).
   1433 
   1434 	* src/truetype/ttinterp.c [TT_CONFIG_OPTION_UNPATENTED_HINTING]:
   1435 	Remove all code related to this macro.
   1436 
   1437 2016-01-28  Werner Lemberg  <wl (a] gnu.org>
   1438 
   1439 	[autofit] Add blue-zone support for Kannada script.
   1440 
   1441 	This essentially moves the Kannada script from the `Indic' hinter to
   1442 	the `Latin' hinter.
   1443 
   1444 	* src/autofit/afblue.dat: Add blue zone data for Kannada.
   1445 
   1446 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1447 
   1448 	* src/autofit/afscript.h: Add Kannada standard characters and move
   1449 	data out of AF_CONFIG_OPTION_INDIC block.
   1450 
   1451 	* src/autofit/afranges.c: Move Kannada data out of
   1452 	AF_CONFIG_OPTION_INDIC block.
   1453 
   1454 	* src/autofit/afstyles.h: Update Kannada data; in particular, use
   1455 	AF_WRITING_SYSTEM_LATIN.
   1456 
   1457 2016-01-22  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1458 
   1459 	Better access to 64-bit integers for C99 compilers.
   1460 
   1461 	* include/freetype/config/ftconfig.h [FT_LONG64]: Use
   1462 	__STDC_VERSION__ to define 64-bit integers.
   1463 	* builds/unix/ftconfig.in [FT_LONG64]: Ditto.
   1464 	* builds/vms/ftconfig.h [FT_LONG64]: Ditto.
   1465 
   1466 2016-01-21  Werner Lemberg  <wl (a] gnu.org>
   1467 
   1468 	[gxvalid] Remove commented out code.
   1469 
   1470 	* src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Do it.
   1471 
   1472 2016-01-20  Werner Lemberg  <wl (a] gnu.org>
   1473 
   1474 	[autofit] Complete last autofit commit.
   1475 
   1476 	Problem reported by Kostya Serebryany <kcc (a] google.com>.
   1477 
   1478 	* src/autofit/afshaper.c (af_shaper_get_coverage)
   1479 	[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Update signature.
   1480 
   1481 2016-01-20  Werner Lemberg  <wl (a] gnu.org>
   1482 
   1483 	Still handle `__FTERRORS_H__'.
   1484 
   1485 	We need this for backward compatibility.
   1486 
   1487 	Problem reported by John Emmas <johne53 (a] tiscali.co.uk>.
   1488 
   1489 	* include/freetype/fterrors.h: Fix inclusion guard so that
   1490 	undefining either `FTERRORS_H_' or `__FTERRORS_H__' works as
   1491 	expected.
   1492 
   1493 2016-01-19  Werner Lemberg  <wl (a] gnu.org>
   1494 
   1495 	[autofit] Fix handling of default script.
   1496 
   1497 	Patch taken from ttfautohint, commit
   1498 	071ae2c00e0d67f9d19418f4fade1c23d27dc185.
   1499 
   1500 	There were two bugs.
   1501 
   1502 	  - We now use non-standard script tags like `khms' for special
   1503 	    purposes.  However, HarfBuzz maps such tags to `DFLT', and
   1504 	    without this commit the associated lookups were incorrectly
   1505 	    assigned to the non-standard tags.
   1506 
   1507 	  - Let's assume we have a Bengali font, and the font's `DFLT'
   1508 	    script tag handles the necessary lookups for Bengali, too.
   1509 	    Without this commit, the `DFLT' lookups were assigned to
   1510 	    ttfautohint's default script (usually `latn') before the
   1511 	    standard lookups for Bengali were handled.
   1512 
   1513 	    We now have the following order while searching for covered
   1514 	    glyph indices.
   1515 
   1516 	      special features of scripts (e.g. `sups' for Cyrillic)
   1517 	      Unicode mappings of scripts
   1518 	      remaining features of scripts (especially important for Indic
   1519 	        scripts)
   1520 	      default features of default script
   1521 
   1522 	* src/autofit/afshaper.c, src/autofit/afshaper.h
   1523 	(af_shaper_get_coverage): Add boolean parameter to indicate default
   1524 	script.
   1525 	Update all callers.
   1526 
   1527 	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
   1528 	Fix search order for coverages.
   1529 
   1530 2016-01-19  Werner Lemberg  <wl (a] gnu.org>
   1531 
   1532 	Various minor clang fixes.
   1533 
   1534 	* src/autofit/afcjk.c (af_cjk_metrics_init_widths),
   1535 	src/autofit/aflatin.c (af_latin_metrics_init_widths): Initialize
   1536 	`ch'.
   1537 
   1538 	* src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Add cast.
   1539 
   1540 	* src/base/ftdbgmem.c (ft_mem_table_destroy): Add cast.
   1541 
   1542 	* src/base/fthash.c (hash_num_lookup): Add cast.
   1543 
   1544 	* src/base/fttrigon.c (ft_trig_downscale) [FT_LONG64]: Fix cast.
   1545 
   1546 	* src/gxvalid/gxvcommn.c (gxv_EntryTable_validate): Comment out
   1547 	redundant code.
   1548 
   1549 	* src/type1/t1driver.c (t1_get_ps_font_value) <PS_DICT_SUBR>: Add
   1550 	cast.
   1551 
   1552 	* src/type1/t1load.c (parse_subrs): Fix type of `count'.
   1553 
   1554 2016-01-19  Derek B. Noonburg  <derekn (a] glyphandcog.com>
   1555 
   1556 	[truetype] Add another tricky font.
   1557 
   1558 	* src/truetype/ttobjs.c (TRICK_SFNT_IDS_NUM_FACES): Increase.
   1559 	(sfnt_id): Add variant of `DFKaiShu'.
   1560 
   1561 2016-01-14  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   1562 
   1563 	[base] Empower `FT_Library_SetLcdFilterWeights'.
   1564 
   1565 	* src/base/ftlcdfil.c (FT_Library_SetLcdFilterWeights): Enable filter
   1566 	in addition to setting weights.
   1567 	(FT_Library_SetLcdFilter): Clean out FT_FORCE_LIGHT_LCD_FILTER and
   1568 	FT_FORCE_LEGACY_LCD_FILTER.
   1569 	* include/freetype/ftlcdfil.h: Documentation update.
   1570 
   1571 2016-01-12  Werner Lemberg  <wl (a] gnu.org>
   1572 
   1573 	Don't use macro names that start with `_[A-Z]' [3/3].
   1574 
   1575 	Such macro names are reserved for both C and C++.
   1576 
   1577 	* src/cache/ftccache.h: s/_FTC_FACE_ID_HASH/FTC_FACE_ID_HASH/.
   1578 	Update all callers.
   1579 	(FTC_CACHE_LOOKUP_CMP): Replace `_XXX' with `XXX_'.
   1580 	* src/cache/ftcmru.c (FTC_MRULIST_LOOKUP_CMP): Ditto.
   1581 
   1582 2016-01-12  Werner Lemberg  <wl (a] gnu.org>
   1583 
   1584 	Don't use macro names that start with `_[A-Z]' [2/3].
   1585 
   1586 	Such macro names are reserved for both C and C++.
   1587 
   1588 	* include/freetype/ftimage.h, src/raster/ftraster.c,
   1589 	src/smooth/ftgrays.c, src/smooth/ftgrays.h:
   1590 	s/_STANDALONE_/STANDALONE_/.
   1591 
   1592 2016-01-12  Werner Lemberg  <wl (a] gnu.org>
   1593 
   1594 	Don't use macro names that start with `_[A-Z]' [1/3].
   1595 
   1596 	Such macro names are reserved for both C and C++.
   1597 
   1598 	* src/bdf/bdflib.c: Replace macros of the form `_BDF_XXX' with
   1599 	`BDF_XXX_'.
   1600 
   1601 2016-01-12  Werner Lemberg  <wl (a] gnu.org>
   1602 
   1603 	Don't use macro names that contain `__' [2/2].
   1604 
   1605 	Such macro names are reserved for both C and C++.
   1606 
   1607 	* src/cache/*: s/__/_/.
   1608 
   1609 2016-01-12  Werner Lemberg  <wl (a] gnu.org>
   1610 
   1611 	Don't use macro names that contain `__' [1/2].
   1612 
   1613 	Such macro names are reserved for both C and C++.
   1614 
   1615 	* */*: Replace macros of the form `__XXX_H__' with `XXX_H_'.
   1616 
   1617 2016-01-10  Jered Gray  <jegray (a] google.com>
   1618 
   1619 	[cff] Fix usage of `|' operator.
   1620 
   1621 	* src/cff/cf2intrp.c (cf2_interpT2CharString) [cf2_cmdEXTENDEDNMBR,
   1622 	default]: `|' is not guaranteed to be processed from left to right
   1623 	by the compiler.  However, the code repeatedly calls
   1624 	`cf2_buf_readByte' to get the arguments to `|' ...  Fix this.
   1625 
   1626 2015-12-25  Werner Lemberg  <wl (a] gnu.org>
   1627 
   1628 	[autofit] Make top-to-bottom hinting work in latin auto-hinter.
   1629 
   1630 	This improves rendering of scripts like Bengali or Devanagari.
   1631 
   1632 	* src/autofit/afhints.c (af_axis_hints_new_edge): Add parameter to
   1633 	pass top-to-bottom hinting flag.  This makes the function sort edges
   1634 	in descending vertical position.
   1635 
   1636 	* src/autofit/afhints.c: Updated.
   1637 
   1638 	* src/autofit/aflatin.c (af_latin_hints_compute_edges,
   1639 	af_latin_hint_edges): Use `top_to_bottom_hinting' flag.
   1640 
   1641 	* src/autofit/afcjk.c (af_cjk_hints_compute_edges),
   1642 	src/autofit/aflatin2.c (af_latin2_hints_compute_edges): Updated.
   1643 
   1644 2015-12-24  Werner Lemberg  <wl (a] gnu.org>
   1645 
   1646 	[autofit] Add hinting direction to `AF_ScriptClassRec'.
   1647 
   1648 	Still unused.
   1649 
   1650 	* src/autofit/afglobal.c (SCRIPT): Handle hinting direction.
   1651 
   1652 	* src/autofit/aftypes.h (AF_ScriptClassRec): Add
   1653 	`top_to_bottom_hinting' field.
   1654 	(AF_HINTING_BOTTOM_TO_TOP, AF_HINTING_TOP_TO_BOTTOM): New macros.
   1655 	(AF_DEFINE_SCRIPT_CLASS): Updated.
   1656 
   1657 2015-12-23  Werner Lemberg  <wl (a] gnu.org>
   1658 
   1659 	[autofit] Start implementing hinting direction (up/down, down/up).
   1660 
   1661 	Right now, it does nothing.
   1662 
   1663 	* src/autofit/afscript.h: Add another parameter to `SCRIPT',
   1664 	specifying hinting direction.
   1665 
   1666 	* src/autofit/afglobal.c, src/autofit/afglobal.h,
   1667 	src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/afshaper.c,
   1668 	src/autofit/aftypes.h: Extend `SCRIPT' definitions.
   1669 
   1670 2015-12-22  Werner Lemberg  <wl (a] gnu.org>
   1671 
   1672 	* src/type1/t1load.c (parse_subrs): Fix memory leak (#46744).
   1673 
   1674 2015-12-22  Werner Lemberg  <wl (a] gnu.org>
   1675 
   1676 	[base] Make hash interface symmetric.
   1677 
   1678 	Use `num' and `str' infixes everywhere.
   1679 
   1680 	* src/base/fthash.c (ft_hash_init): Renamed to...
   1681 	(hash_init): ... This.
   1682 	(ft_hash_str_init, ft_hash_num_init): New functions.
   1683 	(ft_hash_free): Renamed to...
   1684 	(ft_hash_str_free): ... This.
   1685 
   1686 	* include/freetype/internal/fthash.h: Updated.
   1687 
   1688 	* src/bdf/bdflib.c, src/type1/t1load.c, src/type1/t1objs.c: Updated.
   1689 
   1690 2015-12-21  Werner Lemberg  <wl (a] gnu.org>
   1691 
   1692 	[type1] Avoid shift of negative numbers (#46732).
   1693 
   1694 	* src/type1/t1load.c (parse_subrs): Do it.
   1695 
   1696 2015-12-20  Werner Lemberg  <wl (a] gnu.org>
   1697 
   1698 	[type1, psaux] Handle large values of num_subrs correctly (#46692).
   1699 
   1700 	We now use a hash to map from subr indices to array elements holding
   1701 	the subroutines, if necessary.
   1702 
   1703 	* include/freetype/internal/t1types.h: Include FT_INTERNAL_HASH_H.
   1704 	(T1_FontRec): Add `subrs_hash' field.
   1705 
   1706 	* include/freetype/internal/psaux.h: Include FT_INTERNAL_HASH_H.
   1707 	(T1_DecoderRec): Add `subrs_hash' field.
   1708 
   1709 	* src/type1/t1load.h (T1_LoaderRec): Add `subrs_hash' field.
   1710 
   1711 	* src/type1/t1driver.c: Include FT_INTERNAL_HASH_H.
   1712 	(t1_ps_get_font_value) [PS_DICT_SUBR]: Look up hash if necessary.
   1713 
   1714 	* src/type1/t1load.c: Include FT_INTERNAL_HASH_H.
   1715 	(parse_subrs): Use hash for subr indices that exceed the allocated
   1716 	number of subr slots.
   1717 	(t1_init_loader): Remove unnecessary code.
   1718 	(t1_done_loader, T1_Open_Face): Updated.
   1719 
   1720 	* src/type1/t1gload.c (T1_Compute_Max_Advance, T1_Get_Advances,
   1721 	T1_Load_Glyph): Updated.
   1722 
   1723 	* src/type1/t1objs.c (T1_Face_Done): Updated.
   1724 
   1725 	* src/psaux/t1decode.c: Include FT_INTERNAL_HASH_H.
   1726 	(t1_decoder_parse_charstrings) [op_callsubr]: Look up hash if
   1727 	necessary.
   1728 
   1729 	* src/cid/cidgload.c (cid_load_glyph): Updated.
   1730 
   1731 2015-12-20  Werner Lemberg  <wl (a] gnu.org>
   1732 
   1733 	[base] Thinko: Remove free function pointer.
   1734 
   1735 	We don't copy keys or values while hashing.
   1736 
   1737 	* include/freetype/internal/fthash.h (FT_Hash_FreeFunc): Removed.
   1738 	(FT_HashRec): Remove `free' field.
   1739 
   1740 	* src/base/fthash.c (hash_str_free): Removed.
   1741 	(ft_hash_init, ft_hash_free): Updated.
   1742 
   1743 2015-12-20  Werner Lemberg  <wl (a] gnu.org>
   1744 
   1745 	[base, bdf] Don't expose `FT_Hashnode' in hash functions.
   1746 
   1747 	* src/base/fthash.c (hash_lookup, ft_hash_str_lookup,
   1748 	ft_hash_num_lookup): Return pointer to `size_t' instead of
   1749 	`FT_Hashnode'.
   1750 
   1751 	* include/freetype/internal/fthash.h: Updated.
   1752 
   1753 	* src/bdf/bdflib.c (bdf_get_property, _bdf_add_property,
   1754 	bdf_get_font_property): Updated.
   1755 
   1756 2015-12-20  Werner Lemberg  <wl (a] gnu.org>
   1757 
   1758 	[base, bdf] Add number hashing.
   1759 
   1760 	* src/base/fthash.c (hash_num_lookup, hash_num_compare): New
   1761 	functions.
   1762 	(ft_hash_init): Add argument to select between number and string
   1763 	hashing.
   1764 	(ft_hash_num_insert, ft_hash_num_lookup): New functions.
   1765 
   1766 	* include/freetype/internal/fthash.h: Updated.
   1767 
   1768 	* src/bdf/bdflib.c (_bdf_parse_start): Updated.
   1769 
   1770 2015-12-20  Werner Lemberg  <wl (a] gnu.org>
   1771 
   1772 	[base] Introduce hash lookup, compare, and free function pointers.
   1773 
   1774 	* include/freetype/internal/fthash.c (FT_Hash_LookupFunc,
   1775 	FT_Hash_CompareFunc, FT_Hash_FreeFunc): New typedefs.
   1776 	(FT_HashRec): Add `lookup', `compare', and `free' fields.
   1777 
   1778 	* src/base/fthash.c (hash_str_lookup, hash_str_compare,
   1779 	hash_str_free): New functions.
   1780 	(ft_hash_init): Set function pointers.
   1781 	(hash_bucket, ft_hash_free): Use them.
   1782 
   1783 2015-12-20  Werner Lemberg  <wl (a] gnu.org>
   1784 
   1785 	[base, bdf] Use a union as a hash key.
   1786 
   1787 	We want to support both an integer and a string key later on.
   1788 
   1789 	* include/freetype/internal/fthash.h (FT_Hashkey): New union.
   1790 	(FT_HashnodeRec): Updated.
   1791 	(ft_hash_insert, ft_hash_lookup): Renamed to ...
   1792 	(ft_hash_str_insert, ft_hash_str_lookup): ... this.
   1793 
   1794 	* src/base/fthash.c (hash_bucket): Updated.
   1795 	(ft_hash_insert, ft_hash_lookup): Renamed to ...
   1796 	(hash_insert, hash_lookup): ... this.
   1797 	(ft_hash_str_insert, ft_hash_str_lookup): New wrapper functions.
   1798 
   1799 	* src/bdf/bdflib.c: Updated.
   1800 
   1801 2015-12-19  Werner Lemberg  <wl (a] gnu.org>
   1802 
   1803 	[bdf] Use new hash functions.
   1804 
   1805 	* src/bdf/bdf.h: Include FT_INTERNAL_HASH_H.
   1806 	(hashnode, hashtable): Removed.
   1807 	(bdf_font_t): Use `FT_HashRec' type for `proptbl'.
   1808 
   1809 	* src/bdf/bdflib.c: Remove all hash functions.
   1810 	Update code for new hash structure and function names.
   1811 
   1812 2015-12-19  Werner Lemberg  <wl (a] gnu.org>
   1813 
   1814 	[bdf, base] Lift hash functions from bdf driver to base module.
   1815 
   1816 	* src/base/fthash.c, include/freetype/internal/fthash.h: New files,
   1817 	containing (massaged) code from `bdflib.c' and `bdf.h'.
   1818 
   1819 	* include/freetype/internal/internal.h (FT_INTERNAL_HASH_H): New
   1820 	macro.
   1821 
   1822 	* src/base/ftbase.c: Include `fthash.c'.
   1823 
   1824 	* src/base/Jamfile (_sources): Add `fthash'.
   1825 
   1826 	* src/base/rules.mk (BASE_SRC): Add `fthash.c'.
   1827 
   1828 	* docs/LICENSE.TXT: Updated.
   1829 
   1830 2015-12-15  Werner Lemberg  <wl (a] gnu.org>
   1831 
   1832 	[autofit] Add blue-zone support for Bengali script.
   1833 
   1834 	This essentially moves the Bengali script from the `Indic' hinter to
   1835 	the `Latin' hinter.
   1836 
   1837 	* src/autofit/afblue.dat: Add blue zone data for Bengali.
   1838 
   1839 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1840 
   1841 	* src/autofit/afscript.h: Add Bengali standard characters and move
   1842 	data out of AF_CONFIG_OPTION_INDIC block.
   1843 
   1844 	* src/autofit/afranges.c: Move Bengali data out of
   1845 	AF_CONFIG_OPTION_INDIC block.
   1846 
   1847 	* src/autofit/afstyles.h: Update Bengali data; in particular, use
   1848 	AF_WRITING_SYSTEM_LATIN.
   1849 
   1850 2015-12-14  Ben Wagner  <bungeman (a] gmail.com>
   1851 
   1852 	[bdf] Remove dead code (#46625).
   1853 
   1854 	The BDF specification only allows decimal numbers, no octal or
   1855 	hexadecimal decoding is needed.
   1856 
   1857 	* src/bdf/bdflib.c (_bdf_atoul, _bdf_atol, _bdf_atous,
   1858 	_bdf_atos): Remove unused code and parameters.
   1859 	Update all callers.
   1860 	(odigits): Remove.
   1861 
   1862 2015-12-14  Werner Lemberg  <wl (a] gnu.org>
   1863 
   1864 	[base] Fix calls to `FT_Stream_Seek'.
   1865 
   1866 	* src/base/ftobjs.c (Mac_Read_sfnt_Resource, FT_Open_Face): Set
   1867 	`error'.
   1868 
   1869 2015-12-14  Ben Wagner  <bungeman (a] gmail.com>
   1870 
   1871 	[base] Check error when seeking to data supplied offset (#46635).
   1872 
   1873 	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream):
   1874 	`ft_lookup_PS_in_sfnt_stream' returns offset and length from
   1875 	user supplied data.  Use of this these values must be checked.
   1876 
   1877 2015-12-13  Werner Lemberg  <wl (a] gnu.org>
   1878 
   1879 	[autofit] Add support for Myanmar script.
   1880 
   1881 	* src/autofit/afblue.dat: Add blue zone data for Myanmar.
   1882 
   1883 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1884 
   1885 	* src/autofit/afscript.h: Add Myanmar standard characters.
   1886 
   1887 	* src/autofit/afranges.c: Add Myanmar data.
   1888 
   1889 	* src/autofit/afstyles.h: Add Myanmar data.
   1890 
   1891 2015-12-12  Werner Lemberg  <wl (a] gnu.org>
   1892 
   1893 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Minor.
   1894 
   1895 2015-12-12  Werner Lemberg  <wl (a] gnu.org>
   1896 
   1897 	* src/autofit/afscript.h: Avoid potential crash.
   1898 
   1899 2015-12-10  Werner Lemberg  <wl (a] gnu.org>
   1900 
   1901 	[autofit] Restore OpenType feature check.
   1902 
   1903 	This was removed while rewriting the HarfBuzz interface.
   1904 
   1905 	* src/autofit/afglobal.h (AF_FaceGlobalsRec): Add `hb_buf' field to
   1906 	hold internal HarfBuzz buffer, needed for feature comparison.
   1907 
   1908 	* src/autofit/afglobal.c (af_face_globals_new,
   1909 	af_face_globals_free): Initialize and destroy `hb_buf'.
   1910 
   1911 	* src/autofit/afshaper.c (af_shaper_get_cluster): Compare character
   1912 	(cluster) with and without applied feature.
   1913 
   1914 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Fix tracing
   1915 	message.
   1916 
   1917 2015-12-10  Werner Lemberg  <wl (a] gnu.org>
   1918 
   1919 	[autofit] Remove redundant code.
   1920 
   1921 	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Do it.
   1922 
   1923 2015-12-09  Werner Lemberg  <wl (a] gnu.org>
   1924 
   1925 	[autofit] Thinko.
   1926 
   1927 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Don't count
   1928 	empty blue zones (bug introduced 2015-12-06).
   1929 
   1930 2015-12-09  Werner Lemberg  <wl (a] gnu.org>
   1931 
   1932 	[autofit] Introduce subscript top blue zones.
   1933 
   1934 	This feature is mainly for Khmer: The idea is to avoid a clash
   1935 	between the top of subscript glyphs and the bottom of normal
   1936 	baseline glyphs.
   1937 
   1938 	This only works for character clusters mapped to multiple glyphs.
   1939 
   1940 	* src/autofit/afblue.dat: Add subscript top blue zone for Khmer.
   1941 
   1942 	* src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_SUB_TOP): New
   1943 	macro.
   1944 
   1945 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1946 
   1947 	* src/autofit/aflatin.h (AF_LATIN_IS_SUB_TOP_BLUE,
   1948 	AF_LATIN_BLUE_SUB_TOP): New macros.
   1949 
   1950 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle new
   1951 	blue zone property.
   1952 	Update tracing messages.
   1953 	(af_latin_metrics_scale_dim): Handle new blue zone property.
   1954 	(af_latin_hints_compute_blue_edges): Updated.
   1955 
   1956 2015-12-09  Werner Lemberg  <wl (a] gnu.org>
   1957 
   1958 	[autofit] Fix tracing message.
   1959 
   1960 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Display
   1961 	inactive blue zones also.
   1962 
   1963 2015-12-06  Werner Lemberg  <wl (a] gnu.org>
   1964 
   1965 	* src/autofit/afblue.dat: Add more Khmer clusters.
   1966 
   1967 	Some fonts have incorrect ligatures; we need more samples to get a
   1968 	good mean value.
   1969 
   1970 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1971 
   1972 2015-12-06  Werner Lemberg  <wl (a] gnu.org>
   1973 
   1974 	[autofit] Typos.
   1975 
   1976 	* src/autofit/afshaper.c (af_shaper_buf_create, af_shaper_get_elem)
   1977 	[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Make it compile.
   1978 
   1979 2015-12-06  Werner Lemberg  <wl (a] gnu.org>
   1980 
   1981 	[autofit] Add support for Khmer script.
   1982 
   1983 	We split Khmer into two auto-hinter scripts: `Khmer' (`khmr') and
   1984 	`Khmer symbols' (`khms', U+19E0-U+19FF).
   1985 
   1986 	* src/autofit/afblue.dat: Add blue zone data for Khmer.
   1987 
   1988 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   1989 
   1990 	* src/autofit/afscript.h: Add Khmer standard characters.
   1991 
   1992 	* src/autofit/afranges.c: Add Khmer data.
   1993 
   1994 	* src/autofit/afstyles.h: Add Khmer data.
   1995 
   1996 2015-12-06  Werner Lemberg  <wl (a] gnu.org>
   1997 
   1998 	[autofit] Rewrite HarfBuzz interface to support character clusters.
   1999 
   2000 	Scripts like Khmer have blue zones that can't be directly
   2001 	represented by Unicode characters.  Instead, it is necessary to let
   2002 	HarfBuzz convert character clusters into proper glyph representation
   2003 	forms, then deriving the blue zone information from the resulting
   2004 	glyphs.
   2005 
   2006 	* src/autofit/hbshim.c, src/autofit/hbshim.h: Replaced by...
   2007 	* src/autofit/afshaper.c, src/autofit/afshaper.h: ... these two new
   2008 	files, providing a new API to access HarfBuzz.
   2009 
   2010 	The new API manages a HarfBuzz buffer with `af_shaper_buf_create'
   2011 	and `af_shaper_buf_destroy'.  The buffer receives a UTF8 encoded
   2012 	string with function `af_shaper_get_cluster', and the resulting
   2013 	glyph data (indices, advance widths, vertical offsets) can be
   2014 	iteratively accessed with function `af_shaper_get_elem'.
   2015 
   2016 	* src/autofit/afcjk.c (af_cjk_metrics_init_widths,
   2017 	af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
   2018 
   2019 	* src/autofit/aflatin.c (af_latin_metrics_init_widths,
   2020 	af_latin_metrics_init_blues, af_latin_metrics_check_digits):
   2021 	Updated.
   2022 
   2023 	* include/freetype/internal/fttrace.h: s/afharfbuzz/afshaper/.
   2024 
   2025 	* src/autofit/afglobal.c: s/hbshim.h/afshaper.h/.
   2026 	(af_face_globals_compute_style_coverage): Updated.
   2027 
   2028 	* src/autofit/afglobal.h: s/hbshim.h/afshaper.h/.
   2029 
   2030 	* src/autofit/autofit.c: s/hbshim.c/afshaper.c/.
   2031 
   2032 	* src/autofit/Jamfile, src/autofit/rules.mk (AUTOF_DRV_SRC):
   2033 	Updated.
   2034 
   2035 2015-12-06  Werner Lemberg  <wl (a] gnu.org>
   2036 
   2037 	[autofit] Prepare forthcoming changes.
   2038 
   2039 	This makes it easier to control the commits.
   2040 
   2041 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Add dummy
   2042 	loop.  No functional change.
   2043 
   2044 2015-12-06  Werner Lemberg  <wl (a] gnu.org>
   2045 
   2046 	[autofit] Use string of standard characters.
   2047 
   2048 	This is more flexible; additionally, it would allow character
   2049 	clusters.
   2050 
   2051 	* src/autofit/aftypes.h (SCRIPT, AF_DEFINE_SCRIPT_CLASS): Updated.
   2052 	(AF_ScriptClassRec): Replace `standard_char[123]' with
   2053 	`standard_charstring'.
   2054 
   2055 	* src/autofit/afscript.h: Replace last three character arguments
   2056 	of the `SCRIPT' calls with a string parameter, holding the standard
   2057 	characters (in UTF-8 encoding) separated with spaces.
   2058 
   2059 	* src/autofit/afglobal.c, src/autofit/afglobal.h,
   2060 	src/autofit/afpic.c, src/autofit/afranges.c, src/autofit/hbshim.c
   2061 	(SCRIPT): Updated.
   2062 
   2063 	* src/autofit/afcjk.c (af_cjk_metrics_init_widths),
   2064 	src/autofit/aflatin.c (af_latin_metrics_init_widths): Updated.
   2065 
   2066 2015-12-05  Werner Lemberg  <wl (a] gnu.org>
   2067 
   2068 	* src/autofit/afblue.dat: Separate blue zone characters with spaces.
   2069 
   2070 	Another preparation for character cluster support.
   2071 
   2072 	* src/autofit/afblue.c, src/autofit.afblue.h: Regenerated.
   2073 
   2074 2015-12-05  Werner Lemberg  <wl (a] gnu.org>
   2075 
   2076 	* src/tools/afblue.pl (convert_ascii_chars): Don't ignore spaces.
   2077 
   2078 	Instead, reduce multiple spaces to a single one.  We need this later
   2079 	for supporting character clusters in `afblue.dat'.
   2080 
   2081 2015-12-05  Werner Lemberg  <wl (a] gnu.org>
   2082 
   2083 	* src/autofit/afblue.hin (GET_UTF8_CHAR): Use `do...while(0)'.
   2084 
   2085 	* src/autofit/afblue.h: Regenerated.
   2086 
   2087 2015-12-05  Werner Lemberg  <wl (a] gnu.org>
   2088 
   2089 	* src/autofit/afwarp.c: s/INT_MIN/FT_INT_MIN/.
   2090 
   2091 2015-12-03  Werner Lemberg  <wl (a] gnu.org>
   2092 
   2093 	* builds/unix/install.mk (install): Remove stale `ft2build.h'.
   2094 
   2095 2015-12-01  Werner Lemberg  <wl (a] gnu.org>
   2096 
   2097 	[type1] Avoid dangling pointer (#46572).
   2098 
   2099 	* src/type1/t1afm.c (T1_Read_Metrics): Properly reset
   2100 	`face->afm_data'.
   2101 
   2102 2015-11-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2103 
   2104 	* include/freetype/ftlcdfil.h: Documentation tweak.
   2105 
   2106 2015-11-28  Werner Lemberg  <wl (a] gnu.org>
   2107 
   2108 	* Version 2.6.2 released.
   2109 	=========================
   2110 
   2111 
   2112 	Tag sources with `VER-2-6-2'.
   2113 
   2114 	* docs/VERSION.DLL: Update documentation and bump version number to
   2115 	2.6.2.
   2116 
   2117 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
   2118 	builds/windows/vc2005/index.html,
   2119 	builds/windows/vc2008/freetype.vcproj,
   2120 	builds/windows/vc2008/index.html,
   2121 	builds/windows/vc2010/freetype.vcxproj,
   2122 	builds/windows/vc2010/index.html,
   2123 	builds/windows/visualc/freetype.dsp,
   2124 	builds/windows/visualc/freetype.vcproj,
   2125 	builds/windows/visualc/index.html,
   2126 	builds/windows/visualce/freetype.dsp,
   2127 	builds/windows/visualce/freetype.vcproj,
   2128 	builds/windows/visualce/index.html,
   2129 	builds/wince/vc2005-ce/freetype.vcproj,
   2130 	builds/wince/vc2005-ce/index.html,
   2131 	builds/wince/vc2008-ce/freetype.vcproj,
   2132 	builds/wince/vc2008-ce/index.html: s/2.6.1/2.6.2/, s/261/262/.
   2133 
   2134 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
   2135 
   2136 	* builds/unix/configure.raw (version_info): Set to 18:2:12.
   2137 	* CMakeLists.txt (VERSION_PATCH): Set to 2.
   2138 
   2139 	* docs/CHANGES: Updated.
   2140 
   2141 2015-11-28  Werner Lemberg  <wl (a] gnu.org>
   2142 
   2143 	Fix C++ compilation.
   2144 
   2145 	* src/autofit/afloader.c: Include FT_INTERNAL_CALC_H.
   2146 
   2147 	* src/truetype/ttgload.c (load_truetype_glyph): Pacify compiler.
   2148 
   2149 2015-11-28  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2150 
   2151 	Change default LCD filter to be normalized and color-balanced.
   2152 
   2153 	* src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Update
   2154 	`default_filter'.
   2155 
   2156 2015-11-28  Werner Lemberg  <wl (a] gnu.org>
   2157 
   2158 	[docmaker] Allow references to section names.
   2159 
   2160 	In the reference, we show the section's title enclosed in single
   2161 	quotes.
   2162 
   2163 	* src/tools/docmaker/formatter.py (Formatter::__init__): Collect
   2164 	section names as identifiers.
   2165 
   2166 	* src/tools/docmaker/tohtml.py (section_title_header): Split into...
   2167 	(section_title_header1, section_title_header2): ... these two
   2168 	strings.
   2169 	(HtmlFormatter::make_block_url, make_html_word, html_source_quote):
   2170 	Handle sections.
   2171 	(HtmlFormatter::section_enter): Updated to add `id' HTML attribute.
   2172 
   2173 2015-11-27  Tamas Kenez  <tamas.kenez (a] adasworks.com>
   2174 
   2175 	[cmake] Add script to test the config module.
   2176 
   2177 	* builds/cmake/testbuild.sh: New file.
   2178 
   2179 2015-11-27  Tamas Kenez  <tamas.kenez (a] adasworks.com>
   2180 
   2181 	* CMakeLists.txt: Create `freetype-config.cmake' config module.
   2182 
   2183 2015-11-27  Tamas Kenez  <tamas.kenez (a] adasworks.com>
   2184 
   2185 	* CMakeLists.txt: Set CMAKE_DEBUG_POSTFIX to `d'.
   2186 
   2187 2015-11-27  Tamas Kenez  <tamas.kenez (a] adasworks.com>
   2188 
   2189 	[cmake] Add better control of library dependencies.
   2190 
   2191 	* CMakeLists.txt: Add `WITH_*' variables to force/auto/omit
   2192 	ZLIB/BZip2/PNG/HarfBuzz.
   2193 
   2194 2015-11-27  Tamas Kenez  <tamas.kenez (a] adasworks.com>
   2195 
   2196 	[cmake] Make `FindHarfBuzz' observe the REQUIRED option.
   2197 
   2198 	* builds/cmake/FindHarfBuzz.cmake: Implement it.
   2199 
   2200 2015-11-27  Werner Lemberg  <wl (a] gnu.org>
   2201 
   2202 	[cmake] Collect files specific to cmake in `builds/cmake'.
   2203 
   2204 	* builds/FindHarfBuzz.cmake: Move to ...
   2205 	* builds/cmake/FindHarfBuzz.cmake: ... this place.
   2206 
   2207 	* CMakeLists.txt (CMAKE_MODULE_PATH): Updated.
   2208 
   2209 2015-11-27  Alexander Bock  <alexander.j.bock (a] nasa.gov>
   2210 
   2211 	CMakeLists.txt: Honour new command line flag `FREETYPE_NO_DIST'.
   2212 
   2213 2015-11-26  Werner Lemberg  <wl (a] gnu.org>
   2214 
   2215 	[docmaker] Allow `foo[bar]' as identifier.
   2216 
   2217 	We need this to handle equally named properties in different
   2218 	modules.
   2219 
   2220 	* src/tools/docmaker/content.py (re_identifier),
   2221 	src/tools/docmaker/sources.py (re_crossref): Allow `foo[bar]'.
   2222 
   2223 	* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word,
   2224 	HtmlFormatter::index_exit, HtmlFormatter::section_enter,
   2225 	HtmlFormatter::block_enter): Handle `foo[bar]'.
   2226 
   2227 2015-11-25  Werner Lemberg  <wl (a] gnu.org>
   2228 
   2229 	* src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46480).
   2230 
   2231 	(_bdf_parse_glyphs): Always reset `p->glyph_name' after moving its
   2232 	contents.
   2233 
   2234 2015-11-21  Werner Lemberg  <wl (a] gnu.org>
   2235 
   2236 	* include/freetype/internal/ftcalc.h: Don't use `register' keyword.
   2237 
   2238 	This fixes compiler warnings.
   2239 
   2240 	Reported by Behdad.
   2241 
   2242 2015-11-20  Werner Lemberg  <wl (a] gnu.org>
   2243 
   2244 	Add `FT_LCD_FILTER_LEGACY1' enum value.
   2245 
   2246 	This does the same as `FT_LCD_FILTER_LEGACY'.
   2247 
   2248 	See
   2249 
   2250 	  https://bugs.freedesktop.org/show_bug.cgi?id=92981
   2251 
   2252 	for the reasoning.
   2253 
   2254 	* include/freetype/ftlcdfil.h (FT_LcdFilter): New value
   2255 	`FT_LCD_FILTER_LEGACY1'.
   2256 
   2257 	* src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Use it.
   2258 
   2259 2015-11-15  Werner Lemberg  <wl (a] gnu.org>
   2260 
   2261 	* src/autofit/afhints.c (af_get_segment_index): Fix it.
   2262 
   2263 	The old code was too simple, returning invalid values in most cases
   2264 	where a segment crosses the contour start.
   2265 
   2266 2015-11-15  Werner Lemberg  <wl (a] gnu.org>
   2267 
   2268 	* src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46439).
   2269 
   2270 2015-11-11  Werner Lemberg  <wl (a] gnu.org>
   2271 
   2272 	[cff, autofit] Switch off stem darkening by default.
   2273 
   2274 	* src/autofit/afmodule.c (af_autofitter_init), src/cff/cffobjs.c
   2275 	(cff_driver_init): Do it.
   2276 
   2277 2015-11-10  Jan Alexander Steffens (heftig)  <jan.steffens (a] gmail.com>
   2278 
   2279 	Allow native CFF hinter in FT_RENDER_MODE_LIGHT.
   2280 
   2281 	Both the native CFF hinter and the auto-hinter now have a very
   2282 	similar rendering style.
   2283 
   2284 	* include/freetype/freetype.h: Mention that FT_LOAD_TARGET_LIGHT no
   2285 	longer implies FT_LOAD_FORCE_AUTOHINT.
   2286 
   2287 	* include/freetype/ftmodapi.h (FT_MODULE_DRIVER_HINTS_LIGHTLY): New
   2288 	macro.
   2289 
   2290 	* include/freetype/internal/ftobjs.h (FT_DRIVER_HINTS_LIGHTLY): New
   2291 	macro.
   2292 
   2293 	* src/cff/cffdrivr.c (cff_driver_class): Use it.
   2294 
   2295 	* src/base/ftobjs.c (FT_Load_Glyph): Update auto-hinter selection
   2296 	logic.
   2297 
   2298 2015-11-09  Werner Lemberg  <wl (a] gnu.org>
   2299 
   2300 	* src/cid/cidload.c (cid_face_open): Fix GDBytes guard (#46408).
   2301 
   2302 2015-11-09  Werner Lemberg  <wl (a] gnu.org>
   2303 
   2304 	[truetype] Remove integer to pointer conversion compiler warning.
   2305 
   2306 	Problem reported by Alexei.
   2307 
   2308 	* src/truetype/ttgload.c (load_truetype_glyph): Use a solution found
   2309 	in the glib library to fix the issue.
   2310 
   2311 2015-11-08  Behdad Esfahbod  <behdad (a] behdad.org>
   2312 
   2313 	[sfnt] Accept version 3 of `EBLC' and `CBLC' tables also.
   2314 
   2315 	* src/sfnt/ttsbit.c (tt_face_load_sbit): Implement it.
   2316 
   2317 2015-11-08  Philipp Knechtges  <philipp-dev (a] knechtges.com>
   2318 
   2319 	[autofit] Don't distort (latin) glyphs too much (#46195).
   2320 
   2321 	* src/autofit/aflatin.h (AF_LatinBlueRec): Add `ascender' and
   2322 	`descender' fields.
   2323 
   2324 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Collect
   2325 	ascender and descender data for blue zones.
   2326 	(af_latin_metrics_scale_dim): Reject vertical scaling values that
   2327 	change the result by more than two pixels.
   2328 
   2329 2015-11-05  Werner Lemberg  <wl (a] gnu.org>
   2330 
   2331 	[sfnt] Ignore embedded bitmaps with zero size (#46379).
   2332 
   2333 	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bit_aligned): Implement
   2334 	it.
   2335 
   2336 2015-11-04  Werner Lemberg  <wl (a] gnu.org>
   2337 
   2338 	[truetype] Catch infinite recursion in subglyphs (#46372).
   2339 
   2340 	* include/freetype/internal/tttypes.h (TT_LoaderRec): New field
   2341 	`composites'.
   2342 
   2343 	* src/truetype/ttgload.c: Include FT_LIST_H.
   2344 	(load_truetype_glyph): Add composite subglyph index to a list;
   2345 	abort if index is already in list.
   2346 	(tt_loader_init): Updated.
   2347 	(tt_loader_done): New function.
   2348 	(TT_Load_Glyph): Call `tt_loader_done'.
   2349 
   2350 2015-11-04  Werner Lemberg  <wl (a] gnu.org>
   2351 
   2352 	[truetype] Better tracing of composite glyphs.
   2353 
   2354 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph,
   2355 	load_truetype_glyph): Implement it.
   2356 
   2357 2015-11-03  Werner Lemberg  <wl (a] gnu.org>
   2358 
   2359 	[sfnt] Protect against zero-size bitmaps (#46345).
   2360 
   2361 	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Check
   2362 	`glyph_size'.
   2363 
   2364 2015-11-02  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2365 
   2366 	* src/autofit/afloader.c (af_loader_load_g): Implement emboldening.
   2367 
   2368 2015-11-02  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2369 
   2370 	[autofit] Implement darkening computation function.
   2371 
   2372 	This is a crude adaption of the original `cf2_computeDarkening'
   2373 	function.
   2374 
   2375 	* src/autofit/afloader.c (af_intToFixed, af_fixedToInt,
   2376 	af_floatToFixed): New macros, taken from `cf2fixed.h'.
   2377 	(af_loader_compute_darkening): New function.
   2378 	* src/autofit/afloader.h: Updated.
   2379 
   2380 2015-11-02  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2381 
   2382 	[autofit] Add functions to get standard widths for writing systems.
   2383 
   2384 	We need the computed standard horizontal and vertical widths for the
   2385 	emboldening calculation.  This method provides a convenient way to
   2386 	extract it from writing-system-specific metrics structures, which
   2387 	all script definitions must implement.
   2388 
   2389 	* src/autofit/aftypes.h (AF_WritingSystem_GetStdWidthsFunc): New
   2390 	function type.
   2391 	(AF_WritingSystemClassRec): New member `style_metrics_getstdw'.
   2392 	(AF_DEFINE_WRITING_SYSTEM_CLASS): Updated.
   2393 
   2394 	* src/autofit/afcjk.c (af_cjk_get_standard_width): New function.
   2395 	(af_cjk_writing_system_class): Updated.
   2396 	* src/autofit/afdummy.c	(af_dummy_writing_system_class): Updated.
   2397 	* src/autofit/afindic.c (af_cjk_get_standard_width): New function.
   2398 	(af_indic_writing_system_class): Updated.
   2399 	* src/autofit/aflatin.c (af_latin_get_standard_width): New function.
   2400 	(af_indic_writing_system_class): Updated.
   2401 	* src/autofit/aflatin.c (af_latin_get_standard_width): New function.
   2402 	(af_indic_writing_system_class): Updated.
   2403 
   2404 2015-11-02  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2405 
   2406 	[autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data.
   2407 
   2408 	* src/autofit/afglobal.h (AF_FaceGlobalsRec): Add fields.
   2409 
   2410 	* src/autofit/afglobal.c (af_face_globals_new): Initialize new
   2411 	fields.
   2412 	(af_face_globals_free): Reset new fields.
   2413 
   2414 2015-11-02  Nikolaus Waxweiler  <madigens (a] gmail.com>
   2415 
   2416 	[autofit] Add stem-darkening properties.
   2417 
   2418 	Actual code follows in a later commit.
   2419 
   2420 	* include/freetype/ftautoh.h: Document `no-stem-darkening' and
   2421 	`darkening-parameters'.
   2422 
   2423 	* src/autofit/afmodule.h: New fields `no_stem_darkening' and
   2424 	`darken_params'.
   2425 
   2426 	* src/autofit/afmodule.c (af_property_set, af_property_get):
   2427 	Handle them.
   2428 	(af_autofitter_init): Initialize them.
   2429 
   2430 2015-11-02  Ben Wagner  <bungeman (a] gmail.com>
   2431 
   2432 	[ftfuzzer] Add support for multiple files (patch #8779).
   2433 
   2434 	Currently, libFuzzer only supports mutation of a single file.  We
   2435 	circumvent this problem by using an uncompressed tar archive as
   2436 	multiple-file input for the fuzzer.
   2437 
   2438 	This patch enables tests of `FT_Attach_Stream' and AFM/PFM parsing;
   2439 	a constructed tarball should contain a font file as the first
   2440 	element, and files to be attached as further elements.
   2441 
   2442 	* src/tools/ftfuzzer/ftfuzzer.cc: Include libarchive headers.
   2443 	(archive_read_entry_data, parse_data): New functions.
   2444 	(LLVMFuzzerTestOneInput): Updated.
   2445 
   2446 	* src/tools/ftfuzzer/ftmutator.cc: New file, providing a custom
   2447 	mutator for libFuzzer that can mutate tarballs in a sensible way.
   2448 
   2449 2015-10-31  Werner Lemberg  <wl (a] gnu.org>
   2450 
   2451 	[sfnt] Fix cmap 14 validation (#46346).
   2452 
   2453 	* src/sfnt/ttcmap.c (tt_cmap14_validate): Check limit before
   2454 	accessing `numRanges' and `numMappings'.
   2455 	Fix size check for non-default UVS table.
   2456 
   2457 2015-10-31  Werner Lemberg  <wl (a] gnu.org>
   2458 
   2459 	[sfnt] Handle infinite recursion in bitmap strikes (#46344).
   2460 
   2461 	* src/sfnt/ttsbit.c (TT_SBitDecoder_LoadFunc,
   2462 	tt_sbit_decoder_load_bitmap, tt_sbit_decoder_load_byte_aligned,
   2463 	tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_png): Add
   2464 	argument for recursion depth.
   2465 	(tt_sbit_decoder_load_compound): Add argument for recursion depth.
   2466 	Increase recursion counter for recursive call.
   2467 	(tt_sbit_decoder_load_image): Add argument for recursion depth.
   2468 	Check recurse depth.
   2469 	(tt_face_load_sbit_image): Updated.
   2470 
   2471 2015-10-29  Werner Lemberg  <wl (a] gnu.org>
   2472 
   2473 	* src/autofit/afhints.c (af_glyph_hints_dump_points): Minor.
   2474 
   2475 2015-10-29  Werner Lemberg  <wl (a] gnu.org>
   2476 
   2477 	* CMakeLists.txt: Remove code to set MSVC's /FD compiler switch.
   2478 
   2479 	Problem reported by David Capello <davidcapello (a] gmail.com>; see
   2480 
   2481 	  https://lists.nongnu.org/archive/html/freetype-devel/2015-10/msg00108.html
   2482 
   2483 	for details.
   2484 
   2485 2015-10-27  Werner Lemberg  <wl (a] gnu.org>
   2486 
   2487 	[pfr] Add some safety guards (#46302).
   2488 
   2489 	* src/pfr/pfrload.h (PFR_CHECK): Rename to...
   2490 	(PFR_CHECK_SIZE): ... this.
   2491 	(PFR_SIZE): [!PFR_CONFIG_NO_CHECKS]: Define to PFR_CHECK_SIZE.
   2492 
   2493 	* src/pfr/pfrload.c (pfr_log_font_count): Check `count'.
   2494 	(pfr_extra_item_load_kerning_pairs): Remove tracing message.
   2495 	(pfr_phy_font_load): Use PFR_CHECK_SIZE where appropriate.
   2496 	Allocate `chars' after doing a size checks.
   2497 
   2498 	* src/pfr/pfrsbit.c (pfr_load_bitmap_bits): Move test for invalid
   2499 	bitmap format to...
   2500 	(pfr_slot_load_bitmap): ... this function.
   2501 	Check bitmap size.
   2502 
   2503 2015-10-26  Werner Lemberg  <wl (a] gnu.org>
   2504 
   2505 	[truetype] Fix sanitizing logic for `loca' (#46223).
   2506 
   2507 	* src/truetype/ttpload.c (tt_face_load_loca): A thinko caused an
   2508 	incorrect adjustment of the number of glyphs, most often using far
   2509 	too large values.
   2510 
   2511 2015-10-25  Werner Lemberg  <wl (a] gnu.org>
   2512 
   2513 	[autofit] Improve tracing.
   2514 
   2515 	* src/autofit/afhints.c (af_print_idx, af_get_segment_index,
   2516 	af_get_edge_index): New functions.
   2517 
   2518 	(af_glyph_hints_dump_points): Remove unnecessary `|', `[', and `]'.
   2519 	Add segment and edge index for each point.
   2520 	Slightly change printing order of some elements.
   2521 	Don't print `-1' but `--' for missing elements.
   2522 
   2523 	(af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Remove
   2524 	unnecessary `|', `[', and `]'.
   2525 	Don't print `-1' but `--' for missing elements.
   2526 
   2527 2015-10-24  Werner Lemberg  <wl (a] gnu.org>
   2528 
   2529 	[sfnt] Sanitize bitmap strike glyph height.
   2530 
   2531 	Problem reported by Nikolay Sivov <bunglehead (a] gmail.com>.
   2532 
   2533 	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Avoid zero value
   2534 	for `metrics->height' by applying some heuristics.
   2535 
   2536 2015-10-22  Werner Lemberg  <wl (a] gnu.org>
   2537 
   2538 	[sfnt, type42] Fix clang compiler warnings.
   2539 
   2540 	* src/sfnt/sfobjs.c (sfnt_init_face): Initialize `offset'.
   2541 
   2542 	* src/type42/t42parse.c (t42_parse_sfnts): Use proper cast.
   2543 
   2544 2015-10-22  Dave Arnold  <darnold (a] adobe.com>
   2545 	    Werner Lemberg  <wl (a] gnu.org>
   2546 
   2547 	[cff] Avoid overflow/module arithmetic.
   2548 
   2549 	This modifies the addition of subroutine number to subroutine bias
   2550 	from unsigned to signed, but does not change any results.
   2551 
   2552 	* src/cff/cf2ft.c (cf2_initGlobalRegionBuffer,
   2553 	cf2_initLocalRegionBuffer): Change variable names from (unsigned)
   2554 	`idx' to (signed) `subrNum', since it is not an index until after
   2555 	the bias is added.
   2556 	* src/cff/cf2ft.h: Updated.
   2557 
   2558 	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
   2559 	Updated similarly.
   2560 
   2561 2015-10-22  Werner Lemberg  <wl (a] gnu.org>
   2562 
   2563 	[cid] Better check of `SubrCount' dictionary entry (#46272).
   2564 
   2565 	* src/cid/cidload.c (cid_face_open): Add more sanity tests for
   2566 	`fd_bytes', `gd_bytes', `sd_bytes', and `num_subrs'.
   2567 
   2568 2015-10-21  Werner Lemberg  <wl (a] gnu.org>
   2569 
   2570 	[base] Pacify compiler (#46266).
   2571 
   2572 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Initialize `in' and
   2573 	`anchor'.
   2574 
   2575 2015-10-21  Werner Lemberg  <wl (a] gnu.org>
   2576 
   2577 	[type42] Fix heap buffer overflow (#46269).
   2578 
   2579 	* src/type42/t42parse.c (t42_parse_sfnts): Fix off-by-one error in
   2580 	bounds checking.
   2581 
   2582 2015-10-21  Dave Arnold  <darnold (a] adobe.com>
   2583 
   2584 	[cff] Fix limit in assert for max hints.
   2585 
   2586 	* src/cff/cf2interp.c (cf2_hintmask_setAll): Allow mask equal to the
   2587 	limit (96 bits).
   2588 
   2589 2015-10-21  Dave Arnold  <darnold (a] adobe.com>
   2590 
   2591 	[cff] Remove an assert (#46107).
   2592 
   2593 	* src/cff/cf2hints.c (cf2_hintmap_insertHint): Ignore paired edges
   2594 	in wrong order.
   2595 
   2596 2015-10-21  Werner Lemberg  <wl (a] gnu.org>
   2597 
   2598 	[sfnt] Avoid unnecessarily large allocation for WOFFs (#46257).
   2599 
   2600 	* src/sfnt/sfobjs.c (woff_open_font): Use WOFF's `totalSfntSize'
   2601 	only after thorough checks.
   2602 	Add tracing messages.
   2603 
   2604 2015-10-21  Werner Lemberg  <wl (a] gnu.org>
   2605 
   2606 	[type42] Better check invalid `sfnts' array data (#46255).
   2607 
   2608 	* src/type42/t42parse.c (t42_parse_sfnts): Table lengths must be
   2609 	checked individually against available data size.
   2610 
   2611 2015-10-20  Werner Lemberg  <wl (a] gnu.org>
   2612 
   2613 	[cid] Add a bunch of safety checks.
   2614 
   2615 	* src/cid/cidload.c (parse_fd_array): Check `num_dicts' against
   2616 	stream size.
   2617 	(cid_read_subrs): Check largest offset against stream size.
   2618 	(cid_parse_dict): Move safety check to ...
   2619 	(cid_face_open): ... this function.
   2620 	Also test length of binary data and values of `SDBytes',
   2621 	`SubrMapOffset', `SubrCount', `CIDMapOffset', and `CIDCount'.
   2622 
   2623 2015-10-20  Werner Lemberg  <wl (a] gnu.org>
   2624 
   2625 	[cid] Avoid segfault with malformed input (#46250).
   2626 
   2627 	* src/cid/cidload.c (cid_read_subrs): Return a proper error code for
   2628 	unsorted offsets.
   2629 
   2630 2015-10-20  StudioEtrange  <nomorgan (a] gmail.com>
   2631 
   2632 	* CMakeLists.txt: Enable shared library builds on MinGW (#46233).
   2633 
   2634 2015-10-20  Werner Lemberg  <wl (a] gnu.org>
   2635 
   2636 	* src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak (#46229).
   2637 
   2638 2015-10-19  Ben Wagner  <bungeman (a] gmail.com>
   2639 
   2640 	[cid] Better handle invalid glyph stream offsets (#46221).
   2641 
   2642 	* src/cid/cidgload.c (cid_load_glyph): Check minimum size of glyph
   2643 	length.
   2644 
   2645 2015-10-18  Werner Lemberg  <wl (a] gnu.org>
   2646 
   2647 	[psaux] Fix tracing of negative numbers.
   2648 
   2649 	Due to incorrect casting negative numbers were shown as very large
   2650 	(positive) integers on 64bit systems.
   2651 
   2652 	* src/psaux/t1decode.c (t1_decoder_parse_charstrings) <op_none>:
   2653 	Use division instead of shift.
   2654 
   2655 2015-10-18  Werner Lemberg  <wl (a] gnu.org>
   2656 
   2657 	[truetype] Improve TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46223).
   2658 
   2659 	* devel/ftoption.h, include/freetype/config/ftoption.h: Surround it
   2660 	with #ifndef ... #endif, as suggested in the tracker issue.
   2661 
   2662 2015-10-18  Werner Lemberg  <wl (a] gnu.org>
   2663 
   2664 	[truetype] Better protection against malformed `fpgm' (#46223).
   2665 
   2666 	* src/truetype/ttobjs.c (tt_size_init_bytecode): Don't execute a
   2667 	malformed `fpgm' table more than once.
   2668 
   2669 2015-10-17  Werner Lemberg  <wl (a] gnu.org>
   2670 
   2671 	* src/cid/cidgload.c (cid_load_glyph): Fix memory leak.
   2672 
   2673 	Reported by Kostya Serebryany <kcc (a] google.com>.
   2674 
   2675 2015-10-17  Werner Lemberg  <wl (a] gnu.org>
   2676 
   2677 	[bdf] Prevent memory leak (#46217).
   2678 
   2679 	* src/bdf/bdflib.c (_bdf_parse_glyphs) <STARTCHAR>: Check
   2680 	_BDF_GLYPH_BITS.
   2681 
   2682 2015-10-17  Werner Lemberg  <wl (a] gnu.org>
   2683 
   2684 	[bdf] Use stream size to adjust number of glyphs.
   2685 
   2686 	* src/bdf/bdflib.c (ACMSG17): New message macro.
   2687 	(_bdf_parse_t): Add member `size'.
   2688 	(bdf_load_font): Set `size'.
   2689 	(_bdf_parse_glyphs): Adjust `cnt' if necessary.
   2690 
   2691 2015-10-17  Werner Lemberg  <wl (a] gnu.org>
   2692 
   2693 	* src/cid/cidload.c (cid_parse_dict): Check `[FG]DBytes' size.
   2694 
   2695 2015-10-17  Werner Lemberg  <wl (a] gnu.org>
   2696 
   2697 	* src/cid/cidgload.c (cid_glyph_load): Check file offsets (#46222).
   2698 
   2699 2015-10-17  Werner Lemberg  <wl (a] gnu.org>
   2700 
   2701 	[psaux] Fix heap buffer overflow (#46221).
   2702 
   2703 	* src/psaux/t1decode.c (t1_decoder_parse_charstring) <operator 12>:
   2704 	Fix limit check.
   2705 
   2706 2015-10-17  Werner Lemberg  <wl (a] gnu.org>
   2707 
   2708 	* src/cid/cidload.c (cid_parse_dict): Handle invalid input (#46220).
   2709 
   2710 2015-10-15  Kostya Serebryany  <kcc (a] google.com>
   2711 
   2712 	[ftfuzzer] Add README.
   2713 
   2714 	* src/tools/ftfuzzer/README: New file.
   2715 
   2716 2015-10-15  Ben Wagner  <bungeman (a] gmail.com>
   2717 
   2718 	[bdf] Fix memory leak (#46213).
   2719 
   2720 	* src/bdf/bdflib.c (bdf_load_font): Always go to label `Fail' in
   2721 	case of error.
   2722 
   2723 2015-10-15  Werner Lemberg  <wl (a] gnu.org>
   2724 
   2725 	[truetype] Add TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46208).
   2726 
   2727 	* devel/ftoption.h, include/freetype/config/ftoption.h
   2728 	(TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES): New configuration macro.
   2729 
   2730 	* src/truetype/ttinterp.c (MAX_RUNNABLE_OPCODES): Removed.
   2731 	(TT_RunIns): Updated.
   2732 
   2733 2015-10-15  Werner Lemberg  <wl (a] gnu.org>
   2734 
   2735 	* src/truetype/ttinterp.c (TT_RunIns): Fix bytecode stack tracing.
   2736 
   2737 	The used indices were off by 1.
   2738 
   2739 2015-10-15  Ben Wagner  <bungeman (a] gmail.com>
   2740 	    Werner Lemberg  <wl (a] gnu.org>
   2741 
   2742 	* src/tools/ftfuzzer/ftfuzzer.cc: Handle fixed sizes (#46211).
   2743 
   2744 2015-10-15  Werner Lemberg  <wl (a] gnu.org>
   2745 
   2746 	[base] Compute MD5 checksums only if explicitly requested.
   2747 
   2748 	This improves profiling accuracy.
   2749 
   2750 	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Implement it.
   2751 
   2752 2015-10-14  Werner Lemberg  <wl (a] gnu.org>
   2753 
   2754 	[base] Use `FT_' namespace for MD5 functions (#42366).
   2755 
   2756 	* src/base/ftobjs.c (MD5_*): Define as `FT_MD5_*'.
   2757 	Undefine HAVE_OPENSSL.
   2758 
   2759 2015-10-13  Werner Lemberg  <wl (a] gnu.org>
   2760 
   2761 	[type1] Correctly handle missing MM axis names (#46202).
   2762 
   2763 	* src/type1/t1load.c (T1_Get_MM_Var): Implement it.
   2764 
   2765 2015-10-13  Werner Lemberg  <wl (a] gnu.org>
   2766 
   2767 	[pcf] Quickly exit if font index < 0.
   2768 
   2769 	Similar to other font formats, this commit makes the parser no
   2770 	longer check the whole PCF file but only the header and the TOC if
   2771 	we just want to get the number of available faces (and a proper
   2772 	recognition of the font format).
   2773 
   2774 	* src/pcf/pcfdrivr.c (PCF_Face_Init): Updated.
   2775 	Exit quickly if face_index < 0.
   2776 
   2777 	* src/pcfread.c (pcf_load_font): Add `face_index' argument.
   2778 	Exit quickly if face_index < 0.
   2779 
   2780 	* src/pcf/pcf.h: Updated.
   2781 
   2782 2015-10-13  Werner Lemberg  <wl (a] gnu.org>
   2783 
   2784 	[ftfuzzer] Handle TTCs and MM/GX variations.
   2785 
   2786 	This patch also contains various other improvements.
   2787 
   2788 	* src/tools/ftfuzzer/ftfuzzer.cc: Add preprocessor guard to reject
   2789 	pre-C++11 compilers.
   2790 	(FT_Global): New class.  Use it to provide a global constructor and
   2791 	destructor for the `FT_Library' object.
   2792 	(setIntermediateAxis): New function to select an (arbitrary)
   2793 	instance.
   2794 	(LLVMFuzzerTestOneInput): Loop over all faces and named instances.
   2795 	Also call `FT_Set_Char_Size'.
   2796 
   2797 2015-10-13  Werner Lemberg  <wl (a] gnu.org>
   2798 
   2799 	[truetype] Refine some GX sanity tests.
   2800 
   2801 	Use the `gvar' table size instead of the remaining bytes in the
   2802 	stream.
   2803 
   2804 	* src/truetype/ttgxvar.h (GX_BlendRec): New field `gvar_size'.
   2805 
   2806 	* src/truetype/ttgxvar.c (ft_var_load_gvar): Set `gvar_size'.
   2807 	(ft_var_readpackedpoints, ft_var_readpackeddeltas: New argument
   2808 	`size'.
   2809 	(tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Updated.
   2810 
   2811 2015-10-13  Werner Lemberg  <wl (a] gnu.org>
   2812 
   2813 	[truetype] Another GX sanity test.
   2814 
   2815 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Check
   2816 	`tupleCount'.
   2817 	Add tracing message.
   2818 
   2819 2015-10-13  Werner Lemberg  <wl (a] gnu.org>
   2820 
   2821 	[truetype] Fix memory leak for broken GX fonts (#46188).
   2822 
   2823 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix scope of
   2824 	deallocation.
   2825 
   2826 2015-10-13  Werner Lemberg  <wl (a] gnu.org>
   2827 
   2828 	[truetype] Fix commit from 2015-10-10.
   2829 
   2830 	* src/truetype/ttgxvar.c (ft_var_load_gvar): Add missing error
   2831 	handling body to condition.
   2832 
   2833 2015-10-12  Werner Lemberg  <wl (a] gnu.org>
   2834 
   2835 	[unix] Make MKDIR_P actually work.
   2836 
   2837 	* builds/unix/configure.raw: Fix underquoting of `INSTALL' and
   2838 	`MKDIR_P'.
   2839 
   2840 	Problem reported by Dan Liddell <lddll (a] yahoo.com>.
   2841 
   2842 2015-10-11  Werner Lemberg  <wl (a] gnu.org>
   2843 
   2844 	[sfnt] Improve extraction of number of named instances.
   2845 
   2846 	* src/sfnt/sfobjs.c (sfnt_init_face)
   2847 	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check number of instances against
   2848 	`fvar' table size.
   2849 
   2850 2015-10-10  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2851 
   2852 	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix overflow
   2853 	(#46149).
   2854 
   2855 2015-10-10  Werner Lemberg  <wl (a] gnu.org>
   2856 
   2857 	[sfnt] Fix infinite loops with broken cmaps (#46167).
   2858 
   2859 	* src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next): Take care
   2860 	of border conditions (i.e., if the loops exit naturally).
   2861 
   2862 2015-10-10  Werner Lemberg  <wl (a] gnu.org>
   2863 
   2864 	[truetype] More sanity tests for GX handling.
   2865 
   2866 	These tests should mainly help avoid unnecessarily large memory
   2867 	allocations in case of malformed fonts.
   2868 
   2869 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints,
   2870 	ft_var_readpackeddeltas): Check number of points against stream
   2871 	size.
   2872 	(ft_var_load_avar): Check `pairCount' against table length.
   2873 	(ft_var_load_gvar): Check `globalCoordCount' and `glyphCount'
   2874 	against table length.
   2875 	(tt_face_vary_cvt): Check `tupleCount' and `offsetToData'.
   2876 	Fix trace.
   2877 	(TT_Vary_Apply_Glyph_Deltas): Fix trace.
   2878 	Free `sharedpoints' to avoid memory leak.
   2879 
   2880 2015-10-10  Werner Lemberg  <wl (a] gnu.org>
   2881 
   2882 	[truetype] Better protection against malformed GX data (#46166).
   2883 
   2884 	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Correctly
   2885 	handle empty `localpoints' array.
   2886 
   2887 2015-10-10  Werner Lemberg  <wl (a] gnu.org>
   2888 
   2889 	* src/pcf/pcfread.c (pcf_read_TOC): Check stream size (#46162).
   2890 
   2891 2015-10-09  Werner Lemberg  <wl (a] gnu.org>
   2892 
   2893 	* src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use real stream size.
   2894 
   2895 2015-10-08  Werner Lemberg  <wl (a] gnu.org>
   2896 
   2897 	[pcf] Protect against invalid number of TOC entries (#46159).
   2898 
   2899 	* src/pcf/pcfread.c (pcf_read_TOC): Check number of TOC entries
   2900 	against size of data stream.
   2901 
   2902 2015-10-08  Werner Lemberg  <wl (a] gnu.org>
   2903 
   2904 	[type42] Protect against invalid number of glyphs (#46159).
   2905 
   2906 	* src/type42/t42parse.c (t42_parse_charstrings): Check number of
   2907 	`CharStrings' dictionary entries against size of data stream.
   2908 
   2909 2015-10-08  Werner Lemberg  <wl (a] gnu.org>
   2910 
   2911 	[sfnt] Fix some signed overflows (#46149).
   2912 
   2913 	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
   2914 	<TT_SBIT_TABLE_TYPE_SBIX>: Use `FT_MulDiv'.
   2915 
   2916 2015-10-08  Werner Lemberg  <wl (a] gnu.org>
   2917 
   2918 	[type1] Protect against invalid number of subroutines (#46150).
   2919 
   2920 	* src/type1/t1load.c (parse_subrs): Check number of
   2921 	`Subrs' dictionary entries against size of data stream.
   2922 
   2923 2015-10-07  Kostya Serebryany  <kcc (a] google.com>
   2924 
   2925 	[ftfuzzer] Add support for LLVM's LibFuzzer.
   2926 
   2927 	* src/tools/ftfuzzer/ftfuzzer.cc, src/tools/runinput.cc: New files.
   2928 
   2929 2015-10-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   2930 
   2931 	[smooth] Faster alternative line renderer.
   2932 
   2933 	This implementation renders the entire line segment at once without
   2934 	subdividing it into scanlines.  The main speed improvement comes from
   2935 	reducing the number of divisions to just two per line segment, which
   2936 	is a bare minimum to calculate cell coverage in a smooth rasterizer.
   2937 	Notably, the progression from cell to cell does not itself require any
   2938 	divisions at all.  The speed improvement is more noticeable at larger
   2939 	sizes.
   2940 
   2941 	* src/smooth/ftgrays.c (gray_render_line): New implementation.
   2942 
   2943 2015-10-06  Werner Lemberg  <wl (a] gnu.org>
   2944 
   2945 	[cff] Return correct PS names from pure CFF (#46130).
   2946 
   2947 	* src/cff/cffdrivr.c (cff_get_ps_name): Use SFNT service only for
   2948 	SFNT.
   2949 
   2950 2015-10-04  Werner Lemberg  <wl (a] gnu.org>
   2951 
   2952 	[base] Replace left shifts with multiplication (#46118).
   2953 
   2954 	* src/base/ftglyph.c (ft_bitmap_glyph_bbox, FT_Get_Glyph): Do it.
   2955 
   2956 2015-10-04  Werner Lemberg  <wl (a] gnu.org>
   2957 
   2958 	* Version 2.6.1 released.
   2959 	=========================
   2960 
   2961 
   2962 	Tag sources with `VER-2-6-1'.
   2963 
   2964 	* docs/VERSION.DLL: Update documentation and bump version number to
   2965 	2.6.1.
   2966 
   2967 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
   2968 	builds/windows/vc2005/index.html,
   2969 	builds/windows/vc2008/freetype.vcproj,
   2970 	builds/windows/vc2008/index.html,
   2971 	builds/windows/vc2010/freetype.vcxproj,
   2972 	builds/windows/vc2010/index.html,
   2973 	builds/windows/visualc/freetype.dsp,
   2974 	builds/windows/visualc/freetype.vcproj,
   2975 	builds/windows/visualc/index.html,
   2976 	builds/windows/visualce/freetype.dsp,
   2977 	builds/windows/visualce/freetype.vcproj,
   2978 	builds/windows/visualce/index.html,
   2979 	builds/wince/vc2005-ce/freetype.vcproj,
   2980 	builds/wince/vc2005-ce/index.html,
   2981 	builds/wince/vc2008-ce/freetype.vcproj,
   2982 	builds/wince/vc2008-ce/index.html: s/2.6/2.6.1/, s/26/261/.
   2983 
   2984 	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
   2985 
   2986 	* builds/unix/configure.raw (version_info): Set to 18:1:12.
   2987 	* CMakeLists.txt (VERSION_PATCH): Set to 1.
   2988 
   2989 	* src/autofit/afmodule.c [AF_DEBUG_AUTOFIT]: Ensure C linking for
   2990 	dumping functions.
   2991 
   2992 2015-10-04  Werner Lemberg  <wl (a] gnu.org>
   2993 
   2994 	[bzip2, gzip] Avoid access of uninitialized memory (#46109).
   2995 
   2996 	* src/bzip2/ftbzip2.c (ft_bzip2_file_fill_input), src/gzip/ftgzip.c
   2997 	(ft_gzip_file_fill_input): In case of an error, adjust the limit to
   2998 	avoid copying uninitialized memory.
   2999 
   3000 2015-10-03  Werner Lemberg  <wl (a] gnu.org>
   3001 
   3002 	[bzip2, gzip] Avoid access of uninitialized memory (#46109).
   3003 
   3004 	* src/bzip2/ftbzip2.c (ft_bzip2_file_fill_output), src/gzip/ftgzip.c
   3005 	(ft_gzip_file_fill_output): In case of an error, adjust the limit to
   3006 	avoid copying uninitialized memory.
   3007 
   3008 2015-10-01  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3009 
   3010 	[smooth] Clean up worker.
   3011 
   3012 	* src/smooth/ftgrays.c (gray_TWorker): Remove never used fields.
   3013 
   3014 2015-10-01  Werner Lemberg  <wl (a] gnu.org>
   3015 
   3016 	[sfnt] Make `tt_cmap4_char_map_linear' more robust (#46078).
   3017 
   3018 	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Take care of
   3019 	border conditions (i.e., if the loop exits naturally).
   3020 
   3021 2015-10-01  Werner Lemberg  <wl (a] gnu.org>
   3022 
   3023 	* src/autofit/afranges.c (af_deva_nonbase_uniranges): Fix ranges.
   3024 	They should be a subset of `af_deva_uniranges'.
   3025 
   3026 2015-10-01  Werner Lemberg  <wl (a] gnu.org>
   3027 
   3028 	[sfnt] Make `tt_cmap4_char_map_linear' faster (#46078).
   3029 
   3030 	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Use inner loop to
   3031 	reject too large glyph indices.
   3032 
   3033 2015-09-30  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3034 
   3035 	[smooth] Clean up worker.
   3036 
   3037 	* src/smooth/ftgrays.c (gray_TWorker): Remove lightly used `last_ey'.
   3038 	(gray_start_cell, gray_render_line): Update.
   3039 
   3040 2015-09-30  Werner Lemberg  <wl (a] gnu.org>
   3041 
   3042 	[autofit] Replace `no-base' with `non-base'.
   3043 
   3044 	* src/autofit/*: Do it.
   3045 
   3046 2015-09-30  Werner Lemberg  <wl (a] gnu.org>
   3047 
   3048 	[sfnt] Rewrite `tt_cmap4_char_map_linear' (#46078).
   3049 
   3050 	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Add code to better
   3051 	skip invalid segments.
   3052 	If searching the next character, provide a more efficient logic to
   3053 	speed up the code.
   3054 
   3055 2015-09-30  Werner Lemberg  <wl (a] gnu.org>
   3056 
   3057 	[truetype] Adjust number of glyphs for malformed `loca' tables.
   3058 
   3059 	* src/truetype/ttpload.c (tt_face_load_loca): Implement it.
   3060 
   3061 2015-09-29  Werner Lemberg  <wl (a] gnu.org>
   3062 
   3063 	[pshinter] Avoid harmless overflow (#45984).
   3064 
   3065 	* src/pshinter/pshglob.c (psh_blues_set_zones): Fix it.
   3066 
   3067 2015-09-28  Werner Lemberg  <wl (a] gnu.org>
   3068 
   3069 	[autofit] Add support for Lao script.
   3070 
   3071 	Thanks to Danh Hong <danhhong (a] gmail.com> for guidance with blue zone
   3072 	characters!
   3073 
   3074 	* src/autofit/afblue.dat: Add blue zone data for Lao.
   3075 
   3076 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3077 
   3078 	* src/autofit/afscript.h: Add Lao standard characters.
   3079 
   3080 	* src/autofit/afranges.c: Add Lao data.
   3081 
   3082 	* src/autofit/afstyles.h: Add Lao data.
   3083 
   3084 2015-09-27  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3085 
   3086 	[base] Fix a leak by broken sfnt-PS or resource fork (#46028).
   3087 
   3088 	open_face_from_buffer() frees passed buffer if valid font
   3089 	is not found.  But if copying to the buffer is failed,
   3090 	the allocated buffer should be freed within the caller.
   3091 
   3092 	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Free
   3093 	the buffer `sfnt_ps' if an error caused before calling
   3094 	open_face_from_buffer().
   3095 	(Mac_Read_sfnt_Resource): Free the buffer `sfnt_data' if
   3096 	an error caused before calling open_face_from_buffer();
   3097 
   3098 2015-09-27  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3099 
   3100 	[mac] Fix buffer size calculation for LWFN font.
   3101 
   3102 	* src/base/ftmac.c (read_lwfn): Cast post_size to FT_ULong
   3103 	to prevent confused copy by too large chunk size.
   3104 
   3105 2015-09-26  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3106 
   3107 	* src/smooth/ftgrays.c (PIXEL_MASK): Remove unused macro.
   3108 
   3109 2015-09-26  Werner Lemberg  <wl (a] gnu.org>
   3110 
   3111 	[autofit] Minor tracing improvement.
   3112 
   3113 	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Don't emit
   3114 	blue zones header line if there are no blue zones.
   3115 
   3116 2015-09-26  Werner Lemberg  <wl (a] gnu.org>
   3117 
   3118 	[bzip2, gzip, lzw] Harmonize function signatures with prototype.
   3119 
   3120 	Suggested by Hin-Tak Leung.
   3121 
   3122 	* src/bzip2/ftbzip2.c (ft_bzip2_stream_io), src/gzip/ftgzip.c
   3123 	(ft_gzip_stream_io), src/lzw/ftlzw.c (ft_lzw_stream_io): Do it.
   3124 
   3125 2015-09-26  Hin-Tak Leung  <htl10 (a] users.sourceforge.net>
   3126 
   3127 	Add new FT_LOAD_COMPUTE_METRICS load flag.
   3128 
   3129 	* include/freetype/freetype.h (FT_LOAD_COMPUTE_METRICS): New macro.
   3130 	* src/truetype/ttgload.c (compute_glyph_metrics): Usage.
   3131 
   3132 2015-09-26  Werner Lemberg  <wl (a] gnu.org>
   3133 
   3134 	* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add cast.
   3135 
   3136 2015-09-25  Werner Lemberg  <wl (a] gnu.org>
   3137 
   3138 	[type1] Protect against invalid number of glyphs (#46029).
   3139 
   3140 	* src/type1/t1load.c (parse_charstrings): Check number of
   3141 	`CharStrings' dictionary entries against size of data stream.
   3142 
   3143 2015-09-23  Werner Lemberg  <wl (a] gnu.org>
   3144 
   3145 	[sfnt] Better checks for invalid cmaps (2/2) (#46019).
   3146 
   3147 	While the current code in `FT_Get_Next_Char' correctly rejects
   3148 	out-of-bounds glyph indices, it can be extremely slow for malformed
   3149 	cmaps that use 32bit values.  This commit tries to improve that.
   3150 
   3151 	* src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next,
   3152 	tt_cmap12_char_map_binary, tt_cmap13_next,
   3153 	tt_cmap13_char_map_binary): Reject glyph indices larger than or
   3154 	equal to the number of glyphs.
   3155 
   3156 2015-09-23  Werner Lemberg  <wl (a] gnu.org>
   3157 
   3158 	[base, sfnt] Better checks for invalid cmaps (1/2).
   3159 
   3160 	* src/base/ftobjs.c (FT_Get_Char_Index): Don't return out-of-bounds
   3161 	glyph indices.
   3162 	(FT_Get_First_Char): Updated.
   3163 
   3164 	* src/sfnt/ttcmap.c (tt_cmap6_char_next): Don't return character
   3165 	codes greater than 0xFFFF.
   3166 
   3167 	(tt_cmap8_char_index): Avoid integer overflow in computation of
   3168 	glyph index.
   3169 	(tt_cmap8_char_next): Avoid integer overflows in computation of
   3170 	both next character code and glyph index.
   3171 
   3172 	(tt_cmap10_char_index): Fix unsigned integer logic.
   3173 	(tt_cmap10_char_next): Avoid integer overflow in computation of
   3174 	next character code.
   3175 
   3176 	(tt_cmap12_next): Avoid integer overflows in computation of both
   3177 	next character code and glyph index.
   3178 	(tt_cmap12_char_map_binary): Ditto.
   3179 	(tt_cmap12_char_next): Simplify.
   3180 
   3181 	(tt_cmap13_char_map_binary): Avoid integer overflow in computation
   3182 	of next character code.
   3183 	(tt_cmap13_char_next): Simplify.
   3184 
   3185 2015-09-21  suzuki toshiya  <mpsuzuki (a] hiroshima-u.ac.jp>
   3186 
   3187 	[base] Check too long POST and sfnt resource (#45919).
   3188 
   3189 	* src/base/ftbase.h (FT_MAC_RFORK_MAX_LEN): Maximum length of the
   3190 	resource fork for Mac OS.  Resource forks larger than 16 MB can be
   3191 	written but can't be handled correctly, at least in Carbon routine.
   3192 	See https://support.microsoft.com/en-us/kb/130437.
   3193 
   3194 	* src/base/ftobjs.c (Mac_Read_POST_Resource): No need to use `0x'
   3195 	prefix for `%p' formatter.
   3196 
   3197 	* src/base/ftbase.c (Mac_Read_POST_Resource): Check the fragment and
   3198 	total size of the concatenated POST resource before buffer
   3199 	allocation.
   3200 	(Mac_Read_sfnt_Resource): Check the declared size of sfnt resource
   3201 	before buffer allocation.
   3202 
   3203 	* src/base/ftmac.c (read_lwfn, FT_New_Face_From_SFNT): Check the
   3204 	total resource size before buffer allocation.
   3205 
   3206 2015-09-19  Werner Lemberg  <wl (a] gnu.org>
   3207 
   3208 	[sfnt] Improve handling of invalid SFNT table entries (#45987).
   3209 
   3210 	This patch fixes weaknesses in function `tt_face_load_font_dir'.
   3211 
   3212 	- It incorrectly assumed that valid tables are always at the
   3213 	  beginning.  As a consequence, some valid tables after invalid
   3214 	  entries (which are ignored) were never seen.
   3215 
   3216 	- Duplicate table entries (this is, having the same tag) were not
   3217 	  rejected.
   3218 
   3219 	- The number of valid tables was sometimes too large, leading to
   3220 	  access of invalid tables.
   3221 
   3222 	* src/sfnt/ttload.c (check_table_dir): Add argument to return number
   3223 	of valid tables.
   3224 	Add another tracing message.
   3225 	(tt_face_load_font_dir): Only allocate table array for valid
   3226 	entries as returned by `check_table_dir'.
   3227 	Reject duplicate tables and adjust number of valid tables
   3228 	accordingly.
   3229 
   3230 2015-09-19  Werner Lemberg  <wl (a] gnu.org>
   3231 
   3232 	[pcf] Improve `FT_ABS' fix from 2015-09-17 (#45999).
   3233 
   3234 	* src/pcf/pcfread.c (pcf_load_font): Do first the cast to FT_Short,
   3235 	then take the absolute value.
   3236 	Also apply FT_ABS to `height'.
   3237 
   3238 2015-09-17  Werner Lemberg  <wl (a] gnu.org>
   3239 
   3240 	[type42] Fix memory leak (#45989).
   3241 
   3242 	* src/type42/t42parse.c (t42_parse_charstrings): Allow only a single
   3243 	`CharStrings' array.
   3244 
   3245 2015-09-17  Werner Lemberg  <wl (a] gnu.org>
   3246 
   3247 	[psaux] Fix memory leak (#45986).
   3248 
   3249 	* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
   3250 	Free `temp' in case of error.
   3251 
   3252 2015-09-17  Werner Lemberg  <wl (a] gnu.org>
   3253 
   3254 	[psaux] Improve tracing message.
   3255 
   3256 	* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
   3257 	Handle plural correctly.
   3258 
   3259 2015-09-17  Werner Lemberg  <wl (a] gnu.org>
   3260 
   3261 	[pcf] Fix integer overflows (#45985).
   3262 
   3263 	* src/pcf/pcfread.c (pcf_load_font): Use FT_MulDiv.
   3264 
   3265 2015-09-17  Werner Lemberg  <wl (a] gnu.org>
   3266 
   3267 	[pcf] Use FT_ABS for some property values (#45893).
   3268 
   3269 	* src/pcf/pcfread.c (pcf_load_font): Take absolute values for
   3270 	AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, RESOLUTION_X, and
   3271 	RESOLUTION_Y.  In tracing mode, add warnings.
   3272 
   3273 2015-09-16  Werner Lemberg  <wl (a] gnu.org>
   3274 
   3275 	Minor fixes for some clang warnings.
   3276 
   3277 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Cast, possible missing
   3278 	initialization.
   3279 
   3280 	* src/truetype/ttgload.c (TT_Process_Composite_Component): Cast.
   3281 
   3282 2015-09-15  Werner Lemberg  <wl (a] gnu.org>
   3283 
   3284 	[type1, type42] Fix memory leaks (#45966).
   3285 
   3286 	* src/type1/t1load.c (parse_blend_axis_types): Handle multiple axis
   3287 	names.
   3288 	(parse_blend_design_map): Allow only a single design map.
   3289 	(parse_encoding): Handle multiple encoding vectors.
   3290 
   3291 	* src/type42/t42parse.c (t42_parse_encoding): Handle multiple
   3292 	encoding vectors.
   3293 
   3294 2015-09-15  Werner Lemberg  <wl (a] gnu.org>
   3295 
   3296 	[truetype] Fix integer type (#45965).
   3297 
   3298 	* src/truetype/ttobjs.c (tt_synth_sfnt_checksum): Implement it.
   3299 
   3300 2015-09-15  Werner Lemberg  <wl (a] gnu.org>
   3301 
   3302 	* src/pcf/pcfread.c (pcf_load_font): Fix integer overflow (#45964).
   3303 
   3304 2015-09-15  Werner Lemberg  <wl (a] gnu.org>
   3305 
   3306 	[type1, type42] Check encoding array size (#45961).
   3307 
   3308 	* src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
   3309 	(t42_parse_encoding): Do it.
   3310 
   3311 2015-09-14  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3312 
   3313 	* src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Improve.
   3314 
   3315 2015-09-14  Werner Lemberg  <wl (a] gnu.org>
   3316 
   3317 	[type1] Fix another potential buffer overflow (#45955).
   3318 
   3319 	* src/type1/t1parse (T1_Get_Private_Dict): Assure that check for
   3320 	`eexec' doesn't exceed `limit'.
   3321 
   3322 2015-09-13  Werner Lemberg  <wl (a] gnu.org>
   3323 
   3324 	Replace `mkinstalldirs' with AC_PROG_MKDIR_P.
   3325 
   3326 	* builds/unix/mkinstalldirs: Removed, no longer needed.
   3327 
   3328 	* builds/unix/configure.raw: Call `AC_PROG_MKDIR_P'.
   3329 	Update pwd call for `$INSTALL'.
   3330 
   3331 	* builds/unix/unix-def.in (MKINSTALLDIRS): Use `@MKDIR_P@'.
   3332 
   3333 	* autogen.sh: Updated.
   3334 
   3335 2015-09-13  Werner Lemberg  <wl (a] gnu.org>
   3336 
   3337 	[winfonts] Check alignment shift count for resource data (#45938).
   3338 
   3339 	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Implement it.
   3340 
   3341 2015-09-13  Werner Lemberg  <wl (a] gnu.org>
   3342 
   3343 	[type1] Fix potential buffer overflow (#45923).
   3344 
   3345 	* src/type1/t1parse.c (T1_Get_Private_Dict): Assure `cur' doesn't
   3346 	point to end of file buffer.
   3347 
   3348 2015-09-13  Werner Lemberg  <wl (a] gnu.org>
   3349 
   3350 	[gzip] Fix access of small compressed files (#45937).
   3351 
   3352 	* src/gzip/ftgzip.c (ft_gzip_stream_close): Avoid memory leak.
   3353 
   3354 	(ft_gzip_get_uncompressed_file): Correct byte order while reading
   3355 	unsigned long value.  Without this change, the whole optimization of
   3356 	accessing small files in `FT_Stream_OpenGzip' is never executed!  As
   3357 	a consequence, access to PCF files in general (which are normally
   3358 	small files) should be much improved now as originally intended.
   3359 
   3360 2015-09-11  Werner Lemberg  <wl (a] gnu.org>
   3361 
   3362 	[psaux] Fix potential buffer overflow (#45922).
   3363 
   3364 	* src/psaux/psobjs.c (ps_parser_skip_PS_token): If a token is
   3365 	enclosed in balanced expressions, ensure that the cursor position
   3366 	doesn't get larger than the current limit.
   3367 
   3368 2015-09-11  Werner Lemberg  <wl (a] gnu.org>
   3369 
   3370 	[base] Avoid crash while tracing `load_mac_face'.
   3371 
   3372 	Reported in Savannah bug #45919.
   3373 
   3374 	* src/base/ftobjs.c (load_mac_face): Honour FT_OPEN_MEMORY while
   3375 	tracing.
   3376 
   3377 2015-09-11  Werner Lemberg  <wl (a] gnu.org>
   3378 
   3379 	[type42] Fix endless loop (#45920).
   3380 
   3381 	* src/type42/t42parse.c (t42_parse_encoding): Synchronize with
   3382 	type1's `parse_encoding'.
   3383 
   3384 2015-09-10  Werner Lemberg  <wl (a] gnu.org>
   3385 
   3386 	[docmaker] Allow `-' in bold and italic markup.
   3387 
   3388 	* src/tools/docmaker/sources.py (re_italic, re_bold): Adjust
   3389 	accordingly.
   3390 
   3391 2015-09-09  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3392 
   3393 	* src/base/ftcalc.c (FT_RoundFix): Improve.
   3394 
   3395 2015-09-09  Wojciech Mamrak  <wmamrak (a] gmail.com>
   3396 
   3397 	* src/base/ftcalc.c (FT_CeilFix, FT_FloorFix): Normalize.
   3398 
   3399 	This commit makes the functions behave as expected, this is,
   3400 	rounding towards plus or minus infinity.
   3401 
   3402 2015-09-07  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3403 
   3404 	* src/smooth/ftgrays.c (gray_render_line): Simplify clipping.
   3405 
   3406 2015-09-04  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3407 
   3408 	[raster,smooth] Microoptimizations.
   3409 
   3410 	* src/raster/ftraster.c (Insert_Y_Turn, Finalize_Profile_Table,
   3411 	Bezier_Up): Use do-while loops.
   3412 
   3413 	* src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
   3414 	gray_convert_glyph): Ditto.
   3415 
   3416 2015-09-04  Werner Lemberg  <wl (a] gnu.org>
   3417 
   3418 	[autofit] Redesign code ranges (2/2).
   3419 
   3420 	This commit adds two fallback scripts (`latb', `latp') and
   3421 	implements support for the no-base character ranges introduced in
   3422 	the previous commit.
   3423 
   3424 	* src/autofit/aftypes.h (AF_ScriptClassRec): Add
   3425 	`script_uni_nobase_ranges' field.
   3426 	(AF_DEFINE_SCRIPT_CLASS): Updated.
   3427 
   3428 	* src/autofit/afscript.h, src/autofit/afstyles.h: Add `latb' and
   3429 	`latp' fallback scripts.
   3430 
   3431 	* src/autofit/afblue.dat: Add blue zones for Latin subscript and
   3432 	superscript fallback scripts.
   3433 
   3434 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3435 
   3436 	* src/autofit/afglobal.h (AF_NOBASE): New style flag for no-base
   3437 	characters.
   3438 	(AF_STYLE_MASK): Updated.
   3439 
   3440 	* src/autofit/afglobal.c (SCRIPT): Updated.
   3441 	(af_face_globals_compute_style_coverage): Handle new style flag.
   3442 
   3443 	* src/autofit/aflatin.c (af_latin_hints_apply): Handle new style
   3444 	flag.
   3445 
   3446 	* src/autofit/afranges.h (SCRIPT): Use it to export no-base ranges.
   3447 
   3448 2015-09-04  Werner Lemberg  <wl (a] gnu.org>
   3449 
   3450 	[autofit] Redesign code ranges (1/2).
   3451 
   3452 	This patch introduces auxiliary code ranges that identify no-base
   3453 	characters; they refer to glyphs of a script that should be hinted
   3454 	without alignments to blue zones (mostly diacritics).
   3455 
   3456 	It also splits off ranges for fallback scripts that handle subscript
   3457 	and superscript characters not covered by OpenType features.  For
   3458 	example, this greatly helps improve the hinting of various phonetic
   3459 	alphabets, which contain a large amount characters that look like
   3460 	superscript glyphs.
   3461 
   3462 	Finally, code ranges are updated to Unicode 8.0, and enclosed
   3463 	characters are removed in general since they normally look better if
   3464 	they stay unhinted.
   3465 
   3466 	* src/autofit/afranges.c (af_latn_uniranges): Updated to Unicode
   3467 	8.0.
   3468 	Split off superscript-like and subscript-like glyphs into...
   3469 
   3470 	(af_latb_uniranges, af_latp_uniranges): ... these two new arrays.
   3471 
   3472 	(af_xxxx_nobase_uniranges): New arrays that hold no-base characters
   3473 	of the corresponding character ranges.
   3474 
   3475 2015-09-03  Werner Lemberg  <wl (a] gnu.org>
   3476 
   3477 	[autofit] Pass glyph index to hinting function.
   3478 
   3479 	No functionality change yet.
   3480 
   3481 	* src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Pass
   3482 	glyph index.
   3483 
   3484 	* src/autofit/afcjk.c, src/autofit/afcjk.h (af_cjk_hints_apply),
   3485 	src/autofit/afdummy.c (af_dummy_hints_apply), src/autofit/afindic.c
   3486 	(af_indic_hints_apply), src/autofit/aflatin.c
   3487 	(af_latin_hints_apply), src/autofit/aflatin2.c
   3488 	(af_latin2_hints_apply), src/autofit/afloader.c (af_loader_load_g):
   3489 	Updated.
   3490 
   3491 2015-08-30  Werner Lemberg  <wl (a] gnu.org>
   3492 
   3493 	[autofit] Code clean-up.
   3494 
   3495 	* src/autofit/afglobal.h (AF_STYLE_MASK): New macro.
   3496 	(AF_STYLE_UNASSIGNED): Use AF_STYLE_MASK for definition.
   3497 
   3498 	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
   3499 	Updated.
   3500 
   3501 2015-08-30  Werner Lemberg  <wl (a] gnu.org>
   3502 
   3503 	[autofit] Make glyph style array use 16bit values.
   3504 
   3505 	* include/freetype/ftautoh.h (FT_Prop_GlyphToScriptMap): Use
   3506 	`FT_UShort' for `map' field.
   3507 
   3508 	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage,
   3509 	af_face_globals_new), src/autofit/hbshim.c, src/autofit/hbshim.h
   3510 	(af_get_coverage): Use FT_UShort for `glyph_styles' array.
   3511 
   3512 	* src/autofit/afglobal.h (AF_STYLE_UNASSIGNED, AF_DIGIT): Extend to
   3513 	16 bits.
   3514 	(AF_FaceGlobalsRec): Use `FT_UShort' for `glyph_styles' field.
   3515 
   3516 2015-08-26  Werner Lemberg  <wl (a] gnu.org>
   3517 
   3518 	* builds/unix/configure.raw: Need harfbuzz >= 0.9.21 (#45828).
   3519 
   3520 2015-08-25  Werner Lemberg  <wl (a] gnu.org>
   3521 
   3522 	[base] Improve kerning tracing and documentation.
   3523 
   3524 	* src/base/ftobjs.c (FT_Get_Kerning): Emit tracing message if
   3525 	scaled-down kerning values differ.
   3526 
   3527 2015-08-18  Werner Lemberg  <wl (a] gnu.org>
   3528 
   3529 	[raster] Remove last remnants of `raster5' driver.
   3530 
   3531 	* src/raster/ftrend1.h (ft_raster5_renderer_class): Removed.
   3532 
   3533 	* src/raster/rastpic.c, src/raster/rastpic.h
   3534 	(ft_raster5_renderer_class_pic_init,
   3535 	ft_raster5_renderer_class_pic_free): Removed.
   3536 
   3537 2015-08-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3538 
   3539 	[base] Improve emboldener (#45596).
   3540 
   3541 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Correct displacement
   3542 	of zero-length segments.
   3543 
   3544 2015-08-16  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3545 
   3546 	[base] Reoptimize arithmetic.
   3547 
   3548 	* src/base/ftcalc.c (FT_MulDiv, FT_MulFix) [!FT_LONG64]: Remove
   3549 	special cases that slow down the general use.
   3550 
   3551 2015-08-15  pazer  <ibemad (a] gmail.com>
   3552 
   3553 	Fix C++ compilation (#45762).
   3554 
   3555 	* src/base/ftstroke.c (ft_outline_glyph_class): Use
   3556 	FT_CALLBACK_TABLE.
   3557 
   3558 2015-08-14  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3559 
   3560 	[truetype] Clean up.
   3561 
   3562 	* src/truetype/ttgload.c (TT_Process_Composite_Component): Use
   3563 	`FT_Outline_Transform' and `FT_Outline_Translate'.
   3564 	(translate_array): Dropped.
   3565 
   3566 2015-08-14  Andreas Enge  <andreas.enge (a] inria.fr>
   3567 
   3568 	* builds/unix/detect.mk (CONFIG_SHELL): Don't handle it (#44261).
   3569 
   3570 2015-08-13  Werner Lemberg  <wl (a] gnu.org>
   3571 
   3572 	[truetype] Introduce named instance access to GX fonts.
   3573 
   3574 	For functions querying a face, bits 16-30 of the face index can hold
   3575 	the named instance index if we have a GX font.  The indices start
   3576 	with value 1; value 0 indicates font access without GX variation
   3577 	data.
   3578 
   3579 	* include/freetype/freetype.h (FT_FaceRec): Update documentation.
   3580 	* include/freetype/internal/sfnt.h: Ditto.
   3581 
   3582 	* src/sfnt/sfobjs.c (sfnt_init_face)
   3583 	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Get number of named instances and
   3584 	do argument checks.
   3585 	(sfnt_load_face): Updated.
   3586 
   3587 	* src/truetype/ttobjs.c (tt_face_init)
   3588 	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Use named instance, overwriting
   3589 	the style name.
   3590 
   3591 	* src/base/ftobjs.c (open_face_from_buffer,
   3592 	open_face_PS_from_sfnt_stream): Updated.
   3593 	* src/bdf/bdfdrivr.c (BDF_Face_Init): Updated.
   3594 	* src/cff/cffload.c (cff_font_load): Updated.
   3595 
   3596 	* src/cff/cffobjs.c (cff_face_init): Make function exit early for
   3597 	pure CFF fonts if `font_index < 0'.
   3598 	Updated.
   3599 
   3600 	* src/cid/cidobjs.c (cid_face_init): Updated.
   3601 	* src/pcf/pcfdrivr.c (PCF_Face_Init): Updated.
   3602 	* src/pfr/pfrobjs.c (pfr_face_init): Updated.
   3603 	* src/type1/t1objs.c (T1_Face_Init): Updated.
   3604 	* src/type42/t42objs.c (T42_Face_Init): Updated.
   3605 	* src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
   3606 	Updated.
   3607 
   3608 	* docs/CHANGES: Updated.
   3609 
   3610 2015-08-12  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3611 
   3612 	[type1,cff,cid] Streamline font matrix application.
   3613 
   3614 	* src/type1/t1gload.c (T1_Load_Glyph): Directly modify advances only
   3615 	if font matrix is not trivial.
   3616 	* src/cff/cffgload.c (cff_slot_load): Ditto.
   3617 	* src/cid/cidgload.c (cid_slot_load_glyph): Ditto for advances and the
   3618 	entire outline.
   3619 
   3620 2015-08-11  Werner Lemberg  <wl (a] gnu.org>
   3621 
   3622 	[builds/unix] Minor.
   3623 
   3624 	* builds/unix/configure.raw:
   3625 	s/lib{priv,staticconf}/libs{priv,staticconf}/ for orthogonality with
   3626 	similarly named uppercase variables.
   3627 
   3628 2015-08-10  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3629 
   3630 	[type1,cid,type42] Minor improvements.
   3631 
   3632 	* src/type1/t1load.c (t1_parse_font_matrix): Scale units per EM only
   3633 	when necessary. Refresh comments.
   3634 	* src/cid/cidload.c (cid_parse_font_matrix): Ditto.
   3635 	* src/type42/t42parse.c (t42_parse_font_matrix): Refresh comments.
   3636 
   3637 2015-08-08  Werner Lemberg  <wl (a] gnu.org>
   3638 
   3639 	[type42] Fix glyph access.
   3640 
   3641 	This is a severe bug: We've missed one level of indirection, as
   3642 	described in the Type 42 specification.  As a result, ftview
   3643 	sometimes showed incorrect glyphs for given glyph names, and even
   3644 	displayed `error 0x0006' (invalid argument!) in case the number of
   3645 	glyph indices differed between the Type 42 font and the embedded
   3646 	TTF.
   3647 
   3648 	Apparently, noone ever noticed it; this shows how much Type 42 fonts
   3649 	are in use...
   3650 
   3651 	* src/type42/t42objs.c (T42_GlyphSlot_Load): Map Type 42 glyph index
   3652 	to embedded TTF's glyph index.
   3653 
   3654 2015-08-08  Werner Lemberg  <wl (a] gnu.org>
   3655 
   3656 	[type42] Minor clean-up.
   3657 
   3658 	* src/type42/t42parse.c (t42_parse_font_matrix): Remove unused
   3659 	variable.
   3660 
   3661 2015-08-06  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3662 
   3663 	[type42] Parse FontMatrix according to specifications.
   3664 
   3665 	* src/type42/t42parse.c (t42_parse_font_matrix): Type 42 FontMatrix
   3666 	does not need scaling by 1000. Units_per_EM are taken from the
   3667 	embedded TrueType.
   3668 
   3669 2015-08-06  Werner Lemberg  <wl (a] gnu.org>
   3670 
   3671 	[autofit] Improve Arabic hinting.
   3672 
   3673 	Problem reported by Titus Nemeth <tn (a] tntypography.eu> (by using
   3674 	ttfautohint).
   3675 
   3676 	* src/autofit/afblue.dat: Add neutral blue zone for the tatweel
   3677 	character.
   3678 
   3679 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   3680 
   3681 2015-08-05  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3682 
   3683 	[truetype] Clean up types.
   3684 
   3685 	* src/truetype/ttobjs.c (TT_Size): Move declaration from here.
   3686 	* include/freetype/internal/tttypes.h (TT_Size): ... to here.
   3687 	(TT_LoaderRec): Switch to appropriate types for `face' and `size'.
   3688 	* src/truetype/ttgload.c: Remove corresponding type casts.
   3689 	* src/truetype/ttsubpix.c: Ditto.
   3690 
   3691 2015-08-05  Werner Lemberg  <wl (a] gnu.org>
   3692 
   3693 	[autofit] Improve recognition of flat vs. rounded segments.
   3694 
   3695 	Lower the flatness threshold from upem/8 to upem/14, making the
   3696 	auto-hinter accept shorter elements.
   3697 
   3698 	Synchronize flat/round stem selection algorithm with blue zone code.
   3699 
   3700 	* src/autofit/aflatin.c (FLAT_THRESHOLD): New macro.
   3701 	(af_latin_metrics_init_blues): Use it.
   3702 	(af_latin_hints_compute_segments): Collect information on maximum
   3703 	and minimum coordinates of `on' points; use this to add a constraint
   3704 	for the flat/round decision similar to
   3705 	`af_latin_metrics_init_blues'.
   3706 
   3707 2015-08-04  Werner Lemberg  <wl (a] gnu.org>
   3708 
   3709 	Another left-shift bug (#45681).
   3710 
   3711 	* src/base/ftobjs.c (IsMacBinary): Only accept positive values for
   3712 	`dlen'.
   3713 
   3714 2015-08-03  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3715 
   3716 	[base] Fix `ft_corner_orientation'.
   3717 
   3718 	Remove casting from `FT_Long' to `FT_Int' that might change the sign
   3719 	of the return value and make it faster too.
   3720 
   3721 	* src/base/ftcalc.c (ft_corner_orientation): On 32-bit systems, stay
   3722 	with 32-bit arithmetic when safe. Use plain math on 64-bit systems.
   3723 	* src/pshinter/pshalgo.c: Remove old unused code.
   3724 
   3725 2015-08-03  Werner Lemberg  <wl (a] gnu.org>
   3726 
   3727 	* src/truetype/ttgload.c (load_truetype_glyph)
   3728 	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix crash for composite glyphs
   3729 	having a depth greater than 1.
   3730 
   3731 2015-08-03  Werner Lemberg  <wl (a] gnu.org>
   3732 
   3733 	Fix typo in clang bug from 2015-07-31 (#45678).
   3734 
   3735 	* src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Fix inequality.
   3736 
   3737 2015-08-02  Werner Lemberg  <wl (a] gnu.org>
   3738 
   3739 	* CMakeLists.txt: Improve shared library support.
   3740 
   3741 	Based on a patch from John Cary <cary (a] txcorp.com>.
   3742 
   3743 2015-08-02  Werner Lemberg  <wl (a] gnu.org>
   3744 
   3745 	* builds/unix/freetype-config.in (enable_shared): Remove.  Unused.
   3746 
   3747 2015-08-02  Werner Lemberg  <wl (a] gnu.org>
   3748 
   3749 	Fix more invalid left-shifts.
   3750 
   3751 	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Use multiplication,
   3752 	not left-shift.
   3753 
   3754 	* src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar,
   3755 	tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Use multiplication,
   3756 	not left-shift.
   3757 
   3758 2015-07-31  Werner Lemberg  <wl (a] gnu.org>
   3759 
   3760 	Fix some bugs found by clang's `-fsanitize=undefined' (#45661).
   3761 
   3762 	* src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Only accept
   3763 	positive values from header.
   3764 	Check overflow.
   3765 
   3766 	* src/base/ftoutln.c (SCALED): Correctly handle left-shift of
   3767 	negative values.
   3768 
   3769 	* src/bdf/bdf.h (_bdf_glyph_modified, _bdf_set_glyph_modified,
   3770 	_bdf_clear_glyph_modified): Use unsigned long constant.
   3771 
   3772 	* src/bdf/bdfdrivr.c (BDF_Size_Select, BDF_Glyph_Load): Don't
   3773 	left-shift values that can be negative.
   3774 
   3775 	* src/pcf/pcfdrivr.c (PCF_Size_Select, PCF_Glyph_Load): Don't
   3776 	left-shift values that can be negative.
   3777 
   3778 	* src/raster/ftraster.c (SCALED): Correctly handle left-shift of
   3779 	negative values.
   3780 
   3781 	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Don't left-shift
   3782 	values that can be negative.
   3783 
   3784 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph,
   3785 	compute_glyph_metrics, load_sbit_image): Don't left-shift values
   3786 	that can be negative.
   3787 
   3788 2015-07-31  Werner Lemberg  <wl (a] gnu.org>
   3789 
   3790 	Define FT_LONG_MAX.
   3791 
   3792 	* include/freetype/config/ftstdlib.h (FT_LONG_MAX): New macro.
   3793 	* src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use it.
   3794 
   3795 2015-07-28  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3796 
   3797 	* src/base/ftcalc.c (FT_Vector_NormLen): Clarify.
   3798 
   3799 2015-07-27  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3800 
   3801 	* src/base/ftcalc.c (FT_Vector_NormLen): Explicate type conversions.
   3802 
   3803 2015-07-26  Matthias Clasen  <matthias.clasen (a] gmail.com>
   3804 
   3805 	[cff] Don't use `hmtx' table for LSB (#45520).
   3806 
   3807 	* src/cff/cffgload.c (cff_slot_load): Use `htmx' table for advance
   3808 	width only.  Bug introduced 2015-04-10.
   3809 
   3810 2015-07-09  Werner Lemberg  <wl (a] gnu.org>
   3811 
   3812 	Better support of user-supplied C++ namespaces.
   3813 
   3814 	See
   3815 
   3816 	  https://lists.nongnu.org/archive/html/freetype-devel/2015-07/msg00008.html
   3817 
   3818 	for a rationale.
   3819 
   3820 	* src/autofit/afpic.h, src/base/basepic.h, src/cff/cffpic.h,
   3821 	src/pshinter/pshpic.h, src/psnames/pspic.h, src/raster/rastpic.h,
   3822 	src/sfnt/sfntpic.h, src/smooth/ftspic.h, src/truetype/ttpic.h
   3823 	(FT_BEGIN_HEADER, FT_END_HEADER): Move macro calls to not enclose
   3824 	header files that contain FT_{BEGIN,END}_HEADER macros by
   3825 	themselves.
   3826 
   3827 	* src/autofit/aftypes.h [FT_DEBUG_AUTOFIT]: Include
   3828 	FT_CONFIG_STANDARD_LIBRARY_H earlier.
   3829 
   3830 	* src/truetype/ttpic.h: Include FT_INTERNAL_PIC_H.
   3831 
   3832 2015-07-07  Werner Lemberg  <wl (a] gnu.org>
   3833 
   3834 	[sfnt] Make `tt_face_get_name' member of the SFNT interface.
   3835 
   3836 	* include/freetype/internal/sfnt.h (TT_Get_Name_Func): New
   3837 	prototype.
   3838 	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): New member `get_name'.
   3839 
   3840 	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
   3841 
   3842 	* src/sfnt/sfobjs.c (tt_face_get_name): Tag it with `LOCAL_DEF'.
   3843 	* src/sfnt/sfobjs.h: Add prototype for it.
   3844 
   3845 2015-06-30  Werner Lemberg  <wl (a] gnu.org>
   3846 
   3847 	Fix some clang compiler warnings.
   3848 
   3849 	* src/base/ftoutln.c (FT_Outline_EmboldenXY), src/cff/cf2intrp.c
   3850 	(cf2_interpT2CharString), src/truetype/ttgload.c
   3851 	(load_truetype_glyph), src/truetype/ttgxvar.c (tt_handle_deltas),
   3852 	src/truetype/ttinterp.c (Ins_INSTCTRL): Fix signedness issues.
   3853 
   3854 2015-06-29  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3855 
   3856 	[truetype] Speed up bytecode interpreter.
   3857 
   3858 	* src/truetype/ttinterp.c (Normalize): Use `FT_Vector_NormLen'.
   3859 
   3860 2015-06-29  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3861 
   3862 	[base] Speed up emboldening.
   3863 
   3864 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Use
   3865 	`FT_Vector_NormLen'.
   3866 
   3867 2015-06-29  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3868 
   3869 	[base] Implement fast vector normalization.
   3870 
   3871 	The function uses Newton's iterations instead of dividing vector
   3872 	components by its length, which needs a square root. This is,
   3873 	literally, a bit less accurate but a lot faster.
   3874 
   3875 	* src/base/ftcalc.c (FT_Vector_NormLen): New function.
   3876 
   3877 2015-06-28  Werner Lemberg  <wl (a] gnu.org>
   3878 
   3879 	* CMakeLists.txt: Always create `ftconfig.h'.
   3880 
   3881 	For non-UNIX builds, the file stays unmodified.  However, it's
   3882 	better to have the main configuration files at the same place
   3883 	regardless of the OS.
   3884 
   3885 2015-06-28  Werner Lemberg  <wl (a] gnu.org>
   3886 
   3887 	* CMakeLists.txt: Improve MSVC support (#43737).
   3888 
   3889 2015-06-28  Werner Lemberg  <wl (a] gnu.org>
   3890 
   3891 	[cmake] Check for libraries and create `ftoption.h'.
   3892 
   3893 	* builds/FindHarfBuzz.cmake: New file, taken from
   3894 
   3895 	  https://trac.webkit.org/browser/trunk/Source/cmake/FindHarfBuzz.cmake
   3896 
   3897 	* CMakeLists.Txt: Add path to local cmake modules.
   3898 	Find dependencies for zlib, bzip2, libpng, and harfbuzz.
   3899 	Create `ftoption.h' file.
   3900 	Set up include and linker stuff for libraries.
   3901 
   3902 2015-06-28  Werner Lemberg  <wl (a] gnu.org>
   3903 
   3904 	* CMakeLists.txt: Fix creation of `ftconfig.h'.
   3905 	Check for UNIX header files using `check_include_file'.
   3906 	Set up correct header include directories.
   3907 
   3908 2015-06-28  Werner Lemberg  <wl (a] gnu.org>
   3909 
   3910 	* CMakeLists.txt: Disallow in-source builds.
   3911 
   3912 2015-06-27  Werner Lemberg  <wl (a] gnu.org>
   3913 
   3914 	* src/tools/docmaker/utils.py (check_output): Add missing `\n'.
   3915 
   3916 2015-06-26  Werner Lemberg  <wl (a] gnu.org>
   3917 
   3918 	* CMakeLists.txt: Select platform-dependent `ftdebug.c'.
   3919 
   3920 2015-06-25  Werner Lemberg  <wl (a] gnu.org>
   3921 
   3922 	* CMakeLists.txt: Use cmake functions for generating `ftconfig.h'.
   3923 	Additionally, do this for UNIX only.
   3924 
   3925 2015-06-25  Werner Lemberg  <wl (a] gnu.org>
   3926 
   3927 	* CMakeLists.txt (BASE_SRCS): Use `ftbase.c' and `psnames.c'.
   3928 
   3929 2015-06-25  Werner Lemberg  <wl (a] gnu.org>
   3930 
   3931 	Another adjustment to header locations.
   3932 
   3933 	This change is a result of a discussion thread on freetype-devel
   3934 
   3935 	  https://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00041.html
   3936 
   3937 	Re-introduce the `freetype2' subdirectory for all FreeType header
   3938 	files after installation, and rename the `freetype2' subdirectory in
   3939 	the git repository to `freetype'.
   3940 
   3941 	* include/freetype2: Renamed to...
   3942 	* include/freetype: This.
   3943 
   3944 	* CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
   3945 	PRIVATE_HEADERS): Updated.
   3946 	Update creation of `ftconfig.h'.
   3947 	Install generated `ftconfig.h'.
   3948 
   3949 	* Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.
   3950 
   3951 	* builds/amiga/include/config/ftconfig.h, builds/freetype.mk
   3952 	(PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
   3953 	builds/unix/freetype2.in: Updated.
   3954 
   3955 	* builds/unix/freetype-config.in: Updated.
   3956 	* builds/unix/configure.raw: Don't check for `rmdir'.
   3957 	* builds/unix/unix-def.in (DELDIR): Use `rm -rf', which is portable
   3958 	according to the autoconf info manual.
   3959 	* builds/unix/install.mk (install, uninstall,
   3960 	distclean_project_unix): Update and simplify.
   3961 
   3962 	* builds/wince/*, builds/windows/*: Updated.
   3963 
   3964 	* devel/ft2build.h, include/ft2build.h: Updated.
   3965 
   3966 	* include/freetype2/config/ftheader.h,
   3967 	include/freetype2/internal/ftserv.h,
   3968 	include/freetype2/internal/internal.h: Update all header file
   3969 	macros.
   3970 
   3971 	* src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.
   3972 
   3973 	* docs/*: Updated.
   3974 
   3975 2015-06-24  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3976 
   3977 	* src/bdf/bdflib.c (_bdf_parse_start): Disallow 0 bpp.
   3978 
   3979 2015-06-24  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   3980 
   3981 	* src/bdf/bdflib.c (_bdf_parse_start): Simplify bpp parsing.
   3982 
   3983 2015-06-23  Werner Lemberg  <wl (a] gnu.org>
   3984 
   3985 	s/TYPEOF/FT_TYPEOF/ (#45376).
   3986 
   3987 	* builds/unix/ftconfig.in, builds/vms/ftconfig.in,
   3988 	include/freetype2/config/ftconfig.h,
   3989 	include/freetype2/internal/ftobjs.h, src/autofit/afwarp.h: Do it.
   3990 
   3991 2015-06-22  Werner Lemberg  <wl (a] gnu.org>
   3992 
   3993 	Fix Savannah bug #45097.
   3994 
   3995 	We no longer `pollute' the namespace of possible header file names;
   3996 	instead we move `ft2build.h' up by one level so that it gets
   3997 	installed in the default include directory (e.g.,
   3998 	/usr/local/include).  After this commit, only `ft2build.h' stays in
   3999 	the compiler's include path.
   4000 
   4001 	No visible changes for the user who follows the standard FreeType
   4002 	header inclusion rules.
   4003 
   4004 	* include/*: Move to ...
   4005 	* include/freetype2/*: This directory, except `ft2build.h'.
   4006 
   4007 	* CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
   4008 	PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.
   4009 
   4010 	* builds/amiga/include/config/ftconfig.h, builds/freetype.mk
   4011 	(PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
   4012 	builds/unix/install.mk (install, uninstall),
   4013 	builds/unix/freetype2.in: Updated.
   4014 
   4015 	* builds/unix/freetype-config.in: Updated.
   4016 	Emit -I directory only if it is not `/usr/include'.
   4017 
   4018 	* builds/wince/*, builds/windows/*: Updated.
   4019 
   4020 	* devel/ft2build.h, include/ft2build.h: Updated.
   4021 
   4022 	* include/freetype2/config/ftheader.h,
   4023 	include/freetype2/internal/ftserv.h,
   4024 	include/freetype2/internal/internal.h: Update all header file
   4025 	macros.
   4026 
   4027 	* src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.
   4028 
   4029 2015-06-21  Werner Lemberg  <wl (a] gnu.org>
   4030 
   4031 	Make Jam support work again.
   4032 
   4033 	This is just very basic stuff and just a little bit tested on
   4034 	GNU/Linux only.  I won't delve into this since I'm not a Jam user.
   4035 
   4036 	* Jamfile: Call `HDRMACRO' for `ftserv.h' also.
   4037 	(DEFINES): Replace with...
   4038 	(CCFLAGS): ... this.
   4039 
   4040 	* src/Jamfile: Don't call `HDRMACRO' for `internal.h'; this is
   4041 	already handled in the top-level Jamfile.
   4042 
   4043 	* src/autofit/Jamfile (DEFINES): Replace with...
   4044 	(CCFLAGS): ... this.
   4045 	(_sources): Add missing files.
   4046 
   4047 	* src/cache/Jamfile: Don't call `HDRMACRO' for `ftcache.h'; it no
   4048 	longer contains macro header definitions.
   4049 
   4050 	* src/base/Jamfile, src/cff/Jamfile, src/sfnt/Jamfile,
   4051 	src/truetype/Jamfile (_sources): Add missing files.
   4052 
   4053 2015-06-16  Werner Lemberg  <wl (a] gnu.org>
   4054 
   4055 	Fix Savannah bug #45326.
   4056 
   4057 	* src/sfnt/sfntpic.h (SFNT_SERVICES_GET): Remove duplicate
   4058 	definitions.
   4059 
   4060 2015-06-07  Werner Lemberg  <wl (a] gnu.org>
   4061 
   4062 	* Version 2.6 released.
   4063 	=======================
   4064 
   4065 
   4066 	Tag sources with `VER-2-6'.
   4067 
   4068 	* docs/VERSION.DLL: Update documentation and bump version number to
   4069 	2.6.
   4070 
   4071 	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
   4072 	builds/windows/vc2005/index.html,
   4073 	builds/windows/vc2008/freetype.vcproj,
   4074 	builds/windows/vc2008/index.html,
   4075 	builds/windows/vc2010/freetype.vcxproj,
   4076 	builds/windows/vc2010/index.html,
   4077 	builds/windows/visualc/freetype.dsp,
   4078 	builds/windows/visualc/freetype.vcproj,
   4079 	builds/windows/visualc/index.html,
   4080 	builds/windows/visualce/freetype.dsp,
   4081 	builds/windows/visualce/freetype.vcproj,
   4082 	builds/windows/visualce/index.html,
   4083 	builds/wince/vc2005-ce/freetype.vcproj,
   4084 	builds/wince/vc2005-ce/index.html,
   4085 	builds/wince/vc2008-ce/freetype.vcproj,
   4086 	builds/wince/vc2008-ce/index.html: s/2.5.5/2.6/, s/255/26/.
   4087 
   4088 	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 6.
   4089 	(FREETYPE_PATCH): Set to 0.
   4090 
   4091 	* builds/unix/configure.raw (version_info): Set to 18:0:12.
   4092 	* CMakeLists.txt (VERSION_MINOR): Set to 6.
   4093 	(VERSION_PATCH): Set to 0.
   4094 
   4095 	* src/autofit/afmodule.c [!FT_MAKE_OPTION_SINGLE_OBJECT]: Add
   4096 	declarations for dumping functions.
   4097 
   4098 	* src/truetype/ttinterp.c (TT_New_Context): Pacify compiler.
   4099 
   4100 	* builds/toplevel.mk: Use `freetype.mk's code to compute the version
   4101 	string.
   4102 	Don't include a zero patch level in version string.
   4103 	* builds/freetype.mk: Remove code for computing the version string.
   4104 
   4105 2015-06-06  Ashish Azad  <ashish.azad (a] samsung.com>
   4106 
   4107 	Fix Savannah bug #45260.
   4108 
   4109 	* src/pfr/pfrdrivr.c (pfr_get_kerning): Fix typo.
   4110 
   4111 2015-06-03  Werner Lemberg  <wl (a] gnu.org>
   4112 
   4113 	[truetype] Fix memory leak.
   4114 
   4115 	Problem reported by Grissiom <chaos.proton (a] gmail.com>; in
   4116 
   4117 	  https://lists.nongnu.org/archive/html/freetype/2015-05/msg00013.html
   4118 
   4119 	there is an example code to trigger the bug.
   4120 
   4121 	* src/truetype/ttobjs.c (tt_size_init_bytecode): Free old `size'
   4122 	data before allocating again.  Bug most probably introduced four
   4123 	years ago in version 2.4.3.
   4124 
   4125 2015-06-02  Werner Lemberg  <wl (a] gnu.org>
   4126 
   4127 	[raster] Add more tracing.
   4128 
   4129 	* src/raster/ftraster.c (FT_TRACE7) [_STANDALONE_]: Define.
   4130 	(Vertical_Sweep_Span, Vertical_Sweep_Drop, Horizontal_Sweep_Span,
   4131 	Horizontal_Sweep_Drop, Render_Glyph): Add tracing calls.
   4132 
   4133 2015-06-01  Werner Lemberg  <wl (a] gnu.org>
   4134 
   4135 	[truetype] While tracing opcodes, show code position and stack.
   4136 
   4137 	* src/truetype/ttinterp.c: Change all existing TRACE7 calls to
   4138 	TRACE6.
   4139 	(opcode_name): Add string lengths.
   4140 	(TT_RunIns): Implement display of code position and stack.
   4141 
   4142 2015-05-31  Werner Lemberg  <wl (a] gnu.org>
   4143 
   4144 	[truetype] In GX, make private point numbers work correctly.
   4145 
   4146 	This is completely missing in Apple's documentation: If a `gvar'
   4147 	tuple uses private point numbers (this is, deltas are specified for
   4148 	some points only), the uncovered points must be interpolated for
   4149 	this tuple similar to the IUP bytecode instruction.  Examples that
   4150 	need this functionality are glyphs `Oslash' and `Q' in Skia.ttf.
   4151 
   4152 	* src/truetype/ttgxvar.c (tt_delta_shift, tt_delta_interpolate,
   4153 	tt_handle_deltas): New functions.
   4154 	(TT_Vary_Get_Glyph_Deltas): Renamed to...
   4155 	(TT_Vary_Apply_Glyph_Deltas): ... this; it directly processes the
   4156 	points and does no longer return an array of deltas.
   4157 	Add tracing information.
   4158 	Call `tt_handle_deltas' to interpolate missing deltas.
   4159 	Also fix a minor memory leak in case of error.
   4160 
   4161 	* src/truetype/ttgxvar.h: Updated.
   4162 
   4163 	* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
   4164 	load_truetype_glyph): Updated.
   4165 
   4166 2015-05-31  Werner Lemberg  <wl (a] gnu.org>
   4167 
   4168 	[truetype] In GX, make intermediate tuplets work at extrema.
   4169 
   4170 	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix range condition.
   4171 
   4172 2015-05-31  Werner Lemberg  <wl (a] gnu.org>
   4173 
   4174 	[truetype] Add tracing information to GX code.
   4175 
   4176 	* src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar,
   4177 	ft_var_apply_tuple, TT_Get_MM_Var, TT_Set_MM_Blend,
   4178 	TT_Set_Var_Design, tt_face_vary_cvt): Do it.
   4179 
   4180 2015-05-28  Werner Lemberg  <wl (a] gnu.org>
   4181 
   4182 	* src/tools/apinames.c (names_dump): Fix invalid reference.
   4183 
   4184 	Problem reported by Guzman Mosqueda, Jose R
   4185 	<jose.r.guzman.mosqueda (a] intel.com>.
   4186 
   4187 2015-05-24  Werner Lemberg  <wl (a] gnu.org>
   4188 
   4189 	[truetype] Fix commit from 2015-05-22.
   4190 
   4191 	* src/truetype/ttgload.c, src/truetype/ttinterp.c: Guard new code
   4192 	with `TT_CONFIG_OPTION_SUBPIXEL_HINTING'.
   4193 
   4194 	Problem reported by Nikolaus Waxweiler <madigens (a] gmail.com>.
   4195 
   4196 2015-05-23  Werner Lemberg  <wl (a] gnu.org>
   4197 
   4198 	[truetype] Fix return values of GETINFO bytecode instruction.
   4199 
   4200 	* src/truetype/ttinterp.h (TT_ExecContextRec): New fields
   4201 	`vertical_lcd' and `gray_cleartype'.
   4202 
   4203 	* src/truetype/ttgload.c (tt_loader_init): Initialize new fields.
   4204 	Change `symmetrical smoothing' to TRUE, since FreeType produces
   4205 	exactly this.
   4206 
   4207 	* src/truetype/ttinterp.c (Ins_GETINFO): Fix selector/return bit
   4208 	values for symmetrical smoothing, namely 11/18.
   4209 	Handle bits for vertical LCD subpixels (8/15) and Gray ClearType
   4210 	(12/19).
   4211 
   4212 2015-05-23  Werner Lemberg  <wl (a] gnu.org>
   4213 
   4214 	[truetype] Minor.
   4215 
   4216 	* src/truetype/ttinterp.h (TT_ExecContext):
   4217 	 s/subpixel/subpixel_hinting.
   4218 
   4219 	* src/truetype/ttgload.c, src/truetype/ttgload.h: Updated.
   4220 
   4221 2015-05-22  Werner Lemberg  <wl (a] gnu.org>
   4222 
   4223 	[truetype] Support selector index 3 of the INSTCTRL instruction.
   4224 
   4225 	This flag activates `native ClearType hinting', disabling backward
   4226 	compatibility mode as described in Greg Hitchcocks whitepaper.  In
   4227 	other words, it enables unrestricted functionality of all TrueType
   4228 	instructions in ClearType.
   4229 
   4230 	* src/truetype/ttgload.c (tt_get_metrics): Call `sph_set_tweaks'
   4231 	unconditionally.
   4232 	(tt_loader_init): Unset `ignore_x_mode' flag if bit 2 of
   4233 	`GS.instruct_control' is active.
   4234 
   4235 	* src/truetype/ttinterp.c (Ins_INSTCTRL): Handle selector index 3.
   4236 	(Ins_GETINFO): Updated.
   4237 
   4238 	* docs/CHANGES: Document it.
   4239 
   4240 2015-05-20  Werner Lemberg  <wl (a] gnu.org>
   4241 
   4242 	[truetype] Minor.
   4243 
   4244 	* src/truetype/ttinterp.h (SetSuperRound): Fix type of `GridPeriod'
   4245 	argument.
   4246 
   4247 2015-05-17  Werner Lemberg  <wl (a] gnu.org>
   4248 
   4249 	[truetype] Fix loading of composite glyphs.
   4250 
   4251 	* src/truetype/ttgload.c (TT_Load_Composite_Glyph): If the
   4252 	ARGS_ARE_XY_VALUES flag is not set, handle argument values as
   4253 	unsigned.  I trust `ttx' (which has exactly such code) that it does
   4254 	the right thing here...
   4255 
   4256 	The reason that noone has ever noticed this bug is probably the fact
   4257 	that point-aligned subglyphs are rare, as are subglyphs with a
   4258 	number of points in the range [128;255], which is quite large (or
   4259 	even in the range [32768;65535], which is extremely unlikely).
   4260 
   4261 2015-05-12  Chris Liddell  <chris.liddell (a] artifex.com>
   4262 
   4263 	[cff] Make the `*curveto' operators more tolerant.
   4264 
   4265 	* src/cff/cf2intrp.c (cf2_interpT2CharString): The opcodes
   4266 	`vvcurveto', `hhcurveto', `vhcurveto', and `hvcurveto' all iterate,
   4267 	pulling values off the stack until the stack is exhausted.
   4268 	Implicitly the stack must be a multiple (or for subtly different
   4269 	behaviour) a multiple plus a specific number of extra values deep.
   4270 	If that's not the case, enforce it (as the old code did).
   4271 
   4272 2015-05-12  Chris Liddell  <chris.liddell (a] artifex.com>
   4273 
   4274 	[cff] fix incremental interface with new cff code.
   4275 
   4276 	* src/cff/cf2ft.c (cf2_getSeacComponent): When using the incremental
   4277 	interface to retrieve glyph data for a SEAC, it be left to the
   4278 	incremental interface callback to apply the encoding to raw
   4279 	character index (as it was in the previous code).
   4280 
   4281 2015-04-29  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4282 
   4283 	[autofit] Speed up IUP.
   4284 
   4285 	* src/autofit/afhints.c (af_iup_interp): Separate trivial snapping to
   4286 	the same position from true interpolation, use `scale' to reduce
   4287 	divisions.
   4288 
   4289 2015-04-28  Werner Lemberg  <wl (a] gnu.org>
   4290 
   4291 	[cff] Use `name' table for PS name if we have a SFNT-CFF.
   4292 
   4293 	This follows the OpenType 1.7 specification.  See
   4294 
   4295 	  https://tug.org/pipermail/tex-live/2015-April/036634.html
   4296 
   4297 	for a discussion.
   4298 
   4299 	* src/cff/cffdrivr.c (cff_get_ps_name): Use the `sfnt' service if we
   4300 	have an SFNT.
   4301 
   4302 2015-04-27  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4303 
   4304 	[truetype] Speed up IUP.
   4305 
   4306 	* src/truetype/ttinterp.c (_iup_worker_interpolate): Separate trivial
   4307 	snapping to the same position from true interpolation.
   4308 
   4309 2015-04-21  Werner Lemberg  <wl (a] gnu.org>
   4310 
   4311 	[autofit] By default, enable warping code but switch off warping.
   4312 
   4313 	Suggested by Behdad.
   4314 
   4315 	* include/config/ftoption.h: Define AF_CONFIG_OPTION_USE_WARPER.
   4316 
   4317 	* src/autofit/afmodule.c (af_autofitter_init): Initialize `warping'
   4318 	with `false'.
   4319 
   4320 2015-04-21  Werner Lemberg  <wl (a] gnu.org>
   4321 
   4322 	* docs/CHANGES: Updated.
   4323 
   4324 2015-04-21  Werner Lemberg  <wl (a] gnu.org>
   4325 
   4326 	[autofit] Introduce `warping' property.
   4327 
   4328 	This code replaces the debugging hook from the previous commit with
   4329 	a better, more generic solution.
   4330 
   4331 	* include/ftautoh.h: Document it.
   4332 
   4333 	* src/autofit/afmodule.h (AF_ModuleRec)
   4334 	[AF_CONFIG_OPTION_USE_WARPER]: Add `warping' field.
   4335 
   4336 	* src/autofit/afmodule.c (_af_debug_disable_warper): Remove.
   4337 	(af_property_set, af_property_get, af_autofitter_init)
   4338 	[AF_CONFIG_OPTION_USE_WARPER]: Handle `warping' option.
   4339 
   4340 	* src/autofit/afhints.h (AF_HINTS_DO_WARP): Remove use of the no
   4341 	longer existing `_af_debug_disable_warper'.
   4342 
   4343 	* src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c
   4344 	(af_latin_hints_init), src/autofit/aflatin2.c (af_latin2_hints_init)
   4345 	[AF_CONFIG_OPTION_USE_WARPER]: Add `AF_SCALER_FLAG_NO_WARPER' to the
   4346 	scaler flags if warping is off.
   4347 
   4348 	* src/autofit/aftypes.h: Updated.
   4349 
   4350 2015-04-16  Werner Lemberg  <wl (a] gnu.org>
   4351 
   4352 	[autofit] Add debugging hook to disable warper.
   4353 
   4354 	* src/autofit/afmodule.c (_af_debug_disable_warper)
   4355 	[FT_DEBUG_AUTOFIT]: New global variable.
   4356 
   4357 	* src/autofit/aftypes.h: Updated.
   4358 	(AF_SCALER_FLAG_NO_WARPER): New macro (not actively used yet).
   4359 
   4360 	* src/autofit/afhints.h (AF_HINTS_DO_WARP): New macro.
   4361 
   4362 	* src/autofit/aflatin.c (af_latin_hints_apply)
   4363 	[AF_CONFIG_OPTION_USE_WARPER]: Use `AF_HINTS_DO_WARP' to control use
   4364 	of warper.
   4365 
   4366 	* src/autofit/afcjk.c (af_cjk_hints_init, af_cjk_hints_apply)
   4367 	[AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.
   4368 
   4369 	* src/autofit/aflatin2.c (af_latin2_hints_apply)
   4370 	[AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.
   4371 
   4372 2015-04-10  Werner Lemberg  <wl (a] gnu.org>
   4373 
   4374 	[cff] Update advance width handling to OpenType 1.7.
   4375 
   4376 	Problem reported by Behdad.
   4377 
   4378 	* src/cff/cffdrivr.c (cff_get_advances): Handle SFNT case
   4379 	separately.
   4380 
   4381 	* src/cff/cffgload.c (cff_slot_load): Use advance width and side
   4382 	bearing values from `hmtx' table if present.
   4383 
   4384 2015-04-03  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4385 
   4386 	* src/autofit/afhints.c (af_glyph_hints_reload): Use do-while loop.
   4387 
   4388 2015-04-02  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4389 
   4390 	* src/autofit/aflatin.c (af_latin_hint_edges): Reduce logic.
   4391 
   4392 2015-04-01  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4393 
   4394 	[autofit] Finish the thought.
   4395 
   4396 	* src/autofit/afhints.c (af_direction_compute): make sure the long arm
   4397 	is never negative so that its `FT_ABS' is not necessary.
   4398 
   4399 2015-04-01  Werner Lemberg  <wl (a] gnu.org>
   4400 
   4401 	[autofit] Call dumper functions for tracing.
   4402 
   4403 	* src/autofit/afcjk.c (af_cjk_hints_apply): Remove dead code.
   4404 	* src/autofit/afhints.c (af_glyph_hints_dump_points): Minor
   4405 	improvement.
   4406 	* src/autofit/afmodule.c (af_autofitter_load_glyph): Implement it.
   4407 
   4408 2015-04-01  Werner Lemberg  <wl (a] gnu.org>
   4409 
   4410 	[autofit] Make debugging stuff work again.
   4411 
   4412 	The interface to ftgrid was broken in the series of commits starting
   4413 	with
   4414 
   4415 	  [autofit] Allocate AF_Loader on the stack instead of AF_Module.
   4416 
   4417 	from 2015-01-14.
   4418 
   4419 	* src/autofit/afmodule.c (_af_debug_hints_rec) [FT_DEBUG_AUTOFIT]:
   4420 	Use a global AF_GlyphHintsRec object for debugging.
   4421 	(af_autofitter_done, af_autofitter_load_glyph): Updated.
   4422 
   4423 	* src/autofit/afloader.c (af_loader_init, af_loader_done): Updated.
   4424 
   4425 2015-04-01  Werner Lemberg  <wl (a] gnu.org>
   4426 
   4427 	* src/autofit/afhints.c (af_glyph_hints_done): Fix minor thinko.
   4428 
   4429 2015-03-29  Werner Lemberg  <wl (a] gnu.org>
   4430 
   4431 	[cff] Fix Savannah bug #44629.
   4432 
   4433 	* src/cff/cf2font.h (CF2_MAX_SUBR), src/cff/cffgload.h
   4434 	(CFF_MAX_SUBRS_CALLS): Set to 16.
   4435 
   4436 2015-03-29  Werner Lemberg  <wl (a] gnu.org>
   4437 
   4438 	[type1, truetype] Make the MM API more flexible w.r.t. `num_coords'.
   4439 
   4440 	This commit allows `num_coords' to be larger or smaller than the
   4441 	number of available axes while selecting a design instance, either
   4442 	ignoring excess data or using defaults if data is missing.
   4443 
   4444 	* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
   4445 	Implement it.
   4446 
   4447 	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design,
   4448 	T1_Set_Var_Design): Ditto.
   4449 
   4450 2015-03-29  Werner Lemberg  <wl (a] gnu.org>
   4451 
   4452 	[type1] Minor.
   4453 
   4454 	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Use
   4455 	FT_THROW.
   4456 	(T1_Set_Var_Design): Use T1_MAX_MM_AXIS and FT_THROW.
   4457 
   4458 2015-03-27  Werner Lemberg  <wl (a] gnu.org>
   4459 
   4460 	[cff] Trace charstring nesting levels.
   4461 
   4462 	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLGSUBR,
   4463 	cf2_cmdCALLSUBR, cf2_cmdRETURN>: Implement it.
   4464 
   4465 	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
   4466 	<cff_op_callsubr, cff_op_callgsubr, cff_op_return>: Ditto.
   4467 
   4468 2015-03-21  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4469 
   4470 	[base] Optimize `FT_Angle_Diff'.
   4471 
   4472 	Under normal circumstances we are usually close to the desired range
   4473 	of angle values, so that the remainder is not really necessary.
   4474 
   4475 	* src/base/fttrigon.c (FT_Angle_Diff): Use loops instead of remainder.
   4476 
   4477 	* src/autofit/aftypes.h (AF_ANGLE_DIFF): Ditto in the unused macro.
   4478 
   4479 2015-03-21  Werner Lemberg  <wl (a] gnu.org>
   4480 
   4481 	[truetype] Improve `gvar' handling.
   4482 
   4483 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Correctly handle
   4484 	single-element runs.  Cf. glyph `Q' in Skia.ttf with weights larger
   4485 	than the default.
   4486 
   4487 2015-03-20  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4488 
   4489 	* src/base/fttrigon.c (FT_Vector_Rotate): Minor refactoring.
   4490 
   4491 2015-03-17  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4492 
   4493 	Fix Savannah bug #44412 (part 2).
   4494 
   4495 	* src/base/fttrigon.c (FT_Sin, FT_Cos, FT_Tan): Call `FT_Vector_Unit'.
   4496 
   4497 2015-03-11  Werner Lemberg  <wl (a] gnu.org>
   4498 
   4499 	[autofit] Add support for Arabic script.
   4500 
   4501 	Thanks to Titus Nemeth <tn (a] tntypography.eu> for guidance!
   4502 
   4503 	* src/autofit/afblue.dat: Add blue zone data for Arabic.
   4504 
   4505 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   4506 
   4507 	* src/autofit/afscript.h: Add Arabic standard characters.
   4508 
   4509 	* src/autofit/afranges.c: Add Arabic data.
   4510 
   4511 	* src/autofit/afstyles.h: Add Arabic data.
   4512 
   4513 	* docs/CHANGES: Document it.
   4514 
   4515 2015-03-11  Werner Lemberg  <wl (a] gnu.org>
   4516 
   4517 	Rename `svxf86nm.h' to `svfntfmt.h'; update related symbols.
   4518 
   4519 	* include/internal/ftserv.h (FT_SERVICE_XFREE86_NAME_H): Renamed
   4520 	to...
   4521 	(FT_SERVICE_FONT_FORMAT_H): This.
   4522 
   4523 	* include/internal/services/svfntfmt.h (FT_XF86_FORMAT_*): Renamed
   4524 	to ...
   4525 	(FT_FONT_FORMAT_*): This.
   4526 
   4527 	src/base/ftfntfmt.c, src/bdf/bdfdrivr.c, src/cff/cffdrivr.c,
   4528 	src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c,
   4529 	src/truetype/ttdriver.c, src/type1/t1driver.c,
   4530 	src/type42/t42drivr.c, src/winfonts/winfnt.c: Updated.
   4531 
   4532 2015-03-11  Werner Lemberg  <wl (a] gnu.org>
   4533 
   4534 	[base] Rename `FT_XFREE86_H' to `FT_FONT_FORMATS_H'.
   4535 
   4536 	* include/config/ftheader.h: Implement it.
   4537 	* src/base/ftfntfmt.c, docs/CHANGES: Updated.
   4538 
   4539 2015-03-11  Werner Lemberg  <wl (a] gnu.org>
   4540 
   4541 	[base] Rename `FT_Get_X11_Font_Format' to `FT_Get_Font_Format'.
   4542 
   4543 	* include/ftfntfmt.h, src/base/ftfntfmt.c: Implement it.
   4544 
   4545 	* docs/CHANGES: Updated.
   4546 
   4547 2015-03-11  Werner Lemberg  <wl (a] gnu.org>
   4548 
   4549 	Fix automatic copyright updating.
   4550 
   4551 	* src/tools/update-copyright: Make scanning of `no-copyright'
   4552 	actually work.
   4553 
   4554 	* src/tools/no-copyright: Don't include README in general.
   4555 
   4556 2015-03-11  Werner Lemberg  <wl (a] gnu.org>
   4557 
   4558 	Rename `ftxf86.[ch]' to `ftfntfmt.[ch]'.
   4559 
   4560 	CMakeLists.txt, builds/amiga/makefile, builds/amiga/makefile.os4,
   4561 	builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
   4562 	builds/mac/FreeType.m68k_far.make.txt,
   4563 	builds/mac/FreeType.ppc_carbon.make.txt,
   4564 	builds/mac/FreeType.ppc_classic.make.txt, builds/symbian/bld.inf,
   4565 	builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
   4566 	builds/wince/vc2008-ce/freetype.vcproj,
   4567 	builds/windows/vc2005/freetype.vcproj,
   4568 	builds/windows/vc2008/freetype.vcproj,
   4569 	builds/windows/vc2010/freetype.vcxproj,
   4570 	builds/windows/vc2010/freetype.vcxproj.filters,
   4571 	builds/windows/visualc/freetype.dsp,
   4572 	builds/windows/visualc/freetype.vcproj,
   4573 	builds/windows/visualce/freetype.dsp,
   4574 	builds/windows/visualce/freetype.vcproj, docs/INSTALL.ANY,
   4575 	include/config/ftheader.h, include/ftfntfmt.h, modules.cfg,
   4576 	src/base/ftfntfmt.c, vms_make.com: Updated.
   4577 
   4578 2015-03-10  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4579 
   4580 	Fix Savannah bug #44412 (part 1).
   4581 
   4582 	* src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns.
   4583 
   4584 2015-03-10  Werner Lemberg  <wl (a] gnu.org>
   4585 
   4586 	[base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'.
   4587 
   4588 	* include/ftbitmap.h, src/base/ftbitmap.c: Implement it.
   4589 	Update all callers.
   4590 
   4591 	* docs/CHANGES: Updated.
   4592 
   4593 2015-03-06  Werner Lemberg  <wl (a] gnu.org>
   4594 
   4595 	* src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
   4596 
   4597 	Found by Alexei.
   4598 
   4599 2015-03-05  Alexei Podtelezhnikov  <apodtele (a] gmail.com>
   4600 
   4601 	* src/base/ftstroke.c: Simplify.
   4602 
   4603 2015-03-04  Werner Lemberg  <wl (a] gnu.org>
   4604 
   4605 	[truetype] Some fixes and code refactoring in `ttgxvar.c'.
   4606 
   4607 	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix return value
   4608 	of `point_cnt' if two bytes are read.
   4609 	Use a more vertical coding style.
   4610 	(ft_var_readpackeddeltas): Use FT_UInt for `delta_cnt' parameter.
   4611 	Use a more vertical coding style.
   4612 
   4613 2015-03-03  Werner Lemberg  <wl (a] gnu.org>
   4614 
   4615 	[autofit] Fix Savannah bug #44241.
   4616 
   4617 	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Reject glyphs
   4618 	with less than 3 points.
   4619 
   4620 2015-03-02  Werner Lemberg  <wl (a] gnu.org>
   4621 
   4622 	Simplify `TYPEOF' macro.
   4623 
   4624 	No need for two arguments.
   4625 
   4626 	* include/config/ftconfig.h, builds/unix/ftconfig.in,
   4627 	builds/vms/ftconfig.h (TYPEOF): Updated.
   4628 
   4629 	* include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
   4630 	src/autofit/afwarp.h (AF_WARPER_FLOOR): Updated.
   4631 
   4632 2015-03-01  Werner Lemberg  <wl (a] gnu.org>
   4633 
   4634 	Various compiler warning fixes for `make multi'.
   4635 
   4636 	* src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges),
   4637 	src/autofit/aflatin.c (af_latin_hint_compute_blue_edges,
   4638 	af_latin_hint_edges), src/autofit/aflatin2.c
   4639 	(af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare
   4640 	as `static'.
   4641 
   4642 	* src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH):
   4643 	Removed.  Unused.
   4644 	* src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H.
   4645 	* src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed.  Unused.
   4646 
   4647 	* src/cff/cf2intrp.c: Include `cf2intrp.h'.
   4648 	* src/cff/cffdrivr.c (PAIR_TAG): Removed.  Unused.
   4649 
   4650 	* src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed.  Unused.
   4651 
   4652 	* src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'.
   4653 
   4654 	* src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX):
   4655 	Removed.  Unused.
   4656 
   4657 	* src/raster/ftraster.c (Render_Glyph): Declare as `static'.
   4658 
   4659 	* src/sfnt/ttpost.c (load_format_20): Fix signedness warning.
   4660 
   4661 	* src/truetype/ttdriver.c (PAIR_TAG): Removed.  Unused.
   4662 	* src/truetype/ttsubpix.c (is_member_of_family_class,
   4663 	is_member_of_style_class): Declare as `static'.
   4664 
   4665 	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare
   4666 	as `static'.
   4667 	* src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as
   4668 	`static'.
   4669 	(T1_FIELD_COUNT): Removed.  Unused.
   4670 	* src/type1/t1parse.h (T1_Done_Table): Removed.  Unused.
   4671 
   4672 	* src/type42/t42parse.c (T1_Done_Table): Removed.  Unused.
   4673 
   4674 2015-02-25  Werner Lemberg  <wl (a] gnu.org>
   4675 
   4676 	[psaux] Signedness fixes.
   4677 
   4678 	* include/internal/psaux.h, src/psaux/afmparse.c,
   4679 	src/psaux/afmparse.h, src/psaux/psconv.c, src/psaux/psobjs.c,
   4680 	src/psaux/t1cmap.c, src/psaux/t1decode.c: Apply.
   4681 
   4682 2015-02-25  Werner Lemberg  <wl (a] gnu.org>
   4683 
   4684 	[otvalid] Signedness fixes.
   4685 
   4686 	* src/otvalid/otvcommn.c, src/otvalid/otvgdef.c,
   4687 	src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvmath.c:
   4688 	Apply.
   4689 
   4690 2015-02-25  Werner Lemberg  <wl (a] gnu.org>
   4691 
   4692 	* src/bzip2/ftbzip2.c (ft_bzip2_alloc): Signedness fix.
   4693 
   4694 2015-02-25  Werner Lemberg  <wl (a] gnu.org>
   4695 
   4696 	[lzw] Signedness fixes.
   4697 
   4698 	* src/lzw/ftzopen.c, src/lzw/ftzopen.h: Apply.
   4699 
   4700 2015-02-25  Werner Lemberg  <wl (a] gnu.org>
   4701 
   4702 	[gxvalid] Signedness fixes.
   4703 
   4704 	* src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
   4705 	src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
   4706 	src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
   4707 	src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
   4708 	src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
   4709 	src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
   4710 	src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.
   4711 
   4712 2015-02-25  Werner Lemberg  <wl (a] gnu.org>
   4713 
   4714 	[cache] Signedness fixes.
   4715 
   4716 	* src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c,
   4717 	src/cache/ftcmanag.c, src/cache/ftcsbits.c: Apply.
   4718 
   4719 2015-02-25  Werner Lemberg  <wl (a] gnu.org>
   4720 
   4721 	Change dimension fields in `FTC_ImageTypeRec' to unsigned type.
   4722 
   4723 	This doesn't break ABI.
   4724 
   4725 	* include/ftcache.h (FTC_ImageTypeRec): Use unsigned types for
   4726 	`width' and `height'.
   4727 
   4728 	* docs/CHANGES: Document it.
   4729 
   4730 2015-02-25  Werner Lemberg  <wl (a] gnu.org>
   4731 
   4732 	[cache] Don't use `labs'.
   4733 
   4734 	This is the only place in FreeType where this function was used.
   4735 
   4736 	* include/config/ftstdlib.h (ft_labs): Remove.
   4737 
   4738 	* src/cache/ftcimage.c (ftc_inode_weight): Replace `ft_labs' with
   4739 	`FT_ABS'.
   4740 
   4741 2015-02-23  Werner Lemberg  <wl (a] gnu.org>
   4742 
   4743 	[cache] Replace `FT_PtrDist' with `FT_Offset'.
   4744 
   4745 	* src/cache/ftccache.h (FTC_NodeRec): `FT_Offset' (a.k.a. `size_t')
   4746 	is a better choice for `hash' to hold a pointer than `FT_PtrDist'
   4747 	(a.k.a. `ptrdiff_t'), especially since the latter is signed,
   4748 	causing zillions of signedness warnings.  [Note that `hash' was of
   4749 	type `FT_UInt32' before the change to `FT_PtrDist'.]
   4750 	Update all users.
   4751 
   4752 	* src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c,
   4753 	src/cache/ftcglyph.c, src/cache/ftcglyph.h: Updated.
   4754 
   4755 2015-02-23  Werner Lemberg  <wl (a] gnu.org>
   4756 
   4757 	[smooth, raster] Re-enable standalone compilation.
   4758 
   4759 	* src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX)
   4760 	[_STANDALONE_]: Define macros.
   4761 
   4762 	* src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS,
   4763 	FT_HYPOT) [_STANDALONE_]: Define macros.
   4764 
   4765 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4766 
   4767 	[smooth] Signedness fixes.
   4768 
   4769 	* src/smooth/ftgrays.c, src/smooth/ftsmooth.c: Apply.
   4770 
   4771 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4772 
   4773 	* src/raster/ftraster.c: Use the file's typedefs everywhere.
   4774 
   4775 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4776 
   4777 	* src/sfnt/ttpost.c (load_format_20): Fix error tracing message.
   4778 
   4779 	Bug introduced 6 commits earlier.
   4780 
   4781 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4782 
   4783 	[pshinter] Fix thinko.
   4784 
   4785 	* src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Correctly
   4786 	check `count'.
   4787 	Bug introduced two commits earlier.
   4788 
   4789 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4790 
   4791 	[raster] Signedness fixes.
   4792 
   4793 	* src/raster/ftraster.c, src/raster/ftrend1.c: Apply.
   4794 
   4795 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4796 
   4797 	[pshinter] Signedness fixes.
   4798 
   4799 	* src/pshinter/pshalgo.c, src/pshinter/pshglob.c,
   4800 	src/pshinter/pshrec.c: Apply.
   4801 
   4802 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4803 
   4804 	[pshinter] Use macros for (unsigned) flags, not enumerations.
   4805 
   4806 	* src/pshinter/pshalgo.h (PSH_Hint_Flags): Replace with macros.
   4807 	Updated.
   4808 	* src/pshinter/pshrec.h (PS_Hint_Flags): Replace with macros.
   4809 
   4810 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4811 
   4812 	* src/pshinter/pshrec.c: Simplify.
   4813 	(ps_hints_open, ps_hints_stem): Remove switch statement.
   4814 
   4815 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4816 
   4817 	[sfnt] Signedness fixes.
   4818 
   4819 	* src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c,
   4820 	src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
   4821 	src/sfnt/ttsbit.c: Apply.
   4822 	* src/sfnt/sfdriver.c: Apply.
   4823 	(sfnt_get_ps_name): Simplify.
   4824 
   4825 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4826 
   4827 	[bdf] Signedness fixes.
   4828 
   4829 	* src/bdf/bdf.h, src/bdf/bdfdrivr.c, src/bdf/bdfdrivr.h,
   4830 	src/bdf/bdflib.c: Apply.
   4831 
   4832 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4833 
   4834 	* src/bdf/bdflib.c (_bdf_atous): New function.
   4835 	(_bdf_parse_glyphs, _bdf_parse_start): Use it.
   4836 
   4837 2015-02-22  Werner Lemberg  <wl (a] gnu.org>
   4838 
   4839 	[pcf] Signedness fixes.
   4840 
   4841 	* src/pcf/pcf.h, src/pcf/pcfdrivr.c: Apply.
   4842 	* src/pcf/pcfread.c: Apply.
   4843 	(pcf_get_encodings): Ignore invalid negative encoding offsets.
   4844 
   4845 2015-02-21  Werner Lemberg  <wl (a] gnu.org>
   4846 
   4847 	* src/winfonts/winfnt.c: Signedness fixes.
   4848 
   4849 2015-02-21  Werner Lemberg  <wl (a] gnu.org>
   4850 
   4851 	[type42] Signedness fixes.
   4852 
   4853 	* src/type42/t42parse.c, src/type42/t42parse.h,
   4854 	src/type42/t42types.h: Apply.
   4855 
   4856 2015-02-21  Werner Lemberg  <wl (a] gnu.org>
   4857 
   4858 	[pfr] Signedness fixes.
   4859 
   4860 	* src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c,
   4861 	src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c,
   4862 	src/pfr/pfrtypes.h: Apply.
   4863 
   4864 2015-02-21  Werner Lemberg  <wl (a] gnu.org>
   4865 
   4866 	[cff] Minor signedness fixes related to last commit.
   4867 
   4868 	* src/cff/cf2ft.c, src/cff/cf2intrp.c, src/cff/cffgload.c: Apply.
   4869 
   4870 2015-02-20  Werner Lemberg  <wl (a] gnu.org>
   4871 
   4872 	[cff] Thinkos in bias handling.
   4873 
   4874 	Only the final result is always positive.
   4875 
   4876 	Bug introduced three commits earlier.
   4877 
   4878 	* src/cff/cffgload.c, src/cff/cffgload.h: Apply.
   4879 
   4880 2015-02-20  Werner Lemberg  <wl (a] gnu.org>
   4881 
   4882 	[cid] Fix signedness issues and emit some better error codes.
   4883 
   4884 	* src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c,
   4885 	src/cid/cidparse.h: Apply.
   4886 	* src/cid/cidload.c: Apply.
   4887 	(parse_fd_array): Reject negative values for number of dictionaries.
   4888 	* src/cid/cidparse.c: Apply.
   4889 	(cid_parser_new): Reject negative values for hex data length.
   4890 
   4891 2015-02-20  Werner Lemberg  <wl (a] gnu.org>
   4892 
   4893 	[cff] Signedness fixes for new engine.
   4894 
   4895 	* src/cff/cf2arrst.c, src/cff/cf2fixed.h, src/cff/cf2ft.c,
   4896 	src/cff/cf2ft.h, src/cff/cf2hints.c, src/cff/cf2intrp.c: Apply.
   4897 
   4898 2015-02-20  Werner Lemberg  <wl (a] gnu.org>
   4899 
   4900 	[cff] Signedness fixes for basic infrastructure and old engine.
   4901 
   4902 	* include/internal/pshints.h, src/cff/cffdrivr.c,
   4903 	src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffload.c,
   4904 	src/cff/cffobjs.c, src/cff/cffparse.c, src/pshinter/pshrec.c: Apply.
   4905 
   4906 2015-02-19  Werner Lemberg  <wl (a] gnu.org>
   4907 
   4908 	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Ignore `countSizePairs'.
   4909 
   4910 	This is hard-coded to value 2 in `fvar' version 1.0 (and no newer
   4911 	version exists), but some fonts set it incorrectly.
   4912 
   4913 	Problem reported by Adam Twardoch <adam (a] fontlab.com>.
   4914 
   4915 2015-02-19  Werner Lemberg  <wl (a] gnu.org>
   4916 
   4917 	[cff] Emit better error code for invalid private dict size.
   4918 
   4919 	* src/cff/cffparse.c (cff_parse_private_dict): Reject negative
   4920 	values for size and offset.
   4921 
   4922 2015-02-19  Werner Lemberg  <wl (a] gnu.org>
   4923 
   4924 	[autofit] Fix signedness issues.
   4925 
   4926 	* src/autofit/afangles.c, src/autofit/afcjk.c,
   4927 	src/autofit/afglobal.c, src/autofit/afhints.c,
   4928 	src/autofit/aflatin.c, src/autofit/aflatin2.c, src/autofit/afwarp.c,
   4929 	src/autofit/hbshim.c: Apply.
   4930 
   4931 2015-02-19  Werner Lemberg  <wl (a] gnu.org>
   4932 
   4933 	[autofit] Use macros for (unsigned) flags, not enumerations.
   4934 
   4935 	This harmonizes with other code in FreeType (and reduces the number
   4936 	of necessary casts to avoid compiler warnings).
   4937 
   4938 	* src/autofit/afblue.hin: Make flag macros unsigned.
   4939 	* src/autofit/afblue.h: Regenerated.
   4940 
   4941 	* src/autofit/afcjk.h: Replace flag enumeration with macros.
   4942 	* src/autofit/afcjk.c: Updated.
   4943 
   4944 	* src/autofit/afhints.h (AF_Flags, AF_Edge_Flags): Replace with
   4945 	macros.
   4946 	* src/autofit/afhints.c: Updated.
   4947 
   4948 	* src/autofit/aflatin.h: Replace flag enumerations with macros.
   4949 	* src/autofit/aflatin.c, src/autofit/aflatin2.c: Updated.
   4950 
   4951 	* src/autofit/aftypes.h (AF_ScalerFlags): Replace with macros.
   4952 
   4953 2015-02-18  Werner Lemberg  <wl (a] gnu.org>
   4954 
   4955 	[type1] Fix signedness issues.
   4956 
   4957 	* include/internal/psaux.h, include/internal/t1types.h,
   4958 	src/psaux/psobjs.c, src/psaux/psobjs.h, src/psaux/t1decode.c,
   4959 	src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1parse.c: Apply.
   4960 
   4961 2015-02-18  Werner Lemberg  <wl (a] gnu.org>
   4962 
   4963 	[psaux, type1] Fix minor AFM issues.
   4964 
   4965 	* include/internal/t1types.h (AFM_KernPairRec): Make indices
   4966 	unsigned.
   4967 	Update users.
   4968 	(AFM_FontInfoRec): Make element counters unsigned.
   4969 	Update users.
   4970 	* src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned
   4971 	int.
   4972 
   4973 	* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
   4974 	Reject negative values for number of kerning elements.
   4975 
   4976 	* src/type1/t1afm.c, src/tools/test_afm.c: Updated.
   4977 
   4978 2015-02-18  Werner Lemberg  <wl (a] gnu.org>
   4979 
   4980 	Don't use `FT_PtrDist' for lengths.
   4981 
   4982 	Use FT_UInt instead.
   4983 
   4984 	* include/internal/psaux.h (PS_Table_FuncsRec, PS_TableRec,
   4985 	T1_DecoderRec): Do it.
   4986 
   4987 	* include/internal/t1types.h (T1_FontRec): Ditto.
   4988 
   4989 	* src/cid/cidload.c (cid_parse_dict): Updated.
   4990 	* src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto.
   4991 	* src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto.
   4992 	* src/type1/t1load.c (parse_blend_axis_types, parse_encoding,
   4993 	parse_charstrings, parse_dict): Ditto.
   4994 	* src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings,
   4995 	t42_parse_dict): Ditto.
   4996 
   4997 2015-02-18  Werner Lemberg  <wl (a] gnu.org>
   4998 
   4999 	* src/type1/t1driver.c (t1_ps_get_font_value): Clean up.
   5000 	This handles negative values better, avoiding many casts.
   5001 
   5002 2015-02-17  Werner Lemberg  <wl (a] gnu.org>
   5003 
   5004 	[base] Fix Savannah bug #44284.
   5005 
   5006 	* src/base/ftcalc.c (FT_MulFix): Typos.
   5007 
   5008 2015-02-17  Werner Lemberg  <wl (a] gnu.org>
   5009 
   5010 	[truetype] Finish compiler warning fixes for signedness issues.
   5011 
   5012 	* src/truetype/ttgxvar.c, src/truetype/ttsubpix.c,
   5013 	src/truetype/ttsubpix.h: Apply.
   5014 
   5015 2015-02-17  Werner Lemberg  <wl (a] gnu.org>
   5016 
   5017 	* src/truetype/ttsubpix.c: Adding missing `static' keywords.
   5018 
   5019 2015-02-17  Werner Lemberg  <wl (a] gnu.org>
   5020 
   5021 	[truetype] More signedness fixes.
   5022 
   5023 	* include/internal/tttypes.h, src/truetype/ttinterp.h,
   5024 	src/truetype/ttobjs.h, src/truetype/ttinterp.c,
   5025 	src/truetype/ttobjs.c: Apply.
   5026 
   5027 2015-02-17  Werner Lemberg  <wl (a] gnu.org>
   5028 
   5029 	[truetype] Various signedness fixes.
   5030 
   5031 	* include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply.
   5032 
   5033 	* src/truetype/ttgload.c: Apply.
   5034 	(TT_Get_VMetrics): Protect against invalid ascenders and descenders
   5035 	while constructing advance height.
   5036 
   5037 2015-02-16  Werner Lemberg  <wl (a] gnu.org>
   5038 
   5039 	[base] Finish compiler warning fixes for signedness issues.
   5040 
   5041 	* src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c:
   5042 	Apply.
   5043 
   5044 2015-02-16  Werner Lemberg  <wl (a] gnu.org>
   5045 
   5046 	* include/tttables.h (TT_OS2): `fsType' must be FT_UShort.
   5047 
   5048 2015-02-16  Werner Lemberg  <wl (a] gnu.org>
   5049 
   5050 	More minor signedness warning fixes.
   5051 
   5052 	* src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c,
   5053 	src/base/ftutil.c: Apply.
   5054 
   5055 2015-02-16  Werner Lemberg  <wl (a] gnu.org>
   5056 
   5057 	Next round of minor compiler warning fixes.
   5058 
   5059 	* include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member
   5060 	type to `FT_Long'.
   5061 	(CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword.
   5062 
   5063 	* include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.
   5064 
   5065 	* src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
   5066 	Signedness fixes.
   5067 
   5068 2015-02-16  Werner Lemberg  <wl (a] gnu.org>
   5069 
   5070 	Various minor signedness fixes.
   5071 
   5072 	* include/ftadvanc.h, include/internal/ftobjs.h,
   5073 	src/base/ftgloadr.c, src/base/ftobjs.c: Apply.
   5074 
   5075 2015-02-16  Werner Lemberg  <wl (a] gnu.org>
   5076 
   5077 	New `TYPEOF' macro.
   5078 
   5079 	This helps suppress signedness warnings, avoiding issues with
   5080 	implicit conversion changes.
   5081 
   5082 	* include/config/ftconfig.h, builds/unix/ftconfig.in,
   5083 	builds/vms/ftconfig.h (TYPEOF): Define.
   5084 
   5085 	* include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
   5086 	src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it.
   5087 
   5088 2015-02-16  Werner Lemberg  <wl (a] gnu.org>
   5089 
   5090 	* src/base/ftsystem.c: Use casts in standard C function wrappers.
   5091 	(ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it.
   5092 
   5093 2015-02-16  Werner Lemberg  <wl (a] gnu.org>
   5094 
   5095 	Fix Savannah bug #44261.
   5096 
   5097 	* builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the
   5098 	environment also while calling the configure script.
   5099 
   5100 2015-02-16  Werner Lemberg  <wl (a] gnu.org>
   5101 
   5102 	* include/internal/ftmemory.h: Add some `FT_Offset' casts.
   5103 	(FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY,
   5104 	FT_MEM_MOVE): Do it.
   5105 
   5106 2015-02-15  Werner Lemberg  <wl (a] gnu.org>
   5107 
   5108 	[base] Clean up signedness issues in `ftdbgmem.c'.
   5109 
   5110 	Also fix other minor issues.
   5111 
   5112 	* src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types
   5113 	with FT_Long for consistency.
   5114 	(ft_mem_primes): Change type to `FT_Int'.
   5115 	(ft_mem_closest_prime, ft_mem_table_set): Updated.
   5116 
   5117 	(ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free,
   5118 	ft_mem_debug_realloc): Use `static' keyword and fix signedness
   5119 	warnings where necessary.
   5120 
   5121 	(ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy,
   5122 	ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types
   5123 	and add or remove casts to avoid signedness warnings.
   5124 
   5125 2015-02-15  Werner Lemberg  <wl (a] gnu.org>
   5126 
   5127 	[base] Clean up signedness in arithmetic functions.
   5128 
   5129 	This makes the code more readable and reduces compiler warnings.
   5130 
   5131 	* src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix,
   5132 	FT_DivFix): Convert input parameters to unsigned, do the
   5133 	computation, then convert the result back to signed.
   5134 	(ft_corner_orientation): Fix casts.
   5135 
   5136 2015-02-07  Werner Lemberg  <wl (a] gnu.org>
   5137 
   5138 	[sfnt] Fix Savannah bug #44184.
   5139 
   5140 	* src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No
   5141 	longer reject `htmx' and `vmtx' tables with invalid length but
   5142 	sanitize them.
   5143 
   5144 2015-02-06  Jon Anderson  <jon (a] websupergoo.com>
   5145 
   5146 	[truetype] Fix regression in the incremental glyph loader.
   5147 
   5148 	* src/truetype/ttgload.c (load_truetype_glyph): For incremental
   5149 	fonts, the glyph index may be greater than the number of glyphs
   5150 	indicated, so guard the check with a preprocessor conditional.
   5151 
   5152 2015-02-06  Werner Lemberg  <wl (a] gnu.org>
   5153 
   5154 	[autofit] Fix potential memory leak.
   5155 
   5156 	While this doesn't show up with FreeType, exactly the same code
   5157 	leaks with ttfautohint's modified auto-hinter code (which gets used
   5158 	in a slightly different way).
   5159 
   5160 	It certainly doesn't harm since it is similar to already existing
   5161 	checks in the code for embedded arrays.
   5162 
   5163 	* src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours'
   5164 	and `max_points' for all cases.
   5165 
   5166 2015-01-31  Werner Lemberg  <wl (a] gnu.org>
   5167 
   5168 	[autofit] Add support for Thai script.
   5169 
   5170 	Thanks to Ben Mitchell <ben (a] rosettatype.com> for guidance with blue
   5171 	zone characters!
   5172 
   5173 	* src/autofit/afblue.dat: Add blue zone data for Thai.
   5174 
   5175 	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
   5176 
   5177 	* src/autofit/afscript.h: Add Thai standard characters.
   5178 
   5179 	* src/autofit/afranges.c: Add Thai data.
   5180 
   5181 	* src/autofit/afstyles.h: Add Thai data.
   5182 
   5183 2015-01-23  Behdad Esfahbod  <behdad (a] behdad.org>
   5184 
   5185 	[raster] Handle `FT_RASTER_FLAG_AA' correctly.
   5186 
   5187 	This fixes a breakage caused by the commit `[raster] Remove
   5188 	5-level gray AA mode from monochrome rasterizer.'.
   5189 
   5190 	Problem reported by Markus Trippelsdorf <markus (a] trippelsdorf.de>.
   5191 
   5192 	* src/raster/ftraster.c (ft_black_render): Handle
   5193 	`FT_RASTER_FLAG_AA'.
   5194 
   5195 	* src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode
   5196 	remnants.
   5197 
   5198 2015-01-18  Werner Lemberg  <wl (a] gnu.org>
   5199 
   5200 	* src/base/ftobjs.c (FT_New_Library): Fix compiler warning.
   5201 
   5202 2015-01-18  Chris Liddell  <chris.liddell (a] artifex.com>
   5203 
   5204 	[raster] Fix Savannah bug #44022.
   5205 
   5206 	Add fallback for glyphs with degenerate bounding boxes.
   5207 
   5208 	If a glyph has only one very narrow feature, the bbox can end up
   5209 	with either the width or height of the bbox being 0, in which case
   5210 	no raster memory is allocated and no attempt is made to render the
   5211 	glyph.  This is less than ideal when the drop-out compensation in
   5212 	the rendering code would actually result in the glyph being
   5213 	rendered.
   5214 
   5215 	This problem can be observed with the `I' glyph (gid 47) in the
   5216 	Autodesk RomanS TrueType font.
   5217 
   5218 	* src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either
   5219 	dimension is zero to explicitly round up/down (instead of simply
   5220 	round).
   5221 
   5222 2015-01-17  Werner Lemberg  <wl (a] gnu.org>
   5223 
   5224 	Add some tools to handle yearly copyright notice updates.
   5225 
   5226 	We are now following the GNU guidelines: A new release automatically
   5227 	means that the copyright year of all affected files gets updated; it
   5228 	is no longer used to track years of modification changes.
   5229 
   5230 	* src/tools/update-copyright-year: New Perl script.
   5231 	* src/tools/update-copyright: New shell script that calls
   5232 	`update-copyright-year' on all files.
   5233 	* src/tools/no-copyright: Exceptions that should not be handled by
   5234 	`update-copyright'
   5235 
   5236 2015-01-14  Werner Lemberg  <wl (a] gnu.org>
   5237 
   5238 	* docs/CHANGES: Updated, using a description from Behdad.
   5239 
   5240 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5241 
   5242 	* src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning.
   5243 
   5244 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5245 
   5246 	[autofit] Add embedded array of segments and edges.
   5247 
   5248 	Avoids multiple mallocs per typical glyphs.
   5249 
   5250 	With this and recent changes to avoid mallocs, the thread-safe
   5251 	stack-based loader is now as fast as the previous model that had one
   5252 	cached singleton.
   5253 
   5254 	* src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED):
   5255 	New macros.
   5256 	(AF_AxisHintsRec): Add two arrays for segments and edges.
   5257 
   5258 	* src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate
   5259 	data if number of segments exceeds given threshold value.
   5260 	(af_axis_hints_new_edge):  Only allocate data if number of edges
   5261 	exceeds given threshold value.
   5262 	(af_glyph_hints_done): Updated.
   5263 
   5264 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5265 
   5266 	[autofit] Add embedded arrays for points and contours.
   5267 
   5268 	This avoids at least two malloc calls for typical glyphs.
   5269 
   5270 	* src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED):
   5271 	New macros.
   5272 	(AF_GlyphHintsRec): Add two arrays for contours and points.
   5273 
   5274 	* src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done):
   5275 	Updated.
   5276 	(af_glyph_hints_reload): Only allocate data if number of contours or
   5277 	points exceeds given threshold values.
   5278 
   5279 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5280 
   5281 	[autofit] Allocate hints object on the stack.
   5282 
   5283 	This avoids one malloc per load.
   5284 
   5285 	* src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to
   5286 	`AF_GlyphHints'.
   5287 	Update prototype.
   5288 
   5289 	* src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints'
   5290 	parameter instead of `FT_Memory'.
   5291 	(af_loader_done): Directly reset `load_hints'.
   5292 	(af_loader_load_g): Updated.
   5293 
   5294 	* src/autofit/afmodule.c (af_autofitter_load_glyph): Use local
   5295 	`hints' object.
   5296 
   5297 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5298 
   5299 	[autofit] Reuse slot glyph loader.
   5300 
   5301 	No need to create a new glyph loader; we can reuse the one from
   5302 	`slot->internal->loader'.  It's hard to tell why it was written that
   5303 	way originally, but new code looks sound and correct to me, and
   5304 	avoids lots of allocations.
   5305 
   5306 	* src/autofit/afloader.c (af_loader_init): Change return type to
   5307 	`void'.
   5308 	Don't call `FT_GlyphLoader_New'.
   5309 	(af_loader_reset): Don't call `FT_GlyphLoader_Rewind'.
   5310 	(af_loader_load_g): Update code to use `internal->loader', which
   5311 	doesn't need copying of data.
   5312 
   5313 	* src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member.
   5314 	Update prototype.
   5315 
   5316 	* src/autofit/afmodule.c (af_autofitter_load_glyph): Updated.
   5317 
   5318 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5319 
   5320 	[autofit] Remove (unused) support for composite glyphs.
   5321 
   5322 	We never have to deal with composite glyphs in the autohinter, as
   5323 	those will be loaded into FORMAT_OUTLINE by the recursed
   5324 	`FT_Load_Glyph' function.
   5325 
   5326 	In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply
   5327 	FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies
   5328 	FT_LOAD_NO_HINTING:
   5329 
   5330 	  /* resolve load flags dependencies */
   5331 
   5332 	  if ( load_flags & FT_LOAD_NO_RECURSE )
   5333 	    load_flags |= FT_LOAD_NO_SCALE         |
   5334 	                  FT_LOAD_IGNORE_TRANSFORM;
   5335 
   5336 	  if ( load_flags & FT_LOAD_NO_SCALE )
   5337 	  {
   5338 	    load_flags |= FT_LOAD_NO_HINTING |
   5339 	                  FT_LOAD_NO_BITMAP;
   5340 
   5341 	    load_flags &= ~FT_LOAD_RENDER;
   5342 	  }
   5343 
   5344 	and as such the auto-hinter is never called.  Thus, the recursion in
   5345 	`af_loader_load_g' never actually happens.  So remove the depth
   5346 	counter as well.
   5347 
   5348 	* src/autofit/afloader.c (af_loader_load_g): Remove `depth'
   5349 	parameter.
   5350 	<FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code.
   5351 	(af_loader_load_glyph): Updated.
   5352 
   5353 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5354 
   5355 	[raster] Fix uninitialized memory access.
   5356 
   5357 	Apparently `ras.cProfile' might be uninitialized.  This will be the
   5358 	case if `ras.top == ras.cProfile->offset', as can be seen in
   5359 	`End_Profile'.  The overshoot code introduced in a change `Fix B/W
   5360 	rasterization of subglyphs with different drop-out modes.' (from
   5361 	2009-06-18) violated this, accessing `ras.cProfile->flags'
   5362 	unconditionally just before calling `End_Profile' (which then
   5363 	detected that `cProfile' is uninitialized and didn't touch it).
   5364 
   5365 	This was harmless, and was not detected by valgrind before because
   5366 	the objects were allocated on the `raster_pool', which was always
   5367 	initialized.  With recent change to allocate raster buffers on the
   5368 	stack, valgrind now reported this invalid access.
   5369 
   5370 	* src/raster/ftraster.c (Convert_Glyph): Don't access an
   5371 	uninitialized `cProfile'.
   5372 
   5373 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5374 
   5375 	[smooth] Fix uninitialized memory access.
   5376 
   5377 	Looks like `ras.span_y' could always be used without initialization.
   5378 	This was never detected by valgrind before because the library-wide
   5379 	`raster_pool' was used for the worker object and `raster_pool' was
   5380 	originally zero'ed.  But subsequent reuses of it were using `span_y'
   5381 	uninitialized.  With the recent change to not use `render_pool' and
   5382 	allocate worker and buffer on the stack, valgrind now detects this
   5383 	uninitialized access.
   5384 
   5385 	* src/smooth/ftgrays.c (gray_raster_render): Initialize
   5386 	`ras.span_y'.
   5387 
   5388 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5389 
   5390 	[base] Don't initialize unused `driver->glyph_loader'.
   5391 
   5392 	* src/base/ftobjs.c (Destroy_Driver): Don't call
   5393 	`FT_GlyphLoader_Done'.
   5394 	(FT_Add_Module): Don't call `FT_GlyphLoader_New'.
   5395 
   5396 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5397 
   5398 	[base] Don't allocate `library->raster_pool' anymore.
   5399 
   5400 	It's unused after the following commits:
   5401 
   5402 	  [raster] Allocate render pool for mono rasterizer on the stack.
   5403 	  [raster] Remove 5-level gray AA mode from monochrome rasterizer.
   5404 
   5405 	The value of FT_RENDER_POOL_SIZE still serves the purpose it used to
   5406 	serve, which is, to adjust the pool size.  But the pool is now
   5407 	allocated on the stack on demand.
   5408 
   5409 	* src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement.
   5410 
   5411 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5412 
   5413 	[base] Do not reorder library->renderers upon use.
   5414 
   5415 	Instead of keeping `library->renderers' in a MRU order, just leave
   5416 	it as-is.  The MRU machinery wasn't thread-safe.
   5417 
   5418 	With this patch, rasterizing glyphs from different faces from
   5419 	different threads doesn't fail choosing rasterizer
   5420 	(FT_Err_Cannot_Render_Glyph).
   5421 
   5422 	Easiest to see that crash was to add a `printf' (or otherwise let
   5423 	thread yield in FT_Throw with debugging enabled).
   5424 
   5425 	* src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
   5426 	(FT_Outline_Render): Don't call `FT_Set_Renderer'.
   5427 
   5428 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5429 
   5430 	[raster] Allocate render pool for mono rasterizer on the stack.
   5431 
   5432 	Instead of using the `render_pool' member of `FT_Library' that is
   5433 	provided down to the rasterizer, completely ignore that and allocate
   5434 	needed objects on the stack instead.
   5435 
   5436 	With this patch, rasterizing glyphs from different faces from
   5437 	different threads doesn't crash in the monochrome rasterizer.
   5438 
   5439 	* src/raster/ftraster.c (black_TRaster): Remove `buffer',
   5440 	`buffer_size', and `worker' members.
   5441 
   5442 	(ft_black_render): Create `buffer' locally.
   5443 	(ft_black_reset): Updated.
   5444 
   5445 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5446 
   5447 	[raster] Remove 5-level gray AA mode from monochrome rasterizer.
   5448 
   5449 	It was off by default and couldn't be turned on at runtime.  And the
   5450 	smooth rasterizer superseded it over ten years ago.  No point in
   5451 	keeping.  Comments suggested that it was there for compatibility
   5452 	with FreeType 1.
   5453 
   5454 	550 lines down.
   5455 
   5456 	* src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING,
   5457 	RASTER_GRAY_LINES): Remove macros and all associated code.
   5458 
   5459 	(black_TWorker): Remove `gray_min_x' and `gray_max_x'.
   5460 	(black_TRaster): Remove `grays' and `gray_width'.
   5461 
   5462 	(Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop,
   5463 	ft_black_render): Updated.
   5464 
   5465 	* src/raster/ftrend1.c (ft_raster1_render): Simplify code.
   5466 	(ft_raster5_renderer_class): Removed.
   5467 
   5468 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5469 
   5470 	[smooth] Allocate render pool for smooth rasterizer on the stack.
   5471 
   5472 	Instead of using the `render_pool' member of `FT_Library' that is
   5473 	provided down to the rasterizer, completely ignore that and allocate
   5474 	needed objects on the stack instead.
   5475 
   5476 	With this patch, rasterizing glyphs from different faces from
   5477 	different threads doesn't crash in the smooth rasterizer.
   5478 
   5479 	Bugs:
   5480 
   5481 	  https://bugzilla.redhat.com/show_bug.cgi?id=678397
   5482 	  https://bugzilla.redhat.com/show_bug.cgi?id=1004315
   5483 	  https://bugzilla.redhat.com/show_bug.cgi?id=1165471
   5484 	  https://bugs.freedesktop.org/show_bug.cgi?id=69034
   5485 
   5486 	* src/smooth/ftgrays.c (gray_TRaster): Remove `buffer',
   5487 	`buffer_size', `band_size', and `worker' members.
   5488 
   5489 	(gray_raster_render): Create `buffer', `buffer_size', and
   5490 	`band_size' locally.
   5491 	(gray_raster_reset): Updated.
   5492 
   5493 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5494 
   5495 	[truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.
   5496 
   5497 	Previously the code had stipulation for using a per-TT_Size exec
   5498 	context if `size->debug' was true.  But there was no way that
   5499 	`size->debug' could *ever* be true.  As such, the code was always
   5500 	using the singleton `TT_ExecContext' that was stored in `TT_Driver'.
   5501 	This was, clearly, not threadsafe.
   5502 
   5503 	With this patch, loading glyphs from different faces from different
   5504 	threads doesn't crash in the bytecode loader code.
   5505 
   5506 	* src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member.
   5507 	(TT_DriverRec): Remove `context' member.
   5508 
   5509 	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove
   5510 	`TT_ExecContext' code related to a global `TT_Driver' object.
   5511 
   5512 	(tt_driver_done): Don't remove `TT_ExecContext' object here but ...
   5513 	(tt_size_done_bytecode): ... here.
   5514 
   5515 	(tt_driver_init): Don't create `TT_ExecContext' object here but ...
   5516 	(tt_size_init_bytecode): ... here, only on demand.
   5517 
   5518 	* src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug
   5519 	code.
   5520 	(TT_New_Context): Remove `TT_ExecContext' code related to a global
   5521 	`TT_Driver' object.
   5522 
   5523 	* src/truetype/ttinterp.h: Updated.
   5524 
   5525 	* src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.
   5526 
   5527 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5528 
   5529 	[autofit] Allocate AF_Loader on the stack instead of AF_Module.
   5530 
   5531 	Stop sharing a global `AF_Loader'.  Allocate one on the stack during
   5532 	glyph load.
   5533 
   5534 	Right now this results in about 25% slowdown, to be fixed in a
   5535 	following commit.
   5536 
   5537 	With this patch loading glyphs from different faces from different
   5538 	threads doesn't immediately crash in the autohinting loader code.
   5539 
   5540 	Bugs:
   5541 
   5542 	  https://bugzilla.redhat.com/show_bug.cgi?id=1164941
   5543 
   5544 	* src/autofit/afloader.c (af_loader_init): Pass
   5545 	`AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments.
   5546 	(af_loader_reset, af_loader_load_glyph): Also pass `loader' as
   5547 	argument.
   5548 	(af_loader_done): Use `AF_Loader' instead of `AF_Module' as
   5549 	argument.
   5550 
   5551 	* src/autofit/afmodule.c (af_autofitter_init): Don't call
   5552 	`af_loader_init'.
   5553 	(af_autofitter_done): Don't call `af_loader_done'.
   5554 	(af_autofitter_load_glyph): Use a local `AF_Loader' object.
   5555 
   5556 	* src/autofit/afloader.h: Include `afmodule.h'.
   5557 	Update prototypes.
   5558 	Move typedef for `AF_Module' to...
   5559 
   5560 	* src/autofit/afmodule.h: ... this place.
   5561 	No longer include `afloader.h'.
   5562 
   5563 2015-01-14  Behdad Esfahbod  <behdad (a] behdad.org>
   5564 
   5565 	* src/type42/t42objs.h (T42_DriverRec): Remove unused member.
   5566 
   5567 2015-01-12  Werner Lemberg  <wl (a] gnu.org>
   5568 
   5569 	Fix Savannah bug #43976.
   5570 
   5571 	Assure that FreeType's internal include directories are found before
   5572 	`CPPFLAGS' (which might be set by the user in the environment), and
   5573 	`CPPFLAGS' before `CFLAGS'.
   5574 
   5575 	* builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'.
   5576 	(FT_COMPILE): Make this a special variable for compiling only the
   5577 	files handled in `freetype.mk'.
   5578 	(.c.$O): Removed, unused.
   5579 
   5580 	* src/*/rules.mk (*_COMPILE): Fix order of include directories.
   5581 
   5582 2015-01-11  Werner Lemberg  <wl (a] gnu.org>
   5583 
   5584 	[truetype] Prettifying.
   5585 
   5586 	* src/truetype/ttinterp.c (project, dualproj, fast_project,
   5587 	fast_dualproj): Rename to...
   5588 	(PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this.
   5589 
   5590 2015-01-11  Werner Lemberg  <wl (a] gnu.org>
   5591 
   5592 	* src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify.
   5593 
   5594 	Based on a patch from Behdad.
   5595 
   5596 2015-01-11  Werner Lemberg  <wl (a] gnu.org>
   5597 
   5598 	* src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call.
   5599 
   5600 2015-01-11  Werner Lemberg  <wl (a] gnu.org>
   5601 
   5602 	* src/truetype/ttinterp.c (Normalize): Remove unused argument.
   5603 
   5604 2015-01-11  Werner Lemberg  <wl (a] gnu.org>
   5605 
   5606 	[truetype] More macro expansions.
   5607 
   5608 	* src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by
   5609 	expansion.
   5610 
   5611 2015-01-11  Werner Lemberg  <wl (a] gnu.org>
   5612 
   5613 	[truetype] More macro expansions.
   5614 
   5615 	* src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
   5616 	adjusting function calls where necessary.
   5617 	(FT_UNUSED_ARG): Removed, no longer needed.
   5618 
   5619 2015-01-10  Werner Lemberg  <wl (a] gnu.org>
   5620 
   5621 	[truetype] More macro expansions.
   5622 
   5623 	Based on a patch from Behdad.
   5624 
   5625 	* src/truetype/ttinterp.c (DO_*): Expand macros into corresponding
   5626 	`Ins_*' functions.
   5627 	(TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls.
   5628 	(ARRAY_BOUND_ERROR): Remove second definition, which is no longer
   5629 	needed.
   5630 	(Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with...
   5631 	(Ins_SxyTCA): New function.
   5632 
   5633 2015-01-10  Werner Lemberg  <wl (a] gnu.org>
   5634 
   5635 	[truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH.
   5636 
   5637 	Behdad suggested this code simplification, and nobody objected...
   5638 
   5639 	* include/config/ftoption.h, devel/ftoption.h
   5640 	(TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove.
   5641 
   5642 	* src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]:
   5643 	Remove related code.
   5644 	(ARRAY_BOUND_ERROR): Use do-while loop.
   5645 
   5646 2015-01-10  Werner Lemberg  <wl (a] gnu.org>
   5647 
   5648 	[truetype] More macro expansions.
   5649 
   5650 	* src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_,
   5651 	EXEC_ARG): Remove by replacing with expansion.
   5652 
   5653 2015-01-10  Werner Lemberg  <wl (a] gnu.org>
   5654 
   5655 	[truetype] More macro expansions.
   5656 
   5657 	Based on a patch from Behdad.
   5658 
   5659 	* src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize,
   5660 	SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move,
   5661 	CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem,
   5662 	CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt,
   5663 	CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round,
   5664 	COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing
   5665 	with expansion.
   5666 
   5667 	(Cur_Func_project, CUR_Func_dualproj, CUR_fast_project,
   5668 	CUR_fast_dualproj): Replace with macros `project', `dualproj',
   5669 	`fast_project', `fast_dualproj'.
   5670 
   5671 2015-01-10  Werner Lemberg  <wl (a] gnu.org>
   5672 
   5673 	[truetype] More macro expansions.
   5674 
   5675 	* src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing
   5676 	with expansion.
   5677 
   5678 2015-01-10  Werner Lemberg  <wl (a] gnu.org>
   5679 
   5680 	[truetype] Remove code for static TrueType interpreter.
   5681 
   5682 	This is a follow-up patch.
   5683 
   5684 	* src/truetype/ttinterp.c, src/truetype/ttinterp.h
   5685 	[TT_CONFIG_OPTION_STATIC_INTERPRETER,
   5686 	TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code.
   5687 
   5688 2015-01-10  Werner Lemberg  <wl (a] gnu.org>
   5689 
   5690 	* src/truetype/ttinterp.c (CUR): Remove by replacing with expansion.
   5691 
   5692 	This starts a series of patches that simplifies the code of the
   5693 	bytecode interpreter.
   5694 
   5695 
   5696 ----------------------------------------------------------------------------
   5697 
   5698 Copyright 2015-2018 by
   5699 David Turner, Robert Wilhelm, and Werner Lemberg.
   5700 
   5701 This file is part of the FreeType project, and may only be used, modified,
   5702 and distributed under the terms of the FreeType project license,
   5703 LICENSE.TXT.  By continuing to use, modify, or distribute this file you
   5704 indicate that you have read the license and understand and accept it
   5705 fully.
   5706 
   5707 
   5708 Local Variables:
   5709 version-control: never
   5710 coding: utf-8
   5711 End:
   5712