12018-05-01  Werner Lemberg  <wl@gnu.org>
2
3	* Version 2.9.1 released.
4	=========================
5
6
7	Tag sources with `VER-2-9-1'.
8
9	* docs/VERSION.TXT: Add entry for version 2.9.1.
10	* docs/CHANGES: Updated.
11
12	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
13	src/base/ftver.rc, 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.9/2.9.1/, s/29/291/.
28
29	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
30
31	* builds/unix/configure.raw (version_info): Set to 22:1:16.
32	* CMakeLists.txt (VERSION_PATCH): Set to 1.
33
34	* include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER.
35
362018-04-26  Werner Lemberg  <wl@gnu.org>
37
38	Another fix for handling invalid format 2 cmaps.
39
40	Sigh.
41
42	Reported as
43
44	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=8003
45
46	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
47	an endless loop.
48
492018-04-24  Ben Wagner  <bungeman@google.com>
50
51	[base] Avoid undefined behaviour in lcd filtering code (#53727).
52
53	* src/base/ftlcdfil.c (ft_lcd_filter_fir, _ft_lcd_filter_legacy):
54	Ensure `height > 0'.
55
562018-04-22  Werner Lemberg  <wl@gnu.org>
57
58	* src/base/ftoutln.c (FT_Outline_Decompose): Improve error tracing.
59
602018-04-22  Alexei Podtelezhnikov  <apodtele@gmail.com>
61
62	[base] Fix bitmap emboldening.
63
64	Bug introduced after release 2.8.
65
66	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): We use
67	`FT_QALLOC_MULT', which doesn't zero out the buffer.  Adjust the
68	bitmap copying code to take care of this fact.
69
702018-04-22  Werner Lemberg  <wl@gnu.org>
71
72	Another fix for handling invalid format 2 cmaps.
73
74	The previous commit was incomplete.
75
76	Reported as
77
78	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7928
79
80	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition to avoid
81	an endless loop.
82
832018-04-19  Werner Lemberg  <wl@gnu.org
84
85	[autofit] Add support for Georgian Mtavruli characters.
86
87	This will be part of the forthcoming Unicode 11.0.
88
89	* src/autofit/afblue.dat: Add blue zone data for Mtavruli.
90	* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
91
92	* src/autofit/afscript.h: Add Mtavruli standard character.
93
942018-04-18  Werner Lemberg  <wl@gnu.org>
95
96	Fix handling of invalid format 2 cmaps.
97
98	The problem was introduced after the last release.
99
100	Reported as
101
102	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7828
103
104	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Avoid endless loop.
105
1062018-04-17  Werner Lemberg  <wl@gnu.org>
107
108	[truetype] Integer overflow issues.
109
110	Reported as
111
112	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7739
113
114	* src/truetype/ttinterp.c (Ins_CEILING): Use FT_PIX_CEIL_LONG.
115
1162018-04-16  Werner Lemberg  <wl@gnu.org>
117
118	[truetype] Integer overflow issues.
119
120	Reported as
121
122	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7718
123
124	* src/truetype/ttinterp.c (Ins_MIRP): Use ADD_LONG.
125
1262018-04-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
127
128	[build] Use `info' function of make 3.81.
129
130	* configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU,
131	docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements.
132
133	* builds/detect.mk (std_setup): Replace `echo' with `info'.
134	(dos_setup): Removed.
135	* builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk,
136	builds/windows/detect.mk, builds/os2/detect.mk: Updated.
137	* builds/newline: No longer needed.
138
1392018-04-15  Werner Lemberg  <wl@gnu.org>
140
141	[truetype]: Limit `SLOOP' bytecode argument to 16 bits.
142
143	This fixes
144
145	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7707
146
147	* src/truetype/ttinterp.c (Ins_SLOOP): Do it.
148
1492018-04-14  Werner Lemberg  <wl@gnu.org>
150
151	[truetype] Integer overflow issues.
152
153	Reported as
154
155	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7652
156
157	* src/truetype/ttinterp.c (Ins_MDAP): Use SUB_LONG.
158
1592018-04-14  Werner Lemberg  <wl@gnu.org>
160
161	[autofit] Update to Unicode 11.0.0.
162
163	But no support new scripts (volunteers welcomed).
164
165	* src/autofit/afranges.c (af_arab_nonbase_uniranges,
166	af_beng_nonbase_uniranges, af_cakm_nonbase_uniranges,
167	af_deva_nonbase_uniranges, af_geor_uniranges,
168	af_gujr_nonbase_uniranges, af_mlym_nonbase_uniranges,
169	af_nkoo_nonbase_uniranges, af_telu_nonbase_uniranges,
170	af_hani_uniranges): Add new data.
171
1722018-04-10  Nikolaus Waxweiler  <madigens@gmail.com>
173
174	* CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive
175	modernization measures.
176
177	This brings up the minimum required CMake version to 2.8.12.
178
179	The installation paths follow the GNU defaults now, e.g. installing on a
180	64 bit host will place binaries into the lib64/ folder on e.g. Fedora.
181
182	Symbols are hidden by default (e.g. `-fvisibility=hidden' on GCC).
183
184	CMake will no longer look for a C++ compiler.
185
186	Library and .so version now match the Autotools build.
187
188	Comments in the build file and informational messages now use platform
189	agnostic example commands.
190
191	ftoption.h and ftconfig.h are written directly without a redundant `-new'
192	copy.
193
194	External dependencies are expressed as option()s and will turn up as such
195	in cmake-gui.
196
197	Internal: Properties such as dependencies and include directories are now
198	privately set on the freetype library instead of globally.
199
200	The CPack definitions have been cleaned up, the `make dist' has been
201	removed. Source packages generated with CPack don't contain Autotools
202	files and aren't used by the maintainers anyway.
203
204	On Windows, src/base/ftver.rc is compiled to decorate the library with
205	version and copyright information.
206
207	A pkg-config file is now generated and installed.
208
2092018-04-09  Werner Lemberg  <wl@gnu.org>
210
211	[truetype] Integer overflow issues.
212
213	Reported as
214
215	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7453
216
217	* src/truetype/ttinterp.c (Round_Super, Round_Super_45): Use
218	ADD_LONG and SUB_LONG.
219
2202018-04-06  Alexei Podtelezhnikov  <apodtele@gmail.com>
221
222	[windows, wince] Clean up legacy project files.
223
224	* builds/wince/vc2005-ce/freetype.vcproj,
225	builds/wince/vc2008-ce/freetype.vcproj,
226	builds/windows/vc2005/freetype.vcproj,
227	builds/windows/vc2008/freetype.vcproj,
228	builds/windows/visualce/freetype.vcproj,
229	builds/windows/visualce/freetype.dsp,
230	builds/windows/visualc/freetype.vcproj,
231	builds/windows/visualc/freetype.dsp: Remove per-file compile flags.
232
2332018-04-04  Werner Lemberg  <wl@gnu.org>
234
235	[cff, type1] Sanitize `BlueFuzz' and `BlueShift'.
236
237	Reported as
238
239	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7371
240
241	* src/cff/cffload.c (cff_load_private_dict): Sanitize
242	`priv->blue_shift' and `priv->blue_fuzz' to avoid overflows later
243	on.
244
245	* src/type1/t1load.c (T1_Open_Face): Ditto.
246
2472018-04-04  Ben Wagner  <bungeman@google.com>
248
249	* src/truetype/ttobjs.c (trick_names): Add 3 tricky fonts (#53554),
250	`DFHei-Md-HK-BF', `DFKaiShu-Md-HK-BF' and `DFMing-Bd-HK-BF'.
251	(tt_check_trickyness_sfnt_ids): Add checksums for 3 tricky fonts
252	in above.
253
2542018-04-01  Werner Lemberg  <wl@gnu.org>
255
256	* builds/toplevel.mk (work): Use $(SEP).
257
258	This fixes the `make refdoc' using Cygwin: $(CAT) is `type' on this
259	platform, and this program only understands backslashes in paths.
260
261	Reported by Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>.
262
2632018-03-30  Werner Lemberg  <wl@gnu.org>
264
265	[truetype] Fix memory leak (only if tracing is on).
266
267	* src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix
268	it.
269
2702018-03-23  Ben Wagner  <bungeman@google.com>
271
272	[sfnt] Correctly handle missing bitmaps in sbix format (#53404).
273
274	* src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value.
275
2762018-03-23  Ben Wagner  <bungeman@google.com>
277
278	[truetype] Fix advance of empty glyphs in bitmap fonts (#53393).
279
280	* src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics
281	for empty bitmaps.
282
2832018-03-22  Werner Lemberg  <wl@gnu.org>
284
285	Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415).
286
287	builds/amiga/makefile, builds/amiga/makefile.os4,
288	builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
289	builds/mac/FreeType.m68k_far.make.txt,
290	builds/mac/FreeType.ppc_carbon.make.txt,
291	builds/mac/FreeType.ppc_classic.make.txt,
292	builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
293	builds/wince/vc2008-ce/freetype.vcproj,
294	builds/windows/vc2005/freetype.vcproj,
295	builds/windows/vc2008/freetype.vcproj,
296	builds/windows/vc2010/freetype.vcxproj,
297	builds/windows/vc2010/freetype.vcxproj.filters,
298	builds/windows/visualc/freetype.dsp,
299	builds/windows/visualc/freetype.vcproj,
300	builds/windows/visualce/freetype.dsp,
301	builds/windows/visualce/freetype.vcproj, vms_make.com: Do it.
302
3032018-03-13  Werner Lemberg  <wl@gnu.org>
304
305	* src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric
306	overflow.
307
3082018-03-13  Werner Lemberg  <wl@gnu.org>
309
310	Fix cmap format 2 handling (#53320).
311
312	The patch introduced for #52646 was not correct.
313
314	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition.
315
3162018-03-10  Nikolaus Waxweiler  <madigens@gmail.com>
317
318	* CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05.
319
3202018-03-09  Chun-wei Fan  <fanc999@yahoo.com.tw>
321
322	* CMakeLists.txt [win32]: Allow MSVC DLL builds (#53287).
323
324	Do not limit DLL builds to MinGW, since we already have
325	`__declspec(dllexport)' directives in `ftconfig.h'.
326	Also suppress more warnings for POSIX functions.
327
3282018-03-08  Hugh McMaster  <hugh.mcmaster@outlook.com>
329
330	Make installation of `freetype-config' optional (#53093).
331
332	* builds/unix/configure.raw: Add option `--enable-freetype-config'
333	and set `INSTALL_FT2_CONFIG'.
334	* builds/unix/unix-def.in (INSTALL_FT2_CONFIG): Define.
335	* builds/unix/install.mk (install): Handle it.
336
3372018-03-05  Werner Lemberg  <wl@gnu.org>
338
339	Make `ftlcdfil.c' part of the `base' module.
340
341	`ftobjs.c' needs `ft_lcd_padding'.
342
343	Problem reported by duhuanpeng <548708880@qq.com>.
344
345	* modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'.
346
347	* src/base/ftbase.c: Include `ftlcdfil.c'.
348	* src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'.
349	* src/base/Jamfile (_sources): Adjusted.
350
351	* docs/INSTALL.ANY: Updated.
352
3532018-03-05  Werner Lemberg  <wl@gnu.org>
354
355	Make `ftfntfmt.c' part of the `base' module.
356
357	`ftobjs.c' needs `FT_Get_Font_Format'.
358
359	Problem reported by duhuanpeng <548708880@qq.com>.
360
361	* modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'.
362
363	* src/base/ftbase.c: Include `ftfntfmt.c'.
364	* src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'.
365	* src/base/Jamfile (_sources): Adjusted.
366
367	* docs/INSTALL.ANY: Updated.
368
3692018-03-01  Werner Lemberg  <wl@gnu.org>
370
371	* src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments.
372
3732018-02-23  Werner Lemberg  <wl@gnu.org>
374
375	* builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer.
376
377	Problem reported by Alan Coopersmith <alan.coopersmith@oracle.com>.
378
3792018-02-17  Werner Lemberg  <wl@gnu.org>
380
381	[sfnt] Prefer `CBDT'/`CBLC' over `glyf' table (#53154).
382
3832018-02-06  Werner Lemberg  <wl@gnu.org>
384
385	[truetype] Integer overflow issues.
386
387	Reported as
388
389	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6027
390
391	* src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIAP, Ins_MIRP): Use
392	SUB_LONG; avoid FT_ABS.
393
3942018-02-04  Alexei Podtelezhnikov  <apodtele@gmail.com>
395
396	[unix] Use -fvisibility=hidden.
397
398	It is now widely recommended that ELF shared libraries hide symbols
399	except those with explicit __attribute__((visibility("default"))).
400	This is supported by all major compilers and should rather be an
401	option in libtool.
402
403	* builds/unix/configure.raw: Add -fvisibility=hidden to CFLAGS.
404	* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
405	include/freetype/config/ftconfig.h (FT_EXPORT): Use visibility
406	attribute.
407
4082018-01-27  Werner Lemberg  <wl@gnu.org>
409
410	[truetype] Better protection against invalid VF data.
411
412	Reported as
413
414	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739
415
416	Bug introduced in commit 08cd62deedefe217f2ea50e392923ce8b5bc7ac7.
417
418	* src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize
419	`normalizedcoords'.
420
4212018-01-27  Werner Lemberg  <wl@gnu.org>
422
423	* src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference.
424
425	Reported as
426
427	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736
428
4292018-01-27  Werner Lemberg  <wl@gnu.org>
430
431	* src/truetype/ttgxvar.c (tt_set_mm_blend): Minor.
432
4332018-01-27  Werner Lemberg  <wl@gnu.org>
434
435	[truetype] Better trace VF instances.
436
437	* src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number
438	of coordinates.
439	(TT_Get_MM_Var): Trace instance indices names.
440	(TT_Set_Var_Design): Updated.
441
4422018-01-27  Werner Lemberg  <wl@gnu.org>
443
444	[truetype] Beautify tracing of VF axis records.
445
446	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a
447	table-like manner.
448
4492018-01-26  Ben Wagner  <bungeman@google.com>
450
451	[truetype] Fix multiple calls of `FT_Get_MM_Var' (#52955).
452
453	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Set
454	`face->blend->num_axis' in case we have to initialize the
455	`face->blend'.
456
4572018-01-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
458
459	[apinames] Anonymous version map for GNU linker.
460
461	* src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3.
462	(OutputFormat): Add `OUTPUT_GNU_VERMAP'.
463	(names_dump): Handle it.
464	(usage): Updated.
465	(main): Handle new command line flag `-wL'.
466
4672018-01-21  Alexei Podtelezhnikov  <apodtele@gmail.com>
468
469	[unix] Call libtool to clean up.
470
471	* builds/unix/install.mk (clean_project_unix, distclean_project_unix):
472	Use libtool.
473	* builds/freetype.mk: Minor.
474
4752018-01-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
476
477	* src/base/ftver.rc: Fix mingw-w64 compilation.
478
4792018-01-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
480
481	[build] Enable VERSIONINFO resource for Cygwin/MinGW.
482
483	* builds/unix/configure.raw: Check for resource compiler.
484	* builds/unix/unix-cc.in: Conditionally set up resource compiler.
485	* builds/freetype.mk: Add conditional rule for `ftver.rc'.
486	* src/base/ftver.rc: Copyright notice and year update.
487
4882018-01-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
489
490	[build] Move VERSIONINFO resource.
491
492	* builds/windows/vc2010/freetype.vcxproj: Updated.
493	* builds/windows/ftver.rc: Move file from here...
494	* src/base/ftver.rc: ... to here.
495
4962018-01-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
497
498	[build] Expand dllexport/dllimport to Cygwin/MinGW.
499
500	* include/freetype/config/ftconfig.h: Respect DLL_EXPORT,
501	s/_MSC_VER/_WIN32/.
502	* builds/unix/ftconfig.in: Replicate here.
503	* builds/vms/ftconfig.h: Replicate here.
504
5052018-01-12  Alexei Podtelezhnikov  <apodtele@gmail.com>
506
507	[build] Improve and document MSVC build.
508
509	* include/freetype/config/ftconfig.h: Guard dllexport/dllimport
510	attributes with _DLL and FT2_DLLIMPORT.
511	* builds/windows/vc2010/index.html: Update documentation.
512
5132018-01-10  Steve Robinson  <ssrobins@gmail.com>
514
515	* CMakeLists.txt [win32]: Suppress warnings for POSIX functions.
516
5172018-01-10  Ewald Hew  <ewaldhew@gmail.com>
518
519	[psaux] Correctly handle Flex features (#52846).
520
521	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO,
522	cf2_cmdHMOVETO>: Do not move if doing Flex.
523
5242018-01-09  Alexei Podtelezhnikov  <apodtele@gmail.com>
525
526	* builds/windows/vc2010/freetype.sln: Synchronize with the project.
527
5282018-01-08  Werner Lemberg  <wl@gnu.org>
529
530	* Version 2.9 released.
531	=======================
532
533
534	Tag sources with `VER-2-9'.
535
536	* docs/VERSION.TXT: Add entry for version 2.9.
537
538	* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
539	builds/windows/vc2005/index.html,
540	builds/windows/vc2008/freetype.vcproj,
541	builds/windows/vc2008/index.html,
542	builds/windows/vc2010/freetype.vcxproj,
543	builds/windows/vc2010/index.html,
544	builds/windows/visualc/freetype.dsp,
545	builds/windows/visualc/freetype.vcproj,
546	builds/windows/visualc/index.html,
547	builds/windows/visualce/freetype.dsp,
548	builds/windows/visualce/freetype.vcproj,
549	builds/windows/visualce/index.html,
550	builds/windows/ftver.rc,
551	builds/wince/vc2005-ce/freetype.vcproj,
552	builds/wince/vc2005-ce/index.html,
553	builds/wince/vc2008-ce/freetype.vcproj,
554	builds/wince/vc2008-ce/index.html: s/2.8.1/2.9/, s/281/29/.
555
556	* include/freetype/freetype.h (FREETYPE_MINOR): Set to 9.
557	(FREETYPE_PATCH): Set to 0.
558
559	* builds/unix/configure.raw (version_info): Set to 22:0:16.
560	* CMakeLists.txt (VERSION_PATCH): Set to 0.
561
5622018-01-07  Werner Lemberg  <wl@gnu.org>
563
564	Add check for librt, needed for `ftbench' (#52824).
565
566	* builds/unix/configure.raw (LIB_CLOCK_GETTIME): Define; this will
567	hold `-lrt' if necessary.
568
569	* builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable.
570
5712018-01-07  Ewald Hew  <ewaldhew@gmail.com>
572
573	[psaux] Fix Type 1 glyphs with too many stem hints.
574
575	According to the CFF specification, charstrings can have up to 96 stem
576	hints. Due to hint replacement routines in Type 1 charstrings, some
577	glyphs are rejected by the Adobe engine, which implements the above
578	limit. This fix turns off hinting for such glyphs.
579
580	* src/psaux/pshints.c (cf2_hintmap_build): Reset the error from calling
581	`cf2_hintmask_setAll' on a problematic Type 1 charstring and turn off
582	hinting.
583
5842018-01-06  Werner Lemberg  <wl@gnu.org>
585
586	Add `FT_Done_MM_Var'.
587
588	This is necessary in case the application's memory routines differ
589	from FreeType.  A typical example is a Python application on Windows
590	that calls FreeType compiled as a DLL via the `ctypes' interface.
591
592	* include/freetype/ftmm.h, src/base/ftmm.c (FT_Done_MM_Var): Declare
593	and define.
594
595	* docs/CHANGES: Updated.
596
5972018-01-03  Werner Lemberg  <wl@gnu.org>
598
599	[truetype] Round offsets of glyph components only if hinting is on.
600
601	* src/truetype/ttgload.c (TT_Process_Composite_Component): Implement
602	it.
603
6042018-01-03  Werner Lemberg  <wl@gnu.org>
605
606	* src/truetype/ttgxvar.c (ft_var_to_design): Remove dead code.
607
608	This is a better fix than the previous commit, which is now
609	reverted.
610
6112018-01-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
612
613	Move internal LCD-related declarations.
614
615	* include/freetype/ftlcdfil.h (ft_lcd_padding, ft_lcd_filter_fir):
616	Move from here...
617	* include/freetype/internal/ftobjs.h: ... to here.
618
6192018-01-03  Alexei Podtelezhnikov  <apodtele@gmail.com>
620
621	* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
622	[_MSC_VER]: Limit Visual C++ attributes.
623
6242018-01-03  Werner Lemberg  <wl@gnu.org>
625
626	[truetype] Make blend/design coordinate round-tripping work.
627
628	Behdad reported that setting blend coordinates, then getting design
629	coordinates did incorrectly return the default instance's
630	coordinates.
631
632	* src/truetype/ttgxvar.c (tt_set_mm_blend): Fix it.
633
6342017-12-31  Werner Lemberg  <wl@gnu.org>
635
636	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix endless loop.
637
638	Reported as
639
640	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4838
641
6422017-12-31  Werner Lemberg  <wl@gnu.org>
643
644	Synchronize other Windows project files.
645
646	* builds/windows/*: Add missing files.
647
6482017-12-31  Werner Lemberg  <wl@gnu.org>
649
650	Update Visual C 2010 project files.
651
652	Problem reported by Hin-Tak.
653
654	* builds/windows/vc2010/freetype.vcxproj: Add files `ftbdf.c' and
655	`ftcid.c'.
656	Sort entries.
657	* builds/windows/vc2010/freetype.vcxproj.filter: Ditto.
658	Fix members of `FT_MODULE' group.
659
6602017-12-30  Werner Lemberg  <wl@gnu.org>
661
662	* builds/vms/ftconfig.h: Synchronize with unix `ftconfig.in' file.
663
6642017-12-28  Werner Lemberg  <wl@gnu.org>
665
666	* builds/unix/ftconfig.in: Synchronize with main `ftconfig.h' file.
667
668	Reported by Nikolaus.
669
6702017-12-27  Werner Lemberg  <wl@gnu.org>
671
672	Fix compiler warnings.
673
674	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Make `pitch' and
675	`new_pitch' unsigned.
676
677	* src/base/ftpsprop.c: Include FT_INTERNAL_POSTSCRIPT_PROPS_H.
678
6792017-12-27  Werner Lemberg  <wl@gnu.org>
680
681	Fixes for `make multi'.
682
683	* include/freetype/internal/ftpsprop.h: Use `FT_BASE_CALLBACK'.
684	(ps_property_get): Harmonize declaration with corresponding
685	function typedef.
686
687	* include/freety[e/internal/fttrace.h: Add `trace_psprops'.
688
689	* src/base/ftpsprop.c: Include necessary header files.
690	(FT_COMPONENT): Define.
691	(ps_property_set): Tag with `FT_BASE_CALLBACK_DEF'.
692	(ps_property_get): Tag with `FT_BASE_CALLBACK_DEF'.
693	Harmonize declaration with corresponding function typedef.
694
6952017-12-27  Werner Lemberg  <wl@gnu.org>
696
697	Provide support for intra-module callback functions.
698
699	This is needed especially for `make multi' with C++.
700
701	* include/freetype/config/ftconfig.h (FT_BASE_CALLBACK,
702	FT_BASE_CALLBACK_DEF): New macros.
703
7042017-12-25  Ewald Hew  <ewaldhew@gmail.com>
705
706	Move PostScript drivers' property handlers to `base'.
707
708	This reduces the amount of duplicated code across PostScript
709	drivers.
710
711	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c
712	({cff,cid,t1}_property_{get,set}): Moved to...
713	* include/freetype/internal/ftpsprop.h: ...this new file.
714	(ps_property_{get,set}): New functions to replace moved ones.
715
716	* src/base/ftpsprop.c: New file that implements above functions.
717
718	* include/freetype/internal/internal.h
719	(FT_INTERNAL_POSTSCRIPT_PROPS_H): New macro.
720
721	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/type1/t1driver.c:
722	Updated.
723
724	* src/base/Jamfile, src/base/rules.mk (BASE_SRC), src/base/ftbase.c:
725	Updated.
726
7272017-12-20  Werner Lemberg  <wl@gnu.org>
728
729	Speed up FT_Set_Var_{Design,Blend}_Coordinates if curr == new.
730
731	We exit early if the current design or blend coordinates are
732	identical to the new ones.
733
734	* src/truetype/ttgxvar.c (tt_set_mm_blend, TT_Set_Var_Design):
735	Implement it, returning internal error code -1 if there will be no
736	variation change.
737
738	* src/type1/t1load.c (t1_set_mm_blend): Ditto.
739
740	* src/base/ftmm.c (FT_Set_Var_Design_Coordinates,
741	FT_Set_MM_Blend_Coordinates, FT_Set_Var_Blend_Coordinates): Updated.
742
7432017-12-18  Werner Lemberg  <wl@gnu.org>
744
745	[sfnt] Fix charmap type 2 iterator (#52646).
746
747	The subsetted demo font of the report that exhibits the bug has a
748	very unusual type 2 cmap for Unicode(!): It contains only two
749	sub-headers, one for one-byte characters (covering the range 0x20 to
750	0xFA), and a second one for higher byte 0x01 (just for character
751	code U+0131).
752
753	Before this commit, the iterator wasn't able to correctly handle a
754	sub-header for higher byte 0x01.
755
756	* src/sfnt/ttcmap.c (tt_cmap2_char_next): Fix character increment
757	for outer loop.
758
7592017-12-18  Matthias Clasen  <matthias.clasen@gmail.com>
760
761	[truetype] Fix clamping, minor tracing code beautification.
762
763	* src/truetype/ttgxvar.c (ft_var_to_normalized): Trace number of
764	design coordinates.
765	Use clamped value.
766
7672017-12-18  Werner Lemberg  <wl@gnu.org>
768
769	* src/*/*: Only use `ft_' and `FT_' variants of stdc library stuff.
770
7712017-12-18  Werner Lemberg  <wl@gnu.org>
772
773	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Add size guard (#52688).
774
7752017-12-18  Werner Lemberg  <wl@gnu.org>
776
777	[truetype] Fix previous commit.
778
779	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Correctly handle
780	unhinted phantom points, which must be properly scaled.
781
7822017-12-18  Werner Lemberg  <wl@gnu.org>
783
784	[truetype] Don't apply HVAR and VVAR deltas twice (#52683).
785
786	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Always adjust
787	`pp1' to `pp4', except if we have an HVAR and/or VVAR table.
788
789	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Handle
790	alternative code branch identically w.r.t. presence of an HVAR
791	and/or VVAR table.
792
7932017-12-17  Jonathan Kew  <jfkthame@gmail.com>
794
795	[truetype] Correctly handle variation font phantom points (#52683).
796
797	* src/truetype/ttgxvar.c (TT_Vary_Apply_Glyph_Deltas): Fix phantom
798	point indices.
799
8002017-12-17  Jonathan Kew  <jfkthame@gmail.com>
801
802	Fix incorrect advance width scaling (#52683).
803
804	* src/base/ftadvance.c (FT_Get_Advances): Always respect the
805	FT_LOAD_NO_SCALE flag if present.
806
8072017-12-16  Alexei Podtelezhnikov  <apodtele@gmail.com>
808
809	* builds/windows/vc2010/freetype.vcxproj: AfterBuild copy.
810	* objs/.gitignore: Ignore almost everything.
811
8122017-12-11  Werner Lemberg  <wl@gnu.org>
813
814	Fix compiler warning (#52640).
815
816	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Remove unused
817	variable.
818
8192017-12-08  Azzuro  <azzuro@team-mediaportal.com>
820
821	* builds/windows/vc2010/freetype.vcxproj: Adjust output directory.
822
823	This allows builds with different configurations in parallel.
824
8252017-12-08  Werner Lemberg  <wl@gnu.org>
826
827	Fix `make setup dos', second try (#52622).
828
829	* builds/detect.mk (dos_setup): Don't use literal `>' character at
830	all.  Mixing the different escaping rules from make, dos, and
831	windows is too fragile.
832
8332017-12-08  Werner Lemberg  <wl@gnu.org>
834
835	[docmaker] Fix code section parsing.
836
837	Stuff like
838
839	  {
840	    <bla>
841	  }
842
843	confused the parser, which incorrectly treated `<bla>' as a markup
844	tag.
845
846	* src/tools/docmaker/content.py (ContentProcessor::process_content):
847	Apply `re_markup_tags' only outside of code sections.
848
8492017-12-08  Werner Lemberg  <wl@gnu.org>
850
851	New `ftdriver.h' file, covering all driver modules.
852
853	This reduces redundancy and increases synergy; it also reduces the
854	number of header files.
855
856	* include/freetype/config/ftheader.h (FT_DRIVER_H): New macro.
857	(FT_AUTOHINTER_H, FT_CFF_DRIVER_H, FT_TRUETYPE_DRIVER_H,
858	FT_PCF_DRIVER_H, FT_TYPE1_DRIVER_H): Make them aliases to
859	FT_DRIVER_H.
860
861	* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
862	include/freetype/ftpcfdrv.h, include/freetype/ftt1drv.h,
863	include/freetype/ftttdrv.h: Replaced with...
864	* include/freetype/ftdriver.h: ...this new file.
865	(FT_CFF_HINTING_ADOBE, FT_T1_HINTING_ADOBE): Renamed to...
866	(FT_HINTING_ADOBE): ... this new macro.
867	(FT_CFF_HINTING_FREETYPE, FT_T1_HINTING_FREETYPE): Renamed to...
868	(FT_HINTING_FREETYPE): ... this new macro.
869
870	* src/*/*: Updated accordingly.
871
8722017-12-08  Werner Lemberg  <wl@gnu.org>
873
874	Move `ftdriver.h' to `ftdrv.h'.
875
876	* include/freetype/internal/ftdriver.h: Renamed to...
877	* include/freetype/internal/ftdrv.h: ... this name.
878
879	* include/freetype/internal/internal.h (FT_INTERNAL_DRIVER_H):
880	Updated.
881
8822017-12-08  Werner Lemberg  <wl@gnu.org>
883
884	Fix access to uninitalized memory (#52613).
885
886	Also reported as
887
888	  https://bugs.chromium.org/p/chromium/issues/detail?id=791317
889
890	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): If increasing the
891	bitmap size needs a larger bitmap buffer, assure that the new memory
892	areas are initialized also.
893
8942017-12-08  Werner Lemberg  <wl@gnu.org>
895
896	Fix `make setup dos' (#52622).
897
898	* builds/detect.mk (dos_setup): Properly escape literal `>'
899	character.
900
9012017-12-07  Werner Lemberg  <wl@gnu.org>
902
903	Fix C++ compilation.
904
905	* src/psaux/psauxmod.h: Use FT_CALLBACK_TABLE macro where necessary.
906
907	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix warning.
908
9092017-12-07  Werner Lemberg  <wl@gnu.org>
910
911	Fix `make multi'.
912
913	* include/freetype/internal/fttrace.h: Remove unused tracing macros.
914	s/pshalgo2/pshalgo/.
915	Add `trace_cffdecode'.
916	* src/pshinter/pshalgo.c (FT_COMPONENT): Updated.
917
918	* src/cff/cffload.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
919	* src/cff/cffobjs.c: Include FT_SERVICE_METRICS_VARIATIONS_H and
920	FT_SERVICE_CFF_TABLE_LOAD_H.
921
922	* src/cid/cidriver.c: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
923
924	* src/psaux/cffdecode.c: Include FT_FREETYPE_H and
925	FT_INTERNAL_DEBUG_H.
926	(FT_COMPONENT): Define.
927	* src/psaux/cffdecode.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
928	* src/psaux/psauxmod.h: Include FT_INTERNAL_POSTSCRIPT_AUX_H.
929	Declare `cff_builder_funcs' and `ps_builder_funcs'.
930	* src/psaux/psft.c: Include `psobjs.h' and `cffdecode.h'.
931	* src/psaux/psobjs.c : Include `psauxmod.h'.
932
9332017-12-07  Werner Lemberg  <wl@gnu.org>
934
935	* include/freetype/config/ftheader.h: Some clean-up.
936
937	This commit removes documentation of deprecated macros and does some
938	minor streamlining.
939
9402017-12-06  Werner Lemberg  <wl@gnu.org>
941
942	* builds/symbian/bld.inf: Updated.
943
9442017-12-06  Werner Lemberg  <wl@gnu.org>
945
946	New header file `ftparams.h' that collects all parameter tags.
947
948	* include/freetype/config/ftheader.h (FT_PARAMETER_TAGS_H): New
949	macro.
950	(FT_TRUETYPE_UNPATENTED_H, FT_UNPATENTED_HINTING_H): Define it to
951	`ftparams.h'.
952
953	* include/freetype/ftautoh.h, include/freetype/ftcffdrv.h,
954	include/freetype/ftincrem.h, include/freetype/ftlcdfil.h,
955	include/freetype/ftsnames.h, include/freetype/ftt1drv.h: Include
956	FT_PARAMETER_TAGS_H.
957	Move FT_PARAM_TAG_XXX definitions to...
958	* include/freetype/ftparams.h: ...this new file.
959
960	* include/freetype/ttunpat.h: Remove.  No longer needed.
961
9622017-12-05  Werner Lemberg  <wl@gnu.org>
963
964	Improve tracing messages by using singular and plural forms.
965
966	* src/*/*.c: Implement it.
967
9682017-12-04  Werner Lemberg  <wl@gnu.org>
969
970	[truetype] Allow shared points in `cvar' table (#52532).
971
972	* src/truetype/ttgxvar.c (tt_face_vary_cvt): Implement it by copying
973	and adjusting the corresponding code from
974	`TT_Vary_Apply_Glyph_Deltas'.
975
9762017-11-28  Werner Lemberg  <wl@gnu.org>
977
978	[truetype] Improving tracing of composite glyphs.
979
980	* src/truetype/ttgload.c (TT_Load_Composite_Glyph)
981	[FT_DEBUG_LEVEL_TRACE]: Show composite glyph information.
982
9832017-11-27  Werner Lemberg  <wl@gnu.org>
984
985	[type1] Allow (again) `/Encoding' with >256 elements (#52464).
986
987	In version 2.6.1, this has been disallowed to better reject
988	malformed fonts; however, this restriction was too strong.  This
989	time, we only take the first 256 elements into account, since
990	encoding arrays are always accessed with a 8bit integer, according
991	to the PostScript Language Reference.
992
993	* src/type1/t1load.c (parse_encoding): Implement it.
994
9952017-11-27  Jan Alexander Steffens (heftig)  <jan.steffens@gmail.com>
996
997	Fix last commit (#52522).
998
999	* builds/freetype.mk: Set `FT_OPTION_H' and `FTOPTION_FLAG'
1000	properly if we have `ftoption.h' in `BUILD_DIR'.
1001
10022017-11-24  Werner Lemberg  <wl@gnu.org>
1003
1004	[unix] Install a massaged `ftoption.h' file (#51780).
1005
1006	* builds/unix/configure.raw (ftoption_set, ftoption_unset): New
1007	auxiliary functions to construct...
1008	(FTOPTION_H_SED): ... this new variable.
1009	Apply it as a sed argument while copying `ftoption.h' to the
1010	`builds/unix' directory (using `AC_CONFIG_FILES').
1011	Simplify code of test that checks cpp's computation of bit length
1012	(the test previously created an empty `ftoption.h' file and deleted
1013	it immediately afterwards); without this change, it can happen on my
1014	GNU/Linux box that `configure's execution of `config.status' doesn't
1015	create `ftoption.h' (no idea why this happens).
1016
1017	* builds/unix/install.mk (install): Install
1018	`builds/unix/ftoption.h'.
1019
1020	* builds/unix/unix-def.in (DISTCLEAN): Updated.
1021
1022	* builds/unix/.gitignore: Updated.
1023
10242017-11-23  Tor Andersson  <tor.andersson@artifex.com>
1025
1026	Silence unused function warnings (#52465).
1027
1028	Some static function declarations cause unused function warnings if
1029	certain config options are turned off via `ftoption.h'.
1030
1031	* src/base/ftbase.h, src/base/ftrfork.c, src/sfnt/ttbdf.h,
1032	src/truetype/ttgxvar.h: Add #ifdef guards around these sections.
1033
10342017-11-22  Ewald Hew  <ewaldhew@gmail.com>
1035
1036	* src/psaux/psft.c (cf2_setGlyphWidth): Check format before setting.
1037
1038	Reported as
1039
1040	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4377
1041
10422017-11-22  Ewald Hew  <ewaldhew@gmail.com>
1043
1044	[psaux] Fix CFF advance widths. (#52466)
1045
1046	Glyph advance widths were being written to the new `PS_Decoder' but not
1047	saved to the underlying format specific decoder. This caused pure CFF
1048	fonts to have bad advance width.
1049
1050	* include/freetype/internal/psaux.h (PS_Decoder): Change `glyph_width'
1051	field to pointer.
1052	Remove unused fields.
1053	* src/psaux/psobjs.c (ps_decoder_init): Change `glyph_width' from copy
1054	to reference.
1055	Remove unused.
1056	* src/psaux/psft.c (cf2_setGlyphWidth): Update code.
1057
10582017-11-15  Vlad Tsyrklevich  <vtsyrklevich@google.com>
1059
1060	* include/freetype/ftrender.h: Fix `FT_Renderer_RenderFunc' type.
1061
10622017-11-14  Nikolaus Waxweiler  <madigens@gmail.com>
1063
1064	Use Adobe hinting engine for `light' hinting of both CFF and Type 1.
1065
1066	Since Ewald Hew factored the Adobe hinting engine out of the CFF
1067	driver code, we can now use it on Type 1 (and CID) font formats, as
1068	both have the same hinting philosophy.
1069
1070	This change activates the Adobe hinter when in LIGHT mode, and
1071	therefore always unless explicitly asking for the auto-hinter.  This
1072	makes LIGHT behavior consistent with CFF fonts.  As of this commit,
1073	the hinting engine table looks as follows.
1074
1075	             LIGHT  NORMAL
1076	  -------------------------
1077	   TrueType  Auto   v40
1078	   CFF       Adobe  Adobe
1079	   Type 1    Adobe  Adobe
1080
10812017-11-10  Yuri Levchenko  <yuri_levchenko@boolat.com>
1082
1083	* CMakeLists.txt: Add `DISABLE_FORCE_DEBUG_PREFIX' option.
1084
10852017-11-06  Alexei Podtelezhnikov  <apodtele@gmail.com>
1086
1087	* src/base/ftobjs.c (FT_Load_Glyph): Relocate condition.
1088
10892017-11-06  Alexei Podtelezhnikov  <apodtele@gmail.com>
1090
1091	* src/smooth/ftgrays.c (gray_set_cell): Fix uninitialized variables.
1092
10932017-11-03  Ewald Hew  <ewaldhew@gmail.com>
1094
1095	[psaux] Fix PostScript interpreter rewinding in Type 1 mode. (#52251)
1096
1097	The interpreter in Type 1 mode rewinds the charstring after collecting
1098	all hints for building the initial hintmap (commit d52dd7f). However,
1099	some charstrings use `endchar' in a final subroutine call, rewinding to
1100	the start of that subroutine, and only a small section of the actual
1101	glyph is drawn.
1102
1103	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdENDCHAR>:
1104	Ensure we are on the top level charstring before rewinding.
1105
11062017-11-03  suzuki toshiya  <mpsuzuki@hiroshima-u.ac.jp>
1107
1108	[truetype] Add more tricky fonts.
1109
1110	See the report by Yang Yinsen.
1111	https://lists.gnu.org/archive/html/freetype-devel/2017-11/msg00000.html
1112
1113	* src/truetype/ttobjs.c (trick_names): Add `DFGothic-EB',
1114	`DFGyoSho-Lt', `DFHSGothic-W5', `DFHSMincho-W3' and `DFHSMincho-W7'.
1115	(tt_check_trickyness_sfnt_ids): Add checksums for DFGothic-EB,
1116	DFGyoSho-Lt, DFHSGothic-W5, DFHSMincho-W3 and DFHSMincho-W7.  Also
1117	add checksums for DLCLiShu and DLCHayBold which their family names
1118	were already listed but their checksums were previously unknown.
1119
11202017-11-01  Alexei Podtelezhnikov  <apodtele@gmail.com>
1121
1122	[smooth] Fix complex rendering at high ppem.
1123
1124	We used to split large glyphs into horizontal bands and continue
1125	bisecting them still horizontally if that was not enough.  This is
1126	guaranteed to fail when a single scanline cannot fit into the
1127	rendering memory pool.  Now we bisect the bands vertically so that
1128	the smallest unit is a column of the band height, which is guranteed
1129	to fit into memory.
1130
1131	* src/smooth/ftgrays.c (gray_convert_glyph): Implement it.
1132
11332017-10-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
1134
1135	[smooth] Improve complex rendering at high ppem.
1136
1137	At large sizes almost but not exactly horizontal segments can quickly
1138	drain the rendering pool. This patch at least avoids filling the pool
1139	with trivial cells. Beyond this, we can only increase the pool size.
1140
1141	Reported, analyzed, and tested by Colin Fahey.
1142
1143	* src/smooth/ftgrays.c (gray_set_cell): Do not record trivial cells.
1144
11452017-10-20  Alexei Podtelezhnikov  <apodtele@gmail.com>
1146
1147	[base] Improve tracing in FT_Load_Glyph, FT_*_Size.
1148
1149	* src/base/ftobjs.c (FT_Load_Glyph): Tag tracing messages with
1150	function name, glyph index, and load flags.
1151	(FT_Select_Metrics, FT_Request_Metrics): Remove all tracing.
1152	(FT_Select_Size, FT_Request_Size): Improve tracing.
1153
11542017-10-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
1155
1156	[base] Improve tracing in FT_Render_Glyph.
1157
1158	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Add total coverage
1159	calculations and downgrade Netpbm dump to bitmap:7.
1160
11612017-10-15  Ewald Hew  <ewaldhew@gmail.com>
1162
1163	[cff] Fix segfault on missing `psaux' (#52218)
1164
1165	* src/cff/cffload.c (cff_done_blend): Add a check for possible nullptr.
1166
1167	* modules.cfg: Update dependency list.
1168
11692017-10-15  Alexei Podtelezhnikov  <apodtele@gmail.com>
1170
1171	[base, cff] Fix MSVC warnings.
1172
1173	* src/base/ftobjs.c (FT_New_Library): C4702: unreachable code.
1174	(ft_glyphslot_preset_bitmap): C4244: possible loss of data.
1175	* src/cff/cffload.c (cff_blend_doBlend): C4244: possible loss of data.
1176	Turn `sum' into unsigned.
1177
11782017-10-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
1179
1180	[base] Netpbm image tracing.
1181
1182	* src/base/ftobjs.c (FT_Load_Glyph): Trace bitmap size.
1183	(FT_Render_Glyph_Internal): Trace bitmap in Netpbm format.
1184
1185	* src/smooth/ftgrays.c (gray_sweep): Sweep remnants of span tracing.
1186
11872017-10-14  Alexei Podtelezhnikov  <apodtele@gmail.com>
1188
1189	* builds/windows/ftdebug.c (FT_Message): Print to stderr.
1190	* builds/wince/ftdebug.c (FT_Message): Ditto.
1191
11922017-10-14  Behdad Esfahbod  <behdad@behdad.org>
1193
1194	[afshaper] Delay creating `hb_set' objects until needed.
1195
1196	In runs on Noto Naskh Arabic, this results in 89 sets created
1197	instead of 340 before.  Makes auto-hinter setup with HarfBuzz
1198	enabled 20% to 30% faster.
1199
1200	* src/autofit/afshaper.c (af_shaper_get_coverage): Implement it.
1201
12022017-10-12  Ewald Hew  <ewaldhew@gmail.com>
1203
1204	[type1, cid] Add hinting engine switch.
1205
1206	Implement property service in `type1' and `cid' drivers to allow
1207	switching between FreeType or Adobe hinting engine when both are
1208	available.
1209
1210	* src/cid/cidriver.c (cid_property_{set,get}, cid_services),
1211	src/type1/t1driver.c (t1_property_{set,get}, t1_services): Add
1212	Properties service.
1213
1214	* src/cid/cidobjs.c (cid_driver_init), src/type1/t1objs.c
1215	(T1_Driver_Init): Add default property values.
1216
12172017-10-12  Ewald Hew  <ewaldhew@gmail.com>
1218
1219	Add T1_CONFIG_OPTION_OLD_ENGINE configuration option.
1220
1221	This controls whether the old Type 1 engine gets compiled into FreeType.
1222	It is disabled by default.
1223
1224	* devel/ftoption.h, include/freetype/config/ftoption.h
1225	(T1_CONFIG_OPTION_OLD_ENGINE): New macro.
1226
1227	* include/freetype/internal/psaux.h (PS_Decoder): Remove unused field.
1228	* include/freetype/internal/psaux.h, src/cid/cidgload.c
1229	(cid_load_glyph), src/psaux/psauxmod.c, src/psaux/psobjs.c
1230	(ps_builder_add_point), src/psaux/t1decode.c
1231	(t1_lookup_glyph_by_stdcharcode, t1_decoder_parse_glyph,
1232	t1operator_seac, t1_decoder_parse_charstrings), src/psaux/t1decode.h,
1233	src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Surround
1234	relevant code with macro.
1235	Minor code changes.
1236
12372017-10-12  Ewald Hew  <ewaldhew@gmail.com>
1238
1239	Extract width parsing from Type 1 parser.
1240
1241	Duplicate the fast advance width calculations from the old parser.
1242	This is to facilitate adding options for compiling out the old parser.
1243
1244	* src/psaux/t1decode.{c,h} (t1_decoder_parse_metrics): New function.
1245	* include/freetype/internal/psaux.h (T1_Decoder_Funcs): New entry
1246	`parse_metrics'.
1247	* src/psaux/psauxmod.c: Set the new entry.
1248
1249	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String),
1250	src/cid/cidgload.c (cid_load_glyph): Separate
1251	conditional for selecting engine.
1252
12532017-10-09  Werner Lemberg  <wl@gnu.org>
1254
1255	* src/base/ftoutln.c (FT_Outline_Translate): Fix integer overflow.
1256
1257	Reported as
1258
1259	  https://bugs.chromium.org/p/chromium/issues/detail?id=772775
1260
12612017-10-08  Werner Lemberg  <wl@gnu.org>
1262
1263	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Integer overflows.
1264
1265	Reported as
1266
1267	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3579
1268
12692017-10-07  Werner Lemberg  <wl@gnu.org>
1270
1271	[sfnt] Adjust behaviour of PS font names for variation fonts.
1272
1273	* src/sfnt/sfdriver.c (sfnt_get_var_ps_name): Use a named instance's
1274	PS name only if no variation is applied.
1275
12762017-10-07  Werner Lemberg  <wl@gnu.org>
1277
1278	[cff, truetype] Adjust behaviour of named instances.
1279
1280	This commit completely separates the interaction between named
1281	instances and variation functions.  In particular, resetting the
1282	variation returns to the current named instance (if set) and not to
1283	the base font.
1284
1285	As a side effect, variation functions no longer change the named
1286	instance index.
1287
1288	* src/cff/cffobjs.c (cff_face_init): Use MM service's `set_instance'
1289	function.
1290	Also apply `MVAR' table to named instances.
1291
1292	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Add cast.
1293	(tt_set_mm_blend): No longer check whether requested variation
1294	coincides with a named instance.
1295	(TT_Set_Var_Design): Use current named instance for default
1296	coordinates.
1297	* src/truetype/ttobjs.c (tt_face_init): Use `TT_Set_Named_Instance'.
1298
12992017-10-07  Werner Lemberg  <wl@gnu.org>
1300
1301	Make `FT_Set_Named_Instance' work.
1302
1303	* src/cff/cffdrivr.c (cff_set_instance): New function.
1304	(cff_service_multi_masters): Register it.
1305
1306	* src/truetype/ttgxvar.c (TT_Set_Named_Instance): New function.
1307	* src/truetype/ttgxvar.h: Updated.
1308	* src/truetype/ttdriver.c (tt_service_gx_multi_masters): Register
1309	it.
1310
1311	* src/type1/t1load.c (T1_Reset_MM_Blend): New function.
1312	* src/type1/t1load.h: Updated.
1313	* src/type1/t1driver.c (t1_service_multi_masters): Register it.
1314
13152017-10-07  Werner Lemberg  <wl@gnu.org>
1316
1317	Make `FT_FACE_FLAG_VARIATION' work.
1318
1319	* include/freetype/internal/tttypes.h (TT_Face): Remove
1320	`is_default_instance'; this can be replaced with a combination of
1321	`FT_IS_VARIATION' and `FT_IS_INSTANCE'.
1322
1323	* src/cff/cffdrivr.c (cff_get_advances): Updated.
1324
1325	* src/sfnt/sfdriver.c (sfnt_get_ps_name), src/sfnt/sfobjs.c
1326	(sfnt_init_face): Updated.
1327
1328	* src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c
1329	(TT_Process_Simple_Glyph, load_truetype_glyph, IS_DEFAULT_INSTANCE),
1330	src/truetype/ttgxvar.c (tt_set_mm_blend): Updated.
1331	* src/truetype/ttgxvar.c (TT_Set_MM_Blend, TT_Set_Var_Design):
1332	Handle `FT_FACE_FLAG_VARIATION'.
1333
1334	* src/type1/t1load.c (T1_Set_MM_Blend, T1_Set_MM_Design): Handle
1335	`FT_FACE_FLAG_VARIATION'.
1336
13372017-10-07  Werner Lemberg  <wl@gnu.org>
1338
1339	New function `FT_Set_Named_Instance'.
1340
1341	No effect yet.
1342
1343	* src/base/ftmm.c (FT_Set_Named_Instance): New function.
1344
1345	* include/freetype/ftmm.h: Updated.
1346
13472017-10-07  Werner Lemberg  <wl@gnu.org>
1348
1349	Add macros for checking whether a font variation is active.
1350
1351	* include/freetype/freetype.h (FT_FACE_FLAG_VARIATION,
1352	FT_IS_VARIATION): New macros.
1353	No effect yet.
1354
13552017-10-07  Werner Lemberg  <wl@gnu.org>
1356
1357	Add framework for setting named instance in MM service.
1358
1359	* include/freetype/internal/services/svmm.h (FT_Set_Instance_Func):
1360	New function typedef.
1361	(MultiMasters): Add `set_instance' member.
1362	(FT_DEFINE_SERVICE_MULTIMASTERSREC): Updated.
1363
1364	* src/cff/cffdrivr.c (cff_service_multi_masters),
1365	src/truetype/ttdriver (tt_service_gx_multi_masters),
1366	src/type1/t1driver.c (t1_service_multi_masters): Updated.
1367
13682017-10-07  Werner Lemberg  <wl@gnu.org>
1369
1370	[type1] Minor code shuffling.
1371
1372	* src/type1/t1load.c (T1_Set_MM_Blend): Make it a wrapper of...
1373	(t1_set_mm_blend): ...this new function.
1374	(T1_Set_MM_Design): Use `t1_set_mm_blend'.
1375
13762017-10-05  Werner Lemberg  <wl@gnu.org>
1377
1378	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Fix integer
1379	overflow.
1380
1381	Reported as
1382
1383	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3539
1384
13852017-10-05  Werner Lemberg  <wl@gnu.org>
1386
1387	Fix compiler warnings.
1388
1389	* src/cff/cffdrivr.c (cff_ps_get_font_extra): Avoid code that relies
1390	on numeric overflow.
1391	Add cast.
1392
1393	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Fix variable
1394	types, add cast.
1395
13962017-10-04  John Tytgat  <John.Tytgat@esko.com>
1397
1398	[cff] Add support for `FSType'.
1399
1400	* include/freetype/internal/cfftypes.h (CFF_FontRec): Add
1401	`font_extra' entry.
1402
1403	* src/cff/cffdrivr.c (cff_ps_get_font_extra): New function to
1404	retrieve FSType info from the embedded PostScript data.
1405	(cff_service_ps_info): Register function.
1406
1407	* src/cff/cffload.c (cff_font_done): Free `font_extra'.
1408
14092017-09-30  Alexei Podtelezhnikov  <apodtele@gmail.com>
1410
1411	Signedness fixes in bitmap presetting.
1412
1413	Reported as
1414
1415	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3514.
1416
1417	* src/raster/ftrend1.c (ft_raster1_render): Explicitly signed height.
1418	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
1419	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Explicitly unsigned
1420	subtraction.
1421
14222017-09-29  Alexei Podtelezhnikov  <apodtele@gmail.com>
1423
1424	Bitmap metrics presetting [2/2].
1425
1426	* src/base/ftobjs.c (FT_Load_Glyph): Preset the bitmap metrics when
1427	appropriate but `FT_Render_Glyph' is not called.
1428	* include/freetype/freetype.h (FT_GlyphSlotRec): Document the change.
1429
14302017-09-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
1431
1432	[smooth, raster] Miscellaneous cleanups.
1433
1434	* src/raster/ftrend1.c (ft_raster1_render): Clean up the exit.
1435	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Reduce
1436	translations and clean up the exit.
1437	(ft_smooth_render_lcd, ft_smooth_render_lcd): Remove unused `error'.
1438
14392017-09-28  Ben Wagner  <bungeman@google.com>
1440
1441	[truetype] Really, really fix #52082.
1442
1443	* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
1444
14452017-09-28  Werner Lemberg  <wl@gnu.org>
1446
1447	* src/psaux/psintrp.c (cf2_doStems): Fix integer overflow.
1448
1449	Reported as
1450
1451	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3510
1452
14532017-09-28  Ewald Hew  <ewaldhew@gmail.com>
1454
1455	* src/cid/cidgload.c (cid_slot_load_glyph): Fix memory leak.
1456
1457	Reported as
1458
1459	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3489
1460
14612017-09-28  Alexei Podtelezhnikov  <apodtele@gmail.com>
1462
1463	Bitmap metrics presetting [1/2].
1464
1465	This mainly just extracts the code for presetting the bitmap metrics
1466	from the monochrome, grayscale, and LCD renderers into a separate
1467	function.
1468
1469	* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): New function that
1470	calculates prospective bitmap metrics for the given rendering mode.
1471	* include/freetype/internal/ftobjs.h (ft_glyphslot_preset_bitmap):
1472	Declare it.
1473
1474	* src/base/ftlcdfil.c (ft_lcd_padding): New helper function that adds
1475	padding to CBox taking into account pecularities of LCD rendering.
1476	* include/freetype/ftlcdfil.h (ft_lcd_padding): Declare it.
1477
1478	* src/raster/ftrend1.c (ft_raster1_render): Reworked to use
1479	`ft_glyphslot_preset_bitmap'.
1480	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Ditto.
1481	(ft_smooth_render_lcd, ft_smooth_render_lcd): The pixel_mode setting
1482	is moved to `ft_glyphslot_preset_bitmap'.
1483
14842017-09-28  Ewald Hew  <ewaldhew@gmail.com>
1485
1486	[psaux] Fix compiler warning.
1487
1488	* src/psaux/pshints.c (cf2_hintmap_dump): Add switch for tracing
1489	code.
1490
14912017-09-27  Werner Lemberg  <wl@gnu.org>
1492
1493	* src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
1494
14952017-09-25  Werner Lemberg  <wl@gnu.org>
1496
1497	[psaux] Fix compiler warnings.
1498
1499	* src/psaux/psft.c (cf2_initLocalRegionBuffer): Remove redundant
1500	test.
1501
1502	* src/psaux/psintrp.c (cf2_interpT2CharString)
1503	<cf2_escCALLOTHERSUBR>: Add casts.
1504
1505	* src/psaux/psobjs.c (ps_decoder_init): Add cast.
1506
15072017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1508
1509	[psaux] Minor fixes.
1510
1511	* include/freetype/internal/psaux.h, src/psaux/psobjs.{c,h}:
1512	Rearrange `ps_builder_init' arguments to conventional order.
1513
1514	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Add a check and
1515	notice for `SubFont' in Type 1 mode.
1516
15172017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1518
1519	[psaux] Move `psdecode' into `psobjs'.
1520
1521	As the former only contains a single procedure, move it into
1522	`psobjs' for simplicity.  Also change the parameter order to the
1523	conventional one.
1524
1525	* src/psaux/psdecode.c (ps_decoder_init): Moved to...
1526	* src/psaux/psobjs.c: ...Here.
1527	* src/psaux/psdecode.h, src/psaux/psobjs.h: Ditto.
1528
1529	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Update
1530	`ps_decoder_init' function signature.
1531
1532	* src/cff/cffgload.c, src/cid/cidgload.c, src/type1/t1gload.c:
1533	Update calls.
1534
1535	* src/psaux/psaux.c, src/psaux/psauxmod.c: Update includes.
1536
1537	* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRV_SRC):
1538	Update file references.
1539
15402017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1541
1542	[psaux] Fix Type 1 hinting.
1543
1544	Type 1 hinting breaks sometimes when mid-charstring hints should
1545	have been in the initial hintmap.  This fix adds a preprocessing
1546	pass that reads all hints and builds the correct initial hintmap
1547	first, before proceeding to build the glyph outline.
1548
1549	* src/psaux/psintrp.c (cf2_interpT2CharString): New
1550	`initial_map_ready' boolean flag.
1551	Ignore outline commands and hint changes on first pass.
1552	<cf2_cmdENDCHAR>: Add section to build hintmap and rewind.
1553
15542017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1555
1556	[psaux] Add tracing for hints.
1557
1558	* src/psaux/pshints.c (cf2_hintmap_dump): New function.
1559	(cf2_hintmap_insertHint): Trace incoming and inserted hints.
1560	(cf2_hintmap_build): Dump hintmap before and after hint adjustment.
1561
15622017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1563
1564	[psaux] Minor fixes.
1565
1566	* src/psaux/psintrp.c (cf2_interpT2CharString): Fix check for pop
1567	results.
1568	s/font->decoder/decoder/ where necessary.
1569	<cf2_cmdHSTEM, cf2_cmdVSTEM, cf2_escHSTEM3, cf2_escVSTEM3>: Use
1570	offset parameter in `cf2_doStems' instead of doing correction for
1571	left-sidebearing.
1572
15732017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1574
1575	[cid] Use the new engine.
1576
1577	* src/cid/cidgload.c: Update includes.
1578	(cid_load_glyph, cid_slot_load_glyph): Implement changes to glyph
1579	loading code as with `type1' module.
1580
15812017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1582
1583	[cid] Add Adobe engine configuration.
1584
1585	This is similar to what was done in the `type1' module.
1586
1587	* src/cid/cidriver.c (t1cid_driver_class): Update declaration.
1588	* src/cid/cidobjs.c: Include FT_TYPE1_DRIVER_H.
1589	(cid_driver_init): Update code.
1590
15912017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1592
1593	[psaux] Change subfont synthesis for CID fonts.
1594
1595	Change `t1_make_subfont' to take in the Private dict record as an
1596	argument.  This is because Type 1 and CID font records in FreeType
1597	have this in different places.
1598
1599	* src/psaux/psobjs.c (t1_make_subfont): Change `T1_Face' to
1600	`FT_Face' so that CID is also accepted.
1601	Take `PS_Private' as an argument and let caller figure out where the
1602	Private dict actually is.
1603	Update references.
1604
1605	* include/freetype/internal/psaux.h, src/psaux/psobjs.h: Update
1606	declaration.
1607
1608	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Update
1609	call.
1610
16112017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1612
1613	[type1] Switch to Adobe engine.
1614
1615	* src/type1/t1objs.c (T1_Driver_Init): Set default to Adobe engine.
1616
16172017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1618
1619	[psaux] Extend Adobe interpreter (seac).
1620
1621	This concludes the changes needed to add Type 1 support.
1622
1623	* src/psaux/psintrp.c: Update includes.
1624	(cf2_interpT2CharString) <cf2_escSEAC>: Implement this similarly to
1625	implied seac for CFF.
1626
1627	* src/psaux/t1decode.c (t1_lookup_glyph_by_stdcharcode_ps): New
1628	function to look up the glyph index.
1629
1630	* src/psaux/psft.c (cf2_getT1SeacComponent,
1631	cf2_freeT1SeacComponent): New functions to get the charstrings for
1632	seac components.
1633
1634	* src/psaux/t1decode.h, src/psaux/psft.h: Update declarations.
1635
16362017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1637
1638	[psaux] Extend Adobe interpreter (flex in callothersubr).
1639
1640	* src/psaux/psintrp.c (cf2_interpT2CharString)
1641	<cf2_escCALLOTHERSUBR>: Fix Flex feature handling (OtherSubrs 0, 1,
1642	2).
1643	<cf2_cmdRMOVETO>: Do not actually move the `glyphPath' while doing
1644	flex.  This is to avoid closing the current contour.
1645
16462017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1647
1648	[psaux] Extend Adobe interpreter (callothersubr).
1649
1650	* src/psaux/psintrp.c (cf2_interpT2CharString)
1651	<cf2_escCALLOTHERSUBR>: Copy code from
1652	`t1_decoder_parse_charstrings' (in `t1decode.c').
1653	OtherSubr 3 (change hints) should reset the hintmask, so that the
1654	new hints are applied.
1655	Fix function calls and stack access.
1656
16572017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1658
1659	[psaux] Extend Adobe interpreter (pop).
1660
1661	* src/psaux/psintrp.c (cf2_interpT2CharString): Change how unhandled
1662	OtherSubr results are stored.  Implement the PostScript stack using
1663	an array.
1664	<cf2_escPOP>: Ensure that the stack is not cleared after getting
1665	`OtherSubr' results.
1666	Fix stack access.
1667
16682017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1669
1670	[psaux] Extend Adobe interpreter (callsubr).
1671
1672	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdCALLSUBR>:
1673	Type 1 mode.
1674
1675	* src/psaux/psft.c (cf2_initLocalRegionBuffer): Add Type 1 mode.
1676
16772017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1678
1679	[psaux] Extend Adobe interpreter (div, four-byte numbers).
1680
1681	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_escDIV>: Add
1682	Type 1 mode.  Type 1 requires large integers to be followed by
1683	`div'; cf. `Adobe Type 1 Font Format', section 6.2.
1684	<op == 255>: Push Type 1 four-byte numbers as `Int' always.  This is
1685	to ensure `div' and `callsubr' get values they can use.
1686
16872017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1688
1689	[psaux] Extend Adobe interpreter (hints).
1690
1691	* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
1692	cf2_cmdVSTEM>: Add correction for left sidebearing in Type 1 mode.
1693	Allow adding hints mid-charstring.
1694	<cf2_escVSTEM3, cf2_escHSTEM3>: Translate into equivalent commands
1695	for three normal stem hints.  This requires some recalculation of
1696	stem positions.
1697	Correction for left sidebearing.
1698
16992017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1700
1701	[psaux] Extend Adobe interpreter (hsbw, sbw).
1702
1703	* src/psaux/psintrp.c (cf2_doStems): `hsbw' or `sbw' must be the
1704	first operation in a Type 1 charstring.
1705	(cf2_interpT2CharString): Remove unused variables.
1706	<cf2_cmdHMOVETO, cf2_cmdVMOVETO, cf2_cmdRMOVETO>: `hsbw' or `sbw'
1707	must be the first operation in a Type 1 charstring.
1708	<cf2_cmdHSBW, cf2_escSBW>: Fix data access and add correction for
1709	left sidebearing.
1710
17112017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1712
1713	[psaux] Extend Adobe interpreter (setcurrentpoint).
1714
1715	* src/psaux/psintrp.c (cf2_interpT2CharString)
1716	<cf2_escSETCURRENTPT>: Fix stack access.
1717
17182017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1719
1720	[psaux] Extend Adobe interpreter (closepath).
1721
1722	* src/psaux/psintrp.c (cf2_interpT2CharString) <c2f_cmdCLOSEPATH>:
1723	Use the right builder function.  We can use the `haveWidth' boolean
1724	already present, instead of implementing `parse_state'.
1725
17262017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1727
1728	[psaux] Add Type 1 operations to Adobe CFF interpreter.
1729
1730	The following Type 1 specific ops have been added (copied from
1731	`t1decode'):
1732
1733	  closepath
1734	  vstem3
1735	  hstem3
1736	  seac
1737	  sbw
1738	  callothersubr
1739	  pop
1740	  setcurrentpoint
1741	  hsbw
1742
1743	The following require a Type 1 mode, because of differences in
1744	specification:
1745
1746	  hstem
1747	  vstem
1748	  vmoveto
1749	  callsubr
1750	  div
1751	  rmoveto
1752	  hmoveto
1753	  Numbers
1754
1755	The subsequent commits will implement these changes and adapt
1756	accesses of data and objects to the new interpreter.
1757
1758	NOTE: Will not compile in the meantime!
1759
1760	* src/psaux/psintrp.c: Add opcodes to enum.
1761	(cf2_interpT2CharString): Copy relevant code over from
1762	`t1_decoder_parse_charstrings' (in `t1decode.c').
1763
17642017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1765
1766	[type1] Fixes for rendering.
1767
1768	The Type 1 advance width calculation passes null for glyph slot,
1769	etc, which can cause null pointer access in the new interpreter.
1770	Fall back to the old one for now.
1771
1772	Fix the large glyph retry code and ensure hinting and scaling flags
1773	are set properly.
1774
1775	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add a
1776	check for metrics_only.
1777	Set the `force_scaling' flag.
1778	(T1_Parse_Glyph): Updated.
1779	(T1_Load_Glyph): Add `hinting' and `scaled' flags.
1780
17812017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1782
1783	[psaux] Add missing objects (2/2).
1784
1785	Synthesize a `SubFont' object for Type 1 fonts.  This is used in the
1786	interpreter to access Private dict data, which are stored in
1787	different places for Type 1 and CFF.  This allows the same data to
1788	be used in either mode.
1789
1790	* src/psaux/psobjs.c (t1_make_subfont): New procedure to copy
1791	required values to a dummy `CFF_SubFont' object.  This is similar to
1792	`cff_make_private_dict'.
1793	* src/psaux/psobjs.h: Add the new declaration.
1794
1795	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Ditto.
1796	Add this to the PSAux Service for future use with CID fonts.
1797
1798	* src/type1/t1gload.c: Include FT_INTERNAL_CFF_TYPES_H.
1799	(T1_Parse_Glyph_And_Get_Char_String): Add the call.
1800
18012017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1802
1803	[psaux] Add missing objects for Type 1 (1/2).
1804
1805	Move `CF2_Font' instance to `PS_Decoder'.  This is the context for
1806	the interpreter and since it is currently stored in `CFF_Font', is
1807	unavailable in Type 1 mode.
1808
1809	* include/freetype/internal/psaux.h (T1_Decoder, PS_Decoder): New
1810	`cf2_instance' field.
1811
1812	* src/psaux/psdecode.c (ps_decoder_init): Copy `cf2_instance' to
1813	`PS_Decoder'.
1814
1815	* src/psaux/t1decode.c (t1_decoder_done): Add finalization code.
1816
1817	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Update accesses.
1818
18192017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1820
1821	Allow `type1' module to use the Adobe engine.
1822
1823	Add the callback and some conditionals to switch between the two
1824	engines.
1825
1826	* include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Change
1827	function declarations.
1828	* src/psaux/psauxmod.c (T1_Decoder_FuncsRec): Register the
1829	callbacks.
1830
1831	* src/psaux/psobjs.c (ps_builder_add_point): Add conditionals for
1832	number conversion.
1833
1834	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add code
1835	to choose which renderer to use.
1836
1837	* src/cid/cidgload.c (cid_load_glyph): Update call.
1838	* src/base/ftobjs.c, src/psaux/psobjs.c, src/type1/t1gload.c: Update
1839	includes.
1840
18412017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1842
1843	[type1] Add Adobe engine configuration.
1844
1845	Use the previously changed PS_Driver in type1 module to store
1846	hinting engine configuration.
1847
1848	* include/freetype/ftt1drv.h: New file.
1849	Duplicate and rename config options from CFF.
1850	* include/freetype/config/ftheader.h (FT_TYPE1_DRIVER_H): New macro.
1851
1852	* src/type1/t1driver.c (t1_driver_class): Update declaration.
1853	* src/type1/t1objs.c: Include FT_TYPE1_DRIVER_H.
1854	(T1_Driver_Init): Update code.
1855
18562017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1857
1858	[cff] Move and rename `CFF_Driver'.
1859
1860	This is so that we can use the same hinting engine parameters for
1861	Type 1.
1862
1863	* include/freetype/internal/cffotypes.h (CFF_Driver): Rename and
1864	move to...
1865	* include/freetype/internal/psaux.h (PS_Driver): ...here.
1866
1867	* src/cff/cffdrivr.c, src/cff/cffgload.c, src/cff/cffload.c,
1868	src/cff/cffobjs.c, src/cff/cffobjs.h, src/psaux/psft.c,
1869	src/psaux/psobjs.c: Update references.
1870
18712017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1872
1873	[psaux, type1] Reorganize object fields.
1874
1875	Make some fields more generic, so that we can access them the same
1876	way regardless of Type 1 or CFF.
1877
1878	* include/freetype/internal/psaux.h (PS_Builder): Change `TT_Face'
1879	to `FT_Face'.
1880	Remove unused fields.
1881
1882	* src/psaux/psft.c: Update all accesses of `PS_Builder.face'.
1883	Add some asserts to guard against casting `T1_Face' as `TT_Face'.
1884
1885	* src/type1/t1objs.h (T1_GlyphSlot): Reorder fields to follow
1886	`CFF_GlyphSlot', so that we can pretend they are the same in the
1887	interpreter.
1888
1889	* src/psaux/psobjs.c (ps_builder_init, ps_builder_add_point):
1890	Updated with above changes.
1891
18922017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1893
1894	[psaux] Prepare for Type 1 mode.
1895
1896	Add some checks for Type 1 data passing through.
1897
1898	* src/psaux/psfont.h (CF2_Font): Add `isT1' flag.
1899	* src/psaux/psfont.c (cf2_font_setup): Skip the variations and blend
1900	code which is not applicable for Type 1.
1901
1902	* src/psaux/psft.c (cf2_decoder_parse_charstrings): Avoid accessing
1903	`decoder->cff' in Type 1 mode.
1904	Copy `is_t1' flag to `CF2_Font'.
1905
19062017-09-25  Ewald Hew  <ewaldhew@gmail.com>
1907
1908	[psaux, cff] Use the new objects.
1909
1910	* include/freetype/internal/psaux.h, src/psaux/psauxmod.c: Fix
1911	switching between new and old engines.
1912
1913	* src/cff/cffgload.c, src/cff/cffparse.c: Update calls.
1914
1915	* src/psaux/psblues.c, src/psaux/psfont.c, src/psaux/psfont.h,
1916	src/psaux/psft.c, src/psaux/psft.h, src/psaux/psintrp.c: Update all
1917	to use new objects.
1918
19192017-09-24  Ewald Hew  <ewaldhew@gmail.com>
1920
1921	[psaux] Objects for new interpreter (part 2).
1922
1923	Make the new objects copy over values.  They are essentially wrapper
1924	types for the different decoders/builders.
1925
1926	* include/freetype/internal/psaux.h: Update declarations.
1927	(PS_Builder): Add `is_t1' flag.
1928	(PS_Decoder_{Get,Free}_Glyph_Callback): Renamed to...
1929	(CFF_Decoder_{Get,Free}_Glyph_Callback: ... this.
1930	(PS_Decoder): Updated.
1931	Add `t1_parse_callback' member.
1932	(PSAux_ServiceRec): Add `ps_decoder_init' member.
1933
1934	* src/psaux/psdecode.h, src/psaux/psobjs.h: Update declarations.
1935
1936	* src/psaux/psdecode.c, src/psaux/psobjs.c: Implement copy with two
1937	modes.
1938
1939	* src/psaux/psauxmod.c: Add builder and decoder functions to `PSAux'
1940	service.
1941
19422017-09-24  Ewald Hew  <ewaldhew@gmail.com>
1943
1944	[psaux] Add objects for new interpreter.
1945
1946	Introduce `PS_Decoder' and `PS_Builder' which include all fields
1947	from either Type 1 or CFF decoders/builders.
1948
1949	* include/freetype/internal/psaux.h (PS_Builder, PS_Decoder): New
1950	structs.
1951
1952	* src/psaux/psobjs.c, src/psaux/psobjs.h: Add `PS_Builder'
1953	functions.
1954
1955	* src/psaux/psdecode.c, src/psaux/psdecode.h: New files to hold
1956	`PS_Decoder' initialization functions.
1957
1958	* src/psaux/psaux.c, src/psaux/Jamfile (_sources),
1959	src/psaux/rules.mk (PSAUX_DRV_SRC): Updated.
1960
19612017-09-24  Ewald Hew  <ewaldhew@gmail.com>
1962
1963	[psaux] Rename files.
1964
1965	Replace the `cf2' file name prefix with `ps' as the Adobe engine
1966	will be used for both PostScript Types 1 and 2 (CFF) instead of just
1967	CFF.
1968
1969	s/cf2/ps/ for all following.
1970
1971	* src/psaux/cf2*: Rename files.
1972	* src/psaux/*: Update includes.
1973
1974	* src/psaux/Jamfile (_sources), src/psaux/rules.mk (PSAUX_DRC_SRC,
1975	PSAUX_DRV_H): Update file references.
1976
19772017-09-24  Ewald Hew  <ewaldhew@gmail.com>
1978
1979	[psaux] Minor fix.
1980
1981	Use `MultiMasters' service in `psaux' instead of a call to `cff'.
1982	The project builds if CFF_CONFIG_OPTION_OLD_ENGINE is not defined.
1983
1984	* src/psaux/cf2ft.c: Update includes.
1985	(cf2_getNormalizedVector): Use `mm->get_var_blend' instead of
1986	`cff_get_var_blend'.
1987
19882017-09-24  Ewald Hew  <ewaldhew@gmail.com>
1989
1990	[psaux, cff] Move `cff_random' into `psaux' service.
1991
1992	NOTE: Does not compile!
1993
1994	Minor fix to allow both `cff' and `psaux' to use `cff_random'.
1995
1996	* src/cff/cffload.c (cff_random): Move to...
1997	* src/psaux/psobjs.c: Here.
1998	* src/cff/cffload.h: Move corresponding declaration to
1999	`src/psaux/psobjs.h'.
2000
2001	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Register the
2002	function here...
2003	* src/psaux/psauxmod.c: And here.
2004
2005	* src/cff/cffload.c, src/psaux/cf2intrp.c: Update code.
2006
20072017-09-24  Ewald Hew  <ewaldhew@gmail.com>
2008
2009	[cff] Move struct declarations to `freetype/internal'.
2010
2011	NOTE: Does not compile!
2012
2013	This is so that the CFF functions moved to `psaux' can access the
2014	same structs that they need.
2015
2016	* src/cff/cfftypes.h: Moved to...
2017	* include/freetype/internal/cfftypes.h: ...Here.
2018
2019	* src/cff/cffobjs.h: Moved the struct declarations to...
2020	* include/freetype/internal/cffotypes.h: ... this new file.
2021
2022	* include/freetype/internal/internal.h (FT_INTERNAL_CFF_TYPES_H,
2023	FT_INTERNAL_CFF_OBJECT_TYPES_H): New macros.
2024
2025	* src/cff/cffcmap.h, src/cff/cffdrivr.c, src/cff/cffgload.c,
2026	src/cff/cffgload.h, src/cff/cffload.h, src/cff/cffobjs.c,
2027	src/cff/cffobjs.h, src/cff/cffparse.h, src/psaux/psobjs.h,
2028	include/freetype/internal/psaux.h,
2029	include/freetype/internal/services/svcfftl.h: Update includes.
2030
2031	* src/cff/rules.mk (CFF_DRV_H): Updated.
2032
20332017-09-24  Ewald Hew  <ewaldhew@gmail.com>
2034
2035	[psaux, cff] Add new service for inter-module calls.
2036
2037	NOTE: Does not compile!
2038
2039	This is to allow CFF functions moved to `psaux' to call functions
2040	declared in `src/cff/cffload.h'.
2041
2042	* include/freetype/internal/services/svcfftl.h: New file, setting up
2043	a `CFFLoad' service.
2044
2045	* include/freetype/internal/ftserv.h (FT_DEFINE_SERVICEDESCREC10,
2046	FT_DEFINE_SERVICEDESCREC): New macros.
2047	(FT_SERVICE_CFF_TABLE_LOAD_H): New macro.
2048
2049	* src/cff/cffdrivr.c, src/cff/cffpic.h: Register the new service.
2050
2051	* src/cff/cfftypes.h (CFF_FontRec), src/psaux/cf2font.h
2052	(CF2_FontRec): Add service interface.
2053
2054	* src/cff/cffobjs.c, src/psaux/cf2font.c, src/psaux/cf2ft.c,
2055	src/psaux/cf2intrp.c, src/psaux/cffdecode.c: Use the new service.
2056
20572017-09-24  Ewald Hew  <ewaldhew@gmail.com>
2058
2059	[psaux, cff] Add callbacks for inter-module calls.
2060
2061	NOTE: Does not compile!
2062
2063	* include/freetype/internal/psaux.h: Add function pointer
2064	declarations.
2065
2066	* src/psaux/cffdecode.c (cff_decoder_init): Update to take in
2067	callbacks.
2068	* src/psaux/cffdecode.h: Ditto.
2069
2070	* src/cff/cffgload.c (cff_compute_max_advance, cff_slot_load):
2071	Update calls to pass in callbacks.
2072	* src/psaux/cf2ft.c, src/psaux/cffdecode.c: Use them.
2073
20742017-09-24  Ewald Hew  <ewaldhew@gmail.com>
2075
2076	[psaux, cff] Create new `PSAux' service interface entries.
2077
2078	NOTE: Does not compile!
2079
2080	* include/freetype/internal/psaux.h: Include
2081	FT_INTERNAL_TRUETYPE_TYPES_H.
2082	(CFF_Builder_FuncsRec, CFF_Decocer_FuncsRec): New function tables.
2083	(CFF_Builder): Updated.
2084	Fix for forward declaration.
2085	(PSAux_ServiceRec): New field `cff_decoder_funcs'.
2086
2087	* src/psaux/psauxmod.c (cff_builder_funcs, cff_decoder_funcs): New
2088	function tables.
2089	(PSAux_Interface): Updated.
2090
2091	* include/freetype/internal/tttypes.h (TT_FaceRec): Add `psaux'
2092	service interface.
2093
2094	* src/cff/cffgload.c, src/cff/cffobjs.c, src/cff/cffparse.c: Update
2095	function calls to use psaux service.
2096
20972017-09-24  Ewald Hew  <ewaldhew@gmail.com>
2098
2099	[psaux, cff] Move CFF builder components into `psaux' module.
2100
2101	NOTE: Does not compile!
2102
2103	* src/cff/cffgload.c
2104	(cff_builder_{init,done,add_point,add_point1,add_contour,start_point,close_contour},
2105	cff_check_points): Move to...
2106	* src/psaux/psobjs.c: Here.
2107
2108	* src/cff/cffgload.h: Move corresponding declarations to
2109	`src/psaux/psobjs.h'.
2110
2111	* src/cff/cffgload.h (CFF_Builder): Move struct declaration to...
2112	* include/freetype/internal/psaux.h: Here.
2113
21142017-09-24  Ewald Hew  <ewaldhew@gmail.com>
2115
2116	[psaux, cff] Move CFF decoder components into `psaux' module.
2117
2118	NOTE: Does not compile!
2119
2120	* src/cff/cffgload.c (CFF_Operator,
2121	CFF_COUNT_{CHECK_WIDTH,EXACT,CLEAR_STACK}, cff_argument_counts,
2122	cff_operator_seac, cff_compute_bias,
2123	cff_lookup_glyph_by_stdcharcode,
2124	cff_decoder_{parse_charstrings,init,prepare}): Move to...
2125	* src/psaux/cffdecode.c: This new file.
2126
2127	* src/cff/cffgload.h: Move corresponding declarations to...
2128	* src/psaux/cffdecode.h: This new file.
2129
2130	* src/cff/cffgload.h (CFF_MAX_{OPERANDS,SUBRS_CALLS,TRANS_ELEMENTS},
2131	CFF_Decoder_Zone, CFF_Decoder): Move declarations to...
2132	* include/freetype/internal/psaux.h: Here.
2133
2134	* src/psaux/cf2ft.h: Update include.
2135
2136	* src/psaux/psaux.c, src/psaux/rules.mk (PSAUX_DRV_SRC): Update with
2137	the new file.
2138
21392017-09-24  Ewald Hew  <ewaldhew@gmail.com>
2140
2141	[psaux, cff] Move Adobe's engine components into `psaux' module.
2142
2143	This is the first patch of a sequence to move the Type 2 charstring
2144	processing capability from the `cff' module to the `psaux' module.
2145
2146	NOTE: Does not compile!
2147
2148	* src/cff/cf2*: Move these files to...
2149	* src/psaux/cf2*: Here.
2150
2151	* src/cff/Jamfile (_sources), src/cff/rules.mk (CFF_DRV_SRC,
2152	CFF_DRV_H), src/cff/cff.c, src/cff/cffgload.c: Remove file
2153	references.
2154
2155	* src/psaux/Jamfile (_sources), src/psaux/rules.mk, src/psaux/psaux.c
2156	(PSAUX_DRV_SRC, PSAUX_DRV_H): Add file references.
2157
21582017-09-24  Alexei Podtelezhnikov  <apodtele@gmail.com>
2159
2160	Tweak per-face LCD filtering controls.
2161
2162	Thing are simpler with a NULL-function pointer.
2163
2164	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): New
2165	pointer to the filter function.
2166	(FT_LibraryRec): Remove unused `lcd_filter'.
2167	(FT_Bitmap_LcdFilterFunc, ft_lcd_filter_fir):  Move from here...
2168	* include/freetype/ftlcdfil.h (FT_Bitmap_LcdFilterFunc,
2169	ft_lcd_filter_fir): ... to here.
2170
2171	* src/base/ftobjs.c (ft_open_face_internal): NULL-initialize the
2172	per-face filter.
2173	(FT_Face_Properties): Set it.
2174	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Simplify.
2175
2176	* src/base/ftlcdfil.c (ft_lcd_filter_fir, FT_Libary_SetLcdFilter):
2177	Minor.
2178
21792017-09-24  Jonathan Kew  <jfkthame@gmail.com>
2180
2181	[sfnt] Fix `premultiply_data' (#52092).
2182
2183	* src/sfnt/pngshim.c (premultiply_data): Don't use vector extension
2184	if we have less than 16 bytes of data.
2185
21862017-09-24  Werner Lemberg  <wl@gnu.org>
2187
2188	[otvalid] Fix handling of ValueRecords.
2189
2190	For GPOS pair positioning format 1 the description of ValueRecords
2191	in the OpenType specification (1.8.2, from today) is wrong – the
2192	offset has to be taken from the parent structure; in this case the
2193	`PairSet' table.
2194
2195	* src/otvalid/otvgpos.c (otv_PairSet_validate): Set `extra3'.
2196	(otv_PairPos_validate): Adjust.
2197
21982017-09-23  Werner Lemberg  <wl@gnu.org>
2199
2200	[otvalid] Handle `GSUB' and `GPOS' v1.1 tables.
2201
2202	* src/otvalid/otvgsub.c (otv_GSUB_validate), src/otvalid/otvgpos.c
2203	(otv_GPOS_validate): Implement it.
2204
22052017-09-23  Werner Lemberg  <wl@gnu.org>
2206
2207	[otvalid] Update common table handling to OpenType 1.8.2.
2208
2209	* src/otvalid/otvcommn.c (otv_Device_validate): Handle
2210	VariationIndex subtable.
2211	(otv_Lookup_validate): Handle MarkFilteringSet.
2212
22132017-09-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
2214
2215	[build] Windows-style DLL versioning.
2216
2217	* build/windows/ftver.rc: New VERSIONINFO resource.
2218	* build/windows/vc2010/freetype.vcxproj: Further improvements.
2219
22202017-09-23  Ben Wagner  <bungeman@google.com>
2221
2222	[truetype] Really fix #52082.
2223
2224	* src/truetype/ttinterp.c (Ins_MDRP): Correct conditional.
2225
22262017-09-23  Werner Lemberg  <wl@gnu.org>
2227
2228	[otvalid] Handle `GDEF' v1.2 and v1.3 tables.
2229
2230	No validation of variation stuff yet.
2231
2232	* src/otvalid/otvgdef.c (otv_MarkGlyphSets_validate): New function.
2233	(otv_GDEF_validate): Implement it.
2234
22352017-09-22  Werner Lemberg  <wl@gnu.org>
2236
2237	[otvalid] Handle `BASE' v1.1 table.
2238
2239	No validation of variation stuff yet.
2240
2241	* src/otvalid/otvbase.c (otv_BASE_validate): Implement it.
2242
22432017-09-22  Werner Lemberg  <wl@gnu.org>
2244
2245	[otvalid] Macros for 32bit offset support.
2246
2247	* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE32,
2248	OTV_OPTIONAL_OFFSET32, OTV_SIZE_CHECK32): New macros.
2249
22502017-09-21  Alexei Podtelezhnikov  <apodtele@gmail.com>
2251
2252	[build] Simplify Visual C++ 2010 project.
2253
2254	* build/windows/vc2010/freetype.vcxproj: Remove fake singlethreaded
2255	configurations and tweak.
2256
22572017-09-21  Werner Lemberg  <wl@gnu.org>
2258
2259	[truetype] Integer overflow (#52082).
2260
2261	* src/truetype/ttinterp.c (Ins_MDRP): Avoid FT_ABS.
2262
22632017-09-21  Werner Lemberg  <wl@gnu.org>
2264
2265	[sfnt] Fix postscript name for default instance of variation fonts.
2266
2267	Problem reported by Behdad.
2268
2269	* src/sfnt/sfdriver.c (sfnt_get_ps_name): Test
2270	`is_default_instance'.
2271
22722017-09-21  Werner Lemberg  <wl@gnu.org>
2273
2274	[truetype] Fix `mmvar' array pointers, part 2.
2275
2276	The previous commit was incomplete.
2277
2278	* src/truetype/ttgxvar.c: Properly initialize sub-array offsets for
2279	`master' also.
2280
22812017-09-21  Werner Lemberg  <wl@gnu.org>
2282
2283	[truetype] Fix `mmvar' array pointers.
2284
2285	Without this change, clang's AddressSanitizer reports many runtime
2286	errors due to misaligned addresses.
2287
2288	* src/truetype/ttgxvar.c (TT_Get_MM_Var): Use multiples of pointer
2289	size for sub-array offsets into `mmvar'.
2290
22912017-09-20  Werner Lemberg  <wl@gnu.org>
2292
2293	[truetype] Integer overflows.
2294
2295	Changes triggered by
2296
2297	  https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3429
2298
2299	* src/truetype/ttinterp.c (Ins_SHPIX, Ins_DELTAP): Use NEG_LONG.
2300	(Ins_MIAP): Use SUB_LONG.
2301
23022017-09-19  Alexei Podtelezhnikov  <apodtele@gmail.com>
2303
2304	[build] Fix DLL builds in Visual C++ project.
2305
2306	* build/windows/vc2010/freetype.vcxproj: Use DynamicLibrary in Debug
2307	and Release configurations.
2308	* include/freetype/config/ftconfig.h (FT_EXPORT, FT_EXPORT_DEF)
2309	[_DLL]: Use Visual C++ extensions.
2310
23112017-09-19  John Tytgat  <John.Tytgat@esko.com>
2312
2313	[cff] Fix family name logic of pure CFF fontdata (#52056).
2314
2315	1. If `FamilyName' is present in the CFF font, use this for
2316	   FT_Face's `family_name'.
2317	2. Otherwise, use the face name and chop off any subset prefix.
2318	3. If at this point FT_Face's `family_name' is set, use this
2319	   together with the full name to determine the style.
2320	4. Otherwise, use `CIDFontName' as FT_Face's `family_name'.
2321	5. If we don't have a valid style, use "Regular".
2322
2323	Previously, FT_Face's `family_name' entry for pure CFF fontdata
2324	nearly always was the fontname itself, instead of the `FamilyName'
2325	entry in the CFF font (assuming there is one).
2326
2327	* src/cff/cffobjs.c (cff_face_init) [pure_cff]: Implement it.
2328
23292017-09-18  Alexei Podtelezhnikov  <apodtele@gmail.com>
2330
2331	[build] Declutter Visual C++ 2010-2017 project.
2332
2333	* build/windows/vc2010/freetype.vcxproj: Use MaxSpeed (/02)
2334	optimization for Release configuration throughout the project.
2335
2336
2337----------------------------------------------------------------------------
2338
2339Copyright (C) 2017-2020 by
2340David Turner, Robert Wilhelm, and Werner Lemberg.
2341
2342This file is part of the FreeType project, and may only be used, modified,
2343and distributed under the terms of the FreeType project license,
2344LICENSE.TXT.  By continuing to use, modify, or distribute this file you
2345indicate that you have read the license and understand and accept it
2346fully.
2347
2348
2349Local Variables:
2350version-control: never
2351coding: utf-8
2352End:
2353