2015-11-28  Werner Lemberg  <wl@gnu.org>

	* Version 2.6.2 released.
	=========================


	Tag sources with `VER-2-6-2'.

	* docs/VERSION.DLL: Update documentation and bump version number to
	2.6.2.

	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2005/index.html,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2008/index.html,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/index.html,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualc/index.html,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj,
	builds/windows/visualce/index.html,
	builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2005-ce/index.html,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/wince/vc2008-ce/index.html: s/2.6.1/2.6.2/, s/261/262/.

	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.

	* builds/unix/configure.raw (version_info): Set to 18:2:12.
	* CMakeLists.txt (VERSION_PATCH): Set to 2.

	* docs/CHANGES: Updated.

2015-11-28  Werner Lemberg  <wl@gnu.org>

	Fix C++ compilation.

	* src/autofit/afloader.c: Include FT_INTERNAL_CALC_H.

	* src/truetype/ttgload.c (load_truetype_glyph): Pacify compiler.

2015-11-28  Nikolaus Waxweiler  <madigens@gmail.com>

	Change default LCD filter to be normalized and color-balanced.

	* src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Update
	`default_filter'.

2015-11-28  Werner Lemberg  <wl@gnu.org>

	[docmaker] Allow references to section names.

	In the reference, we show the section's title enclosed in single
	quotes.

	* src/tools/docmaker/formatter.py (Formatter::__init__): Collect
	section names as identifiers.

	* src/tools/docmaker/tohtml.py (section_title_header): Split into...
	(section_title_header1, section_title_header2): ... these two
	strings.
	(HtmlFormatter::make_block_url, make_html_word, html_source_quote):
	Handle sections.
	(HtmlFormatter::section_enter): Updated to add `id' HTML attribute.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	[cmake] Add script to test the config module.

	* builds/cmake/testbuild.sh: New file.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	* CMakeLists.txt: Create `freetype-config.cmake' config module.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	* CMakeLists.txt: Set CMAKE_DEBUG_POSTFIX to `d'.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	[cmake] Add better control of library dependencies.

	* CMakeLists.txt: Add `WITH_*' variables to force/auto/omit
	ZLIB/BZip2/PNG/HarfBuzz.

2015-11-27  Tamas Kenez  <tamas.kenez@adasworks.com>

	[cmake] Make `FindHarfbuzz' observe the REQUIRED option.

	* builds/cmake/FindHarfBuzz.cmake: Implement it.

2015-11-27  Werner Lemberg  <wl@gnu.org>

	[cmake] Collect files specific to cmake in `builds/cmake'.

	* builds/FindHarfBuzz.cmake: Move to ...
	* builds/cmake/FindHarfBuzz.cmake: ... this place.

	* CMakeLists.txt (CMAKE_MODULE_PATH): Updated.

2015-11-27  Alexander Bock  <alexander.j.bock@nasa.gov>

	CMakeLists.txt: Honour new command line flag `FREETYPE_NO_DIST'.

2015-11-26  Werner Lemberg  <wl@gnu.org>

	[docmaker] Allow `foo[bar]' as identifier.

	We need this to handle equally named properties in different
	modules.

	* src/tools/docmaker/content.py (re_identifier),
	src/tools/docmaker/sources.py (re_crossref): Allow `foo[bar]'.

	* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word,
	HtmlFormatter::index_exit, HtmlFormatter::section_enter,
	HtmlFormatter::block_enter): Handle `foo[bar]'.

2015-11-25  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46480).

	(_bdf_parse_glyphs): Always reset `p->glyph_name' after moving its
	contents.

2015-11-21  Werner Lemberg  <wl@gnu.org>

	* include/freetype/internal/ftcalc.h: Don't use `register' keyword.

	This fixes compiler warnings.

	Reported by Behdad.

2015-11-20  Werner Lemberg  <wl@gnu.org>

	Add `FT_LCD_FILTER_LEGACY1' enum value.

	This does the same as `FT_LCD_FILTER_LEGACY'.

	See

	  https://bugs.freedesktop.org/show_bug.cgi?id=92981

	for the reasoning.

	* include/freetype/ftlcdfil.h (FT_LcdFilter): New value
	`FT_LCD_FILTER_LEGACY1'.

	* src/base/ftlcdfil.c (FT_Library_SetLcdFilter): Use it.

2015-11-15  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afhints.c (af_get_segment_index): Fix it.

	The old code was too simple, returning invalid values in most cases
	where a segment crosses the contour start.

2015-11-15  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdflib.c (bdf_load_font): Fix small memory leak (#46439).

2015-11-11  Werner Lemberg  <wl@gnu.org>

	[cff, autofit] Switch off stem darkening by default.

	* src/autofit/afmodule.c (af_autofitter_init), src/cff/cffobjs.c
	(cff_driver_init): Do it.

2015-11-10  Jan Alexander Steffens (heftig)  <jan.steffens@gmail.com>

	Allow native CFF hinter in FT_RENDER_MODE_LIGHT.

	Both the native CFF hinter and the auto-hinter now have a very
	similar rendering style.

	* include/freetype/freetype.h: Mention that FT_LOAD_TARGET_LIGHT no
	longer implies FT_LOAD_FORCE_AUTOHINT.

	* include/freetype/ftmodapi.h (FT_MODULE_DRIVER_HINTS_LIGHTLY): New
	macro.

	* include/freetype/internal/ftobjs.h (FT_DRIVER_HINTS_LIGHTLY): New
	macro.

	* src/cff/cffdrivr.c (cff_driver_class): Use it.

	* src/base/ftobjs.c (FT_Load_Glyph): Update auto-hinter selection
	logic.

2015-11-09  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidload.c (cid_face_open): Fix GDBytes guard (#46408).

2015-11-09  Werner Lemberg  <wl@gnu.org>

	[truetype] Remove integer to pointer conversion compiler warning.

	Problem reported by Alexei.

	* src/truetype/ttgload.c (load_truetype_glyph): Use a solution found
	in the glib library to fix the issue.

2015-11-08  Behdad Esfahbod  <behdad@behdad.org>

	[sfnt] Accept version 3 of `EBLC' and `CBLC' tables also.

	* src/sfnt/ttsbit.c (tt_face_load_sbit): Implement it.

2015-11-08  Philipp Knechtges  <philipp-dev@knechtges.com>

	[autofit] Don't distort (latin) glyphs too much (#46195).

	* src/autofit/aflatin.h (AF_LatinBlueRec): Add `ascender' and
	`descender' fields.

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Collect
	ascender and descender data for blue zones.
	(af_latin_metrics_scale_dim): Reject vertical scaling values that
	change the result by more than two pixels.

2015-11-05  Werner Lemberg  <wl@gnu.org>

	[sfnt] Ignore embedded bitmaps with zero size (#46379).

	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bit_aligned): Implement
	it.

2015-11-04  Werner Lemberg  <wl@gnu.org>

	[truetype] Catch infinite recursion in subglyphs (#46372).

	* include/freetype/internal/tttypes.h (TT_LoaderRec): New field
	`composites'.

	* src/truetype/ttgload.c: Include FT_LIST_H.
	(load_truetype_glyph): Add composite subglyph index to a list;
	abort if index is already in list.
	(tt_loader_init): Updated.
	(tt_loader_done): New function.
	(TT_Load_Glyph): Call `tt_loader_done'.

2015-11-04  Werner Lemberg  <wl@gnu.org>

	[truetype] Better tracing of composite glyphs.

	* src/truetype/ttgload.c (TT_Load_Composite_Glyph,
	load_truetype_glyph): Implement it.

2015-11-03  Werner Lemberg  <wl@gnu.org>

	[sfnt] Protect against zero-size bitmaps (#46345).

	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Check
	`glyph_size'.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	* src/autofit/afloader.c (af_loader_load_g): Implement emboldening.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	[autofit] Implement darkening computation function.

	This is a crude adaption of the original `cf2_computeDarkening'
	function.

	* src/autofit/afloader.c (af_intToFixed, af_fixedToInt,
	af_floatToFixed): New macros, taken from `cf2fixed.h'.
	(af_loader_compute_darkening): New function.
	* src/autofit/afloader.h: Updated.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	[autofit] Add functions to get standard widths for writing systems.

	We need the computed standard horizontal and vertical widths for the
	emboldening calculation.  This method provides a convenient way to
	extract it from writing-system-specific metrics structures, which
	all script definitions must implement.

	* src/autofit/aftypes.h (AF_WritingSystem_GetStdWidthsFunc): New
	function type.
	(AF_WritingSystemClassRec): New member `style_metrics_getstdw'.
	(AF_DEFINE_WRITING_SYSTEM_CLASS): Updated.

	* src/autofit/afcjk.c (af_cjk_get_standard_width): New function.
	(af_cjk_writing_system_class): Updated.
	* src/autofit/afdummy.c	(af_dummy_writing_system_class): Updated.
	* src/autofit/afindic.c (af_cjk_get_standard_width): New function.
	(af_indic_writing_system_class): Updated.
	* src/autofit/aflatin.c (af_latin_get_standard_width): New function.
	(af_indic_writing_system_class): Updated.
	* src/autofit/aflatin.c (af_latin_get_standard_width): New function.
	(af_indic_writing_system_class): Updated.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	[autofit] Extend `AF_FaceGlobalsRec' to hold emboldening data.

	* src/autofit/afglobal.h (AF_FaceGlobalsRec): Add fields.

	* src/autofit/afglobal.c (af_face_globals_new): Initialize new
	fields.
	(af_face_globals_free): Reset new fields.

2015-11-02  Nikolaus Waxweiler  <madigens@gmail.com>

	[autofit] Add stem-darkening properties.

	Actual code follows in a later commit.

	* include/freetype/ftautoh.h: Document `no-stem-darkening' and
	`darkening-parameters'.

	* src/autofit/afmodule.h: New fields `no_stem_darkening' and
	`darken_params'.

	* src/autofit/afmodule.c (af_property_set, af_property_get):
	Handle them.
	(af_autofitter_init): Initialize them.

2015-11-02  Bungeman  <bungeman@gmail.com>

	[ftfuzzer] Add support for multiple files (patch #8779).

	Currently, libFuzzer only supports mutation of a single file.  We
	circumvent this problem by using an uncompressed tar archive as
	multiple-file input for the fuzzer.

	This patch enables tests of `FT_Attach_Stream' and AFM/PFM parsing;
	a constructed tarball should contain a font file as the first
	element, and files to be attached as further elements.

	* src/tools/ftfuzzer/ftfuzzer.cc: Include libarchive headers.
	(archive_read_entry_data, parse_data): New functions.
	(LLVMFuzzerTestOneInput): Updated.

	* src/tools/ftfuzzer/ftmutator.cc: New file, providing a custom
	mutator for libFuzzer that can mutate tarballs in a sensible way.

2015-10-31  Werner Lemberg  <wl@gnu.org>

	[sfnt] Fix cmap 14 validation (#46346).

	* src/sfnt/ttcmap.c (tt_cmap14_validate): Check limit before
	accessing `numRanges' and `numMappings'.
	Fix size check for non-default UVS table.

2015-10-31  Werner Lemberg  <wl@gnu.org>

	[sfnt] Handle infinite recursion in bitmap strikes (#46344).

	* src/sfnt/ttsbit.c (TT_SBitDecoder_LoadFunc,
	tt_sbit_decoder_load_bitmap, tt_sbit_decoder_load_byte_aligned,
	tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_png): Add
	argument for recursion depth.
	(tt_sbit_decoder_load_compound): Add argument for recursion depth.
	Increase recursion counter for recursive call.
	(tt_sbit_decoder_load_image): Add argument for recursion depth.
	Check recurse depth.
	(tt_face_load_sbit_image): Updated.

2015-10-29  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afhints.c (af_glyph_hints_dump_points): Minor.

2015-10-29  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Remove code to set MSVC's /FD compiler switch.

	Problem reported by David Capello <davidcapello@gmail.com>; see

	  http://lists.nongnu.org/archive/html/freetype-devel/2015-10/msg00108.html

	for details.

2015-10-27  Werner Lemberg  <wl@gnu.org>

	[pfr] Add some safety guards (#46302).

	* src/pfr/pfrload.h (PFR_CHECK): Rename to...
	(PFR_CHECK_SIZE): ... this.
	(PFR_SIZE): [!PFR_CONFIG_NO_CHECKS]: Define to PFR_CHECK_SIZE.

	* src/pfr/pfrload.c (pfr_log_font_count): Check `count'. 
	(pfr_extra_item_load_kerning_pairs): Remove tracing message.
	(pfr_phy_font_load): Use PFR_CHECK_SIZE where appropriate.
	Allocate `chars' after doing a size checks.

	* src/pfr/pfrsbit.c (pfr_load_bitmap_bits): Move test for invalid
	bitmap format to...
	(pfr_slot_load_bitmap): ... this function.
	Check bitmap size.

2015-10-26  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix sanitizing logic for `loca' (#46223).

	* src/truetype/ttpload.c (tt_face_load_loca): A thinko caused an
	incorrect adjustment of the number of glyphs, most often using far
	too large values.

2015-10-25  Werner Lemberg  <wl@gnu.org>

	[autofit] Improve tracing.

	* src/autofit/afhints.c (af_print_idx, af_get_segment_index,
	af_get_edge_index): New functions.

	(af_glyph_hints_dump_points): Remove unnecessary `|', `[', and `]'.
	Add segment and edge index for each point.
	Slightly change printing order of some elements.
	Don't print `-1' but `--' for missing elements.

	(af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Remove
	unnecessary `|', `[', and `]'.
	Don't print `-1' but `--' for missing elements.

2015-10-24  Werner Lemberg  <wl@gnu.org>

	[sfnt] Sanitize bitmap strike glyph height.

	Problem reported by Nikolay Sivov <bunglehead@gmail.com>.

	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Avoid zero value
	for `metrics->height' by applying some heuristics.

2015-10-22  Werner Lemberg  <wl@gnu.org>

	[sfnt, type42] Fix clang compiler warnings.

	* src/sfnt/sfobjs.c (sfnt_init_face): Initialize `offset'.

	* src/type42/t42parse.c (t42_parse_sfnts): Use proper cast.

2015-10-22  Dave Arnold  <darnold@adobe.com>
	    Werner Lemberg  <wl@gnu.org>

	[cff] Avoid overflow/module arithmetic.

	This modifies the addition of subroutine number to subroutine bias
	from unsigned to signed, but does not change any results.

	* src/cff/cf2ft.c (cf2_initGlobalRegionBuffer,
	cf2_initLocalRegionBuffer): Change variable names from (unsigned)
	`idx' to (signed) `subrNum', since it is not an index until after
	the bias is added.
	* src/cff/cf2ft.h: Updated.

	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
	Updated similarly.

2015-10-22  Werner Lemberg  <wl@gnu.org>

	[cid] Better check of `SubrCount' dictionary entry (#46272).

	* src/cid/cidload.c (cid_face_open): Add more sanity tests for
	`fd_bytes', `gd_bytes', `sd_bytes', and `num_subrs'.

2015-10-21  Werner Lemberg  <wl@gnu.org>

	[base] Pacify compiler (#46266).

	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Initialize `in' and
	`anchor'.

2015-10-21  Werner Lemberg  <wl@gnu.org>

	[type42] Fix heap buffer overflow (#46269).

	* src/type42/t42parse.c (t42_parse_sfnts): Fix off-by-one error in
	bounds checking.

2015-10-21  Dave Arnold  <darnold@adobe.com>

	[cff] Fix limit in assert for max hints.

	* src/cff/cf2interp.c (cf2_hintmask_setAll): Allow mask equal to the
	limit (96 bits).

2015-10-21  Dave Arnold  <darnold@adobe.com>

	[cff] Remove an assert (#46107).

	* src/cff/cf2hints.c (cf2_hintmap_insertHint): Ignore paired edges
	in wrong order.

2015-10-21  Werner Lemberg  <wl@gnu.org>

	[sfnt] Avoid unnecessarily large allocation for WOFFs (#46257).

	* src/sfnt/sfobjs.c (woff_open_font): Use WOFF's `totalSfntSize'
	only after thorough checks.
	Add tracing messages.

2015-10-21  Werner Lemberg  <wl@gnu.org>

	[type42] Better check invalid `sfnts' array data (#46255).

	* src/type42/t42parse.c (t42_parse_sfnts): Table lengths must be
	checked individually against available data size.

2015-10-20  Werner Lemberg  <wl@gnu.org>

	[cid] Add a bunch of safety checks.

	* src/cid/cidload.c (parse_fd_array): Check `num_dicts' against
	stream size.
	(cid_read_subrs): Check largest offset against stream size.
	(cid_parse_dict): Move safety check to ...
	(cid_face_open): ... this function.
	Also test length of binary data and values of `SDBytes',
	`SubrMapOffset', `SubrCount', `CIDMapOffset', and `CIDCount'.

2015-10-20  Werner Lemberg  <wl@gnu.org>

	[cid] Avoid segfault with malformed input (#46250).

	* src/cid/cidload.c (cid_read_subrs): Return a proper error code for
	unsorted offsets.

2015-10-20  StudioEtrange  <nomorgan@gmail.com>

	* CMakeLists.txt: Enable shared library builds on MinGW (#46233).

2015-10-20  Werner Lemberg  <wl@gnu.org>

	* src/type1/t1afm.c (T1_Read_Metrics): Fix memory leak (#46229).

2015-10-19  Bungeman  <bungeman@gmail.com>

	[cid] Better handle invalid glyph stream offsets (#46221).

	* src/cid/cidgload.c (cid_load_glyph): Check minimum size of glyph
	length.

2015-10-18  Werner Lemberg  <wl@gnu.org>

	[psaux] Fix tracing of negative numbers.

	Due to incorrect casting negative numbers were shown as very large
	(positive) integers on 64bit systems.

	* src/psaux/t1decode.c (t1_decoder_parse_charstrings) <op_none>:
	Use division instead of shift.

2015-10-18  Werner Lemberg  <wl@gnu.org>

	[truetype] Improve TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46223).

	* devel/ftoption.h, include/freetype/config/ftoption.h: Surround it
	with #ifndef ... #endif, as suggested in the tracker issue.

2015-10-18  Werner Lemberg  <wl@gnu.org>

	[truetype] Better protection against malformed `fpgm' (#46223).

	* src/truetype/ttobjs.c (tt_size_init_bytecode): Don't execute a
	malformed `fpgm' table more than once.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidgload.c (cid_load_glyph): Fix memory leak.

	Reported by Kostya Serebryany <kcc@google.com>.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	[bdf] Prevent memory leak (#46217).

	* src/bdf/bdflib.c (_bdf_parse_glyphs) <STARTCHAR>: Check
	_BDF_GLYPH_BITS.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	[bdf] Use stream size to adjust number of glyphs.

	* src/bdf/bdflib.c (ACMSG17): New message macro.
	(_bdf_parse_t): Add member `size'.
	(bdf_load_font): Set `size'.
	(_bdf_parse_glyphs): Adjust `cnt' if necessary.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidload.c (cid_parse_dict): Check `[FG]DBytes' size.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidgload.c (cid_glyph_load): Check file offsets (#46222).

2015-10-17  Werner Lemberg  <wl@gnu.org>

	[psaux] Fix heap buffer overflow (#46221).

	* src/psaux/t1decode.c (t1_decoder_parse_charstring) <operator 12>:
	Fix limit check.

2015-10-17  Werner Lemberg  <wl@gnu.org>

	* src/cid/cidload.c (cid_parse_dict): Handle invalid input (#46220).

2015-10-15  Kostya Serebryany  <kcc@google.com>

	[ftfuzzer] Add README.

	* src/tools/ftfuzzer/README: New file.

2015-10-15  Bungeman  <bungeman@gmail.com>

	[bdf] Fix memory leak (#46213).

	* src/bdf/bdflib.c (bdf_load_font): Always go to label `Fail' in
	case of error.

2015-10-15  Werner Lemberg  <wl@gnu.org>

	[truetype] Add TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES (#46208).

	* devel/ftoption.h, include/freetype/config/ftoption.h
	(TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES): New configuration macro.

	* src/truetype/ttinterp.c (MAX_RUNNABLE_OPCODES): Removed.
	(TT_RunIns): Updated.

2015-10-15  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttinterp.c (TT_RunIns): Fix bytecode stack tracing.

	The used indices were off by 1.

2015-10-15  Bungeman  <bungeman@gmail.com>
	    Werner Lemberg  <wl@gnu.org>

	* src/tools/ftfuzzer/ftfuzzer.cc: Handle fixed sizes (#46211).

2015-10-15  Werner Lemberg  <wl@gnu.org>

	[base] Compute MD5 checksums only if explicitly requested.

	This improves profiling accuracy.

	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Implement it.

2015-10-14  Werner Lemberg  <wl@gnu.org>

	[base] Use `FT_' namespace for MD5 functions (#42366).

	* src/base/ftobjs.c (MD5_*): Define as `FT_MD5_*'.
	Undefine HAVE_OPENSSL.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[type1] Correctly handle missing MM axis names (#46202).

	* src/type1/t1load.c (T1_Get_MM_Var): Implement it.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[pcf] Quickly exit if font index < 0.

	Similar to other font formats, this commit makes the parser no
	longer check the whole PCF file but only the header and the TOC if
	we just want to get the number of available faces (and a proper
	recognition of the font format).

	* src/pcf/pcfdrivr.c (PCF_Face_Init): Updated.
	Exit quickly if face_index < 0.

	* src/pcfread.c (pcf_load_font): Add `face_index' argument.
	Exit quickly if face_index < 0.

	* src/pcf/pcf.h: Updated.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[ftfuzzer] Handle TTCs and MM/GX variations.

	This patch also contains various other improvements.

	* src/tools/ftfuzzer/ftfuzzer.cc: Add preprocessor guard to reject
	pre-C++11 compilers.
	(FT_Global): New class.  Use it to provide a global constructor and
	destructor for the `FT_Library' object.
	(setIntermediateAxis): New function to select an (arbitrary)
	instance.
	(LLVMFuzzerTestOneInput): Loop over all faces and named instances.
	Also call `FT_Set_Char_Size'.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Refine some GX sanity tests.

	Use the `gvar' table size instead of the remaining bytes in the
	stream.

	* src/truetype/ttgxvar.h (GX_BlendRec): New field `gvar_size'.

	* src/truetype/ttgxvar.c (ft_var_load_gvar): Set `gvar_size'.
	(ft_var_readpackedpoints, ft_var_readpackeddeltas: New argument
	`size'.
	(tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Updated.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Another GX sanity test.

	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Check
	`tupleCount'.
	Add tracing message.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix memory leak for broken GX fonts (#46188).

	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix scope of
	deallocation.

2015-10-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix commit from 2015-10-10.

	* src/truetype/ttgxvar.c (ft_var_load_gvar): Add missing error
	handling body to condition.

2015-10-12  Werner Lemberg  <wl@gnu.org>

	[unix] Make MKDIR_P actually work.

	* builds/unix/configure.raw: Fix underquoting of `INSTALL' and
	`MKDIR_P'.

	Problem reported by Dan Liddell <lddll@yahoo.com>.

2015-10-11  Werner Lemberg  <wl@gnu.org>

	[sfnt] Improve extraction of number of named instances.

	* src/sfnt/sfobjs.c (sfnt_init_face)
	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Check number of instances against
	`fvar' table size.

2015-10-10  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Fix overflow
	(#46149).

2015-10-10  Werner Lemberg  <wl@gnu.org>

	[sfnt] Fix infinite loops with broken cmaps (#46167).

	* src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next): Take care
	of border conditions (i.e., if the loops exit naturally).

2015-10-10  Werner Lemberg  <wl@gnu.org>

	[truetype] More sanity tests for GX handling.

	These tests should mainly help avoid unnecessarily large memory
	allocations in case of malformed fonts.

	* src/truetype/ttgxvar.c (ft_var_readpackedpoints,
	ft_var_readpackeddeltas): Check number of points against stream
	size.
	(ft_var_load_avar): Check `pairCount' against table length.
	(ft_var_load_gvar): Check `globalCoordCount' and `glyphCount'
	against table length.
	(tt_face_vary_cvt): Check `tupleCount' and `offsetToData'.
	Fix trace.
	(TT_Vary_Apply_Glyph_Deltas): Fix trace.
	Free `sharedpoints' to avoid memory leak.

2015-10-10  Werner Lemberg  <wl@gnu.org>

	[truetype] Better protection against malformed GX data (#46166).

	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Correctly
	handle empty `localpoints' array.

2015-10-10  Werner Lemberg  <wl@gnu.org>

	* src/pcf/pcfread.c (pcf_read_TOC): Check stream size (#46162).

2015-10-09  Werner Lemberg  <wl@gnu.org>

	* src/gzip/ftgzip.c (FT_Stream_OpenGzip): Use real stream size.

2015-10-08  Werner Lemberg  <wl@gnu.org>

	[pcf] Protect against invalid number of TOC entries (#46159).

	* src/pcf/pcfread.c (pcf_read_TOC): Check number of TOC entries
	against size of data stream.

2015-10-08  Werner Lemberg  <wl@gnu.org>

	[type42] Protect against invalid number of glyphs (#46159).

	* src/type42/t42parse.c (t42_parse_charstrings): Check number of
	`CharStrings' dictionary entries against size of data stream.

2015-10-08  Werner Lemberg  <wl@gnu.org>

	[sfnt] Fix some signed overflows (#46149).

	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
	<TT_SBIT_TABLE_TYPE_SBIX>: Use `FT_MulDiv'.

2015-10-08  Werner Lemberg  <wl@gnu.org>

	[type1] Protect against invalid number of subroutines (#46150).

	* src/type1/t1load.c (parse_subrs): Check number of
	`Subrs' dictionary entries against size of data stream.

2015-10-07  Kostya Serebryany  <kcc@google.com>

	[ftfuzzer] Add support for LLVM's LibFuzzer.

	* src/tools/ftfuzzer/ftfuzzer.cc, src/tools/runinput.cc: New files.

2015-10-06  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Faster alternative line renderer.

	This implementation renders the entire line segment at once without
	subdividing it into scanlines.  The main speed improvement comes from
	reducing the number of divisions to just two per line segment, which
	is a bare minimum to calculate cell coverage in a smooth rasterizer.
	Notably, the progression from cell to cell does not itself require any
	divisions at all.  The speed improvement is more noticeable at larger
	sizes.

	* src/smooth/ftgrays.c (gray_render_line): New implementation.

2015-10-06  Werner Lemberg  <wl@gnu.org>

	[cff] Return correct PS names from pure CFF (#46130).

	* src/cff/cffdrivr.c (cff_get_ps_name): Use SFNT service only for
	SFNT.

2015-10-04  Werner Lemberg  <wl@gnu.org>

	[base] Replace left shifts with multiplication (#46118).

	* src/base/ftglyph.c (ft_bitmap_glyph_bbox, FT_Get_Glyph): Do it.

2015-10-04  Werner Lemberg  <wl@gnu.org>

	* Version 2.6.1 released.
	=========================


	Tag sources with `VER-2-6-1'.

	* docs/VERSION.DLL: Update documentation and bump version number to
	2.6.1.

	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2005/index.html,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2008/index.html,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/index.html,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualc/index.html,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj,
	builds/windows/visualce/index.html,
	builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2005-ce/index.html,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/wince/vc2008-ce/index.html: s/2.6/2.6.1/, s/26/261/.

	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.

	* builds/unix/configure.raw (version_info): Set to 18:1:12.
	* CMakeLists.txt (VERSION_PATCH): Set to 1.

	* src/autofit/afmodule.c [AF_DEBUG_AUTOFIT]: Ensure C linking for
	dumping functions.

2015-10-04  Werner Lemberg  <wl@gnu.org>

	[bzip2, gzip] Avoid access of unitialized memory (#46109).

	* src/bzip2/ftbzip2.c (ft_bzip2_file_fill_input), src/gzip/ftgzip.c
	(ft_gzip_file_fill_input): In case of an error, adjust the limit to
	avoid copying uninitialized memory.

2015-10-03  Werner Lemberg  <wl@gnu.org>

	[bzip2, gzip] Avoid access of unitialized memory (#46109).

	* src/bzip2/ftbzip2.c (ft_bzip2_file_fill_output), src/gzip/ftgzip.c
	(ft_gzip_file_fill_output): In case of an error, adjust the limit to
	avoid copying uninitialized memory.

2015-10-01  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Clean up worker.

	* src/smooth/ftgrays.c (gray_TWorker): Remove never used fields.

2015-10-01  Werner Lemberg  <wl@gnu.org>

	[sfnt] Make `tt_cmap4_char_map_linear' more robust (#46078).

	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Take care of
	border conditions (i.e., if the loop exits naturally).

2015-10-01  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afranges.c (af_deva_nonbase_uniranges): Fix ranges.
	They should be a subset of `af_deva_uniranges'.

2015-10-01  Werner Lemberg  <wl@gnu.org>

	[sfnt] Make `tt_cmap4_char_map_linear' faster (#46078).

	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Use inner loop to
	reject too large glyph indices.

2015-09-30  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[smooth] Clean up worker.

	* src/smooth/ftgrays.c (gray_TWorker): Remove lightly used `last_ey'.
	(gray_start_cell, gray_render_line): Update.

2015-09-30  Werner Lemberg  <wl@gnu.org>

	[autofit] Replace `no-base' with `non-base'.

	* src/autofit/*: Do it.

2015-09-30  Werner Lemberg  <wl@gnu.org>

	[sfnt] Rewrite `tt_cmap4_char_map_linear' (#46078).

	* src/sfnt/ttcmap.c (tt_cmap4_char_map_linear): Add code to better
	skip invalid segments.
	If searching the next character, provide a more efficient logic to
	speed up the code.

2015-09-30  Werner Lemberg  <wl@gnu.org>

	[truetype] Adjust number of glyphs for malformed `loca' tables.

	* src/truetype/ttpload.c (tt_face_load_loca): Implement it.

2015-09-29  Werner Lemberg  <wl@gnu.org>

	[pshinter] Avoid harmless overflow (#45984).

	* src/pshinter/pshglob.c (psh_blues_set_zones): Fix it.

2015-09-28  Werner Lemberg  <wl@gnu.org>

	[autofit] Add support for Lao script.

	Thanks to Danh Hong <danhhong@gmail.com> for guidance with blue zone
	characters!

	* src/autofit/afblue.dat: Add blue zone data for Lao.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Lao standard characters.

	* src/autofit/afranges.c: Add Lao data.

	* src/autofit/afstyles.h: Add Lao data.

2015-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
 
	[base] Fix a leak by broken sfnt-PS or resource fork (#46028).

	open_face_from_buffer() frees passed buffer if valid font
	is not found.  But if copying to the buffer is failed,
	the allocated buffer should be freed within the caller.

	* src/base/ftobjs.c (open_face_PS_from_sfnt_stream): Free
	the buffer `sfnt_ps' if an error caused before calling
	open_face_from_buffer().
	(Mac_Read_sfnt_Resource): Free the buffer `sfnt_data' if
	an error caused before calling open_face_from_buffer();

2015-09-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	[mac] Fix buffer size calculation for LWFN font.

	* src/base/ftmac.c (read_lwfn): Cast post_size to FT_ULong
	to prevent confused copy by too large chunk size.

2015-09-26  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/smooth/ftgrays.c (PIXEL_MASK): Remove unused macro.

2015-09-26  Werner Lemberg  <wl@gnu.org>

	[autofit] Minor tracing improvement.

	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Don't emit
	blue zones header line if there are no blue zones.

2015-09-26  Werner Lemberg  <wl@gnu.org>

	[bzip2, gzip, lzw] Harmonize function signatures with prototype.

	Suggested by Hin-Tak Leung.

	* src/bzip2/ftbzip2.c (ft_bzip2_stream_io), src/gzip/ftgzip.c
	(ft_gzip_stream_io), src/lzw/ftlzw.c (ft_lzw_stream_io): Do it.

2015-09-26  Hin-Tak Leung  <htl10@users.sourceforge.net>

	Add new FT_LOAD_COMPUTE_METRICS load flag.

	* include/freetype/freetype.h (FT_LOAD_COMPUTE_METRICS): New macro.
	* src/truetype/ttgload.c (compute_glyph_metrics): Usage.

2015-09-26  Werner Lemberg  <wl@gnu.org>

	* src/base/ftobjs.c (Mac_Read_sfnt_Resource): Add cast.

2015-09-25  Werner Lemberg  <wl@gnu.org>

	[type1] Protect against invalid number of glyphs (#46029).

	* src/type1/t1load.c (parse_charstrings): Check number of
	`CharStrings' dictionary entries against size of data stream.

2015-09-23  Werner Lemberg  <wl@gnu.org>

	[sfnt] Better checks for invalid cmaps (2/2) (#46019).

	While the current code in `FT_Get_Next_Char' correctly rejects
	out-of-bounds glyph indices, it can be extremely slow for malformed
	cmaps that use 32bit values.  This commit tries to improve that.

	* src/sfnt/ttcmap.c (tt_cmap8_char_next, tt_cmap12_next,
	tt_cmap12_char_map_binary, tt_cmap13_next,
	tt_cmap13_char_map_binary): Reject glyph indices larger than or
	equal to the number of glyphs.

2015-09-23  Werner Lemberg  <wl@gnu.org>

	[base, sfnt] Better checks for invalid cmaps (1/2).

	* src/base/ftobjs.c (FT_Get_Char_Index): Don't return out-of-bounds
	glyph indices.
	(FT_Get_First_Char): Updated.

	* src/sfnt/ttcmap.c (tt_cmap6_char_next): Don't return character
	codes greater than 0xFFFF.

	(tt_cmap8_char_index): Avoid integer overflow in computation of
	glyph index.
	(tt_cmap8_char_next): Avoid integer overflows in computation of
	both next character code and glyph index.

	(tt_cmap10_char_index): Fix unsigned integer logic.
	(tt_cmap10_char_next): Avoid integer overflow in computation of
	next character code.

	(tt_cmap12_next): Avoid integer overflows in computation of both
	next character code and glyph index.
	(tt_cmap12_char_map_binary): Ditto.
	(tt_cmap12_char_next): Simplify.

	(tt_cmap13_char_map_binary): Avoid integer overflow in computation
	of next character code.
	(tt_cmap13_char_next): Simplify.

2015-09-21  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>

	[base] Check too long POST and sfnt resource (#45919).

	* src/base/ftbase.h (FT_MAC_RFORK_MAX_LEN): Maximum length of the
	resource fork for Mac OS.  Resource forks larger than 16 MB can be
	written but can't be handled correctly, at least in Carbon routine.
	See https://support.microsoft.com/en-us/kb/130437.

	* src/base/ftobjs.c (Mac_Read_POST_Resource): No need to use `0x'
	prefix for `%p' formatter.

	* src/base/ftbase.c (Mac_Read_POST_Resource): Check the fragment and
	total size of the concatenated POST resource before buffer
	allocation.
	(Mac_Read_sfnt_Resource): Check the declared size of sfnt resource
	before buffer allocation.

	* src/base/ftmac.c (read_lwfn, FT_New_Face_From_SFNT): Check the
	total resource size before buffer allocation.

2015-09-19  Werner Lemberg  <wl@gnu.org>

	[sfnt] Improve handling of invalid SFNT table entries (#45987).

	This patch fixes weaknesses in function `tt_face_load_font_dir'.

	- It incorrectly assumed that valid tables are always at the
	  beginning.  As a consequence, some valid tables after invalid
	  entries (which are ignored) were never seen.

	- Duplicate table entries (this is, having the same tag) were not
	  rejected.

	- The number of valid tables was sometimes too large, leading to
	  access of invalid tables.

	* src/sfnt/ttload.c (check_table_dir): Add argument to return number
	of valid tables.
	Add another tracing message.
	(tt_face_load_font_dir): Only allocate table array for valid
	entries as returned by `check_table_dir'.
	Reject duplicate tables and adjust number of valid tables
	accordingly.

2015-09-19  Werner Lemberg  <wl@gnu.org>

	[pcf] Improve `FT_ABS' fix from 2015-09-17 (#45999).

	* src/pcf/pcfread.c (pcf_load_font): Do first the cast to FT_Short,
	then take the absolute value.
	Also apply FT_ABS to `height'.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[type42] Fix memory leak (#45989).

	* src/type42/t42parse.c (t42_parse_charstrings): Allow only a single
	`CharStrings' array.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[psaux] Fix memory leak (#45986).

	* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
	Free `temp' in case of error.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[psaux] Improve tracing message.

	* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_MM_BBOX>:
	Handle plural correctly.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[pcf] Fix integer overflows (#45985).

	* src/pcf/pcfread.c (pcf_load_font): Use FT_MulDiv.

2015-09-17  Werner Lemberg  <wl@gnu.org>

	[pcf] Use FT_ABS for some property values (#45893).

	* src/pcf/pcfread.c (pcf_load_font): Take absolute values for
	AVERAGE_WIDTH, POINT_SIZE, PIXEL_SIZE, RESOLUTION_X, and
	RESOLUTION_Y.  In tracing mode, add warnings.

2015-09-16  Werner Lemberg  <wl@gnu.org>

	Minor fixes for some clang warnings.

	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Cast, possible missing
	initialization.

	* src/truetype/ttgload.c (TT_Process_Composite_Component): Cast.

2015-09-15  Werner Lemberg  <wl@gnu.org>

	[type1, type42] Fix memory leaks (#45966).

	* src/type1/t1load.c (parse_blend_axis_types): Handle multiple axis
	names.
	(parse_blend_design_map): Allow only a single design map.
	(parse_encoding): Handle multiple encoding vectors.

	* src/type42/t42parse.c (t42_parse_encoding): Handle multiple
	encoding vectors.

2015-09-15  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix integer type (#45965).

	* src/truetype/ttobjs.c (tt_synth_sfnt_checksum): Implement it.

2015-09-15  Werner Lemberg  <wl@gnu.org>

	* src/pcf/pcfread.c (pcf_load_font): Fix integer overflow (#45964).

2015-09-15  Werner Lemberg  <wl@gnu.org>

	[type1, type42] Check encoding array size (#45961).

	* src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
	(t42_parse_encoding): Do it.

2015-09-14  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftcalc.c (FT_MulFix) [FT_LONG64]: Improve.

2015-09-14  Werner Lemberg  <wl@gnu.org>

	[type1] Fix another potential buffer overflow (#45955).

	* src/type1/t1parse (T1_Get_Private_Dict): Assure that check for
	`eexec' doesn't exceed `limit'.

2015-09-13  Werner Lemberg  <wl@gnu.org>

	Replace `mkinstalldirs' with AC_PROG_MKDIR_P.

	* builds/unix/mkinstalldirs: Removed, no longer needed.

	* builds/unix/configure.raw: Call `AC_PROG_MKDIR_P'.
	Update pwd call for `$INSTALL'.

	* builds/unix/unix-def.in (MKINSTALLDIRS): Use `@MKDIR_P@'.

	* autogen.sh: Updated.

2015-09-13  Werner Lemberg  <wl@gnu.org>

	[winfonts] Check alignment shift count for resource data (#45938).

	* src/winfonts/winfnt.c (fnt_face_get_dll_font): Implement it.

2015-09-13  Werner Lemberg  <wl@gnu.org>

	[type1] Fix potential buffer overflow (#45923).

	* src/type1/t1parse.c (T1_Get_Private_Dict): Assure `cur' doesn't
	point to end of file buffer.

2015-09-13  Werner Lemberg  <wl@gnu.org>

	[gzip] Fix access of small compressed files (#45937).

	* src/gzip/ftgzip.c (ft_gzip_stream_close): Avoid memory leak.

	(ft_gzip_get_uncompressed_file): Correct byte order while reading
	unsigned long value.  Without this change, the whole optimization of
	accessing small files in `FT_Stream_OpenGzip' is never executed!  As
	a consequence, access to PCF files in general (which are normally
	small files) should be much improved now as originally intended.

2015-09-11  Werner Lemberg  <wl@gnu.org>

	[psaux] Fix potential buffer overflow (#45922).

	* src/psaux/psobjs.c (ps_parser_skip_PS_token): If a token is
	enclosed in balanced expressions, ensure that the cursor position
	doesn't get larger than the current limit.

2015-09-11  Werner Lemberg  <wl@gnu.org>

	[base] Avoid crash while tracing `load_mac_face'.

	Reported in Savannah bug #45919.

	* src/base/ftobjs.c (load_mac_face): Honour FT_OPEN_MEMORY while
	tracing.

2015-09-11  Werner Lemberg  <wl@gnu.org>

	[type42] Fix endless loop (#45920).

	* src/type42/t42parse.c (t42_parse_encoding): Synchronize with
	type1's `parse_encoding'.

2015-09-10  Werner Lemberg  <wl@gnu.org>

	[docmaker] Allow `-' in bold and italic markup.

	* src/tools/docmaker/sources.py (re_italic, re_bold): Adjust
	accordingly.

2015-09-09  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftcalc.c (FT_RoundFix): Improve.

2015-09-09  Wojciech Mamrak  <wmamrak@gmail.com>

	* src/base/ftcalc.c (FT_CeilFix, FT_FloorFix): Normalize.

	This commit makes the functions behave as expected, this is,
	rounding towards plus or minus infinity.

2015-09-07  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/smooth/ftgrays.c (gray_render_line): Simplify clipping.

2015-09-04  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[raster,smooth] Microoptimizations.

	* src/raster/ftraster.c (Insert_Y_Turn, Finalize_Profile_Table,
	Beziier_Up, ): Use do-while loops.

	* src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
	gray_convert_glyph): Ditto.

2015-09-04  Werner Lemberg  <wl@gnu.org>

	[autofit] Redesign code ranges (2/2).

	This commit adds two fallback scripts (`latb', `latp') and
	implements support for the no-base character ranges introduced in
	the previous commit.

	* src/autofit/aftypes.h (AF_ScriptClassRec): Add
	`script_uni_nobase_ranges' field.
	(AF_DEFINE_SCRIPT_CLASS): Updated.

	* src/autofit/afscript.h, src/autofit/afstyles.h: Add `latb' and
	`latp' fallback scripts.

	* src/autofit/afblue.dat: Add blue zones for Latin subscript and
	superscript fallback scripts.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afglobal.h (AF_NOBASE): New style flag for no-base
	characters.
	(AF_STYLE_MASK): Updated.

	* src/autofit/afglobal.c (SCRIPT): Updated.
	(af_face_globals_compute_style_coverage): Handle new style flag.

	* src/autofit/aflatin.c (af_latin_hints_apply): Handle new style
	flag.

	* src/autofit/afranges.h (SCRIPT): Use it to export no-base ranges.

2015-09-04  Werner Lemberg  <wl@gnu.org>

	[autofit] Redesign code ranges (1/2).

	This patch introduces auxiliary code ranges that identify no-base
	characters; they refer to glyphs of a script that should be hinted
	without alignments to blue zones (mostly diacritics).

	It also splits off ranges for fallback scripts that handle subscript
	and superscript characters not covered by OpenType features.  For
	example, this greatly helps improve the hinting of various phonetic
	alphabets, which contain a large amount characters that look like
	superscript glyphs.

	Finally, code ranges are updated to Unicode 8.0, and enclosed
	characters are removed in general since they normally look better if
	they stay unhinted.

	* src/autofit/afranges.c (af_latn_uniranges): Updated to Unicode
	8.0.
	Split off superscript-like and subscript-like glyphs into...

	(af_latb_uniranges, af_latp_uniranges): ... these two new arrays.

	(af_xxxx_nobase_uniranges): New arrays that hold no-base characters
	of the corresponding character ranges.

2015-09-03  Werner Lemberg  <wl@gnu.org>

	[autofit] Pass glyph index to hinting function.

	No functionality change yet.

	* src/autofit/aftypes.h (AF_WritingSystem_ApplyHintsFunc): Pass
	glyph index.

	* src/autofit/afcjk.c, src/autofit/afcjk.h (af_cjk_hints_apply),
	src/autofit/afdummy.c (af_dummy_hints_apply), src/autofit/afindic.c
	(af_indic_hints_apply), src/autofit/aflatin.c
	(af_latin_hints_apply), src/autofit/aflatin2.c
	(af_latin2_hints_apply), src/autofit/afloader.c (af_loader_load_g):
	Updated.

2015-08-30  Werner Lemberg  <wl@gnu.org>

	[autofit] Code clean-up.

	* src/autofit/afglobal.h (AF_STYLE_MASK): New macro.
	(AF_STYLE_UNASSIGNED): Use AF_STYLE_MASK for definition.

	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
	Updated.

2015-08-30  Werner Lemberg  <wl@gnu.org>

	[autofit] Make glyph style array use 16bit values.

	* include/freetype/ftautoh.h (FT_Prop_GlyphToScriptMap): Use
	`FT_UShort' for `map' field.

	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage,
	af_face_globals_new), src/autofit/hbshim.c, src/autofit/hbshim.h
	(af_get_coverage): Use FT_UShort for `glyph_styles' array.

	* src/autofit/afglobal.h (AF_STYLE_UNASSIGNED, AF_DIGIT): Extend to
	16 bits.
	(AF_FaceGlobalsRec): Use `FT_UShort' for `glyph_styles' field.

2015-08-26  Werner Lemberg  <wl@gnu.org>

	* builds/unix/configure.raw: Need harfbuzz >= 0.9.21 (#45828).

2015-08-25  Werner Lemberg  <wl@gnu.org>

	[base] Improve kerning tracing and documentation.

	* src/base/ftobjs.c (FT_Get_Kerning): Emit tracing message if
	scaled-down kerning values differ.

2015-08-18  Werner Lemberg  <wl@gnu.org>

	[raster] Remove last remnants of `raster5' driver.

	* src/raster/ftrend1.h (ft_raster5_renderer_class): Removed.

	* src/raster/rastpic.c, src/raster/rastpic.h
	(ft_raster5_renderer_class_pic_init,
	ft_raster5_renderer_class_pic_free): Removed.

2015-08-17  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Improve emboldener (#45596).

	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Correct displacement
	of zero-lenght segments.

2015-08-16  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Reoptimize arithmetic.

	* src/base/ftcalc.c (FT_MulDiv, FT_MulFix) [!FT_LONG64]: Remove
	special cases that slow down the general use.

2015-08-15  pazer  <ibemad@gmail.com>

	Fix C++ compilation (#45762).

	* src/base/ftstroke.c (ft_outline_glyph_class): Use
	FT_CALLBACK_TABLE.

2015-08-14  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[truetype] Clean up.

	* src/truetype/ttgload.c (TT_Process_Composite_Component): Use
	`FT_Outline_Transform' and `FT_Outline_Translate'.
	(translate_array): Dropped.

2015-08-14  Andreas Enge  <andreas.enge@inria.fr>

	* builds/unix/detect.mk (CONFIG_SHELL): Don't handle it (#44261).

2015-08-13  Werner Lemberg  <wl@gnu.org>

	[truetype] Introduce named instance access to GX fonts.

	For functions querying a face, bits 16-30 of the face index can hold
	the named instance index if we have a GX font.  The indices start
	with value 1; value 0 indicates font access without GX variation
	data.

	* include/freetype/freetype.h (FT_FaceRec): Update documentation.
	* include/freetype/internal/sfnt.h: Ditto.

	* src/sfnt/sfobjs.c (sfnt_init_face)
	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Get number of named instances and
	do argument checks.
	(sfnt_load_face): Updated.

	* src/truetype/ttobjs.c (tt_face_init)
	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Use named instance, overwriting
	the style name.

	* src/base/ftobjs.c (open_face_from_buffer,
	open_face_PS_from_sfnt_stream): Updated.
	* src/bdf/bdfdrivr.c (BDF_Face_Init): Updated.
	* src/cff/cffload.c (cff_font_load): Updated.

	* src/cff/cffobjs.c (cff_face_init): Make function exit early for
	pure CFF fonts if `font_index < 0'.
	Updated.

	* src/cid/cidobjs.c (cid_face_init): Updated.
	* src/pcf/pcfdrivr.c (PCF_Face_Init): Updated.
	* src/pfr/pfrobjs.c (pfr_face_init): Updated.
	* src/type1/t1objs.c (T1_Face_Init): Updated.
	* src/type42/t42objs.c (T42_Face_Init): Updated.
	* src/winfonts/winfnt.c (fnt_face_get_dll_font, FNT_Face_Init):
	Updated.

	* docs/CHANGES: Updated.

2015-08-12  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[type1,cff,cid] Streamline font matrix application.

	* src/type1/t1gload.c (T1_Load_Glyph): Directly modify advances only
	if font matrix is not trivial.
	* src/cff/cffgload.c (cff_slot_load): Ditto.
	* sff/cid/cidgload.c (cid_slot_load_glyph): Ditto for advances and the
	entire outline.

2015-08-11  Werner Lemberg  <wl@gnu.org>

	[builds/unix] Minor.

	* builds/unix/configure.raw:
	s/lib{priv,staticconf}/libs{priv,staticconf}/ for orthogonality with
	similarly named uppercase variables.

2015-08-10  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[type1,cid,type42] Minor improvements.

	* src/type1/t1load.c (t1_parse_font_matrix): Scale units per EM only
	when necessary. Refresh comments.
	* src/cid/cidload.c (cid_parse_font_matrix): Ditto.
	* src/type42/t42parse.c (t42_parse_font_matrix): Refresh comments.

2015-08-08  Werner Lemberg  <wl@gnu.org>

	[type42] Fix glyph access.

	This is a severe bug: We've missed one level of indirection, as
	described in the Type 42 specification.  As a result, ftview
	sometimes showed incorrect glyphs for given glyph names, and even
	displayed `error 0x0006' (invalid argument!) in case the number of
	glyph indices differed between the Type 42 font and the embedded
	TTF.

	Apparently, noone ever noticed it; this shows how much Type 42 fonts
	are in use...

	* src/type42/t42objs.c (T42_GlyphSlot_Load): Map Type 42 glyph index
	to embedded TTF's glyph index.

2015-08-08  Werner Lemberg  <wl@gnu.org>

	[type42] Minor clean-up.

	* src/type42/t42parse.c (t42_parse_font_matrix): Remove unused
	variable.

2015-08-06  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[type42] Parse FontMatrix according to specifications.

	* src/type42/t42parse.c (t42_parse_font_matrix): Type 42 FontMatrix
	does not need scaling by 1000. Units_per_EM are taken from the
	embedded TrueType.

2015-08-06  Werner Lemberg  <wl@gnu.org>

	[autofit] Improve Arabic hinting.

	Problem reported by Titus Nemeth <tn@tntypography.eu> (by using
	ttfautohint).

	* src/autofit/afblue.dat: Add neutral blue zone for the tatweel
	character.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

2015-08-05  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[truetype] Clean up types.

	* src/truetype/ttobjs.c (TT_Size): Move declaration from here.
	* include/freetype/internal/tttypes.h (TT_Size): ... to here.
	(TT_LoaderRec): Switch to appropriate types for `face' and `size'.
	* src/truetype/ttgload.c: Remove corresponding type casts.
	* src/truetype/ttsubpix.c: Ditto.

2015-08-05  Werner Lemberg  <wl@gnu.org>

	[autofit] Improve recognition of flat vs. rounded segments.

	Lower the flatness threshold from upem/8 to upem/14, making the
	auto-hinter accept shorter elements.

	Synchronize flat/round stem selection algorithm with blue zone code.

	* src/autofit/aflatin.c (FLAT_THRESHOLD): New macro.
	(af_latin_metrics_init_blues): Use it.
	(af_latin_hints_compute_segments): Collect information on maximum
	and minimum coordinates of `on' points; use this to add a constraint
	for the flat/round decision similar to
	`af_latin_metrics_init_blues'.

2015-08-04  Werner Lemberg  <wl@gnu.org>

	Another left-shift bug (#45681).

	* src/base/ftobjs.c (IsMacBinary): Only accept positive values for
	`dlen'.

2015-08-03  Alexei Podtelezhnikov  <apodtele@gmail.com>

	[base] Fix `ft_corner_orientation'.

	Remove casting from `FT_Long' to `FT_Int' that might change the sign
	of the return value and make it faster too.

	* src/base/ftcalc.c (ft_corner_orientation): On 32-bit systems, stay
	with 32-bit arithmetic when safe. Use plain math on 64-bit systems.
	* src/pshinter/pshalgo.c: Remove old unused code.

2015-08-03  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttgload.c (load_truetype_glyph)
	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix crash for composite glyphs
	having a depth greater than 1.

2015-08-03  Werner Lemberg  <wl@gnu.org>

	Fix typo in clang bug from 2015-07-31 (#45678).

	* src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Fix inequality.

2015-08-02  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Improve shared library support.

	Based on a patch from John Cary <cary@txcorp.com>.

2015-08-02  Werner Lemberg  <wl@gnu.org>

	* builds/unix/freetype-config.in (enable_shared): Remove.  Unused.

2015-08-02  Werner Lemberg  <wl@gnu.org>

	Fix more invalid left-shifts.

	* src/pfr/pfrgload.c (pfr_glyph_load_compound): Use multiplication,
	not left-shift.

	* src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar,
	tt_face_vary_cvt, TT_Vary_Apply_Glyph_Deltas): Use multiplication,
	not left-shift.

2015-07-31  Werner Lemberg  <wl@gnu.org>

	Fix some bugs found by clang's `-fsanitize=undefined' (#45661).

	* src/base/ftrfork.c (FT_Raccess_Get_HeaderInfo): Only accept
	positive values from header.
	Check overflow.

	* src/base/ftoutln.c (SCALED): Correctly handle left-shift of
	negative values.

	* src/bdf/bdf.h (_bdf_glyph_modified, _bdf_set_glyph_modified,
	_bdf_clear_glyph_modified): Use unsigned long constant.

	* src/bdf/bdfdrivr.c (BDF_Size_Select, BDF_Glyph_Load): Don't
	left-shift values that can be negative.

	* src/pcf/pcfdrivr.c (PCF_Size_Select, PCF_Glyph_Load): Don't
	left-shift values that can be negative.

	* src/raster/ftraster.c (SCALED): Correctly handle left-shift of
	negative values.

	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics): Don't left-shift
	values that can be negative.

	* src/truetype/ttgload.c (TT_Load_Composite_Glyph,
	compute_glyph_metrics, load_sbit_image): Don't left-shift values
	that can be negative.

2015-07-31  Werner Lemberg  <wl@gnu.org>

	Define FT_LONG_MAX.

	* include/freetype/config/ftstdlib.h (FT_LONG_MAX): New macro.
	* src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use it.

2015-07-28  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftcalc.c (FT_Vector_NormLen): Clarify.

2015-07-27  Alexei Podtelezhnikov  <apodtele@gmail.com>

	* src/base/ftcalc.c (FT_Vector_NormLen): Explicate type conversions.

2015-07-26  Matthias Clasen  <matthias.clasen@gmail.com>

	[cff] Don't use `hmtx' table for LSB (#45520).

	* src/cff/cffgload.c (cff_slot_load): Use `htmx' table for advance
	width only.  Bug introduced 2015-04-10.

2015-07-09  Werner Lemberg  <wl@gnu.org>

	Better support of user-supplied C++ namespaces.

	See

	  http://lists.nongnu.org/archive/html/freetype-devel/2015-07/msg00008.html

	for a rationale.

	* src/autofit/afpic.h, src/base/basepic.h, src/cff/cffpic.h,
	src/pshinter/pshpic.h, src/psnames/pspic.h, src/raster/rastpic.h,
	src/sfnt/sfntpic.h, src/smooth/ftspic.h, src/truetype/ttpic.h
	(FT_BEGIN_HEADER, FT_END_HEADER): Move macro calls to not enclose
	header files that contain FT_{BEGIN,END}_HEADER macros by
	themselves.

	* src/autofit/aftypes.h [FT_DEBUG_AUTOFIT]: Include
	FT_CONFIG_STANDARD_LIBRARY_H earlier.

	* src/truetype/ttpic.h: Include FT_INTERNL_PIC_H.

2015-07-07  Werner Lemberg  <wl@gnu.org>

	[sfnt] Make `tt_face_get_name' member of the SFNT interface.

	* include/freetype/internal/sfnt.h (TT_Get_Name_Func): New
	prototype.
	(SFNT_Interface, FT_DEFINE_SFNT_INTERFACE): New member `get_name'.

	* src/sfnt/sfdriver.c (sfnt_interface): Updated.

	* src/sfnt/sfobjs.c (tt_face_get_name): Tag it with `LOCAL_DEF'.
	* src/sfnt/sfobjs.h: Add prototype for it.

2015-06-30  Werner Lemberg  <wl@gnu.org>

	Fix some clang compiler warnings.

	* src/base/ftoutln.c (FT_Outline_EmboldenXY), src/cff/cf2intrp.c
	(cf2_interpT2CharString), src/truetype/ttgload.c
	(load_truetype_glyph), src/truetype/ttgxvar.c (tt_handle_deltas),
	src/truetype/ttinterp.c (Ins_INSTCTRL): Fix signedness issues.

2015-06-29  Alexei Podtelezhnikov <apodtele@gmail.com>

	[truetype] Speed up bytecode interpreter.

	* src/truetype/ttinterp.c (Normalize): Use `FT_Vector_NormLen'.

2015-06-29  Alexei Podtelezhnikov <apodtele@gmail.com>

	[base] Speed up emboldening.

	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Use
	`FT_Vector_NormLen'.

2015-06-29  Alexei Podtelezhnikov <apodtele@gmail.com>

	[base] Implement fast vector normalization.

	The function uses Newton's iterations instead of dividing vector
	components by its length, which needs a square root. This is,
	literally, a bit less accurate but a lot faster.

	* src/base/ftcalc.c (FT_Vector_NormLen): New function.

2015-06-28  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Always create `ftconfig.h'.

	For non-UNIX builds, the file stays unmodified.  However, it's
	better to have the main configuration files at the same place
	regardless of the OS.

2015-06-28  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Improve MSVC support (#43737).

2015-06-28  Werner Lemberg  <wl@gnu.org>

	[cmake] Check for libraries and create `ftoption.h'.

	* builds/FindHarfBuzz.cmake: New file, taken from

	  https://trac.webkit.org/browser/trunk/Source/cmake/FindHarfBuzz.cmake

	* CMakeLists.Txt: Add path to local cmake modules.
	Find dependencies for zlib, bzip2, libpng, and harfbuzz.
	Create `ftoption.h' file.
	Set up include and linker stuff for libraries.

2015-06-28  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Fix creation of `ftconfig.h'.
	Check for UNIX header files using `check_include_file'.
	Set up correct header include directories.

2015-06-28  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Disallow in-source builds.

2015-06-27  Werner Lemberg  <wl@gnu.org>

	* src/tools/docmaker/utils.py (check_output): Add missing `\n'.

2015-06-26  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Select platform-dependent `ftdebug.c'.

2015-06-25  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt: Use cmake functions for generating `ftconfig.h'.
	Additionally, do this for UNIX only.

2015-06-25  Werner Lemberg  <wl@gnu.org>

	* CMakeLists.txt (BASE_SRCS): Use `ftbase.c' and `psnames.c'.

2015-06-25  Werner Lemberg  <wl@gnu.org>

	Another adjustment to header locations.

	This change is a result of a discussion thread on freetype-devel

	  http://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00041.html

	Re-introduce the `freetype2' subdirectory for all FreeType header
	files after installation, and rename the `freetype2' subdirectory in
	the git repository to `freetype'.

	* include/freetype2: Renamed to...
	* include/freetype: This.

	* CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
	PRIVATE_HEADERS): Updated.
	Update creation of `ftconfig.h'.
	Install generated `ftconfig.h'.

	* Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.

	* builds/amiga/include/config/ftconfig.h, builds/freetype.mk
	(PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
	builds/unix/freetype2.in: Updated.

	* builds/unix/freetype-config.in: Updated.
	* builds/unix/configure.raw: Don't check for `rmdir'.
	* builds/unix/unix-def.in (DELDIR): Use `rm -rf', which is portable
	according to the autoconf info manual.
	* builds/unix/install.mk (install, uninstall,
	distclean_project_unix): Update and simplify.

	* builds/wince/*, builds/windows/*: Updated.

	* devel/ft2build.h, include/ft2build.h: Updated.

	* include/freetype2/config/ftheader.h,
	include/freetype2/internal/ftserv.h,
	include/freetype2/internal/internal.h: Update all header file
	macros.

	* src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.

	* docs/*: Updated.

2015-06-24  Alexei Podtelezhnikov <apodtele@gmail.com>

	* src/bdf/bdflib.c (_bdf_parse_start): Disallow 0 bpp.

2015-06-24  Alexei Podtelezhnikov <apodtele@gmail.com>

	* src/bdf/bdflib.c (_bdf_parse_start): Simplify bpp parsing.

2015-06-23  Werner Lemberg  <wl@gnu.org>

	s/TYPEOF/FT_TYPEOF/ (#45376).

	* builds/unix/ftconfig.in, builds/vms/ftconfig.in,
	include/freetype2/config/ftconfig.h,
	include/freetype2/internal/ftobjs.h, src/autofit/afwarp.h: Do it.

2015-06-22  Werner Lemberg  <wl@gnu.org>

	Fix Savannah bug #45097.

	We no longer `pollute' the namespace of possible header file names;
	instead we move `ft2build.h' up by one level so that it gets
	installed in the default include directory (e.g.,
	/usr/local/include).  After this commit, only `ft2build.h' stays in
	the compiler's include path.

	No visible changes for the user who follows the standard FreeType
	header inclusion rules.

	* include/*: Move to ...
	* include/freetype2/*: This directory, except `ft2build.h'.

	* CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS,
	PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated.

	* builds/amiga/include/config/ftconfig.h, builds/freetype.mk
	(PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work),
	builds/unix/install.mk (install, uninstall),
	builds/unix/freetype2.in: Updated.

	* builds/unix/freetype-config.in: Updated.
	Emit -I directory only if it is not `/usr/include'.

	* builds/wince/*, builds/windows/*: Updated.

	* devel/ft2build.h, include/ft2build.h: Updated.

	* include/freetype2/config/ftheader.h,
	include/freetype2/internal/ftserv.h,
	include/freetype2/internal/internal.h: Update all header file
	macros.

	* src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated.

2015-06-21  Werner Lemberg  <wl@gnu.org>

	Make Jam support work again.

	This is just very basic stuff and just a little bit tested on
	GNU/Linux only.  I won't delve into this since I'm not a Jam user.

	* Jamfile: Call `HDRMACRO' for `ftserv.h' also.
	(DEFINES): Replace with...
	(CCFLAGS): ... this.

	* src/Jamfile: Don't call `HDRMACRO' for `internal.h'; this is
	already handled in the top-level Jamfile.

	* src/autofit/Jamfile (DEFINES): Replace with...
	(CCFLAGS): ... this.
	(_sources): Add missing files.

	* src/cache/Jamfile: Don't call `HDRMACRO' for `ftcache.h'; it no
	longer contains macro header definitions.

	* src/base/Jamfile, src/cff/Jamfile, src/sfnt/Jamfile,
	src/truetype/Jamfile (_sources): Add missing files.

2015-06-16  Werner Lemberg  <wl@gnu.org>

	Fix Savannah bug #45326.

	* src/sfnt/sfntpic.h (SFNT_SERVICES_GET): Remove duplicate
	definitions.

2015-06-07  Werner Lemberg  <wl@gnu.org>

	* Version 2.6 released.
	=======================


	Tag sources with `VER-2-6'.

	* docs/VERSION.DLL: Update documentation and bump version number to
	2.6.

	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2005/index.html,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2008/index.html,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/index.html,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualc/index.html,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj,
	builds/windows/visualce/index.html,
	builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2005-ce/index.html,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/wince/vc2008-ce/index.html: s/2.5.5/2.6/, s/255/26/.

	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 6.
	(FREETYPE_PATCH): Set to 0.

	* builds/unix/configure.raw (version_info): Set to 18:0:12.
	* CMakeLists.txt (VERSION_MINOR): Set to 6.
	(VERSION_PATCH): Set to 0.

	* src/autofit/afmodule.c [!FT_MAKE_OPTION_SINGLE_OBJECT]: Add
	declarations for dumping functions.

	* src/truetype/ttinterp.c (TT_New_Context): Pacify compiler.

	* builds/toplevel.mk: Use `freetype.mk's code to compute the version
	string.
	Don't include a zero patch level in version string.
	* builds/freetype.mk: Remove code for computing the version string.

2015-06-06  Ashish Azad  <ashish.azad@samsung.com>

	Fix Savannah bug #45260.

	* src/pfr/pfrdrivr.c (pfr_get_kerning): Fix typo.

2015-06-03  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix memory leak.

	Problem reported by Grissiom <chaos.proton@gmail.com>; in

	  http://lists.nongnu.org/archive/html/freetype/2015-05/msg00013.html

	there is an example code to trigger the bug.

	* src/truetype/ttobjs.c (tt_size_init_bytecode): Free old `size'
	data before allocating again.  Bug most probably introduced four
	years ago in version 2.4.3.

2015-06-02  Werner Lemberg  <wl@gnu.org>

	[raster] Add more tracing.

	* src/raster/ftraster.c (FT_TRACE7) [_STANDALONE_]: Define.
	(Vertical_Sweep_Span, Vertical_Sweep_Drop, Horizontal_Sweep_Span,
	Horizontal_Sweep_Drop, Render_Glyph): Add tracing calls.

2015-06-01  Werner Lemberg  <wl@gnu.org>

	[truetype] While tracing opcodes, show code position and stack.

	* src/truetype/ttinterp.c: Change all existing TRACE7 calls to
	TRACE6.
	(opcode_name): Add string lengths.
	(TT_RunIns): Implement display of code position and stack.

2015-05-31  Werner Lemberg  <wl@gnu.org>

	[truetype] In GX, make private point numbers work correctly.

	This is completely missing in Apple's documentation: If a `gvar'
	tuple uses private point numbers (this is, deltas are specified for
	some points only), the uncovered points must be interpolated for
	this tuple similar to the IUP bytecode instruction.  Examples that
	need this functionality are glyphs `Oslash' and `Q' in Skia.ttf.

	* src/truetype/ttgxvar.c (tt_delta_shift, tt_delta_interpolate,
	tt_handle_deltas): New functions.
	(TT_Vary_Get_Glyph_Deltas): Renamed to...
	(TT_Vary_Apply_Glyph_Deltas): ... this; it directly processes the
	points and does no longer return an array of deltas.
	Add tracing information.
	Call `tt_handle_deltas' to interpolate missing deltas.
	Also fix a minor memory leak in case of error.

	* src/truetype/ttgxvar.h: Updated.

	* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
	load_truetype_glyph): Updated.

2015-05-31  Werner Lemberg  <wl@gnu.org>

	[truetype] In GX, make intermediate tuplets work at extrema.

	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix range condition.

2015-05-31  Werner Lemberg  <wl@gnu.org>

	[truetype] Add tracing information to GX code.

	* src/truetype/ttgxvar.c (ft_var_load_avar, ft_var_load_gvar,
	ft_var_apply_tuple, TT_Get_MM_Var, TT_Set_MM_Blend,
	TT_Set_Var_Design, tt_face_vary_cvt): Do it.

2015-05-28  Werner Lemberg  <wl@gnu.org>

	* src/tools/apinames.c (names_dump): Fix invalid reference.

	Problem reported by Guzman Mosqueda, Jose R
	<jose.r.guzman.mosqueda@intel.com>.

2015-05-24  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix commit from 2015-05-22.

	* src/truetype/ttgload.c, src/truetype/ttinterp.c: Guard new code
	with `TT_CONFIG_OPTION_SUBPIXEL_HINTING'.

	Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.

2015-05-23  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix return values of GETINFO bytecode instruction.

	* src/truetype/ttinterp.h (TT_ExecContextRec): New fields
	`vertical_lcd' and `gray_cleartype'.

	* src/truetype/ttgload.c (tt_loader_init): Initialize new fields.
	Change `symmetrical smoothing' to TRUE, since FreeType produces
	exactly this.

	* src/truetype/ttinterp.c (Ins_GETINFO): Fix selector/return bit
	values for symmetrical smoothing, namely 11/18.
	Handle bits for vertical LCD subpixels (8/15) and Gray ClearType
	(12/19).

2015-05-23  Werner Lemberg  <wl@gnu.org>

	[truetype] Minor.

	* src/truetype/ttinterp.h (TT_ExecContext):
	 s/subpixel/subpixel_hinting.

	* src/truetype/ttgload.c, src/truetype/ttgload.h: Updated.

2015-05-22  Werner Lemberg  <wl@gnu.org>

	[truetype] Support selector index 3 of the INSTCTRL instruction.

	This flag activates `native ClearType hinting', disabling backwards
	compatibility mode as described in Greg Hitchcocks whitepaper.  In
	other words, it enables unrestricted functionality of all TrueType
	instructions in ClearType.

	* src/truetype/ttgload.c (tt_get_metrics): Call `sph_set_tweaks'
	unconditionally.
	(tt_loader_init): Unset `ignore_x_mode' flag if bit 2 of
	`GS.instruct_control' is active.

	* src/truetype/ttinterp.c (Ins_INSTCTRL): Handle selector index 3.
	(Ins_GETINFO): Updated.

	* docs/CHANGES: Document it.

2015-05-20  Werner Lemberg  <wl@gnu.org>

	[truetype] Minor.

	* src/truetype/ttinterp.h (SetSuperRound): Fix type of `GridPeriod'
	argument.

2015-05-17  Werner Lemberg  <wl@gnu.org>

	[truetype] Fix loading of composite glyphs.

	* src/truetype/ttgload.c (TT_Load_Composite_Glyph): If the
	ARGS_ARE_XY_VALUES flag is not set, handle argument values as
	unsigned.  I trust `ttx' (which has exactly such code) that it does
	the right thing here...

	The reason that noone has ever noticed this bug is probably the fact
	that point-aligned subglyphs are rare, as are subglyphs with a
	number of points in the range [128;255], which is quite large (or
	even in the range [32768;65535], which is extremely unlikely).

2015-05-12  Chris Liddell  <chris.liddell@artifex.com>

	[cff] Make the `*curveto' operators more tolerant.

	* src/cff/cf2intrp.c (cf2_interpT2CharString): The opcodes
	`vvcurveto', `hhcurveto', `vhcurveto', and `hvcurveto' all iterate,
	pulling values off the stack until the stack is exhausted.
	Implicitly the stack must be a multiple (or for subtly different
	behaviour) a multiple plus a specific number of extra values deep.
	If that's not the case, enforce it (as the old code did).

2015-05-12  Chris Liddell  <chris.liddell@artifex.com>

	[cff] fix incremental interface with new cff code.

	* src/cff/cf2ft.c (cf2_getSeacComponent): When using the incremental
	interface to retrieve glyph data for a SEAC, it be left to the
	incremental interface callback to apply the encoding to raw
	character index (as it was in the previous code).

2015-04-29  Alexei Podtelezhnikov <apodtele@gmail.com>

	[autofit] Speed up IUP.

	* src/autofit/afhints.c (af_iup_interp): Separate trivial snapping to
	the same position from true interpolation, use `scale' to reduce
	divisions.

2015-04-28  Werner Lemberg  <wl@gnu.org>

	[cff] Use `name' table for PS name if we have a SFNT-CFF.

	This follows the OpenType 1.7 specification.  See

	  http://tug.org/pipermail/tex-live/2015-April/036634.html

	for a discussion.

	* src/cff/cffdrivr.c (cff_get_ps_name): Use the `sfnt' service if we
	have an SFNT.

2015-04-27  Alexei Podtelezhnikov <apodtele@gmail.com>

	[truetype] Speed up IUP.

	* src/truetype/ttinterp.c (_iup_worker_interpolate): Separate trivial
	snapping to the same position from true interpolation.

2015-04-21  Werner Lemberg  <wl@gnu.org>

	[autofit] By default, enable warping code but switch off warping.

	Suggested by Behdad.

	* include/config/ftoption.h: Define AF_CONFIG_OPTION_USE_WARPER.

	* src/autofit/afmodule.c (af_autofitter_init): Initialize `warping'
	with `false'.

2015-04-21  Werner Lemberg  <wl@gnu.org>

	* docs/CHANGES: Updated.

2015-04-21  Werner Lemberg  <wl@gnu.org>

	[autofit] Introduce `warping' property.

	This code replaces the debugging hook from the previous commit with
	a better, more generic solution.

	* include/ftautoh.h: Document it.

	* src/autofit/afmodule.h (AF_ModuleRec)
	[AF_CONFIG_OPTION_USE_WARPER]: Add `warping' field.

	* src/autofit/afmodule.c (_af_debug_disable_warper): Remove.
	(af_property_set, af_property_get, af_autofitter_init)
	[AF_CONFIG_OPTION_USE_WARPER]: Handle `warping' option.

	* src/autofit/afhints.h (AF_HINTS_DO_WARP): Remove use of the no
	longer existing `_af_debug_disable_warper'.

	* src/autofit/afcjk.c (af_cjk_hints_init), src/autofit/aflatin.c
	(af_latin_hints_init), src/autofit/aflatin2.c (af_latin2_hints_init)
	[AF_CONFIG_OPTION_USE_WARPER]: Add `AF_SCALER_FLAG_NO_WARPER' to the
	scaler flags if warping is off.

	* src/autofit/aftypes.h: Updated.

2015-04-16  Werner Lemberg  <wl@gnu.org>

	[autofit] Add debugging hook to disable warper.

	* src/autofit/afmodule.c (_af_debug_disable_warper)
	[FT_DEBUG_AUTOFIT]: New global variable.

	* src/autofit/aftypes.h: Updated.
	(AF_SCALER_FLAG_NO_WARPER): New macro (not actively used yet).

	* src/autofit/afhints.h (AF_HINTS_DO_WARP): New macro.

	* src/autofi/aflatin.c (af_latin_hints_apply)
	[AF_CONFIG_OPTION_USE_WARPER]: Use `AF_HINTS_DO_WARP' to control use
	of warper.

	* src/autofit/afcjk.c (af_cjk_hints_init, af_cjk_hints_apply)
	[AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.

	* src/autofit/aflatin2.c (af_latin2_hints_apply)
	[AF_CONFIG_OPTION_USE_WARPER]: Synchronize with `aflatin.c'.

2015-04-10  Werner Lemberg  <wl@gnu.org>

	[cff] Update advance width handling to OpenType 1.7.

	Problem reported by Behdad.

	* src/cff/cffdrivr.c (cff_get_advances): Handle SFNT case
	separately.

	* src/cff/cffgload.c (cff_slot_load): Use advance width and side
	bearing values from `hmtx' table if present.

2015-04-03  Alexei Podtelezhnikov <apodtele@gmail.com>

	* src/autofit/afhints.c (af_glyph_hints_reload): Use do-while loop.

2015-04-02  Alexei Podtelezhnikov <apodtele@gmail.com>

	* src/autofit/aflatin.c (af_latin_hint_edges): Reduce logic.

2015-04-01  Alexei Podtelezhnikov <apodtele@gmail.com>

	[autofit] Finish the thought.

	* src/autofit/afhints.c (af_direction_compute): make sure the long arm
	is never negative so that its `FT_ABS' is not necessary.

2015-04-01  Werner Lemberg  <wl@gnu.org>

	[autofit] Call dumper functions for tracing.

	* src/autofit/afcjk.c (af_cjk_hints_apply): Remove dead code.
	* src/autofit/afhints.c (af_glyph_hints_dump_points): Minor
	improvement.
	* src/autofit/afmodule.c (af_autofitter_load_glyph): Implement it.

2015-04-01  Werner Lemberg  <wl@gnu.org>

	[autofit] Make debugging stuff work again.

	The interface to ftgrid was broken in the series of commits starting
	with

	  [autofit] Allocate AF_Loader on the stack instead of AF_Module.

	from 2015-01-14.

	* src/autofit/afmodule.c (_af_debug_hints_rec) [FT_DEBUG_AUTOFIT]:
	Use a global AF_GlyphHintsRec object for debugging.
	(af_autofitter_done, af_autofitter_load_glyph): Updated.

	* src/autofit/afloader.c (af_loader_init, af_loader_done): Updated.

2015-04-01  Werner Lemberg  <wl@gnu.org>

	* src/autofit/afhints.c (af_glyph_hints_done): Fix minor thinko.

2015-03-29  Werner Lemberg  <wl@gnu.org>

	[cff] Fix Savannah bug #44629.

	* src/cff/cf2font.h (CF2_MAX_SUBR), src/cff/cffgload.h
	(CFF_MAX_SUBRS_CALLS): Set to 16.

2015-03-29  Werner Lemberg  <wl@gnu.org>

	[type1, truetype] Make the MM API more flexible w.r.t. `num_coords'.

	This commit allows `num_coords' to be larger or smaller than the
	number of available axes while selecting a design instance, either
	ignoring excess data or using defaults if data is missing.

	* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
	Implement it.

	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design,
	T1_Set_Var_Design): Ditto.

2015-03-29  Werner Lemberg  <wl@gnu.org>

	[type1] Minor.

	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Use
	FT_THROW.
	(T1_Set_Var_Design): Use T1_MAX_MM_AXIS and FT_THROW.

2015-03-27  Werner Lemberg  <wl@gnu.org>

	[cff] Trace charstring nesting levels.

	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdCALLGSUBR,
	cf2_cmdCALLSUBR, cf2_cmdRETURN>: Implement it.

	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
	<cff_op_callsubr, cff_op_callgsubr, cff_op_return>: Ditto.

2015-03-21  Alexei Podtelezhnikov <apodtele@gmail.com>

	[base] Optimize `FT_Angle_Diff'.

	Under normal circumstances we are usually close to the desired range
	of angle values, so that the remainder is not really necessary.

	* src/base/fttrigon.c (FT_Angle_Diff): Use loops instead of remainder.

	* src/autofit/aftypes.h (AF_ANGLE_DIFF): Ditto in the unused macro.

2015-03-21  Werner Lemberg  <wl@gnu.org>

	[truetype] Improve `gvar' handling.

	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Correctly handle
	single-element runs.  Cf. glyph `Q' in Skia.ttf with weights larger
	than the default.

2015-03-20  Alexei Podtelezhnikov <apodtele@gmail.com>

	* src/base/fttrigon.c (FT_Vector_Rotate): Minor refactoring.

2015-03-17  Alexei Podtelezhnikov <apodtele@gmail.com>

	Fix Savannah bug #44412 (part 2).

	* src/base/fttrigon.c (FT_Sin, FT_Cos, FT_Tan): Call `FT_Vector_Unit'.

2015-03-11  Werner Lemberg  <wl@gnu.org>

	[autofit] Add support for Arabic script.

	Thanks to Titus Nemeth <tn@tntypography.eu> for guidance!

	* src/autofit/afblue.dat: Add blue zone data for Arabic.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Arabic standard characters.

	* src/autofit/afranges.c: Add Arabic data.

	* src/autofit/afstyles.h: Add Arabic data.

	* docs/CHANGES: Document it.

2015-03-11  Werner Lemberg  <wl@gnu.org>

	Rename `svxf86nm.h' to `svfntfmt.h'; update related symbols.

	* include/internal/ftserv.h (FT_SERVICE_XFREE86_NAME_H): Renamed
	to...
	(FT_SERVICE_FONT_FORMAT_H): This.

	* include/internal/services/svfntfmt.h (FT_XF86_FORMAT_*): Renamed
	to ...
	(FT_FONT_FORMAT_*): This.

	src/base/ftfntfmt.c, src/bdf/bdfdrivr.c, src/cff/cffdrivr.c,
	src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c,
	src/truetype/ttdriver.c, src/type1/t1driver.c,
	src/type42/t42drivr.c, src/winfonts/winfnt.c: Updated.

2015-03-11  Werner Lemberg  <wl@gnu.org>

	[base] Rename `FT_XFREE86_H' to `FT_FONT_FORMATS_H'.

	* include/config/ftheader.h: Implement it.
	* src/base/ftfntfmt.c, docs/CHANGES: Updated.

2015-03-11  Werner Lemberg  <wl@gnu.org>

	[base] Rename `FT_Get_X11_Font_Format' to `FT_Get_Font_Format'.

	* include/ftfntfmt.h, src/base/ftfntfmt.c: Implement it.

	* docs/CHANGES: Updated.

2015-03-11  Werner Lemberg  <wl@gnu.org>

	Fix automatic copyright updating.

	* src/tools/update-copyright: Make scanning of `no-copyright'
	actually work.

	* src/tools/no-copyright: Don't include README in general.

2015-03-11  Werner Lemberg  <wl@gnu.org>

	Rename `ftxf86.[ch]' to `ftfntfmt.[ch]'.

	CMakeLists.txt, builds/amiga/makefile, builds/amiga/makefile.os4,
	builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
	builds/mac/FreeType.m68k_far.make.txt,
	builds/mac/FreeType.ppc_carbon.make.txt,
	builds/mac/FreeType.ppc_classic.make.txt, builds/symbian/bld.inf,
	builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
	builds/wince/vc2008-ce/freetype.vcproj,
	builds/windows/vc2005/freetype.vcproj,
	builds/windows/vc2008/freetype.vcproj,
	builds/windows/vc2010/freetype.vcxproj,
	builds/windows/vc2010/freetype.vcxproj.filters,
	builds/windows/visualc/freetype.dsp,
	builds/windows/visualc/freetype.vcproj,
	builds/windows/visualce/freetype.dsp,
	builds/windows/visualce/freetype.vcproj, docs/INSTALL.ANY,
	include/config/ftheader.h, include/ftfntfmt.h, modules.cfg,
	src/base/ftfntfmt.c, vms_make.com: Updated.

2015-03-10  Alexei Podtelezhnikov <apodtele@gmail.com>

	Fix Savannah bug #44412 (part 1).

	* src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns.

2015-03-10  Werner Lemberg  <wl@gnu.org>

	[base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'.

	* include/ftbitmap.h, src/base/ftbitmap.c: Implement it.
	Update all callers.

	* docs/CHANGES: Updated.

2015-03-06  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.

	Found by Alexei.

2015-03-05  Alexei Podtelezhnikov <apodtele@gmail.com>

	* src/base/ftstroke.c: Simplify.

2015-03-04  Werner Lemberg  <wl@gnu.org>

	[truetype] Some fixes and code refactoring in `ttgxvar.c'.

	* src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix return value
	of `point_cnt' if two bytes are read.
	Use a more vertical coding style.
	(ft_var_readpackeddeltas): Use FT_UInt for `delta_cnt' parameter.
	Use a more vertical coding style.

2015-03-03  Werner Lemberg  <wl@gnu.org>

	[autofit] Fix Savannah bug #44241.

	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Reject glyphs
	with less than 3 points.

2015-03-02  Werner Lemberg  <wl@gnu.org>

	Simplify `TYPEOF' macro.

	No need for two arguments.

	* include/config/ftconfig.h, builds/unix/ftconfig.in,
	builds/vms/ftconfig.h (TYPEOF): Updated.

	* include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
	src/autofit/afwarp.h (AF_WARPER_FLOOR): Updated.

2015-03-01  Werner Lemberg  <wl@gnu.org>

	Various compiler warning fixes for `make multi'.

	* src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges),
	src/autofit/aflatin.c (af_latin_hint_compute_blue_edges,
	af_latin_hint_edges), src/autofit/aflatin2.c
	(af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare
	as `static'.

	* src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH):
	Removed.  Unused.
	* src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H.
	* src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed.  Unused.

	* src/cff/cf2intrp.c: Include `cf2intrp.h'.
	* src/cff/cffdrivr.c (PAIR_TAG): Removed.  Unused.

	* src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed.  Unused.

	* src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'.

	* src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX):
	Removed.  Unused.

	* src/raster/ftraster.c (Render_Glyph): Declare as `static'.

	* src/sfnt/ttpost.c (load_format_20): Fix signedness warning.

	* src/truetype/ttdriver.c (PAIR_TAG): Removed.  Unused.
	* src/truetype/ttsubpix.c (is_member_of_family_class,
	is_member_of_style_class): Declare as `static'.

	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare
	as `static'.
	* src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as
	`static'.
	(T1_FIELD_COUNT): Removed.  Unused.
	* src/type1/t1parse.h (T1_Done_Table): Removed.  Unused.

	* src/type42/t42parse.c (T1_Done_Table): Removed.  Unused.

2015-02-25  Werner Lemberg  <wl@gnu.org>

	[psaux] Signedness fixes.

	* include/internal/psaux.h, src/psaux/afmparse.c,
	src/psaux/afmparse.h, src/psaux/psconv.c, src/psaux/psobjs.c,
	src/psaux/t1cmap.c, src/psaux/t1decode.c: Apply.

2015-02-25  Werner Lemberg  <wl@gnu.org>

	[otvalid] Signedness fixes.

	* src/otvalid/otvcommn.c, src/otvalid/otvgdef.c,
	src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvmath.c:
	Apply.

2015-02-25  Werner Lemberg  <wl@gnu.org>

	* src/bzip2/ftbzip2.c (ft_bzip2_alloc): Signedness fix.

2015-02-25  Werner Lemberg  <wl@gnu.org>

	[lzw] Signedness fixes.

	* src/lzw/ftzopen.c, src/lzw/ftzopen.h: Apply.

2015-02-25  Werner Lemberg  <wl@gnu.org>

	[gxvalid] Signedness fixes.

	* src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
	src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
	src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
	src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
	src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
	src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
	src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.

2015-02-25  Werner Lemberg  <wl@gnu.org>

	[cache] Signedness fixes.

	* src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c,
	src/cache/ftcmanag.c, src/cache/ftcsbits.c: Apply.

2015-02-25  Werner Lemberg  <wl@gnu.org>

	Change dimension fields in `FTC_ImageTypeRec' to unsigned type.

	This doesn't break ABI.

	* include/ftcache.h (FTC_ImageTypeRec): Use unsigned types for
	`width' and `height'.

	* docs/CHANGES: Document it.

2015-02-25  Werner Lemberg  <wl@gnu.org>

	[cache] Don't use `labs'.

	This is the only place in FreeType where this function was used.

	* include/config/ftstdlib.h (ft_labs): Remove.

	* src/cache/ftcimage.c (ftc_inode_weight): Replace `ft_labs' with
	`FT_ABS'.

2015-02-23  Werner Lemberg  <wl@gnu.org>

	[cache] Replace `FT_PtrDist' with `FT_Offset'.

	* src/cache/ftccache.h (FTC_NodeRec): `FT_Offset' (a.k.a. `size_t')
	is a better choice for `hash' to hold a pointer than `FT_PtrDist'
	(a.k.a. `ptrdiff_t'), especially since the latter is signed,
	causing zillions of signedness warnings.  [Note that `hash' was of
	type `FT_UInt32' before the change to `FT_PtrDist'.]
	Update all users.

	* src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c,
	src/cache/ftcglyph.c, src/cache/ftcglyph.h: Updated.

2015-02-23  Werner Lemberg  <wl@gnu.org>

	[smooth, raster] Re-enable standalone compilation.

	* src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX)
	[_STANDALONE_]: Define macros.

	* src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS,
	FT_HYPOT) [_STANDALONE_]: Define macros.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[smooth] Signedness fixes.

	* src/smooth/ftgrays.c, src/smooth/ftsmooth.c: Apply.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	* src/raster/ftraster.c: Use the file's typedefs everywhere.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	* src/sfnt/ttpost.c (load_format_20): Fix error tracing message.

	Bug introduced 6 commits earlier.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[pshinter] Fix thinko.

	* src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Correctly
	check `count'.
	Bug introduced two commits earlier.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[raster] Signedness fixes.

	* src/raster/ftraster.c, src/raster/ftrend1.c: Apply.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[pshinter] Signedness fixes.

	* src/pshinter/pshalgo.c, src/pshinter/pshglob.c,
	src/pshinter/pshrec.c: Apply.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[pshinter] Use macros for (unsigned) flags, not enumerations.

	* src/pshinter/pshalgo.h (PSH_Hint_Flags): Replace with macros.
	Updated.
	* src/pshinter/pshrec.h (PS_Hint_Flags): Replace with macros.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	* src/pshinter/pshrec.c: Simplify.
	(ps_hints_open, ps_hints_stem): Remove switch statement.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[sfnt] Signedness fixes.

	* src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c,
	src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
	src/sfnt/ttsbit.c: Apply.
	* src/sfnt/sfdriver.c: Apply.
	(sfnt_get_ps_name): Simplify.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[bdf] Signedness fixes.

	* src/bdf/bdf.h, src/bdf/bdfdrivr.c, src/bdf/bdfdrivr.h,
	src/bdf/bdflib.c: Apply.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	* src/bdf/bdflib.c (_bdf_atous): New function.
	(_bdf_parse_glyphs, _bdf_parse_start): Use it.

2015-02-22  Werner Lemberg  <wl@gnu.org>

	[pcf] Signedness fixes.

	* src/pcf/pcf.h, src/pcf/pcfdrivr.c: Apply.
	* src/pcf/pcfread.c: Apply.
	(pcf_get_encodings): Ignore invalid negative encoding offsets.

2015-02-21  Werner Lemberg  <wl@gnu.org>

	* src/winfonts/winfnt.c: Signedness fixes.

2015-02-21  Werner Lemberg  <wl@gnu.org>

	[type42] Signedness fixes.

	* src/type42/t42parse.c, src/type42/t42parse.h,
	src/type42/t42types.h: Apply.

2015-02-21  Werner Lemberg  <wl@gnu.org>

	[pfr] Signedness fixes.

	* src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c,
	src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c,
	src/pfr/pfrtypes.h: Apply.

2015-02-21  Werner Lemberg  <wl@gnu.org>

	[cff] Minor signedness fixes related to last commit.

	* src/cff/cf2ft.c, src/cff/cf2intrp.c, src/cff/cffgload.c: Apply.

2015-02-20  Werner Lemberg  <wl@gnu.org>

	[cff] Thinkos in bias handling.

	Only the final result is always positive.

	Bug introduced three commits earlier.

	* src/cff/cffgload.c, src/cff/cffgload.h: Apply.

2015-02-20  Werner Lemberg  <wl@gnu.org>

	[cid] Fix signedness issues and emit some better error codes.

	* src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c,
	src/cid/cidparse.h: Apply.
	* src/cid/cidload.c: Apply.
	(parse_fd_array): Reject negative values for number of dictionaries.
	* src/cid/cidparse.c: Apply.
	(cid_parser_new): Reject negative values for hex data length.

2015-02-20  Werner Lemberg  <wl@gnu.org>

	[cff] Signedness fixes for new engine.

	* src/cff/cf2arrst.c, src/cff/cf2fixed.h, src/cff/cf2ft.c,
	src/cff/cf2ft.h, src/cff/cf2hints.c, src/cff/cf2intrp.c: Apply.

2015-02-20  Werner Lemberg  <wl@gnu.org>

	[cff] Signedness fixes for basic infrastructure and old engine.

	* include/internal/pshints.h, src/cff/cffdrivr.c,
	src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffload.c,
	src/cff/cffobjs.c, src/cff/cffparse.c, src/pshinter/pshrec.c: Apply.

2015-02-19  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Ignore `countSizePairs'.

	This is hard-coded to value 2 in `fvar' version 1.0 (and no newer
	version exists), but some fonts set it incorrectly.

	Problem reported by Adam Twardoch <adam@fontlab.com>.

2015-02-19  Werner Lemberg  <wl@gnu.org>

	[cff] Emit better error code for invalid private dict size.

	* src/cff/cffparse.c (cff_parse_private_dict): Reject negative
	values for size and offset.

2015-02-19  Werner Lemberg  <wl@gnu.org>

	[autofit] Fix signedness issues.

	* src/autofit/afangles.c, src/autofit/afcjk.c,
	src/autofit/afglobal.c, src/autofit/afhints.c,
	src/autofit/aflatin.c, src/autofit/aflatin2.c, src/autofit/afwarp.c,
	src/autofit/hbshim.c: Apply.

2015-02-19  Werner Lemberg  <wl@gnu.org>

	[autofit] Use macros for (unsigned) flags, not enumerations.

	This harmonizes with other code in FreeType (and reduces the number
	of necessary casts to avoid compiler warnings).

	* src/autofit/afblue.hin: Make flag macros unsigned.
	* src/autofit/afblue.h: Regenerated.

	* src/autofit/afcjk.h: Replace flag enumeration with macros.
	* src/autofit/afcjk.c: Updated.

	* src/autofit/afhints.h (AF_Flags, AF_Edge_Flags): Replace with
	macros.
	* src/autofit/afhints.c: Updated.

	* src/autofit/aflatin.h: Replace flag enumerations with macros.
	* src/autofit/aflatin.c, src/autofit/aflatin2.c: Updated.

	* src/autofit/aftypes.h (AF_ScalerFlags): Replace with macros.

2015-02-18  Werner Lemberg  <wl@gnu.org>

	[type1] Fix signedness issues.

	* include/internal/psaux.h, include/internal/t1types.h,
	src/psaux/psobjs.c, src/psaux/psobjs.h, src/psaux/t1decode.c,
	src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1parse.c: Apply.

2015-02-18  Werner Lemberg  <wl@gnu.org>

	[psaux, type1] Fix minor AFM issues.

	* include/internal/t1types.h (AFM_KernPairRec): Make indices
	unsigned.
	Update users.
	(AFM_FontInfoRec): Make element counters unsigned.
	Update users.
	* src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned
	int.

	* src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
	Reject negative values for number of kerning elements.

	* src/type1/t1afm.c, src/tools/test_afm.c: Updated.

2015-02-18  Werner Lemberg  <wl@gnu.org>

	Don't use `FT_PtrDist' for lengths.

	Use FT_UInt instead.

	* include/internal/psaux.h (PS_Table_FuncsRec, PS_TableRec,
	T1_DecoderRec): Do it.

	* include/internal/t1types.h (T1_FontRec): Ditto.

	* src/cid/cidload.c (cid_parse_dict): Updated.
	* src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto.
	* src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto.
	* src/type1/t1load.c (parse_blend_axis_types, parse_encoding,
	parse_chharstrings, parse_dict): Ditto.
	* src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings,
	t42_parse_dict): Ditto.

2015-02-18  Werner Lemberg  <wl@gnu.org>

	* src/type1/t1driver.c (t1_ps_get_font_value): Clean up.
	This handles negative values better, avoiding many casts.

2015-02-17  Werner Lemberg  <wl@gnu.org>

	[base] Fix Savannah bug #44284.

	* src/base/ftcalc.c (FT_MulFix): Typos.

2015-02-17  Werner Lemberg  <wl@gnu.org>

	[truetype] Finish compiler warning fixes for signedness issues.

	* src/truetype/ttgxvar.c, src/truetype/ttsubpix.c,
	src/truetype/ttsubpix.h: Apply.

2015-02-17  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttsubpix.c: Adding missing `static' keywords.

2015-02-17  Werner Lemberg  <wl@gnu.org>

	[truetype] More signedness fixes.

	* include/internal/tttypes.h, src/truetype/ttinterp.h,
	src/truetype/ttobjs.h, src/truetype/ttinterp.c,
	src/truetype/ttobjs.c: Apply.

2015-02-17  Werner Lemberg  <wl@gnu.org>

	[truetype] Various signedness fixes.

	* include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply.

	* src/truetype/ttgload.c: Apply.
	(TT_Get_VMetrics): Protect against invalid ascenders and descenders
	while constructing advance height.

2015-02-16  Werner Lemberg  <wl@gnu.org>

	[base] Finish compiler warning fixes for signedness issues.

	* src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c:
	Apply.

2015-02-16  Werner Lemberg  <wl@gnu.org>

	* include/tttables.h (TT_OS2): `fsType' must be FT_UShort.

2015-02-16  Werner Lemberg  <wl@gnu.org>

	More minor signedness warning fixes.

	* src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c,
	src/base/ftutil.c: Apply.

2015-02-16  Werner Lemberg  <wl@gnu.org>

	Next round of minor compiler warning fixes.

	* include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member
	type to `FT_Long'.
	(CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword.

	* include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.

	* src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
	Signedess fixes.

2015-02-16  Werner Lemberg  <wl@gnu.org>

	Various minor signedness fixes.

	* include/ftadvanc.h, include/internal/ftobjs.h,
	src/base/ftgloadr.c, src/base/ftobjs.c: Apply.

2015-02-16  Werner Lemberg  <wl@gnu.org>

	New `TYPEOF' macro.

	This helps suppress signedness warnings, avoiding issues with
	implicit conversion changes.

	* include/config/ftconfig.h, builds/unix/ftconfig.in,
	builds/vms/ftconfig.h (TYPEOF): Define.

	* include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
	src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it.

2015-02-16  Werner Lemberg  <wl@gnu.org>

	* src/base/ftsystem.c: Use casts in standard C function wrappers.
	(ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it.

2015-02-16  Werner Lemberg  <wl@gnu.org>

	Fix Savannah bug #44261.

	* builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the
	environment also while calling the configure script.

2015-02-16  Werner Lemberg  <wl@gnu.org>

	* include/internal/ftmemory.h: Add some `FT_Offset' casts.
	(FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY,
	FT_MEM_MOVE): Do it.

2015-02-15  Werner Lemberg  <wl@gnu.org>

	[base] Clean up signedness issues in `ftdbgmem.c'.

	Also fix other minor issues.

	* src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types
	with FT_Long for consistency.
	(ft_mem_primes): Change type to `FT_Int'.
	(ft_mem_closest_prime, ft_mem_table_set): Updated.

	(ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free,
	ft_mem_debug_realloc): Use `static' keyword and fix signedness
	warnings where necessary.

	(ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy,
	ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types
	and add or remove casts to avoid signedness warnings.

2015-02-15  Werner Lemberg  <wl@gnu.org>

	[base] Clean up signedness in arithmetic functions.

	This makes the code more readable and reduces compiler warnings.

	* src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix,
	FT_DivFix): Convert input parameters to unsigned, do the
	computation, then convert the result back to signed.
	(ft_corner_orientation): Fix casts.

2015-02-07  Werner Lemberg  <wl@gnu.org>

	[sfnt] Fix Savannah bug #44184.

	* src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No
	longer reject `htmx' and `vmtx' tables with invalid length but
	sanitize them.

2015-02-06  Jon Anderson  <jon@websupergoo.com>

	[truetype] Fix regression in the incremental glyph loader.

	* src/truetype/ttgload.c (load_truetype_glyph): For incremental
	fonts, the glyph index may be greater than the number of glyphs
	indicated, so guard the check with a preprocessor conditional.

2015-02-06  Werner Lemberg  <wl@gnu.org>

	[autofit] Fix potential memory leak.

	While this doesn't show up with FreeType, exactly the same code
	leaks with ttfautohint's modified auto-hinter code (which gets used
	in a slightly different way).

	It certainly doesn't harm since it is similar to already existing
	checks in the code for embedded arrays.

	* src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours'
	and `max_points' for all cases.

2015-01-31  Werner Lemberg  <wl@gnu.org>

	[autofit] Add support for Thai script.

	Thanks to Ben Mitchell <ben@rosettatype.com> for guidance with blue
	zone characters!

	* src/autofit/afblue.dat: Add blue zone data for Thai.

	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.

	* src/autofit/afscript.h: Add Thai standard characters.

	* src/autofit/afranges.c: Add Thai data.

	* src/autofit/afstyles.h: Add Thai data.

2015-01-23  Behdad Esfahbod  <behdad@behdad.org>

	[raster] Handle `FT_RASTER_FLAG_AA' correctly.

	This fixes a breakage caused by the commit `[raster] Remove
	5-level gray AA mode from monochrome rasterizer.'.

	Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de>.

	* src/raster/ftraster.c (ft_black_render): Handle
	`FT_RASTER_FLAG_AA'.

	* src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode
	remnants.

2015-01-18  Werner Lemberg  <wl@gnu.org>

	* src/base/ftobjs.c (FT_New_Library): Fix compiler warning.

2015-01-18  Chris Liddell  <chris.liddell@artifex.com>

	[raster] Fix Savannah bug #44022.

	Add fallback for glyphs with degenerate bounding boxes.

	If a glyph has only one very narrow feature, the bbox can end up
	with either the width or height of the bbox being 0, in which case
	no raster memory is allocated and no attempt is made to render the
	glyph.  This is less than ideal when the drop-out compensation in
	the rendering code would actually result in the glyph being
	rendered.

	This problem can be observed with the `I' glyph (gid 47) in the
	Autodesk RomanS TrueType font.

	* src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either
	dimension is zero to explicitly round up/down (instead of simply
	round).

2015-01-17  Werner Lemberg  <wl@gnu.org>

	Add some tools to handle yearly copyright notice updates.

	We are now following the GNU guidelines: A new release automatically
	means that the copyright year of all affected files gets updated; it
	is no longer used to track years of modification changes.

	* src/tools/update-copyright-year: New Perl script.
	* src/tools/update-copyright: New shell script that calls
	`update-copyright-year' on all files.
	* src/tools/no-copyright: Exceptions that should not be handled by
	`update-copyright'

2015-01-14  Werner Lemberg  <wl@gnu.org>

	* docs/CHANGES: Updated, using a description from Behdad.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	* src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Add embedded array of segments and edges.

	Avoids multiple mallocs per typical glyphs.

	With this and recent changes to avoid mallocs, the thread-safe
	stack-based loader is now as fast as the previous model that had one
	cached singleton.

	* src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED):
	New macros.
	(AF_AxisHintsRec): Add two arrays for segments and edges.

	* src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate
	data if number of segments exceeds given threshold value.
	(af_axis_hints_new_edge):  Only allocate data if number of edges
	exceeds given threshold value.
	(af_glyph_hints_done): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Add embedded arrays for points and contours.

	This avoids at least two malloc calls for typical glyphs.

	* src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED):
	New macros.
	(AF_GlyphHintsRec): Add two arrays for contours and points.

	* src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done):
	Updated.
	(af_glyph_hints_reload): Only allocate data if number of contours or
	points exceeds given threshold values.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Allocate hints object on the stack.

	This avoids one malloc per load.

	* src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to
	`AF_GlyphHints'.
	Update prototype.

	* src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints'
	parameter instead of `FT_Memory'.
	(af_loader_done): Directly reset `load_hints'.
	(af_loader_load_g): Updated.

	* src/autofit/afmodule.c (af_autofitter_load_glyph): Use local
	`hints' object.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Reuse slot glyph loader.

	No need to create a new glyph loader; we can reuse the one from
	`slot->internal->loader'.  It's hard to tell why it was written that
	way originally, but new code looks sound and correct to me, and
	avoids lots of allocations.

	* src/autofit/afloader.c (af_loader_init): Change return type to
	`void'.
	Don't call `FT_GlyphLoader_New'.
	(af_loader_reset): Don't call `FT_GlyphLoader_Rewind'.
	(af_loader_load_g): Update code to use `internal->loader', which
	doesn't need copying of data.

	* src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member.
	Update prototype.

	* src/autofit/afmodule.c (af_autofitter_load_glyph): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Remove (unused) support for composite glyphs.

	We never have to deal with composite glyphs in the autohinter, as
	those will be loaded into FORMAT_OUTLINE by the recursed
	`FT_Load_Glyph' function.

	In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply
	FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies
	FT_LOAD_NO_HINTING:

	  /* resolve load flags dependencies */

	  if ( load_flags & FT_LOAD_NO_RECURSE )
	    load_flags |= FT_LOAD_NO_SCALE         |
	                  FT_LOAD_IGNORE_TRANSFORM;

	  if ( load_flags & FT_LOAD_NO_SCALE )
	  {
	    load_flags |= FT_LOAD_NO_HINTING |
	                  FT_LOAD_NO_BITMAP;

	    load_flags &= ~FT_LOAD_RENDER;
	  }

	and as such the auto-hinter is never called.  Thus, the recursion in
	`af_loader_load_g' never actually happens.  So remove the depth
	counter as well.

	* src/autofit/afloader.c (af_loader_load_g): Remove `depth'
	parameter.
	<FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code.
	(af_loader_load_glyph): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[raster] Fix uninitialized memory access.

	Apparently `ras.cProfile' might be uninitialized.  This will be the
	case if `ras.top == ras.cProfile->offset', as can be seen in
	`End_Profile'.  The overshoot code introduced in a change `Fix B/W
	rasterization of subglyphs with different drop-out modes.' (from
	2009-06-18) violated this, accessing `ras.cProfile->flags'
	unconditionally just before calling `End_Profile' (which then
	detected that `cProfile' is uninitialized and didn't touch it).

	This was harmless, and was not detected by valgrind before because
	the objects were allocated on the `raster_pool', which was always
	initialized.  With recent change to allocate raster buffers on the
	stack, valgrind now reported this invalid access.

	* src/raster/ftraster.c (Convert_Glyph): Don't access an
	uninitialized `cProfile'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[smooth] Fix uninitialized memory access.

	Looks like `ras.span_y' could always be used without initialization.
	This was never detected by valgrind before because the library-wide
	`raster_pool' was used for the worker object and `raster_pool' was
	originally zero'ed.  But subsequent reuses of it were using `span_y'
	uninitialized.  With the recent change to not use `render_pool' and
	allocate worker and buffer on the stack, valgrind now detects this
	uninitialized access.

	* src/smooth/ftgrays.c (gray_raster_render): Initialize
	`ras.span_y'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[base] Don't initialize unused `driver->glyph_loader'.

	* src/base/ftobjs.c (Destroy_Driver): Don't call
	`FT_GlyphLoader_Done'.
	(FT_Add_Module): Don't call `FT_GlyphLoader_New'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[base] Don't allocate `library->raster_pool' anymore.

	It's unused after the following commits:

	  [raster] Allocate render pool for mono rasterizer on the stack.
	  [raster] Remove 5-level gray AA mode from monochrome rasterizer.

	The value of FT_RENDER_POOL_SIZE still serves the purpose it used to
	serve, which is, to adjust the pool size.  But the pool is now
	allocated on the stack on demand.

	* src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[base] Do not reorder library->renderers upon use.

	Instead of keeping `library->renderers' in a MRU order, just leave
	it as-is.  The MRU machinery wasn't thread-safe.

	With this patch, rasterizing glyphs from different faces from
	different threads doesn't fail choosing rasterizer
	(FT_Err_Cannot_Render_Glyph).

	Easiest to see that crash was to add a `printf' (or otherwise let
	thread yield in FT_Throw with debugging enabled).

	* src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
	(FT_Outline_Render): Don't call `FT_Set_Renderer'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[raster] Allocate render pool for mono rasterizer on the stack.

	Instead of using the `render_pool' member of `FT_Library' that is
	provided down to the rasterizer, completely ignore that and allocate
	needed objects on the stack instead.

	With this patch, rasterizing glyphs from different faces from
	different threads doesn't crash in the monochrome rasterizer.

	* src/raster/ftraster.c (black_TRaster): Remove `buffer',
	`buffer_size', and `worker' members.

	(ft_black_render): Create `buffer' locally.
	(ft_black_reset): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[raster] Remove 5-level gray AA mode from monochrome rasterizer.

	It was off by default and couldn't be turned on at runtime.  And the
	smooth rasterizer superceded it over ten years ago.  No point in
	keeping.  Comments suggested that it was there for compatibility
	with FreeType 1.

	550 lines down.

	* src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING,
	RASTER_GRAY_LINES): Remove macros and all associated code.

	(black_TWorker): Remove `gray_min_x' and `gray_max_x'.
	(black_TRaster): Remove `grays' and `gray_width'.

	(Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop,
	ft_black_render): Updated.

	* src/raster/ftrend1.c (ft_raster1_render): Simplify code.
	(ft_raster5_renderer_class): Removed.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[smooth] Allocate render pool for smooth rasterizer on the stack.

	Instead of using the `render_pool' member of `FT_Library' that is
	provided down to the rasterizer, completely ignore that and allocate
	needed objects on the stack instead.

	With this patch, rasterizing glyphs from different faces from
	different threads doesn't crash in the smooth rasterizer.

	Bugs:

	  https://bugzilla.redhat.com/show_bug.cgi?id=678397
	  https://bugzilla.redhat.com/show_bug.cgi?id=1004315
	  https://bugzilla.redhat.com/show_bug.cgi?id=1165471
	  https://bugs.freedesktop.org/show_bug.cgi?id=69034

	* src/smooth/ftgrays.c (gray_TRaster): Remove `buffer',
	`buffer_size', `band_size', and `worker' members.

	(gray_raster_render): Create `buffer', `buffer_size', and
	`band_size' locally.
	(gray_raster_reset): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.

	Previously the code had stipulation for using a per-TT_Size exec
	context if `size->debug' was true.  But there was no way that
	`size->debug' could *ever* be true.  As such, the code was always
	using the singleton `TT_ExecContext' that was stored in `TT_Driver'.
	This was, clearly, not threadsafe.

	With this patch, loading glyphs from different faces from different
	threads doesn't crash in the bytecode loader code.

	* src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member.
	(TT_DriverRec): Remove `context' member.

	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove
	`TT_ExecContext' code related to a global `TT_Driver' object.

	(tt_driver_done): Don't remove `TT_ExecContext' object here but ...
	(tt_size_done_bytecode): ... here.

	(tt_driver_init): Don't create `TT_ExecContext' object here but ...
	(tt_size_init_bytecode): ... here, only on demand.

	* src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug
	code.
	(TT_New_Context): Remove `TT_ExecContext' code related to a global
	`TT_Driver' object.

	* src/truetype/ttinterp.h: Updated.

	* src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	[autofit] Allocate AF_Loader on the stack instead of AF_Module.

	Stop sharing a global `AF_Loader'.  Allocate one on the stack during
	glyph load.

	Right now this results in about 25% slowdown, to be fixed in a
	following commit.

	With this patch loading glyphs from different faces from different
	threads doesn't immediately crash in the autohinting loader code.

	Bugs:

	  https://bugzilla.redhat.com/show_bug.cgi?id=1164941

	* src/autofit/afloader.c (af_loader_init): Pass
	`AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments.
	(af_loader_reset, af_loader_load_glyph): Also pass `loader' as
	argument.
	(af_loader_done): Use `AF_Loader' instead of `AF_Module' as
	argument.

	* src/autofit/afmodule.c (af_autofitter_init): Don't call
	`af_loader_init'.
	(af_autofitter_done): Don't call `af_loader_done'.
	(af_autofitter_load_glyph): Use a local `AF_Loader' object.

	* src/autofit/afloader.h: Include `afmodule.h'.
	Update prototypes.
	Move typedef for `AF_Module' to...

	* src/autofit/afmodule.h: ... this place.
	No longer include `afloader.h'.

2015-01-14  Behdad Esfahbod  <behdad@behdad.org>

	* src/type42/t42objs.h (T42_DriverRec): Remove unused member.

2015-01-12  Werner Lemberg  <wl@gnu.org>

	Fix Savannah bug #43976.

	Assure that FreeType's internal include directories are found before
	`CPPFLAGS' (which might be set by the user in the environment), and
	`CPPFLAGS' before `CFLAGS'.

	* builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'.
	(FT_COMPILE): Make this a special variable for compiling only the
	files handled in `freetype.mk'.
	(.c.$O): Removed, unused.

	* src/*/rules.mk (*_COMPILE): Fix order of include directories.

2015-01-11  Werner Lemberg  <wl@gnu.org>

	[truetype] Prettyfing.

	* src/truetype/ttinterp.c (project, dualproj, fast_project,
	fast_dualproj): Rename to...
	(PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this.

2015-01-11  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify.

	Based on a patch from Behdad.

2015-01-11  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call.

2015-01-11  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttinterp.c (Normalize): Remove unused argument.

2015-01-11  Werner Lemberg  <wl@gnu.org>

	[truetype] More macro expansions.

	* src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by
	expansion.

2015-01-11  Werner Lemberg  <wl@gnu.org>

	[truetype] More macro expansions.

	* src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
	adjusting funtion calls where necessary.
	(FT_UNUSED_ARG): Removed, no longer needed.

2015-01-10  Werner Lemberg  <wl@gnu.org>

	[truetype] More macro expansions.

	Based on a patch from Behdad.

	* src/truetype/ttinterp.c (DO_*): Expand macros into corresponding
	`Ins_*' functions.
	(TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls.
	(ARRAY_BOUND_ERROR): Remove second definition, which is no longer
	needed.
	(Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with...
	(Ins_SxyTCA): New function.

2015-01-10  Werner Lemberg  <wl@gnu.org>

	[truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH.

	Behdad suggested this code simplification, and nobody objected...

	* include/config/ftoption.h, devel/ftoption.h
	(TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove.

	* src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]:
	Remove related code.
	(ARRAY_BOUND_ERROR): Use do-while loop.

2015-01-10  Werner Lemberg  <wl@gnu.org>

	[truetype] More macro expansions.

	* src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_,
	EXEC_ARG): Remove by replacing with expansion.

2015-01-10  Werner Lemberg  <wl@gnu.org>

	[truetype] More macro expansions.

	Based on a patch from Behdad.

	* src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize,
	SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move,
	CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem,
	CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt,
	CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round,
	COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing
	with expansion.

	(Cur_Func_project, CUR_Func_dualproj, CUR_fast_project,
	CUR_fast_dualproj): Replace with macros `project', `dualproj',
	`fast_project', `fast_dualproj'.

2015-01-10  Werner Lemberg  <wl@gnu.org>

	[truetype] More macro expansions.

	* src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing
	with expansion.

2015-01-10  Werner Lemberg  <wl@gnu.org>

	[truetype] Remove code for static TrueType interpreter.

	This is a follow-up patch.

	* src/truetype/ttinterp.c, src/truetype/ttinterp.h
	[TT_CONFIG_OPTION_STATIC_INTERPRETER,
	TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code.

2015-01-10  Werner Lemberg  <wl@gnu.org>

	* src/truetype/ttinterp.c (CUR): Remove by replacing with expansion.

	This starts a series of patches that simplifies the code of the
	bytecode interpreter.


----------------------------------------------------------------------------

Copyright 2015 by
David Turner, Robert Wilhelm, and Werner Lemberg.

This file is part of the FreeType project, and may only be used, modified,
and distributed under the terms of the FreeType project license,
LICENSE.TXT.  By continuing to use, modify, or distribute this file you
indicate that you have read the license and understand and accept it
fully.


Local Variables:
version-control: never
coding: utf-8
End:
