blob: 3b21ff62e854151ba4adcc4b48bf525118cbefcb [file] [log] [blame]
Alexei Podtelezhnikov6a171722015-03-17 22:43:08 -040012015-03-17 Alexei Podtelezhnikov <apodtele@gmail.com>
2
3 Fix Savannah bug #44412 (part 2).
4
5 * src/base/fttrigon.c (FT_Sin, FT_Cos, FT_Tan): Call `FT_Vector_Unit'.
6
Werner Lemberg06339952015-03-11 06:30:23 +010072015-03-11 Werner Lemberg <wl@gnu.org>
8
Werner Lembergd3284462015-03-11 16:45:58 +01009 [autofit] Add support for Arabic script.
10
11 Thanks to Titus Nemeth <tn@tntypography.eu> for guidance!
12
13 * src/autofit/afblue.dat: Add blue zone data for Arabic.
14
15 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
16
17 * src/autofit/afscript.h: Add Arabic standard characters.
18
19 * src/autofit/afranges.c: Add Arabic data.
20
21 * src/autofit/afstyles.h: Add Arabic data.
22
23 * docs/CHANGES: Document it.
24
252015-03-11 Werner Lemberg <wl@gnu.org>
26
Werner Lemberga4516382015-03-11 08:09:13 +010027 Rename `svxf86nm.h' to `svfntfmt.h'; update related symbols.
28
29 * include/internal/ftserv.h (FT_SERVICE_XFREE86_NAME_H): Renamed
30 to...
31 (FT_SERVICE_FONT_FORMAT_H): This.
32
33 * include/internal/services/svfntfmt.h (FT_XF86_FORMAT_*): Renamed
34 to ...
35 (FT_FONT_FORMAT_*): This.
36
37 src/base/ftfntfmt.c, src/bdf/bdfdrivr.c, src/cff/cffdrivr.c,
38 src/cid/cidriver.c, src/pcf/pcfdrivr.c, src/pfr/pfrdrivr.c,
39 src/truetype/ttdriver.c, src/type1/t1driver.c,
40 src/type42/t42drivr.c, src/winfonts/winfnt.c: Updated.
41
422015-03-11 Werner Lemberg <wl@gnu.org>
43
Werner Lembergdd7028c2015-03-11 07:45:05 +010044 [base] Rename `FT_XFREE86_H' to `FT_FONT_FORMATS_H'.
45
46 * include/config/ftheader.h: Implement it.
47 * src/base/ftfntfmt.c, docs/CHANGES: Updated.
48
492015-03-11 Werner Lemberg <wl@gnu.org>
50
Werner Lembergf4d1c112015-03-11 07:32:58 +010051 [base] Rename `FT_Get_X11_Font_Format' to `FT_Get_Font_Format'.
52
53 * include/ftfntfmt.h, src/base/ftfntfmt.c: Implement it.
54
55 * docs/CHANGES: Updated.
56
572015-03-11 Werner Lemberg <wl@gnu.org>
58
Werner Lembergcb0f7b62015-03-11 06:51:27 +010059 Fix automatic copyright updating.
60
61 * src/tools/update-copyright: Make scanning of `no-copyright'
62 actually work.
63
64 * src/tools/no-copyright: Don't include README in general.
65
662015-03-11 Werner Lemberg <wl@gnu.org>
67
Werner Lemberg06339952015-03-11 06:30:23 +010068 Rename `ftxf86.[ch]' to `ftfntfmt.[ch]'.
69
70 CMakeLists.txt, builds/amiga/makefile, builds/amiga/makefile.os4,
71 builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
72 builds/mac/FreeType.m68k_far.make.txt,
73 builds/mac/FreeType.ppc_carbon.make.txt,
74 builds/mac/FreeType.ppc_classic.make.txt, builds/symbian/bld.inf,
75 builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
76 builds/wince/vc2008-ce/freetype.vcproj,
77 builds/windows/vc2005/freetype.vcproj,
78 builds/windows/vc2008/freetype.vcproj,
79 builds/windows/vc2010/freetype.vcxproj,
80 builds/windows/vc2010/freetype.vcxproj.filters,
81 builds/windows/visualc/freetype.dsp,
82 builds/windows/visualc/freetype.vcproj,
83 builds/windows/visualce/freetype.dsp,
84 builds/windows/visualce/freetype.vcproj, docs/INSTALL.ANY,
85 include/config/ftheader.h, include/ftfntfmt.h, modules.cfg,
86 src/base/ftfntfmt.c, vms_make.com: Updated.
87
Alexei Podtelezhnikov6b832c82015-03-10 23:25:49 -0400882015-03-10 Alexei Podtelezhnikov <apodtele@gmail.com>
89
90 Fix Savannah bug #44412 (part 1).
91
92 * src/base/ftstroke.c (ft_stroker_inside): Handle near U-turns.
93
Werner Lembergeee7d8b2015-03-10 11:15:15 +0100942015-03-10 Werner Lemberg <wl@gnu.org>
95
96 [base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'.
97
98 * include/ftbitmap.h, src/base/ftbitmap.c: Implement it.
99 Update all callers.
100
101 * docs/CHANGES: Updated.
102
Werner Lemberg493cc032015-03-06 05:38:31 +01001032015-03-06 Werner Lemberg <wl@gnu.org>
104
105 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix compiler warning.
106
107 Found by Alexei.
108
Alexei Podtelezhnikovdd7498d2015-03-05 22:51:36 -05001092015-03-05 Alexei Podtelezhnikov <apodtele@gmail.com>
110
111 * src/base/ftstroke.c: Simplify.
112
Werner Lemberg328b7922015-03-04 08:40:23 +01001132015-03-04 Werner Lemberg <wl@gnu.org>
114
115 [truetype] Some fixes and code refactoring in `ttgxvar.c'.
116
117 * src/truetype/ttgxvar.c (ft_var_readpackedpoints): Fix return value
118 of `point_cnt' if two bytes are read.
119 Use a more vertical coding style.
120 (ft_var_readpackeddeltas): Use FT_UInt for `delta_cnt' parameter.
121 Use a more vertical coding style.
122
Werner Lemberga374c9c2015-03-03 11:23:45 +01001232015-03-03 Werner Lemberg <wl@gnu.org>
124
125 [autofit] Fix Savannah bug #44241.
126
127 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Reject glyphs
128 with less than 3 points.
129
Werner Lemberga07029e2015-03-02 06:54:08 +01001302015-03-02 Werner Lemberg <wl@gnu.org>
131
132 Simplify `TYPEOF' macro.
133
134 No need for two arguments.
135
136 * include/config/ftconfig.h, builds/unix/ftconfig.in,
137 builds/vms/ftconfig.h (TYPEOF): Updated.
138
139 * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
140 src/autofit/afwarp.h (AF_WARPER_FLOOR): Updated.
141
1422015-03-01 Werner Lemberg <wl@gnu.org>
Werner Lemberg4b9234b2015-02-25 06:31:43 +0100143
Werner Lemberg851e8152015-03-01 19:27:09 +0100144 Various compiler warning fixes for `make multi'.
145
146 * src/autofit/afcjk.c (af_cjk_hints_compute_blue_edges),
147 src/autofit/aflatin.c (af_latin_hint_compute_blue_edges,
148 af_latin_hint_edges), src/autofit/aflatin2.c
149 (af_latin2_hints_compute_blue_edges, af_latin2_hint_edges): Declare
150 as `static'.
151
152 * src/cache/ftccmap.c (FTC_CMAP_QUERY_HASH, FTC_CMAP_NODE_HASH):
153 Removed. Unused.
154 * src/cache/ftcimage.c: Include FT_INTERNAL_OBJECTS_H.
155 * src/cache/ftcmanag.c (FTC_LRU_GET_MANAGER): Removed. Unused.
156
157 * src/cff/cf2intrp.c: Include `cf2intrp.h'.
158 * src/cff/cffdrivr.c (PAIR_TAG): Removed. Unused.
159
160 * src/gzip/ftgzip.c (NO_DUMMY_DECL): Removed. Unused.
161
162 * src/psaux/afmparse.c (afm_parser_read_int): Declare as `static'.
163
164 * src/pshinter/pshalgo.c (STRONGER, PSH_ZONE_MIN, PSH_ZONE_MAX):
165 Removed. Unused.
166
167 * src/raster/ftraster.c (Render_Glyph): Declare as `static'.
168
169 * src/sfnt/ttpost.c (load_format_20): Fix signedness warning.
170
171 * src/truetype/ttdriver.c (PAIR_TAG): Removed. Unused.
172 * src/truetype/ttsubpix.c (is_member_of_family_class,
173 is_member_of_style_class): Declare as `static'.
174
175 * src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Declare
176 as `static'.
177 * src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): Declare as
178 `static'.
179 (T1_FIELD_COUNT): Removed. Unused.
180 * src/type1/t1parse.h (T1_Done_Table): Removed. Unused.
181
182 * src/type42/t42parse.c (T1_Done_Table): Removed. Unused.
183
1842015-02-25 Werner Lemberg <wl@gnu.org>
185
Werner Lemberg04c22372015-02-25 11:20:20 +0100186 [psaux] Signedness fixes.
187
188 * include/internal/psaux.h, src/psaux/afmparse.c,
189 src/psaux/afmparse.h, src/psaux/psconv.c, src/psaux/psobjs.c,
190 src/psaux/t1cmap.c, src/psaux/t1decode.c: Apply.
191
1922015-02-25 Werner Lemberg <wl@gnu.org>
193
Werner Lembergd25ec162015-02-25 09:19:59 +0100194 [otvalid] Signedness fixes.
195
196 * src/otvalid/otvcommn.c, src/otvalid/otvgdef.c,
197 src/otvalid/otvgpos.c, src/otvalid/otvgsub.c, src/otvalid/otvmath.c:
198 Apply.
199
2002015-02-25 Werner Lemberg <wl@gnu.org>
201
Werner Lemberg5c9d9bf2015-02-25 08:13:40 +0100202 * src/bzip2/ftbzip2.c (ft_bzip2_alloc): Signedness fix.
203
2042015-02-25 Werner Lemberg <wl@gnu.org>
205
Werner Lemberg83d41812015-02-25 08:10:58 +0100206 [lzw] Signedness fixes.
207
208 * src/lzw/ftzopen.c, src/lzw/ftzopen.h: Apply.
209
2102015-02-25 Werner Lemberg <wl@gnu.org>
211
Werner Lemberg17b62912015-02-25 07:53:09 +0100212 [gxvalid] Signedness fixes.
213
214 * src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
215 src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
216 src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
217 src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
218 src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
219 src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
220 src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.
221
2222015-02-25 Werner Lemberg <wl@gnu.org>
223
Werner Lemberg24e4e962015-02-25 06:57:16 +0100224 [cache] Signedness fixes.
225
226 * src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c,
227 src/cache/ftcmanag.c, src/cache/ftcsbits.c: Apply.
228
2292015-02-25 Werner Lemberg <wl@gnu.org>
230
Werner Lemberg559727d2015-02-25 06:55:00 +0100231 Change dimension fields in `FTC_ImageTypeRec' to unsigned type.
232
233 This doesn't break ABI.
234
235 * include/ftcache.h (FTC_ImageTypeRec): Use unsigned types for
236 `width' and `height'.
237
238 * docs/CHANGES: Document it.
239
2402015-02-25 Werner Lemberg <wl@gnu.org>
241
Werner Lemberg4b9234b2015-02-25 06:31:43 +0100242 [cache] Don't use `labs'.
243
244 This is the only place in FreeType where this function was used.
245
246 * include/config/ftstdlib.h (ft_labs): Remove.
247
248 * src/cache/ftcimage.c (ftc_inode_weight): Replace `ft_labs' with
249 `FT_ABS'.
250
Werner Lemberg4d1f7af2015-02-23 07:04:36 +01002512015-02-23 Werner Lemberg <wl@gnu.org>
252
Werner Lemberg3aaebe32015-02-23 08:20:27 +0100253 [cache] Replace `FT_PtrDist' with `FT_Offset'.
254
255 * src/cache/ftccache.h (FTC_NodeRec): `FT_Offset' (a.k.a. `size_t')
256 is a better choice for `hash' to hold a pointer than `FT_PtrDist'
257 (a.k.a. `ptrdiff_t'), especially since the latter is signed,
258 causing zillions of signedness warnings. [Note that `hash' was of
Werner Lemberg17b62912015-02-25 07:53:09 +0100259 type `FT_UInt32' before the change to `FT_PtrDist'.]
Werner Lemberg3aaebe32015-02-23 08:20:27 +0100260 Update all users.
261
262 * src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c,
263 src/cache/ftcglyph.c, src/cache/ftcglyph.h: Updated.
264
2652015-02-23 Werner Lemberg <wl@gnu.org>
266
Werner Lemberg4d1f7af2015-02-23 07:04:36 +0100267 [smooth, raster] Re-enable standalone compilation.
268
269 * src/raster/ftraster.c (FT_RENDER_POOL_SIZE, FT_MAX)
270 [_STANDALONE_]: Define macros.
271
272 * src/smooth/ftgrays.c (FT_RENDER_POOL_SIZE, FT_MAX, FT_ABS,
273 FT_HYPOT) [_STANDALONE_]: Define macros.
274
Werner Lemberg03ccfd02015-02-22 08:25:16 +01002752015-02-22 Werner Lemberg <wl@gnu.org>
276
Werner Lembergcb13e712015-02-23 06:41:52 +0100277 [smooth] Signedness fixes.
278
279 * src/smooth/ftgrays.c, src/smooth/ftsmooth.c: Apply.
280
2812015-02-22 Werner Lemberg <wl@gnu.org>
282
Werner Lemberga974e9a2015-02-22 21:02:13 +0100283 * src/raster/ftraster.c: Use the file's typedefs everywhere.
284
2852015-02-22 Werner Lemberg <wl@gnu.org>
286
Werner Lembergb0ebcdc2015-02-22 20:42:49 +0100287 * src/sfnt/ttpost.c (load_format_20): Fix error tracing message.
288
289 Bug introduced 6 commits earlier.
290
2912015-02-22 Werner Lemberg <wl@gnu.org>
292
Werner Lemberg22b1d5c2015-02-22 20:41:03 +0100293 [pshinter] Fix thinko.
294
295 * src/pshinter/pshalgo.c (psh_glyph_find_strong_points): Correctly
296 check `count'.
297 Bug introduced two commits earlier.
298
2992015-02-22 Werner Lemberg <wl@gnu.org>
300
Werner Lembergca96fe02015-02-22 20:05:04 +0100301 [raster] Signedness fixes.
302
303 * src/raster/ftraster.c, src/raster/ftrend1.c: Apply.
304
3052015-02-22 Werner Lemberg <wl@gnu.org>
306
Werner Lemberg452066c2015-02-22 15:59:02 +0100307 [pshinter] Signedness fixes.
308
309 * src/pshinter/pshalgo.c, src/pshinter/pshglob.c,
310 src/pshinter/pshrec.c: Apply.
311
3122015-02-22 Werner Lemberg <wl@gnu.org>
313
Werner Lemberg41c2ed82015-02-22 15:57:47 +0100314 [pshinter] Use macros for (unsigned) flags, not enumerations.
315
316 * src/pshinter/pshalgo.h (PSH_Hint_Flags): Replace with macros.
317 Updated.
318 * src/pshinter/pshrec.h (PS_Hint_Flags): Replace with macros.
319
3202015-02-22 Werner Lemberg <wl@gnu.org>
321
Werner Lemberg25c2f882015-02-22 15:54:31 +0100322 * src/pshinter/pshrec.c: Simplify.
323 (ps_hints_open, ps_hints_stem): Remove switch statement.
324
3252015-02-22 Werner Lemberg <wl@gnu.org>
326
Werner Lemberg01f08422015-02-22 12:03:28 +0100327 [sfnt] Signedness fixes.
328
329 * src/sfnt/pngshim.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap.c,
330 src/sfnt/ttkern.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
331 src/sfnt/ttsbit.c: Apply.
332 * src/sfnt/sfdriver.c: Apply.
333 (sfnt_get_ps_name): Simplify.
334
3352015-02-22 Werner Lemberg <wl@gnu.org>
336
Werner Lemberg3c374c82015-02-22 09:16:53 +0100337 [bdf] Signedness fixes.
338
339 * src/bdf/bdf.h, src/bdf/bdfdrivr.c, src/bdf/bdfdrivr.h,
340 src/bdf/bdflib.c: Apply.
341
3422015-02-22 Werner Lemberg <wl@gnu.org>
343
Werner Lembergb13945a2015-02-22 09:15:47 +0100344 * src/bdf/bdflib.c (_bdf_atous): New function.
345 (_bdf_parse_glyphs, _bdf_parse_start): Use it.
346
3472015-02-22 Werner Lemberg <wl@gnu.org>
348
Werner Lemberg03ccfd02015-02-22 08:25:16 +0100349 [pcf] Signedness fixes.
350
351 * src/pcf/pcf.h, src/pcf/pcfdrivr.c: Apply.
352 * src/pcf/pcfread.c: Apply.
353 (pcf_get_encodings): Ignore invalid negative encoding offsets.
354
Werner Lemberg633a7292015-02-21 07:02:01 +01003552015-02-21 Werner Lemberg <wl@gnu.org>
356
Werner Lemberg3d7e53f2015-02-21 11:30:54 +0100357 * src/winfonts/winfnt.c: Signedness fixes.
358
3592015-02-21 Werner Lemberg <wl@gnu.org>
360
Werner Lemberg7b6b4172015-02-21 10:39:34 +0100361 [type42] Signedness fixes.
362
363 * src/type42/t42parse.c, src/type42/t42parse.h,
364 src/type42/t42types.h: Apply.
365
3662015-02-21 Werner Lemberg <wl@gnu.org>
367
Werner Lemberg8bfffb42015-02-21 09:52:29 +0100368 [pfr] Signedness fixes.
369
370 * src/pfr/pfrdrivr.c, src/pfr/pfrgload.c, src/pfr/pfrload.c,
371 src/pfr/pfrload.h, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c,
372 src/pfr/pfrtypes.h: Apply.
373
3742015-02-21 Werner Lemberg <wl@gnu.org>
375
Werner Lemberg633a7292015-02-21 07:02:01 +0100376 [cff] Minor signedness fixes related to last commit.
377
378 * src/cff/cf2ft.c, src/cff/cf2intrp.c, src/cff/cffgload.c: Apply.
379
Werner Lemberg3a8d0532015-02-20 08:35:32 +01003802015-02-20 Werner Lemberg <wl@gnu.org>
381
Werner Lembergc00b05f2015-02-20 20:42:55 +0100382 [cff] Thinkos in bias handling.
383
384 Only the final result is always positive.
385
386 Bug introduced three commits earlier.
387
388 * src/cff/cffgload.c, src/cff/cffgload.h: Apply.
389
3902015-02-20 Werner Lemberg <wl@gnu.org>
391
Werner Lemberg2bf03eb2015-02-20 20:14:11 +0100392 [cid] Fix signedness issues and emit some better error codes.
393
394 * src/cid/cidgload.c, src/cid/cidload.h, src/cid/cidobjs.c,
395 src/cid/cidparse.h: Apply.
396 * src/cid/cidload.c: Apply.
397 (parse_fd_array): Reject negative values for number of dictionaries.
398 * src/cid/cidparse.c: Apply.
399 (cid_parser_new): Reject negative values for hex data length.
400
4012015-02-20 Werner Lemberg <wl@gnu.org>
402
Werner Lembergeb05bfb2015-02-20 08:37:35 +0100403 [cff] Signedness fixes for new engine.
404
405 * src/cff/cf2arrst.c, src/cff/cf2fixed.h, src/cff/cf2ft.c,
406 src/cff/cf2ft.h, src/cff/cf2hints.c, src/cff/cf2intrp.c: Apply.
407
4082015-02-20 Werner Lemberg <wl@gnu.org>
409
Werner Lemberg3a8d0532015-02-20 08:35:32 +0100410 [cff] Signedness fixes for basic infrastructure and old engine.
411
412 * include/internal/pshints.h, src/cff/cffdrivr.c,
413 src/cff/cffgload.c, src/cff/cffgload.h, src/cff/cffload.c,
414 src/cff/cffobjs.c, src/cff/cffparse.c, src/pshinter/pshrec.c: Apply.
415
Werner Lemberg81e5ff52015-02-19 09:46:48 +01004162015-02-19 Werner Lemberg <wl@gnu.org>
417
Werner Lemberg3a1df3e2015-02-19 15:42:48 +0100418 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Ignore `countSizePairs'.
419
420 This is hard-coded to value 2 in `fvar' version 1.0 (and no newer
421 version exists), but some fonts set it incorrectly.
422
423 Problem reported by Adam Twardoch <adam@fontlab.com>.
424
4252015-02-19 Werner Lemberg <wl@gnu.org>
426
Werner Lemberg93a884c2015-02-19 14:11:16 +0100427 [cff] Emit better error code for invalid private dict size.
428
429 * src/cff/cffparse.c (cff_parse_private_dict): Reject negative
430 values for size and offset.
431
4322015-02-19 Werner Lemberg <wl@gnu.org>
433
Werner Lembergb57bb112015-02-19 10:44:18 +0100434 [autofit] Fix signedness issues.
435
436 * src/autofit/afangles.c, src/autofit/afcjk.c,
437 src/autofit/afglobal.c, src/autofit/afhints.c,
438 src/autofit/aflatin.c, src/autofit/aflatin2.c, src/autofit/afwarp.c,
439 src/autofit/hbshim.c: Apply.
440
4412015-02-19 Werner Lemberg <wl@gnu.org>
442
Werner Lemberg81e5ff52015-02-19 09:46:48 +0100443 [autofit] Use macros for (unsigned) flags, not enumerations.
444
445 This harmonizes with other code in FreeType (and reduces the number
446 of necessary casts to avoid compiler warnings).
447
448 * src/autofit/afblue.hin: Make flag macros unsigned.
449 * src/autofit/afblue.h: Regenerated.
450
451 * src/autofit/afcjk.h: Replace flag enumeration with macros.
452 * src/autofit/afcjk.c: Updated.
453
454 * src/autofit/afhints.h (AF_Flags, AF_Edge_Flags): Replace with
455 macros.
456 * src/autofit/afhints.c: Updated.
457
458 * src/autofit/aflatin.h: Replace flag enumerations with macros.
459 * src/autofit/aflatin.c, src/autofit/aflatin2.c: Updated.
460
461 * src/autofit/aftypes.h (AF_ScalerFlags): Replace with macros.
462
Werner Lemberg6a0ded72015-02-18 08:51:22 +01004632015-02-18 Werner Lemberg <wl@gnu.org>
464
Werner Lemberg3b5f3322015-02-18 11:45:22 +0100465 [type1] Fix signedness issues.
466
467 * include/internal/psaux.h, include/internal/t1types.h,
468 src/psaux/psobjs.c, src/psaux/psobjs.h, src/psaux/t1decode.c,
469 src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1parse.c: Apply.
470
4712015-02-18 Werner Lemberg <wl@gnu.org>
472
Werner Lemberg272e3cd2015-02-18 11:38:46 +0100473 [psaux, type1] Fix minor AFM issues.
474
475 * include/internal/t1types.h (AFM_KernPairRec): Make indices
476 unsigned.
477 Update users.
478 (AFM_FontInfoRec): Make element counters unsigned.
479 Update users.
480 * src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned
481 int.
482
483 * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs):
484 Reject negative values for number of kerning elements.
485
486 * src/type1/t1afm.c, src/tools/test_afm.c: Updated.
487
4882015-02-18 Werner Lemberg <wl@gnu.org>
489
Werner Lemberg6bd7d282015-02-18 09:22:06 +0100490 Don't use `FT_PtrDist' for lengths.
491
492 Use FT_UInt instead.
493
494 * include/internal/psaux.h (PS_Table_FuncsRec, PS_TableRec,
495 T1_DecoderRec): Do it.
496
497 * include/internal/t1types.h (T1_FontRec): Ditto.
498
499 * src/cid/cidload.c (cid_parse_dict): Updated.
500 * src/pfr/pfrload.c (pfr_extra_item_load_font_id): Ditto.
501 * src/psaux/psobjs.c (ps_table_add), src/psaux/psobjs.h: Ditto.
502 * src/type1/t1load.c (parse_blend_axis_types, parse_encoding,
503 parse_chharstrings, parse_dict): Ditto.
504 * src/type42/t42parse.c (t42_parse_encoding, t42_parse_charstrings,
505 t42_parse_dict): Ditto.
506
5072015-02-18 Werner Lemberg <wl@gnu.org>
508
Werner Lemberg6a0ded72015-02-18 08:51:22 +0100509 * src/type1/t1driver.c (t1_ps_get_font_value): Clean up.
510 This handles negative values better, avoiding many casts.
511
Werner Lemberg0a33a392015-02-17 08:03:05 +01005122015-02-17 Werner Lemberg <wl@gnu.org>
513
Werner Lembergd3240c52015-02-17 20:30:36 +0100514 [base] Fix Savannah bug #44284.
515
516 * src/base/ftcalc.c (FT_MulFix): Typos.
517
5182015-02-17 Werner Lemberg <wl@gnu.org>
519
Werner Lemberg1f7a4e12015-02-17 10:17:56 +0100520 [truetype] Finish compiler warning fixes for signedness issues.
521
522 * src/truetype/ttgxvar.c, src/truetype/ttsubpix.c,
523 src/truetype/ttsubpix.h: Apply.
524
5252015-02-17 Werner Lemberg <wl@gnu.org>
526
Werner Lemberg9daea2c2015-02-17 09:27:56 +0100527 * src/truetype/ttsubpix.c: Adding missing `static' keywords.
528
5292015-02-17 Werner Lemberg <wl@gnu.org>
530
Werner Lembergd9c3f152015-02-17 09:21:26 +0100531 [truetype] More signedness fixes.
532
533 * include/internal/tttypes.h, src/truetype/ttinterp.h,
534 src/truetype/ttobjs.h, src/truetype/ttinterp.c,
535 src/truetype/ttobjs.c: Apply.
536
5372015-02-17 Werner Lemberg <wl@gnu.org>
538
Werner Lemberg0a33a392015-02-17 08:03:05 +0100539 [truetype] Various signedness fixes.
540
541 * include/internal/ftgloadr.h, src/truetype/ttpload.c: Apply.
542
543 * src/truetype/ttgload.c: Apply.
544 (TT_Get_VMetrics): Protect against invalid ascenders and descenders
545 while constructing advance height.
546
Werner Lemberg587351b2015-02-16 07:03:22 +01005472015-02-16 Werner Lemberg <wl@gnu.org>
548
Werner Lemberg76abc752015-02-16 22:00:27 +0100549 [base] Finish compiler warning fixes for signedness issues.
550
551 * src/base/ftglyph.c, src/base/ftlcdfil.c, src/base/ftstroke.c:
552 Apply.
553
5542015-02-16 Werner Lemberg <wl@gnu.org>
555
Werner Lemberg10aa8582015-02-16 20:12:54 +0100556 * include/tttables.h (TT_OS2): `fsType' must be FT_UShort.
557
5582015-02-16 Werner Lemberg <wl@gnu.org>
559
Werner Lemberg2e814fc2015-02-16 20:05:08 +0100560 More minor signedness warning fixes.
561
562 * src/base/ftbbox.c, src/base/ftbitmap.c, src/base/fttrigon.c,
563 src/base/ftutil.c: Apply.
564
5652015-02-16 Werner Lemberg <wl@gnu.org>
566
Werner Lemberg82235d02015-02-16 19:35:16 +0100567 Next round of minor compiler warning fixes.
568
569 * include/internal/ftrfork.h (FT_RFork_Ref): Change `offset' member
570 type to `FT_Long'.
571 (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Add `static' keyword.
572
Werner Lemberg3aaebe32015-02-23 08:20:27 +0100573 * include/internal/ftstream.h (FT_Stream_Pos): Return `FT_ULong'.
Werner Lemberg82235d02015-02-16 19:35:16 +0100574
575 * src/base/ftoutln.c, src/base/ftrfork.c, src/base/ftstream.c:
576 Signedess fixes.
577
5782015-02-16 Werner Lemberg <wl@gnu.org>
579
Werner Lemberg3cfa4d12015-02-16 17:59:06 +0100580 Various minor signedness fixes.
581
582 * include/ftadvanc.h, include/internal/ftobjs.h,
583 src/base/ftgloadr.c, src/base/ftobjs.c: Apply.
584
5852015-02-16 Werner Lemberg <wl@gnu.org>
586
Werner Lemberg6f325c22015-02-16 11:31:32 +0100587 New `TYPEOF' macro.
588
589 This helps suppress signedness warnings, avoiding issues with
590 implicit conversion changes.
591
592 * include/config/ftconfig.h, builds/unix/ftconfig.in,
593 builds/vms/ftconfig.h (TYPEOF): Define.
594
595 * include/internal/ftobjs.h (FT_PAD_FLOOR, FT_PIX_FLOOR),
596 src/autofit/afwarp.h (AF_WARPER_FLOOR): Use it.
597
5982015-02-16 Werner Lemberg <wl@gnu.org>
599
Werner Lemberg1f377f02015-02-16 08:37:09 +0100600 * src/base/ftsystem.c: Use casts in standard C function wrappers.
601 (ft_alloc, ft_realloc, ft_ansi_stream_io, FT_Stream_Open): Do it.
602
6032015-02-16 Werner Lemberg <wl@gnu.org>
604
Werner Lemberg0814b802015-02-16 07:29:53 +0100605 Fix Savannah bug #44261.
606
607 * builds/unix/detect.mk (setup) [unix]: Set `CONFIG_SHELL' in the
608 environment also while calling the configure script.
609
6102015-02-16 Werner Lemberg <wl@gnu.org>
611
Werner Lemberg587351b2015-02-16 07:03:22 +0100612 * include/internal/ftmemory.h: Add some `FT_Offset' casts.
613 (FT_MEM_SET, FT_MEM_COPY, FT_MEM_MOVE, FT_ARRAY_ZERO, FT_ARRAY_COPY,
614 FT_MEM_MOVE): Do it.
615
Werner Lemberg6d7d6362015-02-15 12:30:42 +01006162015-02-15 Werner Lemberg <wl@gnu.org>
617
Werner Lemberg48186b82015-02-16 06:37:36 +0100618 [base] Clean up signedness issues in `ftdbgmem.c'.
619
620 Also fix other minor issues.
621
622 * src/base/ftdbgmem.c (FT_MemTableRec): Replace all FT_ULong types
623 with FT_Long for consistency.
624 (ft_mem_primes): Change type to `FT_Int'.
625 (ft_mem_closest_prime, ft_mem_table_set): Updated.
626
627 (ft_mem_debug_panic, ft_mem_debug_alloc, ft_mem_debug_free,
628 ft_mem_debug_realloc): Use `static' keyword and fix signedness
629 warnings where necessary.
630
631 (ft_mem_table_resize, ft_mem_table_new, ft_mem_table_destroy,
632 ft_mem_table_get_nodep, ft_mem_debug_init, FT_DumpMemory): Fix types
633 and add or remove casts to avoid signedness warnings.
634
6352015-02-15 Werner Lemberg <wl@gnu.org>
636
Werner Lemberg6d7d6362015-02-15 12:30:42 +0100637 [base] Clean up signedness in arithmetic functions.
638
639 This makes the code more readable and reduces compiler warnings.
640
641 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round, FT_MulFix,
642 FT_DivFix): Convert input parameters to unsigned, do the
643 computation, then convert the result back to signed.
644 (ft_corner_orientation): Fix casts.
645
Werner Lemberg92359bd2015-02-07 09:47:23 +01006462015-02-07 Werner Lemberg <wl@gnu.org>
647
648 [sfnt] Fix Savannah bug #44184.
649
650 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir): No
651 longer reject `htmx' and `vmtx' tables with invalid length but
652 sanitize them.
653
Jon Anderson416d8792015-02-06 10:16:45 +01006542015-02-06 Jon Anderson <jon@websupergoo.com>
655
656 [truetype] Fix regression in the incremental glyph loader.
657
658 * src/truetype/ttgload.c (load_truetype_glyph): For incremental
659 fonts, the glyph index may be greater than the number of glyphs
660 indicated, so guard the check with a preprocessor conditional.
661
Werner Lembergb6cb4992015-02-06 08:46:06 +01006622015-02-06 Werner Lemberg <wl@gnu.org>
663
664 [autofit] Fix potential memory leak.
665
666 While this doesn't show up with FreeType, exactly the same code
667 leaks with ttfautohint's modified auto-hinter code (which gets used
668 in a slightly different way).
669
670 It certainly doesn't harm since it is similar to already existing
671 checks in the code for embedded arrays.
672
673 * src/autofit/afhints.c (af_glyph_hints_reload): Set `max_contours'
674 and `max_points' for all cases.
675
Werner Lemberg19146a52015-01-31 11:01:33 +01006762015-01-31 Werner Lemberg <wl@gnu.org>
677
678 [autofit] Add support for Thai script.
679
680 Thanks to Ben Mitchell <ben@rosettatype.com> for guidance with blue
681 zone characters!
682
683 * src/autofit/afblue.dat: Add blue zone data for Thai.
684
685 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
686
687 * src/autofit/afscript.h: Add Thai standard characters.
688
689 * src/autofit/afranges.c: Add Thai data.
690
691 * src/autofit/afstyles.h: Add Thai data.
692
Behdad Esfahbod264b5e42015-01-23 21:23:55 +01006932015-01-23 Behdad Esfahbod <behdad@behdad.org>
694
695 [raster] Handle `FT_RASTER_FLAG_AA' correctly.
696
697 This fixes a breakage caused by the commit `[raster] Remove
698 5-level gray AA mode from monochrome rasterizer.'.
699
Werner Lembergd2c531e2015-01-23 22:37:42 +0100700 Problem reported by Markus Trippelsdorf <markus@trippelsdorf.de>.
Behdad Esfahbod264b5e42015-01-23 21:23:55 +0100701
702 * src/raster/ftraster.c (ft_black_render): Handle
703 `FT_RASTER_FLAG_AA'.
704
705 * src/raster/ftrend1.c (ft_raster1_render): Remove gray AA mode
706 remnants.
707
Werner Lemberg79a5ac62015-01-18 07:30:04 +01007082015-01-18 Werner Lemberg <wl@gnu.org>
709
710 * src/base/ftobjs.c (FT_New_Library): Fix compiler warning.
711
Chris Liddell942aa5f2015-01-18 07:29:48 +01007122015-01-18 Chris Liddell <chris.liddell@artifex.com>
713
714 [raster] Fix Savannah bug #44022.
715
716 Add fallback for glyphs with degenerate bounding boxes.
717
718 If a glyph has only one very narrow feature, the bbox can end up
719 with either the width or height of the bbox being 0, in which case
720 no raster memory is allocated and no attempt is made to render the
721 glyph. This is less than ideal when the drop-out compensation in
722 the rendering code would actually result in the glyph being
723 rendered.
724
725 This problem can be observed with the `I' glyph (gid 47) in the
726 Autodesk RomanS TrueType font.
727
728 * src/raster/ftrend1.c (ft_raster1_render): Add a fallback if either
729 dimension is zero to explicitly round up/down (instead of simply
730 round).
731
Werner Lemberg50be00d2015-01-17 20:38:31 +01007322015-01-17 Werner Lemberg <wl@gnu.org>
733
734 Add some tools to handle yearly copyright notice updates.
735
736 We are now following the GNU guidelines: A new release automatically
737 means that the copyright year of all affected files gets updated; it
738 is no longer used to track years of modification changes.
739
740 * src/tools/update-copyright-year: New Perl script.
741 * src/tools/update-copyright: New shell script that calls
742 `update-copyright-year' on all files.
743 * src/tools/no-copyright: Exceptions that should not be handled by
744 `update-copyright'
745
Werner Lemberg4eff8542015-01-14 20:06:19 +01007462015-01-14 Werner Lemberg <wl@gnu.org>
747
748 * docs/CHANGES: Updated, using a description from Behdad.
749
Behdad Esfahbod3f9b3d82015-01-14 15:48:12 +01007502015-01-14 Behdad Esfahbod <behdad@behdad.org>
751
Behdad Esfahbod48c86622015-01-14 19:38:36 +0100752 * src/autofit/afmodule.c (af_autofitter_done): Fix compiler warning.
753
7542015-01-14 Behdad Esfahbod <behdad@behdad.org>
755
Behdad Esfahbod56ddafa2015-01-14 19:36:02 +0100756 [autofit] Add embedded array of segments and edges.
757
758 Avoids multiple mallocs per typical glyphs.
759
760 With this and recent changes to avoid mallocs, the thread-safe
761 stack-based loader is now as fast as the previous model that had one
762 cached singleton.
763
764 * src/autofit/afhints.h (AF_SEGMENTS_EMBEDDED, AF_EDGES_EMBEDDED):
765 New macros.
766 (AF_AxisHintsRec): Add two arrays for segments and edges.
767
768 * src/autofit/afhints.c (af_axis_hints_new_segment): Only allocate
769 data if number of segments exceeds given threshold value.
770 (af_axis_hints_new_edge): Only allocate data if number of edges
771 exceeds given threshold value.
772 (af_glyph_hints_done): Updated.
773
7742015-01-14 Behdad Esfahbod <behdad@behdad.org>
775
Behdad Esfahbod6f16b102015-01-14 19:26:49 +0100776 [autofit] Add embedded arrays for points and contours.
777
778 This avoids at least two malloc calls for typical glyphs.
779
780 * src/autofit/afhints.h (AF_POINTS_EMBEDDED, AF_CONTOURS_EMBEDDED):
781 New macros.
782 (AF_GlyphHintsRec): Add two arrays for contours and points.
783
784 * src/autofit/afhints.c (af_glyph_hints_init, af_glyph_hints_done):
785 Updated.
786 (af_glyph_hints_reload): Only allocate data if number of contours or
787 points exceeds given threshold values.
788
7892015-01-14 Behdad Esfahbod <behdad@behdad.org>
790
Behdad Esfahbodc2733652015-01-14 19:16:12 +0100791 [autofit] Allocate hints object on the stack.
792
793 This avoids one malloc per load.
794
795 * src/autofit/afloader.h (AF_LoaderRec): Change type of `hints' to
796 `AF_GlyphHints'.
797 Update prototype.
798
799 * src/autofit/afloader.c (af_loader_init): Use `AF_GlyphHints'
800 parameter instead of `FT_Memory'.
801 (af_loader_done): Directly reset `load_hints'.
802 (af_loader_load_g): Updated.
803
804 * src/autofit/afmodule.c (af_autofitter_load_glyph): Use local
805 `hints' object.
806
8072015-01-14 Behdad Esfahbod <behdad@behdad.org>
808
Behdad Esfahboda4117fb2015-01-14 19:07:54 +0100809 [autofit] Reuse slot glyph loader.
810
811 No need to create a new glyph loader; we can reuse the one from
812 `slot->internal->loader'. It's hard to tell why it was written that
813 way originally, but new code looks sound and correct to me, and
814 avoids lots of allocations.
815
816 * src/autofit/afloader.c (af_loader_init): Change return type to
817 `void'.
818 Don't call `FT_GlyphLoader_New'.
819 (af_loader_reset): Don't call `FT_GlyphLoader_Rewind'.
820 (af_loader_load_g): Update code to use `internal->loader', which
821 doesn't need copying of data.
822
823 * src/autofit/afloader.h (AF_LoaderRec): Remove `gloader' member.
824 Update prototype.
825
826 * src/autofit/afmodule.c (af_autofitter_load_glyph): Updated.
827
8282015-01-14 Behdad Esfahbod <behdad@behdad.org>
829
Behdad Esfahbodae6699f2015-01-14 18:55:39 +0100830 [autofit] Remove (unused) support for composite glyphs.
831
832 We never have to deal with composite glyphs in the autohinter, as
833 those will be loaded into FORMAT_OUTLINE by the recursed
834 `FT_Load_Glyph' function.
835
836 In the rare cases that FT_LOAD_NO_RECURSE is set, it will imply
837 FT_LOAD_NO_SCALE as per `FT_Load_Glyph', which then implies
838 FT_LOAD_NO_HINTING:
839
840 /* resolve load flags dependencies */
841
842 if ( load_flags & FT_LOAD_NO_RECURSE )
843 load_flags |= FT_LOAD_NO_SCALE |
844 FT_LOAD_IGNORE_TRANSFORM;
845
846 if ( load_flags & FT_LOAD_NO_SCALE )
847 {
848 load_flags |= FT_LOAD_NO_HINTING |
849 FT_LOAD_NO_BITMAP;
850
851 load_flags &= ~FT_LOAD_RENDER;
852 }
853
854 and as such the auto-hinter is never called. Thus, the recursion in
855 `af_loader_load_g' never actually happens. So remove the depth
856 counter as well.
857
858 * src/autofit/afloader.c (af_loader_load_g): Remove `depth'
859 parameter.
860 <FT_GLYPH_FORMAT_COMPOSITE>: Remove associated code.
861 (af_loader_load_glyph): Updated.
862
8632015-01-14 Behdad Esfahbod <behdad@behdad.org>
864
Behdad Esfahbodc242fe42015-01-14 18:48:14 +0100865 [raster] Fix uninitialized memory access.
866
867 Apparently `ras.cProfile' might be uninitialized. This will be the
868 case if `ras.top == ras.cProfile->offset', as can be seen in
869 `End_Profile'. The overshoot code introduced in a change `Fix B/W
870 rasterization of subglyphs with different drop-out modes.' (from
871 2009-06-18) violated this, accessing `ras.cProfile->flags'
872 unconditionally just before calling `End_Profile' (which then
873 detected that `cProfile' is uninitialized and didn't touch it).
874
875 This was harmless, and was not detected by valgrind before because
876 the objects were allocated on the `raster_pool', which was always
877 initialized. With recent change to allocate raster buffers on the
878 stack, valgrind now reported this invalid access.
879
880 * src/raster/ftraster.c (Convert_Glyph): Don't access an
881 uninitialized `cProfile'.
882
8832015-01-14 Behdad Esfahbod <behdad@behdad.org>
884
Behdad Esfahbodb2ba6862015-01-14 18:43:13 +0100885 [smooth] Fix uninitialized memory access.
886
887 Looks like `ras.span_y' could always be used without initialization.
888 This was never detected by valgrind before because the library-wide
889 `raster_pool' was used for the worker object and `raster_pool' was
890 originally zero'ed. But subsequent reuses of it were using `span_y'
891 uninitialized. With the recent change to not use `render_pool' and
892 allocate worker and buffer on the stack, valgrind now detects this
893 uninitialized access.
894
895 * src/smooth/ftgrays.c (gray_raster_render): Initialize
896 `ras.span_y'.
897
8982015-01-14 Behdad Esfahbod <behdad@behdad.org>
899
Behdad Esfahbod603292d2015-01-14 18:35:56 +0100900 [base] Don't initialize unused `driver->glyph_loader'.
901
902 * src/base/ftobjs.c (Destroy_Driver): Don't call
903 `FT_GlyphLoader_Done'.
904 (FT_Add_Module): Don't call `FT_GlyphLoader_New'.
905
9062015-01-14 Behdad Esfahbod <behdad@behdad.org>
907
Behdad Esfahbod51634252015-01-14 18:30:59 +0100908 [base] Don't allocate `library->raster_pool' anymore.
909
910 It's unused after the following commits:
911
912 [raster] Allocate render pool for mono rasterizer on the stack.
913 [raster] Remove 5-level gray AA mode from monochrome rasterizer.
914
915 The value of FT_RENDER_POOL_SIZE still serves the purpose it used to
916 serve, which is, to adjust the pool size. But the pool is now
917 allocated on the stack on demand.
918
919 * src/base/ftobjs.c (FT_New_Library, FT_Done_Library): Implement.
920
9212015-01-14 Behdad Esfahbod <behdad@behdad.org>
922
Behdad Esfahbod6dfdaf42015-01-14 18:21:13 +0100923 [base] Do not reorder library->renderers upon use.
924
925 Instead of keeping `library->renderers' in a MRU order, just leave
926 it as-is. The MRU machinery wasn't thread-safe.
927
928 With this patch, rasterizing glyphs from different faces from
929 different threads doesn't fail choosing rasterizer
930 (FT_Err_Cannot_Render_Glyph).
931
932 Easiest to see that crash was to add a `printf' (or otherwise let
933 thread yield in FT_Throw with debugging enabled).
934
935 * src/base/ftobjs.c (FT_Render_Glyph_Internal), src/base/ftoutln.c
936 (FT_Outline_Render): Don't call `FT_Set_Renderer'.
937
9382015-01-14 Behdad Esfahbod <behdad@behdad.org>
939
Behdad Esfahboda773c302015-01-14 18:16:20 +0100940 [raster] Allocate render pool for mono rasterizer on the stack.
941
942 Instead of using the `render_pool' member of `FT_Library' that is
943 provided down to the rasterizer, completely ignore that and allocate
944 needed objects on the stack instead.
945
946 With this patch, rasterizing glyphs from different faces from
947 different threads doesn't crash in the monochrome rasterizer.
948
949 * src/raster/ftraster.c (black_TRaster): Remove `buffer',
950 `buffer_size', and `worker' members.
951
952 (ft_black_render): Create `buffer' locally.
953 (ft_black_reset): Updated.
954
9552015-01-14 Behdad Esfahbod <behdad@behdad.org>
956
Behdad Esfahbod8dc86352015-01-14 18:06:22 +0100957 [raster] Remove 5-level gray AA mode from monochrome rasterizer.
958
959 It was off by default and couldn't be turned on at runtime. And the
960 smooth rasterizer superceded it over ten years ago. No point in
961 keeping. Comments suggested that it was there for compatibility
962 with FreeType 1.
963
964 550 lines down.
965
966 * src/raster/ftraster.c (FT_RASTER_OPTION_ANTI_ALIASING,
967 RASTER_GRAY_LINES): Remove macros and all associated code.
968
969 (black_TWorker): Remove `gray_min_x' and `gray_max_x'.
970 (black_TRaster): Remove `grays' and `gray_width'.
971
972 (Vertical_Sweep_Init, Vertical_Sweep_Span, Vertical_Sweep_Drop,
973 ft_black_render): Updated.
974
975 * src/raster/ftrend1.c (ft_raster1_render): Simplify code.
976 (ft_raster5_renderer_class): Removed.
977
9782015-01-14 Behdad Esfahbod <behdad@behdad.org>
979
Behdad Esfahbod747ae2c2015-01-14 17:54:26 +0100980 [smooth] Allocate render pool for smooth rasterizer on the stack.
981
982 Instead of using the `render_pool' member of `FT_Library' that is
983 provided down to the rasterizer, completely ignore that and allocate
984 needed objects on the stack instead.
985
986 With this patch, rasterizing glyphs from different faces from
987 different threads doesn't crash in the smooth rasterizer.
988
989 Bugs:
990
991 https://bugzilla.redhat.com/show_bug.cgi?id=678397
992 https://bugzilla.redhat.com/show_bug.cgi?id=1004315
993 https://bugzilla.redhat.com/show_bug.cgi?id=1165471
994 https://bugs.freedesktop.org/show_bug.cgi?id=69034
995
996 * src/smooth/ftgrays.c (gray_TRaster): Remove `buffer',
997 `buffer_size', `band_size', and `worker' members.
998
999 (gray_raster_render): Create `buffer', `buffer_size', and
1000 `band_size' locally.
1001 (gray_raster_reset): Updated.
1002
10032015-01-14 Behdad Esfahbod <behdad@behdad.org>
1004
Behdad Esfahbod531d4632015-01-14 17:46:55 +01001005 [truetype] Allocate TT_ExecContext in TT_Size instead of TT_Driver.
1006
1007 Previously the code had stipulation for using a per-TT_Size exec
1008 context if `size->debug' was true. But there was no way that
1009 `size->debug' could *ever* be true. As such, the code was always
1010 using the singleton `TT_ExecContext' that was stored in `TT_Driver'.
1011 This was, clearly, not threadsafe.
1012
1013 With this patch, loading glyphs from different faces from different
1014 threads doesn't crash in the bytecode loader code.
1015
1016 * src/truetype/ttobjs.h (TT_SizeRec): Remove `debug' member.
1017 (TT_DriverRec): Remove `context' member.
1018
1019 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Remove
1020 `TT_ExecContext' code related to a global `TT_Driver' object.
1021
1022 (tt_driver_done): Don't remove `TT_ExecContext' object here but ...
1023 (tt_size_done_bytecode): ... here.
1024
1025 (tt_driver_init): Don't create `TT_ExecContext' object here but ...
1026 (tt_size_init_bytecode): ... here, only on demand.
1027
1028 * src/truetype/ttinterp.c (TT_Run_Context): Remove defunct debug
1029 code.
1030 (TT_New_Context): Remove `TT_ExecContext' code related to a global
1031 `TT_Driver' object.
1032
1033 * src/truetype/ttinterp.h: Updated.
1034
1035 * src/truetype/ttgload.c (TT_Hint_Glyph, tt_loader_init): Updated.
1036
10372015-01-14 Behdad Esfahbod <behdad@behdad.org>
1038
Behdad Esfahbod89bc8d42015-01-14 16:01:19 +01001039 [autofit] Allocate AF_Loader on the stack instead of AF_Module.
1040
1041 Stop sharing a global `AF_Loader'. Allocate one on the stack during
1042 glyph load.
1043
1044 Right now this results in about 25% slowdown, to be fixed in a
1045 following commit.
1046
1047 With this patch loading glyphs from different faces from different
1048 threads doesn't immediately crash in the autohinting loader code.
1049
1050 Bugs:
1051
1052 https://bugzilla.redhat.com/show_bug.cgi?id=1164941
1053
1054 * src/autofit/afloader.c (af_loader_init): Pass
1055 `AF_Loader' and `FT_Memory' instead of `AF_Module' as arguments.
1056 (af_loader_reset, af_loader_load_glyph): Also pass `loader' as
1057 argument.
1058 (af_loader_done): Use `AF_Loader' instead of `AF_Module' as
1059 argument.
1060
1061 * src/autofit/afmodule.c (af_autofitter_init): Don't call
1062 `af_loader_init'.
1063 (af_autofitter_done): Don't call `af_loader_done'.
1064 (af_autofitter_load_glyph): Use a local `AF_Loader' object.
1065
1066 * src/autofit/afloader.h: Include `afmodule.h'.
1067 Update prototypes.
1068 Move typedef for `AF_Module' to...
1069
1070 * src/autofit/afmodule.h: ... this place.
1071 No longer include `afloader.h'.
1072
10732015-01-14 Behdad Esfahbod <behdad@behdad.org>
1074
Behdad Esfahbod3f9b3d82015-01-14 15:48:12 +01001075 * src/type42/t42objs.h (T42_DriverRec): Remove unused member.
1076
Werner Lemberg36d03c92015-01-12 11:26:30 +010010772015-01-12 Werner Lemberg <wl@gnu.org>
1078
1079 Fix Savannah bug #43976.
1080
1081 Assure that FreeType's internal include directories are found before
1082 `CPPFLAGS' (which might be set by the user in the environment), and
1083 `CPPFLAGS' before `CFLAGS'.
1084
1085 * builds/freetype.mk (FT_CFLAGS): Don't add `INCLUDE_FLAGS'.
1086 (FT_COMPILE): Make this a special variable for compiling only the
1087 files handled in `freetype.mk'.
1088 (.c.$O): Removed, unused.
1089
1090 * src/*/rules.mk (*_COMPILE): Fix order of include directories.
1091
Werner Lembergd03a67a2015-01-11 08:39:14 +010010922015-01-11 Werner Lemberg <wl@gnu.org>
1093
Werner Lemberg95b57052015-01-11 09:50:49 +01001094 [truetype] Prettyfing.
1095
1096 * src/truetype/ttinterp.c (project, dualproj, fast_project,
1097 fast_dualproj): Rename to...
1098 (PROJECT, DUALPROJ, FAST_PROJECT, FAST_DUALPROJ): ... this.
1099
11002015-01-11 Werner Lemberg <wl@gnu.org>
1101
Werner Lembergea173c02015-01-11 08:58:54 +01001102 * src/truetype/ttinterp.c (Ins_JROT, Ins_JROF): Simplify.
1103
1104 Based on a patch from Behdad.
1105
11062015-01-11 Werner Lemberg <wl@gnu.org>
1107
Werner Lemberg628578c2015-01-11 08:53:31 +01001108 * src/truetype/ttinterp.c (Ins_SxVTL): Simplify function call.
1109
11102015-01-11 Werner Lemberg <wl@gnu.org>
1111
Werner Lemberg08e79092015-01-11 08:45:50 +01001112 * src/truetype/ttinterp.c (Normalize): Remove unused argument.
1113
11142015-01-11 Werner Lemberg <wl@gnu.org>
1115
Werner Lembergd03a67a2015-01-11 08:39:14 +01001116 [truetype] More macro expansions.
1117
Werner Lemberg4aaadf42015-01-11 08:42:28 +01001118 * src/truetype/ttinterp.c (FT_UNUSED_EXEC): Remove macro by
1119 expansion.
1120
11212015-01-11 Werner Lemberg <wl@gnu.org>
1122
1123 [truetype] More macro expansions.
1124
Werner Lembergd03a67a2015-01-11 08:39:14 +01001125 * src/truetype/ttinterp.c (INS_ARG): Remove macro by expansion,
1126 adjusting funtion calls where necessary.
1127 (FT_UNUSED_ARG): Removed, no longer needed.
1128
Werner Lemberg1b4d68c2015-01-10 19:56:28 +010011292015-01-10 Werner Lemberg <wl@gnu.org>
1130
Werner Lembergeb341362015-01-11 00:23:27 +01001131 [truetype] More macro expansions.
1132
1133 Based on a patch from Behdad.
1134
1135 * src/truetype/ttinterp.c (DO_*): Expand macros into corresponding
1136 `Ins_*' functions.
1137 (TT_RunIns): Replace `DO_*' macros with `Ins_*' function calls.
1138 (ARRAY_BOUND_ERROR): Remove second definition, which is no longer
1139 needed.
1140 (Ins_SVTCA, Ins_SPVTCA, Ins_SFVTCA): Replaced with...
1141 (Ins_SxyTCA): New function.
1142
11432015-01-10 Werner Lemberg <wl@gnu.org>
1144
Werner Lemberg01be1302015-01-10 23:05:37 +01001145 [truetype] Remove TT_CONFIG_OPTION_INTERPRETER_SWITCH.
1146
1147 Behdad suggested this code simplification, and nobody objected...
1148
1149 * include/config/ftoption.h, devel/ftoption.h
1150 (TT_CONFIG_OPTION_INTERPRETER_SWITCH): Remove.
1151
1152 * src/truetype/ttinterp.c [TT_CONFIG_OPTION_INTERPRETER_SWITCH]:
1153 Remove related code.
1154 (ARRAY_BOUND_ERROR): Use do-while loop.
1155
11562015-01-10 Werner Lemberg <wl@gnu.org>
1157
Werner Lembergfae0c812015-01-10 20:23:10 +01001158 [truetype] More macro expansions.
1159
Werner Lemberg6cc1f122015-01-10 21:56:59 +01001160 * src/truetype/ttinterp.c, src/truetype/ttinterp.h (EXEC_ARG_,
1161 EXEC_ARG): Remove by replacing with expansion.
1162
11632015-01-10 Werner Lemberg <wl@gnu.org>
1164
1165 [truetype] More macro expansions.
1166
Werner Lemberg24681452015-01-10 21:53:48 +01001167 Based on a patch from Behdad.
1168
1169 * src/truetype/ttinterp.c (SKIP_Code, GET_ShortIns, NORMalize,
1170 SET_SuperRound, ROUND_None, INS_Goto_CodeRange, CUR_Func_move,
1171 CUR_Func_move_orig, CUR_Func_round, CUR_Func_cur_ppem,
1172 CUR_Func_read_cvt, CUR_Func_write_cvt, CUR_Func_move_cvt,
1173 CURRENT_Ratio, INS_SxVTL, COMPUTE_Funcs, COMPUTE_Round,
1174 COMPUTE_Point_Displacement, MOVE_Zp2_Point): Remove by replacing
1175 with expansion.
1176
1177 (Cur_Func_project, CUR_Func_dualproj, CUR_fast_project,
1178 CUR_fast_dualproj): Replace with macros `project', `dualproj',
1179 `fast_project', `fast_dualproj'.
1180
11812015-01-10 Werner Lemberg <wl@gnu.org>
1182
1183 [truetype] More macro expansions.
1184
Werner Lembergfae0c812015-01-10 20:23:10 +01001185 * src/truetype/ttinterp.c (EXEC_OP_, EXEC_OP): Remove by replacing
1186 with expansion.
1187
11882015-01-10 Werner Lemberg <wl@gnu.org>
1189
Werner Lemberg5a752f32015-01-10 20:08:35 +01001190 [truetype] Remove code for static TrueType interpreter.
1191
1192 This is a follow-up patch.
1193
1194 * src/truetype/ttinterp.c, src/truetype/ttinterp.h
1195 [TT_CONFIG_OPTION_STATIC_INTERPRETER,
1196 TT_CONFIG_OPTION_STATIC_RASTER]: Remove macros and related code.
1197
11982015-01-10 Werner Lemberg <wl@gnu.org>
1199
Werner Lemberg1b4d68c2015-01-10 19:56:28 +01001200 * src/truetype/ttinterp.c (CUR): Remove by replacing with expansion.
1201
1202 This starts a series of patches that simplifies the code of the
1203 bytecode interpreter.
1204
Werner Lemberg232bd942014-12-30 21:44:51 +010012052014-12-30 Werner Lemberg <wl@gnu.org>
1206
1207 * Version 2.5.5 released.
1208 =========================
1209
1210
1211 Tag sources with `VER-2-5-5'.
1212
1213 * docs/VERSION.DLL: Update documentation and bump version number to
1214 2.5.5.
1215
1216 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1217 builds/windows/vc2005/index.html,
1218 builds/windows/vc2008/freetype.vcproj,
1219 builds/windows/vc2008/index.html,
1220 builds/windows/vc2010/freetype.vcxproj,
1221 builds/windows/vc2010/index.html,
1222 builds/windows/visualc/freetype.dsp,
1223 builds/windows/visualc/freetype.vcproj,
1224 builds/windows/visualc/index.html,
1225 builds/windows/visualce/freetype.dsp,
1226 builds/windows/visualce/freetype.vcproj,
1227 builds/windows/visualce/index.html,
1228 builds/wince/vc2005-ce/freetype.vcproj,
1229 builds/wince/vc2005-ce/index.html,
1230 builds/wince/vc2008-ce/freetype.vcproj,
1231 builds/wince/vc2008-ce/index.html: s/2.5.4/2.5.5/, s/254/255/.
1232
1233 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
1234
1235 * builds/unix/configure.raw (version_info): Set to 17:4:11.
1236 * CMakeLists.txt (VERSION_PATCH): Set to 5.
1237 * docs/CHANGES: Updated.
1238
1239 * builds/toplevel.mk (dist): Fix typos.
1240
Alexei Podtelezhnikov70241552014-12-24 12:11:46 -050012412014-12-24 Alexei Podtelezhnikov <apodtele@gmail.com>
1242
1243 [base] Formatting and nanooptimizations.
1244
1245 * src/base/ftcalc.c,
1246 * src/base/fttrigon.c: Revise sign restoration.
1247
Werner Lemberg06842c72014-12-13 07:42:51 +010012482014-12-13 Werner Lemberg <wl@gnu.org>
1249
1250 * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from 2014-12-08.
1251
Werner Lembergb9438112014-12-11 13:33:14 +010012522014-12-11 Werner Lemberg <wl@gnu.org>
1253
Werner Lemberg82119502014-12-11 22:27:06 +01001254 * builds/toplevel.mk (dist): Use older POSIX standard for `tar'.
1255
1256 Apparently, BSD tar isn't capable yet of handling POSIX-1.2001
1257 (contrary to GNU tar), so force the POSIX-1.1988 format.
1258
1259 Problem reported by Stephen Fisher <sfisher@SDF.ORG>.
1260
12612014-12-11 Werner Lemberg <wl@gnu.org>
1262
Werner Lemberg812ed342014-12-11 14:07:29 +01001263 * src/type42/t42parse.c (t42_parse_sfnts): Reject invalid TTF size.
1264
12652014-12-11 Werner Lemberg <wl@gnu.org>
1266
Werner Lembergc9ca6ff2014-12-11 13:39:39 +01001267 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix off-by-one check.
1268
1269 Problem reported by Dennis Felsing <dennis@felsin9.de>.
1270
12712014-12-11 Werner Lemberg <wl@gnu.org>
1272
Werner Lembergb9438112014-12-11 13:33:14 +01001273 * src/type42/t42parse.c (t42_parse_sfnts): Check `string_size'.
1274
1275 Problem reported by Dennis Felsing <dennis@felsin9.de>.
1276
suzuki toshiya2b592822014-12-10 00:27:41 +090012772014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1278
suzuki toshiya9bd1e552014-12-09 14:51:52 +09001279 [gxvalid] Fix a naming convention conflicting with ftvalid.
1280
1281 See previous changeset for otvalid.
1282
1283 * src/gxvalid/{gxvcommn.h, gxvmort.h, gxvmorx.h}: Replace
1284 `valid' by `gxvalid'.
1285 * src/gxvalid/{gxvbsln.c, gxvcommn.c, gxvfeat.c, gxvjust.c,
1286 gxvkern.c, gxvlcar.c, gxvmort.c, gxvmort0.c, gxvmort1.c,
1287 gxvmort2.c, gxvmort4.c, gxvmort5.c, gxvmorx.c, gxvmorx0.c,
1288 gxvmorx1.c, gxvmorx2.c, gxvmorx4.c, gxvmorx5.c, gxvopbd.c,
1289 gxvprop.c, gxvtrak.c}: Replace `valid' by `gxvalid' if
1290 it is typed as GXV_Validator.
1291
12922014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1293
suzuki toshiya51abdf62014-12-09 00:58:04 +09001294 [otvalid] Fix a naming convention conflicting with ftvalid.
1295
1296 Some prototypes in ftvalid.h use `valid' for the variables
1297 typed as FT_Validator. Their implementations in src/base/
1298 ftobjs.c and utilizations in src/sfnt/ttcmap.c do similar.
1299
1300 Some macros in otvcommn.h assume the exist of the variable
1301 `valid' typed as OTV_Validator in the caller.
1302
1303 Mixing these two conventions cause invalid pointer conversion
1304 and unexpected SEGV in longjmp. To prevent it, all variables
1305 typed as OTV_Validator are renamed to `otvalid'.
1306
1307 * src/otvalid/otvcommn.h: Replace `valid' by `otvalid'.
1308 * src/otvalid/{otvcommn.c, otvbase.c, otvgdef.c, otvgpos.c,
1309 otvgsub.c, otvjstf.c, otvmath.c}: Replace `valid' by `otvalid'
1310 if it is typed as OTV_Validator.
1311
13122014-12-09 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1313
suzuki toshiya2b592822014-12-10 00:27:41 +09001314 [ftvalid] Introduce FT_THROW() in FT_INVALID_XXX macros.
1315
1316 Original patch is designed by Werner Lemberg. Extra part
1317 for otvalid and gxvalid are added by suzuki toshiya, see
1318 discussion:
1319 http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00002.html
1320 http://lists.nongnu.org/archive/html/freetype-devel/2014-12/msg00007.html
1321
1322 * include/internal/ftvalid.h: Introduce FT_THROW() in FT_INVALID_().
1323 * src/gxvalid/gxvcommn.h: Ditto.
1324 * src/otvalid/otvcommn.h: Ditto.
1325
Werner Lemberg74af85c2014-12-08 16:01:50 +010013262014-12-08 Werner Lemberg <wl@gnu.org>
1327
1328 [pcf] Fix Savannah bug #43774.
1329
1330 Work around `features' of X11's `pcfWriteFont' and `pcfReadFont'
1331 functions. Since the PCF format doesn't have an official
1332 specification, we have to exactly follow these functions' behaviour.
1333
1334 The problem was unveiled with a patch from 2014-11-06, fixing issue
1335 #43547.
1336
1337 * src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last
1338 element. Instead, assign real size.
1339
Werner Lemberg66883b52014-12-07 09:17:06 +010013402014-12-07 Werner Lemberg <wl@gnu.org>
1341
Werner Lemberg553c9672014-12-07 19:29:52 +01001342 Work around a bug in Borland's C++ compiler.
1343
1344 See
1345
1346 http://qc.embarcadero.com/wc/qcmain.aspx?d=118998
1347
1348 for Borland's bug tracker entry.
1349
1350 Reported by Yuliana Zigangirova <zigangirova@inbox.ru>,
1351 http://lists.gnu.org/archive/html/freetype-devel/2014-04/msg00001.html.
1352
1353 * include/internal/ftvalid.h (FT_ValidatorRec), src/smooth/ftgrays.c
1354 (gray_TWorker_): Move `ft_jmp_buf' field to be the first element.
1355
13562014-12-07 Werner Lemberg <wl@gnu.org>
1357
Werner Lemberg9870d6d2014-12-07 09:40:47 +01001358 */*: Decorate hex constants with `U' and `L' where appropriate.
1359
13602014-12-07 Werner Lemberg <wl@gnu.org>
1361
Werner Lemberg66883b52014-12-07 09:17:06 +01001362 [truetype] Prevent memory leak for buggy fonts.
1363
1364 * src/truetype/ttobjs.c (tt_size_done): Unconditionally call
1365 `tt_size_done_bytecode'.
1366
Werner Lemberg94926682014-12-06 07:11:44 +010013672014-12-06 Werner Lemberg <wl@gnu.org>
1368
1369 * Version 2.5.4 released.
1370 =========================
1371
1372
1373 Tag sources with `VER-2-5-4'.
1374
1375 * docs/VERSION.DLL: Update documentation and bump version number to
1376 2.5.4.
1377
1378 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
1379 builds/windows/vc2005/index.html,
1380 builds/windows/vc2008/freetype.vcproj,
1381 builds/windows/vc2008/index.html,
1382 builds/windows/vc2010/freetype.vcxproj,
1383 builds/windows/vc2010/index.html,
1384 builds/windows/visualc/freetype.dsp,
1385 builds/windows/visualc/freetype.vcproj,
1386 builds/windows/visualc/index.html,
1387 builds/windows/visualce/freetype.dsp,
1388 builds/windows/visualce/freetype.vcproj,
1389 builds/windows/visualce/index.html,
1390 builds/wince/vc2005-ce/freetype.vcproj,
1391 builds/wince/vc2005-ce/index.html,
1392 builds/wince/vc2008-ce/freetype.vcproj,
1393 builds/wince/vc2008-ce/index.html: s/2.5.3/2.5.4/, s/253/254/.
1394
1395 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
1396
1397 * builds/unix/configure.raw (version_info): Set to 17:3:11.
1398 * CMakeLists.txt (VERSION_PATCH): Set to 4.
1399 * docs/CHANGES: Updated.
1400
Werner Lemberg934ef382014-12-04 06:38:51 +010014012014-12-04 Werner Lemberg <wl@gnu.org>
1402
1403 docs/CHANGES: Updated, formatted.
1404
Dave Arnold2cdc4562014-12-04 06:10:16 +010014052014-12-04 Dave Arnold <darnold@adobe.com>
1406
Dave Arnoldf89396c2014-12-04 06:17:26 +01001407 [cff] Modify an FT_ASSERT.
1408
1409 * src/cff/cf2hints.c (cf2_hintmap_map): After the fix for Savannah
1410 bug #43661, the test font `...aspartam.otf' still triggers an
1411 FT_ASSERT. Since hintmap still works with count==0, ...
1412 (cf2_glyphpath_lineTo, cf2_glyphpath_curveTo): ... add that term to
1413 suppress the assert.
1414
14152014-12-04 Dave Arnold <darnold@adobe.com>
1416
Dave Arnold2cdc4562014-12-04 06:10:16 +01001417 [cff] Fix Savannah bug #43661.
1418
1419 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdHSTEM,
1420 cf2_cmdVSTEM, cf2_cmdHINTMASK>: Don't append to stem arrays after
1421 hintmask is constructed.
1422
1423 * src/cff/cf2hints.c (cf2_hintmap_build): Add defensive code to
1424 avoid reading past end of hintmask.
1425
Werner Lemberg16188eb2014-12-03 10:18:34 +010014262014-12-03 Werner Lemberg <wl@gnu.org>
1427
Werner Lemberg8fa69a82014-12-03 20:07:14 +01001428 docs/CHANGES: Updated.
1429
14302014-12-03 Werner Lemberg <wl@gnu.org>
1431
Werner Lemberga632b5f2014-12-03 19:30:44 +01001432 [autofit] Better fix for conversion specifiers in debug messages.
1433
1434 Using `%ld' for pointer differences causes warnings on 32bit
1435 platforms. The correct type would be (the relatively new) `%td',
1436 however, this is missing on some important platforms.
1437
1438 This patch improves the change from 2014-11-28.
1439
1440 * src/autofit/afhints.c (AF_INDEX_NUM): Use `int' typecast. Our
1441 pointer differences are always sufficiently small.
1442 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
1443 af_glyph_hints_dump_edge): Revert to `%d' and use `AF_INDEX_NUM'.
1444
14452014-12-03 Werner Lemberg <wl@gnu.org>
1446
Werner Lemberg16188eb2014-12-03 10:18:34 +01001447 FT_Sfnt_Tag: s/ft_sfnt_xxx/FT_SFNT_XXX/ for orthogonality.
1448
1449 All public FreeType enumeration and flag values are uppercase...
1450
1451 * include/tttables.h (FT_Sfnt_Tag): Implement it. For backwards
1452 compatilibity, retain the old values as macros.
1453
1454 * src/base/ftfstype.c (FT_Get_FSType_Flags), src/sfnt/sfdriver.c
1455 (get_sfnt_table): Updated.
1456
Werner Lemberg2af25ac2014-12-02 08:38:57 +010014572014-12-02 Werner Lemberg <wl@gnu.org>
1458
Werner Lembergde43ace2014-12-02 23:06:04 +01001459 * include/*: Improve structure of documentation.
1460
1461 . Add and update many `<Order>' tags.
1462 . Apply various documentation fixes.
1463 . Remove details to deprecated (or never implemented) data.
1464
14652014-12-02 Werner Lemberg <wl@gnu.org>
1466
Werner Lembergca1f5cc2014-12-02 22:49:25 +01001467 [docmaker] Always handle `<Order>' section elements.
1468
1469 Previously, those elements were handled only for sections present in
1470 a `<Sections>' chapter element.
1471
1472 * src/tools/docmaker/content.py (ContentProcessor::finish):
1473 Implement it.
1474
14752014-12-02 Werner Lemberg <wl@gnu.org>
1476
Werner Lembergef6a3522014-12-02 21:16:59 +01001477 [docmaker] Properly handle empty rows in Synopsis.
1478
1479 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
1480 `&nbsp;' for empty fields.
1481
14822014-12-02 Werner Lemberg <wl@gnu.org>
1483
Werner Lemberg0e96f052014-12-02 11:08:31 +01001484 [docmaker] Thinko.
1485
1486 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1487 Emit `/empty/' string for first element also.
1488
14892014-12-02 Werner Lemberg <wl@gnu.org>
1490
Werner Lemberg102d4a72014-12-02 10:27:40 +01001491 [docmaker] Honour empty lines in `<Order>' section element.
1492
1493 This greatly improves the readability of the `Synopsis' links.
1494
1495 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1496 Insert string `/empty/' between items.
1497
1498 * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it
1499 robust against nonexistent keys.
1500
1501 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit
1502 empty <td> elements for `/empty/'.
1503
15042014-12-02 Werner Lemberg <wl@gnu.org>
1505
Werner Lemberg2af25ac2014-12-02 08:38:57 +01001506 [docmaker] Ensure Python 3 compatibility.
1507
1508 * src/tools/docmaker/content.py (ContentProcessor::set_section,
1509 ContentProcessor::finish): Replace `has_key' function with `in'
1510 keyword.
1511
1512 * src/tools/docmaker/formatter.py (Formatter::__init__): Replace
1513 sorting function with a key generator.
1514 (Formatter::add_identifier): Replace `has_key' function with `in'
1515 keyword.
1516
1517 * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote):
1518 Replace `has_key' function with `in' keyword.
1519 (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use
1520 integer division.
1521 s/<>/>/.
1522
1523 * src/tools/docmaker/utils.py: Import `itertools'.
1524 (index_sort): Replaced by...
1525 (index_key): ... this new key generator (doing exactly the same).
1526
Werner Lemberg8f795112014-11-29 06:49:15 +010015272014-11-29 Werner Lemberg <wl@gnu.org>
1528
Werner Lemberg80bfeb12014-12-01 10:07:52 +01001529 [docmaker] Don't output a block multiple times.
1530
1531 This bug was hidden by not processing all lines of `<Order>' blocks.
1532
1533 * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter
1534 out field names.
1535
15362014-11-29 Werner Lemberg <wl@gnu.org>
1537
Werner Lemberg0dbad762014-12-01 08:44:48 +01001538 [docmaker] Use field values as HTML link targets where possible.
1539
1540 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url):
1541 Accept second, optional argument to specify a name.
1542 (HtmlFormatter::html_source_quote): Link to field ID if possible.
1543 (HtmlFormatter::print_html_field_list): Emit `id' attribute.
1544
15452014-11-29 Werner Lemberg <wl@gnu.org>
1546
Werner Lemberg785b1d02014-11-30 22:16:34 +01001547 [docmaker] Allow empty lines in `<Order>' blocks.
1548
1549 Before this patch, the suggested order of entries stopped at the
1550 first empty line.
1551
1552 Obviously, nobody noticed that this problem caused a much reduced
1553 set of links in the `Synopsis' sections; in particular, the
1554 `<Order>' blocks contain a lot of entries that wouldn't be listed
1555 otherwise...
1556
1557 * src/tools/docmaker/content.py (DocBlock::get_markup_words_all):
1558 New function to iterate over all items.
1559 (DocSection::process): Use it.
1560
15612014-11-29 Werner Lemberg <wl@gnu.org>
1562
Werner Lemberg16b3e622014-11-30 20:58:27 +01001563 * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp.
1564
1565 After the single asterisk there must be no other immediately following
1566 asterisk.
1567
15682014-11-29 Werner Lemberg <wl@gnu.org>
1569
Werner Lemberg434bc692014-11-29 23:12:55 +01001570 * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing.
Werner Lemberg51987ea2014-11-29 22:19:29 +01001571
Werner Lemberg434bc692014-11-29 23:12:55 +010015722014-11-29 Werner Lemberg <wl@gnu.org>
1573
1574 [docmaker] Improve HTML code for table of contents.
1575
1576 * src/tools/docmaker/tohtml.py: Introduce a new table class `toc',
Werner Lemberg51987ea2014-11-29 22:19:29 +01001577 together with proper CSS.
1578
15792014-11-29 Werner Lemberg <wl@gnu.org>
1580
Werner Lembergaa834ce2014-11-29 20:08:29 +01001581 [docmaker] Provide higher-level markup and simplify HTML.
1582
1583 * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>'
1584 elements, use CSS descendants (of class `section') to format the
1585 data.
1586
1587 Also remove reduntant <p> and <br> elements, replacing them with
1588 proper CSS.
1589
1590 Globally reduce page width to 75%.
1591
1592 (block_header): Rename <div> class to `section'.
1593
15942014-11-29 Werner Lemberg <wl@gnu.org>
1595
Werner Lemberg3bb97022014-11-29 16:12:37 +01001596 [docmaker] Add `top' links after blocks.
1597
1598 * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it.
1599
16002014-11-29 Werner Lemberg <wl@gnu.org>
1601
Werner Lemberga31f9712014-11-29 07:18:44 +01001602 * src/tools/docmaker/tohtml.py: Improve CSS for fields.
1603
Werner Lemberg3bb97022014-11-29 16:12:37 +01001604 Make fields align horizontally relative to full line width.
Werner Lemberga31f9712014-11-29 07:18:44 +01001605
16062014-11-29 Werner Lemberg <wl@gnu.org>
1607
Werner Lemberg8f795112014-11-29 06:49:15 +01001608 * src/tools/docmaker/tohtml.py: Fix index and TOC templates.
1609
1610 This thinko was introduced 2014-11-27.
1611
Werner Lembergba1ba0c2014-11-28 22:04:14 +010016122014-11-28 Werner Lemberg <wl@gnu.org>
1613
1614 [docmaker] Format field lists with CSS.
1615
1616 This also simplifies the inserted HTML code.
1617
1618 * src/tools/docmaker/tohtml.py
1619 (HtmlFormatter::print_html_field_list): Do it.
1620
suzuki toshiya348fffa2014-11-28 16:05:59 +090016212014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1622
1623 Fix compiler warning to the comparison between signed and
1624 unsigned variable.
1625
1626 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix the comparison
1627 between `ypos + ysize' and FT_INT_{MAX,MIN}.
1628
Werner Lembergba1ba0c2014-11-28 22:04:14 +010016292014-11-28 Werner Lemberg <wl@gnu.org>
Werner Lemberg984e0712014-11-28 05:33:58 +01001630
Werner Lembergba1ba0c2014-11-28 22:04:14 +01001631 [docmaker] Replace empty `<td>' with CSS.
Werner Lemberg46d4dc82014-11-28 05:49:56 +01001632
1633 * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do
1634 it.
1635
Werner Lembergba1ba0c2014-11-28 22:04:14 +010016362014-11-28 Werner Lemberg <wl@gnu.org>
Werner Lemberg46d4dc82014-11-28 05:49:56 +01001637
Werner Lemberg984e0712014-11-28 05:33:58 +01001638 [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'.
1639
1640 * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'.
1641 (source_*): Use `<div>'.
1642 (HtmlFormatter::block_enter): s/<h4>/<h3>/.
1643
suzuki toshiya9ee6a0a2014-11-28 11:14:18 +090016442014-11-28 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1645
1646 Fix compiler warning to conversion specifiers in debug messages.
1647
1648 * src/autofit/afhints.c (af_glyph_hints_dump_points): Add length
Werner Lemberga632b5f2014-12-03 19:30:44 +01001649 modifier to dump long integers.
1650 (af_glyph_hints_dump_segments, af_glyph_hints_dump_edges): Ditto.
suzuki toshiya9ee6a0a2014-11-28 11:14:18 +09001651
Werner Lemberg26d699e2014-11-27 19:22:52 +010016522014-11-27 Werner Lemberg <wl@gnu.org>
1653
Werner Lemberg984e0712014-11-28 05:33:58 +01001654 * src/tools/docmaker/tohtml.py: Use more CSS for index.
Werner Lemberg7ea36342014-11-27 19:38:31 +01001655
16562014-11-27 Werner Lemberg <wl@gnu.org>
1657
Werner Lembergedcf8172014-11-27 19:28:48 +01001658 [docmaker] Replace `name' attribute of `<a>' with `id'.
1659
1660 * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it.
1661
16622014-11-27 Werner Lemberg <wl@gnu.org>
1663
Werner Lemberg26d699e2014-11-27 19:22:52 +01001664 * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes.
1665
1666 For `Index' and `TOC' links, we now simply use the `text-align' CSS
1667 property of `<td>' to enforce flush-left and flush-right,
1668 eliminating the hack with an empty, full-width `<td>' element
1669 inbetween.
1670
1671 The change also enforces the same (smaller) size for all index and
1672 TOC links.
1673
suzuki toshiya2676e072014-11-28 00:58:25 +090016742014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1675
suzuki toshiya1b12f5d2014-11-28 01:22:26 +09001676 * src/cff/cf2font.c: Include `ftcalc.h' to use FT_MSB(),
1677 cf2font.c could not find it under `make multi' build.
1678
16792014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1680
suzuki toshiya2676e072014-11-28 00:58:25 +09001681 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove
1682 unrequired negative value check for `width' and `height'.
1683
Werner Lemberg8585cf52014-11-27 10:49:05 +010016842014-11-27 Werner Lemberg <wl@gnu.org>
1685
Werner Lembergdd3fee02014-11-27 13:20:52 +01001686 * src/tools/docmaker/tohtml.py: More HTML table refactoring.
1687
1688 Replace some `<table>' tags with `<div>' to simplify structure.
1689
1690 Move `bgcolor' attribute to CSS.
1691
1692 Replace most `width' attributes with CSS. The remaining instances
1693 (providing a similar effect as LaTeX's `\hfill' command) are removed
1694 in a later patch.
1695
16962014-11-27 Werner Lemberg <wl@gnu.org>
1697
Werner Lemberga5ad26a2014-11-27 10:52:24 +01001698 * src/tools/docmaker/tohtml.py: Replace <font> with CSS.
1699
17002014-11-27 Werner Lemberg <wl@gnu.org>
1701
Werner Lembergba67c612014-11-27 10:51:49 +01001702 * src/tools/docmaker/tohtml.py: Center <table> with CSS.
1703
17042014-11-27 Werner Lemberg <wl@gnu.org>
1705
Werner Lemberg5594fa52014-11-27 10:50:50 +01001706 * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'.
1707
17082014-11-27 Werner Lemberg <wl@gnu.org>
1709
Werner Lemberg8585cf52014-11-27 10:49:05 +01001710 * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags.
1711
1712 This starts a series of commits into the direction of generating
1713 valid HTML 5 code, especially using much more CSS.
1714
suzuki toshiya1b057042014-11-27 17:53:20 +090017152014-11-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1716
1717 Prevent too negative values (< FT_INT_MIN) in bitmap metrics,
1718 suggested by Alexei.
1719
1720 * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Prevent too
1721 negative values in `xpos' and `ypos + ysize'.
1722 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Prevent
1723 too negative values in `x_left' and `y_top'. Either negative
1724 values in `width' and `height' are checked.
1725
Werner Lemberg3d167cb2014-11-27 05:19:41 +010017262014-11-27 Werner Lemberg <wl@gnu.org>
1727
Werner Lembergc52882a2014-11-27 08:01:25 +01001728 [docmaker] Produce better HTML code.
1729
1730 * src/tools/docmaker/tohtml.py: Always use double quotes for
1731 attribute values.
1732 (source_footer): Close `td' and `tr' groups.
1733
17342014-11-27 Werner Lemberg <wl@gnu.org>
1735
Werner Lembergdbb93152014-11-27 07:20:48 +01001736 Use better way to disable creation of .pyc files for `make refdoc'.
1737
1738 Python 2.6 was released in 2008...
1739
1740 * builds/freetype.mk (refdoc): Use python's `-B' option.
1741
1742 * builds/detect.mk (std_setup, dos_setup): Mention required python
1743 version for `refdoc' target.
1744
17452014-11-27 Werner Lemberg <wl@gnu.org>
1746
Werner Lemberge8a5c332014-11-27 06:48:37 +01001747 * src/tools/docmaker/sources.py (re_bold, re_italic): Use
1748 non-grouping parentheses.
1749 * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word):
1750 Updated.
1751
17522014-11-27 Werner Lemberg <wl@gnu.org>
1753
Werner Lemberg3d167cb2014-11-27 05:19:41 +01001754 * src/base/ftobjs.c (FT_Get_Glyph_Name): Fix compiler warning.
1755
1756 Introdruced in previous change. Reported by Alexei.
1757
Werner Lemberga593a042014-11-26 18:42:48 +010017582014-11-26 Werner Lemberg <wl@gnu.org>
1759
Werner Lembergf34f1922014-11-26 21:59:21 +01001760 * src/*: Add checks for parameters of API functions where missing.
1761
1762 `API functions' are functions tagged with `FT_EXPORT_DEF'.
1763
1764 Besides trivial fixes, the following changes are included, too.
1765
1766 * src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Set
1767 error code if no service is available.
1768
1769 * src/base/ftinit.c (FT_Done_FreeType): Change return value for
1770 invalid `library' parameter to `Invalid_Library_Handle'.
1771
1772 * src/base/ftobjs.c (FT_New_Size): Change return value for invalid
1773 `asize' parameter to `Invalid_Argument'.
1774
1775 * src/base/ftoutln.c (FT_Outline_Copy): Change return value for
1776 invalid `source' and `target' parameters to `Invalid_Outline'.
1777 (FT_Outline_Done_Internal): Change return value for invalid
1778 `outline' parameter to `Invalid_Outline'.
1779
17802014-11-26 Werner Lemberg <wl@gnu.org>
1781
Werner Lemberga593a042014-11-26 18:42:48 +01001782 * src/cache/ftcbasic.c: Use single calls to `FT_TRACE'.
1783
suzuki toshiya5aff8532014-11-26 14:36:12 +090017842014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1785
suzuki toshiyacd4a5a22014-11-27 00:20:48 +09001786 * src/base/ftobj.c (Mac_Read_POST_Resource): Additional
1787 overflow check in the summation of POST fragment lengths,
1788 suggested by Mateusz Jurczyk <mjurczyk@google.com>.
1789
17902014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1791
suzuki toshiya1720e812014-11-26 16:39:00 +09001792 * src/base/ftobjs.c (Mac_Read_POST_Resource): Insert comments
1793 and fold too long tracing messages.
1794
17952014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1796
suzuki toshiya18a8f0d2014-11-26 16:11:38 +09001797 Fix Savannah bug #43540.
1798
1799 * src/base/ftmac.c (parse_fond): Prevent a buffer overrun
1800 caused by a font including too many (> 63) strings to store
1801 names[] table.
1802
18032014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1804
suzuki toshiya45331672014-11-26 16:02:17 +09001805 * src/base/ftobjs.c (Mac_Read_POST_Resource): Use unsigned long
1806 variables to read the lengths in POST fragments. Suggested by
1807 Mateusz Jurczyk <mjurczyk@google.com>.
1808
18092014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1810
suzuki toshiya35252ae2014-11-26 15:52:23 +09001811 Fix Savannah bug #43539.
1812
1813 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
1814 by a broken POST table in resource-fork.
1815
18162014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1817
suzuki toshiya240c94a2014-11-26 15:43:29 +09001818 Fix Savannah bug #43538.
1819
1820 * src/base/ftobjs.c (Mac_Read_POST_Resource): Fix integer overflow
1821 by a broken POST table in resource-fork.
1822
18232014-11-26 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
1824
suzuki toshiya5aff8532014-11-26 14:36:12 +09001825 * src/base/ftobjs.c (Mac_Read_POST_Resource): Avoid memory leak
1826 by a broken POST table in resource-fork. Return after freeing
1827 the buffered POST table when it is found to be broken.
1828
Werner Lemberg04edbbd2014-11-25 10:21:13 +010018292014-11-25 Werner Lemberg <wl@gnu.org>
1830
Werner Lemberg02b8e7e2014-11-25 11:31:51 +01001831 */*: s/Invalid_Argument/Invalid_Size_Handle/ where appropriate.
1832
18332014-11-25 Werner Lemberg <wl@gnu.org>
1834
Werner Lemberg0d4aa232014-11-25 11:26:14 +01001835 */*: s/Invalid_Argument/Invalid_Stream_Handle/ where appropriate.
1836
18372014-11-25 Werner Lemberg <wl@gnu.org>
1838
Werner Lembergf4f9e682014-11-25 11:11:55 +01001839 */*: s/Invalid_Argument/Invalid_Library_Handle/ where appropriate.
1840
18412014-11-25 Werner Lemberg <wl@gnu.org>
1842
Werner Lemberg04c2aa12014-11-25 10:22:12 +01001843 */*: s/Invalid_Argument/Invalid_Outline/ where appropriate.
1844
18452014-11-25 Werner Lemberg <wl@gnu.org>
1846
Werner Lemberg04edbbd2014-11-25 10:21:13 +01001847 */*: s/Invalid_Argument/Invalid_Face_Handle/ where appropriate.
1848
Werner Lembergeca0f062014-11-24 10:22:08 +010018492014-11-24 Werner Lemberg <wl@gnu.org>
1850
Werner Lemberg3e867112014-11-25 09:01:07 +01001851 [Savannah bug #43682] Adjust some renderer callbacks.
1852
1853 * src/raster/ftraster.c (ft_black_set_mode): Change return type to
1854 `int' to stay in sync with `FT_Renderer_SetModeFunc' prototype.
1855
1856 * src/smooth/ftgrays.c (gray_raster_set_mode): New dummy function
1857 for orthogonality.
1858 (ft_grays_raster): Use it.
1859
Werner Lemberg04edbbd2014-11-25 10:21:13 +010018602014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lemberg3e867112014-11-25 09:01:07 +01001861
Werner Lemberg6689a002014-11-25 08:53:09 +01001862 [Savannah bug #43682] Properly handle missing return errors.
1863
1864 The functions in this patch *do* return non-trivial errors that must
1865 be taken care of.
1866
1867 * src/autofit/afloader.c (af_loader_load_g), src/base/ftobjs.c
1868 (FT_Render_Glyph_Internal), src/base/ftoutln.c (FT_Outline_Render),
1869 src/cff/cffgload.c (cff_decoder_parse_charstrings) <cff_op_endchar>,
1870 src/psaux/psobjs.c (ps_parser_load_field_table), src/psaux/t1decode
1871 (t1_decoder_parse_charstrings) <op_endchar>, src/truetype/ttgload.c
1872 (load_truetype_glyph <subglyph loop>, tt_loader_init,
1873 TT_Load_Glyph), src/truetype/ttgxvar.c (TT_Set_MM_Blend),
1874 src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep): Do it.
1875
Werner Lemberg04edbbd2014-11-25 10:21:13 +010018762014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lemberg6689a002014-11-25 08:53:09 +01001877
Werner Lembergb24e8ba2014-11-25 08:30:49 +01001878 [Savannah bug #43682] Add/remove `void' casts to some functions.
1879
1880 We use a cast to indicate that we intentionally ignore a function's
1881 return value. However, this doesn't apply to API functions where
1882 errors can only happen for trivially invalid input.
1883
1884 * src/base/ftstroke.c (FT_Glyph_Stroke, FT_Glyph_StrokeBorder),
1885 src/base/ftsynth.c (FT_GlyphSlot_Embolden), src/cff/cffgload.c
1886 (cff_slot_load), src/pfr/pfrdrivr.c (pfr_get_kerning),
1887 src/type1/t1load.c (parse_encoding), src/type42/t42parse.c
1888 (t42_parse_encoding): Do it.
1889
Werner Lemberg04edbbd2014-11-25 10:21:13 +010018902014-11-25 Werner Lemberg <wl@gnu.org>
Werner Lembergb24e8ba2014-11-25 08:30:49 +01001891
Werner Lembergef439fd2014-11-25 08:14:15 +01001892 [Savannah bug #43682] Change some signatures to `void' return type.
1893
1894 * include/internal/pshints.h (PSH_Globals_SetScaleFunc),
1895 include/internal/sfnt.h (TT_Get_Metrics_Func),
1896 src/pshinter/pshglob.c (psh_globals_set_scale),
1897 src/pshinter/pshrec.c (ps_hints_init), src/sfnt/ttmtx.c
1898 (tt_face_get_metrics), src/truetype/ttinterp.c (TT_Goto_CodeRange,
1899 TT_Set_CodeRange, TT_Clear_CodeRange, TT_Done_Context,
1900 TT_Save_Context): Do it.
1901
1902 * src/pshinter/pshglob.h, src/pshinter/pshrec.h, src/sfnt/ttmtx.h,
1903 src/truetype/ttgload.c (TT_Hint_Glyph), src/truetype/ttinterp.c
1904 (TT_Run_Context), src/truetype/ttinterp.h, src/truetype/ttobjs.c
1905 (tt_size_run_fpgm, tt_size_run_prep): Updated.
1906
19072014-11-24 Werner Lemberg <wl@gnu.org>
1908
Werner Lemberg6889f7b2014-11-24 17:16:08 +01001909 Remove all code related to FT_MAX_CHARMAP_CACHEABLE.
1910
1911 This is no longer used.
1912
1913 * src/base/ftobjs.c, src/cache/ftccmap.c, src/cff/cffobjs.c,
1914 src/sfnt/ttcmap.c: Do it.
1915
19162014-11-24 Werner Lemberg <wl@gnu.org>
1917
Werner Lembergf0292bb2014-11-24 10:51:21 +01001918 [sfnt] Fix Savannah bug #43680.
1919
1920 This adds an additional constraint to make the fix from 2013-01-25
1921 really work.
1922
1923 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_image) <index_format==4>:
1924 Check `p' before `num_glyphs'.
1925
19262014-11-24 Werner Lemberg <wl@gnu.org>
1927
Werner Lembergeca0f062014-11-24 10:22:08 +01001928 [truetype] Fix Savannah bug #43679.
1929
1930 * src/truetype/ttpload.c (tt_face_load_hdmx): Check minimum size of
1931 `record_size'.
1932
Jarkko Pöyry96341dc2014-11-24 09:53:07 +010019332014-11-24 Jarkko Pöyry <jarkko.poyry@gmail.com>
1934
1935 [cff, pfr, psaux, winfonts] Fix Savannah bug #43676.
1936
Werner Lemberged6a9df2014-12-06 23:28:58 +01001937 Don't cast cmap init function pointers to an incompatible type.
Jarkko Pöyry96341dc2014-11-24 09:53:07 +01001938
1939 Without this patch, the number of parameters between declaration and
1940 the real signature differs. Calling such a function results in
1941 undefined behavior.
1942
1943 ISO/IEC 9899:TC3 (Committee Draft September 7, 2007)
1944 6.5.2.2 Function calls
1945 9 If the function is defined with a type that is not
1946 compatible with the type (of the expression) pointed to by
1947 the expression that denotes the called function, the
1948 behavior is undefined.
1949
1950 On certain platforms (c -> js with emscripten) this causes
1951 termination of execution or invalid calls because in the emscripten
1952 implementation, function pointers of different types are stored in
1953 different pointer arrays. Incorrect pointer type here results in
1954 indexing of an incorrect array.
1955
1956 * src/cff/cffcmap.c (cff_cmap_encoding_init, cff_cmap_unicode_init),
1957 src/pfr/pfrcmap.c (pfr_cmap_init), src/psaux/t1cmap.c
1958 t1_cmap_standard_init, t1_cmap_expert_init, t1_cmap_custom_init,
1959 t1_cmap_unicode_init), src/winfonts/winfnt.c (fnt_cmap_init): Fix
1960 signature.
1961
Werner Lemberga7a42072014-11-24 06:44:45 +010019622014-11-24 Werner Lemberg <wl@gnu.org>
1963
Werner Lembergf70d9342014-11-24 09:31:32 +01001964 [sfnt] Fix Savannah bug #43672.
1965
1966 * src/sfnt/ttkern.c (tt_face_load_kern): Use correct value for
1967 minimum table length test.
1968
19692014-11-24 Werner Lemberg <wl@gnu.org>
1970
Werner Lemberg73be9f92014-11-24 07:30:05 +01001971 [type1, type42] Another fix for Savannah bug #43655.
1972
1973 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
1974 (t42_parse_charstrings): Add another boundary testing.
1975
19762014-11-24 Werner Lemberg <wl@gnu.org>
1977
Werner Lemberga7a42072014-11-24 06:44:45 +01001978 [docmaker] Formatting, copyright, improved documentation.
1979
1980 * src/tools/docmaker/*: No code changes besides trivial
1981 modifications.
1982
Werner Lemberg9bd20b72014-11-22 06:24:45 +010019832014-11-22 Werner Lemberg <wl@gnu.org>
1984
Werner Lembergaf834612014-11-22 13:29:10 +01001985 [bdf] Fix Savannah bug #43660.
1986
1987 * src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
1988 `_BDF_GLYPH_BITS'.
1989
19902014-11-22 Werner Lemberg <wl@gnu.org>
1991
Werner Lemberg42fcd662014-11-22 12:44:33 +01001992 [type42] Allow only embedded TrueType fonts.
1993
1994 This is a follow-up to Savannah bug #43659.
1995
1996 * src/type42/t42objs.c (T42_Face_Init): Exclusively use the
1997 `truetype' font driver for loading the font contained in the `sfnts'
1998 array.
1999
20002014-11-22 Werner Lemberg <wl@gnu.org>
2001
Werner Lemberg37881872014-11-22 10:46:47 +01002002 [type42] Fix Savannah bug #43659.
2003
2004 * src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.
2005
2006 * src/type42/t42parse.c (t42_parse_sfnts): Always set
2007 `face->ttf_size' directly. This ensures a correct stream size in
2008 the call to `FT_Open_Face', which follows after parsing, even for
2009 buggy input data.
2010 Fix error messages.
2011
20122014-11-22 Werner Lemberg <wl@gnu.org>
2013
Werner Lemberg5f201ab2014-11-22 09:16:39 +01002014 [cff] Fix Savannah bug #43658.
2015
2016 * src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
2017 return values of point allocation routines.
2018
20192014-11-22 Werner Lemberg <wl@gnu.org>
2020
Werner Lemberg9bd20b72014-11-22 06:24:45 +01002021 [sfnt] Fix Savannah bug #43656.
2022
2023 * src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
2024 tests.
2025
Werner Lemberg6de76172014-11-21 06:05:49 +010020262014-11-21 Werner Lemberg <wl@gnu.org>
2027
Werner Lembergdd897102014-11-21 22:19:28 +01002028 [type1, type42] Fix Savannah bug #43655.
2029
2030 * src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
2031 (t42_parse_charstrings): Fix boundary testing.
2032
20332014-11-21 Werner Lemberg <wl@gnu.org>
2034
Werner Lembergb1fc00d2014-11-21 12:06:40 +01002035 * src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics.
2036
20372014-11-21 Werner Lemberg <wl@gnu.org>
2038
Werner Lemberg9154dab2014-11-21 08:03:51 +01002039 [ftlcdfil] Obey flow direction.
2040
2041 * src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
2042 Handle `up' flow.
2043
20442014-11-21 Werner Lemberg <wl@gnu.org>
2045
Werner Lemberg644d6fa2014-11-21 07:28:50 +01002046 * src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.
2047
2048 This commit completes argument checks and adds support for different
2049 flow directions.
2050
20512014-11-21 Werner Lemberg <wl@gnu.org>
2052
Werner Lemberg6de76172014-11-21 06:05:49 +01002053 * src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.
2054
2055 This commit adds argument checks and support for different flow
2056 directions.
2057
Werner Lemberg1e6e1b82014-11-20 21:07:56 +010020582014-11-20 Werner Lemberg <wl@gnu.org>
2059
2060 * src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
2061
Werner Lembergd6061212014-11-19 21:13:23 +010020622014-11-19 Werner Lemberg <wl@gnu.org>
2063
Werner Lembergb3500af2014-11-19 21:28:21 +01002064 Change some fields in `FT_Bitmap' to unsigned type.
2065
2066 This doesn't break ABI.
2067
2068 * include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
2069 `pixel_mode', and `palette_mode' unsigned types.
2070
2071 * src/base/ftbitmap.c: Updated.
2072 (FT_Bitmap_Copy): Fix casts.
2073
2074 * src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
2075 Updated.
2076
20772014-11-19 Werner Lemberg <wl@gnu.org>
2078
Werner Lembergdf485772014-11-19 21:21:23 +01002079 Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.
2080
2081 * src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
2082 for the pitch while copying data.
2083 Correctly set pitch sign in target bitmap.
2084
20852014-11-19 Werner Lemberg <wl@gnu.org>
2086
Werner Lembergd6061212014-11-19 21:13:23 +01002087 Minor code improvement in `FT_Bitmap_Embolden'.
2088
2089 * src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
2090 Fix thinko.
2091
Alexei Podtelezhnikovf841ad32014-11-19 21:19:06 -050020922014-11-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2093
2094 * src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
2095
Werner Lemberga67c43e2014-11-19 06:46:23 +010020962014-11-19 Behdad Esfahbod <behdad@behdad.org>
2097
2098 Avoid compiler warnings on x86-64 for `FT_MulFix'.
2099
2100 `FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
2101 but several inline implementations of it in `ftcalc.h' take
2102 `FT_Int32' arguments. This is causing compiler warnings on x86-64:
2103 If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
2104 inline implementation of this function, integer values are truncated
2105 from 64bit to 32bit.
2106
2107 * include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
2108 casts.
2109
Werner Lemberg54abd222014-11-15 09:05:22 +010021102014-11-15 Werner Lemberg <wl@gnu.org>
2111
2112 [sfnt] Fix Savannah bug #43597.
2113
2114 * src/sfnt/pngshim.c (Load_SBit_Png): Protect against too large
2115 bitmaps.
2116
Werner Lemberg602040b2014-11-12 20:51:20 +010021172014-11-12 Werner Lemberg <wl@gnu.org>
2118
Werner Lemberg257c2702014-11-12 21:42:13 +01002119 [sfnt] Fix Savannah bug #43591.
2120
2121 * src/sfnt/ttsbit.c (tt_sbit_decoder_init): Protect against addition
2122 and multiplication overflow.
2123
21242014-11-12 Werner Lemberg <wl@gnu.org>
2125
Werner Lemberg677ddf42014-11-12 21:26:44 +01002126 [sfnt] Fix Savannah bug #43590.
2127
2128 * src/sfnt/ttload.c (check_table_dir, tt_face_load_font_dir):
2129 Protect against addition overflow.
2130
21312014-11-12 Werner Lemberg <wl@gnu.org>
2132
Werner Lembergf46add12014-11-12 21:06:08 +01002133 [sfnt] Fix Savannah bug #43589.
2134
2135 * src/sfnt/sfobjs.c (woff_open_font): Protect against addition
2136 overflow.
2137
21382014-11-12 Werner Lemberg <wl@gnu.org>
2139
Werner Lemberg602040b2014-11-12 20:51:20 +01002140 [sfnt] Fix Savannah bug #43588.
2141
2142 * src/sfnt/ttcmap.c (tt_cmap8_validate, tt_cmap10_validate,
2143 tt_cmap12_validate, tt_cmap13_validate, tt_cmap14_validate): Protect
2144 against overflow in additions and multiplications.
2145
Alexei Podtelezhnikov2e73a1b2014-11-09 23:22:43 -050021462014-11-10 Alexei Podtelezhnikov <apodtele@gmail.com>
2147
2148 [base] CORDIC improvements.
2149
2150 The scaling between the hypotenuse and its CORDIC approximation is
2151 based on regression analysis. The smaller padding for `theta' is
2152 justifed by its maximum error of less than 6.
2153
2154 * src/base/fttrigon.c (ft_trig_downscale): Borrow code from
2155 ./ftcalc.c (ft_multo64), change linear intercept.
2156 (ft_trig_pseudo_polarize): Decrease `theta' padding.
2157
Werner Lemberg0e73d212014-11-09 01:27:38 +010021582014-11-09 Werner Lemberg <wl@gnu.org>
2159
2160 * src/base/ftstroke.c (ft_stroker_inside): Fix border intersections.
2161
2162 One more place to check whether `radius' is zero.
2163
2164 Problem reported by Marco Wertz <marco.wertz@gmx.de>.
2165
Werner Lemberg2c4832d2014-11-07 07:42:33 +010021662014-11-07 Werner Lemberg <wl@gnu.org>
2167
Werner Lemberg602040b2014-11-12 20:51:20 +01002168 [bdf] Fix Savannah bug #43535.
Werner Lemberg2c4832d2014-11-07 07:42:33 +01002169
2170 * src/bdf/bdflib.c (_bdf_strncmp): New macro that checks one
2171 character more than `strncmp'.
2172 s/ft_strncmp/_bdf_strncmp/ everywhere.
2173
Werner Lembergf49a1002014-11-06 13:30:28 +010021742014-11-06 Werner Lemberg <wl@gnu.org>
2175
Werner Lemberg602040b2014-11-12 20:51:20 +01002176 [pcf] Fix Savannah bug #43548.
Werner Lembergef1eba72014-11-06 23:25:05 +01002177
Werner Lemberg2c4832d2014-11-07 07:42:33 +01002178 * src/pcf/pcfread.c (pcf_get_encodings): Add sanity checks for row
2179 and column values.
Werner Lembergef1eba72014-11-06 23:25:05 +01002180
21812014-11-06 Werner Lemberg <wl@gnu.org>
2182
Werner Lemberg602040b2014-11-12 20:51:20 +01002183 [pcf] Fix Savannah bug #43547.
Werner Lemberg0e2f5d52014-11-06 22:32:46 +01002184
2185 * src/pcf/pcfread.c (pcf_read_TOC): Check `size' and `offset'
2186 values.
2187
21882014-11-06 Werner Lemberg <wl@gnu.org>
2189
Werner Lembergf49a1002014-11-06 13:30:28 +01002190 * src/pcf/pcfread.c (pcf_read_TOC): Avoid memory leak.
2191
Infinalityfacfc792014-11-03 07:24:59 +010021922014-11-03 Infinality <infinality@infinality.net>
2193
2194 * src/truetype/ttsubpix.c (COMPATIBILITY_MODE_Rules): Updated.
2195
2196 The previous commit deteriorates rendering of DejaVu and similar
2197 fonts; this gets compensated with this rule.
2198
Werner Lemberg706f7522014-11-03 07:20:57 +010021992014-11-03 Werner Lemberg <wl@gnu.org>
2200
2201 * src/truetype/ttinterp.c (Ins_DELTAP): Fix subpixel hinting.
2202
2203 Before this patch, it was impossible to ever call DELTAP[123] in
2204 subpixel hinting mode as described in the ClearType whitepaper; it
2205 only worked if in `compatibility mode'. However, compatibility mode
2206 essentially disables SHPIX, completely ruining hinting of
2207 ttfautohint output, for example.
2208
2209 We now follow the whitepaper more closely so that DELTAP[123]
2210 instructions for touched points in the non-subpixel direction are
2211 executed.
2212
Alexei Podtelezhnikove1efe0a2014-10-31 00:07:14 -040022132014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
2214
Alexei Podtelezhnikov525d4872014-10-31 22:12:37 -04002215 [smooth] Improve code readability.
2216
2217 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
2218
22192014-10-31 Alexei Podtelezhnikov <apodtele@gmail.com>
2220
Alexei Podtelezhnikove1efe0a2014-10-31 00:07:14 -04002221 [smooth] Reduce outline translations during rendering.
2222
2223 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Translate origin
2224 virtually by modifying cbox, actually translate outline if cumulative
2225 shift is not zero.
2226
Alexei Podtelezhnikovc7fd9352014-10-30 22:43:01 -040022272014-10-30 Alexei Podtelezhnikov <apodtele@gmail.com>
2228
2229 [smooth] Fix Savannah bug #35604 (cont'd).
2230
2231 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Remove checks and
2232 casts that became unnecessary after the variable type upgrades.
2233
Alexei Podtelezhnikov74916992014-10-29 22:24:24 -040022342014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
2235
Alexei Podtelezhnikov465ab992014-10-29 23:45:23 -04002236 [smooth] Improve code readability.
2237
2238 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Rearrange code.
2239
22402014-10-29 Alexei Podtelezhnikov <apodtele@gmail.com>
2241
Alexei Podtelezhnikov74916992014-10-29 22:24:24 -04002242 Unify hypotenuse approximations.
2243
2244 * include/internal/ftcalc.h (FT_HYPOT): Move macro from here...
2245 * include/internal/ftobjs.h: ... to here, next to required `FT_ABS'.
2246 * src/smooth/ftgrays.c (gray_render_cubic): Use it here.
2247
Werner Lembergfe151522014-10-25 05:56:59 +020022482014-10-25 Werner Lemberg <wl@gnu.org>
2249
2250 [cff] Test valid darkening parameter macros in `ftoption.h'.
2251
2252 We no longer need an otherwise unused typedef that can cause a gcc
2253 warning.
2254 Problem reported by Alexei.
2255
2256 * src/cff/cffobjs.c (cff_driver_init): Use
2257 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_XXX' macros directly.
2258 (SET_DARKENING_PARAMETERS): Removed.
2259 Compile time tests are now ...
2260
2261 * devel/ftoption.h, include/config/ftoption.h: ... here.
2262
Alexei Podtelezhnikovaba0f492014-10-24 23:50:57 -040022632014-10-25 Alexei Podtelezhnikov <apodtele@gmail.com>
2264
2265 Improve flat corner definition.
2266
2267 * include/internal/ftcalc.h (FT_HYPOT): Macro to approximate Euclidean
2268 distance with the alpha max plus beta min algorithm.
2269 * src/base/ftcalc.c (ft_corner_is_flat): Use it instead of Taxicab
2270 metric.
2271
David Weißdd8de1a2014-10-23 20:01:48 +020022722014-10-23 David Weiß <David.Weiss@ptvgroup.com>
2273
2274 [build] Improve property file for vc2010.
2275
2276 User-defined properties should be empty by default to prevent linker
2277 failures.
2278
2279 * builds/windows/vc2010/freetype.user.props,
2280 builds/windows/vc2010/freetype.vcxproj:
2281 s/OptionsDirectory/UserOptionDirectory/.
2282 Comment out all user options.
2283
Werner Lembergdd570e92014-10-23 19:57:37 +020022842014-10-23 Werner Lemberg <wl@gnu.org>
2285
2286 [cff] Work around bug in preprocessor of MSVC 2010.
2287
2288 We have been hit by
2289
2290 https://connect.microsoft.com/VisualStudio/feedback/details/718976/msvc-pr
2291
2292 * devel/ftoption.h, include/config/ftoption.h: Replace
2293 `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' with eight macros
2294 `CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4}'.
2295
2296 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS): Removed. We no
2297 longer need double expansion.
2298 (SET_DARKENING_PARAMETERS_0): Renamed to ...
2299 (SET_DARKENING_PARAMETERS): ... this.
2300 Update call.
2301
Werner Lembergcc7bb802014-10-20 08:35:50 +020023022014-10-20 Werner Lemberg <wl@gnu.org>
2303
2304 [sbit] Minor fixes.
2305
2306 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
2307 Accept overlay format also, but emit warning message in that case.
2308 (tt_sbit_decoder_load_metrics): Add missing newline to error
2309 message.
2310 (tt_sbit_load_sbix_image): Add `rgbl' graphic type (as used on iOS
2311 7.1) to the list of unsupported formats.
2312
Alexei Podtelezhnikov118e6512014-10-19 23:31:08 -040023132014-10-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2314
2315 [truetype] Clean up bytecode rounding.
2316
2317 Zero distance does not have to be treated specially if you follow
2318 specifications and check the sign as the very last step of rounding.
2319
2320 * src/truetype/ttinterp.c (Round_None, Round_To_Grid,
2321 Round_Down_To_Grid, Round_Up_To_Grid, Round_To_Double_Grid): Use
2322 macros when available, do not check for non-zero distance.
2323 (Round_To_Half_Grid, Round_Super, Round_Super_45): Ditto, return phase
2324 if sign changed.
2325
Alexei Podtelezhnikovd4aabda2014-10-18 10:10:04 -040023262014-10-18 Alexei Podtelezhnikov <apodtele@gmail.com>
2327
2328 [truetype] Unwrap engine compensation settings.
2329
2330 * src/truetype/ttobjs.c (tt_size_init_bytecode): Updated.
2331
David Weißfede19e2014-10-18 14:59:20 +020023322014-10-18 David Weiß <David.Weiss@ptvgroup.com>
2333
2334 [build] Add property file to vc2010 project.
2335
2336 This simplifies custom build configurations, especially for
2337 automated build environments.
2338
2339 * builds/windows/vc2010/freetype.user.props: New configuration file.
2340
2341 * builds/windows/vc2010/freetype.vcxproj: Include
2342 `freetype.user.props' and use its data fields.
2343
2344 * builds/windows/vc2010/index.html: Updated.
2345
Werner Lembergc9c33f22014-10-18 11:01:14 +020023462014-10-18 Werner Lemberg <wl@gnu.org>
2347
2348 [autofit] Add blue-zone support for Telugu.
2349
2350 This essentially moves the Telugu script from the `Indic' hinter to
2351 the `Latin' hinter.
2352
2353 Note that this is a first shot and quite certainly needs
2354 refinements.
2355
2356 * src/autofit/afblue.dat: Add blue zone data for Telugu.
2357
2358 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2359
2360 * src/autofit/afscript.h: Add Telugu standard characters and move
2361 data out of AF_CONFIG_OPTION_INDIC block.
2362
2363 * src/autofit/afranges.c: Move Telugu data out of
2364 AF_CONFIG_OPTION_INDIC block.
2365
2366 * src/autofit/afstyles.h: Update Telugu data; in particular, use
2367 AF_WRITING_SYSTEM_LATIN.
2368
Werner Lemberg54306f52014-10-18 10:42:28 +020023692014-10-18 David Wimsey <david@wimsey.us>
2370
2371 [cmake] Add iOS build support.
Werner Lemberg1050aa92014-10-18 10:45:09 +02002372 From Savannah patch #8497.
Werner Lemberg54306f52014-10-18 10:42:28 +02002373
2374 * builds/cmake/iOS.cmake: New file. Universal binaries are built
2375 with both 32 and 64 bit arm architectures.
2376
2377 * CMakeLists.txt (IOS_PLATFORM): New variable for running the iOS
2378 toolchain. Possible values are `OS' to build on iOS, or
2379 `SIMULATOR' to build on APPLE.
2380
Werner Lemberg1a1750f2014-10-16 22:54:01 +020023812014-10-16 Behdad Esfahbod <behdad@behdad.org>
2382 Werner Lemberg <wl@gnu.org>
2383
2384 [cff] Add `CFF_CONFIG_OPTION_DARKENING_PARAMETERS' config macro.
2385
2386 * devel/ftoption.h, include/config/ftoption.h
2387 (CFF_CONFIG_OPTION_DARKENING_PARAMETERS): New macro.
2388
2389 * src/cff/cffobjs.c (SET_DARKENING_PARAMETERS,
2390 SET_DARKENING_PARAMETERS_0): New macros.
2391 (cff_driver_init): Use new macros.
2392
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -040023932014-10-14 Alexei Podtelezhnikov <apodtele@gmail.com>
2394
2395 [truetype] Limit delta shift range.
2396
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002397 The valid range for delta shift is zero through six. Negative values
2398 are invalid according to
2399
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -04002400 https://developer.apple.com/fonts/TrueType-Reference-Manual/RM04/Chap4.html#delta%20shift
2401
2402 * src/truetype/ttobjs.h (delta_shift, delta_base): Make unsigned.
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002403 * src/truetype/ttinterp.h (DO_SDS): Throw an error if `delta_shift'
2404 is out of range.
2405 (Ins_DELTAP, Ins_DELTAC): Optimize for valid `delta_shift'.
Alexei Podtelezhnikov7e83f062014-10-14 23:03:56 -04002406
Werner Lemberg03987bf2014-10-16 07:19:46 +020024072014-10-16 Werner Lemberg <wl@gnu.org>
2408
2409 A better fix for Savannah bug #43392.
2410 Suggested by Doug Felt <dougfelt@gmail.com>.
2411
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002412 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Set
Werner Lemberg03987bf2014-10-16 07:19:46 +02002413 `vertAdvance' to zero...
2414
2415 * src/truetype/ttgload.c (TT_Load_Glyph): ... and set here a default
2416 value for `vertAdvance' based on `linearVertAdvance' in case
2417 `vertAdvance' is zero. Note that the previous computed ad-hoc value
2418 for `linearVertAdvance' was apparently not tested in a real-life
2419 situation.
2420
David Weiß3889cb22014-10-14 11:35:16 +020024212014-10-14 David Weiß <David.Weiss@ptvgroup.com>
2422
2423 [build] Better optimization settings for vc2010 solution file.
2424
2425 * builds/windows/vc2010/freetype.sln,
2426 builds/windows/vc2010/freetype.vcxproj: Updated.
2427
Werner Lemberg8f178092014-10-14 08:28:09 +020024282014-10-14 Werner Lemberg <wl@gnu.org>
2429
2430 [autofit] Adjust Devenagari character range.
2431
2432 * src/autofit/afranges.c (af_deva_uniranges): Omit characters that
2433 are common to all other Indic scripts.
2434
Werner Lemberg1ca5fa12014-10-12 08:31:32 +020024352014-10-12 Werner Lemberg <wl@gnu.org>
2436
2437 [sfnt] Fix Savannah bug #43392.
2438
2439 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics): Don't let
2440 vertical metrics uninitialized.
2441
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -040024422014-10-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2443
2444 [base] Small bbox correction.
2445
2446 * src/base/ftbbox.c (FT_Outline_Get_BBox): Start from nonsense bbox
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002447 instead of initial point that could be `off' in conic outlines.
Alexei Podtelezhnikov673a28e2014-10-11 14:40:51 -04002448
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -040024492014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2450
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -04002451 [base] Fix Savannah bug #43356.
2452
2453 * src/base/ftbbox.c (BBox_Move_To, BBox_Conic_To): Update bbox in case
Werner Lembergdf3d67e2014-10-16 07:24:44 +02002454 of implicit `to'.
Alexei Podtelezhnikov40dac112014-10-09 00:58:14 -04002455 (BBox_Line_To): New emitter that does not update bbox.
2456
24572014-10-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2458
Alexei Podtelezhnikov2ffcf172014-10-08 22:01:08 -04002459 [base] Introduce and use new macro `FT_UPDATE_BBOX'
2460
2461 * src/base/ftbbox.c (FT_UPDATE_BBOX): New macro.
2462 (FT_Outline_Get_BBox): Use it here.
2463
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -040024642014-10-02 Alexei Podtelezhnikov <apodtele@gmail.com>
2465
2466 [base] Significant optimization of `ft_div64by32'
2467
2468 We shift as many bits as we can into the high register, perform
2469 32-bit division with modulo there, then work through the remaining
2470 bits with long division. This optimization is especially noticeable
2471 for smaller dividends that barely use the high register.
2472
2473 * src/base/ftcalc.c (ft_div64by32): Updated.
2474
Dave Arnold537c55d2014-10-02 06:32:32 +020024752014-10-02 Dave Arnold <darnold@adobe.com>
2476
2477 [cff] Fix Savannah bug #43271.
2478
2479 * src/cff/cf2font.c (cf2_computeDarkening): Change overflow
2480 detection to use logarithms and clamp `scaledStem'.
2481
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -040024822014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
2483
Alexei Podtelezhnikov74d0aad2014-10-01 23:27:15 -04002484 * src/base/ftcalc.c: Remove miscellaneous type casts.
2485
24862014-10-01 Alexei Podtelezhnikov <apodtele@gmail.com>
2487
Alexei Podtelezhnikov418e18f2014-10-01 22:36:40 -04002488 [base] Use more common `FT_MSB' implementation with masks.
2489
2490 * src/base/ftcalc.c (FT_MSB): Updated.
2491
Alexei Podtelezhnikov955aff12014-09-30 23:09:39 -040024922014-09-30 Alexei Podtelezhnikov <apodtele@gmail.com>
2493
2494 [base] Clean up.
2495
2496 * src/base/ftcalc.c (FT_MOVE_SIGN): New macro for frequently used
2497 code.
2498
Alexei Podtelezhnikov7f491112014-09-25 22:54:38 -040024992014-09-25 Alexei Podtelezhnikov <apodtele@gmail.com>
2500
2501 [base] Avoid unnecessary long division.
2502
2503 This applies to `FT_MulDiv' but not to `FT_DivFix', where overflows or
2504 lack thereof are predicted accurately.
2505
2506 * src/base/ftcalc.c (ft_div64by32): Improve readability.
2507 (FT_MulDiv, FT_MulDiv_No_Round) [!FT_LONG64]: Use straight division
2508 when multiplication stayed within 32 bits.
2509
Werner Lemberg5b68e4f2014-09-24 19:06:13 +020025102014-09-24 Werner Lemberg <wl@gnu.org>
2511
2512 [autofit] Minor clean-ups.
2513
2514 * src/autofit/afhints.c (AF_FLAGS): Remove obsolete values.
2515
2516 * src/autofit/afhints.c (af_glyph_hints_dump_points,
2517 af_glyph_hints_align_strong_points): Updated.
2518
2519 * src/autofit/aflatin.c (af_latin_hints_link_segments,
2520 af_latin_hints_compute_segments), src/autofit/afcjk.c
2521 (af_cjk_hints_link_segments), src/autofit/aflatin2.c
2522 (af_latin2_hints_link_segments, af_latin2_hints_compute_segments):
2523 There are no longer fake segments since more than 10 years...
2524
Werner Lemberg387a9fe2014-09-22 06:42:24 +020025252014-09-22 Werner Lemberg <wl@gnu.org>
2526
2527 [autofit] Minor code streamlining.
2528
2529 * src/autofit/afhints.c (af_axis_hints_new_edge): Remove redundant
2530 initialization.
2531
Alexei Podtelezhnikov5c894842014-09-19 22:03:15 -040025322014-09-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2533
2534 * src/base/ftcalc.c: Harmonize code.
2535
25362014-09-15 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002537
Alexei Podtelezhnikovef070d42014-09-15 22:06:19 -04002538 [base] Tighten the overflow check in `FT_MulDiv'.
2539
2540 * src/base/ftcalc.c (FT_MulDiv) [!FT_LONG64]: Updated.
2541
25422014-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2543
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002544 Fix Savannah bug #43153.
2545
2546 * src/psaux/psconv.c (PS_Conv_ToFixed): Add protection against
Alexei Podtelezhnikov7abdb8c2014-10-02 23:13:33 -04002547 overflow in `divider'.
Alexei Podtelezhnikovbc12d9e2014-09-08 21:27:43 -04002548
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -040025492014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
2550
Alexei Podtelezhnikov336735d2014-09-03 22:55:26 -04002551 [base] Tighten the overflow check in `FT_DivFix'.
2552
2553 This fixes a 13-year old bug. The original overflow check should have
2554 been updated when rounding was introduced into this function
2555 (c2cd00443b).
2556
2557 * src/base/ftcalc.c (FT_DivFix) [!FT_LONG64]: Updated.
2558 * include/freetype.h (FT_DivFix): Updated documentation.
2559
25602014-09-03 Alexei Podtelezhnikov <apodtele@gmail.com>
2561
Alexei Podtelezhnikov32128522014-09-03 21:57:42 -04002562 [base] Tighten the overflow check in `FT_MulFix'.
2563
2564 * src/base/ftcalc.c (FT_MulFix) [!FT_LONG64]: Updated.
2565
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -040025662014-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
2567
2568 [truetype] Shortcut ppem calculations for square pixels.
2569
2570 * src/truetype/ttinterp.h (TT_ExecContextRec): New field
2571 `cur_ppem_func' with a function pointer.
2572 * src/truetype/ttinterp.c (TT_RunIns): Initialize `cur_ppem_func'
2573 depending on the pixel geometry to either...
2574 (Current_Ppem_Stretched): ... this for stretched pixels.
2575 (Current_Ppem): ... or this for square pixels.
2576 (DO_MPPEM, DO_MPS, Ins_DELTAP, Ins_DELTAC): Use `cur_ppem_func'.
2577
Behdad Esfahbod1ec98b22014-08-31 08:47:11 +020025782014-08-31 Behdad Esfahbod <behdad@behdad.org>
2579
2580 Don't use `register' keyword. Fixes compiler warnings.
2581
2582 * src/base/ftcalc.c (FT_Add64) [!FT_LONG64]: Do it.
2583 * src/gzip/inftrees.c (huft_build): Ditto.
2584 * src/truetype/ttinterp.c (TT_MulFix14_arm): Ditto.
2585
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -040025862014-08-24 Alexei Podtelezhnikov <apodtele@gmail.com>
2587
Alexei Podtelezhnikov125c3ca2014-09-02 22:38:59 -04002588 [truetype] Optimize DELTAP and DELTAC.
Alexei Podtelezhnikova8bc49e2014-08-24 22:14:01 -04002589
2590 * src/truetype/ttinterp.c (Ins_DELTAP, Ins_DELTAC): Move ppem
2591 calculations outside of the loop.
2592
Alexei Podtelezhnikov98688592014-08-21 23:28:52 -040025932014-08-21 Alexei Podtelezhnikov <apodtele@gmail.com>
2594
2595 Fix Savannah bug #43033.
2596
2597 * include/config/ftconfig.h, builds/unix/ftconfig.in,
2598 builds/vms/ftconfig.h [FT_LONG64]: Do not disable the macro when
2599 64-bit type is `long'.
2600
Alexei Podtelezhnikov8fd87d42014-08-20 00:57:22 -040026012014-08-20 Alexei Podtelezhnikov <apodtele@gmail.com>
2602
2603 [base] Small optimization of `FT_MulFix'.
2604
2605 * src/base/ftcalc.c (FT_MulFix): Loosen up the condition for direct
2606 32-bit calculations.
2607
Alexei Podtelezhnikovf09326a2014-08-20 00:08:38 -040026082014-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
2609
2610 [base] Use unsigned calculation in `FT_MulDiv'.
2611
2612 * src/base/ftcalc.c (FT_MulDiv): Updated to expand 32-bit range.
2613
Alexei Podtelezhnikov382f3152014-08-18 23:16:15 -040026142014-08-18 Alexei Podtelezhnikov <apodtele@gmail.com>
2615
2616 [base] Remove truncation in `FT_DivFix'.
2617
2618 * src/base/ftcalc.c (FT_DivFix): Updated.
2619
Alexei Podtelezhnikov5ef20232014-08-14 23:21:46 -040026202014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
2621
2622 Minor refactoring.
2623
2624 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Updated.
2625
26262014-08-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikovc7022462014-08-14 23:01:01 -04002627
2628 Turn FT_MSB into a macro when using gcc builtins.
2629
2630 * src/base/ftcalc.c, include/internal/ftcalc.h: Updated.
2631
Alexei Podtelezhnikovf8efbcf2014-08-12 23:22:17 -040026322014-08-12 Alexei Podtelezhnikov <apodtele@gmail.com>
2633
2634 [base] Avoid undefined FT_MSB in `BBox_Cubic_Check'.
2635
2636 * src/base/ftbbox.c (BBox_Cubic_Check): Update.
2637 (update_cubic_max): Repalce with...
2638 (cubic_peak): ... this, which now handles upscaling.
2639
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -040026402014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2641
Alexei Podtelezhnikov28018d42014-08-12 00:26:16 -04002642 [base] Handle collapsed outlines to avoid undefined FT_MSB.
2643
2644 * src/base/ftoutln.c (FT_Outline_Get_Orientation): Update.
2645
26462014-08-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2647
Alexei Podtelezhnikov47289932014-08-11 23:39:34 -04002648 [base] Restore FT_MulFix inlining.
2649
2650 * include/freetype.h (FT_MulFix): Unconditionally defined.
2651
2652 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: Move code from here...
2653
2654 * include/internal/ftcalc.h [FT_MULFIX_ASSEMBLER]: ... to here,
2655 which conditionally replaces the function with an inline version
2656 through the macro.
2657
Alexei Podtelezhnikov90be4b62014-08-08 22:27:10 -040026582014-08-08 Alexei Podtelezhnikov <apodtele@gmail.com>
2659
2660 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Refactor.
2661
Werner Lembergd17cabf2014-07-26 09:53:50 +090026622014-07-26 Werner Lemberg <wl@gnu.org>
2663
2664 [cff] Fix typo.
2665
2666 * src/cff/cf2hints.c (cf2_glyphpath_computeOffset): Use correct
2667 offsets in third quadrant.
2668
2669 Reported by maks <maksqwe1@ukr.net>.
2670
Werner Lemberg4e754132014-07-17 17:34:49 +090026712014-07-17 Werner Lemberg <wl@gnu.org>
2672
2673 Fix Savannah bug #42788.
2674
2675 * src/pfr/pfrobjs.c: Include `ftcalc.h'.
2676
Alexei Podtelezhnikovc0a6f202014-07-16 22:05:56 -040026772014-07-16 Alexei Podtelezhnikov <apodtele@gmail.com>
2678
2679 Replace `ft_highpow2' function.
2680
2681 * src/pfr/pfrobjs.c (pfr_face_get_kerning): Use `FT_MSB' instead of
2682 `ft_highpow2'.
2683
2684 * src/base/ftutil.c, include/internal/ftobjs.h (ft_highpow2): Remove
2685 it.
2686
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -040026872014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2688
Werner Lembergcbbf26b2014-07-17 17:27:12 +09002689 * src/base/ftcalc.c (FT_MSB): Utilize gcc builtins.
Alexei Podtelezhnikov177982e2014-07-15 23:54:34 -04002690
26912014-07-15 Alexei Podtelezhnikov <apodtele@gmail.com>
2692
Alexei Podtelezhnikov71330ce2014-07-15 23:30:45 -04002693 [base] Move assembler code back in the source file.
2694
2695 FT_MulFix assembler used to reside in ftcalc.c before f47d263f1b.
2696
2697 * include/config/ftconfig.h, builds/unix/ftconfig.in,
2698 builds/vms/ftconfig.h [FT_MULFIX_ASSEMBLER]: Move code from here...
2699
2700 * src/base/ftcalc.c [FT_MULFIX_ASSEMBLER]: ... to here.
2701
27022014-07-14 Alexei Podtelezhnikov <apodtele@gmail.com>
Alexei Podtelezhnikov1183cd42014-07-14 22:30:55 -04002703
2704 [base] Further clean up color bitmap conversion.
2705
2706 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Stop
2707 using FT_MulFix and FT_DivFix since all calculations fit into 32 bits.
2708
Werner Lemberg441b3f32014-07-13 02:28:14 +090027092014-07-13 Werner Lemberg <wl@gnu.org>
2710
2711 [truetype] Improve handling of buggy `prep' tables.
2712
2713 In case of an error in the `prep' table, no longer try to execute it
2714 again and again. This makes FreeType handle endless loops in buggy
2715 fonts much faster.
2716
2717 * src/truetype/ttobjs.h (TT_SizeRec): The fields `bytecode_ready'
2718 and `cvt_ready' are now negative if not initialized yet, otherwise
2719 they indicate the error code of the last run.
2720
2721 * src/truetype/ttobjs.c (tt_size_run_fpgm, tt_size_run_prep,
2722 tt_size_done_bytecode, tt_size_init_bytecode,
2723 tt_size_ready_bytecode, tt_size_init, tt_size_done, tt_size_reset):
2724 Updated.
2725
2726 * src/truetype/ttgload.c (tt_loader_init): Updated.
2727 * src/truetype/ttinterp.c (TT_RunIns): Force reexecution of `fpgm'
2728 and `prep' only if we are in the `glyf' table.
2729
Werner Lemberge98e2bc2014-07-12 16:37:39 +090027302014-07-12 Werner Lemberg <wl@gnu.org>
2731
2732 * builds/vms/ftconfig.h: Synchronize.
2733 Problem reported by Alexei.
2734
Alexei Podtelezhnikov35576bf2014-07-11 22:40:34 -040027352014-07-11 Alexei Podtelezhnikov <apodtele@gmail.com>
2736
2737 [base] Clean up bitmap conversion.
2738
2739 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
2740 appropriate FT_DivFix and remove superfluous upscaling.
2741
Alexei Podtelezhnikovceab95a2014-07-04 23:01:32 -040027422014-07-04 Alexei Podtelezhnikov <apodtele@gmail.com>
2743
2744 [base] Small optimization of the ancient code.
2745
2746 * src/base/ftcalc.c (FT_MulDiv, FT_MulDiv_No_Round): Loosen up the
2747 condition for direct 32-bit calculations.
2748
Werner Lemberg38975562014-06-27 06:55:56 +020027492014-06-27 Werner Lemberg <wl@gnu.org>
2750
2751 Fix Apple standard glyph names.
2752
2753 * src/sfnt/ttpost.c (tt_post_default_names): Synchronize with
2754 `tools/glnames.py'
2755
2756 Problem reported by Adam Twardoch <adam@fontlab.com>.
2757
Werner Lembergcf2347c2014-06-17 09:01:04 +020027582014-06-17 Werner Lemberg <wl@gnu.org>
2759
Werner Lemberg231171f2014-06-17 09:14:32 +02002760 Partially revert commit from 2014-06-13.
2761
2762 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Move
2763 declaration of `p_first' and `p_last' out of the loop.
2764
27652014-06-17 Werner Lemberg <wl@gnu.org>
2766
Werner Lembergcf2347c2014-06-17 09:01:04 +02002767 * builds/unix/freetype2.m4: s/AC_PATH_PROG/AC_PATH_TOOL/.
2768
2769 This simplifies cross-compiling.
2770
Werner Lemberg6497b9c2014-06-13 09:28:00 +020027712014-06-13 Werner Lemberg <wl@gnu.org>
2772
Werner Lemberge5c0fff2014-06-13 14:01:20 +02002773 Fix more compiler warnings.
2774 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
2775
2776 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
2777 Make integer constant unsigned.
2778
2779 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
2780 <TT_SBIT_TABLE_TYPE_SBIX>: Fix types.
2781 (tt_sbit_decoder_load_compound, tt_face_load_sbix_image): Add proper
2782 casts.
2783
27842014-06-13 Werner Lemberg <wl@gnu.org>
2785
Werner Lemberg6497b9c2014-06-13 09:28:00 +02002786 Fix compiler warnings.
2787 Reported by Wojciech Mamrak <wmamrak@gmail.com>.
2788
2789 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage),
Werner Lembergcbbf26b2014-07-17 17:27:12 +09002790 src/autofit/afmodule.c (af_property_set): Fix `signed' vs.
Werner Lemberg6497b9c2014-06-13 09:28:00 +02002791 `unsigned' issues.
2792
2793 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Make compiler
2794 happy.
2795
2796 * src/base/ftlcdfil.c (_ft_lcd_filter_fir): Use only four elements
2797 for `fir'.
2798 Fix `signed' vs. `unsigned' issues.
2799
2800 * src/sfnt/sfobjs.c (WRITE_BYTE): Removed, unused.
2801 (WRITE_USHORT, WRITE_ULONG): Add proper casts.
2802
2803 * src/truetype/ttgload.c (TT_Get_VMetrics): Add proper casts.
2804
2805 * src/truetype/ttinterp.c (Ins_DELTAP): Add proper casts for `B1'
2806 and `B2'.
2807
Alexey Petruchik02f21702014-05-16 08:09:43 +020028082014-05-16 Alexey Petruchik <alexey.petruchik@gmail.com>
2809
2810 [cmake] Add option to build OS X framework.
2811
2812 * CMakeLists.txt: Update accordingly.
2813
2814 * builds/mac/freetype-Info.plist: New file.
2815
Pavel Koshevoy15da66a2014-05-13 07:33:48 +020028162014-05-13 Pavel Koshevoy <pkoshevoy@gmail.com>
2817
2818 * CMakeLists.txt (BASE_SRCS): Add missing `ftbdf.c'.
2819
Werner Lemberg07e7b8a2014-05-11 08:00:25 +020028202014-05-11 Werner Lemberg <wl@gnu.org>
2821
Werner Lembergfaa21472014-05-11 12:44:00 +02002822 [autofit] Fix variable initializations.
2823
2824 * src/autofit/afhints.c (af_glyph_hints_reload): Assign default
2825 values to `in_dir' and `out_dir' for all points.
2826
28272014-05-11 Werner Lemberg <wl@gnu.org>
2828
Werner Lemberg07e7b8a2014-05-11 08:00:25 +02002829 [autofit] Fix crash with font `CabinSketch-Bold.ttf'.
2830
2831 Problem reported by Ralf S. Engelschall <rse@engelschall.com>.
2832
2833 * src/autofit/afhints.c (af_glyph_hints_reload): Fix threshold for
2834 finding first non-near point.
2835 Properly initialize non-near point deltas.
2836
Werner Lemberg63bef9a2014-05-01 07:16:05 +020028372014-05-01 Werner Lemberg <wl@gnu.org>
2838
Werner Lembergc576bb02014-05-01 17:24:19 +02002839 [autofit] Add blue-zone support for Devanagari.
2840
2841 This essentially moves the Devanagari script from the `Indic' hinter
2842 to the `Latin' hinter. Thanks to Girish Dalvi
2843 <girish.dalvi@gmail.com> for guidance with blue zone characters!
2844
2845 * src/autofit/afblue.dat: Add blue zone data for Devanagari.
2846
2847 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2848
2849 * src/autofit/afscript.h: Add Devanagari standard characters and
2850 move data out of AF_CONFIG_OPTION_INDIC block.
2851
2852 * src/autofit/afranges.c: Move Devanagari data out of
2853 AF_CONFIG_OPTION_INDIC block.
2854 Move U+20B9, (new) Rupee sign, from Latin to Devanagari.
2855
2856 * src/autofit/afstyles.h: Update Devanagari data; in particular, use
2857 AF_WRITING_SYSTEM_LATIN.
2858
28592014-05-01 Werner Lemberg <wl@gnu.org>
2860
Werner Lemberg63bef9a2014-05-01 07:16:05 +02002861 [autofit] Fix handling of neutral blue zones in stems.
2862
2863 * src/autofit/afhints.h (AF_Edge_Flags): New value
2864 `AF_EDGE_NEUTRAL'.
2865
2866 * src/autofit/aflatin.c (af_latin_hints_compute_blue_edges): Trace
2867 neutral blue zones with AF_EDGE_NEUTRAL.
2868 (af_latin_hint_edges): Skip neutral blue zones if necessary.
2869
Werner Lembergccfc4b42014-04-28 21:13:14 +020028702014-04-28 Werner Lemberg <wl@gnu.org>
2871
2872 [autofit] Introduce neutral blue zones to the latin module.
2873
2874 Such blue zones match either the top or the bottom of a contour. We
2875 need them for scripts where accent-like elements directly touch the
2876 base character (for example, some vowel signs in Devanagari, cf.
2877 U+0913 or U+0914).
2878
2879 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_NEUTRAL): New
2880 property.
2881
2882 * src/autofit/afblue.h: Regenerated.
2883
2884 * src/autofit/aflatin.h (AF_LATIN_IS_NEUTRAL_BLUE): New macro.
2885 (AF_LATIN_BLUE_NEUTRAL): New enumeration value.
2886
2887 * src/autofit/aflatin.c (af_latin_metrics_init_blues,
2888 af_latin_hints_compute_blue_edges): Handle neutral blue zones.
2889
Werner Lembergabb3fca2014-04-25 22:13:32 +020028902014-04-25 Werner Lemberg <wl@gnu.org>
2891
2892 * src/autofit/hbshim.c: Partially revert commit from 2014-04-17.
2893
2894 Using input glyph coverage data is simply wrong.
2895
2896 Problem reported by Nikolaus Waxweiler <madigens@gmail.com> and
2897 Mantas MikulÄ—nas <grawity@gmail.com>.
2898
Werner Lembergf1936372014-04-23 08:22:33 +020028992014-04-23 Werner Lemberg <wl@gnu.org>
2900
2901 * src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
2902
2903 This spot has been missed while introducing support for various
2904 drop-out modes years ago (including no drop-out mode, which this
2905 commit fixes).
2906
2907 Problem reported by Patrick Thomas <pthomas505@gmail.com>.
2908
Werner Lembergd9b44702014-04-22 07:33:07 +020029092014-04-22 Werner Lemberg <wl@gnu.org>
2910
2911 * src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
2912
Werner Lemberg98e510e2014-04-20 22:11:27 +020029132014-04-20 Werner Lemberg <wl@gnu.org>
2914
2915 [autofit] Fix Savannah bug #42148.
2916
2917 The adaptation of the cjk auto-hinter module to blue stringsets in
2918 2013-08-25 had three severe bugs. Mea culpa.
2919
2920 1. Contrary to the latin auto-hinter, characters for reference and
2921 overshoot values of a blue zone are specified separately. Due to
2922 the screwed-up change it didn't work at all.
2923
2924 2. A boolean comparison was erroneously replaced with a cast,
2925 causing invalid results with the `^' operator later on. The
2926 visual artifact caused by this problem is the topic of the bug
2927 report.
2928
2929 3. Two flag values were inverted, causing incorrect assignment of
2930 reference and overshoot values.
2931
2932 * src/autofit/afblue.dat: Fix CJK bluestrings, introducing a new
2933 syntax to have both reference and overshoot characters in a single
2934 string. This is error #1.
2935 Add extensive comments.
2936
2937 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_CJK_FILL): Removed, no
2938 longer used.
Werner Lembergccfc4b42014-04-28 21:13:14 +02002939 (AF_BLUE_PROPERTY_CJK_TOP, AF_BLUE_PROPERTY_CJK_HORIZ): Fix values.
Werner Lemberg98e510e2014-04-20 22:11:27 +02002940 This is error #3.
2941
2942 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
2943
2944 * src/autofit/afcjk.c (af_cjk_metrics_init_blues): Correct error #1.
2945 Use character `|' to separate characters for reference and overshoot
2946 values.
2947 Improve tracing messages, synchronizing them with the latin
2948 auto-hinter.
Werner Lembergccfc4b42014-04-28 21:13:14 +02002949 (af_cjk_hints_compute_blue_edges): Fix value of `is_top_right_blue'.
Werner Lemberg98e510e2014-04-20 22:11:27 +02002950 This is error #2.
2951 (af_cjk_align_linked_edge): Add tracing message.
2952
2953 * src/autofit/afcjk.h (AF_CJK_IS_FILLED_BLUE): Removed, no longer
2954 used.
2955
Werner Lembergbbd83132014-04-17 01:24:36 +020029562014-04-17 Werner Lemberg <wl@gnu.org>
2957
Werner Lemberg8c7fb782014-04-17 15:53:25 +02002958 [autofit] More coverage fixes for complex scripts.
2959
2960 * src/autofit/hbshim.c (af_get_coverage): Merge input glyph coverage
2961 of GSUB lookups into output coverage. Otherwise, ligatures are not
2962 handled properly.
2963 Don't check blue zone characters for default coverage.
2964
29652014-04-17 Werner Lemberg <wl@gnu.org>
2966
Werner Lembergbbd83132014-04-17 01:24:36 +02002967 Make `FT_Get_SubGlyph_Info' actually work.
2968
2969 * src/base/ftobjs.c (FT_Get_SubGlyph_Info): Return FT_Err_Ok
2970 if there is no error.
2971
Werner Lemberg181fd072014-04-15 16:47:05 +020029722014-04-15 Werner Lemberg <wl@gnu.org>
2973
2974 [afblue.pl]: Minor improvements.
2975
2976 * src/tools/afblue.pl: Allow whitespace before comments.
2977 Ignore whitespace in strings.
2978
Werner Lemberg8b1f2a62014-04-14 07:58:19 +020029792014-04-14 Werner Lemberg <wl@gnu.org>
2980
2981 [autofit] Improve coverage handling.
2982
2983 * src/autofit/hbshim.c (af_get_coverage): Don't exclude glyphs
2984 appearing in the GPOS table if we are processing the default
2985 coverage.
2986
David Weber76307872014-04-13 15:41:13 +020029872014-04-13 David Weber <weber.aulendorf@googlemail.com>
2988
2989 [smooth] Fix stand-alone compilation.
2990
2991 * src/smooth/ftgrays.c (FT_BEGIN_STMNT, FT_END_STMNT): Define.
2992
Werner Lemberg8a94b1e2014-04-12 20:44:33 +020029932014-04-12 Werner Lemberg <wl@gnu.org>
2994
2995 [autofit] Redesign the recognition algorithm of strong points.
2996
2997 In particular, local extrema without horizontal or vertical segments
2998 are better recognized:
2999
3000 + A + D
3001 \ /
3002 \ /
3003 \ /
3004 \ /
3005 \ + C
3006 \ /
3007 B +/
3008
3009 If the distances AB and CD are large, point B wasn't previously
3010 detected as an extremum since the `ft_corner_is_flat' function
3011 `swallowed' BC regardless of its direction, tagging point B as weak.
3012 The next iteration started at B and made `ft_corner_is_flat' swallow
3013 point C, tagging it as weak also, et voilà.
3014
3015 To improve that, another pass gets now performed before calling
3016 `ft_corner_is_flat' to improve the `topology' of an outline: A
3017 sequence of non-horizontal or non-vertical vectors that point into
3018 the same quadrant are handled as a single, large vector.
3019
3020 Additionally, distances of near points are now accumulated, which
3021 makes the auto-hinter handle them as if they were prepended to the
3022 next non-near vector.
3023
3024 This generally improves the auto-hinter's rendering results.
3025
3026 * src/autofit/afhints.c (af_glyph_hints_reload): Implement it.
3027
3028 * src/autofit/afhints.h (AF_FLAGS): Remove no longer used flag
3029 `AF_FLAG_NEAR'.
3030
Werner Lemberg71f53e12014-04-05 16:27:19 +020030312014-04-05 Werner Lemberg <wl@gnu.org>
3032
3033 [autofit] Improve scoring algorithm for identifying stems.
3034
3035 Problem reported by Karsten Lücke <karsten.luecke@kltf.de>.
3036
3037 The new algorithm takes care of the width of stems: If the distance
3038 between two segments is larger than the largest stem width, the
3039 demerits quickly increase for larger distances. This improves
3040 hinting of slanted fonts (especially if the inner parts of serifs
3041 have non-horizontal `shoulders'), avoiding false stem links.
3042
3043 * src/autofit/aflatin.c (af_latin_hints_link_segments): Use largest
3044 stem width (if available) to compute better demerits for distances
3045 between stems.
3046 (af_latin_hints_detect_features): Pass stem width array and array
3047 size.
3048 (af_latin_metrics_init_widths): Updated to use original algorithm.
3049 (af_latin_hints_apply): Updated to use new algorithm.
3050
3051 * src/autofit/aflatin.h: Updated.
3052 * src/autofit/afcjk.c: Updated.
3053
Werner Lembergf8555b52014-04-03 05:45:38 +020030542014-04-03 Werner Lemberg <wl@gnu.org>
3055
3056 Don't require `gzip' module for `sfnt'.
3057
3058 Reported by Preet <prismatic.project@gmail.com>.
3059
3060 * src/sfnt/sfobjs.c (woff_open_font): Guard use of
3061 FT_Gzip_Uncompress with FT_CONFIG_OPTION_USE_ZLIB.
3062
Werner Lembergf41070f2014-03-27 17:38:23 +010030632014-03-27 Werner Lemberg <wl@gnu.org>
3064
3065 Fix Savannah bug #38235.
3066
3067 Work around a bug in pkg-config version 0.28 and earlier: If a
3068 variable value gets surrounded by doublequotes (in particular values
3069 for the `prefix' variable), the prefix override mechanism fails.
3070
3071 * builds/unix/freetype2.in: Don't use doublequotes.
3072 * builds/unix/unix-def.in (freetype.pc): Escape spaces in directory
3073 names with backslashes.
3074
Werner Lembergab76d972014-03-24 19:45:03 +010030752014-03-24 Werner Lemberg <wl@gnu.org>
3076
3077 Fix Savannah bug #41946.
3078
3079 Based on a patch from Marek Kašík <mkasik@redhat.com>.
3080
3081 * builds/unix/configure.raw (LIBS_CONFIG): Remove.
3082 * builds/unix/freetype-config.in (libs): Hard-code value.
3083 * builds/unix/unix-def.in: Updated.
3084
Werner Lembergd5159922014-03-22 06:20:54 +010030852014-03-22 Werner Lemberg <wl@gnu.org>
3086
3087 Another revert for the change from 2014-03-18.
3088
3089 Problem reported by Nikolaus Waxweiler <madigens@gmail.com>.
3090
3091 * src/base/ftcalc.c (FT_MulFix): Ensure that an `FT_MulFix' symbol
3092 gets always exported.
3093
Werner Lembergf0c471a2014-03-20 07:13:12 +010030942014-03-20 Werner Lemberg <wl@gnu.org>
3095
3096 CMakeLists.txt: Another fix for include directories.
3097
3098 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
3099
Werner Lembergcc7cf2c2014-03-19 07:35:35 +010031002014-03-19 Werner Lemberg <wl@gnu.org>
3101
Werner Lemberg606c74f2014-03-19 23:46:42 +01003102 CMakeLists.txt: Fix include directories.
3103
3104 Problem reported by Taylor Holberton <taylorcholberton@gmail.com>.
3105
31062014-03-19 Werner Lemberg <wl@gnu.org>
3107
Werner Lembergcc7cf2c2014-03-19 07:35:35 +01003108 Partially revert last commit.
3109
3110 Found by Alexei.
3111
3112 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initializing
3113 those variables is plain wrong, since we are in a loop.
3114
Sean McBride87628722014-03-18 08:39:35 +010031152014-03-18 Sean McBride <sean@rogue-research.com>
3116 Werner Lemberg <wl@gnu.org>
3117
3118 Fix clang warnings.
3119
3120 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Initialize
3121 some variables.
3122
3123 * src/base/ftcalc.c (FT_MulFix): Only use code if
3124 `FT_MULFIX_INLINED' is not defined.
3125
3126 * src/bdf/bdfdrivr.c (bdf_cmap_class), src/cache/ftcbasic.c
3127 (ftc_basic_image_family_class, ftc_basic_image_cache_class,
3128 ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class),
3129 src/cache/ftccmap.c (ftc_cmap_cache_class), src/cache/ftcmanag.c
3130 (ftc_size_list_class, ftc_face_list_class), src/pcf/pcfdrivr.c
3131 (pcf_cmap_class), src/pfr/pfrdrivr.c (pfr_metrics_service_rec): Make
3132 function static.
3133
3134 * src/type1/t1driver.c (t1_ps_get_font_value): Remove redundant
3135 code.
3136
Werner Lemberg23367ff2014-03-17 07:33:14 +010031372014-03-17 Werner Lemberg <wl@gnu.org>
3138
3139 Fix Savannah bug #41869.
3140
3141 This works around a problem with HarfBuzz (<= 0.9.26), which doesn't
3142 validate glyph indices returned by
3143 `hb_ot_layout_lookup_collect_glyphs'.
3144
3145 * src/autofit/hbshim.c (af_get_coverage): Guard `idx'.
3146
3147 * docs/CHANGES: Updated.
3148
Werner Lemberg03181682014-03-14 08:06:06 +010031492014-03-14 Werner Lemberg <wl@gnu.org>
3150
3151 * builds/unix/configure.raw: Don't show error messages of `which'.
3152
Alan Coopersmithed372b72014-03-09 06:14:12 +010031532014-03-09 Alan Coopersmith <alan.coopersmith@oracle.com>
3154
3155 Fix cppcheck 1.64 warning.
3156
3157 * src/autofit/afglobal.c (af_face_globals_new): Catch NULL pointer
3158 dereference in case of error.
3159
Werner Lemberg1a69dc72014-03-09 06:06:58 +010031602014-03-09 Sean McBride <sean@rogue-research.com>
3161
3162 * src/sfnt/ttcmap.c (tt_face_build_cmaps): Remove clang warning.
3163
Werner Lemberg05565362014-03-06 18:56:58 +010031642014-03-06 Werner Lemberg <wl@gnu.org>
3165
Werner Lembergec8853c2014-03-06 19:13:45 +01003166 * Version 2.5.3 released.
3167 =========================
3168
3169
3170 Tag sources with `VER-2-5-3'.
3171
3172 * docs/VERSION.DLL: Update documentation and bump version number to
3173 2.5.3.
3174
3175 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
3176 builds/windows/vc2005/index.html,
3177 builds/windows/vc2008/freetype.vcproj,
3178 builds/windows/vc2008/index.html,
3179 builds/windows/vc2010/freetype.vcxproj,
3180 builds/windows/vc2010/index.html,
3181 builds/windows/visualc/freetype.dsp,
3182 builds/windows/visualc/freetype.vcproj,
3183 builds/windows/visualc/index.html,
3184 builds/windows/visualce/freetype.dsp,
3185 builds/windows/visualce/freetype.vcproj,
3186 builds/windows/visualce/index.html,
3187 builds/wince/vc2005-ce/freetype.vcproj,
3188 builds/wince/vc2005-ce/index.html,
3189 builds/wince/vc2008-ce/freetype.vcproj,
3190 builds/wince/vc2008-ce/index.html: s/2.5.2/2.5.3/, s/252/253/.
3191
3192 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
3193
3194 * builds/unix/configure.raw (version_info): Set to 17:2:11.
3195 * CMakeLists.txt (VERSION_PATCH): Set to 3.
3196 * docs/CHANGES: Updated.
3197
31982014-03-06 Werner Lemberg <wl@gnu.org>
3199
Werner Lemberg05565362014-03-06 18:56:58 +01003200 Fixes for compilation with C++.
3201
3202 * src/autofit/hbshim.c (scripts): Change type to `hb_script_t'.
3203 (af_get_coverage): Updated.
3204 (COVERAGE): Add cast.
3205
Sean McBrideb24e8d32014-03-06 14:54:22 +010032062014-03-06 Sean McBride <sean@rogue-research.com>
3207
3208 Remove more clang analyzer warnings.
3209
3210 * src/bdf/bdflib.c (_bdf_readstream), src/truetype/ttgload.c
3211 (TT_Load_Glyph): Remove dead stores.
3212
Werner Lemberga32758f2014-03-05 08:02:46 +010032132014-03-05 Werner Lemberg <wl@gnu.org>
3214
3215 * builds/unix/configure.raw: Simplify.
3216
suzuki toshiya382f3ef2014-03-05 10:19:15 +090032172014-03-05 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3218
3219 Fix a bug in configure in library dependency setting
Werner Lemberga32758f2014-03-05 08:02:46 +01003220 Reported in https://bugs.freedesktop.org/show_bug.cgi?id=75652.
suzuki toshiya382f3ef2014-03-05 10:19:15 +09003221
3222 * builds/unix/configure.raw: Use `x"${xxx}" != xno' style.
3223
Werner Lembergf48f7dc2014-03-04 04:40:07 +010032242014-03-04 Werner Lemberg <wl@gnu.org>
3225
3226 Minor fix for `make devel'.
3227
3228 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Don't use
3229 pkg-config for bzip2 since not all GNU/Linux distributions have
3230 `bzip2.pc' (and the header file `bzlib.h' is located in /usr/include
3231 normally).
3232
Werner Lemberg7ac76b52014-03-04 04:29:17 +010032332014-03-04 Sean McBride <sean@rogue-research.com>
3234
3235 Fix several clang static analyzer dead store warnings.
3236
3237 * src/autofit/afhints.c (af_glyph_hints_reload,
3238 af_glyph_hints_align_weak_points): Remove unnecessary assignments.
3239
3240 * src/bdf/bdflib.c (bdf_font_load): Ditto.
3241
3242 * src/pshinter/pshalgo.c (psh_glyph_compute_extrema,
3243 psh_glyph_interpolate_other_points): Ditto.
3244
3245 * src/type1/t1load.c (T1_Set_MM_Blend): Ditto.
3246
Werner Lemberg93ebcbd2014-03-03 07:13:45 +010032472014-03-03 Werner Lemberg <wl@gnu.org>
3248
3249 Rewrite library option handling in `configure'.
3250
3251 o Introduce `auto' value for `--with-XXX' library options; this is
3252 now the default.
3253
3254 o First use `pkg-config' for library detection, then fall back to
3255 other tests.
3256
3257 * builds/unix/configure.raw (--with-zlib, --with-bzip2, --with-png,
3258 --with-harfbuzz): Rewrite.
3259 Use new `xxx_reqpriv', `xxx_libpriv', and `xxx_libstaticconf'
3260 variables to collect data for `freetype2.pc' and `freetype-config'.
3261 (FT2_EXTRA_LIBS): Renamed to ...
3262 (ft2_extra_libs): This since it gets no longer substituted.
3263 (REQUIRES_PRIVATE, LIBS_PRIVATE, LIBS_CONFIG, LIBSSTATIC_CONFIG):
3264 New output variables, replacing `XXX_PKG' and `LIBXXX'.
3265 Add notice at the end of `configure' showing the library
3266 configuration.
3267
3268 * builds/unix/freetype-config.in (--static): New command line
3269 option.
3270 (libs): Updated.
3271 (staticlibs): New variable, to be used if `--static' is given.
Werner Lemberg8fa69a82014-12-03 20:07:14 +01003272 * docs/freetype-config.1: Document `--static'.
Werner Lemberg93ebcbd2014-03-03 07:13:45 +01003273
3274 * builds/unix/freetype2.in, builds/unix/unix-def.in: Updated.
3275
Werner Lemberg86026a42014-03-01 06:57:19 +010032762014-03-01 Werner Lemberg <wl@gnu.org>
3277
Werner Lemberge962a912014-03-01 21:00:02 +01003278 Avoid `long long' warnings with older gcc compilers.
3279 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
3280
3281 * builds/unix/configure.raw: Don't use gcc's `-pedantic' flag for
3282 versions < 4.6. This is especially needed for Max OS X since this
3283 OS runs a gcc variant (or emulation) based on version 4.2.1.
3284
32852014-03-01 Werner Lemberg <wl@gnu.org>
3286
Werner Lemberg6030a9f2014-03-01 14:01:12 +01003287 * docs/INSTALL.CROSS: Revised and updated.
3288
32892014-03-01 Werner Lemberg <wl@gnu.org>
3290
Werner Lemberg646db052014-03-01 12:48:07 +01003291 Make `make clean' remove `freetype2.pc'.
3292
3293 This is a generated file at build time, not configure time.
3294
3295 * builds/unix/unix-def.in (DISTCLEAN): Move `freetype2.pc' to ...
3296 (CLEAN): This variable.
3297
32982014-03-01 Werner Lemberg <wl@gnu.org>
3299
Werner Lemberg00c79ed2014-03-01 12:32:20 +01003300 Use pkg-config for detecting libpng and libbz2 also.
3301
3302 * builds/unix/configure.raw (HAVE_PKG): New variable.
3303 Search for libbz2 using `pkg-config'; s/BZ2/BZIP2/.
3304 Search for libpng using `pkg-config'.
3305 Fix definition of `LIBHARFBUZZ' variable.
3306 * builds/unix/freetype-config.in ($libs): Updated.
3307 * builds/unix/freetype2.in: Add `URL' field.
3308 Update `Requires.private' and `Libs.private'.
3309 * builds/unix/unix-def.in: Updated.
3310
33112014-03-01 Werner Lemberg <wl@gnu.org>
3312
Werner Lemberg86026a42014-03-01 06:57:19 +01003313 Add configure support for HarfBuzz.
3314
3315 * builds/unix/pkg.m4: New file.
3316 * builds/unix/configure.raw: Search for libharfbuzz using
3317 `pkg-config'.
3318 Add `--without-harfbuzz' option.
3319 * builds/unix/freetype-config.in, builds/unix/freetype2.in,
3320 builds/unix/unix-def.in (freetype-config, freetype2.pc): Handle
3321 HarfBuzz.
3322
3323 * docs/INSTALL.UNIX: Document interdependency of Freetype with
3324 HarfBuzz.
3325
Alexei Podtelezhnikov6adda682014-02-28 09:24:26 +010033262014-02-28 Alexei Podtelezhnikov <apodtele@gmail.com>
3327
3328 [cff] Math simplifications.
3329
3330 * src/cf2blues.c (cf2_blues_init): Use `FT_MulDiv'.
3331 * src/cf2ft.c (cf2_getScaleAndHintFlag): Use simple division.
3332
Dave Arnold0eae6eb2014-02-28 07:40:01 +010033332014-02-28 Dave Arnold <darnold@adobe.com>
3334
Dave Arnold135c3fa2014-02-28 07:42:42 +01003335 [cff] Fix Savannah bug #41697, part 2.
3336
3337 * src/cff/cf2ft.c (cf2_initLocalRegionBuffer,
3338 cf2_initGlobalRegionBuffer): It is possible for a charstring to call
3339 a subroutine if no subroutines exist. This is an error but should
3340 not trigger an assert. Split the assert to account for this.
3341
33422014-02-28 Dave Arnold <darnold@adobe.com>
3343
Dave Arnold0eae6eb2014-02-28 07:40:01 +01003344 [cff] Fix Savannah bug #41697, part 1.
3345
3346 * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
3347 invalid. In this case, it is not safe to use the length of
3348 `hStemHintArray'; the exception has already been recorded in
3349 `hintMask'.
3350
Werner Lembergeee4ff82014-02-26 18:12:36 +010033512014-02-26 Werner Lemberg <wl@gnu.org>
3352
Werner Lemberga2b5f662014-02-26 19:50:18 +01003353 [sfnt] Fix Savannah bug #41696.
3354
3355 * src/sfnt/ttcmap.c (tt_cmap0_validate, tt_cmap2_validate,
3356 tt_cmap4_validate, tt_cmap14_validate): Fix limit tests.
3357
33582014-02-26 Werner Lemberg <wl@gnu.org>
3359
Werner Lembergeee4ff82014-02-26 18:12:36 +01003360 [winfnt] Fix Savannah bug #41694.
3361
3362 * src/winfonts/winfnt.c (FNT_Load_Glyph): Check glyph offset.
3363
33642014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg9a567642014-02-26 13:08:07 +01003365
Werner Lemberg08c628d2014-02-26 14:18:03 +01003366 [cff] Fix Savannah bug #41693.
3367
3368 * src/cff/cffload.c (CFF_Load_FD_Select): Reject empty array.
3369
Werner Lembergeee4ff82014-02-26 18:12:36 +010033702014-02-26 Werner Lemberg <wl@gnu.org>
Werner Lemberg08c628d2014-02-26 14:18:03 +01003371
Werner Lemberg9a567642014-02-26 13:08:07 +01003372 [bdf] Fix Savannah bug #41692.
3373
3374 bdflib puts data from the input stream into a buffer in chunks of
3375 1024 bytes. The data itself gets then parsed line by line, simply
3376 increasing the current pointer into the buffer; if the search for
3377 the final newline character exceeds the buffer size, more data gets
3378 read.
3379
3380 However, in case the current line's end is very near to the buffer
3381 end, and the keyword to compare with is longer than the current
3382 line's length, an out-of-bounds read might happen since `memcmp'
3383 doesn't stop properly at the string end.
3384
3385 * src/bdf/bdflib.c: s/ft_memcmp/ft_strncmp/ to make comparisons
3386 stop at string ends.
3387
suzuki toshiya91c7a972014-02-17 16:38:31 +090033882014-02-17 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3389
3390 [autofit] Fix `make multi' compilation.
3391
suzuki toshiyacc9a0c22014-02-17 16:43:54 +09003392 * src/autofit/hbshim.c: Include `afglobal.h' and `aftypes.h'.
suzuki toshiya91c7a972014-02-17 16:38:31 +09003393
Werner Lemberg6b290fd2014-02-19 09:26:54 +010033942014-02-19 Werner Lemberg <wl@gnu.org>
3395 Simon Bünzli <zeniko@gmail.com>
3396
3397 Fix Savannah bug #32902.
3398
3399 Patch taken from
3400
3401 https://code.google.com/p/sumatrapdf/source/browse/trunk/ext/_patches/freetype2.patch?spec=svn8620&r=8620#87
3402
3403 with slight modifications.
3404
3405 * src/type1/t1parse.c (T1_Get_Private_Dict): Add heuristic test to
3406 handle fonts that incorrectly use \r at the beginning of an eexec
3407 block.
3408
Simon Bünzlidf14e6c2014-02-19 08:42:52 +010034092014-02-19 Simon Bünzli <zeniko@gmail.com>
3410
3411 Fix Savannah bug #41590.
3412
3413 * src/type1/t1load.c (parse_encoding): Protect against invalid
3414 number.
3415
Dave Arnold89a94d42014-02-12 23:45:47 +010034162014-02-12 Dave Arnold <darnold@adobe.com>
3417
3418 [cff] Optimize by using `FT_MulDiv'.
3419 Suggested by Alexei.
3420
3421 * src/cff/cf2font.c (cf2_computeDarkening): Do it.
3422
Werner Lemberg85ee27a2014-02-12 23:27:41 +010034232014-02-12 Werner Lemberg <wl@gnu.org>
3424
3425 Fix Savannah bug #41465.
3426
3427 * builds/unix/unix-def.in (CLEAN): Add `freetype-config'.
3428 (DISTCLEAN): Remove `freetype-config'.
3429
Sean McBride7be2a942014-02-08 13:55:38 +010034302014-02-08 Sean McBride <sean@rogue-research.com>
3431
3432 Fix clang static analyzer and compiler warnings.
3433
3434 * src/autofit/afhints.c (af_glyph_hints_align_weak_points),
3435 src/autofit/afloader (af_loader_load_g) <FT_GLYPH_FORMAT_COMPOSITE>,
3436 src/base/ftcalc.c (FT_MSB), src/base/ftoutln.c
3437 (FT_Outline_Decompose), src/bdf/bdfdrivr.c (bdf_interpret_style),
3438 src/cff/cffparse.c (cff_parse_integer), src/cid/cidparse.c
3439 (cid_parser_new), src/pfr/pfrload.c (pfr_phy_font_load),
3440 src/raster/ftraster.c (Decompose_Curve), src/sfnt/sfdriver.c
3441 (sfnt_get_ps_name), src/sfnt/ttcmap.c (tt_cmap12_next,
3442 tt_cmap13_next), src/smooth/ftgrays.c (gray_hline): Remove dead
3443 code.
3444
3445 * src/autofit/afmodule.c (af_property_get_face_globals,
3446 af_property_set, af_property_get), src/base/ftbitmap.c
3447 (ft_gray_for_premultiplied_srgb_bgra): Make functions static.
3448
3449 * src/base/ftobjs.c (ft_remove_renderer): Protect against
3450 library == NULL.
3451 (ft_property_do): Make function static.
3452
3453 * src/base/ftrfork.c: Include `ftbase.h'.
3454
3455 * src/sfnt/ttsbit.c (tt_face_load_sbix_image)
3456 [!FT_CONFIG_OPTION_USE_PNG], src/type1/t1gload.c
3457 (T1_Compute_Max_Advance): Avoid compiler warning.
3458
3459 * src/truetype/ttinterp.c (TT_New_Context): Reduce scope of
3460 variable.
3461
Werner Lembergab98c5e2014-02-08 11:34:33 +010034622014-02-08 Werner Lemberg <wl@gnu.org>
3463
3464 Fix Windows build directories.
3465
3466 The build target is now `windows' instead of `win32'.
3467
3468 Problem reported by Nickolas George <darknova.clan@gmail.com>.
3469
3470 * builds/modules.mk: Don't use `win32' and `win16' (!) but
3471 `windows'.
3472
3473 * builds/windows/detect.mk, builds/windows/win32-def.mk:
3474 s/win32/windows/.
3475
Eugen Sawina8ceae42014-02-08 06:30:06 +010034762014-02-08 Eugen Sawin <esawin@mozilla.com>
3477
3478 Fix Savannah bug #41507.
3479
3480 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap)
3481 [!FT_CONFIG_OPTION_USE_PNG] <17, 17, 19>: Fix error handling.
3482
Dave Arnold355b3592014-02-08 06:23:04 +010034832014-02-08 Dave Arnold <darnold@adobe.com>
3484
3485 [cff] Fix minor performance bug.
3486
3487 * src/cff/cf2font.c (cf2_font_setup): Darkening amount and blue zone
3488 calculations are now cached and not recomputed on each glyph.
3489
Werner Lemberg6dce1362014-02-05 15:40:47 +010034902014-02-05 Werner Lemberg <wl@gnu.org>
3491
3492 Fix problems with perl 5.8.8 as distributed with current MinGW.
3493
3494 * src/tools/afblue.pl: Work-around for Perl bug #63402.
3495 (string_re): Avoid `possessive quantifiers', which have been
3496 introduced in Perl version 5.10.
3497
Werner Lemberga8772912014-02-04 11:36:08 +010034982014-02-04 Werner Lemberg <wl@gnu.org>
3499
Werner Lembergd87f9a62014-02-04 16:14:09 +01003500 Fix compilation with MinGW.
3501
3502 Right now, compilation out of the box with latest MinGW is broken
3503 due to bugs in header files of mingwrt 4.0.3 in strict ANSI mode,
3504 cf.
3505
3506 https://sourceforge.net/p/mingw/bugs/2024/
3507 https://sourceforge.net/p/mingw/bugs/2046/
3508
3509 * builds/unix/configure.raw: Don't set `-ansi' flag for MinGW.
3510
35112014-02-04 Werner Lemberg <wl@gnu.org>
3512
Werner Lemberga8772912014-02-04 11:36:08 +01003513 [autofit] Minor fix.
3514
3515 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3516 src/autofit/aflatin.c (af_latin_metrics_init_widths): Fix handling
3517 of alternative standard characters.
3518 This also fixes a compilation warning in non-debug mode.
3519
Werner Lembergee3778d2014-02-03 11:16:47 +010035202014-02-03 Werner Lemberg <wl@gnu.org>
3521
3522 [cff] Fix Savannah bug #41363.
3523
3524 * src/cff/cf2ft.c (cf2_checkTransform): Convert assertion into
3525 parameter check.
3526 (cf2_decoder_parse_charstrings): Call `cf2_checkTransform' only if
3527 we are scaling the outline.
3528 (cf2_getPpemY): Remove problematic assertion.
3529
Werner Lemberga3364002014-01-26 09:45:23 +010035302014-01-26 Werner Lemberg <wl@gnu.org>
3531
3532 [autofit] Introduce two more slots for standard characters.
3533
3534 This is useful for OpenType features like `c2sc' (caps to small
3535 caps) that don't have lowercase letters by definition, or other
3536 features that mainly operate on numerals.
3537
3538 * src/autofit/afscript.h: Add more standard characters.
3539
3540 * src/autofit/aftypes.h: Update use of `SCRIPT' macro.
3541 (AF_ScriptClassRec): Add members to hold two more standard
3542 characters.
3543 (AF_DEFINE_SCRIPT_CLASS): Updated.
3544
3545 * src/autofit/afglobal.c, src/autofit/afglobal.h,
3546 * src/autofit/afpic.c, src/autofit/afranges.h, src/autofit/hbshim.c:
3547 Update use of `SCRIPT' macro.
3548
3549 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
3550 src/autofit/aflatin.c (af_latin_metrics_init_widths): Scan two more
3551 standard characters.
3552
Werner Lembergeb7691c2014-01-24 19:04:22 +010035532014-01-24 Werner Lemberg <wl@gnu.org>
3554
3555 Fix Savannah bug #41320.
3556
3557 * src/autofit/aflatin.c (af_latin_metrics_init_blues)
3558 <AF_LATIN_IS_LONG_BLUE>: Avoid negative index of `last'.
3559
Werner Lemberg8b281f82014-01-23 08:14:53 +010035602014-01-23 Werner Lemberg <wl@gnu.org>
3561
Werner Lemberg752f3912014-01-23 09:14:25 +01003562 Fix Savannah bug #41310.
3563
3564 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap) <glyph_format==5>:
3565 Don't check metrics, which this format doesn't have.
3566 This is another correction to the commit from 2013-11-21.
3567
35682014-01-23 Werner Lemberg <wl@gnu.org>
3569
Werner Lemberg8b281f82014-01-23 08:14:53 +01003570 Fix Savannah bug #41309.
3571
3572 * src/type1/t1load.c (t1_parse_font_matrix): Properly handle result
3573 of `T1_ToFixedArray'.
3574
3575 * src/cid/cidload.c (cid_parse_font_matrix): Synchronize with
3576 `t1_parse_font_matrix'.
3577
3578 * src/type42/t42parse.c (t42_parse_font_matrix): Synchronize with
3579 `t1_parse_font_matrix'.
3580 (t42_parse_encoding): Synchronize with `t1_parse_encoding'.
3581
3582 * src/psaux/psobjs.c (ps_parser_load_field) <T1_FIELD_TYPE_BBOX>,
3583 <T1_FIELD_TYPE_MMOX>: Properly handle result of `ps_tofixedarray'.
3584
Werner Lembergff8dc312014-01-22 09:19:57 +010035852014-01-22 Werner Lemberg <wl@gnu.org>
3586
3587 * src/autofit/hbshim.c (af_get_coverage): Fix memory leaks.
3588
Werner Lemberg6a700782014-01-16 08:55:40 +010035892014-01-16 Werner Lemberg <wl@gnu.org>
3590
3591 [autofit] Improve tracing of style coverages.
3592
3593 * include/internal/fttrace.h: Add `afglobal' for tracing style
3594 coverages.
3595
3596 * src/autofit/afglobal.c: Include FT_INTERNAL_DEBUG_H.
3597 (FT_COMPONENT): Define.
3598 (af_face_globals_compute_style_coverage): Trace `gstyles' array
3599 data.
3600
Werner Lemberg7cbfdff2014-01-09 07:26:06 +010036012014-01-09 Werner Lemberg <wl@gnu.org>
3602
3603 Fix Savannah bug #41158.
3604
3605 * builds/unix/install.mk (install): Create man page directory.
3606
Chongyu Zhu94c66942014-01-08 08:52:59 +010036072014-01-08 Chongyu Zhu <lembacon@gmail.com>
3608
3609 [arm] Fix Savannah bug #41138, part 2.
3610
3611 * builds/unix/ftconfig.in (FT_MulFix_arm), include/config/ftconfig.h
3612 (FT_MulFix_arm), src/truetype/ttinterp.c (TT_MulFix14_arm): Fix
3613 preprocessor conditionals for `add.w'.
3614
Werner Lembergc46fa862014-01-08 08:45:40 +010036152014-01-08 Werner Lemberg <wl@gnu.org>
3616
3617 [autofit] Fix Savannah bug #41138, part 1.
3618
3619 * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary
3620 enumeration names for generated `#else'.
3621
3622 * src/autofit/afblue.h: Regenerated.
3623
Werner Lemberg3e5a3742014-01-06 07:53:10 +010036242014-01-06 Werner Lemberg <wl@gnu.org>
3625
3626 Add manual page for `freetype-config'.
3627 Contributed by Nis Martensen <nis.martensen@web.de>.
3628
3629 * docs/freetype-config.1: New file.
3630
3631 * builds/unix/unix-def.in (mandir): Define.
3632 * builds/unix/install.mk (install, uninstall): Handle manpage.
3633
Werner Lemberg991cbcc2014-01-05 13:24:56 +010036342014-01-05 Werner Lemberg <wl@gnu.org>
3635
3636 [autofit] Minor fixes for `afblue.pl'.
3637
3638 * src/tools/afblue.pl (aux_name): Don't use `reverse'.
3639 <Handling #endif>: Use proper indentation for generated `#else'.
3640
3641 * src/autofit/afblue.h: Regenerated.
3642
Werner Lemberg0d977442014-01-04 11:46:34 +010036432014-01-04 Werner Lemberg <wl@gnu.org>
3644
3645 [autofit] Fix Indic scripts.
3646
3647 Split the single, incorrect Indic entry into separate scripts so
3648 that the covered ranges are the same: Bengali, Devanagari, Gujarati,
3649 Gurmukhi, Kannada, Limbu, Malayalam, Oriya, Sinhala, Sundanese,
3650 Syloti Nagri, Tamil, Telugu, and Tibetan. At the same time, remove
3651 entries for Meetai Mayak and Sharada – the Unicode ranges were
3652 incorrect (and nobody has complained about that), fonts are scarce
3653 for those scripts, and the Indic auto-hinter support is rudimentary
3654 anyways.
3655
3656 * src/autofit/afscript.h: Updated, using AF_CONFIG_OPTION_INDIC and
3657 AF_CONFIG_OPTION_CJK.
3658
3659 * src/autofit/afstyles.h (STYLE_DEFAULT_INDIC): New auxiliary macro.
3660 Use it, together with AF_CONFIG_OPTION_INDIC and
3661 AF_CONFIG_OPTION_CJK, to update.
3662
3663 * src/autofit/afranges.c [AF_CONFIG_OPTION_INDIC]: Updated.
3664 [!AF_CONFIG_OPTION_INDIC, !AF_CONFIG_OPTION_CJK]: Removed.
3665 Sort entries by tags.
3666
Werner Lemberg5c7f5502014-01-03 10:48:26 +010036672014-01-03 Werner Lemberg <wl@gnu.org>
3668
Werner Lembergecdb0e32014-01-03 20:49:31 +01003669 [autofit] Thinko.
3670
3671 * src/autofit/hbshim.c (af_get_char_index): Similar to
3672 `af_get_coverage', reject glyphs which are not substituted.
3673
36742014-01-03 Werner Lemberg <wl@gnu.org>
3675
Werner Lemberga42f9182014-01-03 18:29:41 +01003676 [autofit] Fix handling of default coverages.
3677
Werner Lemberg1b5bc892014-01-03 18:33:24 +01003678 With this commit, the implementation of coverage handling is
3679 completed.
3680
3681 * src/autofit/hbshim.c (af_get_coverage): Exit early if nothing to
3682 do.
3683 Reject coverages which don't contain appropriate glyphs for blue
3684 zones.
3685
36862014-01-03 Werner Lemberg <wl@gnu.org>
3687
3688 [autofit] Fix handling of default coverages.
3689
Werner Lemberga42f9182014-01-03 18:29:41 +01003690 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3691 First handle non-default coverages, then the default coverage of the
3692 default script, and finally the other default coverages.
3693
36942014-01-03 Werner Lemberg <wl@gnu.org>
3695
Werner Lembergf45749b2014-01-03 18:09:36 +01003696 [autofit] Fix scaling of HarfBuzz shaping.
3697
3698 * src/autofit/hbshim.c (af_get_char_index): Scale to units per EM.
3699
37002014-01-03 Werner Lemberg <wl@gnu.org>
3701
Werner Lemberg5c7f5502014-01-03 10:48:26 +01003702 [autofit] Better ftgrid support.
3703
3704 * src/autofit/afhints.c (af_glyph_hints_get_segment_offset): Add
3705 parameters `is_blue' and `blue_offset'.
3706
Werner Lemberg73cc8332014-01-01 07:10:36 +010037072014-01-01 Werner Lemberg <wl@gnu.org>
3708
Werner Lemberg55cd7e02014-01-02 13:07:48 +01003709 [autofit] Remove some styles.
3710
3711 * src/autofit/afcover.h: Remove coverages for alternative fractions,
3712 denominators, numerators, and fractions.
3713
3714 * src/autofit/afstyles.h (META_STYLE_LATIN): Updated.
3715
37162014-01-01 Werner Lemberg <wl@gnu.org>
3717
Werner Lembergc973e672014-01-01 16:34:42 +01003718 [autofit] Add more styles.
3719
3720 * src/autofit/afstyles.h (STYLE_LATIN, META_STYLE_LATIN): New
3721 auxiliary macros; use them to define styles for Cyrillic, Greek, and
3722 Latin.
3723
3724 * src/autofit/afcover.h: Remove coverage for oldstyle figures.
3725 Since those digits are used in combination with ordinary letters, it
3726 makes no sense to handle them separately.
3727
3728 * src/autofit/afglobal.c (af_face_globals_get_metrics): Don't limit
3729 `options' parameter to 4 bits.
3730
37312014-01-01 Werner Lemberg <wl@gnu.org>
3732
Werner Lembergabb2f732014-01-01 08:00:16 +01003733 [autofit] Fix style assignments to glyphs.
3734
3735 * src/autofit/hbshim.c (af_get_coverage)
3736 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Scan GPOS coverage of features also
3737 so that we can skip glyphs that have both GSUB and GPOS data.
3738
37392014-01-01 Werner Lemberg <wl@gnu.org>
3740
Werner Lemberg0950f3a2014-01-01 07:48:20 +01003741 * src/autofit/hbshim.c: s/{lookups,glyphs}/gsub_{lookups,glyphs}/.
3742
37432014-01-01 Werner Lemberg <wl@gnu.org>
3744
Werner Lemberg73cc8332014-01-01 07:10:36 +01003745 [autofit] Implement and use `af_get_char_index' with HarfBuzz.
3746
3747 * src/autofit/hbshim.c (COVERAGE) [FT_CONFIG_OPTION_USE_HARFBUZZ]:
3748 Redefine to construct HarfBuzz features.
3749 (af_get_char_index) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Rewritten.
3750
3751 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Use
3752 `y_offset' to adjust `best_y'.
3753
Werner Lembergc9d99472013-12-31 08:16:57 +010037542013-12-31 Werner Lemberg <wl@gnu.org>
3755
Werner Lemberg785f3852013-12-31 09:45:10 +01003756 [autofit] s/AF_STYLE_...._DEFAULT/AF_STYLE_...._DFLT/i.
3757
37582013-12-31 Werner Lemberg <wl@gnu.org>
3759
Werner Lembergc9d99472013-12-31 08:16:57 +01003760 [autofit] Fix interface of `af_get_char_index'.
3761
3762 * src/autofit/hbshim.c (af_get_char_index): Return error value.
3763 Add argument for y offset (to be used in a yet-to-come patch).
3764
3765 * src/autofit/hbshim.h, src/autofit/afcjk.c,
3766 src/autofit/aflatin.c: Updated.
3767
Werner Lemberg44aa7e02013-12-30 07:41:22 +010037682013-12-30 Werner Lemberg <wl@gnu.org>
3769
3770 [autofit] Don't combine multiple features into one set.
3771
3772 Combining them, as originally envisioned, would lead to much more
3773 complicated code, as investigations have shown meanwhile. The major
3774 drawback is that we run out of available style slots much earlier.
3775 However, this is only a theoretical issue since we don't support a
3776 large number of scripts currently.
3777
3778 * src/autofit/afcover.h: Replace `COVERAGE_{1,2,3}' macros with
3779 a single-element `COVERAGE' macro, sort the elements by the feature
3780 tags, and add entry for `ruby'.
3781
3782 * src/autofit/aftypes.h: Updated.
3783 * src/autofit/hbshim.c: Updated.
3784
Werner Lemberg6af01a02013-12-28 08:55:24 +010037852013-12-28 Werner Lemberg <wl@gnu.org>
3786
Werner Lemberg072dc452013-12-28 12:26:21 +01003787 [autofit] Code shuffling to reduce use of cpp macros.
3788
3789 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3790 Call `af_get_coverage' unconditionally.
3791
3792 * src/autofit/autofit.c: Include `hbshim.c' unconditionally.
3793
3794 * src/autofit/hbshim.c (af_get_coverage)
3795 [!FT_CONFIG_OPTION_USE_HARFBUZZ]: Provide dummy function.
3796
3797 * src/autofit/hbshim.h: Provide function declarations
3798 unconditionally.
3799
38002013-12-28 Werner Lemberg <wl@gnu.org>
3801
Werner Lemberg17af5862013-12-28 10:33:01 +01003802 [autofit] Add wrapper function for `FT_Get_Char_Index'.
3803
3804 Yet-to-come changes will provide HarfBuzz functionality for the new
3805 function.
3806
3807 * src/autofit/hbshim.c (af_get_char_index): New function.
3808 * src/autofit/hbshim.h: Updated.
3809
3810 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
3811 af_cjk_metrics_init_blues, af_cjk_metrics_check_digits): Updated.
3812
3813 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
3814 af_latin_metrics_init_blues, af_latin_metrics_check_digits):
3815 Updated.
3816
38172013-12-28 Werner Lemberg <wl@gnu.org>
3818
Werner Lemberg6af01a02013-12-28 08:55:24 +01003819 [autofit] Use `global' HarfBuzz font object.
3820
3821 We now use `hb_font' instead of `hb_face' since yet-to-come changes
3822 need this.
3823
3824 * src/autofit/afglobal.h: Include `hbshim.h'.
3825 (AF_FaceGlobalsRec) [FT_CONFIG_OPTION_USE_HARFBUZZ]: New member
3826 `hb_font'.
3827
3828 * src/autofit/afglobal.c (af_face_globals_new)
3829 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Create `hb_font'.
3830 (af_face_globals_free) [FT_CONFIG_OPTION_USE_HARFBUZZ]: Destroy
3831 `hb_font'.
3832
3833 * src/autofit/hbshim.h: Include HarfBuzz headers.
3834
3835 * src/autofit/hbshim.c: Include `hbshim.h' instead of HarfBuzz
3836 headers.
3837 (af_get_coverage): Updated.
3838
Werner Lembergd32a7d32013-12-27 19:26:04 +010038392013-12-27 Werner Lemberg <wl@gnu.org>
3840
3841 [autofit] Handle `DFLT' OpenType script for coverages.
3842
3843 * include/ftautoh.h: Document new `default-script' property.
3844
3845 * src/autofit/hbshim.c (af_get_coverage): Use `AF_FaceGlobals' for
3846 type of first parameter.
3847 (script_tags): Add one more element.
3848 (af_get_coverage): Adjust `script_tags' to handle `DFLT' script tag.
3849
3850 * src/autofit/hbshim.h: Updated.
3851
3852 * src/autofit/afglobal.c (af_face_globals_compute_style_coverage):
3853 Updated.
3854
3855 * src/autofit/afglobal.h (AF_SCRIPT_DEFAULT): New macro.
3856
3857 * src/autofit/afmodule.h (AF_ModuleRec): New `default_script'
3858 member.
3859
3860 * src/autofit/afmodule.c (af_property_set, af_property_get): Handle
3861 `default-script' property.
3862 (af_autofitter_init): Updated.
3863
suzuki toshiyae2d2b152013-12-27 16:44:24 +090038642013-12-27 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
3865
3866 [ftrfork] Fix the face order difference between POSIX and Carbon.
3867
3868 The fragmented resources in Suitcase and .dfont should be reordered
Werner Lemberg00a7b512013-12-27 19:18:49 +01003869 when `POST' resource for Type1 is being restored, but reordering of
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003870 sfnt resources induces the different face order. Now the ordering
Werner Lemberg00a7b512013-12-27 19:18:49 +01003871 is restricted to `POST' resource only, to prevent the different
3872 order issue (e.g. the face index in the fontconfig cache generated
3873 with Carbon framework is incompatible with that by FreeType 2
3874 without Carbon framework.) Found by Khaled Hosny and Hin-Tak Leung.
3875
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003876 http://lists.gnu.org/archive/html/freetype-devel/2013-02/msg00035.html
3877 http://lists.gnu.org/archive/html/freetype-devel/2013-12/msg00027.html
3878
3879 * src/base/ftrfork.c (FT_Raccess_Get_DataOffsets): Add a switch
Werner Lemberg44aa7e02013-12-30 07:41:22 +01003880 `sort_by_res_id' to control the fragmented resource ordering.
Werner Lemberg00a7b512013-12-27 19:18:49 +01003881 * include/internal/ftrfork.h: Declare new switch.
3882 * src/base/ftobjs.c (IsMacResource): Enable the sorting for `POST'
3883 resource, and disable the sorting for `sfnt' resource.
suzuki toshiyae2d2b152013-12-27 16:44:24 +09003884
Werner Lemberg5f577462013-12-25 08:50:50 +010038852013-12-25 Werner Lemberg <wl@gnu.org>
3886
3887 Fix Savannah bug #40997.
3888
3889 * src/bdf/bdfdrivr.c (BDF_Face_Init): Only use OR operator to
3890 adjust face flags since FT_FACE_FLAG_EXTERNAL_STREAM might already
3891 be set.
3892 * src/cff/cffobjs.c (cff_face_init): Ditto.
3893 * src/cid/cidobjs.c (cid_face_init): Ditto.
3894 * src/pcf/pcfread.c (pcf_load_font): Ditto.
3895 * src/pfr/pfrobjs.c (pfr_face_init): Ditto.
3896 * src/type1/t1objs.c (T1_Face_Init): Ditto.
3897 * src/type42/t42objs.c (T42_Face_Init): Ditto.
3898 * src/winfonts/winfnt.c (FNT_Face_Init): Ditto.
3899
Werner Lembergc4e968e2013-12-21 07:23:08 +010039002013-12-21 Werner Lemberg <wl@gnu.org>
3901
Werner Lemberg19241342013-12-21 21:31:38 +01003902 [autofit] Introduce `coverages'.
3903
3904 Coverages are the interface to the HarfBuzz library to acces
3905 OpenType features for handling glyphs not addressable by the cmap.
3906
3907 Right now, compilation of HarfBuzz is only added to the development
3908 build. A solution for standard build mode will be delayed until
3909 HarfBuzz gets split into two libraries to avoid mutual dependencies
3910 between FreeType and HarfBuzz.
3911
3912 Note that this is only a first step in handling coverages, basically
3913 providing the framework only. Code for handling selected OpenType
3914 features (this is, actually using the data in `afcover.h') will
3915 follow.
3916
3917 * devel/ftoption.h, include/config/ftoption.h
3918 (FT_CONFIG_OPTION_USE_HARFBUZZ): New macro.
3919
3920 * src/autofit/hbshim.c, src/autofit/hbshim.h, src/autofit/afcover.h:
3921 New files.
3922
3923 * src/autofit/afscript.h: Add HarfBuzz script name tags.
3924
3925 * src/autofit/afstyles.h: Add default coverage enumeration values.
3926
3927 * src/autofit/aftypes.h: Update use of `SCRIPT' and `STYLE' macros.
3928 (AF_Coverage): New enumeration (generated by `afcover.h').
3929 (AF_StyleClassRec): New member `coverage'.
3930 (AF_DEFINE_STYLE_CLASS): Updated.
3931
3932 * include/internal/fttrace.h: Add `afharfbuzz' for tracing coverage
3933 data.
3934
3935 * src/autofit/afglobal.h: Update use of `SCRIPT' and `STYLE' macros.
3936 (AF_SCRIPT_FALLBACK): Renamed to ...
3937 (AF_STYLE_FALLBACK): ... this.
3938
3939 * src/autofit/afglobal.c: Include `hbshim.c'.
3940 Update use of `SCRIPT' and `STYLE' macros.
3941 (af_face_globals_compute_style_coverage)
3942 [FT_CONFIG_OPTION_USE_HARFBUZZ]: Call `af_get_coverage'.
3943 Update.
3944
3945 * src/autofit/afmodule.h (AF_ModuleRec):
3946 s/fallback_script/fallback_style/.
3947
3948 * src/autofit/afmodule.c (af_property_set): Adapt handling of
3949 `fallback-script' property to set a fallback style.
3950 (af_property_get, af_autofitter_init): Updated.
3951
3952 * src/autofit/afpic.c: Update use of `SCRIPT' and `STYLE' macros.
3953
3954 * src/autofit/afranges.h: Update use of `SCRIPT' macro.
3955
3956 * src/autofit/autofit.c [FT_CONFIG_OPTION_USE_HARFBUZZ]: Include
3957 `hbshim.c'.
3958
3959 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `hbshim.c'.
3960 (AUTOF_DRV_H): Add `afcover.h'.
3961
3962 * builds/freetype.mk (INCLUDE_FLAGS) [DEVEL_DIR]: Use pkg-config for
3963 all libraries needed by FreeType.
3964
39652013-12-21 Werner Lemberg <wl@gnu.org>
3966
Werner Lembergb337fa22013-12-21 19:33:15 +01003967 Fix Savannah bug #40975 (sort of).
3968
3969 * src/truetype/ttinterp.c (Ins_IP): Fix sign typo to make FreeType
3970 behave the same as the Windows TrueType engine for the invalid case.
3971
39722013-12-21 Werner Lemberg <wl@gnu.org>
3973
Werner Lemberg3bf60952013-12-21 08:49:11 +01003974 [autofit] Make PIC mode work actually.
3975
3976 * src/autofit/afpic.h (AFModulePIC): Fix array sizes to fit the
3977 enumeration values automatically generated by including `afscript.h'
3978 and friends.
3979
3980 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
3981
39822013-12-21 Werner Lemberg <wl@gnu.org>
3983
Werner Lembergbd413862013-12-21 08:14:25 +01003984 Fix PIC linking.
3985
3986 * include/internal/ftrfork.h (CONST_FT_RFORK_RULE_ARRAY_BEGIN): Fix
3987 generated function name.
3988
3989 * src/base/basepic.c (FT_Init_Table_raccess_guess_table): Rename
3990 to ...
3991 (FT_Init_Table_ft_raccess_guess_table): ... this so that the
3992 function name correctly corresponds to what the macro framework
3993 expects.
3994
3995 * src/psnames/rules.mk (PSNAMES_DRV_SRC_S): Use correct file name so
3996 that PIC functions are compiled also.
3997
39982013-12-21 Werner Lemberg <wl@gnu.org>
3999
Werner Lembergc4e968e2013-12-21 07:23:08 +01004000 [base] Add missing dependencies to Makefile.
4001
4002 * src/base/rules.mk (BASE_SRC): Add `basepic.c' and `ftpic.c'.
4003 (BASE_H): Add `basepic.h'.
4004
Werner Lemberg974b1932013-12-20 17:26:26 +010040052013-12-20 Werner Lemberg <wl@gnu.org>
4006
Werner Lemberg8a8f3752013-12-20 18:35:35 +01004007 [autofit] Fix PIC compilation.
4008
4009 * src/autofit/afcjk.c (af_cjk_metrics_init_widths),
4010 src/autofit/aflatin.c (af_latin_metrics_init_widths)
4011 [FT_CONFIG_OPTION_PIC]: Declare `globals'.
4012
4013 * src/autofit/afglobal.c: Always call AF_DEFINE_SCRIPT_CLASS, and
4014 AF_DEFINE_STYLE_CLASS.
4015
4016 * src/autofit/afpic.c: Include `afglobal.h'.
4017 (autofit_module_class_pic_init): Typo.
4018
4019 * src/autofit/aftypes.h (AF_DEFINE_SCRIPT_CLASS,
4020 AF_DEFINE_STYLE_CLASS): Don't use the same identifier for macro
4021 parameter and structure member.
4022
40232013-12-20 Werner Lemberg <wl@gnu.org>
4024
Werner Lemberg974b1932013-12-20 17:26:26 +01004025 [autofit] Introduce `styles'.
4026
4027 This is the new top-level structure for handling glyph input data;
4028 scripts are now defined separately.
4029
4030 * src/autofit/aftypes.h (SCRIPT): Updated.
4031 (AF_ScriptClassRec): Move `blue_stringset' and `writing_system'
4032 members to ...
4033 (AF_Style_ClassRec): ... this new structure.
4034 (AF_Style): New enumeration.
4035 (AF_StyleMetricsRec): Replace `script' enumeration with
4036 `style_class' pointer.
4037 (AF_DEFINE_SCRIPT_CLASS, AF_DECLARE_SCRIPT_CLASS): Updated.
4038 (AF_DEFINE_STYLE_CLASS, AF_DECLARE_STYLE_CLASS): New macros.
4039
4040 * src/autofit/afstyles.h: New file, using data from `afscript.h'.
4041 * src/autofit/afscript.h: Updated.
4042
4043 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
4044 af_cjk_metrics_init_blues, af_cjk_hint_edges): Updated.
4045
4046 * src/autofit/afglobal.c (SCRIPT): Updated.
4047 (STYLE): Redefine macro to load `afstyles.h'.
4048 (af_script_names) [FT_DEBUG_LEVEL_TRACE]: Replace with...
4049 (af_style_names): ... this array.
4050 (af_face_globals_compute_script_coverage): Renamed to...
4051 (af_face_globals_compute_style_coverage): ... this.
4052 Updated.
4053 (af_face_globals_new, af_face_globals_free,
4054 af_face_globals_get_metrics): Updated.
4055
4056 * src/autofit/afglobal.h (SCRIPT): Updated.
4057 (STYLE): Redefine macro to load `afstyles.h'.
4058 (AF_SCRIPT_FALLBACK): Update definition. This will get more
4059 refinements with later on.
4060 (AF_SCRIPT_UNASSIGNED): Replace with...
4061 (AF_STYLE_UNASSIGNED): ... this macro.
4062 (AF_FaceGlobalsRec): Updated.
4063
4064 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
4065 af_latin_metrics_init_blues, af_latin_metrics_scale_dim,
4066 af_latin_hint_edges): Updated.
4067
4068 * src/autofit/aflatin2.c (af_latin2_metrics_init_widths): Updated.
4069 (af_ltn2_uniranges): Removed.
4070
4071 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4072 Updated.
4073
4074 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated.
4075 * src/autofit/afpic.h (AF_STYLE_CLASSES_GET): New macro.
4076 (AFModulePIC): Add `af_style_classes' and `af_style_classes_rec'
4077 members.
4078
4079 * src/autofit/afranges.h: Updated.
4080
4081 * src/autofit/rules.mk (AUTOF_DRV_H): Add `afstyles.h'.
4082
Werner Lembergd8324572013-12-19 15:45:24 +010040832013-12-19 Werner Lemberg <wl@gnu.org>
4084
4085 [autofit] Factor scripts and uniranges out of writing system files.
4086
4087 * src/autofit/afranges.c, src/autofit/afranges.h: New files.
4088
4089 * src/autofit/afscript.h: Extend `SCRIPT' macro with more
4090 parameters, taking data from the writing system files.
4091
4092 * src/autofit/aftypes.h: Updated.
4093
4094 * src/autofit/afglobal.c: Include `afranges.h'.
4095 Load `afscript.h' to call AF_DEFINE_SCRIPT_CLASS.
4096 * src/autofit/afglobal.c: Include `afranges.h'.
4097 Load `afscript.h' to call AF_DECLARE_SCRIPT_CLASS.
4098
4099 * src/autofit/afcjk.c, src/autofit/afcjk.h: Updated.
4100 * src/autofit/afdummy.c, src/autofit/afdummy.h: Updated.
4101 * src/autofit/afindic.c, src/autofit/afindic.h: Updated.
4102 * src/autofit/aflatin.c, src/autofit/aflatin.h: Updated.
4103 * src/autofit/aflatn2.c, src/autofit/aflatn2.h: Updated.
4104
4105 * src/autofit/afpic.c: Updated.
4106
4107 * src/autofir/autofit.c: Include `afranges.c'.
4108 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afranges.c'.
4109
Werner Lemberg9a354552013-12-18 10:36:06 +010041102013-12-18 Werner Lemberg <wl@gnu.org>
4111
Werner Lemberg73f31982013-12-19 15:24:17 +01004112 [autofit] More code orthogonality.
4113
4114 * src/autofit/aftypes.h (AF_StyleMetrics): Replace `script_class'
4115 pointer to an `AF_ScriptClass' structure with `script' index of type
4116 `AF_Script'.
4117 Move some code around.
4118
4119 * src/autofit/afcjk.c: Include `afpic.h'.
4120 (af_cjk_metrics_init_widths, af_cjk_metrics_init_blues,
4121 af_cjk_hint_edges): Updated.
4122
4123 * src/autofit/aflatin.c: Include `afpic.h'.
4124 (af_latin_metrics_init_widths, af_latin_metrics_init_blues,
4125 af_latin_metrics_scale_dim, af_latin_hint_edges): Updated.
4126
4127 * src/autofit/afglobal.c (af_face_globals_get_metrics): Updated.
4128
4129 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
4130 Updated.
4131
41322013-12-18 Werner Lemberg <wl@gnu.org>
4133
Werner Lemberg3f91cb32013-12-18 12:59:35 +01004134 [autofit] s/ScriptMetrics/StyleMetrics/.
4135
41362013-12-18 Werner Lemberg <wl@gnu.org>
4137
Werner Lemberg4fccc212013-12-18 12:53:01 +01004138 [autofit] s/script_{metrics,hints}/style_{metrics,hints}/
4139
41402013-12-18 Werner Lemberg <wl@gnu.org>
4141
Werner Lembergf4df4072013-12-18 10:39:30 +01004142 [autofit] s/gscripts/gstyles/.
4143
41442013-12-18 Werner Lemberg <wl@gnu.org>
4145
Werner Lemberg9a354552013-12-18 10:36:06 +01004146 [autofit] s/glyph_scripts/glyph_styles/.
4147
4148 This is the first commit of a series to create a new top-level
4149 structure (a `style') for handling scripts, writing_systems, and
4150 soon-to-be-added coverages.
4151
Werner Lemberg7a5fc2f2013-12-17 13:29:53 +010041522013-12-17 Werner Lemberg <wl@gnu.org>
4153
4154 [autofit] s/AF_Script_/AF_WritingSystem_/ where appropriate.
4155
Infinality8bb09b02013-12-11 09:01:13 +010041562013-12-11 Infinality <infinality@infinality.net>
4157
4158 [truetype] Simplify logic of rendering modes.
4159
4160 This patch unifies the subpixel and non-subpixel cases.
4161
4162 * src/truetype/ttinterp.h (TT_ExecContextRec): Remove
4163 `grayscale_hinting'; all code should refer to `grayscale' instead.
4164 Remove unused `native_hinting' member.
4165 Rename `subpixel_hinting' member to `subpixel.
4166
4167 * src/truetype/ttgload.c (TT_LOADER_SET_PP): Updated.
4168 (tt_loader_init): Updated.
4169
4170 * src/truetype/ttinterp.c (Ins_GETINFO): Simplify.
4171 Updated.
4172
Werner Lemberge9d95aa2013-12-11 07:48:51 +010041732013-12-11 Werner Lemberg <wl@gnu.org>
4174
4175 [documentation] Add section how to include FreeType header files.
4176 Problem reported by David Kastrup <dak@gnu.org>.
4177
4178 Surprisingly, a description how to do that was completely missing in
4179 the API reference.
4180
4181 * include/freetype.h, include/ftchapters.h: New documentation
4182 section `header_inclusion'.
4183
Werner Lemberg05c786d2013-12-10 08:38:57 +010041842013-12-10 Werner Lemberg <wl@gnu.org>
4185
Werner Lemberg91932592013-12-10 13:24:07 +01004186 [autofit] s/DFLT/NONE/, s/dflt/none/.
4187
41882013-12-10 Werner Lemberg <wl@gnu.org>
4189
Werner Lemberg45244f82013-12-10 13:18:11 +01004190 [autofit] s/AF_SCRIPT_NONE/AF_SCRIPT_UNASSIGNED/.
4191
41922013-12-10 Werner Lemberg <wl@gnu.org>
4193
Werner Lemberg69d1a362013-12-10 10:12:27 +01004194 [truetype] Fix scaling of vertical phantom points.
4195
4196 * src/truetype/ttgload.c (load_truetype_glyph): Scale pp3.x and
4197 pp4.x also.
4198
41992013-12-10 Werner Lemberg <wl@gnu.org>
4200
Werner Lemberg05c786d2013-12-10 08:38:57 +01004201 [truetype] Fix positioning of composite glyphs.
4202 Problem reported by Nigel Tao <nigeltao@golang.org>.
4203
4204 * src/truetype/ttgload.c (TT_Hint_Glyph): Remove code that shifts
4205 the glyph (component) by a fractional value computed from the LSB
4206 phantom point. This is wrong, since the horizontal phantom points
4207 get rounded horizontally later on.
4208
Werner Lembergdd8050a2013-12-08 23:14:46 +010042092013-12-08 Werner Lemberg <wl@gnu.org>
4210
4211 * Version 2.5.2 released.
4212 =========================
4213
4214
4215 Tag sources with `VER-2-5-2'.
4216
4217 * docs/VERSION.DLL: Update documentation and bump version number to
4218 2.5.2.
4219
4220 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
4221 builds/windows/vc2005/index.html,
4222 builds/windows/vc2008/freetype.vcproj,
4223 builds/windows/vc2008/index.html,
4224 builds/windows/vc2010/freetype.vcxproj,
4225 builds/windows/vc2010/index.html,
4226 builds/windows/visualc/freetype.dsp,
4227 builds/windows/visualc/freetype.vcproj,
4228 builds/windows/visualc/index.html,
4229 builds/windows/visualce/freetype.dsp,
4230 builds/windows/visualce/freetype.vcproj,
4231 builds/windows/visualce/index.html,
4232 builds/wince/vc2005-ce/freetype.vcproj,
4233 builds/wince/vc2005-ce/index.html,
4234 builds/wince/vc2008-ce/freetype.vcproj,
4235 builds/wince/vc2008-ce/index.html: s/2.5.1/2.5.2/, s/251/252/.
4236
Werner Lembergec8853c2014-03-06 19:13:45 +01004237 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01004238
4239 * builds/unix/configure.raw (version_info): Set to 17:1:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01004240 * CMakeLists.txt (VERSION_PATCH): Set to 2.
Werner Lembergdd8050a2013-12-08 23:14:46 +01004241 * docs/CHANGES: Updated.
4242
Werner Lemberg98d185c2013-12-07 09:26:55 +010042432013-12-07 Werner Lemberg <wl@gnu.org>
4244
4245 [truetype] Next round in phantom point handling.
4246
4247 Greg Hitchcock provided very interesting insights into the
4248 complicated history of the horizontal positions of the TSB and BSB
4249 phantom points.
4250
4251 * src/truetype/ttgload.c (TT_LOADER_SET_PP)
4252 [TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Use `subpixel_hinting' and
4253 `grayscale_hinting' flags as conditionals for the x position of TSB
4254 and BSB.
4255
Werner Lembergfcdb7842013-12-05 15:53:27 +010042562013-12-05 Werner Lemberg <wl@gnu.org>
4257
4258 * builds/freetype.mk (FT_CC): Removed. Unused.
4259
Werner Lemberg64b395c2013-12-04 06:18:56 +010042602013-12-04 Werner Lemberg <wl@gnu.org>
4261
4262 [sfnt] Fix handling of embedded bitmap strikes.
4263
4264 This corrects the commit from 2013-11-21. Problem reported by
4265 Andrey Panov <panov@canopus.iacp.dvo.ru>.
4266
4267 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Fix logic to
4268 detect excessive bytes for bit-aligned bitmaps.
4269
Werner Lembergbdd5e752013-12-03 06:57:02 +010042702013-12-03 Werner Lemberg <wl@gnu.org>
4271
Werner Lembergc2b47532013-12-03 07:01:57 +01004272 [truetype] Remove dead code.
4273
4274 Reported by Nigel Tao <nigeltao@golang.org>.
4275
4276 * include/internal/tttypes.h (TT_LoaderRec): Remove unused
4277 `preserve_pps' field.
4278 * src/truetype/ttgload.c (TT_Hint_Glyph): Updated.
4279
42802013-12-03 Werner Lemberg <wl@gnu.org>
4281
Werner Lembergbdd5e752013-12-03 06:57:02 +01004282 [truetype] Fix phantom point handling.
4283
4284 This is a further improvement to the changes from 2013-11-06.
4285
4286 * src/truetype/ttgload.c (TT_Hint_Glyph): Horizontal phantom points
4287 are rounded horizontally, vertical ones are rounded vertically.
4288 (TT_LOADER_SET_PP): The horizontal position of vertical phantom
4289 points in pre-ClearType mode is zero, as shown in the OpenType
4290 specification.
4291
Werner Lemberg64872a52013-12-02 07:51:17 +010042922013-12-02 Werner Lemberg <wl@gnu.org>
4293
4294 [truetype] Fix change from 2013-11-20.
4295
4296 Problem reported by Akira Kakuto <kakuto@fuk.kindai.ac.jp>.
4297
4298 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Protect call to
4299 `Update_Max' with both a TT_USE_BYTECODE_INTERPRETER guard and a
4300 `IS_HINTED' clause.
4301 Also remove redundant check using `maxSizeOfInstructions' – in
4302 simple glyphs, the bytecode data comes before the outline data, and
4303 a validity test for this is already present.
4304
Werner Lemberg52166ab2013-11-27 10:10:16 +010043052013-11-27 Werner Lemberg <wl@gnu.org>
4306
4307 [autofit] Fix use of dumping functions in `ftgrid' demo program.
4308
4309 * src/autofit/afhints.c (AF_DUMP) [FT_DEBUG_AUTOFIT]: New macro.
4310 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
4311 af_glyph_hints_dump_edges) [FT_DEBUG_AUTOFIT]: Add parameter to
4312 handle output to stdout.
4313 Use AF_DUMP.
4314 (af_glyph_hints_dump_points, af_glyph_hints_dump_segments,
4315 af_glyph_hints_dump_edges) [!FT_DEBUG_AUTOFIT]: Removed.
4316
Werner Lemberg3aee4292013-11-25 00:28:11 +010043172013-11-25 Werner Lemberg <wl@gnu.org>
4318
4319 * Version 2.5.1 released.
4320 =========================
4321
4322
4323 Tag sources with `VER-2-5-1'.
4324
4325 * docs/VERSION.DLL: Update documentation and bump version number to
4326 2.5.1.
4327
4328 * README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
4329 builds/windows/vc2005/index.html,
4330 builds/windows/vc2008/freetype.vcproj,
4331 builds/windows/vc2008/index.html,
4332 builds/windows/vc2010/freetype.vcxproj,
4333 builds/windows/vc2010/index.html,
4334 builds/windows/visualc/freetype.dsp,
4335 builds/windows/visualc/freetype.vcproj,
4336 builds/windows/visualc/index.html,
4337 builds/windows/visualce/freetype.dsp,
4338 builds/windows/visualce/freetype.vcproj,
4339 builds/windows/visualce/index.html,
4340 builds/wince/vc2005-ce/freetype.vcproj,
4341 builds/wince/vc2005-ce/index.html,
4342 builds/wince/vc2008-ce/freetype.vcproj,
4343 builds/wince/vc2008-ce/index.html: s/2.5.0/2.5.1/, s/250/251/.
4344
4345 * include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.
4346
4347 * builds/unix/configure.raw (version_info): Set to 17:0:11.
Werner Lembergec8853c2014-03-06 19:13:45 +01004348 * CMakeLists.txt (VERSION_PATCH): Set to 1.
Werner Lemberg3aee4292013-11-25 00:28:11 +01004349 * docs/CHANGES, docs/release: Updated.
4350
Werner Lemberg9326caf2013-11-23 23:59:25 +010043512013-11-23 Werner Lemberg <wl@gnu.org>
4352
Werner Lemberg063ee6b2013-11-24 00:19:17 +01004353 [truetype]: Add tricky font names `hkscsiic.ttf' and `iicore.ttf'.
4354
4355 * src/truetype/ttobjs.c (TRICK_NAMES_MAX_CHARACTERS,
4356 TRICK_NAMES_COUNT): Updated.
4357 (trick_names): Add family name for the two fonts.
4358
43592013-11-23 Werner Lemberg <wl@gnu.org>
4360
Werner Lemberg9326caf2013-11-23 23:59:25 +01004361 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Typo.
4362
Werner Lemberg427b1762013-11-21 13:10:56 +010043632013-11-21 Werner Lemberg <wl@gnu.org>
4364
Werner Lemberg9326caf2013-11-23 23:59:25 +01004365 [sfnt] Typo.
Werner Lemberg8af2a1c2013-11-21 13:13:12 +01004366
4367 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
4368
4369 * src/sfnt/sfobjs.c (sfnt_load_face): Return correct `bsize->width'
4370 value if the font lacks an `OS/2' table.
4371
43722013-11-21 Werner Lemberg <wl@gnu.org>
4373
Werner Lemberg64b395c2013-12-04 06:18:56 +01004374 [sfnt] Improve handling of buggy embedded bitmap strikes.
Werner Lemberg427b1762013-11-21 13:10:56 +01004375
4376 We are now able to successfully load `AppleMyoungJo.ttf'.
4377 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>.
4378
4379 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_bitmap): Don't trust glyph
4380 format.
4381
Werner Lemberg28626862013-11-20 21:06:18 +010043822013-11-20 Werner Lemberg <wl@gnu.org>
4383
4384 [truetype] Don't trust `maxp's `maxSizeOfInstructions'.
4385
4386 Problem reported by Hin-Tak Leung <htl10@users.sourceforge.net>; see
4387
4388 http://lists.nongnu.org/archive/html/freetype-devel/2013-08/msg00005.html
4389
4390 for details.
4391
4392 * src/base/ftobjs.c (FT_Load_Glyph): Check size of `fpgm' and `prep'
4393 tables also for setting `autohint'.
4394
4395 * src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use code from
4396 `TT_Process_Composite_Glyph' for handling unreliable values of
4397 `maxSizeOfInstructions'.
4398
Werner Lembergbc25de62013-11-16 07:52:20 +010043992013-11-16 Werner Lemberg <wl@gnu.org>
4400
4401 [sfnt] Fix `OS/2' table version 5 support.
4402
4403 We now follow the `official' announcement from Microsoft (on the
4404 OpenType mailing list, which unfortunately hasn't a public archive).
4405
4406 * include/freetype/tttables.h (TT_OS2):
4407 s/usLowerPointSize/usLowerOpticalPointSize/,
4408 s/usUpperPointSize/usUpperOpticalPointSize/.
4409
4410 * src/sfnt/ttload.c (tt_face_load_os2): Update, and set correct
4411 default values.
4412
Werner Lembergfae38202013-11-13 08:55:46 +010044132013-11-13 Werner Lemberg <wl@gnu.org>
4414
Werner Lembergc52b1292013-11-13 10:06:00 +01004415 * builds/unix/ft2unix.h: Remove. No longer necessary.
4416
4417 * builds/unix/install.mk (install): Updated.
4418
44192013-11-13 Werner Lemberg <wl@gnu.org>
4420
Werner Lembergfae38202013-11-13 08:55:46 +01004421 Simplify header file hierarchy.
4422
4423 This large patch changes the header file directory layout from
4424 `include/freetype/...' to `include/...', effectively removing one
4425 level. Since the file `ft2build.h' is also located in `include'
4426 (and it stays there even after installation), all FreeType header
4427 files are now in a single directory.
4428
4429 Applications that use (a) `freetype-config' or FreeType's
4430 `pkg-config' file to get the include directory for the compiler, and
4431 (b) the documented way for header inclusion like
4432
4433 #include <ft2build.h>
4434 #include FT_FREETYPE_H
4435 ...
4436
4437 don't need any change to the source code.
4438
4439 * include/freetype/*: Move up to...
4440 * include/*: ... this directory.
4441
4442 * builds/amiga/include/freetype/*: Move up to...
4443 * builds/amiga/include/*: ... this directory.
4444
4445 */*: Essentially do `s@/freetype/@/@' where appropriate.
4446
4447 * CMakeList.txt: Simplify.
4448 * builds/unix/freetype-config.in, builds/unix/freetype2.in: For
4449 `--cflags', return a single directory.
4450 * builds/unix/install.mk (install): No longer try to remove `cache'
4451 and `internal' subdirectories; instead, remove the `freetype'
4452 subdirectory.
4453
Werner Lembergea5c7812013-11-12 08:55:26 +010044542013-11-12 Werner Lemberg <wl@gnu.org>
4455
4456 [truetype] Fix last `truetype' commit.
4457
4458 * src/truetype/ttgload.c (tt_get_metrics): Preserve stream position.
4459 Return error value.
4460 (load_truetype_glyph): Updated.
4461
Werner Lemberg78333282013-11-10 06:26:52 +010044622013-11-10 Werner Lemberg <wl@gnu.org>
4463
4464 * docs/CMAKE: New dummy file.
4465
Dave Arnolddd213012013-11-08 10:52:51 +010044662013-11-08 Dave Arnold <darnold@adobe.com>
4467
4468 [cff] Fix for hints that touch.
4469
4470 * src/cff/cf2hints.c (cf2_hintmap_insertHint): Fix condition for
4471 finding index value of insertion point.
4472
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +010044732013-11-06 Werner Lemberg <wl@gnu.org>
4474
Werner Lemberg5e225b72013-11-06 08:41:59 +01004475 [truetype] Fix handling of phantom points in composite glyphs.
4476 Problem reported by Nigel Tao <nigeltao@golang.org>.
4477
4478 This is a follow-up commit to the previous one.
4479
4480 * src/truetype/ttgload.c (load_truetype_glyph): Call
4481 `tt_get_metrics' after loading the glyph header.
4482
44832013-11-06 Werner Lemberg <wl@gnu.org>
4484
Werner Lemberg7e4b0fb2013-11-06 07:14:49 +01004485 [truetype] Improve emulation of vertical metrics.
4486
4487 This commit also improves the start values of vertical phantom
4488 points. Kudos to Greg Hitchcock for help.
4489
4490 * src/truetype/ttgload.c (TT_Get_VMetrics): Add parameter to pass
4491 `yMax' value. Replace code with fixed Microsoft definition.
4492 (tt_get_metrics): Updated.
4493 (TT_LOADER_SET_PP): Add explanation how to initialize phantom
4494 points, taken from both the OpenType specification and private
4495 communication with Greg (which will eventually be added to the
4496 standard).
4497 Fix horizontal position of `pp3' and `pp4'.
4498
4499 * src/truetype/ttgload.h: Updated.
4500
4501 * src/truetype/ttdriver.c (tt_get_advances): Updated.
4502
4503 * docs/CHANGES: Updated.
4504
Werner Lembergc6064282013-11-05 13:29:15 +010045052013-11-05 Werner Lemberg <wl@gnu.org>
4506
Werner Lemberg50740532013-11-05 23:19:18 +01004507 * builds/windows/vc2010/freetype.vcxproj: s/v110/v100/.
4508 PlatformToolSet version 110 is for VC2012.
4509
4510 Problem reported (with solution) by Dave Arnold <darnold@adobe.com>.
4511
45122013-11-05 Werner Lemberg <wl@gnu.org>
4513
Werner Lembergc6064282013-11-05 13:29:15 +01004514 [truetype] Correctly reset point tags for glyph components.
4515 Problem reported by Nigel Tao <nigeltao@golang.org>.
4516
4517 * src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix loop.
4518
Werner Lemberg35b08182013-11-02 08:28:41 +010045192013-11-02 Werner Lemberg <wl@gnu.org>
4520
Werner Lemberg7d449432013-11-02 11:36:37 +01004521 [truetype] Fix GETINFO opcode handling of subpixel hinting bits.
4522
4523 * src/truetype/ttinterp.c (Ins_GETINFO): Don't request bit 6 set to
4524 get info on subpixel hinting.
4525
4526 * docs/CHANGES: Updated.
4527
45282013-11-02 Werner Lemberg <wl@gnu.org>
4529
Werner Lemberg35b08182013-11-02 08:28:41 +01004530 Fix Savannah bug #40451.
4531
4532 Simply apply the patch from the bug report.
4533
4534 * builds/unix/ftconfig.in, builds/vms/ftconfig.h,
4535 include/freetype/config/ftconfig.h: The used #pragma directives only
4536 work with gcc versions 4.6 and higher.
4537
Werner Lembergebf52d62013-11-01 13:26:28 +010045382013-11-01 Werner Lemberg <wl@gnu.org>
4539
Werner Lembergafa0d592013-11-01 22:27:27 +01004540 * docs/CHANGES: Updated.
4541
45422013-11-01 Werner Lemberg <wl@gnu.org>
4543
Werner Lembergebf52d62013-11-01 13:26:28 +01004544 [truetype] Minor code refactoring.
4545
4546 Two benefits: The allocated FDEF (and IDEF) array gets slightly
4547 smaller, and the `ttdebug' demo program has access to function
4548 numbers without additional costs.
4549
4550 Fortunately, no changes to FontForge are necessary – this is the
4551 only external TrueType debugger I know of, but others may exist and
4552 should check the code accordingly.
4553
4554 * src/truetype/ttinterp.h (TT_CallRec): Replace `Cur_Restart' and
4555 `Cur_End' with a pointer to the corresponding `TT_DefRecord'
4556 structure.
4557
4558 * src/truetype/ttinterp.c (DO_JROT, DO_JMPR, DO_JROF, Ins_ENDF,
4559 Ins_CALL, Ins_LOOPCALL, Ins_UNKNOWN, TT_RunIns <Invalid_Opcode>):
4560 Updated.
4561
Werner Lembergee510512013-10-27 07:25:35 +010045622013-10-27 Werner Lemberg <wl@gnu.org>
4563
4564 [sfnt] Implement support for `OS/2' table version 5.
4565
4566 See
4567
4568 http://typedrawers.com/discussion/470/new-microsoft-size-specific-design-selection-mechanism
4569
4570 for the announcement.
4571
4572 * include/freetype/tttables.h (TT_OS2): Add fields
4573 `usLowerPointSize' and `usUpperPointSize'. Since FreeType returns
4574 this structure only as a pointer through `FT_Get_Sfnt_Table', there
4575 shouldn't be any ABI problems.
4576
4577 * src/sfnt/ttload.c (tt_face_load_os2): Implement it.
4578
4579 * docs/CHANGES: Updated.
4580
Werner Lemberg994a8592013-10-24 08:50:34 +020045812013-10-24 Werner Lemberg <wl@gnu.org>
4582
4583 * README.git, docs/CHANGES, docs/INSTALL: Updated.
4584
John Carya0e4a732013-10-24 08:49:08 +020045852013-10-24 John Cary <cary@txcorp.com>
4586
4587 Provide cmake support.
4588
4589 * CMakeLists.txt: New file.
4590
Kenneth Miller4d87ac82013-10-23 20:10:56 +020045912013-10-23 Kenneth Miller <kennethadammiller@yahoo.com>
4592 Werner Lemberg <wl@gnu.org>
4593
4594 Provide support for x64 builds in Visual C++ project files.
4595
4596 * src/builds/win32: Renamed to...
4597 * src/builds/windows: This.
4598
4599 * src/builds/windows/vc2010/*: Updated to handle x64 target.
4600
4601 * src/builds/windows/*.mk, docs/INSTALL.GNU: s/win32/windows/ where
4602 appropriate.
4603
Werner Lemberg604838d2013-10-22 01:10:10 +020046042013-10-22 Werner Lemberg <wl@gnu.org>
4605
4606 * src/base/md5.c, src/base/md5.h: Updated to recent version.
4607
4608 * src/base/ftobjs.c: Updated; `md5.c' no longer uses `free'.
4609
Werner Lembergdb9159c2013-10-22 10:27:50 +02004610 The canonical URL to get updates for this file is
4611
4612 http://cvsweb.openwall.com/cgi/cvsweb.cgi/Owl/packages/popa3d/popa3d/md5/
4613
4614 as the author told me in private communication.
4615
Werner Lemberg34efe052013-10-19 21:14:40 +020046162013-10-19 Werner Lemberg <wl@gnu.org>
4617
Werner Lemberg75efc2d2013-10-19 21:46:03 +02004618 [autofit] s/SMALL_TOP/X_HEIGHT/.
4619
4620 * src/autofit/afblue.dat: Updated.
4621
4622 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4623
4624 * src/autofit/aflatin.c, src/autofit/aflatin.h,
4625 src/autofit/atlatin2.c: Updated.
4626
46272013-10-19 Werner Lemberg <wl@gnu.org>
4628
Werner Lemberg34efe052013-10-19 21:14:40 +02004629 * src/autofit/afblue.dat: s/MINOR/DESCENDER/.
4630
4631 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4632
Werner Lemberg955f6a82013-10-16 19:47:57 +020046332013-10-16 Werner Lemberg <wl@gnu.org>
4634
Werner Lemberga5f22a92013-10-17 11:08:25 +02004635 [autofit] Add description strings to script entries.
4636
4637 Currently, this is unused.
4638
4639 * src/autofit/afscript.h: Do it.
4640 * src/autofit/afglobal.c, src/autofit/afpic.c,
4641 src/autofit/aftypes.h: Updated.
4642
46432013-10-16 Werner Lemberg <wl@gnu.org>
4644
Werner Lemberg955f6a82013-10-16 19:47:57 +02004645 [autofit] Improve tracing message for extra light flag.
4646
4647 * src/autofit/aflatin.c (af_latin_metrics_scale_dim): Do it.
4648
Chongyu Zhu41632b52013-10-15 11:40:34 +020046492013-10-15 Chongyu Zhu <lembacon@gmail.com>
4650
4651 [arm] Fix thumb2 inline assembly under LLVM.
4652
4653 When using `ADD' with an immediate operand, the instruction is
4654 actually `ADD Rd, Rn, #<imm12>', that is, the maximum of the
4655 immediate operand cannot exceed 4095. It will fail to compile with
4656 LLVM.
4657
4658 However, in GCC, due to some legacy compatibility considerations,
4659 `ADD.W' will be automatically emitted when the immediate operand is
4660 larger than 4095.
4661
4662 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
4663 (FT_MulFix_arm) [__GNUC__]: Support clang compiler.
4664
4665 * src/truetype/ttinterp.c (TT_MulFix14_arm) [__GNUC__]: Ditto.
4666
Werner Lembergb6695242013-10-12 10:33:04 +020046672013-10-12 Werner Lemberg <wl@gnu.org>
4668
4669 [autofit] Improve tracing of `latin' hinter.
4670
4671 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
4672 zone types.
4673 (af_latin_metrics_scale_dim): Report scaling changes due to x height
4674 alignment.
4675 Report scaled stroke width and blue zone values.
4676
Dave Arnolde845a852013-10-03 23:04:29 +020046772013-10-03 Dave Arnold <darnold@adobe.com>
4678
4679 * src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
4680
Werner Lemberg2c56f2a2013-10-07 22:01:00 +02004681 Note that the old code avoided using a region of the piecewise
4682 linear function where the slope was zero. The recovery was to use a
4683 different section of the function, which produced a different,
4684 incorrect amount of darkening.
4685
Darrell Bellert01af71d2013-10-02 22:04:07 +020046862013-10-02 Darrell Bellert <darrell.bellert@hl.konicaminolta.us>
4687
4688 * src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
4689
Dave Arnold0b330452013-10-02 11:04:06 +020046902013-10-02 Dave Arnold <darnold@adobe.com>
4691
4692 * src/cff/cf2font.c (cf2_computeDarkening): Initialize darkenAmount.
4693
4694 This line was lost in commit 89ca1fd6 (from 2013-06-25). The effect
4695 is to use a previous darkening amount when producing an unhinted,
4696 unscaled outline. This can cause autohint samples in ftgrid and
4697 ftview to be based on darkened CFF outlines instead of unhinted,
4698 undarkened ones.
4699
Dave Arnold3a2cb0f2013-09-29 16:17:02 +020047002013-09-29 Dave Arnold <darnold@adobe.com>
4701
4702 Fix Savannah bug #39295.
4703
4704 The bug was caused by switching to the initial hintmap (the one in
4705 effect when `moveto' executes) just before drawing the final element
4706 in the charstring. This ensured that the path was closed (in both
4707 Character Space and Device Space). But if the final element was a
4708 curve and if the final hintmap was different enough from the initial
4709 one, then the curve was visibly distorted.
4710
4711 The first part of the fix is to draw the final curve using the final
4712 hintmap as specified by the charstring. This corrects the
4713 distortion but does not ensure closing in Device Space. It may
4714 require the rasterizer to automatically generate an extra closing
4715 line. Depending on the hintmap differences, this line could be from
4716 zero to a couple pixels in length.
4717
4718 The second part of the fix covers the case where the charstring
4719 subpath is closed with an explicit line. We now modify that line's
4720 end point to avoid the distortion.
4721
4722 Some glyphs in the bug report font (TexGyreHeros-Regular) that show
4723 the change are:
4724
4725 25ppem S (98)
4726 24ppem eight (52)
4727 25.5ppem p (85)
4728
4729 Curves at the *end* of a subpath are no longer distorted. However,
4730 some of these glyphs have bad hint substitutions in the middle of a
4731 subpath, and these are not affected.
4732
4733 The patch has been tested with a set of 106 fonts that shipped with
4734 Adobe Creative Suite 4, together with 756 Open Source CFF fonts from
4735 Google Fonts. There are 1.5 million glyphs, of which some 20k are
4736 changed with the fix. A sampling of a few hundred of these changes
4737 have been examined more closely, and the changes look good (or at
4738 least acceptable).
4739
4740 * src/cff/cf2hints.h (CF2_GlyphPathRec): New element `pathIsClosing'
4741 to indicate that we synthesize a closepath line.
4742
4743 * src/cff/cf2hints.c (cf2_glyphpath_init): Updated.
4744 (cf2_glyphpath_pushPrevElem): If closing, use first hint map (for
4745 `lineto' operator) and adjust hint zone.
4746 For synthesized closing lines, use end point in first hint zone.
4747 (cf2_glyphpath_lineTo): Take care of synthesized closing lines. In
4748 particular, shift the detection of zero-length lines from character
4749 space to device space.
4750 (cf2_glyphpath_closeOpenPath): Remove assertion.
4751 Updated.
4752
Werner Lembergb75a8b82013-09-25 09:46:36 +020047532013-09-25 Werner Lemberg <wl@gnu.org>
4754
4755 * src/autofit/aflatin.c (af_{grek,cyrl}_uniranges): Fix arrays.
4756
suzuki toshiyaac0f4452013-09-25 10:57:17 +090047572013-09-25 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
4758
4759 [bdf, pcf] Refuse non-zero face_index.
Werner Lemberg964317e2013-09-25 09:22:40 +02004760
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004761 Suggested by Akira Tagoh, see
4762
4763 http://lists.gnu.org/archive/html/freetype/2013-09/msg00030.html
4764
Werner Lemberg964317e2013-09-25 09:22:40 +02004765 * src/bdf/bdfdrivr.c (BDF_Face_Init): Return `Invalid_Argument'
4766 error if the font could be opened but non-zero `face_index' is
4767 given.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004768 * src/pcf/pcfdrivr.c (PCF_Face_Init): Ditto.
4769
4770 * src/type42/t42objs.c (T42_Face_Init): Remove unrequired FT_UNUSED
Werner Lemberg964317e2013-09-25 09:22:40 +02004771 macro for `face_index' because it is validated later.
suzuki toshiyaac0f4452013-09-25 10:57:17 +09004772
Werner Lemberg4de77872013-09-23 22:10:08 +020047732013-09-23 Werner Lemberg <wl@gnu.org>
4774
4775 Fix Savannah bug #40090.
4776
4777 * src/autofit/afcjk.c (af_cjk_metrics_scale): Revert commit
4778 306f8c5d (from 2013-08-25) affecting this function.
4779
Werner Lemberg5a4c5a52013-09-22 22:37:26 +020047802013-09-22 Werner Lemberg <wl@gnu.org>
4781
4782 [autofit] Disunify Cyrillic and Greek handling from Latin.
4783
4784 * src/autofit/afscript.h: Add Cyrillic and Greek.
4785
4786 * src/autofit/afblue.dat (AF_BLUE_STRINGSET_GREK,
4787 AF_BLUE_STRINGSET_CYRL): Add blue zones for Greek and Cyrillic.
4788 (AF_BLUE_STRINGSET_LATN): Fix typo.
4789 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4790
4791 * src/autofit/aflatin.c (af_grek_uniranges, af_cyrl_uniranges): New
4792 arrays.
4793 (af_grek_script_class, af_cyrl_script_class): New scripts.
4794 * src/autofit/aflatin.h: Updated.
4795
Werner Lemberg2cca9662013-09-20 07:23:34 +020047962013-09-20 Werner Lemberg <wl@gnu.org>
4797
4798 * docs/CHANGES: Updated.
4799
Behdad Esfahbod31e726d2013-09-20 07:20:53 +020048002013-09-20 Behdad Esfahbod <behdad@behdad.org>
4801
4802 Fix vertical size of emboldened glyphs.
4803
4804 Cf. https://bugzilla.gnome.org/show_bug.cgi?id=686709
4805
4806 * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Adjust `horiBearingY'
4807 also.
4808
Alexei Podtelezhnikov52381c12013-09-11 23:25:56 -040048092013-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
4810
4811 * include/freetype/ftoutln.h: Correct FT_Outline_Get_Orientation
4812 algorithm description.
4813
Werner Lemberg3f542492013-09-11 23:08:31 +020048142013-09-11 Werner Lemberg <wl@gnu.org>
4815
4816 [autofit] Improve Hebrew rendering.
4817
4818 This change introduces a new blue zone property
4819 `AF_BLUE_PROPERTY_LATIN_LONG' to make the auto-hinter ignore short
4820 top segments.
4821
4822 * src/autofit/afblue.dat: Fix Hebrew blue strings.
4823 Use AF_BLUE_PROPERTY_LATIN_LONG for AF_BLUE_STRING_HEBREW_TOP.
4824
4825 * src/autofit/afblue.hin (AF_BLUE_PROPERTY_LATIN_LONG): New macro.
4826
4827 * src/autofit/afblue.c, src/autofit/afblue.h: Updated.
4828
4829 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Handle
4830 `AF_LATIN_IS_LONG_BLUE'.
4831
4832 * src/autofit/aflatin.h (AF_LATIN_IS_LONG_BLUE): New macro.
4833
Werner Lemberg85a7fdf2013-08-29 21:03:05 +020048342013-08-28 Behdad Esfahbod <behdad@google.com>
4835
4836 [sfnt] Fix frame access while reading WOFF table directory.
4837
4838 * src/sfnt/sfobjs.c (woff_open_font): Using single memory frame
4839 while reading the directory entries for the whole loop.
4840
48412013-08-29 Werner Lemberg <wl@gnu.org>
Werner Lembergd689d1c2013-08-29 17:53:40 +02004842 Behdad Esfahbod <behdad@google.com>
4843
4844 Implement support for WOFF containers.
4845
4846 We simply synthesize a SFNT from the WOFF, create a memory stream
4847 for the new data, and load the SFNT as usual.
4848
4849 Does NOT add any API to access WOFF metadata or private blocks.
4850
4851 * include/freetype/internal/tttypes.h (WOFF_HeaderRec,
4852 WOFF_TableRec): New structures.
4853
4854 * include/freetype/tttags.h (TTAG_wOFF): New macro.
4855
4856 * src/base/ftobjs.c (FT_Open_Face): Set `stream' after calling
4857 `open_face'.
4858
4859 * src/sfnt/sfobjs.c [FT_CONFIG_OPTION_SYSTEM_ZLIB]: Include
4860 `FT_GZIP_H'.
4861 (WRITE_BYTE, WRITE_USHORT, WRITE_ULONG): New temporary macros for
4862 writing to a stream.
4863 (sfnt_stream_close, compare_offsets, woff_open_font): New functions.
4864 (sfnt_open_font): Handle `TTAG_wOFF'.
4865 (sfnt_init_face): Set `stream' after calling `sfnt_open_font'.
4866
4867 * src/truetype/ttobjs.c (tt_face_init): Set `stream' after calling
4868 `sfnt->init_face'.
4869
4870 * src/base/ftobjs.c (open_face): Use a pointer to FT_Stream as an
4871 argument so that a changed stream survives.
4872 Update callers.
4873
48742013-08-28 Werner Lemberg <wl@gnu.org>
Werner Lemberge0f39ae2013-08-28 17:34:01 +02004875
Werner Lembergdc240522013-08-29 17:53:24 +02004876 [gzip] New function `FT_Gzip_Uncompress'.
4877
4878 This is modeled after zlib's `uncompress' function. We need this
4879 for WOFF support.
4880
4881 * include/freetype/ftgzip.h, src/gzip/ftgzip.c (FT_Gzip_Uncompress):
4882 New function.
4883
4884 * src/gzip/rules.mk: Rewrite to better reflect dependencies.
4885
48862013-08-28 Werner Lemberg <wl@gnu.org>
4887
Werner Lemberg5195ecd2013-08-28 17:41:21 +02004888 [autofit] Fix `make multi' compilation.
4889
4890 * src/autofit/afblue.cin, src/autofit/afblue.c: Don't include
4891 `afblue.h' but `aftypes.h'.
4892 * src/autofit/afcjk.c: Don't include `aftypes.h' but `afglobal.h'.
4893
48942013-08-28 Werner Lemberg <wl@gnu.org>
4895
Werner Lemberge0f39ae2013-08-28 17:34:01 +02004896 [autofit] Fix C++ compilation.
4897
4898 * src/autofit/afglobal.c (af_face_globals_get_metrics),
4899 src/autofit/afdummy.c (af_dflt_script_class), src/autofit/afindic.c
4900 (af_deva_script_class): Use proper casts.
4901
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +020049022013-08-27 Behdad Esfahbod <behdad@google.com>
4903
Behdad Esfahbodc799dd62013-08-27 21:46:03 +02004904 * src/sfnt/ttload.c (tt_face_load_font_dir): Fix sign typos.
4905
49062013-08-27 Behdad Esfahbod <behdad@google.com>
4907
Behdad Esfahbodbd3849e2013-08-27 21:43:38 +02004908 FT_Open_Face: Improve external stream handling.
4909
4910 If the font's `clazz->init_face' function wants to swap to new
4911 stream, handling of whether original stream was external could
4912 result to either memory leak or double free. Mark externality into
4913 face flags before calling `init_face' such that the clazz can handle
4914 external streams properly.
4915
4916 * src/base/ftobjs.c (FT_Open_Face): Move code to set
4917 FT_FACE_FLAG_EXTERNAL_STREAM to...
4918 (open_face): This function.
4919
Werner Lemberg5e53db22013-08-27 18:37:39 +020049202013-08-27 Werner Lemberg <wl@gnu.org>
4921
Werner Lembergbcd8c0b2013-08-27 21:36:03 +02004922 Remove `FT_SqrtFixed' function.
4923
4924 It's no longer used.
4925
4926 * include/freetype/internal/ftcalc.h, src/base/ftcalc.c: Do it.
4927
49282013-08-27 Werner Lemberg <wl@gnu.org>
4929
Werner Lemberg5e53db22013-08-27 18:37:39 +02004930 [autofit] While tracing, report script names instead of ID values.
4931
4932 * src/autofit/afglobal.c (af_script_names) [FT_DEBUG_LEVEL_TRACE]:
4933 New array.
4934 * src/autofit/afglobal.h: Updated.
4935
4936 * src/autofit/afcjk.c (af_cjk_metrics_init_widths,
4937 af_cjk_hint_edges): Use `af_script_names'.
4938 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
4939 af_latin_hint_edges): Ditto.
4940
Werner Lemberg92f5a042013-08-26 09:22:27 +020049412013-08-26 Werner Lemberg <wl@gnu.org>
4942
Werner Lemberg278f64b2013-08-26 20:20:03 +02004943 [autofit] Report used script while hinting a glyph.
4944
4945 * src/autofit/afcjk.c (af_cjk_hint_edges), src/autofit/aflatin.c
4946 (af_latin_hint_edges): Implement it.
4947
49482013-08-26 Werner Lemberg <wl@gnu.org>
4949
Werner Lemberg371f5c32013-08-26 20:11:24 +02004950 [autofit] Add support for Hebrew script.
4951
4952 * src/autofit/afblue.dat: Add blue strings for Hebrew.
4953 * src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
4954
4955 * src/autofit/aflatin.c (af_hebr_uniranges): New array.
4956 (af_hebr_script_class): New script.
4957 * src/autofit/aflatin.h, src/autofit/afscript.h: Updated.
4958
49592013-08-26 Werner Lemberg <wl@gnu.org>
4960
Werner Lemberg098121d2013-08-26 18:54:05 +02004961 [autofit] Improve tracing messages.
4962
4963 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
4964 ID in tracing message.
4965 (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
4966 loop.
4967 Improve tracing messages.
4968 (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
4969 `num_actions' to count hinting actions.
4970 Improve tracing messages.
4971
4972 * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
4973 script ID in tracing message.
4974 (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
4975 messages.
4976
49772013-08-26 Werner Lemberg <wl@gnu.org>
4978
Werner Lembergffee64a2013-08-26 12:55:48 +02004979 Better tracing of loaded glyphs.
4980
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02004981 Previously, the loading of a glyph was traced at level 4, if at all.
Werner Lembergffee64a2013-08-26 12:55:48 +02004982 With this change, all font loading routines emit a tracing message
4983 at level 1, making it easier to select tracing output (for example
4984 using F2_DEBUG="any:1 afhints:7 aflatin:7").
4985
4986 * src/bdf/bdfdrivr.c (BDF_Glyph_Load): Add tracing message.
4987 * src/cff/cffdrivr.c (cff_glyph_load): Ditto.
4988 * src/cff/cffgload.c (cff_decoder_prepare): Improve tracing
4989 messages.
4990 * src/cid/cidgload.c (cid_load_glyph): Use level 1 for tracing
4991 message.
4992 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Ditto.
4993 * src/pfr/pfrobjs.c (pfr_slot_load): Add tracing message.
4994 * src/truetype/ttgload.c (TT_Load_Glyph): Ditto.
4995 * src/type1/t1gload.c (T1_Load_Glyph): Ditto.
4996 * src/type42/t42objs.c (T42_GlyphSlot_Load): Ditto.
4997 * src/winfonts/winfnt.c (FNT_Load_Glyph): Ditto.
4998
49992013-08-26 Werner Lemberg <wl@gnu.org>
5000
Werner Lemberg33655a92013-08-26 09:58:50 +02005001 [autofit] Fix script selection.
5002
5003 * src/autofit/afglobal.c (af_face_globals_get_metrics): Use
5004 `AF_SCRIPT_DFLT', not value 0.
5005 Simplify code.
5006
5007 * src/autofit/afscript.h: Sort by script name.
5008
50092013-08-26 Werner Lemberg <wl@gnu.org>
5010
Werner Lemberg92f5a042013-08-26 09:22:27 +02005011 [autofit] Make `dummy' hinter work as expected.
5012
5013 * src/autofit/afdummy.c (af_dummy_hints_init): Properly set scaling
5014 information.
5015 (af_dummy_hints_apply): Scale the glyphs.
5016
Werner Lemberg8b8be782013-08-25 08:01:41 +020050172013-08-25 Werner Lemberg <wl@gnu.org>
5018
Werner Lembergc1eb4452013-08-25 19:47:26 +02005019 [autofit] Make `cjk' module use blue stringsets.
5020
5021 * src/autofit/afcjk.c (AF_CJK_MAX_TEST_CHARACTERS): Removed.
5022 (af_cjk_hani_blue_chars): Removed.
5023 (AF_CJK_BLUE_TYPE_*): Removed.
5024 (af_cjk_metrics_init_blues): Replace AF_CJK_MAX_TEST_CHARACTERS with
5025 AF_BLUE_STRING_MAX_LEN.
5026 Change loops to use offsets (in file `afblue.h') into the new arrays
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005027 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
Werner Lembergc1eb4452013-08-25 19:47:26 +02005028 Instead of three dimensions (as used in the old blue string array)
5029 we now use properties to do the same, saving one loop nesting level.
5030
5031 * src/autofit/afcjk.h: Remove old enumeration values superseded by
5032 the new data in `afblue.h'.
5033 (AF_CJK_IS_TOP_BLUE, AF_CJK_IS_HORIZ_BLUE, AF_CJK_IS_FILLED_BLUE,
5034 AF_CJK_IS_RIGHT_BLUE): New macros, to be used in
5035 `af_cjk_metrics_init_blues'.
5036 (AF_CJK_BLUE_IS_RIGHT): Remove this now redundant enum value.
5037 (AF_CJK_BLUE_IS_TOP): Renamed to...
5038 (AF_CJK_BLUE_TOP): This.
5039 (AF_CJK_MAX_BLUES): Remove.
5040 (AF_CJKAxisRec): Updated.
5041
50422013-08-25 Werner Lemberg <wl@gnu.org>
5043
Werner Lemberg5c4a23a2013-08-25 19:29:07 +02005044 [autofit] Typo.
5045
5046 * src/autofit/afblue.hin, src/autofit/afblue.c (GET_UTF8_CHAR): Use
5047 cast.
5048
50492013-08-25 Werner Lemberg <wl@gnu.org>
5050
Werner Lemberg306f8c52013-08-25 13:07:08 +02005051 [autofit] Synchronize `cjk' with `latin' module (and vice versa).
5052
5053 * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Add tracing
5054 messages.
5055 (af_cjk_metrics_init_blues): Don't pass blue string array as
5056 argument but use the global array directly.
5057 Use `outline' directly.
5058 Update and add tracing messages.
5059 (af_cjk_metrics_init): Simplify code.
5060 (af_cjk_metrics_scale_dim): Improve tracing message.
5061 (af_cjk_metrics_scale): Synchronize.
5062
5063 * src/autofit/aflatin.c (af_latin_metrics_init_widths,
5064 af_latin_metrics_init_blues): Improve and add tracing messages.
5065
50662013-08-25 Werner Lemberg <wl@gnu.org>
5067
Werner Lemberg0975d682013-08-25 08:37:47 +02005068 [autofit] Make `latin' module use blue stringsets.
5069
5070 * src/autofit/aflatin.c (AF_LATIN_MAX_TEST_CHARACTERS): Removed.
5071 (af_latin_blue_chars): Removed.
5072 (af_latin_metrics_init_blues): Replace AF_LATIN_MAX_TEST_CHARACTERS
5073 with AF_BLUE_STRING_MAX_LEN.
5074 Change loops to use offsets (in file `afblue.h') into the new arrays
5075 `af_blue_stringsets' and `af_blue_strings' (in file `afblue.c').
5076 Use `AF_LATIN_IS_SMALL_TOP_BLUE' macro.
5077
5078 * src/autofit/aflatin.h: Remove old enumeration values superseded by
5079 the new data in `afblue.h'.
5080 (AF_LATIN_IS_TOP_BLUE): Updated definition.
5081 (AF_LATIN_IS_SMALL_TOP_BLUE): New macro.
5082 (AF_LATIN_MAX_BLUES): Remove.
5083 (AF_LatinAxisRec): Updated.
5084
50852013-08-25 Werner Lemberg <wl@gnu.org>
5086
Werner Lembergdb3e5b92013-08-25 08:23:22 +02005087 [autofit] Add blue stringsets.
5088
5089 * src/autofit/aftypes.h: Include `afblue.h'.
5090 (AF_ScriptClassRec): Add `blue_stringset' field.
5091 (AF_DEFINE_SCRIPT_CLASS): Updated.
5092
5093 * src/autofit/autofit.c: Include `afblue.c'.
5094
5095 * src/autofit/afcjk.c (af_hani_script_class), src/autofit/afdummy.c
5096 (af_dflt_script_class), src/autofit/afindic.c
5097 (af_deva_script_class), src/autofit/aflatin.c
5098 (af_latn_script_class), src/autofit/aflatin2.c
5099 (af_ltn2_script_class): Updated.
5100
5101 * src/autofit/rules.mk (AUTOF_DRV_SRC): Add `afblue.c'.
5102
51032013-08-25 Werner Lemberg <wl@gnu.org>
5104
Werner Lemberg8b8be782013-08-25 08:01:41 +02005105 [autofit] Introduce data file for blue strings.
5106
5107 The idea is to have a central file which gets processed by a Perl
5108 script to create proper `.c' and `.h' files using templates. There
5109 are two other reasons to do that:
5110
5111 . The data file should be easily readable. We use UTF-8 encoding
5112 which then gets converted to single bytes.
5113
5114 . Since the number of supported scripts will increase soon, the
5115 current usage of blue string arrays is a waste of space. Using
5116 the Perl script it is possible to imitate jagged arrays,
5117 defining enumeration constants as offsets into the arrays.
5118
5119 This commit only adds files without changing any functionality.
5120
5121 * src/autofit/afblue.dat: New data file.
5122 * src/tools/afblue.pl: New Perl script for processing `afblue.dat'.
5123
5124 * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files
5125 for...
5126 * src/autofit/afblue.c, src/autofit/afblue.c: New source files.
5127 To avoid a dependency on Perl, we add them too.
5128
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -040051292013-08-19 Alexei Podtelezhnikov <apodtele@gmail.com>
5130
Werner Lemberg71c0ad62013-08-27 21:30:09 +02005131 [base] Enable new algorithm for `BBox_Cubic_Check'.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04005132
Werner Lemberg71c0ad62013-08-27 21:30:09 +02005133 * src/base/ftbbox.c: Enable new BBox_Cubic_Check algorithm, remove
5134 the old one.
5135 Improve comments.
Alexei Podtelezhnikovfc32e1c2013-08-19 22:57:05 -04005136
Werner Lemberg6bfa2632013-08-18 18:34:05 +020051372013-08-18 Werner Lemberg <wl@gnu.org>
5138
Werner Lemberg4af44442013-08-18 18:46:30 +02005139 * builds/unix/unix-def.in (freetype2.pc): Don't set executable bit.
5140
51412013-08-18 Werner Lemberg <wl@gnu.org>
5142
Werner Lemberg6bfa2632013-08-18 18:34:05 +02005143 Fix Savannah bug #39804.
5144
5145 * builds/unix/configure.raw (LIBPNG): Define and export.
5146 * builds/unix/freetype-config.in, builds/unix/freetype2.in: Handle
5147 libpng.
5148
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -040051492013-08-17 Alexei Podtelezhnikov <apodtele@gmail.com>
5150
5151 [base] Clean up BBox_Conic_Check.
5152
5153 * src/base/ftbbox.c (BBox_Conic_Check): Remove redundant checks for
5154 extremum at the segment ends, which are already within the bbox.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005155 Slightly modify calculations.
Alexei Podtelezhnikov32a7d872013-08-17 22:19:21 -04005156
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -040051572013-08-15 Alexei Podtelezhnikov <apodtele@gmail.com>
5158
5159 [base] Finish experimental (disabled) BBox_Cubic_Check implementation.
5160
5161 * src/base/ftbbox.c (BBox_Cubic_Check): Scale arguments to improve
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005162 accuracy and avoid overflows.
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04005163
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -040051642013-08-13 Alexei Podtelezhnikov <apodtele@gmail.com>
5165
5166 [base] Refactor experimental (disabled) BBox_Cubic_Check.
5167
5168 * src/base/ftbbox.c (BBox_Cubic_Check): Implement the minimum search
Alexei Podtelezhnikov1a9c3d12013-08-15 22:51:42 -04005169 as the mirror image of the maximum search implemented here...
5170 (update_max): New function.
Alexei Podtelezhnikov61a65512013-08-13 22:28:57 -04005171
John Tytgat9bcfab82013-08-06 08:55:19 +020051722013-08-06 John Tytgat <John.Tytgat@esko.com>
5173
5174 Fix Savannah bug #39702.
5175
5176 * src/cff/cffload.c (cff_index_get_pointers): Check for `cur_offset
5177 != 0'; this stronger test is mandated by the CFF specification.
5178 Fix test for INDEX structures which have one or more empty entries
5179 at the end.
5180
Werner Lembergcc25e3a2013-08-05 08:46:15 +020051812013-08-05 Werner Lemberg <wl@gnu.org>
5182
Werner Lemberga32682f2013-08-06 00:21:46 +02005183 Fix gcc pragmas, part 2.
5184
5185 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
5186 TT_DotFix14_long_long): `#pragma gcc diagnostic {push,pop}' has been
5187 introduced with gcc version 4.6.
5188
51892013-08-05 Werner Lemberg <wl@gnu.org>
5190
Werner Lemberg69e524d2013-08-05 23:38:32 +02005191 Fix gcc pragmas.
5192
5193 * src/truetype/ttinterp.c (TT_MulFix14_long_long,
5194 TT_DotFix14_long_long): Older gcc versions don't accept diagnostic
5195 pragmas within a function body.
5196
51972013-08-05 Werner Lemberg <wl@gnu.org>
5198
Werner Lemberg9e6de362013-08-05 16:37:21 +02005199 Fix Savannah bug #39700.
5200
5201 * builds/unix/ftconfig.h: Synchronize with
5202 `include/freetype/config/ftconfig.h'.
5203
5204 * builds/vms/ftconfig.h: Ditto.
5205 Make the differences to the master `ftconfig.h' file as small as
5206 possible for easier maintainance.
5207
52082013-08-05 Werner Lemberg <wl@gnu.org>
5209
Werner Lembergcc25e3a2013-08-05 08:46:15 +02005210 [autofit] Improve handling of `near' points.
5211
5212 Points which are very near to each other are now marked as such.
5213 The `weak' flag is then computed by using the `in' vector of the
5214 first and the `out' vector of the last point of a group of near
5215 points.
5216
5217 For example, this fixes the rendering of glyph `Oslash' in
5218 `Roboto-Thin.ttf'.
5219
5220 * src/autofit/afhints.h (AF_Flags): New value `AF_FLAGS_NEAR'.
5221
5222 * src/autofit/afhints.c (af_glyph_hints_reload): Introduce
5223 the heuristic value `near_limit' to decide whether the current point
5224 is near to the previous one, then set `AF_FLAG_NEAR' accordingly.
5225 Store good `in' vector (of last non-near point) in
5226 `last_good_in_{x,y}' and use it as an argument to
5227 `ft_corner_is_flat' if necessary.
5228
Werner Lemberg74a9b672013-08-02 14:53:32 +020052292013-08-02 Werner Lemberg <wl@gnu.org>
5230
Werner Lemberg0d28a7d2013-08-02 22:59:43 +02005231 * include/freetype/ftcffdrv.h: Improve documentation.
5232 This is based on blog entries from David Lemon and Dave Arnold (both
5233 from Adobe) with kind permission. Dave also helped in
5234 proof-reading.
5235
52362013-08-02 Werner Lemberg <wl@gnu.org>
5237
Werner Lemberg456cc442013-08-02 20:25:21 +02005238 [autofit] Move declaration of scripts into separate file.
5239
5240 This has the benefit that we don't need to duplicate the data at
5241 different places.
5242
5243 * src/autofit/afscript.h: New file.
5244
5245 * src/autofit/aftypes.h (AF_Script): Include `afscript.h' to define
5246 the enumeration values.
5247
5248 * src/autofit/afglobal.c: Include `afscript.h' to get the script
5249 specific header files.
5250 (af_script_classes): Include `afscript.h' to fill this array.
5251
5252 * src/autofit/afpic.c: Include `afscript.h' to get the script
5253 specific header files.
5254 (autofit_module_class_pic_init): Include `afscript.h' for
5255 initialization.
5256 * src/autofit/afpic.h (AF_SCRIPT_CLASSES_COUNT,
5257 AF_SCRIPT_CLASSES_REC_COUNT): Removed. Use `AF_SCRIPT_MAX' instead.
5258
5259 * src/autofit/rules.mk (AUTOF_DRV_H): Updated.
5260
52612013-08-02 Werner Lemberg <wl@gnu.org>
5262
Werner Lemberg773601d2013-08-02 19:51:17 +02005263 [autofit] Move declaration of writing systems into separate file.
5264
5265 This has the benefit that we don't need to duplicate the data at
5266 different places.
5267
5268 * src/autofit/afwrtsys.h: New file.
5269
5270 * src/autofit/aftypes.h (AF_WritingSystem): Include `afwrtsys.h' to
5271 define the enumeration values.
5272
5273 * src/autofit/afglobal.c: Include `afwrtsys.h' to get the writing
5274 system specific header files.
5275 Include `afpic.h'.
5276 (af_writing_system_classes): Include `afwrtsys.h' to fill this
5277 array.
5278
5279 * src/autofit/afpic.c: Include `afwrtsys.h' to get the writing
5280 system specific header files.
5281 (autofit_module_class_pic_init): Include `afwrtsys.h' for
5282 initialization.
5283 * src/autofit/afpic.h (AF_WRITING_SYSTEM_CLASSES_COUNT,
5284 AF_WRITING_SYSTEM_CLASSES_REC_COUNT): Removed. Use
5285 `AF_WRITING_SYSTEM_MAX' instead.
5286
52872013-08-02 Werner Lemberg <wl@gnu.org>
5288
Werner Lemberg74a9b672013-08-02 14:53:32 +02005289 [sfnt] Fix compilation with g++.
5290
5291 * src/sfnt/pngshim.c (error_callback, read_data_from_FT_stream): Use
5292 cast.
5293 (Load_SBit_Png): Pacify compiler.
5294
Werner Lemberg89a529f2013-08-02 14:50:23 +020052952013-08-02 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5296 Werner Lemberg <wl@gnu.org>
5297
5298 [autofit] Fix `make multi'.
5299
5300 * include/freetype/config/ftconfig.h (FT_LOCAL_ARRAY,
5301 FT_LOCAL_ARRAY_DEF): New macros.
5302
5303 * src/autofit/afglobal.c (af_writing_system_classes,
5304 af_script_classes): Use FT_LOCAL_ARRAY_DEF.
5305 * src/autofit/afglobal.h: Declare `af_writing_system_classes' and
5306 `af_script_classes'.
5307 * src/autofit/afloader.c: Include `afpic.h'.
5308
Werner Lemberge8ed2d62013-08-01 12:20:20 +020053092013-08-01 Werner Lemberg <wl@gnu.org>
5310
5311 Another round of cppcheck nitpicks.
5312
5313 The call was (from the top-level of the FreeType tree):
5314
5315 cppcheck --force \
5316 --enable=all \
5317 -I /usr/include \
5318 -I /usr/local/include \
5319 -I /usr/lib/gcc/i586-suse-linux/4.7/include \
5320 -I include \
5321 -I include/freetype \
5322 -I include/freetype/config \
5323 -I include/freetype/internal \
5324 -DFT2_BUILD_LIBRARY \
5325 . &> cppcheck.log
5326
5327 using cppcheck git commit f7e93f99.
5328
5329 Note that cppcheck still can't handle `#include FOO' (with `FOO' a
5330 macro).
5331
5332 */* Improve variable scopes.
5333 */* Remove redundant initializations which get overwritten.
5334
5335 * src/gxvalid/*: Comment out redundant code or guard it with
5336 FT_DEBUG_LEVEL_TRACE.
5337
Werner Lemberg5d6a3602013-07-30 23:17:04 +020053382013-07-30 Werner Lemberg <wl@gnu.org>
5339
Werner Lemberg72f5ff52013-07-31 22:49:29 +02005340 [autofit] Introduce `writing systems'.
5341
5342 This patch adds a new top level to the auto-hinter's script class
5343 hierarchy. It defines `writing systems' which can contain multiple
5344 scripts.
5345
5346 For example, the `latin' writing system (in file `aflatin.c') is
5347 able to support scripts like Latin, Cyrillic, Armenian, etc., which
5348 can be handled similarly.
5349
5350 Scripts are now named using four-letter OpenType tags.
5351
5352 * src/autofit/aftypes.h (AF_ScriptClassRec): Move relevant members
5353 to...
5354 (AF_WritingSystemClassRec): This new structure. It holds pointers
5355 to functions which can be shared among related scripts.
5356 (AF_WritingSystem): New enumeration.
5357 (AF_Script): Revised values using four-letter tags.
5358 (AF_DEFINE_WRITING_SYSTEM_CLASS): New macro.
5359 (AF_DEFINE_SCRIPT_CLASS): Updated.
5360
5361 * src/autofit/afglobal.c (af_writing_system_classes): New global,
5362 constant array.
5363 (af_script_classes): Updated.
5364 (af_face_globals_free): Updated.
5365 Remove assertion.
5366 (af_face_globals_get_metrics): Updated.
5367
5368 * src/autofit/afglobal.h (AF_SCRIPT_FALLBACK)
5369 [!AF_CONFIG_OPTION_CJK]: Handle this case.
5370
5371 * src/autofit/afloader.c (af_loader_load_g, af_loader_load_glyph):
5372 Updated.
5373
5374 * src/autofit/afpic.c (autofit_module_class_pic_init): Updated;
5375 initialize structures for both writing systems and scripts.
5376 * src/autofit/afpic.h: Updated.
5377 (AF_WRITING_SYSTEM_CLASSES_GET): New macro.
5378
5379 * src/autofit/afcjk.c (af_cjk_writing_system_class): New writing
5380 system.
5381 (af_cjk_uniranges): Renamed to...
5382 (af_hani_uniranges): This.
5383 (af_cjk_script_class): Reduced and renamed to...
5384 (af_hani_script_class): This.
5385 * src/autofit/afcjk.h: Updated.
5386
5387 * src/autofit/afdummy.c (af_dummy_writing_system_class): New writing
5388 system.
5389 (af_dummy_script_class): Reduced and renamed to...
5390 (af_dflt_script_class): This.
5391 * src/autofit/afdummy.h: Updated.
5392
5393 * src/autofit/afindic.c (af_indic_writing_system_class): New writing
5394 system.
5395 (af_indic_uniranges): Renamed to...
5396 (af_deva_uniranges): This.
5397 (af_indic_script_class): Reduced and renamed to...
5398 (af_deva_script_class): This.
5399 * src/autofit/afcjk.h: Updated.
5400
5401 * src/autofit/aflatin.c (af_latin_writing_system_class): New writing
5402 system.
5403 (af_latin_uniranges): Renamed to...
5404 (af_latn_uniranges): This.
5405 (af_latin_script_class): Reduced and renamed to...
5406 (af_latn_script_class): This.
5407 * src/autofit/aflatin.h: Updated.
5408
5409 * src/autofit/aflatin2.c (af_latin2_writing_system_class): New
5410 writing system.
5411 (af_latin2_uniranges): Renamed to...
5412 (af_ltn2_uniranges): This.
5413 Synchronize ranges with `latin'.
5414 (af_latin2_script_class): Reduced and renamed to...
5415 (af_ltn2_script_class): This.
5416 * src/autofit/aflatin2.h: Updated.
5417
54182013-07-30 Werner Lemberg <wl@gnu.org>
5419
Werner Lemberg5d6a3602013-07-30 23:17:04 +02005420 [autofit] Variable renaming.
5421
5422 * src/autofit/aftypes.h (AF_ScriptMetricsRec):
5423 s/clazz/script_class/.
5424 Update all users.
5425
suzuki toshiya2b29ed62013-07-30 13:55:29 +090054262013-07-30 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5427
5428 Ignore libpng-config under cross-building configuration,
5429 because it will return the flags for the hosting environment.
5430
5431 * builds/unix/configure.raw: Ignore libpng-config when
5432 `cross_compiling' == yes.
5433
suzuki toshiyaf2e7f1e2013-07-30 13:32:57 +090054342013-07-30 Behdad Esfahbod <behdad@google.com>
5435
5436 Prevent division by zero by a transparent color.
5437
5438 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra):
5439 Return 0 immediately, when alpha channel is zero.
5440
Behdad Esfahbod21c32b02013-07-25 21:53:18 +020054412013-07-25 Behdad Esfahbod <behdad@google.com>
5442
5443 Add FT_FACE_FLAG_COLOR and FT_HAS_COLOR.
5444
5445 Also disambiguate Google's color bitmap tables.
5446
5447 * include/freetype/freetype.h (FT_FACE_FLAG_COLOR, FT_HAS_COLOR):
5448 New macros.
5449
5450 * include/freetype/internal/tttypes.h (TT_SbitTableType): Add
5451 TT_SBIT_TABLE_TYPE_CBLC.
5452
5453 * src/sfnt/sfobjs.c (sfnt_load_face): Handle FT_FACE_FLAG_COLOR.
5454
5455 * src/sfnt/ttsbit.c (tt_face_load_sbit,
5456 tt_face_load_strike_metrics, tt_face_load_sbit_image): Handle
5457 TT_SBIT_TABLE_TYPE_CBLC.
5458
suzuki toshiyab4725cb2013-07-24 14:25:39 +090054592013-07-24 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
5460
5461 [sfnt] Fix for `make multi' target.
5462
5463 * src/sfnt/pngshim.c (Load_SBit_Png): Use FT_LOCAL_DEF().
5464
Werner Lemberg6a7df622013-07-20 10:48:37 +020054652013-07-20 Werner Lemberg <wl@gnu.org>
5466
5467 * docs/INSTALL.GNU: Updated.
5468
Behdad Esfahbodff269522013-07-20 08:02:39 +020054692013-07-20 Behdad Esfahbod <behdad@google.com>
5470
5471 [sfnt] Fix `sbix' table version handling.
5472
5473 * src/sfnt/ttsbit.c (tt_face_load_sbit) [TT_SBIT_TABLE_TYPE_SBIX]:
5474 USHORT version numbers are to be considered as `minor'.
5475
Werner Lemberg05c14212013-07-19 23:11:23 +020054762013-07-19 Werner Lemberg <wl@gnu.org>
5477
5478 [autofit] Fix segment classification for blue zones.
5479
5480 The old code (essentially unchanged since the very beginning)
5481 incorrectly handled this configuration
5482
5483 x -o- x
5484 / \
5485 / \
5486 / \
5487 o o
5488
5489 as flat and this
5490
5491 o o
5492 / /
5493 x| x|
5494 | |
5495 o---------------o
5496
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005497 as round. (`o' and `x' are on and off points, respectively).
Werner Lemberg05c14212013-07-19 23:11:23 +02005498
5499 This is a major change which should improve the rendering results
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005500 enormously for many TrueType fonts, especially in the range approx.
Werner Lemberg05c14212013-07-19 23:11:23 +02005501 20-40ppem, fixing the appearance of many overshoots.
5502
5503 * src/autofit/aflatin.c (af_latin_metrics_init_blues): Look at the
5504 first and last points of the segment, not the points right before
5505 and after.
5506
55072013-07-19 Behdad Esfahbod <behdad@google.com>
Werner Lemberg01705392013-07-18 13:13:12 +02005508
Behdad Esfahbod778a7e62013-07-19 14:28:28 +02005509 [sfnt] `sbix' fix-ups.
5510
5511 * src/sfnt/sfobjs.c (sfnt_load_face): Apple's `sbix' color bitmaps
5512 are rendered scaled and then the `glyf' outline rendered on top. We
5513 don't support that yet, so just ignore the `glyf' outline and
5514 advertise it as a bitmap-only font.
5515
5516 * src/sfnt/ttsbit.c (tt_face_load_strike_metrics)
5517 [TT_SBIT_TABLE_TYPE_SBIX]: Return metrics in 26.6 units.
5518 (tt_face_load_sbix_image): Typo.
5519
55202013-07-18 Behdad Esfahbod <behdad@google.com>
5521
Werner Lemberg01705392013-07-18 13:13:12 +02005522 [sfnt] Add support for Apple's `sbix' color bitmap table.
5523
5524 * include/freetype/internal/tttypes.h (TT_SBit_MetricsRec): Widen
5525 fields to FT_Short and FT_UShort, respectively.
5526 (TT_SBitTableType): New enumeration.
5527 (TT_FaceRec): Add `sbit_table_type' field.
5528
5529 * include/freetype/tttags.h (TTAG_sbix): New macro.
5530
5531 * src/sfnt/pngshim.c (Load_SBit_Png): Pass a more generic
5532 FT_GlyphSlot argument instead FT_Bitmap.
5533 Add flag to control map and metrics handling.
5534 Update all users.
5535
5536 * src/sfnt/ttsbit.c: Include `ttmtx.h'.
5537 (tt_face_load_eblc): Renamed to...
5538 (tt_face_load_sbit): This.
5539 Handlic `sbix' bitmaps.
5540 (tt_face_free_eblc): Renamed to...
5541 (tt_face_load_sbit): This.
5542 Updated.
5543 (tt_face_load_strike_metrics): Handle `sbix' bitmaps.
5544 (tt_face_load_sbix_image): New function.
5545 (tt_sbit_decoder_alloc_bitmap, tt_sbit_decoder_load_image,
5546 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
5547 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
5548 tt_sbit_decoder_load_image, tt_sbit_decoder_load_bitmap): Don't pass
5549 and handle load flags.
5550 (tt_sbit_decoder_load_bitmap) [!FT_CONFIG_OPTION_USE_PNG]: Better
5551 handle formats 17-19.
5552 Move color to grayscale conversion to...
5553 (tt_face_load_sbit_image): Here.
5554 Handle `sbix' bitmaps.
5555
5556 * src/sfnt/pngshim.h: Updated.
5557 * src/sfnt/ttsbit.h: Updated.
5558 * src/sfnt/sfdriver.c: Updated.
5559
Werner Lemberg274207e2013-07-18 12:38:57 +020055602013-07-18 Werner Lemberg <wl@gnu.org>
5561
5562 [sfnt] Ignore invalid magic number in `head' or `bhed'.
5563
5564 Other font engines seem to ignore it also. Problem reported by
5565 Hin-Tak Leung <htl10@users.sourceforge.net>.
5566
5567 * src/sfnt/ttload.c (check_table_dir): Don't abort but warn only if
5568 we have an invalid magic number.
5569
Werner Lemberg9a7951d2013-07-16 15:25:24 +020055702013-07-16 Werner Lemberg <wl@gnu.org>
5571
5572 [smooth] Fix segfault caused by previous commit.
5573
5574 * src/smooth/ftgrays.c (gray_set_cell): Always compute
5575 `ras.invalid'.
5576
David Turnera5f33ee2013-07-16 12:40:03 +020055772013-07-16 David Turner <digit@google.com>
5578
David Turner89929ec2013-07-16 13:36:07 +02005579 [smooth] Improve performance.
5580
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02005581 Provide a work-around for an ARM-specific performance bug in GCC.
David Turner89929ec2013-07-16 13:36:07 +02005582 This speeds up the rasterizer by more than 5%.
5583
5584 Also slightly optimize `set_gray_cell' and `gray_record_cell' (which
5585 also improves performance on other platforms by a tiny bit (<1%).
5586
5587 * src/smooth/ftgrays.c (FT_DIV_MOD): New macro.
5588 Use it where appropriate.
5589
5590 (gray_record_cell, gray_set_cell, gray_move_to,
5591 gray_convert_glyph_inner): Streamline condition handling.
5592
55932013-07-16 David Turner <digit@google.com>
5594
David Turnerf66d48e2013-07-16 13:18:00 +02005595 [truetype] Add assembler code for TT_MulFix14 and TT_DotFix14.
5596
5597 This patch provides slightly optimized versions for ARM, x86, and
5598 x86_64 CPUs if built with GCC.
5599
5600 Also remove some dead code.
5601
5602 * src/truetype/ttinterp.c (TT_MulFix14_arm, TT_MulFix14_long_long,
5603 TT_DotFix14_long_long): New functions.
5604
56052013-07-16 David Turner <digit@google.com>
5606
David Turnerb2890882013-07-16 12:52:18 +02005607 Optimize FT_MulFix for x86_64 GCC builds.
5608
5609 This patch provides an optimized `FT_MulFix' implementation for
5610 x86_64 machines when FreeType is built with GCC, or compatible
5611 compilers like Clang.
5612
5613 Example:
5614 bin/ftbench -p -t 5 -s 14 -f 0008 Arial.ttf
5615
5616 Before:
5617
5618 Load 4.863 us/op
5619 Load_Advances (Normal) 4.816 us/op
5620 Load_Advances (Fast) 0.028 us/op
5621 Render 2.753 us/op
5622 Get_Glyph 0.463 us/op
5623 Get_CBox 0.077 us/op
5624 Get_Char_Index 0.023 us/op
5625 Iterate CMap 13.898 us/op
5626 New_Face 12.368 us/op
5627 Embolden 0.028 us/op
5628 Get_BBox 0.302 us/op
5629
5630 After:
5631
5632 Load 4.617 us/op
5633 Load_Advances (Normal) 4.645 us/op
5634 Load_Advances (Fast) 0.027 us/op
5635 Render 2.789 us/op
5636 Get_Glyph 0.460 us/op
5637 Get_CBox 0.077 us/op
5638 Get_Char_Index 0.024 us/op
5639 Iterate CMap 13.403 us/op
5640 New_Face 12.278 us/op
5641 Embolden 0.028 us/op
5642 Get_BBox 0.301 us/op
5643
5644 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
5645 (FT_MulFix_x86_64): New function.
5646
56472013-07-16 David Turner <digit@google.com>
5648
David Turnera5f33ee2013-07-16 12:40:03 +02005649 Speed up ARMv7 support.
5650
5651 When building for ARMv7 with thumb2 instructions, the optimized
5652 `FT_MulFix_arm' assembly routine was not being used.
5653
5654 The reason for this is in the `ftconfig.h' header, namely:
5655
5656 - The assembly routine uses the `smull' instruction which is not
5657 available when generating Thumb-1 machine code. It is available
5658 in Thumb-2 mode, though.
5659
5660 - The header was written a long time ago before Thumb-2 became
5661 widely popular (e.g. with Android). So it simply doesn't use the
5662 assembly routine if the `__thumb__' built-in macro is defined.
5663
5664 - When compiling in Thumb-2 mode, the compiler will define both
5665 `__thumb__' and `__thumb2__'.
5666
5667 By checking for `(__thumb2__ || !__thumb__)', we ensure that the
5668 assembly routine is only avoided when generating Thumb-1 code.
5669
5670 Given that this is performance-sensitive function, this improves
5671 `ftbench' as follows on a Galaxy Nexus:
5672
5673 Before (us/op) After (us/op)
5674
5675 - loading Arial.ttf glyphs at 14 ppem [1]
5676
5677 Load 34.285 33.098
5678
5679 - same operation with the light auto-hinter [2]
5680
5681 Load 31.317 29.590
5682
5683 - same operation without hinting [3]
5684
5685 Load 6.143 5.376
5686
5687 - loading Arial.ttf advances at 14 ppem [4]
5688
5689 Load_Advances (normal) 34.216 33.016
5690 Load_Advances (fast) 0.176 0.176
5691
5692 [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
5693 [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
5694 [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
5695 [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf
5696
5697 * builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
5698 (FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
5699
Werner Lemberge12fc772013-06-28 07:57:32 +020057002013-06-28 Werner Lemberg <wl@gnu.org>
5701
5702 * docs/CHANGES: Updated.
5703
Werner Lemberg680c1d42013-06-27 17:21:59 +020057042013-06-27 Werner Lemberg <wl@gnu.org>
5705
5706 * src/winfonts/winfnt.c (FNT_Load_Glyph): Fix bitmap width guard.
5707
Werner Lembergc7cc9eb2013-06-25 07:24:02 +020057082013-06-25 Werner Lemberg <wl@gnu.org>
5709
Werner Lembergb8850fc2013-06-26 12:22:10 +02005710 [cff] Add darkening limit to `darkening-parameters'.
5711
5712 * src/cff/cffdrivr.c (cff_property_set): Add check.
5713
57142013-06-25 Werner Lemberg <wl@gnu.org>
5715
Werner Lemberg89ca1fd2013-06-25 23:28:02 +02005716 [cff] Add `darkening-parameters' property.
5717
5718 * include/freetype/ftcffdrv.h: Document it.
5719
5720 * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle
5721 `darkening-parameters' property.
5722
5723 * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array.
5724
5725 * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams'
5726 argument and use it.
5727 Update all callers.
5728
5729 * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy
5730 `darken_params' values.
5731
5732 * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array.
5733
5734 * src/cff/cffobjs.c (cff_driver_init): Set default values for
5735 `darken_params'.
5736
57372013-06-25 Werner Lemberg <wl@gnu.org>
5738
Werner Lembergfad93262013-06-25 10:41:37 +02005739 [docmaker] Code shuffling.
5740
5741 * src/tools/docmaker/tohtml.py (re_url): Move regexp...
5742 * src/tools/docmaker/sources.py: ... to this file.
5743
57442013-06-25 Werner Lemberg <wl@gnu.org>
5745
Werner Lemberg8bdc4072013-06-25 10:20:53 +02005746 [docmaker] Remove unused functions.
5747
5748 * src/tools/docmaker/content.py (DocMarkup.get_start,
5749 DocBlock.get_markup_name): Removed.
5750 * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code,
5751 HtmlFormatter.make_html_words): Removed.
5752
57532013-06-25 Werner Lemberg <wl@gnu.org>
5754
Werner Lembergffb8b472013-06-25 09:09:30 +02005755 * builds/freetype.mk (dll): Remove target.
5756
5757 Problem reported by Jörg Günnewig <joerg.guennewig@googlemail.com>.
5758
57592013-06-25 Werner Lemberg <wl@gnu.org>
5760
Werner Lembergc7cc9eb2013-06-25 07:24:02 +02005761 [docmaker] Recognise URLs.
5762
5763 * src/tools/docmaker/tohtml.py (re_url): New regular expression.
5764 (make_html_para): Use it.
5765
Werner Lemberg25b7da52013-06-19 10:23:36 +020057662013-06-19 Werner Lemberg <wl@gnu.org>
5767
Werner Lembergfe4f5712013-06-19 23:27:47 +02005768 * Version 2.5.0.1 released.
5769 ===========================
5770
5771
5772 Tag sources with `VER-2-5-0-1'.
5773
5774 * include/freetype/config/ftoption.h: Undefine
5775 CFF_CONFIG_OPTION_OLD_ENGINE.
5776 * devel/ftoption.h: Define CFF_CONFIG_OPTION_OLD_ENGINE.
5777
57782013-06-19 Werner Lemberg <wl@gnu.org>
5779
Werner Lemberg609f0ca2013-06-19 14:41:47 +02005780 * builds/unix/install.mk (install): Don't create `cache' directory.
5781
5782 Found by Peter Breitenlohner <peb@mppmu.mpg.de>.
5783
57842013-06-19 Werner Lemberg <wl@gnu.org>
5785
Werner Lemberg25b7da52013-06-19 10:23:36 +02005786 * Version 2.5.0 released.
5787 =========================
5788
5789
5790 Tag sources with `VER-2-5-0'.
5791
5792 * docs/VERSION.DLL: Update documentation and bump version number to
5793 2.5.0.
5794
5795 * README, Jamfile (RefDoc),
5796 builds/win32/vc2005/freetype.vcproj, builds/win32/vc2005/index.html,
5797 builds/win32/vc2008/freetype.vcproj, builds/win32/vc2008/index.html,
5798 builds/win32/vc2010/freetype.vcxproj, builds/win32/vc2010/index.html,
5799 builds/win32/visualc/freetype.dsp,
5800 builds/win32/visualc/freetype.vcproj,
5801 builds/win32/visualc/index.html, builds/win32/visualce/freetype.dsp,
5802 builds/win32/visualce/freetype.vcproj,
5803 builds/win32/visualce/index.html,
5804 builds/wince/vc2005-ce/freetype.vcproj,
5805 builds/wince/vc2005-ce/index.html,
5806 builds/wince/vc2008-ce/freetype.vcproj,
5807 builds/wince/vc2008-ce/index.html: s/2.4.12/2.5.0/, s/2412/250/.
5808
5809 * include/freetype/freetype.h (FREETYPE_MINOR): Set to 5.
5810 (FREETYPE_PATCH): Set to 0.
5811
5812 * builds/unix/configure.raw (version_info): Set to 16:2:10.
5813
5814 * src/base/ftobjs.c (FT_Open_Face): Pacify compiler.
5815 * src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIRP): Ditto.
5816
Werner Lembergf56691a2013-06-18 10:17:48 +020058172013-06-18 Werner Lemberg <wl@gnu.org>
5818
5819 Fix Savannah bug #39269.
5820
5821 * src/base/ftgloadr.c (FT_GlyphLoader_CheckPoints): Free memory in
5822 case of reacollocation failures.
5823
Andrew Church67cf7a82013-06-18 09:35:34 +020058242013-06-18 Andrew Church <achurch+savannah@achurch.org>
5825
5826 Fix Savannah bug #39266.
5827
5828 If memory allocations fail at certain points while opening a font,
5829 FreeType can either crash due to a NULL dereference or leak memory.
5830
5831 * include/freetype/internal/ftobjs.c (FT_Face_InternalRec,
5832 FT_LibraryRec): Make `refcount' a signed integer. If, for example,
5833 FT_Open_Face() fails in a memory allocation before the face's
5834 reference count is set to 1, a subsequent `FT_Done_Library' call
5835 would otherwise loop over `FT_Done_Face' 2^32 times before freeing
5836 the face.
5837
5838 * src/base/ftobjs.c (open_face): Initialize `stream' and friends
5839 earlier.
5840 (FT_Open_Face) <Fail>: Behave correctly if `node' is NULL.
5841 (FT_Destroy_Module) <Fail>: Check that `renderer_clazz' is valid.
5842
58432013-06-14 Werner Lemberg <wl@gnu.org>
Werner Lembergd7e34442013-06-14 18:33:39 +02005844
5845 * src/smooth/ftgrays.c One final pragma to silence 64-bit MSVC.
5846
Dave Arnoldcb23a622013-06-13 07:46:32 +020058472013-06-06 Dave Arnold <darnold@adobe.com>
5848 Werner Lemberg <wl@gnu.org>
5849
5850 [cff] Add code to Adobe's engine to handle ppem > 2000.
5851
5852 * src/cff/cffgload.c (cff_slot_load): If we get
5853 FT_Err_Glyph_Too_Big, retry unhinted and scale up later on.
5854
Andrew Church67cf7a82013-06-18 09:35:34 +020058552013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg25b6e602013-06-12 11:06:34 +02005856
Werner Lemberg294ce112013-06-12 23:33:11 +02005857 Another try on pragmas.
5858
5859 * include/freetype/internal/ftdebug.h: Move pragmas to...
5860 * include/freetype/internal/internal.h: ... this file since it gets
5861 included by all source files.
5862 * include/freetype/internal/ftserv.h: Remove pragma which has no
5863 effect.
5864
Dave Arnoldcb23a622013-06-13 07:46:32 +020058652013-06-12 Werner Lemberg <wl@gnu.org>
Werner Lemberg294ce112013-06-12 23:33:11 +02005866
Werner Lemberg25b6e602013-06-12 11:06:34 +02005867 * include/freetype/internal/ftdebug.h: Disable MSVC warning C4127.
5868
5869 This partially undoes commit 3f6e0e0c.
5870
Werner Lembergc06889e2013-06-12 10:58:06 +020058712013-06-12 Werner Lemberg <wl@gnu.org>
5872
5873 More compiler warning fixes.
5874
5875 */*: Use cast to `FT_Bool' (or `Bool') where appropriate.
5876
Werner Lemberg99e60d82013-06-10 01:44:37 +020058772013-06-10 Werner Lemberg <wl@gnu.org>
5878
Werner Lemberg5e094c62013-06-10 14:59:21 +02005879 [truetype] Improve handling of broken sbit advance widths.
5880
5881 * src/truetype/ttgload.c (TT_Load_Glyph): Use the glyph's (scaled)
5882 `linearHoriAdvance' if the sbit's `horiAdvance' value is zero.
5883
5884 Cf. font `Fixedsys Excelsior' v3.01 (FSEX300.ttf), glyph A, 16ppem.
5885
58862013-06-10 Werner Lemberg <wl@gnu.org>
5887
Werner Lemberga25ecfd2013-06-10 12:57:16 +02005888 [sfnt] Improve embedded bitmap tracing.
5889
5890 * src/base/ftobjs.c (FT_Request_Size): Move trace message regarding
5891 bitmap strike match to...
5892 (FT_Match_Size): This function.
5893
5894 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_metrics,
5895 tt_sbit_decoder_load_byte_aligned, tt_sbit_decoder_load_bit_aligned,
5896 tt_sbit_decoder_load_compound, tt_sbit_decoder_load_png,
5897 tt_sbit_decoder_load_image): Decorate with tracing messages.
5898
58992013-06-10 Werner Lemberg <wl@gnu.org>
5900
Werner Lemberg99e60d82013-06-10 01:44:37 +02005901 Fix Savannah bug #39160.
5902
5903 * src/truetype/ttinterp.c (Ins_SDPVTL): Set projection vector too
5904 for the degenerate case.
5905
Werner Lemberg2ba871b2013-06-09 08:20:54 +020059062013-06-09 David Turner <digit@google.com>
5907
5908 * src/cache/ftcmanag.c (FTC_Manager_Reset): Add missing cache flush.
5909
5910 This code, present since eight(!) years in the unused `CACHE'
5911 branch, has been forgotten to apply to the master branch. It's
5912 really amazing that noone has ever complained since
5913 `FTC_Manager_Reset' is pretty useless without flushing the cache.
5914
Werner Lemberg85fd84b2013-06-07 17:10:21 +020059152013-06-07 Werner Lemberg <wl@gnu.org>
5916
Werner Lemberg3f6e0e02013-06-07 18:10:40 +02005917 Add and improve pragmas for MSVC compiler.
5918
5919 * include/freetype/internal/ftdebug.h: Remove pragmas.
5920 * include/freetype/internal/ftserv.h: Use push and pop for pragmas.
5921 * include/freetype/internal/ftvalid.h: Handle warning C4324.
5922 * src/base/ftobjs.c: Use push and pop for pragmas.
5923 * src/gzip/ftgzip.c: Handle warning C4244.
5924
59252013-06-07 Werner Lemberg <wl@gnu.org>
5926
Werner Lemberg85fd84b2013-06-07 17:10:21 +02005927 [cff] s/cf2_getGlyphWidth/cf2_getGlyphOutline/.
5928
5929 * src/cff/cf2font.c, src/cff/cf2font.h, src/cff/cf2ft.c: Do it.
5930
Werner Lemberg4447b2c2013-06-06 21:28:36 +020059312013-06-06 Dave Arnold <darnold@adobe.com>
5932
5933 [cff] Add early exit feature for width-only calls.
5934
5935 This is for `FT_Get_Advance'.
5936
5937 There are 7 places where the spec says the width can be defined:
5938
5939 hstem/hstemhm
5940 vstem/vstemhm
5941 cntrmask/hintmask
5942 hmoveto
5943 vmoveto
5944 rmoveto
5945 endchar
5946
5947 * src/cff/cf2intrp.c (cf2_doStems): Exit early for width-only calls,
5948 if possible.
5949
5950 (cf2_interpT2CharString) <cf2_cmdHSTEM>, <cf2_cmdVSTEM>,
5951 <cf2_cmdVMOVETO>, <cf2_cmdENDCHAR>, <cf2_cmdHINTMASK>,
5952 <cf2_cmdRMOVETO>, <cf2_cmdHMOVETO>: Exit early for width-only calls.
5953
Werner Lembergbadf3172013-06-06 09:16:38 +020059542013-06-06 Werner Lemberg <wl@gnu.org>
5955
5956 Next round of compiler fixes.
5957
5958 * builds/win32/ftdebug.c, builds/wince/ftdebug.c (ft_debug_init):
5959 Add proper cast.
5960
5961 * include/freetype/internal/ftserv.h (FT_SERVICE_UNAVAILABLE): Fix
5962 cast.
5963 * include/freetype/internal/ftstream.h: Decorate stream and frame
5964 macros with `FT_Long' and `FT_ULong' as appropriate.
5965
5966 * src/base/ftrfork.c (raccess_guess_darwin_hfsplus,
5967 raccess_guess_darwin_newvfs): Use cast.
5968
5969 * src/bdf/bdflib.c (_bdf_set_default_spacing): Use cast.
5970
5971 * src/cache/ftcmanag.c (FTC_Manager_Check): Fix cast.
5972 * src/cache/ftcmanag.h (FTC_ManagerRec): Ditto.
5973
5974 * src/cff/cf2arrst.c (cf2_arrstack_setNum_Elements): Use cast.
5975 * src/cff/cf2ft.c (cf2_freeSeacComponent): Ditto.
5976 * src/cff/cffobjs.c (remove_subset_prefix, remove_style): Ditto.
5977
5978 * src/cid/cidparse.c (cid_parser_new): Use cast.
5979
5980 * src/pcf/pcfdrivr.c (PCF_Glyph_Load): Use cast.
5981
5982 * src/psaux/psobjs.c (reallocate_t1_table): Fix argument type.
5983
5984 * src/raster/ftraster.c (ft_black_reset): Use cast.
5985
5986 * src/truetype/ttgxvar.c (FT_Stream_FTell): Use cast.
5987 (ALL_POINTS): Fix cast.
5988
5989 * src/type1/t1driver.c (t1_ps_get_font_value): Add casts.
5990 * src/type1/t1parse.c (T1_Get_Private_Dict): Add cast.
5991
Dave Arnoldc3782492013-06-05 19:57:55 +020059922013-06-05 Dave Arnold <darnold@adobe.com>
5993
5994 Fix more MSVC Win32 compiler warnings.
5995
5996 * src/base/ftobjs.c: Fix typo in MS pragma.
5997
5998 * src/base/bdflib.c (_bdf_set_default_spacing, _bdf_add_property):
5999 `lineno' is only used in debug mode.
6000
6001 * src/cff/cf2ft.c (cf2_builder_moveTo): `params' is only used in
6002 debug mode.
6003
Werner Lemberg45392b72013-06-05 13:43:20 +020060042013-06-05 Werner Lemberg <wl@gnu.org>
6005
6006 Fix compiler warnings.
6007
6008 * include/freetype/internal/ftmemory.h: Decorate memory allocation
6009 macros with `FT_Long' where appropriate.
6010 Remove duplicate of FT_MEM_QRENEW_ARRAY definition.
6011
6012 * src/base/ftbitmap.c (ft_gray_for_premultiplied_srgb_bgra): Use
6013 cast.
6014
6015 * src/base/ftobjs.c: Add warning disabling pragma for MSVC while
6016 including `md5.c'.
6017
6018 * src/cff/cf2intrp.c (cf2_interpT2CharString) <cf2_cmdESC>: Add
6019 cast.
6020
6021 * src/sfnt/ttsbit.c (tt_sbit_decoder_load_compound): Fix casts.
6022 (tt_sbit_decoder_load_bitmap): Beautification.
6023
6024 * src/smooth/ftsmooth.c (ft_smooth_render_generic): Initialize
6025 variables (earlier).
6026
6027 * src/truetype/ttgload.c (TT_Process_Simple_Glyph): Pacify compiler.
6028
6029 * src/truetype/ttgxvar.c (TT_Get_MM_Var): Use unsigned constants
6030 where appropriate.
6031
6032 * src/type1/t1load.c (T1_Get_MM_Var): Ditto.
6033
Werner Lembergdc624ca2013-06-04 10:30:48 +020060342013-06-04 Werner Lemberg <wl@gnu.org>
6035
Werner Lembergd9634982013-06-04 20:18:57 +02006036 * src/cff/cf2font.c (cf2_getGlyphWidth): Initialize `advWidth'.
6037
6038 Problem reported by Ingmar Sittl <ingmar.sittl@elektrobit.com>.
6039
60402013-06-04 Werner Lemberg <wl@gnu.org>
6041
Werner Lembergdc624ca2013-06-04 10:30:48 +02006042 Apply fixes for cppcheck nitpicks.
6043
6044 http://cppcheck.sourceforge.net/
6045
Werner Lemberg8d8508e2013-06-04 13:09:01 +02006046 The call was (from the top-level of the FreeType tree):
6047
6048 cppcheck --force \
6049 --enable=all \
6050 -I include \
6051 -I include/freetype/ \
6052 -I include/freetype/config/ \
6053 -I include/freetype/internal/ \
6054 . &> cppcheck.log
6055
Werner Lembergdc624ca2013-06-04 10:30:48 +02006056 Note that the current version heavily chokes on FreeType, delivering
Werner Lemberg8d8508e2013-06-04 13:09:01 +02006057 many wrong results. I will report those issues to the cppcheck team
Werner Lembergdc624ca2013-06-04 10:30:48 +02006058 so that a newer version gives improved results hopefully.
6059
6060 */* Improve variable scopes.
6061 */* Remove redundant initializations which get overwritten.
6062
Werner Lemberge8ed2d62013-08-01 12:20:20 +02006063 * src/base/ftmac.c, builds/mac/ftmac.c (count_faces_scalable):
Werner Lembergdc624ca2013-06-04 10:30:48 +02006064 Remove unused variable.
6065
6066 * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero.
6067
6068 * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate):
6069 Remove functionless code.
6070
6071 * src/tools/ftrandom.c (main): Fix memory leak.
6072
Werner Lemberg2429dc32013-06-03 12:41:58 +020060732013-06-03 Werner Lemberg <wl@gnu.org>
6074
6075 Add CFF_CONFIG_OPTION_OLD_ENGINE configuration option.
6076
6077 This controls whether the old FreeType CFF engine gets compiled into
6078 FreeType. It is now disabled by default.
6079
6080 * devel/ftoption.h, include/freetype/config/ftoption.h
6081 (CFF_CONFIG_OPTION_OLD_ENGINE): New macro.
6082
6083 * src/cff/cffdrivr.c (cff_property_set), src/cff/cffgload.c
6084 (CFF_Operator, cff_argument_counts, cff_builder_add_point,
6085 cff_operator_seac, cff_decoder_parse_charstrings, cff_slot_load),
6086 src/cff/cffgload.h, src/cff/cffobjs.c (cff_driver_init): Use
6087 CFF_CONFIG_OPTION_OLD_ENGINE to guard the affected code.
6088
6089 * docs/CHANGES: Updated.
6090
Werner Lembergf9cceeb2013-06-02 23:38:13 +020060912013-06-02 Werner Lemberg <wl@gnu.org>
6092
6093 Fix PNG library handling.
6094
6095 * builds/unix/configure.raw: Don't use LIBPNG_LIBS but
6096 LIBPNG_LDFLAGS.
6097
Behdad Esfahbod760d3422013-05-29 11:36:18 +020060982013-05-23 Behdad Esfahbod <behdad@google.com>
6099
6100 Add support for color embedded bitmaps (eg. color emoji).
6101
6102 A new load flag, FT_LOAD_COLOR, makes FreeType load color
6103 embedded-bitmaps, following this draft specification
6104
6105 https://color-emoji.googlecode.com/git/specification/v1.html
6106
6107 which defines two new SFNT tables, `CBDT' and `CBLC' (named and
6108 modeled after `EBDT' and `EBLC', respectively). The color bitmaps
6109 are stored in the new FT_PIXEL_MODE_BGRA format to represent BGRA
6110 pre-multiplied sRGB images. If PNG support is available, PNG color
6111 images as defined in the same proposed specification are supported
6112 also.
6113
6114 Note that color bitmaps are converted to grayscale if client didn't
6115 ask for color.
6116
6117 * builds/unix/configure.raw: Search for libpng.
6118 Add `--without-png' option.
6119
6120 * devel/ftoption.h, include/freetype/config/ftoption.h
6121 (FT_CONFIG_OPTION_USE_PNG): New macro.
6122
6123 * include/freetype/freetype.h (FT_LOAD_COLOR): New load flag.
6124
6125 * include/freetype/ftimage.h (FT_Pixel_Mode): Add
6126 `FT_PIXEL_MODE_BGRA'.
6127
6128 * include/freetype/tttags.h (TTAG_CBDT, TTAG_CBLC): New tags.
6129
6130 * src/base/ftbitmap.c (FT_Bitmap_Embolden): Updated.
6131 (ft_gray_for_premultiplied_srgb_bgra): New function.
6132 (FT_Bitmap_Convert): Handle FT_PIXEL_MODE_BGRA.
6133
6134 * src/sfnt/pngshim.c, src/sfnt/pngshim.h: New files.
6135
6136 * src/sfnt/sfnt.c: Include `pngshim.c'.
6137
6138 * src/sfnt/ttsbit.c: Include FT_BITMAP_H and `pngshim.h'
6139 (tt_face_load_eblc): Load `CBLC'.
6140 (tt_sbit_decoder_init): Load `CBDT'.
6141 (tt_sbit_decoder_alloc_bitmap): Pass load flags to select between
6142 color and grayscale bitmaps.
6143 Set `num_grays'. This is used by `ftview' to choose the blending
6144 algorithm.
6145 (tt_sbit_decoder_load_byte_aligned,
6146 tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_compound,
6147 tt_sbit_decoder_load_image): Pass load flag.
6148 s/write/pwrite/.
6149 Don't call `tt_sbit_decoder_alloc_bitmap'.
6150 Updated.
6151 (tt_sbit_decoder_load_png) [FT_CONFIG_OPTION_USE_PNG]: New function.
6152 (tt_sbit_decoder_load_bitmap): Pass load flag.
6153 Handle new glyph formats 17, 18, and 19.
6154 Call `tt_sbit_decoder_alloc_bitmap'.
6155 Flatten color bitmaps if necessary.
6156 (tt_face_load_sbit_image): Updated.
6157
6158 * src/sfnt/rules.mk (SFNT_DRV_SRC): Add `pngshim.c'.
6159
6160 * docs/CHANGES: Updated.
6161
Guenter41e44802013-05-24 11:38:09 +020061622013-05-24 Guenter <info@gknw.net>
6163
6164 Apply Savannah patch #8055.
6165
6166 Make `apinames' create an import file for NetWare.
6167
6168 * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2.
6169 (OutputFormat): Add `OUTPUT_NETWARE_IMP'.
6170 (names_dump): Handle it.
6171 (usage): Updated.
6172 (main): Handle new command line flag `-wN'.
6173
Behdad Esfahbod2d6e1fb2013-05-23 08:01:20 +020061742013-05-23 Behdad Esfahbod <behdad@behdad.org>
6175
6176 Compilation fix.
6177
6178 * src/truetype/ttinterp.c (TT_RunIns)
6179 [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]: Make it work.
6180
Infinality18f35ed2013-05-21 20:51:15 -050061812013-05-22 Infinality <infinality@infinality.net>
6182
Infinality3c783c12013-05-21 21:03:00 -05006183 [truetype] Formatting and an additional subpixel tweak.
6184
6185 * src/truetype/ttinterp.c (Ins_SHPIX): Formatting fix.
6186 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules):
6187 Revert previous modification for Verdana clones.
6188
61892013-05-22 Infinality <infinality@infinality.net>
6190
Infinality18f35ed2013-05-21 20:51:15 -05006191 [truetype] Adjust subpixel zp2 moves and tweak rules.
6192
6193 These modifications fix thin diagonal stems in some legacy fonts.
6194
6195 * src/truetype/ttinterp.c (Direct_Move_X): Remove unused macro.
6196 (Move_Zp2_Point): Don't always disable x moves for subpixel rendering.
6197 (Ins_SHP): Disable x moves here for subpixel rendering.
6198 (Ins_SHPIX): Only disable x moves in compatibility mode.
6199 Split out zp2 move reversals and reorder conditional respectively.
6200
6201 * src/truetype/ttsubpix.c (SKIP_NONPIXEL_Y_MOVES_Rules): Fix oversight.
6202 Only adjust Verdana clones for 17 ppem.
6203 (SKIP_NONPIXEL_Y_MOVES_Rules_Exceptions): Add Courier New.
6204 (ALWAYS_SKIP_DELTAP_Rules): Found additional cases for Arial `s'.
6205
Infinality63bfa832013-05-20 07:38:21 +020062062013-05-20 Infinality <infinality@infinality.net>
6207
6208 [truetype] Simplify and improve subpixel function detection.
6209
6210 Some small enhancements have allowed the removal of many macros and
6211 the simplification of existing rules in `ttsubpix.c'.
6212
6213 * src/truetype/ttsubpix.h (SPH_TWEAK_ALLOW_X_DMOVEX,
6214 SPH_TWEAK_ALLOW_X_MOVE_ZP2,
6215 SPH_TWEAK_DELTAP_SKIP_EXAGGERATED_VALUES,
6216 SPH_TWEAK_SKIP_INLINE_DELTAS, SPH_TWEAK_MIRP_CVT_ZERO): Removed.
6217 (SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP): New rule macro.
6218
6219 * src/truetype/ttsubpix.c: Updated affected rules.
6220
6221 * src/truetype/ttinterp.c (Direct_Move_X): Updated.
6222 (INS_FDEF): Add additional function detection.
6223 (INS_ENDF): Set runtime flag.
6224 (Ins_CALL): Skip the call under certain conditions.
6225 Remove bad code.
6226 (Ins_LOOPCALL): Skip the call under certain conditions.
6227 Remove bad code.
6228 (Move_Zp2_Point): Updated.
6229 (Ins_SHPIX): Updated.
6230 Skip the move under some situations.
6231 (Ins_MIAP): Improve conditions.
6232 (Ins_MIRP): Updated.
6233 (Ins_DELTAP): Skip move under certain conditions.
6234 Simplify conditions.
6235 (TT_RunIns): Updated.
6236 Add code to handle new function detection.
6237 Trace messages.
6238
Werner Lembergfd664692013-05-17 17:40:27 +020062392013-05-17 Werner Lemberg <wl@gnu.org>
6240
6241 Update more FT_Err_XXX macros using FT_ERR and FT_THROW;
6242
6243 * builds/amiga/src/base/ftsystem.c, builds/mac/ftmac.c,
6244 builds/unix/ftsystem.c, builds/vms/ftsystem.c: Do it.
6245
Werner Lembergf04951a2013-05-17 13:51:07 +020062462013-05-15 Werner Lemberg <wl@gnu.org>
6247
6248 [truetype] Add `interpreter-version' property.
6249
6250 This makes the option TT_CONFIG_OPTION_SUBPIXEL_HINTING controllable
6251 at runtime.
6252
Werner Lemberg27991332013-05-17 14:00:26 +02006253 * include/freetype/ftttdrv.h: New file.
6254
6255 * include/freetype/config/ftheader.h (FT_TRUETYPE_DRIVER_H): New
6256 macro.
6257
Werner Lembergf04951a2013-05-17 13:51:07 +02006258 * src/truetype/ttdriver.c: Include FT_TRUETYPE_DRIVER_H.
6259 (tt_property_set, tt_property_get): Fill templates.
6260
6261 * src/truetype/ttobjs.h (TT_DriverRec): Add `interpreter_version'
6262 member.
6263 Remove unused `extension_component' member.
6264
6265 * src/truetype/ttgload.c: Include FT_TRUETYPE_DRIVER_H.
6266 (tt_get_metrics, TT_Hint_Glyph, TT_Process_Simple_Glyph,
6267 compute_glyph_metrics, tt_loader_init): Use `interpreter_version'.
6268
6269 * src/truetype/ttinterp.c: Include FT_TRUETYPE_DRIVER_H.
6270 (SUBPIXEL_HINTING): New macro to check `interpreter_version' flag.
6271 Update all affected functions to use it.
6272 Use TT_INTERPRETER_VERSION_XXX where appropriate.
6273
6274 * src/truetype/ttobjs.c: Include FT_TRUETYPE_DRIVER_H.
6275 (tt_driver_init): Initialize `interpreter_version'.
6276
6277 * src/truetype/ttsubpix.c: Include FT_TRUETYPE_DRIVER_H.
6278 Use TT_INTERPRETER_VERSION_XXX where appropriate.
6279
Werner Lemberg7441dd82013-05-13 09:12:46 +020062802013-05-13 Werner Lemberg <wl@gnu.org>
6281
Werner Lemberg6650be72013-05-13 10:05:29 +02006282 [truetype] Avoid empty source file.
6283
6284 * src/truetype/ttsubpix.c [!TT_CONFIG_OPTION_SUBPIXEL_HINTING]:
6285 Provide dummy typedef.
6286
62872013-05-13 Werner Lemberg <wl@gnu.org>
6288
Werner Lemberg7441dd82013-05-13 09:12:46 +02006289 * src/cff/cf2font.c (cf2_getGlyphWidth): Fix uninitialized variable.
6290
6291 Fix suggested by Vaibhav Nagarnaik <vnagarnaik@gmail.com>.
6292
Brian Nixon8d6025c2013-05-13 09:06:42 +020062932013-05-13 Brian Nixon <bnixon@yahoo.com>
6294
6295 Fix Savannah bug #38970.
6296
6297 * src/base/ftdebug.c, builds/win32/ftdebug.c,
6298 builds/wince/ftdebug.c, builds/amiga/src/base/ftdebug.c
6299 (ft_debug_init): Don't read past the environment variable FT2_DEBUG.
6300
Werner Lembergd51ac9c2013-05-12 06:00:27 +020063012013-05-12 Werner Lemberg <wl@gnu.org>
6302
Werner Lembergcd888752013-05-12 15:08:57 +02006303 [truetype] Add framework for TrueType properties.
6304
6305 * src/truetype/ttdrivr.c: Include FT_SERVICE_PROPERTIES_H.
6306 (tt_property_set, tt_property_get): New functions, still empty.
6307 Define `tt_service_properties' service.
6308 Update `tt_services'.
6309
6310 * src/truetype/ttpic.h: Include FT_SERVICE_PROPERTIES_H.
6311 (TT_SERVICE_PROPERTIES_GET): New macro.
6312 (TTModulePIC): Add `tt_service_properties'.
6313
63142013-05-12 Werner Lemberg <wl@gnu.org>
6315
Werner Lembergb112fa42013-05-12 07:29:04 +02006316 Fix Savannah bug #38967.
6317
6318 * src/base/ftcalc.c (FT_DivFix) [FT_LONG64]: Fix cast.
6319
63202013-05-12 Werner Lemberg <wl@gnu.org>
6321
Werner Lembergcbcf33d2013-05-12 07:27:48 +02006322 Introduce unsigned 64bit type (if available).
6323
6324 * include/freetype/config/ftconfig.h: Define FT_UINT64 if available.
6325 [FT_LONG64]: Provide FT_UInt64.
6326
6327 * builds/unix/ftconfig.in: Synchronized.
6328
63292013-05-12 Werner Lemberg <wl@gnu.org>
6330
Werner Lembergd51ac9c2013-05-12 06:00:27 +02006331 Fix Savannah bug #38968.
6332
6333 * include/freetype/ftmodapi.h: Add `FT_EXPORT' to
6334 FT_Property_{Set,Get}.
6335 * src/base/ftobjs.c: Add `FT_EXPORT_DEF' to
6336 FT_Property_{Set,Get}.
6337
Werner Lembergf6aa0892013-05-10 07:58:47 +020063382013-05-10 Werner Lemberg <wl@gnu.org>
6339
Werner Lembergea2b4752013-05-10 08:04:33 +02006340 [sfnt] Clean up bitmap code.
6341
6342 * src/sfnt/ttsbit.c: Deleted.
Dave Arnold3a2cb0f2013-09-29 16:17:02 +02006343 * src/sfnt/ttsbit0.c: Renamed to `ttsbit.c'.
Werner Lembergea2b4752013-05-10 08:04:33 +02006344 * rules.mk (SFNT_DRV_H): Updated.
6345
63462013-05-10 Werner Lemberg <wl@gnu.org>
6347
Werner Lembergf6aa0892013-05-10 07:58:47 +02006348 */* [FT_CONFIG_OPTION_OLD_INTERNALS]: Remove macro and guarded code.
6349
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00006350----------------------------------------------------------------------------
6351
Werner Lembergf57fc592015-01-17 20:41:43 +01006352Copyright 2013-2015 by
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00006353David Turner, Robert Wilhelm, and Werner Lemberg.
6354
6355This file is part of the FreeType project, and may only be used, modified,
6356and distributed under the terms of the FreeType project license,
6357LICENSE.TXT. By continuing to use, modify, or distribute this file you
6358indicate that you have read the license and understand and accept it
6359fully.
6360
6361
6362Local Variables:
6363version-control: never
Werner Lemberg4e03fe72006-04-29 06:20:09 +00006364coding: utf-8
Werner Lemberg8e6c56f2005-10-18 06:09:13 +00006365End: