12014-12-30  Werner Lemberg  <wl@gnu.org>
2
3	* Version 2.5.5 released.
4	=========================
5
6
7	Tag sources with `VER-2-5-5'.
8
9	* docs/VERSION.DLL: Update documentation and bump version number to
10	2.5.5.
11
12	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
13	builds/windows/vc2005/index.html,
14	builds/windows/vc2008/freetype.vcproj,
15	builds/windows/vc2008/index.html,
16	builds/windows/vc2010/freetype.vcxproj,
17	builds/windows/vc2010/index.html,
18	builds/windows/visualc/freetype.dsp,
19	builds/windows/visualc/freetype.vcproj,
20	builds/windows/visualc/index.html,
21	builds/windows/visualce/freetype.dsp,
22	builds/windows/visualce/freetype.vcproj,
23	builds/windows/visualce/index.html,
24	builds/wince/vc2005-ce/freetype.vcproj,
25	builds/wince/vc2005-ce/index.html,
26	builds/wince/vc2008-ce/freetype.vcproj,
27	builds/wince/vc2008-ce/index.html: s/2.5.4/2.5.5/, s/254/255/.
28
29	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
30
31	* builds/unix/configure.raw (version_info): Set to 17:4:11.
32	* CMakeLists.txt (VERSION_PATCH): Set to 5.
33	* docs/CHANGES: Updated.
34
35	* builds/toplevel.mk (dist): Fix typos.
36
372014-12-24  Alexei Podtelezhnikov  <apodtele@gmail.com>
38
39	[base] Formatting and nanooptimizations.
40
41	* src/base/ftcalc.c,
42	* src/base/fttrigon.c: Revise sign restoration.
43
442014-12-13  Werner Lemberg  <wl@gnu.org>
45
46	* src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08.
47
482014-12-11  Werner Lemberg  <wl@gnu.org>
49
50	* builds/toplevel.mk (dist): Use older POSIX standard for `tar'.
51
52	Apparently, BSD tar isn't capable yet of handling POSIX-1.2001
53	(contrary to GNU tar), so force the POSIX-1.1988 format.
54
55	Problem reported by Stephen Fisher <sfisher@SDF.ORG>.
56
572014-12-11  Werner Lemberg  <wl@gnu.org>
58
59	* src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size.
60
612014-12-11  Werner Lemberg  <wl@gnu.org>
62
63	* src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
64
65	Problem reported by Dennis Felsing <dennis@felsin9.de>.
66
672014-12-11  Werner Lemberg  <wl@gnu.org>
68
69	* src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'.
70
71	Problem reported by Dennis Felsing <dennis@felsin9.de>.
72
732014-12-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
74
75	[gxvalid] Fix a naming convention conflicting with ftvalid.
76
77	See previous changeset for otvalid.
78
79	* src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace
80	`valid' by `gxvalid'.
81	* src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c,
82	gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c,
83	gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c,
84	gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c,
85	gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if
86	it is typed as GXV_Validator.
87
882014-12-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
89
90	[otvalid] Fix a naming convention conflicting with ftvalid.
91
92	Some prototypes in ftvalid.h use `valid' for the variables
93	typed as FT_Validator.  Their implementations in src/base/
94	ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar.
95
96	Some macros in otvcommn.h assume the exist of the variable
97	`valid' typed as OTV_Validator in the caller.
98
99	Mixing these two conventions cause invalid pointer conversion
100	and unexpected SEGV in longjmp.  To prevent it, all variables
101	typed as OTV_Validator are renamed to `otvalid'.
102
103	* src/otvalid/otvcommn.h: Replace `valid' by `otvalid'.
104	* src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c,
105	otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid'
106	if it is typed as OTV_Validator.
107
1082014-12-09  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
109
110	[ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros.
111
112	Original patch is designed by Werner Lemberg.  Extra part
113	for otvalid and gxvalid are added by suzuki toshiya, see
114	discussion:
115	https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html
116	https://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html
117
118	* include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_().
119	* src/gxvalid/gxvcommn.h: Ditto.
120	* src/otvalid/otvcommn.h: Ditto.
121
1222014-12-08  Werner Lemberg  <wl@gnu.org>
123
124	[pcf] Fix Savannah bug #43774.
125
126	Work around `features' of X11's `pcfWriteFont' and `pcfReadFont'
127	functions.  Since the PCF format doesn't have an official
128	specification, we have to exactly follow these functions' behaviour.
129
130	The problem was unveiled with a patch from 2014-11-06, fixing issue
131	#43547.
132
133	* src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last
134	element.  Instead, assign real size.
135
1362014-12-07  Werner Lemberg  <wl@gnu.org>
137
138	Work around a bug in Borland's C++ compiler.
139
140	See
141
142	  http://qc.embarcadero.com/wc/qcmain.aspx?d=118998
143
144	for Borland's bug tracker entry.
145
146	Reported by Yuliana Zigangirova <zigangirova@inbox.ru>,
147	https://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html.
148
149	* include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c
150	(gray_TWorker_): Move `ft_jmp_buf' field to be the first element.
151
1522014-12-07  Werner Lemberg  <wl@gnu.org>
153
154	*/*: Decorate hex constants with `U' and `L' where appropriate.
155
1562014-12-07  Werner Lemberg  <wl@gnu.org>
157
158	[truetype] Prevent memory leak for buggy fonts.
159
160	* src/truetype/ttobjs.c (tt_size_done): Unconditionally call
161	`tt_size_done_bytecode'.
162
1632014-12-06  Werner Lemberg  <wl@gnu.org>
164
165	* Version 2.5.4 released.
166	=========================
167
168
169	Tag sources with `VER-2-5-4'.
170
171	* docs/VERSION.DLL: Update documentation and bump version number to
172	2.5.4.
173
174	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
175	builds/windows/vc2005/index.html,
176	builds/windows/vc2008/freetype.vcproj,
177	builds/windows/vc2008/index.html,
178	builds/windows/vc2010/freetype.vcxproj,
179	builds/windows/vc2010/index.html,
180	builds/windows/visualc/freetype.dsp,
181	builds/windows/visualc/freetype.vcproj,
182	builds/windows/visualc/index.html,
183	builds/windows/visualce/freetype.dsp,
184	builds/windows/visualce/freetype.vcproj,
185	builds/windows/visualce/index.html,
186	builds/wince/vc2005-ce/freetype.vcproj,
187	builds/wince/vc2005-ce/index.html,
188	builds/wince/vc2008-ce/freetype.vcproj,
189	builds/wince/vc2008-ce/index.html: s/2.5.3/2.5.4/, s/253/254/.
190
191	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
192
193	* builds/unix/configure.raw (version_info): Set to 17:3:11.
194	* CMakeLists.txt (VERSION_PATCH): Set to 4.
195	* docs/CHANGES: Updated.
196
1972014-12-04  Werner Lemberg  <wl@gnu.org>
198
199	docs/CHANGES: Updated, formatted.
200
2012014-12-04  Dave Arnold  <darnold@adobe.com>
202
203	[cff] Modify an FT_ASSERT.
204
205	* src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah
206	bug #43661, the test font `...aspartam.otf' still triggers an
207	FT_ASSERT.  Since hintmap still works with count==0, ...
208	(cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to
209	suppress the assert.
210
2112014-12-04  Dave Arnold  <darnold@adobe.com>
212
213	[cff] Fix Savannah bug #43661.
214
215	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
216	cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after
217	hintmask is constructed.
218
219	* src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to
220	avoid reading past end of hintmask.
221
2222014-12-03  Werner Lemberg  <wl@gnu.org>
223
224	docs/CHANGES: Updated.
225
2262014-12-03  Werner Lemberg  <wl@gnu.org>
227
228	[autofit] Better fix for conversion specifiers in debug messages.
229
230	Using `%ld' for pointer differences causes warnings on 32bit
231	platforms.  The correct type would be (the relatively new) `%td',
232	however, this is missing on some important platforms.
233
234	This patch improves the change from 2014-11-28.
235
236	* src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast.  Our
237	pointer differences are always sufficiently small.
238	(af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
239	af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'.
240
2412014-12-03  Werner Lemberg  <wl@gnu.org>
242
243	FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality.
244
245	All public FreeType enumeration and flag values are uppercase...
246
247	* include/tttables.h (FT_Sfnt_Tag): Implement it.  For backward
248	compatibility, retain the old values as macros.
249
250	* src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c
251	(get_sfnt_table): Updated.
252
2532014-12-02  Werner Lemberg  <wl@gnu.org>
254
255	* include/*: Improve structure of documentation.
256
257	. Add and update many `<Order>' tags.
258	. Apply various documentation fixes.
259	. Remove details to deprecated (or never implemented) data.
260
2612014-12-02  Werner Lemberg  <wl@gnu.org>
262
263	[docmaker] Always handle `<Order>' section elements.
264
265	Previously, those elements were handled only for sections present in
266	a `<Sections>' chapter element.
267
268	* src/tools/docmaker/content.py (ContentProcessor::finish):
269	Implement it.
270
2712014-12-02  Werner Lemberg  <wl@gnu.org>
272
273	[docmaker] Properly handle empty rows in Synopsis.
274
275	* src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
276	`&nbsp;' for empty fields.
277
2782014-12-02  Werner Lemberg  <wl@gnu.org>
279
280	[docmaker] Thinko.
281
282	* src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
283	Emit `/empty/' string for first element also.
284
2852014-12-02  Werner Lemberg  <wl@gnu.org>
286
287	[docmaker] Honour empty lines in `<Order>' section element.
288
289	This greatly improves the readability of the `Synopsis' links.
290
291	* src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
292	Insert string `/empty/' between items.
293
294	* src/tools/docmaker/formatter.py (Formatter::section_dump): Make it
295	robust against nonexistent keys.
296
297	* src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
298	empty <td> elements for `/empty/'.
299
3002014-12-02  Werner Lemberg  <wl@gnu.org>
301
302	[docmaker] Ensure Python 3 compatibility.
303
304	* src/tools/docmaker/content.py (ContentProcessor::set_section,
305	ContentProcessor::finish): Replace `has_key' function with `in'
306	keyword.
307
308	* src/tools/docmaker/formatter.py (Formatter::__init__): Replace
309	sorting function with a key generator.
310	(Formatter::add_identifier): Replace `has_key' function with `in'
311	keyword.
312
313	* src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote):
314	Replace `has_key' function with `in' keyword.
315	(HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use
316	integer division.
317	s/<>/>/.
318
319	* src/tools/docmaker/utils.py: Import `itertools'.
320	(index_sort): Replaced by...
321	(index_key): ... this new key generator (doing exactly the same).
322
3232014-11-29  Werner Lemberg  <wl@gnu.org>
324
325	[docmaker] Don't output a block multiple times.
326
327	This bug was hidden by not processing all lines of `<Order>' blocks.
328
329	* src/tools/docmaker/formatter.py (Formatter::section_dump): Filter
330	out field names.
331
3322014-11-29  Werner Lemberg  <wl@gnu.org>
333
334	[docmaker] Use field values as HTML link targets where possible.
335
336	* src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url):
337	Accept second, optional argument to specify a name.
338	(HtmlFormatter::html_source_quote): Link to field ID if possible.
339	(HtmlFormatter::print_html_field_list): Emit `id' attribute.
340
3412014-11-29  Werner Lemberg  <wl@gnu.org>
342
343	[docmaker] Allow empty lines in `<Order>' blocks.
344
345	Before this patch, the suggested order of entries stopped at the
346	first empty line.
347
348	Obviously, nobody noticed that this problem caused a much reduced
349	set of links in the `Synopsis' sections; in particular, the
350	`<Order>' blocks contain a lot of entries that wouldn't be listed
351	otherwise...
352
353	* src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
354	New function to iterate over all items.
355	(DocSection::process): Use it.
356
3572014-11-29  Werner Lemberg  <wl@gnu.org>
358
359	* src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp.
360
361	After the single asterisk there must be no other immediately following
362	asterisk.
363
3642014-11-29  Werner Lemberg  <wl@gnu.org>
365
366	* src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing.
367
3682014-11-29  Werner Lemberg  <wl@gnu.org>
369
370	[docmaker] Improve HTML code for table of contents.
371
372	* src/tools/docmaker/tohtml.py: Introduce a new table class `toc',
373	together with proper CSS.
374
3752014-11-29  Werner Lemberg  <wl@gnu.org>
376
377	[docmaker] Provide higher-level markup and simplify HTML.
378
379	* src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>'
380	elements, use CSS descendants (of class `section') to format the
381	data.
382
383	Also remove redundant <p> and <br> elements, replacing them with
384	proper CSS.
385
386	Globally reduce page width to 75%.
387
388	(block_header): Rename <div> class to `section'.
389
3902014-11-29  Werner Lemberg  <wl@gnu.org>
391
392	[docmaker] Add `top' links after blocks.
393
394	* src/tools/docmaker/tohtml.py (block_footer_middle): Implement it.
395
3962014-11-29  Werner Lemberg  <wl@gnu.org>
397
398	* src/tools/docmaker/tohtml.py: Improve CSS for fields.
399
400	Make fields align horizontally relative to full line width.
401
4022014-11-29  Werner Lemberg  <wl@gnu.org>
403
404	* src/tools/docmaker/tohtml.py: Fix index and TOC templates.
405
406	This thinko was introduced 2014-11-27.
407
4082014-11-28  Werner Lemberg  <wl@gnu.org>
409
410	[docmaker] Format field lists with CSS.
411
412	This also simplifies the inserted HTML code.
413
414	* src/tools/docmaker/tohtml.py
415	(HtmlFormatter::print_html_field_list): Do it.
416
4172014-11-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
418
419	Fix compiler warning to the comparison between signed and
420	unsigned variable.
421
422	* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison
423	between `ypos + ysize' and FT_INT_{MAX,MIN}.
424
4252014-11-28  Werner Lemberg  <wl@gnu.org>
426
427	[docmaker] Replace empty `<td>' with CSS.
428
429	* src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do
430	it.
431
4322014-11-28  Werner Lemberg  <wl@gnu.org>
433
434	[docmaker] Replace some `<table>' tags with `<h4>' and `<div>'.
435
436	* src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'.
437	(source_*): Use `<div>'.
438	(HtmlFormatter::block_enter): s/<h4>/<h3>/.
439
4402014-11-28  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
441
442	Fix compiler warning to conversion specifiers in debug messages.
443
444	* src/autofit/afhints.c (af_glyph_hints_dump_points): Add length
445	modifier to dump long integers.
446	(af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto.
447
4482014-11-27  Werner Lemberg  <wl@gnu.org>
449
450	* src/tools/docmaker/tohtml.py: Use more CSS for index.
451
4522014-11-27  Werner Lemberg  <wl@gnu.org>
453
454	[docmaker] Replace `name' attribute of `<a>' with `id'.
455
456	* src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it.
457
4582014-11-27  Werner Lemberg  <wl@gnu.org>
459
460	* src/tools/docmaker/tohtml.py: Remove remaining `width' attributes.
461
462	For `Index' and `TOC' links, we now simply use the `text-align' CSS
463	property of `<td>' to enforce flush-left and flush-right,
464	eliminating the hack with an empty, full-width `<td>' element
465	inbetween.
466
467	The change also enforces the same (smaller) size for all index and
468	TOC links.
469
4702014-11-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
471
472	* src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(),
473	cf2font.c could not find it under `make multi' build.
474
4752014-11-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
476
477	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove
478	unrequired negative value check for `width' and `height'.
479
4802014-11-27  Werner Lemberg  <wl@gnu.org>
481
482	* src/tools/docmaker/tohtml.py: More HTML table refactoring.
483
484	Replace some `<table>' tags with `<div>' to simplify structure.
485
486	Move `bgcolor' attribute to CSS.
487
488	Replace most `width' attributes with CSS.  The remaining instances
489	(providing a similar effect as LaTeX's `\hfill' command) are removed
490	in a later patch.
491
4922014-11-27  Werner Lemberg  <wl@gnu.org>
493
494	* src/tools/docmaker/tohtml.py: Replace <font> with CSS.
495
4962014-11-27  Werner Lemberg  <wl@gnu.org>
497
498	* src/tools/docmaker/tohtml.py: Center <table> with CSS.
499
5002014-11-27  Werner Lemberg  <wl@gnu.org>
501
502	* src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'.
503
5042014-11-27  Werner Lemberg  <wl@gnu.org>
505
506	* src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags.
507
508	This starts a series of commits into the direction of generating
509	valid HTML 5 code, especially using much more CSS.
510
5112014-11-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
512
513	Prevent too negative values (< FT_INT_MIN) in bitmap metrics,
514	suggested by Alexei.
515
516	* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too
517	negative values in `xpos' and `ypos + ysize'.
518	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent
519	too negative values in `x_left' and `y_top'.  Either negative
520	values in `width' and `height' are checked.
521
5222014-11-27  Werner Lemberg  <wl@gnu.org>
523
524	[docmaker] Produce better HTML code.
525
526	* src/tools/docmaker/tohtml.py: Always use double quotes for
527	attribute values.
528	(source_footer): Close `td' and `tr' groups.
529
5302014-11-27  Werner Lemberg  <wl@gnu.org>
531
532	Use better way to disable creation of .pyc files for `make refdoc'.
533
534	Python 2.6 was released in 2008...
535
536	* builds/freetype.mk (refdoc): Use python's `-B' option.
537
538	* builds/detect.mk (std_setup, dos_setup): Mention required python
539	version for `refdoc' target.
540
5412014-11-27  Werner Lemberg  <wl@gnu.org>
542
543	* src/tools/docmaker/sources.py (re_bold, re_italic): Use
544	non-grouping parentheses.
545	* src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word):
546	Updated.
547
5482014-11-27  Werner Lemberg  <wl@gnu.org>
549
550	* src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning.
551
552	Introduced in previous change.  Reported by Alexei.
553
5542014-11-26  Werner Lemberg  <wl@gnu.org>
555
556	* src/*: Add checks for parameters of API functions where missing.
557
558	`API functions' are functions tagged with `FT_EXPORT_DEF'.
559
560	Besides trivial fixes, the following changes are included, too.
561
562	* src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set
563	error code if no service is available.
564
565	* src/base/ftinit.c (FT_Done_FreeType): Change return value for
566	invalid `library' parameter to `Invalid_Library_Handle'.
567
568	* src/base/ftobjs.c (FT_New_Size): Change return value for invalid
569	`asize' parameter to `Invalid_Argument'.
570
571	* src/base/ftoutln.c (FT_Outline_Copy): Change return value for
572	invalid `source' and `target' parameters to `Invalid_Outline'.
573	(FT_Outline_Done_Internal): Change return value for invalid
574	`outline' parameter to `Invalid_Outline'.
575
5762014-11-26  Werner Lemberg  <wl@gnu.org>
577
578	* src/cache/ftcbasic.c: Use single calls to `FT_TRACE'.
579
5802014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
581
582	* src/base/ftobjs.c (Mac_Read_POST_Resource): Additional
583	overflow check in the summation of POST fragment lengths,
584	suggested by Mateusz Jurczyk <mjurczyk@google.com>.
585
5862014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
587
588	* src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments
589	and fold too long tracing messages.
590
5912014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
592
593	Fix Savannah bug #43540.
594
595	* src/base/ftmac.c (parse_fond): Prevent a buffer overrun
596	caused by a font including too many (> 63) strings to store
597	names[] table.
598
5992014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
600
601	* src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long
602	variables to read the lengths in POST fragments.  Suggested by
603	Mateusz Jurczyk <mjurczyk@google.com>.
604
6052014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
606
607	Fix Savannah bug #43539.
608
609	* src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
610	by a broken POST table in resource-fork.
611
6122014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
613
614	Fix Savannah bug #43538.
615
616	* src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
617	by a broken POST table in resource-fork.
618
6192014-11-26  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
620
621	* src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak
622	by a broken POST table in resource-fork.  Return after freeing
623	the buffered POST table when it is found to be broken.
624
6252014-11-25  Werner Lemberg  <wl@gnu.org>
626
627	*/*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
628
6292014-11-25  Werner Lemberg  <wl@gnu.org>
630
631	*/*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate.
632
6332014-11-25  Werner Lemberg  <wl@gnu.org>
634
635	*/*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate.
636
6372014-11-25  Werner Lemberg  <wl@gnu.org>
638
639	*/*: s/Invalid_Argument/Invalid_Outline/ where appropriate.
640
6412014-11-25  Werner Lemberg  <wl@gnu.org>
642
643	*/*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
644
6452014-11-24  Werner Lemberg  <wl@gnu.org>
646
647	[Savannah bug #43682] Adjust some renderer callbacks.
648
649	* src/raster/ftraster.c (ft_black_set_mode): Change return type to
650	`int' to stay in sync with `FT_Renderer_SetModeFunc' prototype.
651
652	* src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function
653	for orthogonality.
654	(ft_grays_raster): Use it.
655
6562014-11-25  Werner Lemberg  <wl@gnu.org>
657
658	[Savannah bug #43682] Properly handle missing return errors.
659
660	The functions in this patch *do* return non-trivial errors that must
661	be taken care of.
662
663	* src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c
664	(FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render),
665	src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>,
666	src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode
667	(t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c
668	(load_truetype_glyph <subglyph loop>, tt_loader_init,
669	TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend),
670	src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
671
6722014-11-25  Werner Lemberg  <wl@gnu.org>
673
674	[Savannah bug #43682] Add/remove `void' casts to some functions.
675
676	We use a cast to indicate that we intentionally ignore a function's
677	return value.  However, this doesn't apply to API functions where
678	errors can only happen for trivially invalid input.
679
680	* src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder),
681	src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c
682	(cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning),
683	src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
684	(t42_parse_encoding): Do it.
685
6862014-11-25  Werner Lemberg  <wl@gnu.org>
687
688	[Savannah bug #43682] Change some signatures to `void' return type.
689
690	* include/internal/pshints.h (PSH_Globals_SetScaleFunc),
691	include/internal/sfnt.h (TT_Get_Metrics_Func),
692	src/pshinter/pshglob.c (psh_globals_set_scale),
693	src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c
694	(tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange,
695	TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context,
696	TT_Save_Context): Do it.
697
698	* src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h,
699	src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c
700	(TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c
701	(tt_size_run_fpgm, tt_size_run_prep): Updated.
702
7032014-11-24  Werner Lemberg  <wl@gnu.org>
704
705	Remove all code related to FT_MAX_CHARMAP_CACHEABLE.
706
707	This is no longer used.
708
709	* src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c,
710	src/sfnt/ttcmap.c: Do it.
711
7122014-11-24  Werner Lemberg  <wl@gnu.org>
713
714	[sfnt] Fix Savannah bug #43680.
715
716	This adds an additional constraint to make the fix from 2013-01-25
717	really work.
718
719	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>:
720	Check `p' before `num_glyphs'.
721
7222014-11-24  Werner Lemberg  <wl@gnu.org>
723
724	[truetype] Fix Savannah bug #43679.
725
726	* src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of
727	`record_size'.
728
7292014-11-24  Jarkko Pöyry  <jarkko.poyry@gmail.com>
730
731	[cff, pfr, psaux, winfonts] Fix Savannah bug #43676.
732
733	Don't cast cmap init function pointers to an incompatible type.
734
735	Without this patch, the number of parameters between declaration and
736	the real signature differs.  Calling such a function results in
737	undefined behavior.
738
739	  ISO/IEC 9899:TC3 (Committee Draft September 7, 2007)
740	    6.5.2.2 Function calls
741	      9 If the function is defined with a type that is not
742	        compatible with the type (of the expression) pointed to by
743	        the expression that denotes the called function, the
744	        behavior is undefined.
745
746	On certain platforms (c -> js with emscripten) this causes
747	termination of execution or invalid calls because in the emscripten
748	implementation, function pointers of different types are stored in
749	different pointer arrays.  Incorrect pointer type here results in
750	indexing of an incorrect array.
751
752	* src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init),
753	src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c
754	t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init,
755	t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix
756	signature.
757
7582014-11-24  Werner Lemberg  <wl@gnu.org>
759
760	[sfnt] Fix Savannah bug #43672.
761
762	* src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for
763	minimum table length test.
764
7652014-11-24  Werner Lemberg  <wl@gnu.org>
766
767	[type1, type42] Another fix for Savannah bug #43655.
768
769	* src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
770	(t42_parse_charstrings): Add another boundary testing.
771
7722014-11-24  Werner Lemberg  <wl@gnu.org>
773
774	[docmaker] Formatting, copyright, improved documentation.
775
776	* src/tools/docmaker/*: No code changes besides trivial
777	modifications.
778
7792014-11-22  Werner Lemberg  <wl@gnu.org>
780
781	[bdf] Fix Savannah bug #43660.
782
783	* src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
784	`_BDF_GLYPH_BITS'.
785
7862014-11-22  Werner Lemberg  <wl@gnu.org>
787
788	[type42] Allow only embedded TrueType fonts.
789
790	This is a follow-up to Savannah bug #43659.
791
792	* src/type42/t42objs.c (T42_Face_Init): Exclusively use the
793	`truetype' font driver for loading the font contained in the `sfnts'
794	array.
795
7962014-11-22  Werner Lemberg  <wl@gnu.org>
797
798	[type42] Fix Savannah bug #43659.
799
800	* src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.
801
802	* src/type42/t42parse.c (t42_parse_sfnts): Always set
803	`face->ttf_size' directly.  This ensures a correct stream size in
804	the call to `FT_Open_Face', which follows after parsing, even for
805	buggy input data.
806	Fix error messages.
807
8082014-11-22  Werner Lemberg  <wl@gnu.org>
809
810	[cff] Fix Savannah bug #43658.
811
812	* src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
813	return values of point allocation routines.
814
8152014-11-22  Werner Lemberg  <wl@gnu.org>
816
817	[sfnt] Fix Savannah bug #43656.
818
819	* src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
820	tests.
821
8222014-11-21  Werner Lemberg  <wl@gnu.org>
823
824	[type1, type42] Fix Savannah bug #43655.
825
826	* src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
827	(t42_parse_charstrings): Fix boundary testing.
828
8292014-11-21  Werner Lemberg  <wl@gnu.org>
830
831	* src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics.
832
8332014-11-21  Werner Lemberg  <wl@gnu.org>
834
835	[ftlcdfil] Obey flow direction.
836
837	* src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
838	Handle `up' flow.
839
8402014-11-21  Werner Lemberg  <wl@gnu.org>
841
842	* src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
843
844	This commit completes argument checks and adds support for different
845	flow directions.
846
8472014-11-21  Werner Lemberg  <wl@gnu.org>
848
849	* src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
850
851	This commit adds argument checks and support for different flow
852	directions.
853
8542014-11-20  Werner Lemberg  <wl@gnu.org>
855
856	* src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
857
8582014-11-19  Werner Lemberg  <wl@gnu.org>
859
860	Change some fields in `FT_Bitmap' to unsigned type.
861
862	This doesn't break ABI.
863
864	* include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
865	`pixel_mode', and `palette_mode' unsigned types.
866
867	* src/base/ftbitmap.c: Updated.
868	(FT_Bitmap_Copy): Fix casts.
869
870	* src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
871	Updated.
872
8732014-11-19  Werner Lemberg  <wl@gnu.org>
874
875	Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.
876
877	* src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
878	for the pitch while copying data.
879	Correctly set pitch sign in target bitmap.
880
8812014-11-19  Werner Lemberg  <wl@gnu.org>
882
883	Minor code improvement in `FT_Bitmap_Embolden'.
884
885	* src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
886	Fix thinko.
887
8882014-11-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
889
890	* src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
891
8922014-11-19  Behdad Esfahbod  <behdad@behdad.org>
893
894	Avoid compiler warnings on x86-64 for `FT_MulFix'.
895
896	`FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
897	but several inline implementations of it in `ftcalc.h' take
898	`FT_Int32' arguments.  This is causing compiler warnings on x86-64:
899	If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
900	inline implementation of this function, integer values are truncated
901	from 64bit to 32bit.
902
903	* include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
904	casts.
905
9062014-11-15  Werner Lemberg  <wl@gnu.org>
907
908	[sfnt] Fix Savannah bug #43597.
909
910	* src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large
911	bitmaps.
912
9132014-11-12  Werner Lemberg  <wl@gnu.org>
914
915	[sfnt] Fix Savannah bug #43591.
916
917	* src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition
918	and multiplication overflow.
919
9202014-11-12  Werner Lemberg  <wl@gnu.org>
921
922	[sfnt] Fix Savannah bug #43590.
923
924	* src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir):
925	Protect against addition overflow.
926
9272014-11-12  Werner Lemberg  <wl@gnu.org>
928
929	[sfnt] Fix Savannah bug #43589.
930
931	* src/sfnt/sfobjs.c (woff_open_font): Protect against addition
932	overflow.
933
9342014-11-12  Werner Lemberg  <wl@gnu.org>
935
936	[sfnt] Fix Savannah bug #43588.
937
938	* src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
939	tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect
940	against overflow in additions and multiplications.
941
9422014-11-10  Alexei Podtelezhnikov  <apodtele@gmail.com>
943
944	[base] CORDIC improvements.
945
946	The scaling between the hypotenuse and its CORDIC approximation is
947	based on regression analysis. The smaller padding for `theta' is
948	justified by its maximum error of less than 6.
949
950	* src/base/fttrigon.c (ft_trig_downscale): Borrow code from
951	./ftcalc.c (ft_multo64), change linear intercept.
952	(ft_trig_pseudo_polarize): Decrease `theta' padding.
953
9542014-11-09  Werner Lemberg  <wl@gnu.org>
955
956	* src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
957
958	One more place to check whether `radius' is zero.
959
960	Problem reported by Marco Wertz <marco.wertz@gmx.de>.
961
9622014-11-07  Werner Lemberg  <wl@gnu.org>
963
964	[bdf] Fix Savannah bug #43535.
965
966	* src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one
967	character more than `strncmp'.
968	s/ft_strncmp/_bdf_strncmp/ everywhere.
969
9702014-11-06  Werner Lemberg  <wl@gnu.org>
971
972	[pcf] Fix Savannah bug #43548.
973
974	* src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row
975	and column values.
976
9772014-11-06  Werner Lemberg  <wl@gnu.org>
978
979	[pcf] Fix Savannah bug #43547.
980
981	* src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset'
982	values.
983
9842014-11-06  Werner Lemberg  <wl@gnu.org>
985
986	* src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak.
987
9882014-11-03  Infinality  <infinality@infinality.net>
989
990	* src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated.
991
992	The previous commit deteriorates rendering of DejaVu and similar
993	fonts; this gets compensated with this rule.
994
9952014-11-03  Werner Lemberg  <wl@gnu.org>
996
997	* src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting.
998
999	Before this patch, it was impossible to ever call DELTAP[123] in
1000	subpixel hinting mode as described in the ClearType whitepaper; it
1001	only worked if in `compatibility mode'.  However, compatibility mode
1002	essentially disables SHPIX, completely ruining hinting of
1003	ttfautohint output, for example.
1004
1005	We now follow the whitepaper more closely so that DELTAP[123]
1006	instructions for touched points in the non-subpixel direction are
1007	executed.
1008
10092014-10-31  Alexei Podtelezhnikov  <apodtele@gmail.com>
1010
1011	[smooth] Improve code readability.
1012
1013	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
1014
10152014-10-31  Alexei Podtelezhnikov  <apodtele@gmail.com>
1016
1017	[smooth] Reduce outline translations during rendering.
1018
1019	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin
1020	virtually by modifying cbox, actually translate outline if cumulative
1021	shift is not zero.
1022
10232014-10-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
1024
1025	[smooth] Fix Savannah bug #35604 (cont'd).
1026
1027	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and
1028	casts that became unnecessary after the variable type upgrades.
1029
10302014-10-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
1031
1032	[smooth] Improve code readability.
1033
1034	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
1035
10362014-10-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
1037
1038	Unify hypotenuse approximations.
1039
1040	* include/internal/ftcalc.h (FT_HYPOT): Move macro from here...
1041	* include/internal/ftobjs.h: ... to here, next to required `FT_ABS'.
1042	* src/smooth/ftgrays.c (gray_render_cubic): Use it here.
1043
10442014-10-25  Werner Lemberg  <wl@gnu.org>
1045
1046	[cff] Test valid darkening parameter macros in `ftoption.h'.
1047
1048	We no longer need an otherwise unused typedef that can cause a gcc
1049	warning.
1050	Problem reported by Alexei.
1051
1052	* src/cff/cffobjs.c (cff_driver_init): Use
1053	`CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly.
1054	(SET_DARKENING_PARAMETERS): Removed.
1055	Compile time tests are now ...
1056
1057	* devel/ftoption.h, include/config/ftoption.h: ... here.
1058
10592014-10-25  Alexei Podtelezhnikov  <apodtele@gmail.com>
1060
1061	Improve flat corner definition.
1062
1063	* include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean
1064	distance with the alpha max plus beta min algorithm.
1065	* src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab
1066	metric.
1067
10682014-10-23  David Weiß  <David.Weiss@ptvgroup.com>
1069
1070	[build] Improve property file for vc2010.
1071
1072	User-defined properties should be empty by default to prevent linker
1073	failures.
1074
1075	* builds/windows/vc2010/freetype.user.props,
1076	builds/windows/vc2010/freetype.vcxproj:
1077	s/OptionsDirectory/UserOptionDirectory/.
1078	Comment out all user options.
1079
10802014-10-23  Werner Lemberg  <wl@gnu.org>
1081
1082	[cff] Work around bug in preprocessor of MSVC 2010.
1083
1084	We have been hit by
1085
1086	  https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr
1087
1088	* devel/ftoption.h, include/config/ftoption.h: Replace
1089	`CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
1090	`CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.
1091
1092	* src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed.  We no
1093	longer need double expansion.
1094	(SET_DARKENING_PARAMETERS_0): Renamed to ...
1095	(SET_DARKENING_PARAMETERS): ... this.
1096	Update call.
1097
10982014-10-20  Werner Lemberg  <wl@gnu.org>
1099
1100	[sbit] Minor fixes.
1101
1102	* src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
1103	Accept overlay format also, but emit warning message in that case.
1104	(tt_sbit_decoder_load_metrics): Add missing newline to error
1105	message.
1106	(tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS
1107	7.1) to the list of unsupported formats.
1108
11092014-10-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
1110
1111	[truetype] Clean up bytecode rounding.
1112
1113	Zero distance does not have to be treated specially if you follow
1114	specifications and check the sign as the very last step of rounding.
1115
1116	* src/truetype/ttinterp.c (Round_None, Round_To_Grid,
1117	Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
1118	macros when available, do not check for non-zero distance.
1119	(Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
1120	if sign changed.
1121
11222014-10-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
1123
1124	[truetype] Unwrap engine compensation settings.
1125
1126	* src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
1127
11282014-10-18  David Weiß  <David.Weiss@ptvgroup.com>
1129
1130	[build] Add property file to vc2010 project.
1131
1132	This simplifies custom build configurations, especially for
1133	automated build environments.
1134
1135	* builds/windows/vc2010/freetype.user.props: New configuration file.
1136
1137	* builds/windows/vc2010/freetype.vcxproj: Include
1138	`freetype.user.props' and use its data fields.
1139
1140	* builds/windows/vc2010/index.html: Updated.
1141
11422014-10-18  Werner Lemberg  <wl@gnu.org>
1143
1144	[autofit] Add blue-zone support for Telugu.
1145
1146	This essentially moves the Telugu script from the `Indic' hinter to
1147	the `Latin' hinter.
1148
1149	Note that this is a first shot and quite certainly needs
1150	refinements.
1151
1152	* src/autofit/afblue.dat: Add blue zone data for Telugu.
1153
1154	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1155
1156	* src/autofit/afscript.h: Add Telugu standard characters and move
1157	data out of AF_CONFIG_OPTION_INDIC block.
1158
1159	* src/autofit/afranges.c: Move Telugu data out of
1160	AF_CONFIG_OPTION_INDIC block.
1161
1162	* src/autofit/afstyles.h: Update Telugu data; in particular, use
1163	AF_WRITING_SYSTEM_LATIN.
1164
11652014-10-18  David Wimsey  <david@wimsey.us>
1166
1167	[cmake] Add iOS build support.
1168	From Savannah patch #8497.
1169
1170	* builds/cmake/iOS.cmake: New file.  Universal binaries are built
1171	with both 32 and 64 bit arm architectures.
1172
1173	* CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS
1174	toolchain.  Possible values are `OS' to build on iOS, or
1175	`SIMULATOR' to build on APPLE.
1176
11772014-10-16  Behdad Esfahbod  <behdad@behdad.org>
1178	    Werner Lemberg  <wl@gnu.org>
1179
1180	[cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro.
1181
1182	* devel/ftoption.h, include/config/ftoption.h
1183	(CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro.
1184
1185	* src/cff/cffobjs.c (SET_DARKENING_PARAMETERS,
1186	SET_DARKENING_PARAMETERS_0): New macros.
1187	(cff_driver_init): Use new macros.
1188
11892014-10-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
1190
1191	[truetype] Limit delta shift range.
1192
1193	The valid range for delta shift is zero through six.  Negative values
1194	are invalid according to
1195
1196	  https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift
1197
1198	* src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned.
1199	* src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift'
1200	is out of range.
1201	(Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'.
1202
12032014-10-16  Werner Lemberg  <wl@gnu.org>
1204
1205	A better fix for Savannah bug #43392.
1206	Suggested by Doug Felt <dougfelt@gmail.com>.
1207
1208	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set
1209	`vertAdvance' to zero...
1210
1211	* src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default
1212	value for `vertAdvance' based on `linearVertAdvance' in case
1213	`vertAdvance' is zero.  Note that the previous computed ad-hoc value
1214	for `linearVertAdvance' was apparently not tested in a real-life
1215	situation.
1216
12172014-10-14  David Weiß  <David.Weiss@ptvgroup.com>
1218
1219	[build] Better optimization settings for vc2010 solution file.
1220
1221	* builds/windows/vc2010/freetype.sln,
1222	builds/windows/vc2010/freetype.vcxproj: Updated.
1223
12242014-10-14  Werner Lemberg  <wl@gnu.org>
1225
1226	[autofit] Adjust Devanagari character range.
1227
1228	* src/autofit/afranges.c (af_deva_uniranges): Omit characters that
1229	are common to all other Indic scripts.
1230
12312014-10-12  Werner Lemberg  <wl@gnu.org>
1232
1233	[sfnt] Fix Savannah bug #43392.
1234
1235	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
1236	vertical metrics uninitialized.
1237
12382014-10-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
1239
1240	[base] Small bbox correction.
1241
1242	* src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
1243	instead of initial point that could be `off' in conic outlines.
1244
12452014-10-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
1246
1247	[base] Fix Savannah bug #43356.
1248
1249	* src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
1250	of implicit `to'.
1251	(BBox_Line_To): New emitter that does not update bbox.
1252
12532014-10-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
1254
1255	[base] Introduce and use new macro `FT_UPDATE_BBOX'
1256
1257	* src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
1258	(FT_Outline_Get_BBox): Use it here.
1259
12602014-10-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
1261
1262	[base] Significant optimization of `ft_div64by32'
1263
1264	We shift as many bits as we can into the high register, perform
1265	32-bit division with modulo there, then work through the remaining
1266	bits with long division. This optimization is especially noticeable
1267	for smaller dividends that barely use the high register.
1268
1269	* src/base/ftcalc.c (ft_div64by32): Updated.
1270
12712014-10-02  Dave Arnold  <darnold@adobe.com>
1272
1273	[cff] Fix Savannah bug #43271.
1274
1275	* src/cff/cf2font.c (cf2_computeDarkening): Change overflow
1276	detection to use logarithms and clamp `scaledStem'.
1277
12782014-10-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
1279
1280	* src/base/ftcalc.c: Remove miscellaneous type casts.
1281
12822014-10-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
1283
1284	[base] Use more common `FT_MSB' implementation with masks.
1285
1286	* src/base/ftcalc.c (FT_MSB): Updated.
1287
12882014-09-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
1289
1290	[base] Clean up.
1291
1292	* src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
1293	code.
1294
12952014-09-25  Alexei Podtelezhnikov  <apodtele@gmail.com>
1296
1297	[base] Avoid unnecessary long division.
1298
1299	This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
1300	lack thereof are predicted accurately.
1301
1302	* src/base/ftcalc.c (ft_div64by32): Improve readability.
1303	(FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
1304	when multiplication stayed within 32 bits.
1305
13062014-09-24  Werner Lemberg  <wl@gnu.org>
1307
1308	[autofit] Minor clean-ups.
1309
1310	* src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
1311
1312	* src/autofit/afhints.c (af_glyph_hints_dump_points,
1313	af_glyph_hints_align_strong_points): Updated.
1314
1315	* src/autofit/aflatin.c (af_latin_hints_link_segments,
1316	af_latin_hints_compute_segments), src/autofit/afcjk.c
1317	(af_cjk_hints_link_segments), src/autofit/aflatin2.c
1318	(af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
1319	There are no longer fake segments since more than 10 years...
1320
13212014-09-22  Werner Lemberg  <wl@gnu.org>
1322
1323	[autofit] Minor code streamlining.
1324
1325	* src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
1326	initialization.
1327
13282014-09-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
1329
1330	* src/base/ftcalc.c: Harmonize code.
1331
13322014-09-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
1333
1334	[base] Tighten the overflow check in `FT_MulDiv'.
1335
1336	* src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
1337
13382014-09-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
1339
1340	Fix Savannah bug #43153.
1341
1342	* src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
1343	overflow in `divider'.
1344
13452014-09-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
1346
1347	[base] Tighten the overflow check in `FT_DivFix'.
1348
1349	This fixes a 13-year old bug. The original overflow check should have
1350	been updated when rounding was introduced into this function
1351	(c2cd00443b).
1352
1353	* src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
1354	* include/freetype.h (FT_DivFix): Updated documentation.
1355
13562014-09-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
1357
1358	[base] Tighten the overflow check in `FT_MulFix'.
1359
1360	* src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
1361
13622014-09-02  Alexei Podtelezhnikov  <apodtele@gmail.com>
1363
1364	[truetype] Shortcut ppem calculations for square pixels.
1365
1366	* src/truetype/ttinterp.h (TT_ExecContextRec): New field
1367	`cur_ppem_func' with a function pointer.
1368	* src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
1369	depending on the pixel geometry to either...
1370	(Current_Ppem_Stretched): ... this for stretched pixels.
1371	(Current_Ppem): ... or this for square pixels.
1372	(DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
1373
13742014-08-31  Behdad Esfahbod  <behdad@behdad.org>
1375
1376	Don't use `register' keyword.  Fixes compiler warnings.
1377
1378	* src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
1379	* src/gzip/inftrees.c (huft_build): Ditto.
1380	* src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
1381
13822014-08-24  Alexei Podtelezhnikov  <apodtele@gmail.com>
1383
1384	[truetype] Optimize DELTAP and DELTAC.
1385
1386	* src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
1387	calculations outside of the loop.
1388
13892014-08-21  Alexei Podtelezhnikov  <apodtele@gmail.com>
1390
1391	Fix Savannah bug #43033.
1392
1393	* include/config/ftconfig.h, builds/unix/ftconfig.in,
1394	builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
1395	64-bit type is `long'.
1396
13972014-08-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
1398
1399	[base] Small optimization of `FT_MulFix'.
1400
1401	* src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
1402	32-bit calculations.
1403
14042014-08-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
1405
1406	[base] Use unsigned calculation in `FT_MulDiv'.
1407
1408	* src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
1409
14102014-08-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
1411
1412	[base] Remove truncation in `FT_DivFix'.
1413
1414	* src/base/ftcalc.c (FT_DivFix): Updated.
1415
14162014-08-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
1417
1418	Minor refactoring.
1419
1420	* src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
1421
14222014-08-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
1423
1424	Turn FT_MSB into a macro when using gcc builtins.
1425
1426	* src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
1427
14282014-08-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
1429
1430	[base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
1431
1432	* src/base/ftbbox.c (BBox_Cubic_Check): Update.
1433	(update_cubic_max): Replace with...
1434	(cubic_peak): ... this, which now handles upscaling.
1435
14362014-08-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
1437
1438	[base] Handle collapsed outlines to avoid undefined FT_MSB.
1439
1440	* src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
1441
14422014-08-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
1443
1444	[base] Restore FT_MulFix inlining.
1445
1446	* include/freetype.h (FT_MulFix): Unconditionally defined.
1447
1448	* src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
1449
1450	* include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
1451	which conditionally replaces the function with an inline version
1452	through the macro.
1453
14542014-08-08  Alexei Podtelezhnikov  <apodtele@gmail.com>
1455
1456	* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
1457
14582014-07-26  Werner Lemberg  <wl@gnu.org>
1459
1460	[cff] Fix typo.
1461
1462	* src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
1463	offsets in third quadrant.
1464
1465	Reported by maks <maksqwe1@ukr.net>.
1466
14672014-07-17  Werner Lemberg  <wl@gnu.org>
1468
1469	Fix Savannah bug #42788.
1470
1471	* src/pfr/pfrobjs.c: Include `ftcalc.h'.
1472
14732014-07-16  Alexei Podtelezhnikov  <apodtele@gmail.com>
1474
1475	Replace `ft_highpow2' function.
1476
1477	* src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
1478	`ft_highpow2'.
1479
1480	* src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
1481	it.
1482
14832014-07-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
1484
1485	* src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
1486
14872014-07-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
1488
1489	[base] Move assembler code back in the source file.
1490
1491	FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
1492
1493	* include/config/ftconfig.h, builds/unix/ftconfig.in,
1494	builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
1495
1496	* src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
1497
14982014-07-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
1499
1500	[base] Further clean up color bitmap conversion.
1501
1502	* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
1503	using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
1504
15052014-07-13  Werner Lemberg  <wl@gnu.org>
1506
1507	[truetype] Improve handling of buggy `prep' tables.
1508
1509	In case of an error in the `prep' table, no longer try to execute it
1510	again and again.  This makes FreeType handle endless loops in buggy
1511	fonts much faster.
1512
1513	* src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
1514	and `cvt_ready' are now negative if not initialized yet, otherwise
1515	they indicate the error code of the last run.
1516
1517	* src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
1518	tt_size_done_bytecode, tt_size_init_bytecode,
1519	tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
1520	Updated.
1521
1522	* src/truetype/ttgload.c (tt_loader_init): Updated.
1523	* src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
1524	and `prep' only if we are in the `glyf' table.
1525
15262014-07-12  Werner Lemberg  <wl@gnu.org>
1527
1528	* builds/vms/ftconfig.h: Synchronize.
1529	Problem reported by Alexei.
1530
15312014-07-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
1532
1533	[base] Clean up bitmap conversion.
1534
1535	* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
1536	appropriate FT_DivFix and remove superfluous upscaling.
1537
15382014-07-04  Alexei Podtelezhnikov  <apodtele@gmail.com>
1539
1540	[base] Small optimization of the ancient code.
1541
1542	* src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
1543	condition for direct 32-bit calculations.
1544
15452014-06-27  Werner Lemberg  <wl@gnu.org>
1546
1547	Fix Apple standard glyph names.
1548
1549	* src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
1550	`tools/glnames.py'
1551
1552	Problem reported by Adam Twardoch <adam@fontlab.com>.
1553
15542014-06-17  Werner Lemberg  <wl@gnu.org>
1555
1556	Partially revert commit from 2014-06-13.
1557
1558	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
1559	declaration of `p_first' and `p_last' out of the loop.
1560
15612014-06-17  Werner Lemberg  <wl@gnu.org>
1562
1563	* builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
1564
1565	This simplifies cross-compiling.
1566
15672014-06-13  Werner Lemberg  <wl@gnu.org>
1568
1569	Fix more compiler warnings.
1570	Reported by Wojciech Mamrak <wmamrak@gmail.com>.
1571
1572	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
1573	Make integer constant unsigned.
1574
1575	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
1576	<TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
1577	(tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
1578	casts.
1579
15802014-06-13  Werner Lemberg  <wl@gnu.org>
1581
1582	Fix compiler warnings.
1583	Reported by Wojciech Mamrak <wmamrak@gmail.com>.
1584
1585	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
1586	src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
1587	`unsigned' issues.
1588
1589	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
1590	happy.
1591
1592	* src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
1593	for `fir'.
1594	Fix `signed' vs. `unsigned' issues.
1595
1596	* src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
1597	(WRITE_USHORT, WRITE_ULONG): Add proper casts.
1598
1599	* src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
1600
1601	* src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
1602	and `B2'.
1603
16042014-05-16  Alexey Petruchik  <alexey.petruchik@gmail.com>
1605
1606	[cmake] Add option to build OS X framework.
1607
1608	* CMakeLists.txt: Update accordingly.
1609
1610	* builds/mac/freetype-Info.plist: New file.
1611
16122014-05-13  Pavel Koshevoy  <pkoshevoy@gmail.com>
1613
1614	* CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
1615
16162014-05-11  Werner Lemberg  <wl@gnu.org>
1617
1618	[autofit] Fix variable initializations.
1619
1620	* src/autofit/afhints.c (af_glyph_hints_reload): Assign default
1621	values to `in_dir' and `out_dir' for all points.
1622
16232014-05-11  Werner Lemberg  <wl@gnu.org>
1624
1625	[autofit] Fix crash with font `CabinSketch-Bold.ttf'.
1626
1627	Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
1628
1629	* src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
1630	finding first non-near point.
1631	Properly initialize non-near point deltas.
1632
16332014-05-01  Werner Lemberg  <wl@gnu.org>
1634
1635	[autofit] Add blue-zone support for Devanagari.
1636
1637	This essentially moves the Devanagari script from the `Indic' hinter
1638	to the `Latin' hinter.  Thanks to Girish Dalvi
1639	<girish.dalvi@gmail.com> for guidance with blue zone characters!
1640
1641	* src/autofit/afblue.dat: Add blue zone data for Devanagari.
1642
1643	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1644
1645	* src/autofit/afscript.h: Add Devanagari standard characters and
1646	move data out of AF_CONFIG_OPTION_INDIC block.
1647
1648	* src/autofit/afranges.c: Move Devanagari data out of
1649	AF_CONFIG_OPTION_INDIC block.
1650	Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
1651
1652	* src/autofit/afstyles.h: Update Devanagari data; in particular, use
1653	AF_WRITING_SYSTEM_LATIN.
1654
16552014-05-01  Werner Lemberg  <wl@gnu.org>
1656
1657	[autofit] Fix handling of neutral blue zones in stems.
1658
1659	* src/autofit/afhints.h (AF_Edge_Flags): New value
1660	`AF_EDGE_NEUTRAL'.
1661
1662	* src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
1663	neutral blue zones with AF_EDGE_NEUTRAL.
1664	(af_latin_hint_edges): Skip neutral blue zones if necessary.
1665
16662014-04-28  Werner Lemberg  <wl@gnu.org>
1667
1668	[autofit] Introduce neutral blue zones to the latin module.
1669
1670	Such blue zones match either the top or the bottom of a contour.  We
1671	need them for scripts where accent-like elements directly touch the
1672	base character (for example, some vowel signs in Devanagari, cf.
1673	U+0913 or U+0914).
1674
1675	* src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
1676	property.
1677
1678	* src/autofit/afblue.h: Regenerated.
1679
1680	* src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
1681	(AF_LATIN_BLUE_NEUTRAL): New enumeration value.
1682
1683	* src/autofit/aflatin.c (af_latin_metrics_init_blues,
1684	af_latin_hints_compute_blue_edges): Handle neutral blue zones.
1685
16862014-04-25  Werner Lemberg  <wl@gnu.org>
1687
1688	* src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
1689
1690	Using input glyph coverage data is simply wrong.
1691
1692	Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
1693	Mantas Mikulėnas <grawity@gmail.com>.
1694
16952014-04-23  Werner Lemberg  <wl@gnu.org>
1696
1697	* src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
1698
1699	This spot has been missed while introducing support for various
1700	drop-out modes years ago (including no drop-out mode, which this
1701	commit fixes).
1702
1703	Problem reported by Patrick Thomas <pthomas505@gmail.com>.
1704
17052014-04-22  Werner Lemberg  <wl@gnu.org>
1706
1707	* src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
1708
17092014-04-20  Werner Lemberg  <wl@gnu.org>
1710
1711	[autofit] Fix Savannah bug #42148.
1712
1713	The adaptation of the cjk auto-hinter module to blue stringsets in
1714	2013-08-25 had three severe bugs.  Mea culpa.
1715
1716	1. Contrary to the latin auto-hinter, characters for reference and
1717	   overshoot values of a blue zone are specified separately.  Due to
1718	   the screwed-up change it didn't work at all.
1719
1720	2. A boolean comparison was erroneously replaced with a cast,
1721	   causing invalid results with the `^' operator later on.  The
1722	   visual artifact caused by this problem is the topic of the bug
1723	   report.
1724
1725	3. Two flag values were inverted, causing incorrect assignment of
1726	   reference and overshoot values.
1727
1728	* src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
1729	syntax to have both reference and overshoot characters in a single
1730	string.  This is error #1.
1731	Add extensive comments.
1732
1733	* src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
1734	longer used.
1735	(AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
1736	This is error #3.
1737
1738	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
1739
1740	* src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
1741	Use character `|' to separate characters for reference and overshoot
1742	values.
1743	Improve tracing messages, synchronizing them with the latin
1744	auto-hinter.
1745	(af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
1746	This is error #2.
1747	(af_cjk_align_linked_edge): Add tracing message.
1748
1749	* src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
1750	used.
1751
17522014-04-17  Werner Lemberg  <wl@gnu.org>
1753
1754	[autofit] More coverage fixes for complex scripts.
1755
1756	* src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
1757	of GSUB lookups into output coverage.  Otherwise, ligatures are not
1758	handled properly.
1759	Don't check blue zone characters for default coverage.
1760
17612014-04-17  Werner Lemberg  <wl@gnu.org>
1762
1763	Make `FT_Get_SubGlyph_Info' actually work.
1764
1765	* src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
1766	if there is no error.
1767
17682014-04-15  Werner Lemberg  <wl@gnu.org>
1769
1770	[afblue.pl]: Minor improvements.
1771
1772	* src/tools/afblue.pl: Allow whitespace before comments.
1773	Ignore whitespace in strings.
1774
17752014-04-14  Werner Lemberg  <wl@gnu.org>
1776
1777	[autofit] Improve coverage handling.
1778
1779	* src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
1780	appearing in the GPOS table if we are processing the default
1781	coverage.
1782
17832014-04-13  David Weber  <weber.aulendorf@googlemail.com>
1784
1785	[smooth] Fix stand-alone compilation.
1786
1787	* src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
1788
17892014-04-12  Werner Lemberg  <wl@gnu.org>
1790
1791	[autofit] Redesign the recognition algorithm of strong points.
1792
1793	In particular, local extrema without horizontal or vertical segments
1794	are better recognized:
1795
1796	  + A                + D
1797	   \                /
1798	    \              /
1799	     \            /
1800	      \          /
1801	       \        + C
1802	        \    /
1803	       B +/
1804
1805	If the distances AB and CD are large, point B wasn't previously
1806	detected as an extremum since the `ft_corner_is_flat' function
1807	`swallowed' BC regardless of its direction, tagging point B as weak.
1808	The next iteration started at B and made `ft_corner_is_flat' swallow
1809	point C, tagging it as weak also, et voilà.
1810
1811	To improve that, another pass gets now performed before calling
1812	`ft_corner_is_flat' to improve the `topology' of an outline: A
1813	sequence of non-horizontal or non-vertical vectors that point into
1814	the same quadrant are handled as a single, large vector.
1815
1816	Additionally, distances of near points are now accumulated, which
1817	makes the auto-hinter handle them as if they were prepended to the
1818	next non-near vector.
1819
1820	This generally improves the auto-hinter's rendering results.
1821
1822	* src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
1823
1824	* src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
1825	`AF_FLAG_NEAR'.
1826
18272014-04-05  Werner Lemberg  <wl@gnu.org>
1828
1829	[autofit] Improve scoring algorithm for identifying stems.
1830
1831	Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
1832
1833	The new algorithm takes care of the width of stems: If the distance
1834	between two segments is larger than the largest stem width, the
1835	demerits quickly increase for larger distances.  This improves
1836	hinting of slanted fonts (especially if the inner parts of serifs
1837	have non-horizontal `shoulders'), avoiding false stem links.
1838
1839	* src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
1840	stem width (if available) to compute better demerits for distances
1841	between stems.
1842	(af_latin_hints_detect_features): Pass stem width array and array
1843	size.
1844	(af_latin_metrics_init_widths): Updated to use original algorithm.
1845	(af_latin_hints_apply): Updated to use new algorithm.
1846
1847	* src/autofit/aflatin.h: Updated.
1848	* src/autofit/afcjk.c: Updated.
1849
18502014-04-03  Werner Lemberg  <wl@gnu.org>
1851
1852	Don't require `gzip' module for `sfnt'.
1853
1854	Reported by Preet <prismatic.project@gmail.com>.
1855
1856	* src/sfnt/sfobjs.c (woff_open_font): Guard use of
1857	FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
1858
18592014-03-27  Werner Lemberg  <wl@gnu.org>
1860
1861	Fix Savannah bug #38235.
1862
1863	Work around a bug in pkg-config version 0.28 and earlier: If a
1864	variable value gets surrounded by doublequotes (in particular values
1865	for the `prefix' variable), the prefix override mechanism fails.
1866
1867	* builds/unix/freetype2.in: Don't use doublequotes.
1868	* builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
1869	names with backslashes.
1870
18712014-03-24  Werner Lemberg  <wl@gnu.org>
1872
1873	Fix Savannah bug #41946.
1874
1875	Based on a patch from Marek Kašík <mkasik@redhat.com>.
1876
1877	* builds/unix/configure.raw (LIBS_CONFIG): Remove.
1878	* builds/unix/freetype-config.in (libs): Hard-code value.
1879	* builds/unix/unix-def.in: Updated.
1880
18812014-03-22  Werner Lemberg  <wl@gnu.org>
1882
1883	Another revert for the change from 2014-03-18.
1884
1885	Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
1886
1887	* src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
1888	gets always exported.
1889
18902014-03-20  Werner Lemberg  <wl@gnu.org>
1891
1892	CMakeLists.txt: Another fix for include directories.
1893
1894	Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
1895
18962014-03-19  Werner Lemberg  <wl@gnu.org>
1897
1898	CMakeLists.txt: Fix include directories.
1899
1900	Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
1901
19022014-03-19  Werner Lemberg  <wl@gnu.org>
1903
1904	Partially revert last commit.
1905
1906	Found by Alexei.
1907
1908	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
1909	those variables is plain wrong, since we are in a loop.
1910
19112014-03-18  Sean McBride  <sean@rogue-research.com>
1912	    Werner Lemberg  <wl@gnu.org>
1913
1914	Fix clang warnings.
1915
1916	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
1917	some variables.
1918
1919	* src/base/ftcalc.c (FT_MulFix): Only use code if
1920	`FT_MULFIX_INLINED' is not defined.
1921
1922	* src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
1923	(ftc_basic_image_family_class, ftc_basic_image_cache_class,
1924	ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
1925	src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
1926	(ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
1927	(pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
1928	function static.
1929
1930	* src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
1931	code.
1932
19332014-03-17  Werner Lemberg  <wl@gnu.org>
1934
1935	Fix Savannah bug #41869.
1936
1937	This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
1938	validate glyph indices returned by
1939	`hb_ot_layout_lookup_collect_glyphs'.
1940
1941	* src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
1942
1943	* docs/CHANGES: Updated.
1944
19452014-03-14  Werner Lemberg  <wl@gnu.org>
1946
1947	* builds/unix/configure.raw: Don't show error messages of `which'.
1948
19492014-03-09  Alan Coopersmith  <alan.coopersmith@oracle.com>
1950
1951	Fix cppcheck 1.64 warning.
1952
1953	* src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
1954	dereference in case of error.
1955
19562014-03-09  Sean McBride  <sean@rogue-research.com>
1957
1958	* src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
1959
19602014-03-06  Werner Lemberg  <wl@gnu.org>
1961
1962	* Version 2.5.3 released.
1963	=========================
1964
1965
1966	Tag sources with `VER-2-5-3'.
1967
1968	* docs/VERSION.DLL: Update documentation and bump version number to
1969	2.5.3.
1970
1971	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1972	builds/windows/vc2005/index.html,
1973	builds/windows/vc2008/freetype.vcproj,
1974	builds/windows/vc2008/index.html,
1975	builds/windows/vc2010/freetype.vcxproj,
1976	builds/windows/vc2010/index.html,
1977	builds/windows/visualc/freetype.dsp,
1978	builds/windows/visualc/freetype.vcproj,
1979	builds/windows/visualc/index.html,
1980	builds/windows/visualce/freetype.dsp,
1981	builds/windows/visualce/freetype.vcproj,
1982	builds/windows/visualce/index.html,
1983	builds/wince/vc2005-ce/freetype.vcproj,
1984	builds/wince/vc2005-ce/index.html,
1985	builds/wince/vc2008-ce/freetype.vcproj,
1986	builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/.
1987
1988	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
1989
1990	* builds/unix/configure.raw (version_info): Set to 17:2:11.
1991	* CMakeLists.txt (VERSION_PATCH): Set to 3.
1992	* docs/CHANGES: Updated.
1993
19942014-03-06  Werner Lemberg  <wl@gnu.org>
1995
1996	Fixes for compilation with C++.
1997
1998	* src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
1999	(af_get_coverage): Updated.
2000	(COVERAGE): Add cast.
2001
20022014-03-06  Sean McBride  <sean@rogue-research.com>
2003
2004	Remove more clang analyzer warnings.
2005
2006	* src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
2007	(TT_Load_Glyph): Remove dead stores.
2008
20092014-03-05  Werner Lemberg  <wl@gnu.org>
2010
2011	* builds/unix/configure.raw: Simplify.
2012
20132014-03-05  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2014
2015	Fix a bug in configure in library dependency setting
2016	Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
2017
2018	* builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
2019
20202014-03-04  Werner Lemberg  <wl@gnu.org>
2021
2022	Minor fix for `make devel'.
2023
2024	* builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
2025	pkg-config for bzip2 since not all GNU/Linux distributions have
2026	`bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
2027	normally).
2028
20292014-03-04  Sean McBride  <sean@rogue-research.com>
2030
2031	Fix several clang static analyzer dead store warnings.
2032
2033	* src/autofit/afhints.c (af_glyph_hints_reload,
2034	af_glyph_hints_align_weak_points): Remove unnecessary assignments.
2035
2036	* src/bdf/bdflib.c (bdf_font_load): Ditto.
2037
2038	* src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
2039	psh_glyph_interpolate_other_points): Ditto.
2040
2041	* src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
2042
20432014-03-03  Werner Lemberg  <wl@gnu.org>
2044
2045	Rewrite library option handling in `configure'.
2046
2047	o Introduce `auto' value for `--with-XXX' library options; this is
2048	  now the default.
2049
2050	o First use `pkg-config' for library detection, then fall back to
2051	  other tests.
2052
2053	* builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
2054	--with-harfbuzz): Rewrite.
2055	Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
2056	variables to collect data for `freetype2.pc' and `freetype-config'.
2057	(FT2_EXTRA_LIBS): Renamed to ...
2058	(ft2_extra_libs): This since it gets no longer substituted.
2059	(REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
2060	New output variables, replacing `XXX_PKG' and `LIBXXX'.
2061	Add notice at the end of `configure' showing the library
2062	configuration.
2063
2064	* builds/unix/freetype-config.in (--static): New command line
2065	option.
2066	(libs): Updated.
2067	(staticlibs): New variable, to be used if `--static' is given.
2068	* docs/freetype-config.1: Document `--static'.
2069
2070	* builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
2071
20722014-03-01  Werner Lemberg  <wl@gnu.org>
2073
2074	Avoid `long long' warnings with older gcc compilers.
2075	Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
2076
2077	* builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
2078	versions < 4.6.  This is especially needed for Max OS X since this
2079	OS runs a gcc variant (or emulation) based on version 4.2.1.
2080
20812014-03-01  Werner Lemberg  <wl@gnu.org>
2082
2083	* docs/INSTALL.CROSS: Revised and updated.
2084
20852014-03-01  Werner Lemberg  <wl@gnu.org>
2086
2087	Make `make clean' remove `freetype2.pc'.
2088
2089	This is a generated file at build time, not configure time.
2090
2091	* builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
2092	(CLEAN): This variable.
2093
20942014-03-01  Werner Lemberg  <wl@gnu.org>
2095
2096	Use pkg-config for detecting libpng and libbz2 also.
2097
2098	* builds/unix/configure.raw (HAVE_PKG): New variable.
2099	Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
2100	Search for libpng using `pkg-config'.
2101	Fix definition of `LIBHARFBUZZ' variable.
2102	* builds/unix/freetype-config.in ($libs): Updated.
2103	* builds/unix/freetype2.in: Add `URL' field.
2104	Update `Requires.private' and `Libs.private'.
2105	* builds/unix/unix-def.in: Updated.
2106
21072014-03-01  Werner Lemberg  <wl@gnu.org>
2108
2109	Add configure support for HarfBuzz.
2110
2111	* builds/unix/pkg.m4: New file.
2112	* builds/unix/configure.raw: Search for libharfbuzz using
2113	`pkg-config'.
2114	Add `--without-harfbuzz' option.
2115	* builds/unix/freetype-config.in, builds/unix/freetype2.in,
2116	builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
2117	HarfBuzz.
2118
2119	* docs/INSTALL.UNIX: Document interdependency of FreeType with
2120	HarfBuzz.
2121
21222014-02-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
2123
2124	[cff] Math simplifications.
2125
2126	* src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
2127	* src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
2128
21292014-02-28  Dave Arnold  <darnold@adobe.com>
2130
2131	[cff] Fix Savannah bug #41697, part 2.
2132
2133	* src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
2134	cf2_initGlobalRegionBuffer): It is possible for a charstring to call
2135	a subroutine if no subroutines exist.  This is an error but should
2136	not trigger an assert.  Split the assert to account for this.
2137
21382014-02-28  Dave Arnold  <darnold@adobe.com>
2139
2140	[cff] Fix Savannah bug #41697, part 1.
2141
2142	* src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
2143	invalid.  In this case, it is not safe to use the length of
2144	`hStemHintArray'; the exception has already been recorded in
2145	`hintMask'.
2146
21472014-02-26  Werner Lemberg  <wl@gnu.org>
2148
2149	[sfnt] Fix Savannah bug #41696.
2150
2151	* src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
2152	tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
2153
21542014-02-26  Werner Lemberg  <wl@gnu.org>
2155
2156	[winfnt] Fix Savannah bug #41694.
2157
2158	* src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
2159
21602014-02-26  Werner Lemberg  <wl@gnu.org>
2161
2162	[cff] Fix Savannah bug #41693.
2163
2164	* src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
2165
21662014-02-26  Werner Lemberg  <wl@gnu.org>
2167
2168	[bdf] Fix Savannah bug #41692.
2169
2170	bdflib puts data from the input stream into a buffer in chunks of
2171	1024 bytes.  The data itself gets then parsed line by line, simply
2172	increasing the current pointer into the buffer; if the search for
2173	the final newline character exceeds the buffer size, more data gets
2174	read.
2175
2176	However, in case the current line's end is very near to the buffer
2177	end, and the keyword to compare with is longer than the current
2178	line's length, an out-of-bounds read might happen since `memcmp'
2179	doesn't stop properly at the string end.
2180
2181	* src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
2182	stop at string ends.
2183
21842014-02-17  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2185
2186	[autofit] Fix `make multi' compilation.
2187
2188	* src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
2189
21902014-02-19  Werner Lemberg  <wl@gnu.org>
2191	    Simon Bünzli  <zeniko@gmail.com>
2192
2193	Fix Savannah bug #32902.
2194
2195	Patch taken from
2196
2197	  https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
2198
2199	with slight modifications.
2200
2201	* src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
2202	handle fonts that incorrectly use \r at the beginning of an eexec
2203	block.
2204
22052014-02-19  Simon Bünzli  <zeniko@gmail.com>
2206
2207	Fix Savannah bug #41590.
2208
2209	* src/type1/t1load.c (parse_encoding): Protect against invalid
2210	number.
2211
22122014-02-12  Dave Arnold  <darnold@adobe.com>
2213
2214	[cff] Optimize by using `FT_MulDiv'.
2215	Suggested by Alexei.
2216
2217	* src/cff/cf2font.c (cf2_computeDarkening): Do it.
2218
22192014-02-12  Werner Lemberg  <wl@gnu.org>
2220
2221	Fix Savannah bug #41465.
2222
2223	* builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
2224	(DISTCLEAN): Remove `freetype-config'.
2225
22262014-02-08  Sean McBride  <sean@rogue-research.com>
2227
2228	Fix clang static analyzer and compiler warnings.
2229
2230	* src/autofit/afhints.c (af_glyph_hints_align_weak_points),
2231	src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
2232	src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
2233	(FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
2234	src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
2235	(cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
2236	src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
2237	(sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
2238	tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
2239	code.
2240
2241	* src/autofit/afmodule.c (af_property_get_face_globals,
2242	af_property_set, af_property_get), src/base/ftbitmap.c
2243	(ft_gray_for_premultiplied_srgb_bgra): Make functions static.
2244
2245	* src/base/ftobjs.c (ft_remove_renderer): Protect against
2246	library == NULL.
2247	(ft_property_do): Make function static.
2248
2249	* src/base/ftrfork.c: Include `ftbase.h'.
2250
2251	* src/sfnt/ttsbit.c (tt_face_load_sbix_image)
2252	[!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
2253	(T1_Compute_Max_Advance): Avoid compiler warning.
2254
2255	* src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
2256	variable.
2257
22582014-02-08  Werner Lemberg  <wl@gnu.org>
2259
2260	Fix Windows build directories.
2261
2262	The build target is now `windows' instead of `win32'.
2263
2264	Problem reported by Nickolas George <darknova.clan@gmail.com>.
2265
2266	* builds/modules.mk: Don't use `win32' and `win16' (!) but
2267	`windows'.
2268
2269	* builds/windows/detect.mk, builds/windows/win32-def.mk:
2270	s/win32/windows/.
2271
22722014-02-08  Eugen Sawin  <esawin@mozilla.com>
2273
2274	Fix Savannah bug #41507.
2275
2276	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
2277	[!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
2278
22792014-02-08  Dave Arnold  <darnold@adobe.com>
2280
2281	[cff] Fix minor performance bug.
2282
2283	* src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
2284	calculations are now cached and not recomputed on each glyph.
2285
22862014-02-05  Werner Lemberg  <wl@gnu.org>
2287
2288	Fix problems with perl 5.8.8 as distributed with current MinGW.
2289
2290	* src/tools/afblue.pl: Work-around for Perl bug #63402.
2291	(string_re): Avoid `possessive quantifiers', which have been
2292	introduced in Perl version 5.10.
2293
22942014-02-04  Werner Lemberg  <wl@gnu.org>
2295
2296	Fix compilation with MinGW.
2297
2298	Right now, compilation out of the box with latest MinGW is broken
2299	due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
2300	cf.
2301
2302	  https://sourceforge.net/p/mingw/bugs/2024/
2303	  https://sourceforge.net/p/mingw/bugs/2046/
2304
2305	* builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
2306
23072014-02-04  Werner Lemberg  <wl@gnu.org>
2308
2309	[autofit] Minor fix.
2310
2311	* src/autofit/afcjk.c (af_cjk_metrics_init_widths),
2312	src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
2313	of alternative standard characters.
2314	This also fixes a compilation warning in non-debug mode.
2315
23162014-02-03  Werner Lemberg  <wl@gnu.org>
2317
2318	[cff] Fix Savannah bug #41363.
2319
2320	* src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
2321	parameter check.
2322	(cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
2323	we are scaling the outline.
2324	(cf2_getPpemY): Remove problematic assertion.
2325
23262014-01-26  Werner Lemberg  <wl@gnu.org>
2327
2328	[autofit] Introduce two more slots for standard characters.
2329
2330	This is useful for OpenType features like `c2sc' (caps to small
2331	caps) that don't have lowercase letters by definition, or other
2332	features that mainly operate on numerals.
2333
2334	* src/autofit/afscript.h: Add more standard characters.
2335
2336	* src/autofit/aftypes.h: Update use of `SCRIPT' macro.
2337	(AF_ScriptClassRec): Add members to hold two more standard
2338	characters.
2339	(AF_DEFINE_SCRIPT_CLASS): Updated.
2340
2341	* src/autofit/afglobal.c, src/autofit/afglobal.h,
2342	* src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
2343	Update use of `SCRIPT' macro.
2344
2345	* src/autofit/afcjk.c (af_cjk_metrics_init_widths),
2346	src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
2347	standard characters.
2348
23492014-01-24  Werner Lemberg  <wl@gnu.org>
2350
2351	Fix Savannah bug #41320.
2352
2353	* src/autofit/aflatin.c (af_latin_metrics_init_blues)
2354	<AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
2355
23562014-01-23  Werner Lemberg  <wl@gnu.org>
2357
2358	Fix Savannah bug #41310.
2359
2360	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
2361	Don't check metrics, which this format doesn't have.
2362	This is another correction to the commit from 2013-11-21.
2363
23642014-01-23  Werner Lemberg  <wl@gnu.org>
2365
2366	Fix Savannah bug #41309.
2367
2368	* src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
2369	of `T1_ToFixedArray'.
2370
2371	* src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
2372	`t1_parse_font_matrix'.
2373
2374	* src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
2375	`t1_parse_font_matrix'.
2376	(t42_parse_encoding): Synchronize with `t1_parse_encoding'.
2377
2378	* src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
2379	<T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
2380
23812014-01-22  Werner Lemberg  <wl@gnu.org>
2382
2383	* src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
2384
23852014-01-16  Werner Lemberg  <wl@gnu.org>
2386
2387	[autofit] Improve tracing of style coverages.
2388
2389	* include/internal/fttrace.h: Add `afglobal' for tracing style
2390	coverages.
2391
2392	* src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
2393	(FT_COMPONENT): Define.
2394	(af_face_globals_compute_style_coverage): Trace `gstyles' array
2395	data.
2396
23972014-01-09  Werner Lemberg  <wl@gnu.org>
2398
2399	Fix Savannah bug #41158.
2400
2401	* builds/unix/install.mk (install): Create man page directory.
2402
24032014-01-08  Chongyu Zhu  <lembacon@gmail.com>
2404
2405	[arm] Fix Savannah bug #41138, part 2.
2406
2407	* builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
2408	(FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
2409	preprocessor conditionals for `add.w'.
2410
24112014-01-08  Werner Lemberg  <wl@gnu.org>
2412
2413	[autofit] Fix Savannah bug #41138, part 1.
2414
2415	* src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
2416	enumeration names for generated `#else'.
2417
2418	* src/autofit/afblue.h: Regenerated.
2419
24202014-01-06  Werner Lemberg  <wl@gnu.org>
2421
2422	Add manual page for `freetype-config'.
2423	Contributed by Nis Martensen <nis.martensen@web.de>.
2424
2425	* docs/freetype-config.1: New file.
2426
2427	* builds/unix/unix-def.in (mandir): Define.
2428	* builds/unix/install.mk (install, uninstall): Handle manpage.
2429
24302014-01-05  Werner Lemberg  <wl@gnu.org>
2431
2432	[autofit] Minor fixes for `afblue.pl'.
2433
2434	* src/tools/afblue.pl (aux_name): Don't use `reverse'.
2435	<Handling #endif>: Use proper indentation for generated `#else'.
2436
2437	* src/autofit/afblue.h: Regenerated.
2438
24392014-01-04  Werner Lemberg  <wl@gnu.org>
2440
2441	[autofit] Fix Indic scripts.
2442
2443	Split the single, incorrect Indic entry into separate scripts so
2444	that the covered ranges are the same: Bengali, Devanagari, Gujarati,
2445	Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
2446	Syloti Nagri, Tamil, Telugu, and Tibetan.  At the same time, remove
2447	entries for Meetei Mayek and Sharada – the Unicode ranges were
2448	incorrect (and nobody has complained about that), fonts are scarce
2449	for those scripts, and the Indic auto-hinter support is rudimentary
2450	anyways.
2451
2452	* src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
2453	AF_CONFIG_OPTION_CJK.
2454
2455	* src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
2456	Use it, together with AF_CONFIG_OPTION_INDIC and
2457	AF_CONFIG_OPTION_CJK, to update.
2458
2459	* src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
2460	[!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
2461	Sort entries by tags.
2462
24632014-01-03  Werner Lemberg  <wl@gnu.org>
2464
2465	[autofit] Thinko.
2466
2467	* src/autofit/hbshim.c (af_get_char_index): Similar to
2468	`af_get_coverage', reject glyphs which are not substituted.
2469
24702014-01-03  Werner Lemberg  <wl@gnu.org>
2471
2472	[autofit] Fix handling of default coverages.
2473
2474	With this commit, the implementation of coverage handling is
2475	completed.
2476
2477	* src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
2478	do.
2479	Reject coverages which don't contain appropriate glyphs for blue
2480	zones.
2481
24822014-01-03  Werner Lemberg  <wl@gnu.org>
2483
2484	[autofit] Fix handling of default coverages.
2485
2486	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2487	First handle non-default coverages, then the default coverage of the
2488	default script, and finally the other default coverages.
2489
24902014-01-03  Werner Lemberg  <wl@gnu.org>
2491
2492	[autofit] Fix scaling of HarfBuzz shaping.
2493
2494	* src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
2495
24962014-01-03  Werner Lemberg  <wl@gnu.org>
2497
2498	[autofit] Better ftgrid support.
2499
2500	* src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
2501	parameters `is_blue' and `blue_offset'.
2502
25032014-01-01  Werner Lemberg  <wl@gnu.org>
2504
2505	[autofit] Remove some styles.
2506
2507	* src/autofit/afcover.h: Remove coverages for alternative fractions,
2508	denominators, numerators, and fractions.
2509
2510	* src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
2511
25122014-01-01  Werner Lemberg  <wl@gnu.org>
2513
2514	[autofit] Add more styles.
2515
2516	* src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
2517	auxiliary macros; use them to define styles for Cyrillic, Greek, and
2518	Latin.
2519
2520	* src/autofit/afcover.h: Remove coverage for oldstyle figures.
2521	Since those digits are used in combination with ordinary letters, it
2522	makes no sense to handle them separately.
2523
2524	* src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
2525	`options' parameter to 4 bits.
2526
25272014-01-01  Werner Lemberg  <wl@gnu.org>
2528
2529	[autofit] Fix style assignments to glyphs.
2530
2531	* src/autofit/hbshim.c (af_get_coverage)
2532	[FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
2533	so that we can skip glyphs that have both GSUB and GPOS data.
2534
25352014-01-01  Werner Lemberg  <wl@gnu.org>
2536
2537	* src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
2538
25392014-01-01  Werner Lemberg  <wl@gnu.org>
2540
2541	[autofit] Implement and use `af_get_char_index' with HarfBuzz.
2542
2543	* src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
2544	Redefine to construct HarfBuzz features.
2545	(af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
2546
2547	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
2548	`y_offset' to adjust `best_y'.
2549
25502013-12-31  Werner Lemberg  <wl@gnu.org>
2551
2552	[autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
2553
25542013-12-31  Werner Lemberg  <wl@gnu.org>
2555
2556	[autofit] Fix interface of `af_get_char_index'.
2557
2558	* src/autofit/hbshim.c (af_get_char_index): Return error value.
2559	Add argument for y offset (to be used in a yet-to-come patch).
2560
2561	* src/autofit/hbshim.h, src/autofit/afcjk.c,
2562	src/autofit/aflatin.c: Updated.
2563
25642013-12-30  Werner Lemberg  <wl@gnu.org>
2565
2566	[autofit] Don't combine multiple features into one set.
2567
2568	Combining them, as originally envisioned, would lead to much more
2569	complicated code, as investigations have shown meanwhile.  The major
2570	drawback is that we run out of available style slots much earlier.
2571	However, this is only a theoretical issue since we don't support a
2572	large number of scripts currently.
2573
2574	* src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
2575	a single-element `COVERAGE' macro, sort the elements by the feature
2576	tags, and add entry for `ruby'.
2577
2578	* src/autofit/aftypes.h: Updated.
2579	* src/autofit/hbshim.c: Updated.
2580
25812013-12-28  Werner Lemberg  <wl@gnu.org>
2582
2583	[autofit] Code shuffling to reduce use of cpp macros.
2584
2585	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2586	Call `af_get_coverage' unconditionally.
2587
2588	* src/autofit/autofit.c: Include `hbshim.c' unconditionally.
2589
2590	* src/autofit/hbshim.c (af_get_coverage)
2591	[!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
2592
2593	* src/autofit/hbshim.h: Provide function declarations
2594	unconditionally.
2595
25962013-12-28  Werner Lemberg  <wl@gnu.org>
2597
2598	[autofit] Add wrapper function for `FT_Get_Char_Index'.
2599
2600	Yet-to-come changes will provide HarfBuzz functionality for the new
2601	function.
2602
2603	* src/autofit/hbshim.c (af_get_char_index): New function.
2604	* src/autofit/hbshim.h: Updated.
2605
2606	* src/autofit/afcjk.c (af_cjk_metrics_init_widths,
2607	af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
2608
2609	* src/autofit/aflatin.c (af_latin_metrics_init_widths,
2610	af_latin_metrics_init_blues, af_latin_metrics_check_digits):
2611	Updated.
2612
26132013-12-28  Werner Lemberg  <wl@gnu.org>
2614
2615	[autofit] Use `global' HarfBuzz font object.
2616
2617	We now use `hb_font' instead of `hb_face' since yet-to-come changes
2618	need this.
2619
2620	* src/autofit/afglobal.h: Include `hbshim.h'.
2621	(AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
2622	`hb_font'.
2623
2624	* src/autofit/afglobal.c (af_face_globals_new)
2625	[FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
2626	(af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
2627	`hb_font'.
2628
2629	* src/autofit/hbshim.h: Include HarfBuzz headers.
2630
2631	* src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
2632	headers.
2633	(af_get_coverage): Updated.
2634
26352013-12-27  Werner Lemberg  <wl@gnu.org>
2636
2637	[autofit] Handle `DFLT' OpenType script for coverages.
2638
2639	* include/ftautoh.h: Document new `default-script' property.
2640
2641	* src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
2642	type of first parameter.
2643	(script_tags): Add one more element.
2644	(af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
2645
2646	* src/autofit/hbshim.h: Updated.
2647
2648	* src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2649	Updated.
2650
2651	* src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
2652
2653	* src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
2654	member.
2655
2656	* src/autofit/afmodule.c (af_property_set, af_property_get): Handle
2657	`default-script' property.
2658	(af_autofitter_init): Updated.
2659
26602013-12-27  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
2661
2662	[ftrfork] Fix the face order difference between POSIX and Carbon.
2663
2664	The fragmented resources in Suitcase and .dfont should be reordered
2665	when `POST' resource for Type1 is being restored, but reordering of
2666	sfnt resources induces the different face order.  Now the ordering
2667	is restricted to `POST' resource only, to prevent the different
2668	order issue (e.g. the face index in the fontconfig cache generated
2669	with Carbon framework is incompatible with that by FreeType 2
2670	without Carbon framework.)  Found by Khaled Hosny and Hin-Tak Leung.
2671
2672	https://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
2673	https://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
2674
2675	* src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
2676	`sort_by_res_id' to control the fragmented resource ordering.
2677	* include/internal/ftrfork.h: Declare new switch.
2678	* src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
2679	resource, and disable the sorting for `sfnt' resource.
2680
26812013-12-25  Werner Lemberg  <wl@gnu.org>
2682
2683	Fix Savannah bug #40997.
2684
2685	* src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
2686	adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
2687	be set.
2688	* src/cff/cffobjs.c (cff_face_init): Ditto.
2689	* src/cid/cidobjs.c (cid_face_init): Ditto.
2690	* src/pcf/pcfread.c (pcf_load_font): Ditto.
2691	* src/pfr/pfrobjs.c (pfr_face_init): Ditto.
2692	* src/type1/t1objs.c (T1_Face_Init): Ditto.
2693	* src/type42/t42objs.c (T42_Face_Init): Ditto.
2694	* src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
2695
26962013-12-21  Werner Lemberg  <wl@gnu.org>
2697
2698	[autofit] Introduce `coverages'.
2699
2700	Coverages are the interface to the HarfBuzz library to access
2701	OpenType features for handling glyphs not addressable by the cmap.
2702
2703	Right now, compilation of HarfBuzz is only added to the development
2704	build.  A solution for standard build mode will be delayed until
2705	HarfBuzz gets split into two libraries to avoid mutual dependencies
2706	between FreeType and HarfBuzz.
2707
2708	Note that this is only a first step in handling coverages, basically
2709	providing the framework only.  Code for handling selected OpenType
2710	features (this is, actually using the data in `afcover.h') will
2711	follow.
2712
2713	* devel/ftoption.h, include/config/ftoption.h
2714	(FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
2715
2716	* src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
2717	New files.
2718
2719	* src/autofit/afscript.h: Add HarfBuzz script name tags.
2720
2721	* src/autofit/afstyles.h: Add default coverage enumeration values.
2722
2723	* src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
2724	(AF_Coverage): New enumeration (generated by `afcover.h').
2725	(AF_StyleClassRec): New member `coverage'.
2726	(AF_DEFINE_STYLE_CLASS): Updated.
2727
2728	* include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
2729	data.
2730
2731	* src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
2732	(AF_SCRIPT_FALLBACK): Renamed to ...
2733	(AF_STYLE_FALLBACK): ... this.
2734
2735	* src/autofit/afglobal.c: Include `hbshim.c'.
2736	Update use of `SCRIPT' and `STYLE' macros.
2737	(af_face_globals_compute_style_coverage)
2738	[FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
2739	Update.
2740
2741	* src/autofit/afmodule.h (AF_ModuleRec):
2742	s/fallback_script/fallback_style/.
2743
2744	* src/autofit/afmodule.c (af_property_set): Adapt handling of
2745	`fallback-script' property to set a fallback style.
2746	(af_property_get, af_autofitter_init): Updated.
2747
2748	* src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
2749
2750	* src/autofit/afranges.h: Update use of `SCRIPT' macro.
2751
2752	* src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
2753	`hbshim.c'.
2754
2755	* src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
2756	(AUTOF_DRV_H): Add `afcover.h'.
2757
2758	* builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
2759	all libraries needed by FreeType.
2760
27612013-12-21  Werner Lemberg  <wl@gnu.org>
2762
2763	Fix Savannah bug #40975 (sort of).
2764
2765	* src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
2766	behave the same as the Windows TrueType engine for the invalid case.
2767
27682013-12-21  Werner Lemberg  <wl@gnu.org>
2769
2770	[autofit] Make PIC mode work actually.
2771
2772	* src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
2773	enumeration values automatically generated by including `afscript.h'
2774	and friends.
2775
2776	* src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
2777
27782013-12-21  Werner Lemberg  <wl@gnu.org>
2779
2780	Fix PIC linking.
2781
2782	* include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
2783	generated function name.
2784
2785	* src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
2786	to ...
2787	(FT_Init_Table_ft_raccess_guess_table): ... this so that the
2788	function name correctly corresponds to what the macro framework
2789	expects.
2790
2791	* src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
2792	that PIC functions are compiled also.
2793
27942013-12-21  Werner Lemberg  <wl@gnu.org>
2795
2796	[base] Add missing dependencies to Makefile.
2797
2798	* src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
2799	(BASE_H): Add `basepic.h'.
2800
28012013-12-20  Werner Lemberg  <wl@gnu.org>
2802
2803	[autofit] Fix PIC compilation.
2804
2805	* src/autofit/afcjk.c (af_cjk_metrics_init_widths),
2806	src/autofit/aflatin.c (af_latin_metrics_init_widths)
2807	[FT_CONFIG_OPTION_PIC]: Declare `globals'.
2808
2809	* src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
2810	AF_DEFINE_STYLE_CLASS.
2811
2812	* src/autofit/afpic.c: Include `afglobal.h'.
2813	(autofit_module_class_pic_init): Typo.
2814
2815	* src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
2816	AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
2817	parameter and structure member.
2818
28192013-12-20  Werner Lemberg  <wl@gnu.org>
2820
2821	[autofit] Introduce `styles'.
2822
2823	This is the new top-level structure for handling glyph input data;
2824	scripts are now defined separately.
2825
2826	* src/autofit/aftypes.h (SCRIPT): Updated.
2827	(AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
2828	members to ...
2829	(AF_Style_ClassRec): ... this new structure.
2830	(AF_Style): New enumeration.
2831	(AF_StyleMetricsRec): Replace `script' enumeration with
2832	`style_class' pointer.
2833	(AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
2834	(AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
2835
2836	* src/autofit/afstyles.h: New file, using data from `afscript.h'.
2837	* src/autofit/afscript.h: Updated.
2838
2839	* src/autofit/afcjk.c (af_cjk_metrics_init_widths,
2840	af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
2841
2842	* src/autofit/afglobal.c (SCRIPT): Updated.
2843	(STYLE): Redefine macro to load `afstyles.h'.
2844	(af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
2845	(af_style_names): ... this array.
2846	(af_face_globals_compute_script_coverage): Renamed to...
2847	(af_face_globals_compute_style_coverage): ... this.
2848	Updated.
2849	(af_face_globals_new, af_face_globals_free,
2850	af_face_globals_get_metrics): Updated.
2851
2852	* src/autofit/afglobal.h (SCRIPT): Updated.
2853	(STYLE): Redefine macro to load `afstyles.h'.
2854	(AF_SCRIPT_FALLBACK): Update definition.  This will get more
2855	refinements with later on.
2856	(AF_SCRIPT_UNASSIGNED): Replace with...
2857	(AF_STYLE_UNASSIGNED): ... this macro.
2858	(AF_FaceGlobalsRec): Updated.
2859
2860	* src/autofit/aflatin.c (af_latin_metrics_init_widths,
2861	af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
2862	af_latin_hint_edges): Updated.
2863
2864	* src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
2865	(af_ltn2_uniranges): Removed.
2866
2867	* src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
2868	Updated.
2869
2870	* src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
2871	* src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
2872	(AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
2873	members.
2874
2875	* src/autofit/afranges.h: Updated.
2876
2877	* src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
2878
28792013-12-19  Werner Lemberg  <wl@gnu.org>
2880
2881	[autofit] Factor scripts and uniranges out of writing system files.
2882
2883	* src/autofit/afranges.c, src/autofit/afranges.h: New files.
2884
2885	* src/autofit/afscript.h: Extend `SCRIPT' macro with more
2886	parameters, taking data from the writing system files.
2887
2888	* src/autofit/aftypes.h: Updated.
2889
2890	* src/autofit/afglobal.c: Include `afranges.h'.
2891	Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
2892	* src/autofit/afglobal.c: Include `afranges.h'.
2893	Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
2894
2895	* src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
2896	* src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
2897	* src/autofit/afindic.c, src/autofit/afindic.h: Updated.
2898	* src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
2899	* src/autofit/aflatin2.c, src/autofit/aflatin2.h: Updated.
2900
2901	* src/autofit/afpic.c: Updated.
2902
2903	* src/autofit/autofit.c: Include `afranges.c'.
2904	* src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
2905
29062013-12-18  Werner Lemberg  <wl@gnu.org>
2907
2908	[autofit] More code orthogonality.
2909
2910	* src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
2911	pointer to an `AF_ScriptClass' structure with `script' index of type
2912	`AF_Script'.
2913	Move some code around.
2914
2915	* src/autofit/afcjk.c: Include `afpic.h'.
2916	(af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
2917	af_cjk_hint_edges): Updated.
2918
2919	* src/autofit/aflatin.c: Include `afpic.h'.
2920	(af_latin_metrics_init_widths, af_latin_metrics_init_blues,
2921	af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
2922
2923	* src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
2924
2925	* src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
2926	Updated.
2927
29282013-12-18  Werner Lemberg  <wl@gnu.org>
2929
2930	[autofit] s/ScriptMetrics/StyleMetrics/.
2931
29322013-12-18  Werner Lemberg  <wl@gnu.org>
2933
2934	[autofit] s/script_{metrics,hints}/style_{metrics,hints}/
2935
29362013-12-18  Werner Lemberg  <wl@gnu.org>
2937
2938	[autofit] s/gscripts/gstyles/.
2939
29402013-12-18  Werner Lemberg  <wl@gnu.org>
2941
2942	[autofit] s/glyph_scripts/glyph_styles/.
2943
2944	This is the first commit of a series to create a new top-level
2945	structure (a `style') for handling scripts, writing_systems, and
2946	soon-to-be-added coverages.
2947
29482013-12-17  Werner Lemberg  <wl@gnu.org>
2949
2950	[autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
2951
29522013-12-11  Infinality  <infinality@infinality.net>
2953
2954	[truetype] Simplify logic of rendering modes.
2955
2956	This patch unifies the subpixel and non-subpixel cases.
2957
2958	* src/truetype/ttinterp.h (TT_ExecContextRec): Remove
2959	`grayscale_hinting'; all code should refer to `grayscale' instead.
2960	Remove unused `native_hinting' member.
2961	Rename `subpixel_hinting' member to `subpixel.
2962
2963	* src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
2964	(tt_loader_init): Updated.
2965
2966	* src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
2967	Updated.
2968
29692013-12-11  Werner Lemberg  <wl@gnu.org>
2970
2971	[documentation] Add section how to include FreeType header files.
2972	Problem reported by David Kastrup <dak@gnu.org>.
2973
2974	Surprisingly, a description how to do that was completely missing in
2975	the API reference.
2976
2977	* include/freetype.h, include/ftchapters.h: New documentation
2978	section `header_inclusion'.
2979
29802013-12-10  Werner Lemberg  <wl@gnu.org>
2981
2982	[autofit] s/DFLT/NONE/, s/dflt/none/.
2983
29842013-12-10  Werner Lemberg  <wl@gnu.org>
2985
2986	[autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
2987
29882013-12-10  Werner Lemberg  <wl@gnu.org>
2989
2990	[truetype] Fix scaling of vertical phantom points.
2991
2992	* src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
2993	pp4.x also.
2994
29952013-12-10  Werner Lemberg  <wl@gnu.org>
2996
2997	[truetype] Fix positioning of composite glyphs.
2998	Problem reported by Nigel Tao <nigeltao@golang.org>.
2999
3000	* src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
3001	the glyph (component) by a fractional value computed from the LSB
3002	phantom point.  This is wrong, since the horizontal phantom points
3003	get rounded horizontally later on.
3004
30052013-12-08  Werner Lemberg  <wl@gnu.org>
3006
3007	* Version 2.5.2 released.
3008	=========================
3009
3010
3011	Tag sources with `VER-2-5-2'.
3012
3013	* docs/VERSION.DLL: Update documentation and bump version number to
3014	2.5.2.
3015
3016	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
3017	builds/windows/vc2005/index.html,
3018	builds/windows/vc2008/freetype.vcproj,
3019	builds/windows/vc2008/index.html,
3020	builds/windows/vc2010/freetype.vcxproj,
3021	builds/windows/vc2010/index.html,
3022	builds/windows/visualc/freetype.dsp,
3023	builds/windows/visualc/freetype.vcproj,
3024	builds/windows/visualc/index.html,
3025	builds/windows/visualce/freetype.dsp,
3026	builds/windows/visualce/freetype.vcproj,
3027	builds/windows/visualce/index.html,
3028	builds/wince/vc2005-ce/freetype.vcproj,
3029	builds/wince/vc2005-ce/index.html,
3030	builds/wince/vc2008-ce/freetype.vcproj,
3031	builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
3032
3033	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
3034
3035	* builds/unix/configure.raw (version_info): Set to 17:1:11.
3036	* CMakeLists.txt (VERSION_PATCH): Set to 2.
3037	* docs/CHANGES: Updated.
3038
30392013-12-07  Werner Lemberg  <wl@gnu.org>
3040
3041	[truetype] Next round in phantom point handling.
3042
3043	Greg Hitchcock provided very interesting insights into the
3044	complicated history of the horizontal positions of the TSB and BSB
3045	phantom points.
3046
3047	* src/truetype/ttgload.c (TT_LOADER_SET_PP)
3048	[TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
3049	`grayscale_hinting' flags as conditionals for the x position of TSB
3050	and BSB.
3051
30522013-12-05  Werner Lemberg  <wl@gnu.org>
3053
3054	* builds/freetype.mk (FT_CC): Removed.  Unused.
3055
30562013-12-04  Werner Lemberg  <wl@gnu.org>
3057
3058	[sfnt] Fix handling of embedded bitmap strikes.
3059
3060	This corrects the commit from 2013-11-21.  Problem reported by
3061	Andrey Panov <panov@canopus.iacp.dvo.ru>.
3062
3063	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
3064	detect excessive bytes for bit-aligned bitmaps.
3065
30662013-12-03  Werner Lemberg  <wl@gnu.org>
3067
3068	[truetype] Remove dead code.
3069
3070	Reported by Nigel Tao <nigeltao@golang.org>.
3071
3072	* include/internal/tttypes.h (TT_LoaderRec): Remove unused
3073	`preserve_pps' field.
3074	* src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
3075
30762013-12-03  Werner Lemberg  <wl@gnu.org>
3077
3078	[truetype] Fix phantom point handling.
3079
3080	This is a further improvement to the changes from 2013-11-06.
3081
3082	* src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
3083	are rounded horizontally, vertical ones are rounded vertically.
3084	(TT_LOADER_SET_PP): The horizontal position of vertical phantom
3085	points in pre-ClearType mode is zero, as shown in the OpenType
3086	specification.
3087
30882013-12-02  Werner Lemberg  <wl@gnu.org>
3089
3090	[truetype] Fix change from 2013-11-20.
3091
3092	Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
3093
3094	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
3095	`Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
3096	`IS_HINTED' clause.
3097	Also remove redundant check using `maxSizeOfInstructions' – in
3098	simple glyphs, the bytecode data comes before the outline data, and
3099	a validity test for this is already present.
3100
31012013-11-27  Werner Lemberg  <wl@gnu.org>
3102
3103	[autofit] Fix use of dumping functions in `ftgrid' demo program.
3104
3105	* src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
3106	(af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
3107	af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
3108	handle output to stdout.
3109	Use AF_DUMP.
3110	(af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
3111	af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
3112
31132013-11-25  Werner Lemberg  <wl@gnu.org>
3114
3115	* Version 2.5.1 released.
3116	=========================
3117
3118
3119	Tag sources with `VER-2-5-1'.
3120
3121	* docs/VERSION.DLL: Update documentation and bump version number to
3122	2.5.1.
3123
3124	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
3125	builds/windows/vc2005/index.html,
3126	builds/windows/vc2008/freetype.vcproj,
3127	builds/windows/vc2008/index.html,
3128	builds/windows/vc2010/freetype.vcxproj,
3129	builds/windows/vc2010/index.html,
3130	builds/windows/visualc/freetype.dsp,
3131	builds/windows/visualc/freetype.vcproj,
3132	builds/windows/visualc/index.html,
3133	builds/windows/visualce/freetype.dsp,
3134	builds/windows/visualce/freetype.vcproj,
3135	builds/windows/visualce/index.html,
3136	builds/wince/vc2005-ce/freetype.vcproj,
3137	builds/wince/vc2005-ce/index.html,
3138	builds/wince/vc2008-ce/freetype.vcproj,
3139	builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
3140
3141	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
3142
3143	* builds/unix/configure.raw (version_info): Set to 17:0:11.
3144	* CMakeLists.txt (VERSION_PATCH): Set to 1.
3145	* docs/CHANGES, docs/release: Updated.
3146
31472013-11-23  Werner Lemberg  <wl@gnu.org>
3148
3149	[truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
3150
3151	* src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
3152	TRICK_NAMES_COUNT): Updated.
3153	(trick_names): Add family name for the two fonts.
3154
31552013-11-23  Werner Lemberg  <wl@gnu.org>
3156
3157	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
3158
31592013-11-21  Werner Lemberg  <wl@gnu.org>
3160
3161	[sfnt] Typo.
3162
3163	Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
3164
3165	* src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
3166	value if the font lacks an `OS/2' table.
3167
31682013-11-21  Werner Lemberg  <wl@gnu.org>
3169
3170	[sfnt] Improve handling of buggy embedded bitmap strikes.
3171
3172	We are now able to successfully load `AppleMyoungJo.ttf'.
3173	Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
3174
3175	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
3176	format.
3177
31782013-11-20  Werner Lemberg  <wl@gnu.org>
3179
3180	[truetype] Don't trust `maxp's `maxSizeOfInstructions'.
3181
3182	Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
3183
3184	  https://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
3185
3186	for details.
3187
3188	* src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
3189	tables also for setting `autohint'.
3190
3191	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
3192	`TT_Process_Composite_Glyph' for handling unreliable values of
3193	`maxSizeOfInstructions'.
3194
31952013-11-16  Werner Lemberg  <wl@gnu.org>
3196
3197	[sfnt] Fix `OS/2' table version 5 support.
3198
3199	We now follow the `official' announcement from Microsoft (on the
3200	OpenType mailing list, which unfortunately hasn't a public archive).
3201
3202	* include/freetype/tttables.h (TT_OS2):
3203	s/usLowerPointSize/usLowerOpticalPointSize/,
3204	s/usUpperPointSize/usUpperOpticalPointSize/.
3205
3206	* src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
3207	default values.
3208
32092013-11-13  Werner Lemberg  <wl@gnu.org>
3210
3211	* builds/unix/ft2unix.h: Remove.  No longer necessary.
3212
3213	* builds/unix/install.mk (install): Updated.
3214
32152013-11-13  Werner Lemberg  <wl@gnu.org>
3216
3217	Simplify header file hierarchy.
3218
3219	This large patch changes the header file directory layout from
3220	`include/freetype/...' to `include/...', effectively removing one
3221	level.  Since the file `ft2build.h' is also located in `include'
3222	(and it stays there even after installation), all FreeType header
3223	files are now in a single directory.
3224
3225	Applications that use (a) `freetype-config' or FreeType's
3226	`pkg-config' file to get the include directory for the compiler, and
3227	(b) the documented way for header inclusion like
3228
3229	  #include <ft2build.h>
3230	  #include FT_FREETYPE_H
3231	  ...
3232
3233	don't need any change to the source code.
3234
3235	* include/freetype/*: Move up to...
3236	* include/*: ... this directory.
3237
3238	* builds/amiga/include/freetype/*: Move up to...
3239	* builds/amiga/include/*: ... this directory.
3240
3241	*/*: Essentially do `s@/freetype/@/@' where appropriate.
3242
3243	* CMakeLists.txt: Simplify.
3244	* builds/unix/freetype-config.in, builds/unix/freetype2.in: For
3245	`--cflags', return a single directory.
3246	* builds/unix/install.mk (install): No longer try to remove `cache'
3247	and `internal' subdirectories; instead, remove the `freetype'
3248	subdirectory.
3249
32502013-11-12  Werner Lemberg  <wl@gnu.org>
3251
3252	[truetype] Fix last `truetype' commit.
3253
3254	* src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
3255	Return error value.
3256	(load_truetype_glyph): Updated.
3257
32582013-11-10  Werner Lemberg  <wl@gnu.org>
3259
3260	* docs/CMAKE: New dummy file.
3261
32622013-11-08  Dave Arnold  <darnold@adobe.com>
3263
3264	[cff] Fix for hints that touch.
3265
3266	* src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
3267	finding index value of insertion point.
3268
32692013-11-06  Werner Lemberg  <wl@gnu.org>
3270
3271	[truetype] Fix handling of phantom points in composite glyphs.
3272	Problem reported by Nigel Tao <nigeltao@golang.org>.
3273
3274	This is a follow-up commit to the previous one.
3275
3276	* src/truetype/ttgload.c (load_truetype_glyph): Call
3277	`tt_get_metrics' after loading the glyph header.
3278
32792013-11-06  Werner Lemberg  <wl@gnu.org>
3280
3281	[truetype] Improve emulation of vertical metrics.
3282
3283	This commit also improves the start values of vertical phantom
3284	points.  Kudos to Greg Hitchcock for help.
3285
3286	* src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
3287	`yMax' value.  Replace code with fixed Microsoft definition.
3288	(tt_get_metrics): Updated.
3289	(TT_LOADER_SET_PP): Add explanation how to initialize phantom
3290	points, taken from both the OpenType specification and private
3291	communication with Greg (which will eventually be added to the
3292	standard).
3293	Fix horizontal position of `pp3' and `pp4'.
3294
3295	* src/truetype/ttgload.h: Updated.
3296
3297	* src/truetype/ttdriver.c (tt_get_advances): Updated.
3298
3299	* docs/CHANGES: Updated.
3300
33012013-11-05  Werner Lemberg  <wl@gnu.org>
3302
3303	* builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
3304	PlatformToolSet version 110 is for VC2012.
3305
3306	Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
3307
33082013-11-05  Werner Lemberg  <wl@gnu.org>
3309
3310	[truetype] Correctly reset point tags for glyph components.
3311	Problem reported by Nigel Tao <nigeltao@golang.org>.
3312
3313	* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
3314
33152013-11-02  Werner Lemberg  <wl@gnu.org>
3316
3317	[truetype] Fix GETINFO opcode handling of subpixel hinting bits.
3318
3319	* src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
3320	get info on subpixel hinting.
3321
3322	* docs/CHANGES: Updated.
3323
33242013-11-02  Werner Lemberg  <wl@gnu.org>
3325
3326	Fix Savannah bug #40451.
3327
3328	Simply apply the patch from the bug report.
3329
3330	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
3331	include/freetype/config/ftconfig.h: The used #pragma directives only
3332	work with gcc versions 4.6 and higher.
3333
33342013-11-01  Werner Lemberg  <wl@gnu.org>
3335
3336	* docs/CHANGES: Updated.
3337
33382013-11-01  Werner Lemberg  <wl@gnu.org>
3339
3340	[truetype] Minor code refactoring.
3341
3342	Two benefits: The allocated FDEF (and IDEF) array gets slightly
3343	smaller, and the `ttdebug' demo program has access to function
3344	numbers without additional costs.
3345
3346	Fortunately, no changes to FontForge are necessary – this is the
3347	only external TrueType debugger I know of, but others may exist and
3348	should check the code accordingly.
3349
3350	* src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
3351	`Cur_End' with a pointer to the corresponding `TT_DefRecord'
3352	structure.
3353
3354	* src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
3355	Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
3356	Updated.
3357
33582013-10-27  Werner Lemberg  <wl@gnu.org>
3359
3360	[sfnt] Implement support for `OS/2' table version 5.
3361
3362	See
3363
3364	  http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
3365
3366	for the announcement.
3367
3368	* include/freetype/tttables.h (TT_OS2): Add fields
3369	`usLowerPointSize' and `usUpperPointSize'.  Since FreeType returns
3370	this structure only as a pointer through `FT_Get_Sfnt_Table', there
3371	shouldn't be any ABI problems.
3372
3373	* src/sfnt/ttload.c (tt_face_load_os2): Implement it.
3374
3375	* docs/CHANGES: Updated.
3376
33772013-10-24  Werner Lemberg  <wl@gnu.org>
3378
3379	* README.git, docs/CHANGES, docs/INSTALL: Updated.
3380
33812013-10-24  John Cary  <cary@txcorp.com>
3382
3383	Provide cmake support.
3384
3385	* CMakeLists.txt: New file.
3386
33872013-10-23  Kenneth Miller  <kennethadammiller@yahoo.com>
3388	    Werner Lemberg  <wl@gnu.org>
3389
3390	Provide support for x64 builds in Visual C++ project files.
3391
3392	* src/builds/win32: Renamed to...
3393	* src/builds/windows: This.
3394
3395	* src/builds/windows/vc2010/*: Updated to handle x64 target.
3396
3397	* src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
3398	appropriate.
3399
34002013-10-22  Werner Lemberg  <wl@gnu.org>
3401
3402	* src/base/md5.c, src/base/md5.h: Updated to recent version.
3403
3404	* src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
3405
3406	The canonical URL to get updates for this file is
3407
3408	  https://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
3409
3410	as the author told me in private communication.
3411
34122013-10-19  Werner Lemberg  <wl@gnu.org>
3413
3414	[autofit] s/SMALL_TOP/X_HEIGHT/.
3415
3416	* src/autofit/afblue.dat: Updated.
3417
3418	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
3419
3420	* src/autofit/aflatin.c, src/autofit/aflatin.h,
3421	src/autofit/aflatin2.c: Updated.
3422
34232013-10-19  Werner Lemberg  <wl@gnu.org>
3424
3425	* src/autofit/afblue.dat: s/MINOR/DESCENDER/.
3426
3427	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
3428
34292013-10-16  Werner Lemberg  <wl@gnu.org>
3430
3431	[autofit] Add description strings to script entries.
3432
3433	Currently, this is unused.
3434
3435	* src/autofit/afscript.h: Do it.
3436	* src/autofit/afglobal.c, src/autofit/afpic.c,
3437	src/autofit/aftypes.h: Updated.
3438
34392013-10-16  Werner Lemberg  <wl@gnu.org>
3440
3441	[autofit] Improve tracing message for extra light flag.
3442
3443	* src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
3444
34452013-10-15  Chongyu Zhu  <lembacon@gmail.com>
3446
3447	[arm] Fix thumb2 inline assembly under LLVM.
3448
3449	When using `ADD' with an immediate operand, the instruction is
3450	actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
3451	immediate operand cannot exceed 4095.  It will fail to compile with
3452	LLVM.
3453
3454	However, in GCC, due to some legacy compatibility considerations,
3455	`ADD.W' will be automatically emitted when the immediate operand is
3456	larger than 4095.
3457
3458	* builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
3459	(FT_MulFix_arm) [__GNUC__]: Support clang compiler.
3460
3461	* src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
3462
34632013-10-12  Werner Lemberg  <wl@gnu.org>
3464
3465	[autofit] Improve tracing of `latin' hinter.
3466
3467	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
3468	zone types.
3469	(af_latin_metrics_scale_dim): Report scaling changes due to x height
3470	alignment.
3471	Report scaled stroke width and blue zone values.
3472
34732013-10-03  Dave Arnold  <darnold@adobe.com>
3474
3475	* src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
3476
3477	Note that the old code avoided using a region of the piecewise
3478	linear function where the slope was zero.  The recovery was to use a
3479	different section of the function, which produced a different,
3480	incorrect amount of darkening.
3481
34822013-10-02  Darrell Bellert  <darrell.bellert@hl.konicaminolta.us>
3483
3484	* src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
3485
34862013-10-02  Dave Arnold  <darnold@adobe.com>
3487
3488	* src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
3489
3490	This line was lost in commit 89ca1fd6 (from 2013-06-25).  The effect
3491	is to use a previous darkening amount when producing an unhinted,
3492	unscaled outline.  This can cause autohint samples in ftgrid and
3493	ftview to be based on darkened CFF outlines instead of unhinted,
3494	undarkened ones.
3495
34962013-09-29  Dave Arnold  <darnold@adobe.com>
3497
3498	Fix Savannah bug #39295.
3499
3500	The bug was caused by switching to the initial hintmap (the one in
3501	effect when `moveto' executes) just before drawing the final element
3502	in the charstring.  This ensured that the path was closed (in both
3503	Character Space and Device Space).  But if the final element was a
3504	curve and if the final hintmap was different enough from the initial
3505	one, then the curve was visibly distorted.
3506
3507	The first part of the fix is to draw the final curve using the final
3508	hintmap as specified by the charstring.  This corrects the
3509	distortion but does not ensure closing in Device Space.  It may
3510	require the rasterizer to automatically generate an extra closing
3511	line.  Depending on the hintmap differences, this line could be from
3512	zero to a couple pixels in length.
3513
3514	The second part of the fix covers the case where the charstring
3515	subpath is closed with an explicit line.  We now modify that line's
3516	end point to avoid the distortion.
3517
3518	Some glyphs in the bug report font (TexGyreHeros-Regular) that show
3519	the change are:
3520
3521	  25ppem    S (98)
3522	  24ppem    eight (52)
3523	  25.5ppem  p (85)
3524
3525	Curves at the *end* of a subpath are no longer distorted.  However,
3526	some of these glyphs have bad hint substitutions in the middle of a
3527	subpath, and these are not affected.
3528
3529	The patch has been tested with a set of 106 fonts that shipped with
3530	Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
3531	Google Fonts.  There are 1.5 million glyphs, of which some 20k are
3532	changed with the fix.  A sampling of a few hundred of these changes
3533	have been examined more closely, and the changes look good (or at
3534	least acceptable).
3535
3536	* src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
3537	to indicate that we synthesize a closepath line.
3538
3539	* src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
3540	(cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
3541	`lineto' operator) and adjust hint zone.
3542	For synthesized closing lines, use end point in first hint zone.
3543	(cf2_glyphpath_lineTo): Take care of synthesized closing lines.  In
3544	particular, shift the detection of zero-length lines from character
3545	space to device space.
3546	(cf2_glyphpath_closeOpenPath): Remove assertion.
3547	Updated.
3548
35492013-09-25  Werner Lemberg  <wl@gnu.org>
3550
3551	* src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
3552
35532013-09-25  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
3554
3555	[bdf, pcf] Refuse non-zero face_index.
3556
3557	Suggested by Akira Tagoh, see
3558
3559	  https://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
3560
3561	* src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
3562	error if the font could be opened but non-zero `face_index' is
3563	given.
3564	* src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
3565
3566	* src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
3567	macro for `face_index' because it is validated later.
3568
35692013-09-23  Werner Lemberg  <wl@gnu.org>
3570
3571	Fix Savannah bug #40090.
3572
3573	* src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
3574	306f8c5d (from 2013-08-25) affecting this function.
3575
35762013-09-22  Werner Lemberg  <wl@gnu.org>
3577
3578	[autofit] Disunify Cyrillic and Greek handling from Latin.
3579
3580	* src/autofit/afscript.h: Add Cyrillic and Greek.
3581
3582	* src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
3583	AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
3584	(AF_BLUE_STRINGSET_LATN): Fix typo.
3585	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
3586
3587	* src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
3588	arrays.
3589	(af_grek_script_class, af_cyrl_script_class): New scripts.
3590	* src/autofit/aflatin.h: Updated.
3591
35922013-09-20  Werner Lemberg  <wl@gnu.org>
3593
3594	* docs/CHANGES: Updated.
3595
35962013-09-20  Behdad Esfahbod  <behdad@behdad.org>
3597
3598	Fix vertical size of emboldened glyphs.
3599
3600	Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
3601
3602	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
3603	also.
3604
36052013-09-11  Alexei Podtelezhnikov  <apodtele@gmail.com>
3606
3607	* include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
3608	algorithm description.
3609
36102013-09-11  Werner Lemberg  <wl@gnu.org>
3611
3612	[autofit] Improve Hebrew rendering.
3613
3614	This change introduces a new blue zone property
3615	`AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
3616	top segments.
3617
3618	* src/autofit/afblue.dat: Fix Hebrew blue strings.
3619	Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
3620
3621	* src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
3622
3623	* src/autofit/afblue.c, src/autofit/afblue.h: Updated.
3624
3625	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
3626	`AF_LATIN_IS_LONG_BLUE'.
3627
3628	* src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
3629
36302013-08-28  Behdad Esfahbod  <behdad@google.com>
3631
3632	[sfnt] Fix frame access while reading WOFF table directory.
3633
3634	* src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
3635	while reading the directory entries for the whole loop.
3636
36372013-08-29  Werner Lemberg  <wl@gnu.org>
3638            Behdad Esfahbod  <behdad@google.com>
3639
3640	Implement support for WOFF containers.
3641
3642	We simply synthesize a SFNT from the WOFF, create a memory stream
3643	for the new data, and load the SFNT as usual.
3644
3645	Does NOT add any API to access WOFF metadata or private blocks.
3646
3647	* include/freetype/internal/tttypes.h (WOFF_HeaderRec,
3648	WOFF_TableRec): New structures.
3649
3650	* include/freetype/tttags.h (TTAG_wOFF): New macro.
3651
3652	* src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
3653	`open_face'.
3654
3655	* src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
3656	`FT_GZIP_H'.
3657	(WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
3658	writing to a stream.
3659	(sfnt_stream_close, compare_offsets, woff_open_font): New functions.
3660	(sfnt_open_font): Handle `TTAG_wOFF'.
3661	(sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
3662
3663	* src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
3664	`sfnt->init_face'.
3665
3666	* src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
3667	argument so that a changed stream survives.
3668	Update callers.
3669
36702013-08-28  Werner Lemberg  <wl@gnu.org>
3671
3672	[gzip] New function `FT_Gzip_Uncompress'.
3673
3674	This is modeled after zlib's `uncompress' function.  We need this
3675	for WOFF support.
3676
3677	* include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
3678	New function.
3679
3680	* src/gzip/rules.mk: Rewrite to better reflect dependencies.
3681
36822013-08-28  Werner Lemberg  <wl@gnu.org>
3683
3684	[autofit] Fix `make multi' compilation.
3685
3686	* src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
3687	`afblue.h' but `aftypes.h'.
3688	* src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
3689
36902013-08-28  Werner Lemberg  <wl@gnu.org>
3691
3692	[autofit] Fix C++ compilation.
3693
3694	* src/autofit/afglobal.c (af_face_globals_get_metrics),
3695	src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
3696	(af_deva_script_class): Use proper casts.
3697
36982013-08-27  Behdad Esfahbod  <behdad@google.com>
3699
3700	* src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
3701
37022013-08-27  Behdad Esfahbod  <behdad@google.com>
3703
3704	FT_Open_Face: Improve external stream handling.
3705
3706	If the font's `clazz->init_face' function wants to swap to new
3707	stream, handling of whether original stream was external could
3708	result to either memory leak or double free.  Mark externality into
3709	face flags before calling `init_face' such that the clazz can handle
3710	external streams properly.
3711
3712	* src/base/ftobjs.c (FT_Open_Face): Move code to set
3713	FT_FACE_FLAG_EXTERNAL_STREAM to...
3714	(open_face): This function.
3715
37162013-08-27  Werner Lemberg  <wl@gnu.org>
3717
3718	Remove `FT_SqrtFixed' function.
3719
3720	It's no longer used.
3721
3722	* include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
3723
37242013-08-27  Werner Lemberg  <wl@gnu.org>
3725
3726	[autofit] While tracing, report script names instead of ID values.
3727
3728	* src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
3729	New array.
3730	* src/autofit/afglobal.h: Updated.
3731
3732	* src/autofit/afcjk.c (af_cjk_metrics_init_widths,
3733	af_cjk_hint_edges): Use `af_script_names'.
3734	* src/autofit/aflatin.c (af_latin_metrics_init_widths,
3735	af_latin_hint_edges): Ditto.
3736
37372013-08-26  Werner Lemberg  <wl@gnu.org>
3738
3739	[autofit] Report used script while hinting a glyph.
3740
3741	* src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
3742	(af_latin_hint_edges): Implement it.
3743
37442013-08-26  Werner Lemberg  <wl@gnu.org>
3745
3746	[autofit] Add support for Hebrew script.
3747
3748	* src/autofit/afblue.dat: Add blue strings for Hebrew.
3749	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
3750
3751	* src/autofit/aflatin.c (af_hebr_uniranges): New array.
3752	(af_hebr_script_class): New script.
3753	* src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
3754
37552013-08-26  Werner Lemberg  <wl@gnu.org>
3756
3757	[autofit] Improve tracing messages.
3758
3759	* src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
3760	ID in tracing message.
3761	(af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
3762	loop.
3763	Improve tracing messages.
3764	(af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
3765	`num_actions' to count hinting actions.
3766	Improve tracing messages.
3767
3768	* src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
3769	script ID in tracing message.
3770	(af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
3771	messages.
3772
37732013-08-26  Werner Lemberg  <wl@gnu.org>
3774
3775	Better tracing of loaded glyphs.
3776
3777	Previously, the loading of a glyph was traced at level 4, if at all.
3778	With this change, all font loading routines emit a tracing message
3779	at level 1, making it easier to select tracing output (for example
3780	using F2_DEBUG="any:1 afhints:7 aflatin:7").
3781
3782	* src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
3783	* src/cff/cffdrivr.c (cff_glyph_load): Ditto.
3784	* src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
3785	messages.
3786	* src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
3787	message.
3788	* src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
3789	* src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
3790	* src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
3791	* src/type1/t1gload.c (T1_Load_Glyph): Ditto.
3792	* src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
3793	* src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
3794
37952013-08-26  Werner Lemberg  <wl@gnu.org>
3796
3797	[autofit] Fix script selection.
3798
3799	* src/autofit/afglobal.c (af_face_globals_get_metrics): Use
3800	`AF_SCRIPT_DFLT', not value 0.
3801	Simplify code.
3802
3803	* src/autofit/afscript.h: Sort by script name.
3804
38052013-08-26  Werner Lemberg  <wl@gnu.org>
3806
3807	[autofit] Make `dummy' hinter work as expected.
3808
3809	* src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
3810	information.
3811	(af_dummy_hints_apply): Scale the glyphs.
3812
38132013-08-25  Werner Lemberg  <wl@gnu.org>
3814
3815	[autofit] Make `cjk' module use blue stringsets.
3816
3817	* src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
3818	(af_cjk_hani_blue_chars): Removed.
3819	(AF_CJK_BLUE_TYPE_*): Removed.
3820	(af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
3821	AF_BLUE_STRING_MAX_LEN.
3822	Change loops to use offsets (in file `afblue.h') into the new arrays
3823	`af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
3824	Instead of three dimensions (as used in the old blue string array)
3825	we now use properties to do the same, saving one loop nesting level.
3826
3827	* src/autofit/afcjk.h: Remove old enumeration values superseded by
3828	the new data in `afblue.h'.
3829	(AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
3830	AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
3831	`af_cjk_metrics_init_blues'.
3832	(AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
3833	(AF_CJK_BLUE_IS_TOP): Renamed to...
3834	(AF_CJK_BLUE_TOP): This.
3835	(AF_CJK_MAX_BLUES): Remove.
3836	(AF_CJKAxisRec): Updated.
3837
38382013-08-25  Werner Lemberg  <wl@gnu.org>
3839
3840	[autofit] Typo.
3841
3842	* src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
3843	cast.
3844
38452013-08-25  Werner Lemberg  <wl@gnu.org>
3846
3847	[autofit] Synchronize `cjk' with `latin' module (and vice versa).
3848
3849	* src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
3850	messages.
3851	(af_cjk_metrics_init_blues): Don't pass blue string array as
3852	argument but use the global array directly.
3853	Use `outline' directly.
3854	Update and add tracing messages.
3855	(af_cjk_metrics_init): Simplify code.
3856	(af_cjk_metrics_scale_dim): Improve tracing message.
3857	(af_cjk_metrics_scale): Synchronize.
3858
3859	* src/autofit/aflatin.c (af_latin_metrics_init_widths,
3860	af_latin_metrics_init_blues): Improve and add tracing messages.
3861
38622013-08-25  Werner Lemberg  <wl@gnu.org>
3863
3864	[autofit] Make `latin' module use blue stringsets.
3865
3866	* src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
3867	(af_latin_blue_chars): Removed.
3868	(af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
3869	with AF_BLUE_STRING_MAX_LEN.
3870	Change loops to use offsets (in file `afblue.h') into the new arrays
3871	`af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
3872	Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
3873
3874	* src/autofit/aflatin.h: Remove old enumeration values superseded by
3875	the new data in `afblue.h'.
3876	(AF_LATIN_IS_TOP_BLUE): Updated definition.
3877	(AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
3878	(AF_LATIN_MAX_BLUES): Remove.
3879	(AF_LatinAxisRec): Updated.
3880
38812013-08-25  Werner Lemberg  <wl@gnu.org>
3882
3883	[autofit] Add blue stringsets.
3884
3885	* src/autofit/aftypes.h: Include `afblue.h'.
3886	(AF_ScriptClassRec): Add `blue_stringset' field.
3887	(AF_DEFINE_SCRIPT_CLASS): Updated.
3888
3889	* src/autofit/autofit.c: Include `afblue.c'.
3890
3891	* src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
3892	(af_dflt_script_class), src/autofit/afindic.c
3893	(af_deva_script_class), src/autofit/aflatin.c
3894	(af_latn_script_class), src/autofit/aflatin2.c
3895	(af_ltn2_script_class): Updated.
3896
3897	* src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
3898
38992013-08-25  Werner Lemberg  <wl@gnu.org>
3900
3901	[autofit] Introduce data file for blue strings.
3902
3903	The idea is to have a central file which gets processed by a Perl
3904	script to create proper `.c' and `.h' files using templates.  There
3905	are two other reasons to do that:
3906
3907	  . The data file should be easily readable.  We use UTF-8 encoding
3908	    which then gets converted to single bytes.
3909
3910	  . Since the number of supported scripts will increase soon, the
3911	    current usage of blue string arrays is a waste of space.  Using
3912	    the Perl script it is possible to imitate jagged arrays,
3913	    defining enumeration constants as offsets into the arrays.
3914
3915	This commit only adds files without changing any functionality.
3916
3917	* src/autofit/afblue.dat: New data file.
3918	* src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
3919
3920	* src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
3921	for...
3922	* src/autofit/afblue.c, src/autofit/afblue.c: New source files.
3923	To avoid a dependency on Perl, we add them too.
3924
39252013-08-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
3926
3927	[base] Enable new algorithm for `BBox_Cubic_Check'.
3928
3929	* src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
3930	the old one.
3931	Improve comments.
3932
39332013-08-18  Werner Lemberg  <wl@gnu.org>
3934
3935	* builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
3936
39372013-08-18  Werner Lemberg  <wl@gnu.org>
3938
3939	Fix Savannah bug #39804.
3940
3941	* builds/unix/configure.raw (LIBPNG): Define and export.
3942	* builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
3943	libpng.
3944
39452013-08-17  Alexei Podtelezhnikov  <apodtele@gmail.com>
3946
3947	[base] Clean up BBox_Conic_Check.
3948
3949	* src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
3950	extremum at the segment ends, which are already within the bbox.
3951	Slightly modify calculations.
3952
39532013-08-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
3954
3955	[base] Finish experimental (disabled) BBox_Cubic_Check implementation.
3956
3957	* src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
3958	accuracy and avoid overflows.
3959
39602013-08-13  Alexei Podtelezhnikov  <apodtele@gmail.com>
3961
3962	[base] Refactor experimental (disabled) BBox_Cubic_Check.
3963
3964	* src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
3965	as the mirror image of the maximum search implemented here...
3966	(update_max): New function.
3967
39682013-08-06  John Tytgat  <John.Tytgat@esko.com>
3969
3970	Fix Savannah bug #39702.
3971
3972	* src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
3973	!= 0'; this stronger test is mandated by the CFF specification.
3974	Fix test for INDEX structures which have one or more empty entries
3975	at the end.
3976
39772013-08-05  Werner Lemberg  <wl@gnu.org>
3978
3979	Fix gcc pragmas, part 2.
3980
3981	* src/truetype/ttinterp.c (TT_MulFix14_long_long,
3982	TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
3983	introduced with gcc version 4.6.
3984
39852013-08-05  Werner Lemberg  <wl@gnu.org>
3986
3987	Fix gcc pragmas.
3988
3989	* src/truetype/ttinterp.c (TT_MulFix14_long_long,
3990	TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
3991	pragmas within a function body.
3992
39932013-08-05  Werner Lemberg  <wl@gnu.org>
3994
3995	Fix Savannah bug #39700.
3996
3997	* builds/unix/ftconfig.h: Synchronize with
3998	`include/freetype/config/ftconfig.h'.
3999
4000	* builds/vms/ftconfig.h: Ditto.
4001	Make the differences to the master `ftconfig.h' file as small as
4002	possible for easier maintenance.
4003
40042013-08-05  Werner Lemberg  <wl@gnu.org>
4005
4006	[autofit] Improve handling of `near' points.
4007
4008	Points which are very near to each other are now marked as such.
4009	The `weak' flag is then computed by using the `in' vector of the
4010	first and the `out' vector of the last point of a group of near
4011	points.
4012
4013	For example, this fixes the rendering of glyph `Oslash' in
4014	`Roboto-Thin.ttf'.
4015
4016	* src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
4017
4018	* src/autofit/afhints.c (af_glyph_hints_reload): Introduce
4019	the heuristic value `near_limit' to decide whether the current point
4020	is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
4021	Store good `in' vector (of last non-near point) in
4022	`last_good_in_{x,y}' and use it as an argument to
4023	`ft_corner_is_flat' if necessary.
4024
40252013-08-02  Werner Lemberg  <wl@gnu.org>
4026
4027	* include/freetype/ftcffdrv.h: Improve documentation.
4028	This is based on blog entries from David Lemon and Dave Arnold (both
4029	from Adobe) with kind permission.  Dave also helped in
4030	proof-reading.
4031
40322013-08-02  Werner Lemberg  <wl@gnu.org>
4033
4034	[autofit] Move declaration of scripts into separate file.
4035
4036	This has the benefit that we don't need to duplicate the data at
4037	different places.
4038
4039	* src/autofit/afscript.h: New file.
4040
4041	* src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
4042	the enumeration values.
4043
4044	* src/autofit/afglobal.c: Include `afscript.h' to get the script
4045	specific header files.
4046	(af_script_classes): Include `afscript.h' to fill this array.
4047
4048	* src/autofit/afpic.c: Include `afscript.h' to get the script
4049	specific header files.
4050	(autofit_module_class_pic_init): Include `afscript.h' for
4051	initialization.
4052	* src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
4053	AF_SCRIPT_CLASSES_REC_COUNT): Removed.  Use `AF_SCRIPT_MAX' instead.
4054
4055	* src/autofit/rules.mk (AUTOF_DRV_H): Updated.
4056
40572013-08-02  Werner Lemberg  <wl@gnu.org>
4058
4059	[autofit] Move declaration of writing systems into separate file.
4060
4061	This has the benefit that we don't need to duplicate the data at
4062	different places.
4063
4064	* src/autofit/afwrtsys.h: New file.
4065
4066	* src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
4067	define the enumeration values.
4068
4069	* src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
4070	system specific header files.
4071	Include `afpic.h'.
4072	(af_writing_system_classes): Include `afwrtsys.h' to fill this
4073	array.
4074
4075	* src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
4076	system specific header files.
4077	(autofit_module_class_pic_init): Include `afwrtsys.h' for
4078	initialization.
4079	* src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
4080	AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed.  Use
4081	`AF_WRITING_SYSTEM_MAX' instead.
4082
40832013-08-02  Werner Lemberg  <wl@gnu.org>
4084
4085	[sfnt] Fix compilation with g++.
4086
4087	* src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
4088	cast.
4089	(Load_SBit_Png): Pacify compiler.
4090
40912013-08-02  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4092            Werner Lemberg  <wl@gnu.org>
4093
4094	[autofit] Fix `make multi'.
4095
4096	* include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
4097	FT_LOCAL_ARRAY_DEF): New macros.
4098
4099	* src/autofit/afglobal.c (af_writing_system_classes,
4100	af_script_classes): Use FT_LOCAL_ARRAY_DEF.
4101	* src/autofit/afglobal.h: Declare `af_writing_system_classes' and
4102	`af_script_classes'.
4103	* src/autofit/afloader.c: Include `afpic.h'.
4104
41052013-08-01  Werner Lemberg  <wl@gnu.org>
4106
4107	Another round of cppcheck nitpicks.
4108
4109	The call was (from the top-level of the FreeType tree):
4110
4111	  cppcheck --force \
4112	           --enable=all \
4113	           -I /usr/include \
4114	           -I /usr/local/include \
4115	           -I /usr/lib/gcc/i586-suse-linux/4.7/include \
4116	           -I include \
4117	           -I include/freetype \
4118	           -I include/freetype/config \
4119	           -I include/freetype/internal \
4120	           -DFT2_BUILD_LIBRARY \
4121	           . &> cppcheck.log
4122
4123	using cppcheck git commit f7e93f99.
4124
4125	Note that cppcheck still can't handle `#include FOO' (with `FOO' a
4126	macro).
4127
4128	*/* Improve variable scopes.
4129	*/* Remove redundant initializations which get overwritten.
4130
4131	* src/gxvalid/*: Comment out redundant code or guard it with
4132	FT_DEBUG_LEVEL_TRACE.
4133
41342013-07-30  Werner Lemberg  <wl@gnu.org>
4135
4136	[autofit] Introduce `writing systems'.
4137
4138	This patch adds a new top level to the auto-hinter's script class
4139	hierarchy.  It defines `writing systems' which can contain multiple
4140	scripts.
4141
4142	For example, the `latin' writing system (in file `aflatin.c') is
4143	able to support scripts like Latin, Cyrillic, Armenian, etc., which
4144	can be handled similarly.
4145
4146	Scripts are now named using four-letter OpenType tags.
4147
4148	* src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
4149	to...
4150	(AF_WritingSystemClassRec): This new structure.  It holds pointers
4151	to functions which can be shared among related scripts.
4152	(AF_WritingSystem): New enumeration.
4153	(AF_Script): Revised values using four-letter tags.
4154	(AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
4155	(AF_DEFINE_SCRIPT_CLASS): Updated.
4156
4157	* src/autofit/afglobal.c (af_writing_system_classes): New global,
4158	constant array.
4159	(af_script_classes): Updated.
4160	(af_face_globals_free): Updated.
4161	Remove assertion.
4162	(af_face_globals_get_metrics): Updated.
4163
4164	* src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
4165	[!AF_CONFIG_OPTION_CJK]: Handle this case.
4166
4167	* src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4168	Updated.
4169
4170	* src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
4171	initialize structures for both writing systems and scripts.
4172	* src/autofit/afpic.h: Updated.
4173	(AF_WRITING_SYSTEM_CLASSES_GET): New macro.
4174
4175	* src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
4176	system.
4177	(af_cjk_uniranges): Renamed to...
4178	(af_hani_uniranges): This.
4179	(af_cjk_script_class): Reduced and renamed to...
4180	(af_hani_script_class): This.
4181	* src/autofit/afcjk.h: Updated.
4182
4183	* src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
4184	system.
4185	(af_dummy_script_class): Reduced and renamed to...
4186	(af_dflt_script_class): This.
4187	* src/autofit/afdummy.h: Updated.
4188
4189	* src/autofit/afindic.c (af_indic_writing_system_class): New writing
4190	system.
4191	(af_indic_uniranges): Renamed to...
4192	(af_deva_uniranges): This.
4193	(af_indic_script_class): Reduced and renamed to...
4194	(af_deva_script_class): This.
4195	* src/autofit/afcjk.h: Updated.
4196
4197	* src/autofit/aflatin.c (af_latin_writing_system_class): New writing
4198	system.
4199	(af_latin_uniranges): Renamed to...
4200	(af_latn_uniranges): This.
4201	(af_latin_script_class): Reduced and renamed to...
4202	(af_latn_script_class): This.
4203	* src/autofit/aflatin.h: Updated.
4204
4205	* src/autofit/aflatin2.c (af_latin2_writing_system_class): New
4206	writing system.
4207	(af_latin2_uniranges): Renamed to...
4208	(af_ltn2_uniranges): This.
4209	Synchronize ranges with `latin'.
4210	(af_latin2_script_class): Reduced and renamed to...
4211	(af_ltn2_script_class): This.
4212	* src/autofit/aflatin2.h: Updated.
4213
42142013-07-30  Werner Lemberg  <wl@gnu.org>
4215
4216	[autofit] Variable renaming.
4217
4218	* src/autofit/aftypes.h (AF_ScriptMetricsRec):
4219	s/clazz/script_class/.
4220	Update all users.
4221
42222013-07-30  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4223
4224	Ignore libpng-config under cross-building configuration,
4225	because it will return the flags for the hosting environment.
4226
4227	* builds/unix/configure.raw: Ignore libpng-config when
4228	`cross_compiling' == yes.
4229
42302013-07-30  Behdad Esfahbod  <behdad@google.com>
4231
4232	Prevent division by zero by a transparent color.
4233
4234	* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
4235	Return 0 immediately, when alpha channel is zero.
4236
42372013-07-25  Behdad Esfahbod  <behdad@google.com>
4238
4239	Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
4240
4241	Also disambiguate Google's color bitmap tables.
4242
4243	* include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
4244	New macros.
4245
4246	* include/freetype/internal/tttypes.h (TT_SbitTableType): Add
4247	TT_SBIT_TABLE_TYPE_CBLC.
4248
4249	* src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
4250
4251	* src/sfnt/ttsbit.c (tt_face_load_sbit,
4252	tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
4253	TT_SBIT_TABLE_TYPE_CBLC.
4254
42552013-07-24  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
4256
4257	[sfnt] Fix for `make multi' target.
4258
4259	* src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
4260
42612013-07-20  Werner Lemberg  <wl@gnu.org>
4262
4263	* docs/INSTALL.GNU: Updated.
4264
42652013-07-20  Behdad Esfahbod  <behdad@google.com>
4266
4267	[sfnt] Fix `sbix' table version handling.
4268
4269	* src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
4270	USHORT version numbers are to be considered as `minor'.
4271
42722013-07-19  Werner Lemberg  <wl@gnu.org>
4273
4274	[autofit] Fix segment classification for blue zones.
4275
4276	The old code (essentially unchanged since the very beginning)
4277	incorrectly handled this configuration
4278
4279	               x -o- x
4280	                /   \
4281	               /     \
4282	              /       \
4283	             o         o
4284
4285	as flat and this
4286
4287	                o               o
4288	               /               /
4289	             x|              x|
4290	              |               |
4291	              o---------------o
4292
4293	as round.  (`o' and `x' are on and off points, respectively).
4294
4295	This is a major change which should improve the rendering results
4296	enormously for many TrueType fonts, especially in the range approx.
4297	20-40ppem, fixing the appearance of many overshoots.
4298
4299	* src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
4300	first and last points of the segment, not the points right before
4301	and after.
4302
43032013-07-19  Behdad Esfahbod  <behdad@google.com>
4304
4305	[sfnt] `sbix' fix-ups.
4306
4307	* src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
4308	are rendered scaled and then the `glyf' outline rendered on top.  We
4309	don't support that yet, so just ignore the `glyf' outline and
4310	advertise it as a bitmap-only font.
4311
4312	* src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
4313	[TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
4314	(tt_face_load_sbix_image): Typo.
4315
43162013-07-18  Behdad Esfahbod  <behdad@google.com>
4317
4318	[sfnt] Add support for Apple's `sbix' color bitmap table.
4319
4320	* include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
4321	fields to FT_Short and FT_UShort, respectively.
4322	(TT_SbitTableType): New enumeration.
4323	(TT_FaceRec): Add `sbit_table_type' field.
4324
4325	* include/freetype/tttags.h (TTAG_sbix): New macro.
4326
4327	* src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
4328	FT_GlyphSlot argument instead FT_Bitmap.
4329	Add flag to control map and metrics handling.
4330	Update all users.
4331
4332	* src/sfnt/ttsbit.c: Include `ttmtx.h'.
4333	(tt_face_load_eblc): Renamed to...
4334	(tt_face_load_sbit): This.
4335	Handle `sbix' bitmaps.
4336	(tt_face_free_eblc): Renamed to...
4337	(tt_face_load_sbit): This.
4338	Updated.
4339	(tt_face_load_strike_metrics): Handle `sbix' bitmaps.
4340	(tt_face_load_sbix_image): New function.
4341	(tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
4342	tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
4343	tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
4344	tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
4345	and handle load flags.
4346	(tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
4347	handle formats 17-19.
4348	Move color to grayscale conversion to...
4349	(tt_face_load_sbit_image): Here.
4350	Handle `sbix' bitmaps.
4351
4352	* src/sfnt/pngshim.h: Updated.
4353	* src/sfnt/ttsbit.h: Updated.
4354	* src/sfnt/sfdriver.c: Updated.
4355
43562013-07-18  Werner Lemberg  <wl@gnu.org>
4357
4358	[sfnt] Ignore invalid magic number in `head' or `bhed'.
4359
4360	Other font engines seem to ignore it also.  Problem reported by
4361	Hin-Tak Leung <htl10@users.sourceforge.net>.
4362
4363	* src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
4364	we have an invalid magic number.
4365
43662013-07-16  Werner Lemberg  <wl@gnu.org>
4367
4368	[smooth] Fix segfault caused by previous commit.
4369
4370	* src/smooth/ftgrays.c (gray_set_cell): Always compute
4371	`ras.invalid'.
4372
43732013-07-16  David Turner  <digit@google.com>
4374
4375	[smooth] Improve performance.
4376
4377	Provide a work-around for an ARM-specific performance bug in GCC.
4378	This speeds up the rasterizer by more than 5%.
4379
4380	Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
4381	also improves performance on other platforms by a tiny bit (<1%).
4382
4383	* src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
4384	Use it where appropriate.
4385
4386	(gray_record_cell, gray_set_cell, gray_move_to,
4387	gray_convert_glyph_inner): Streamline condition handling.
4388
43892013-07-16  David Turner  <digit@google.com>
4390
4391	[truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
4392
4393	This patch provides slightly optimized versions for ARM, x86, and
4394	x86_64 CPUs if built with GCC.
4395
4396	Also remove some dead code.
4397
4398	* src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
4399	TT_DotFix14_long_long): New functions.
4400
44012013-07-16  David Turner  <digit@google.com>
4402
4403	Optimize FT_MulFix for x86_64 GCC builds.
4404
4405	This patch provides an optimized `FT_MulFix' implementation for
4406	x86_64 machines when FreeType is built with GCC, or compatible
4407	compilers like Clang.
4408
4409	Example:
4410	  bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
4411
4412	Before:
4413
4414	  Load                       4.863 us/op
4415	  Load_Advances (Normal)     4.816 us/op
4416	  Load_Advances (Fast)       0.028 us/op
4417	  Render                     2.753 us/op
4418	  Get_Glyph                  0.463 us/op
4419	  Get_CBox                   0.077 us/op
4420	  Get_Char_Index             0.023 us/op
4421	  Iterate CMap              13.898 us/op
4422	  New_Face                  12.368 us/op
4423	  Embolden                   0.028 us/op
4424	  Get_BBox                   0.302 us/op
4425
4426	After:
4427
4428	  Load                       4.617 us/op
4429	  Load_Advances (Normal)     4.645 us/op
4430	  Load_Advances (Fast)       0.027 us/op
4431	  Render                     2.789 us/op
4432	  Get_Glyph                  0.460 us/op
4433	  Get_CBox                   0.077 us/op
4434	  Get_Char_Index             0.024 us/op
4435	  Iterate CMap              13.403 us/op
4436	  New_Face                  12.278 us/op
4437	  Embolden                   0.028 us/op
4438	  Get_BBox                   0.301 us/op
4439
4440	* builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
4441	(FT_MulFix_x86_64): New function.
4442
44432013-07-16  David Turner  <digit@google.com>
4444
4445	Speed up ARMv7 support.
4446
4447	When building for ARMv7 with thumb2 instructions, the optimized
4448	`FT_MulFix_arm' assembly routine was not being used.
4449
4450	The reason for this is in the `ftconfig.h' header, namely:
4451
4452	- The assembly routine uses the `smull' instruction which is not
4453	  available when generating Thumb-1 machine code.  It is available
4454	  in Thumb-2 mode, though.
4455
4456	- The header was written a long time ago before Thumb-2 became
4457	  widely popular (e.g. with Android).  So it simply doesn't use the
4458	  assembly routine if the `__thumb__' built-in macro is defined.
4459
4460	- When compiling in Thumb-2 mode, the compiler will define both
4461	  `__thumb__' and `__thumb2__'.
4462
4463	By checking for `(__thumb2__ || !__thumb__)', we ensure that the
4464	assembly routine is only avoided when generating Thumb-1 code.
4465
4466	Given that this is performance-sensitive function, this improves
4467	`ftbench' as follows on a Galaxy Nexus:
4468
4469	                           Before (us/op)   After (us/op)
4470
4471	  - loading Arial.ttf glyphs at 14 ppem [1]
4472
4473	      Load                   34.285          33.098
4474
4475	  - same operation with the light auto-hinter [2]
4476
4477	      Load                   31.317          29.590
4478
4479	  - same operation without hinting [3]
4480
4481	      Load                    6.143           5.376
4482
4483	  - loading Arial.ttf advances at 14 ppem [4]
4484
4485	      Load_Advances (normal) 34.216          33.016
4486	      Load_Advances (fast)    0.176           0.176
4487
4488	  [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
4489	  [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
4490	  [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
4491	  [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
4492
4493	* builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
4494	(FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
4495
44962013-06-28  Werner Lemberg  <wl@gnu.org>
4497
4498	* docs/CHANGES: Updated.
4499
45002013-06-27  Werner Lemberg  <wl@gnu.org>
4501
4502	* src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
4503
45042013-06-25  Werner Lemberg  <wl@gnu.org>
4505
4506	[cff] Add darkening limit to `darkening-parameters'.
4507
4508	* src/cff/cffdrivr.c (cff_property_set): Add check.
4509
45102013-06-25  Werner Lemberg  <wl@gnu.org>
4511
4512	[cff] Add `darkening-parameters' property.
4513
4514	* include/freetype/ftcffdrv.h: Document it.
4515
4516	* src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
4517	`darkening-parameters' property.
4518
4519	* src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
4520
4521	* src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
4522	argument and use it.
4523	Update all callers.
4524
4525	* src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
4526	`darken_params' values.
4527
4528	* src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
4529
4530	* src/cff/cffobjs.c (cff_driver_init): Set default values for
4531	`darken_params'.
4532
45332013-06-25  Werner Lemberg  <wl@gnu.org>
4534
4535	[docmaker] Code shuffling.
4536
4537	* src/tools/docmaker/tohtml.py (re_url): Move regexp...
4538	* src/tools/docmaker/sources.py: ... to this file.
4539
45402013-06-25  Werner Lemberg  <wl@gnu.org>
4541
4542	[docmaker] Remove unused functions.
4543
4544	* src/tools/docmaker/content.py (DocMarkup.get_start,
4545	DocBlock.get_markup_name): Removed.
4546	* src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
4547	HtmlFormatter.make_html_words): Removed.
4548
45492013-06-25  Werner Lemberg  <wl@gnu.org>
4550
4551	* builds/freetype.mk (dll): Remove target.
4552
4553	Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
4554
45552013-06-25  Werner Lemberg  <wl@gnu.org>
4556
4557	[docmaker] Recognise URLs.
4558
4559	* src/tools/docmaker/tohtml.py (re_url): New regular expression.
4560	(make_html_para): Use it.
4561
45622013-06-19  Werner Lemberg  <wl@gnu.org>
4563
4564	* Version 2.5.0.1 released.
4565	===========================
4566
4567
4568	Tag sources with `VER-2-5-0-1'.
4569
4570	* include/freetype/config/ftoption.h: Undefine
4571	CFF_CONFIG_OPTION_OLD_ENGINE.
4572	* devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
4573
45742013-06-19  Werner Lemberg  <wl@gnu.org>
4575
4576	* builds/unix/install.mk (install): Don't create `cache' directory.
4577
4578	Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
4579
45802013-06-19  Werner Lemberg  <wl@gnu.org>
4581
4582	* Version 2.5.0 released.
4583	=========================
4584
4585
4586	Tag sources with `VER-2-5-0'.
4587
4588	* docs/VERSION.DLL: Update documentation and bump version number to
4589	2.5.0.
4590
4591	* README, Jamfile (RefDoc),
4592	builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
4593	builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
4594	builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
4595	builds/win32/visualc/freetype.dsp,
4596	builds/win32/visualc/freetype.vcproj,
4597	builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
4598	builds/win32/visualce/freetype.vcproj,
4599	builds/win32/visualce/index.html,
4600	builds/wince/vc2005-ce/freetype.vcproj,
4601	builds/wince/vc2005-ce/index.html,
4602	builds/wince/vc2008-ce/freetype.vcproj,
4603	builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
4604
4605	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
4606	(FREETYPE_PATCH): Set to 0.
4607
4608	* builds/unix/configure.raw (version_info): Set to 16:2:10.
4609
4610	* src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
4611	* src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
4612
46132013-06-18  Werner Lemberg  <wl@gnu.org>
4614
4615	Fix Savannah bug #39269.
4616
4617	* src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
4618	case of reallocation failures.
4619
46202013-06-18  Andrew Church  <achurch+savannah@achurch.org>
4621
4622	Fix Savannah bug #39266.
4623
4624	If memory allocations fail at certain points while opening a font,
4625	FreeType can either crash due to a NULL dereference or leak memory.
4626
4627	* include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
4628	FT_LibraryRec): Make `refcount' a signed integer.  If, for example,
4629	FT_Open_Face() fails in a memory allocation before the face's
4630	reference count is set to 1, a subsequent `FT_Done_Library' call
4631	would otherwise loop over `FT_Done_Face' 2^32 times before freeing
4632	the face.
4633
4634	* src/base/ftobjs.c (open_face): Initialize `stream' and friends
4635	earlier.
4636	(FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
4637	(FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
4638
46392013-06-14  Werner Lemberg  <wl@gnu.org>
4640
4641	* src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
4642
46432013-06-06  Dave Arnold  <darnold@adobe.com>
4644	    Werner Lemberg  <wl@gnu.org>
4645
4646	[cff] Add code to Adobe's engine to handle ppem > 2000.
4647
4648	* src/cff/cffgload.c (cff_slot_load): If we get
4649	FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
4650
46512013-06-12  Werner Lemberg  <wl@gnu.org>
4652
4653	Another try on pragmas.
4654
4655	* include/freetype/internal/ftdebug.h: Move pragmas to...
4656	* include/freetype/internal/internal.h: ... this file since it gets
4657	included by all source files.
4658	* include/freetype/internal/ftserv.h: Remove pragma which has no
4659	effect.
4660
46612013-06-12  Werner Lemberg  <wl@gnu.org>
4662
4663	* include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
4664
4665	This partially undoes commit 3f6e0e0c.
4666
46672013-06-12  Werner Lemberg  <wl@gnu.org>
4668
4669	More compiler warning fixes.
4670
4671	*/*: Use cast to `FT_Bool' (or `Bool') where appropriate.
4672
46732013-06-10  Werner Lemberg  <wl@gnu.org>
4674
4675	[truetype] Improve handling of broken sbit advance widths.
4676
4677	* src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
4678	`linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
4679
4680	Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
4681
46822013-06-10  Werner Lemberg  <wl@gnu.org>
4683
4684	[sfnt] Improve embedded bitmap tracing.
4685
4686	* src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
4687	bitmap strike match to...
4688	(FT_Match_Size): This function.
4689
4690	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
4691	tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
4692	tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
4693	tt_sbit_decoder_load_image): Decorate with tracing messages.
4694
46952013-06-10  Werner Lemberg  <wl@gnu.org>
4696
4697	Fix Savannah bug #39160.
4698
4699	* src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
4700	for the degenerate case.
4701
47022013-06-09  David Turner  <digit@google.com>
4703
4704	* src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
4705
4706	This code, present since eight(!) years in the unused `CACHE'
4707	branch, has been forgotten to apply to the master branch.  It's
4708	really amazing that noone has ever complained since
4709	`FTC_Manager_Reset' is pretty useless without flushing the cache.
4710
47112013-06-07  Werner Lemberg  <wl@gnu.org>
4712
4713	Add and improve pragmas for MSVC compiler.
4714
4715	* include/freetype/internal/ftdebug.h: Remove pragmas.
4716	* include/freetype/internal/ftserv.h: Use push and pop for pragmas.
4717	* include/freetype/internal/ftvalid.h: Handle warning C4324.
4718	* src/base/ftobjs.c: Use push and pop for pragmas.
4719	* src/gzip/ftgzip.c: Handle warning C4244.
4720
47212013-06-07  Werner Lemberg  <wl@gnu.org>
4722
4723	[cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
4724
4725	* src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
4726
47272013-06-06  Dave Arnold  <darnold@adobe.com>
4728
4729	[cff] Add early exit feature for width-only calls.
4730
4731	This is for `FT_Get_Advance'.
4732
4733	There are 7 places where the spec says the width can be defined:
4734
4735	  hstem/hstemhm
4736	  vstem/vstemhm
4737	  cntrmask/hintmask
4738	  hmoveto
4739	  vmoveto
4740	  rmoveto
4741	  endchar
4742
4743	* src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
4744	if possible.
4745
4746	(cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
4747	<cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
4748	<cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
4749
47502013-06-06  Werner Lemberg  <wl@gnu.org>
4751
4752	Next round of compiler fixes.
4753
4754	* builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
4755	Add proper cast.
4756
4757	* include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
4758	cast.
4759	* include/freetype/internal/ftstream.h: Decorate stream and frame
4760	macros with `FT_Long' and `FT_ULong' as appropriate.
4761
4762	* src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
4763	raccess_guess_darwin_newvfs): Use cast.
4764
4765	* src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
4766
4767	* src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
4768	* src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
4769
4770	* src/cff/cf2arrst.c (cf2_arrstack_setNumElements): Use cast.
4771	* src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
4772	* src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
4773
4774	* src/cid/cidparse.c (cid_parser_new): Use cast.
4775
4776	* src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
4777
4778	* src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
4779
4780	* src/raster/ftraster.c (ft_black_reset): Use cast.
4781
4782	* src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
4783	(ALL_POINTS): Fix cast.
4784
4785	* src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
4786	* src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
4787
47882013-06-05  Dave Arnold  <darnold@adobe.com>
4789
4790	Fix more MSVC Win32 compiler warnings.
4791
4792	* src/base/ftobjs.c: Fix typo in MS pragma.
4793
4794	* src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
4795	`lineno' is only used in debug mode.
4796
4797	* src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
4798	debug mode.
4799
48002013-06-05  Werner Lemberg  <wl@gnu.org>
4801
4802	Fix compiler warnings.
4803
4804	* include/freetype/internal/ftmemory.h: Decorate memory allocation
4805	macros with `FT_Long' where appropriate.
4806	Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
4807
4808	* src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
4809	cast.
4810
4811	* src/base/ftobjs.c: Add warning disabling pragma for MSVC while
4812	including `md5.c'.
4813
4814	* src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
4815	cast.
4816
4817	* src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
4818	(tt_sbit_decoder_load_bitmap): Beautification.
4819
4820	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
4821	variables (earlier).
4822
4823	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
4824
4825	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
4826	where appropriate.
4827
4828	* src/type1/t1load.c (T1_Get_MM_Var): Ditto.
4829
48302013-06-04  Werner Lemberg  <wl@gnu.org>
4831
4832	* src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
4833
4834	Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
4835
48362013-06-04  Werner Lemberg  <wl@gnu.org>
4837
4838	Apply fixes for cppcheck nitpicks.
4839
4840	  https://cppcheck.sourceforge.net/
4841
4842	The call was (from the top-level of the FreeType tree):
4843
4844	  cppcheck --force \
4845	           --enable=all \
4846	           -I include \
4847	           -I include/freetype/ \
4848	           -I include/freetype/config/ \
4849	           -I include/freetype/internal/ \
4850	           . &> cppcheck.log
4851
4852	Note that the current version heavily chokes on FreeType, delivering
4853	many wrong results.  I will report those issues to the cppcheck team
4854	so that a newer version gives improved results hopefully.
4855
4856	*/* Improve variable scopes.
4857	*/* Remove redundant initializations which get overwritten.
4858
4859	* src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
4860	Remove unused variable.
4861
4862	* src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
4863
4864	* src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
4865	Remove functionless code.
4866
4867	* src/tools/ftrandom.c (main): Fix memory leak.
4868
48692013-06-03  Werner Lemberg  <wl@gnu.org>
4870
4871	Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
4872
4873	This controls whether the old FreeType CFF engine gets compiled into
4874	FreeType.  It is now disabled by default.
4875
4876	* devel/ftoption.h, include/freetype/config/ftoption.h
4877	(CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
4878
4879	* src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
4880	(CFF_Operator, cff_argument_counts, cff_builder_add_point,
4881	cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
4882	src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
4883	CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
4884
4885	* docs/CHANGES: Updated.
4886
48872013-06-02  Werner Lemberg  <wl@gnu.org>
4888
4889	Fix PNG library handling.
4890
4891	* builds/unix/configure.raw: Don't use LIBPNG_LIBS but
4892	LIBPNG_LDFLAGS.
4893
48942013-05-23  Behdad Esfahbod  <behdad@google.com>
4895
4896	Add support for color embedded bitmaps (eg. color emoji).
4897
4898	A new load flag, FT_LOAD_COLOR, makes FreeType load color
4899	embedded-bitmaps, following this draft specification
4900
4901	  https://color-emoji.googlecode.com/git/specification/v1.html
4902
4903	which defines two new SFNT tables, `CBDT' and `CBLC' (named and
4904	modeled after `EBDT' and `EBLC', respectively).  The color bitmaps
4905	are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
4906	pre-multiplied sRGB images.  If PNG support is available, PNG color
4907	images as defined in the same proposed specification are supported
4908	also.
4909
4910	Note that color bitmaps are converted to grayscale if client didn't
4911	ask for color.
4912
4913	* builds/unix/configure.raw: Search for libpng.
4914	Add `--without-png' option.
4915
4916	* devel/ftoption.h, include/freetype/config/ftoption.h
4917	(FT_CONFIG_OPTION_USE_PNG): New macro.
4918
4919	* include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
4920
4921	* include/freetype/ftimage.h (FT_Pixel_Mode): Add
4922	`FT_PIXEL_MODE_BGRA'.
4923
4924	* include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
4925
4926	* src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
4927	(ft_gray_for_premultiplied_srgb_bgra): New function.
4928	(FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
4929
4930	* src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
4931
4932	* src/sfnt/sfnt.c: Include `pngshim.c'.
4933
4934	* src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
4935	(tt_face_load_eblc): Load `CBLC'.
4936	(tt_sbit_decoder_init): Load `CBDT'.
4937	(tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
4938	color and grayscale bitmaps.
4939	Set `num_grays'.  This is used by `ftview' to choose the blending
4940	algorithm.
4941	(tt_sbit_decoder_load_byte_aligned,
4942	tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
4943	tt_sbit_decoder_load_image): Pass load flag.
4944	s/write/pwrite/.
4945	Don't call `tt_sbit_decoder_alloc_bitmap'.
4946	Updated.
4947	(tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
4948	(tt_sbit_decoder_load_bitmap): Pass load flag.
4949	Handle new glyph formats 17, 18, and 19.
4950	Call `tt_sbit_decoder_alloc_bitmap'.
4951	Flatten color bitmaps if necessary.
4952	(tt_face_load_sbit_image): Updated.
4953
4954	* src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
4955
4956	* docs/CHANGES: Updated.
4957
49582013-05-24  Guenter  <info@gknw.net>
4959
4960	Apply Savannah patch #8055.
4961
4962	Make `apinames' create an import file for NetWare.
4963
4964	* src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
4965	(OutputFormat): Add `OUTPUT_NETWARE_IMP'.
4966	(names_dump): Handle it.
4967	(usage): Updated.
4968	(main): Handle new command line flag `-wN'.
4969
49702013-05-23  Behdad Esfahbod  <behdad@behdad.org>
4971
4972	Compilation fix.
4973
4974	* src/truetype/ttinterp.c (TT_RunIns)
4975	[!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
4976
49772013-05-22  Infinality  <infinality@infinality.net>
4978
4979	[truetype] Formatting and an additional subpixel tweak.
4980
4981	* src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
4982	* src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
4983	Revert previous modification for Verdana clones.
4984
49852013-05-22  Infinality  <infinality@infinality.net>
4986
4987	[truetype] Adjust subpixel zp2 moves and tweak rules.
4988
4989	These modifications fix thin diagonal stems in some legacy fonts.
4990
4991	* src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
4992	(Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
4993	(Ins_SHP): Disable x moves here for subpixel rendering.
4994	(Ins_SHPIX): Only disable x moves in compatibility mode.
4995	Split out zp2 move reversals and reorder conditional respectively.
4996
4997	* src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
4998	Only adjust Verdana clones for 17 ppem.
4999	(SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
5000	(ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
5001
50022013-05-20  Infinality  <infinality@infinality.net>
5003
5004	[truetype] Simplify and improve subpixel function detection.
5005
5006	Some small enhancements have allowed the removal of many macros and
5007	the simplification of existing rules in `ttsubpix.c'.
5008
5009	* src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
5010	SPH_TWEAK_ALLOW_X_MOVE_ZP2,
5011	SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
5012	SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
5013	(SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
5014
5015	* src/truetype/ttsubpix.c: Updated affected rules.
5016
5017	* src/truetype/ttinterp.c (Direct_Move_X): Updated.
5018	(INS_FDEF): Add additional function detection.
5019	(INS_ENDF): Set runtime flag.
5020	(Ins_CALL): Skip the call under certain conditions.
5021	Remove bad code.
5022	(Ins_LOOPCALL): Skip the call under certain conditions.
5023	Remove bad code.
5024	(Move_Zp2_Point): Updated.
5025	(Ins_SHPIX): Updated.
5026	Skip the move under some situations.
5027	(Ins_MIAP): Improve conditions.
5028	(Ins_MIRP): Updated.
5029	(Ins_DELTAP): Skip move under certain conditions.
5030	Simplify conditions.
5031	(TT_RunIns): Updated.
5032	Add code to handle new function detection.
5033	Trace messages.
5034
50352013-05-17  Werner Lemberg  <wl@gnu.org>
5036
5037	Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
5038
5039	* builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
5040	builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
5041
50422013-05-15  Werner Lemberg  <wl@gnu.org>
5043
5044	[truetype] Add `interpreter-version' property.
5045
5046	This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
5047	at runtime.
5048
5049	* include/freetype/ftttdrv.h: New file.
5050
5051	* include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
5052	macro.
5053
5054	* src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
5055	(tt_property_set, tt_property_get): Fill templates.
5056
5057	* src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
5058	member.
5059	Remove unused `extension_component' member.
5060
5061	* src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
5062	(tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
5063	compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
5064
5065	* src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
5066	(SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
5067	Update all affected functions to use it.
5068	Use TT_INTERPRETER_VERSION_XXX where appropriate.
5069
5070	* src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
5071	(tt_driver_init): Initialize `interpreter_version'.
5072
5073	* src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
5074	Use TT_INTERPRETER_VERSION_XXX where appropriate.
5075
50762013-05-13  Werner Lemberg  <wl@gnu.org>
5077
5078	[truetype] Avoid empty source file.
5079
5080	* src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
5081	Provide dummy typedef.
5082
50832013-05-13  Werner Lemberg  <wl@gnu.org>
5084
5085	* src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
5086
5087	Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
5088
50892013-05-13  Brian Nixon  <bnixon@yahoo.com>
5090
5091	Fix Savannah bug #38970.
5092
5093	* src/base/ftdebug.c, builds/win32/ftdebug.c,
5094	builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
5095	(ft_debug_init): Don't read past the environment variable FT2_DEBUG.
5096
50972013-05-12  Werner Lemberg  <wl@gnu.org>
5098
5099	[truetype] Add framework for TrueType properties.
5100
5101	* src/truetype/ttdriver.c: Include FT_SERVICE_PROPERTIES_H.
5102	(tt_property_set, tt_property_get): New functions, still empty.
5103	Define `tt_service_properties' service.
5104	Update `tt_services'.
5105
5106	* src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
5107	(TT_SERVICE_PROPERTIES_GET): New macro.
5108	(TTModulePIC): Add `tt_service_properties'.
5109
51102013-05-12  Werner Lemberg  <wl@gnu.org>
5111
5112	Fix Savannah bug #38967.
5113
5114	* src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
5115
51162013-05-12  Werner Lemberg  <wl@gnu.org>
5117
5118	Introduce unsigned 64bit type (if available).
5119
5120	* include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
5121	[FT_LONG64]: Provide FT_UInt64.
5122
5123	* builds/unix/ftconfig.in: Synchronized.
5124
51252013-05-12  Werner Lemberg  <wl@gnu.org>
5126
5127	Fix Savannah bug #38968.
5128
5129	* include/freetype/ftmodapi.h: Add `FT_EXPORT' to
5130	FT_Property_{Set,Get}.
5131	* src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
5132	FT_Property_{Set,Get}.
5133
51342013-05-10  Werner Lemberg  <wl@gnu.org>
5135
5136	[sfnt] Clean up bitmap code.
5137
5138	* src/sfnt/ttsbit.c: Deleted.
5139	* src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
5140	* rules.mk (SFNT_DRV_H): Updated.
5141
51422013-05-10  Werner Lemberg  <wl@gnu.org>
5143
5144	*/* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
5145
5146----------------------------------------------------------------------------
5147
5148Copyright (C) 2013-2021 by
5149David Turner, Robert Wilhelm, and Werner Lemberg.
5150
5151This file is part of the FreeType project, and may only be used, modified,
5152and distributed under the terms of the FreeType project license,
5153LICENSE.TXT.  By continuing to use, modify, or distribute this file you
5154indicate that you have read the license and understand and accept it
5155fully.
5156
5157
5158Local Variables:
5159version-control: never
5160coding: utf-8
5161End:
5162